예제 #1
0
        private void menuDetails_Click(object sender, EventArgs e)
        {
            DataGridViewCell cell = dataGrid1.SelectedCells[0];

            if (cell.ColumnIndex != 0 && cell.Value != DBNull.Value)
            {
                DataRow row = ((DataRowView)cell.OwningRow.DataBoundItem).Row;
                MultipleSeriesDataTable tbl = row.Table as MultipleSeriesDataTable;
                DateTime t        = Convert.ToDateTime(row[0]);
                string   interval = tbl.TableName;
                HdbPoet.TimeSeriesDataSet.SeriesRow s = tbl.LookupSeries(cell.ColumnIndex);
                var info = Hdb.Instance.BaseInfo(t, s.hdb_site_datatype_id, interval);

                info = DataTableUtility.Transpose(info);
                TableViewer tv = new TableViewer(info);
                tv.Show();


                //msDataTable
                //row[cell.ColumnIndex] = DBNull.Value;
            }
        }
예제 #2
0
        private void linkLabelUSGSInfo_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (textBoxSiteNumber.Text.Trim() != "")
            {
                try
                {
                    string url = "https://staging.waterservices.usgs.gov/nwis/site/?format=rdb&sites=" + textBoxSiteNumber.Text.Trim();

                    var         data = Reclamation.Core.Web.GetPage(url);
                    UsgsRDBFile rdb  = new UsgsRDBFile(data);
                    DataTable   tbl  = DataTableUtility.Transpose(rdb);
                    var         dlg  = new Reclamation.Core.TableViewer(tbl);
                    dlg.ShowDialog();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                Process.Start("http://waterdata.usgs.gov/nwis/");
            }
        }
예제 #3
0
        private void ReadSeriesData(string url, DateTime t1, DateTime t2)
        {
            double siteElev = -999.0;

            if (offsetReadingsWithSiteElevation)
            {
                string siteInfoUrl = @"https://waterservices.usgs.gov/nwis/site/?format=rdb&sites=" + m_site_no;

                var         data = Reclamation.Core.Web.GetPage(siteInfoUrl);
                UsgsRDBFile rdb  = new UsgsRDBFile(data);
                DataTable   tbl  = DataTableUtility.Transpose(rdb);
                siteElev = Convert.ToDouble(rdb.Rows[0]["alt_va"]);
            }

            url += "&startDT=" + t1.ToString("yyyy-MM-dd") + "&endDT=" + t2.ToString("yyyy-MM-dd");
            string[] response = Web.GetPage(url, true);

            m_rdb = new UsgsRDBFile(response, true);
            ParsePreamble();
            m_columnName = "lev_va";

            for (int i = 0; i < m_rdb.Rows.Count; i++)
            {
                DataRow  row = m_rdb.Rows[i];
                DateTime t   = DateTime.MinValue;

                if (!DateTime.TryParse(row["lev_dt"].ToString(), out t))
                {
                    break;
                }
                // Read Time component
                string s = row["lev_tm"].ToString().Trim();
                if (s.Length == 4 && Regex.IsMatch(s, "[0-9]{4}"))
                {
                    int hr  = Convert.ToInt32(s.Substring(0, 2));
                    int min = Convert.ToInt32(s.Substring(2));
                    t = t.AddHours(hr);
                    t = t.AddMinutes(min);
                }

                if (t < t1 || t > t2)
                {
                    continue;
                }

                double d  = Point.MissingValueFlag;
                Point  pt = Point.Missing;
                pt.DateTime = t;
                pt.Flag     = row["lev_status_cd"].ToString();
                try
                {
                    if (!Double.TryParse(row[m_columnName].ToString(), out d))
                    {
                        Messages.Add("Error reading '" + row[m_columnName] + "' as a number");
                        AddMissing(t);
                    }
                    else
                    {
                        if (offsetReadingsWithSiteElevation)
                        {
                            pt.Value = siteElev - d;
                        }
                        else
                        {
                            pt.Value = d;
                        }
                        Add(pt);
                    }
                }
                catch
                {
                    //[JR] fix this!
                }
            }
        }