Exemple #1
0
        public ActionResult GetGuangDongAirQualityPNG()
        {
            List <double> t = new List <double>(), x = new List <double>(), y = new List <double>();

            double[] extent = new double[] { 109.46, 20.05, 117.48, 25.63 };
            string   fileName;

            using (DataCenterServiceClient client = new DataCenterServiceClient())
            {
                StationHourData[] data = client.GetStationHourDataListFromHistoryByTime("GDAEIB", "2019!@GD", new DateTime(2020, 6, 23, 17, 0, 0));
                data = data.Where(o => o.AQI != "—").ToArray();
                double[] tExtent = new double[] { 106.79, 18.19, 120.15, 27.49 };
                foreach (StationHourData item in data)
                {
                    double xi = double.Parse(item.Longitude), yi = double.Parse(item.Latitude);
                    if (xi >= tExtent[0] && xi <= tExtent[2] && yi >= tExtent[1] && yi <= tExtent[3])
                    {
                        double ti = double.Parse(item.AQI);
                        t.Add(ti);
                        x.Add(xi);
                        y.Add(yi);
                    }
                }
                fileName = string.Format("D:\\440000_{0}.png", data.First().TimePoint.ToString("yyyyMMddHH"));
            }
            double resolution = (extent[2] - extent[0]) / 1023;

            BitmapHelper.DrawGridByKriging(t.ToArray(), x.ToArray(), y.ToArray(), extent, resolution, fileName);
            return(Content("Done"));
        }
Exemple #2
0
        public ActionResult TestIDW(DateTime time)
        {
            IDW     idw;
            Kriging kriging;

            using (DataCenterServiceClient client = new DataCenterServiceClient())
            {
                StationHourData[] data = client.GetStationHourDataListFromHistoryByTime("GDAEIB", "2019!@GD", time);
                data = data.Where(o => o.AQI != "—").ToArray();
                double[] X = new double[data.Length], Y = new double[data.Length], T = new double[data.Length];
                for (int i = 0; i < data.Length; i++)
                {
                    StationHourData item = data[i];
                    double          x = double.Parse(item.Longitude), y = double.Parse(item.Latitude);
                    double          t = double.Parse(item.AQI);
                    X[i] = x;
                    Y[i] = y;
                    T[i] = t;
                }
                idw     = new IDW(X, Y, T);
                kriging = new Kriging(X, Y, T);
            }
            double temp = idw.Predict(112, 36);

            kriging.Train(KrigingModel.Exponential, 0, 100);
            temp = kriging.Predict(112, 36);
            return(Content(temp.ToString()));
        }
 public ActionResult GetStationHourData()
 {
     using (DataCenterServiceClient client = new DataCenterServiceClient())
     {
         StationHourData[] stationHourData = client.GetStationHourDataListFromHistoryByTime("normal", "normal!@123", new DateTime(2020, 6, 11, 10, 0, 0));
         return(Json(stationHourData, JsonRequestBehavior.AllowGet));
     }
 }
Exemple #4
0
 public ActionResult GetStationHourData(DateTime timePoint)
 {
     using (DataCenterServiceClient client = new DataCenterServiceClient())
     {
         StationHourData[] data = client.GetStationHourDataListFromHistoryByTime("GDAEIB", "2019!@GD", timePoint);
         data = data.Where(o => o.AQI != "—").ToArray();
         return(Json(data, JsonRequestBehavior.AllowGet));
     }
 }
Exemple #5
0
        public MainPage()
        {
            InitializeComponent();
            // You can obtain the current XBAP's URI using BrowserInteropHelper.Source.
            Uri serviceUri = new Uri(BrowserInteropHelper.Source, "../DataCenterService.svc");
            DataCenterServiceClient client = new DataCenterServiceClient(new BasicHttpBinding(), new EndpointAddress(serviceUri));

            client.GetDataCentersCompleted += new EventHandler <GetDataCentersCompletedEventArgs>(client_GetDataCentersCompleted);
            client.GetDataCentersAsync();
            Touch.FrameReported += new TouchFrameEventHandler(Touch_FrameReported);
        }
Exemple #6
0
        public ActionResult GetChinaAirQualityPNG()
        {
            List <double> t = new List <double>(), x = new List <double>(), y = new List <double>();

            //double[] extent = new double[] { 73.2, 17.8, 135.4, 53.8 };
            double[] extent = new double[] { 73.502355, 3.397162, 135.095670, 53.563269 };
            string   fileName;

            using (DataCenterServiceClient client = new DataCenterServiceClient())
            {
                StationHourData[] data = client.GetStationHourDataListFromLive("GDAEIB", "2019!@GD");
                data = data.Where(o => o.AQI != "—").ToArray();
                int    i = 0;
                double max = 0, lonm = 0, latm = 0, w = 0.5, h = 0.5;
                for (double lon = extent[0]; lon <= extent[2]; lon += w)
                {
                    for (double lat = extent[1]; lat <= extent[3]; lat += h)
                    {
                        max = 0;
                        for (i = 0; i < data.Length; i++)
                        {
                            StationHourData item = data[i];
                            double          xi = double.Parse(item.Longitude), yi = double.Parse(item.Latitude);
                            if (xi >= lon && xi <= lon + w && yi >= lat && yi <= lat + w)
                            {
                                double ti = double.Parse(item.AQI);
                                if (ti > max)
                                {
                                    max  = ti;
                                    lonm = xi;
                                    latm = yi;
                                }
                            }
                        }
                        if (max > 0)
                        {
                            t.Add(max);
                            x.Add(lonm);
                            y.Add(latm);
                        }
                    }
                }
                fileName = string.Format("D:\\{0}_IDW.png", data.First().TimePoint.ToString("yyyyMMddHH"));
            }
            double resolution = (extent[2] - extent[0]) / 1023;

            BitmapHelper.DrawGridByIDW(t.ToArray(), x.ToArray(), y.ToArray(), extent, resolution, fileName);
            return(Content("Done"));
        }
Exemple #7
0
 public ActionResult GetCityHourData(DateTime timePoint)
 {
     using (DataCenterServiceClient client = new DataCenterServiceClient())
     {
         CityHourData[] data = client.GetCityHourDataListFromHistoryByTime("GDAEIB", "2019!@GD", timePoint);
         data = data.Where(o => o.AQI != "—").ToArray();
         List <Dictionary <string, object> > list = new List <Dictionary <string, object> >();
         foreach (CityHourData item in data)
         {
             Dictionary <string, object> dic = new Dictionary <string, object>();
             dic.Add("AQI", item.AQI);
             dic.Add("PM2.5", item.PM2_5);
             dic.Add("PM10", item.PM10);
             dic.Add("SO2", item.SO2);
             dic.Add("NO2", item.NO2);
             dic.Add("CO", item.CO);
             dic.Add("O3", item.O3);
             dic.Add("Name", item.Area);
             list.Add(dic);
         }
         return(Json(list, JsonRequestBehavior.AllowGet));
     }
 }