/// <summary> /// 获得雷达反演每日雨量数据 /// </summary> /// <param name="startDate"></param> /// <param name="endDate"></param> /// <returns></returns> public static List <rfInfo> GetRadarRf(DateTime startDate, DateTime endDate) { var rfList = new List <rfInfo>(); List <DataTable> dsList = GetRfByDates(startDate, endDate); if (dsList != null && dsList.Count > 0) { foreach (DataRow row in dsList[0].Rows) { var temInfo = new rfInfo(); temInfo.STCD = Convert.ToString(row.ItemArray[0]); temInfo.Lon = Convert.ToDouble(row.ItemArray[1]); temInfo.Lat = Convert.ToDouble(row.ItemArray[2]); if (Convert.IsDBNull(row.ItemArray[3])) { temInfo.Rainfall = 0; } else { temInfo.Rainfall = Convert.ToDouble(row.ItemArray[3]); } rfList.Add(temInfo); } } return(rfList); }
/// <summary> /// 查询累积雨量,获取相关观测点信息 /// </summary> /// <param name="startDate">起始时间</param> /// <param name="endDate">中止时间</param> /// <returns>站点相关信息列表,包括经纬度以及累积雨量值</returns> public static List <rfInfo> GetAccRadarRf(DateTime startDate, DateTime endDate) { var rfList = new List <rfInfo>(); var rfoldList = new List <rfInfo>(); List <DataTable> dsList = GetRfByDates(startDate, endDate); if (dsList == null || dsList.Count == 0) { return(null); } List <decimal> temRainfall = new List <decimal>(); List <string> stcdlist = new List <string>(); for (int i = 0; i < dsList.Count; i++) { for (int j = 0; j < dsList[i].Rows.Count; j++) { string stcdID = dsList[i].Rows[j].ItemArray[0].ToString(); if (!stcdlist.Contains(stcdID)) { stcdlist.Add(stcdID); var temInfo = new rfInfo(); temInfo.STCD = stcdID; temInfo.Lon = Convert.ToDouble(dsList[i].Rows[j].ItemArray[1]); temInfo.Lat = Convert.ToDouble(dsList[i].Rows[j].ItemArray[2]); if (Convert.IsDBNull(dsList[i].Rows[j].ItemArray[3])) { temRainfall.Add(0); } else { temRainfall.Add(Math.Round(Convert.ToDecimal(dsList[i].Rows[j].ItemArray[3]), 2)); } rfoldList.Add(temInfo); } else { var indexSTCD = stcdlist.IndexOf(stcdID); var oldRainFall = temRainfall[indexSTCD]; decimal nowRainFall = 0; if (Convert.IsDBNull(dsList[i].Rows[j].ItemArray[3])) { nowRainFall = 0; } else { nowRainFall = Math.Round(Convert.ToDecimal(dsList[i].Rows[j].ItemArray[3]), 2); } temRainfall[indexSTCD] = oldRainFall + nowRainFall; } } } for (int j = 0; j < stcdlist.Count; j++) { var temInfo = new rfInfo(); temInfo.STCD = Convert.ToString(rfoldList[j].STCD); temInfo.Lon = Convert.ToDouble(rfoldList[j].Lon); temInfo.Lat = Convert.ToDouble(rfoldList[j].Lat); temInfo.Rainfall = Convert.ToDouble(temRainfall[j]); rfList.Add(temInfo); } return(rfList); }