示例#1
0
        protected void ExtractGFSFileLatLon(double latitude, double longitude, int observationTime, int forcastHours)
        {
            string GfsFileName = BuildFilename(observationTime, forcastHours);
            string slat        = Math.Round(latitude).ToString("00");
            string slon        = Math.Round(longitude).ToString("000");

            ObservationDate = DateTime.Today.AddHours(observationTime);
            ForcastDate     = ObservationDate.AddHours(forcastHours);

            DateTime t0 = DateTime.Today.AddHours(observationTime).AddHours(forcastHours);

#if OS_WIN_64
            string args     = $"./resources/{GfsFileName} -s -lon {slat} {slon}";
            string filePath = string.Format(@".\resources\weatherData\gfs{0:0000}{1:00}{2:00}{3:00}-{4}-{5}.grid", t0.Year, t0.Month, t0.Day, t0.Hour, slat, slon);
            if (!Directory.Exists(@".\resources\weatherData\"))
            {
                Directory.CreateDirectory(@".\resources\weatherData\");
            }
#else
            string args     = $"./resources/{GfsFileName} -s -lon {slat} {slon}";
            string filePath = string.Format(@"./resources/weatherData/gfs{0:0000}{1:00}{2:00}{3:00}-{4}-{5}.grid", t0.Year, t0.Month, t0.Day, t0.Hour, slat, slon);
            if (!Directory.Exists(@"./resources/weatherData/"))
            {
                Directory.CreateDirectory(@"./resources/WeatherData/");
            }
#endif
            if (File.Exists(filePath))
            {
                File.Delete(filePath);
            }
            StreamWriter gfsStreamW = File.CreateText(filePath);

            Process extract = new Process()
            {
                StartInfo = new ProcessStartInfo()
                {
                    UseShellExecute = false,
                    Arguments       = args.ToString(),
#if OS_WIN_64
                    FileName = @".\Process\wgrib2_win_64.exe",
#elif OS_LIN_64
                    FileName = @"./Process/wgrib2_lin_64",
#elif OS_LIN_ARM
                    FileName = @"./Process/wgrib2_arm64",
#endif
                    CreateNoWindow         = true,
                    RedirectStandardOutput = true,
                }
            };
            extract.Start();
            gfsStreamW.Write(extract.StandardOutput.ReadToEnd());
            extract.WaitForExit();
            gfsStreamW.Flush();
            gfsStreamW.Close();
            ParseFile(filePath);
        }
示例#2
0
        public SerializableHighLowSet getSerializableHighLowSet()
        {
            SerializableHighLowSet serializableObject = new SerializableHighLowSet();

            serializableObject.ObservationDate = ObservationDate.ToString("yyyy-MM-dd");
            serializableObject.HighTemp        = HighTemp;
            serializableObject.LowTemp         = LowTemp;
            serializableObject.HighHeatIndex   = HighHeatIndex;
            serializableObject.LowHeatIndex    = LowHeatIndex;
            serializableObject.HighWindChill   = HighWindChill;
            serializableObject.LowWindChill    = LowWindChill;
            serializableObject.HighWindSpeed   = HighWindSpeed;
            serializableObject.HighHumidity    = HighHumidity;
            serializableObject.LowHumidity     = LowHumidity;
            serializableObject.HighDewPoint    = HighDewPoint;
            serializableObject.LowDewPoint     = LowDewPoint;
            serializableObject.HighPressure    = HighPressure;
            serializableObject.LowPressure     = LowPressure;
            serializableObject.DayRain         = DayRain;
            serializableObject.HighRainRate    = HighRainRate;
            return(serializableObject);
        }
示例#3
0
        public SerializableObservationFull getSerializableObservationFull()
        {
            SerializableObservationFull serializableObject = new SerializableObservationFull();

            serializableObject.ObservationDate     = ObservationDate.ToString("yyyy-MM-dd HH:mm");
            serializableObject.UTCObservationDate  = ObservationDate.ToUniversalTime().ToString("yyyy-MM-dd HH:mm");
            serializableObject.Temperature         = Temperature;
            serializableObject.HiTemperature       = HiTemperature;
            serializableObject.HiTemperatureTime   = HiTemperatureTime.ToString("yyyy-MM-dd HH:mm");
            serializableObject.LowTemperature      = LowTemperature;
            serializableObject.LowTemperatureTime  = LowTemperatureTime.ToString("yyyy-MM-dd HH:mm");
            serializableObject.WindChill           = WindChill;
            serializableObject.LowWindChill        = LowWindChill;
            serializableObject.LowWindChillTime    = LowWindChillTime.ToString("yyyy-MM-dd HH:mm");
            serializableObject.HeatIndex           = HeatIndex;
            serializableObject.HiHeatIndex         = HiHeatIndex;
            serializableObject.HiHeatIndexTime     = HiHeatIndexTime.ToString("yyyy-MM-dd HH:mm");
            serializableObject.WindSpeed           = WindSpeed;
            serializableObject.TenMinAvgWindSpeed  = TenMinAvgWindSpeed;
            serializableObject.HiWindSpeed         = HiWindSpeed;
            serializableObject.HiWindSpeedTime     = HiWindSpeedTime.ToString("yyyy-MM-dd HH:mm");
            serializableObject.WindDirection       = WindDirection;
            serializableObject.WindDirectionLetter = WindDirectionLetter;
            serializableObject.Humidity            = Humidity;
            serializableObject.DewPoint            = DewPoint;
            serializableObject.Pressure            = Pressure;
            serializableObject.TodayRain           = TodayRain;
            serializableObject.StormRain           = StormRain;
            serializableObject.MonthRain           = MonthRain;
            serializableObject.YearRain            = YearRain;
            serializableObject.RainRate            = RainRate;
            serializableObject.HiRainRate          = HiRainRate;
            if (HiRainRate != 0)
            {
                serializableObject.HiRainRateTime = HiRainRateTime.ToString("yyyy-MM-dd HH:mm");
            }

            return(serializableObject);
        }
示例#4
0
        public SerializableObservationHistorical getSerializableObservationHistorical()
        {
            SerializableObservationHistorical serializableObject = new SerializableObservationHistorical();

            serializableObject.ObservationDate     = ObservationDate.ToString("yyyy-MM-dd HH:mm");
            serializableObject.Temperature         = Temperature;
            serializableObject.WindChill           = WindChill;
            serializableObject.HeatIndex           = HeatIndex;
            serializableObject.WindSpeed           = WindSpeed;
            serializableObject.TenMinAvgWindSpeed  = TenMinAvgWindSpeed;
            serializableObject.WindDirection       = WindDirection;
            serializableObject.WindDirectionLetter = WindDirectionLetter;
            serializableObject.Humidity            = Humidity;
            serializableObject.DewPoint            = DewPoint;
            serializableObject.Pressure            = Pressure;
            serializableObject.TodayRain           = TodayRain;
            serializableObject.StormRain           = StormRain;
            serializableObject.MonthRain           = MonthRain;
            serializableObject.YearRain            = YearRain;
            serializableObject.RainRate            = RainRate;

            return(serializableObject);
        }
 public void ResetSettings()
 {
     ObservationDate.ResetSettings();
     RegistrationDate.ResetSettings();
     ChangeDate.ResetSettings();
 }
 public override bool IsSettingsDefault()
 {
     return(ObservationDate.IsSettingsDefault() &&
            RegistrationDate.IsSettingsDefault() &&
            ChangeDate.IsSettingsDefault());
 }