コード例 #1
0
        public static UsgsRealTimeSeries Read(string site_no, UsgsRealTimeParameter parameter, DateTime t1, DateTime t2)
        {
            var s = new UsgsRealTimeSeries(site_no, parameter);

            s.ReadCore(t1, t2);
            return(s);
        }
コード例 #2
0
        protected override Series CreateFromConnectionString()
        {
            UsgsRealTimeSeries s = new UsgsRealTimeSeries(
                ConnectionStringToken("site_no"),
                m_parameter);

            return(s);
        }
コード例 #3
0
ファイル: UsgsRealTimeSeries.cs プロジェクト: usbr/Pisces
        public static SeriesList GetSeries(string[] sites, UsgsRealTimeParameter parameter)
        {
            SeriesList rval = new SeriesList();
            foreach (string site in sites)
            {
                UsgsRealTimeSeries s = new UsgsRealTimeSeries(site, parameter);
                rval.Add(s);
            }

            return rval;
        }
コード例 #4
0
        public static SeriesList GetSeries(string[] sites, UsgsRealTimeParameter parameter)
        {
            SeriesList rval = new SeriesList();

            foreach (string site in sites)
            {
                UsgsRealTimeSeries s = new UsgsRealTimeSeries(site, parameter);
                rval.Add(s);
            }

            return(rval);
        }
コード例 #5
0
ファイル: UsgsRealTimeSeries.cs プロジェクト: usbr/Pisces
 protected override Series CreateFromConnectionString()
 {
     UsgsRealTimeSeries s = new UsgsRealTimeSeries(
        ConnectionStringToken("site_no"),
         m_parameter);
     return s;
 }
コード例 #6
0
ファイル: UsgsRealTimeSeries.cs プロジェクト: usbr/Pisces
 public static UsgsRealTimeSeries Read(string site_no, UsgsRealTimeParameter parameter, DateTime t1, DateTime t2)
 {
     var s = new UsgsRealTimeSeries(site_no, parameter);
     s.ReadCore(t1,t2);
     return s;
 }
コード例 #7
0
ファイル: Program.cs プロジェクト: usbr/Pisces
        /// <summary>
        /// reads USGS instant streamflow data and saves in Hydromet format
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            if (args.Length != 2)
            {
                Console.WriteLine("Usage: ImportUsgs site_list.csv hoursBack");
                return;
            }

            int hoursBack = Convert.ToInt32(args[1]);

            Point.MissingValueFlag = 998877;
            bool errors = false;

            CsvFile csv = new CsvFile(args[0], CsvFile.FieldTypes.AllText);
            foreach (DataRow row in csv.Rows)
            {
                var interval = GetInterval(row);
                string site_id = row["site_id"].ToString();
                string usgs_parameter = row["usgs_parameter"].ToString();
                string pcode = row["pcode"].ToString();
                string cbtt = row["cbtt"].ToString();
                Series s;

                Console.WriteLine(cbtt);
                if (interval == TimeInterval.Daily)
                {
                    if (usgs_parameter.ToLower() == "gageheight")
                        s = new UsgsDailyValueSeries(site_id, UsgsDailyParameter.DailyMeanDischarge);
                    else
                    {
                        Logger.WriteLine("Error: the parameter '"+usgs_parameter+"' is not yet supported");
                        s = new Series();
                    }
                    s.Read(DateTime.Now.AddHours(-hoursBack), DateTime.Now);
                    TimeSeriesRouting.RouteDaily(s, cbtt, pcode, RouteOptions.Outgoing);
                }
                else if( interval == TimeInterval.Irregular)
                {
                    if (usgs_parameter.ToLower() == "watertemp")
                        s = new UsgsRealTimeSeries(site_id, UsgsRealTimeParameter.Temperature);
                    else
                    if (usgs_parameter.ToLower() == "gageheight")
                        s = new UsgsRealTimeSeries(site_id, UsgsRealTimeParameter.GageHeight);
                    else if (usgs_parameter.ToLower() == "discharge")
                        s = new UsgsRealTimeSeries(site_id, UsgsRealTimeParameter.Discharge);
                    else
                    {
                        Logger.WriteLine("Error: the parameter '" + usgs_parameter + "' is not yet supported");
                        s = new Series();
                    }

                    try
                    {
                        s.Read(DateTime.Now.AddHours(-hoursBack), DateTime.Now);

                        if (usgs_parameter.ToLower() == "watertemp" && pcode.ToLower() == "wf")
                        {
                            //(°C × 9/5) + 32 = °F
                            s = s * 9.0 / 5.0 + 32.0;
                        }

                        s.RemoveMissing();
                        if( s.Count >0)
                        TimeSeriesRouting.RouteInstant(s, cbtt, pcode, RouteOptions.Outgoing);
                    }
                    catch(Exception e)
                    {
                        errors = true;
                        Console.WriteLine(e.Message);
                    }
                }
            }

            if (errors)
                throw new Exception("Error reading one or more sites");
        }