コード例 #1
0
ファイル: SnowGG.cs プロジェクト: usbr/HydrometTools
        void Reset()
        {
            var t  = DateTime.Now;
            int wy = t.Year;

            if (t.Month >= 10)
            {
                wy++;
            }

            this.yearSelector1.SelectedYears = new Int32[] { wy--, wy };
            var t2 = t.AddMonths(1);


            //if (t.Month == 9)
            //{
            //    this.monthRangePicker1.MonthDayRange = new MonthDayRange(10, 1, 9, 30);
            //}
            //else
            //{
            //    this.monthRangePicker1.MonthDayRange = new MonthDayRange(10, 1, t2.Month, DateTime.DaysInMonth(t2.Year, t2.Month));
            //}
            this.monthRangePicker1.MonthDayRange = new MonthDayRange(10, 1, 9, 30);

            this.textBoxWY1.Text = HydrometDataUtility.T1Thirty.Year.ToString();
            this.textBoxWY2.Text = HydrometDataUtility.T2Thirty.Year.ToString();

            //this.comboBoxPcode.SelectedIndex = 0;
            this.checkBoxGP.Visible = HydrometInfoUtility.HydrometServerFromPreferences() == HydrometHost.GreatPlains;
        }
コード例 #2
0
ファイル: ServerSelection.cs プロジェクト: lulzzz/Pisces
        private void ReadSettings()
        {
            var svr = HydrometInfoUtility.HydrometServerFromPreferences();

            // retiring PN
            if (svr == HydrometHost.PNLinux || svr == HydrometHost.PN)
            {
                this.radioButtonBoiseLinux.Checked = true;
            }
            else
            if (svr == HydrometHost.Yakima)
            {
                this.radioButtonYakHydromet.Checked = true;
            }
            else
            if (svr == HydrometHost.GreatPlains)
            {
                this.radioButtonGP.Checked = true;
            }
            else if (svr == HydrometHost.LocalSource)
            {
                radioButtonLocal.Checked = true;
            }

            this.textBoxDbName.Text = UserPreference.Lookup("TimeSeriesDatabaseName", "timeseries");
        }
コード例 #3
0
ファイル: FcPlotUI.cs プロジェクト: usbr/HydrometTools
        public void Reset()
        {
            if (DesignMode)
            {
                return;
            }
            var t  = DateTime.Now;
            int wy = t.Year;

            if (t.Month >= 10)
            {
                wy++;
            }
            this.textBoxWaterYear.Text = wy.ToString();
            var t2 = t.AddMonths(1);

            this.monthRangePicker1.MonthDayRange = new MonthDayRange(10, 1, 9, 30);

            // load QU locations
            this.comboBoxSite.Items.Clear();
            HydrometServer = HydrometInfoUtility.HydrometServerFromPreferences();
            if (HydrometInfoUtility.HydrometServerFromPreferences() == HydrometHost.GreatPlains)
            {
                this.comboBoxSite.Items.AddRange(FcPlotDataSet.GetNames("GP"));
            }
            else
            {
                this.comboBoxSite.Items.AddRange(FcPlotDataSet.GetNames("PN"));
            }

            checkBoxDashed.Visible = false;
        }
コード例 #4
0
ファイル: FormMain.cs プロジェクト: muguangyuze/HydrometTools
        public FormMain()
        {
            var host = HydrometInfoUtility.HydrometServerFromPreferences();

            if (host == HydrometHost.PN)
            {
                UserPreference.SetDefault("HydrometServer", HydrometHost.PNLinux.ToString(), false);
            }

            HydrometInfoUtility.SetDefaultHydrometServer();

            UserPreference.SetDefault("HideStatusDialog", "False", false);
            UserPreference.SetDefault("AutoFlagDayFiles", "True", false);

            InitializeComponent();

            this.Text += " " + Application.ProductVersion;

            // FileUtility.CleanTempPath();
            Application.EnableVisualStyles();
            TabPageManager tabManager = new TabPageManager(tabControl1);

            Logger.OnLogEvent += new StatusEventHandler(Logger_OnLogEvent);
            UpdateTabs();
            //MakeMinimalVersion();
            this.Text = "Hydromet/Agrimet Tools V" + Application.ProductVersion;
        }
コード例 #5
0
ファイル: SnowGG.cs プロジェクト: muguangyuze/Pisces
        private void AddStatistics(SeriesList wyList)
        {
            bool anyStats = checkBoxMax.Checked || checkBoxMin.Checked || checkBoxAvg.Checked;

            if (!anyStats)
            {
                return;
            }

            int y1 = 1990;
            int y2 = 2011;

            int.TryParse(this.textBoxWY1.Text, out y1);
            int.TryParse(this.textBoxWY2.Text, out y2);

            DateTime t1 = new DateTime(y1 - 1, 10, 1);
            DateTime t2 = new DateTime(y2, 9, 30);

            var    server = HydrometInfoUtility.HydrometServerFromPreferences();
            Series s      = new HydrometDailySeries(comboBoxCbtt.Text.Trim(), DeterminePcode(), server);

            s.Read(t1, t2);
            s.RemoveMissing();
            s.Appearance.LegendText = "";

            YearRange yr   = new YearRange(2000, 10);
            var       list = Math.SummaryHydrograph(s, new int[] { }, yr.DateTime1, checkBoxMax.Checked, checkBoxMin.Checked, checkBoxAvg.Checked, false); //, false);


            wyList.Add(list);
        }
コード例 #6
0
        private void linkLabelRead_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            HydrometHost svr = HydrometInfoUtility.HydrometServerFromPreferences();

            int yr;

            if (!int.TryParse(textBoxWaterYear.Text, out yr))
            {
                MessageBox.Show("Error parsing water year '" + textBoxWaterYear.Text + "'");
                return;
            }
            if (comboBoxSiteList.SelectedIndex < 0)
            {
                return;
            }

            DateTime t1 = new DateTime(yr - 1, 10, 1);
            DateTime t2 = new DateTime(yr, 9, 30);

            int    idx    = this.comboBoxSiteList.SelectedIndex;
            string siteId = comboBoxSiteList.SelectedValue.ToString();

            string query = siteId + " " + siteListTable.Rows[idx]["parameters"].ToString();

            hydrometDataTable = HydrometDataUtility.ArchiveTable(svr, query, t1, t2);
            hydrometDataTable.AcceptChanges();
            bool ctrl = (Control.ModifierKeys & Keys.Control) != 0;

            timeSeriesSpreadsheet1.Clear();
            timeSeriesSpreadsheet1.SetDataTable(hydrometDataTable, Reclamation.TimeSeries.TimeInterval.Daily, ctrl);

            ReadSeries();
            hydrometDataTable.RowChanged += hydrometDataTable_RowChanged;
        }
コード例 #7
0
ファイル: SnowGG.cs プロジェクト: woohn/Pisces
        void Reset()
        {
            var t  = DateTime.Now;
            int wy = t.Year;

            if (t.Month >= 10)
            {
                wy++;
            }

            this.yearSelector1.SelectedYears = new Int32[] { wy--, wy };
            var t2 = t.AddMonths(1);


            if (t.Month == 9)
            {
                this.monthRangePicker1.MonthDayRange = new MonthDayRange(10, 1, 9, 30);
            }
            else
            {
                this.monthRangePicker1.MonthDayRange = new MonthDayRange(10, 1, t2.Month, DateTime.DaysInMonth(t2.Year, t2.Month));
            }

            //this.comboBoxPcode.SelectedIndex = 0;
            this.checkBoxGP.Visible    = HydrometInfoUtility.HydrometServerFromPreferences() == HydrometHost.GreatPlains;
            this.checkBoxMpoll.Visible = HydrometInfoUtility.HydrometServerFromPreferences() != HydrometHost.GreatPlains;
            if (this.checkBoxMpoll.Visible)
            {
                this.checkBoxGP.Checked = false;
            }
            if (this.checkBoxGP.Visible)
            {
                this.checkBoxMpoll.Checked = false;
            }
        }
コード例 #8
0
        public RatingTableSelector()
        {
            InitializeComponent();


            DataTable tbl = new DataTable();
            var       svr = HydrometInfoUtility.HydrometServerFromPreferences();

            if (svr == HydrometHost.GreatPlains)
            {
                string fn = Path.Combine("gp", "ratingtables.csv");
                fn = FileUtility.GetFileReference(fn);

                tbl = new CsvFile(fn);
                var c = tbl.Columns.Add("name");
                c.DefaultValue = "";
            }
            else
            {
                tbl = WebTable();
            }


            dataGridView1.DataSource         = tbl;
            dataGridView1.ReadOnly           = true;
            dataGridView1.AllowUserToAddRows = false;
            buttonOk.Enabled = false;
        }
コード例 #9
0
ファイル: ImportDaily.cs プロジェクト: muguangyuze/Pisces
        private void buttonRefresh_Click(object sender, EventArgs e)
        {
            try
            {
                labelStatus.Text = "Reading";

                Cursor = Cursors.WaitCursor;
                Sync();
                Application.DoEvents();
                DateTime t1 = this.timeSelectorBeginEnd1.T1;
                DateTime t2 = this.timeSelectorBeginEnd1.T2;

                ReadExternalData(t1, t2);

                labelStatus.Text = "found " + externalSeries.Count + " records in " + GetSourceType().ToString();
                Application.DoEvents();


                HydrometHost svr = HydrometInfoUtility.HydrometServerFromPreferences();

                hmet = new HydrometDailySeries(textBoxcbtt.Text.Trim(),
                                               textBoxPcode.Text.Trim(), svr);
                hmet.Read(t1, t2);


                int hmetCount = hmet.Count - hmet.CountMissing();
                labelStatus.Text += " and " + hmetCount + " records in hydromet";
                Application.DoEvents();

                SeriesList list = new SeriesList();
                list.Add(externalSeries);
                list.Add(hmet);

                this.teeChartExplorerView1.SeriesList = list;
                //this.timeSeriesGraph1.Series = list;
                this.teeChartExplorerView1.Draw();
                //this.timeSeriesGraph1.Draw(true);


                Series diff = hmet - externalSeries;

                SeriesList list2 = new SeriesList();
                list2.Add(diff);
                timeSeriesGraph2.Series = list2;

                timeSeriesGraph2.Draw(true);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + " \n" + ex.StackTrace);
            }
            finally
            {
                Cursor = Cursors.Default;
            }
        }
コード例 #10
0
ファイル: SaveOptions.cs プロジェクト: usbr/HydrometTools
        private void Init()
        {
            SaveToVMS           = UserPreference.Lookup("SaveToVMS") == "True";
            ComputeDependencies = UserPreference.Lookup("ComputeDependencies") == "True";
            if (m_interval == TimeInterval.Monthly)
            {
                checkBoxDependencies.Enabled = false;
                checkBoxDependencies.Checked = false;
            }
            HydrometHost svr = HydrometInfoUtility.HydrometServerFromPreferences();

            this.checkBoxSaveVMS.Enabled = !(svr == HydrometHost.PNLinux || svr == HydrometHost.YakimaLinux);
        }
コード例 #11
0
ファイル: FcPlotUI.cs プロジェクト: usbr/HydrometTools
 private void comboBoxSite_DropDown(object sender, EventArgs e)
 {
     HydrometServer = HydrometInfoUtility.HydrometServerFromPreferences();
     this.comboBoxSite.Items.Clear();
     // load QU locations
     if (HydrometInfoUtility.HydrometServerFromPreferences() == HydrometHost.GreatPlains)
     {
         this.comboBoxSite.Items.AddRange(FcPlotDataSet.GetNames("GP"));
     }
     else
     {
         this.comboBoxSite.Items.AddRange(FcPlotDataSet.GetNames("PN"));
     }
 }
コード例 #12
0
ファイル: SnowGG.cs プロジェクト: woohn/Pisces
        private void AddStatistics(SeriesList wyList)
        {
            bool anyStats = checkBoxMax.Checked || checkBoxMin.Checked || checkBoxAvg.Checked || checkBoxPctls.Checked;

            if (!anyStats)
            {
                return;
            }

            int y1 = 1990;
            int y2 = 2011;

            int[] pctls = new int[] { };

            int.TryParse(this.textBoxWY1.Text, out y1);
            int.TryParse(this.textBoxWY2.Text, out y2);

            if (checkBoxPctls.Checked)
            {
                try
                {
                    string   values = textBoxPctls.Text;
                    string[] tokens = values.Split(',');
                    pctls = Array.ConvertAll <string, int>(tokens, int.Parse);
                }
                catch
                {
                    pctls = new int[] { 10, 50, 90 };
                }
            }

            DateTime t1 = new DateTime(y1 - 1, 10, 1);
            DateTime t2 = new DateTime(y2, 9, 30);

            var    server = HydrometInfoUtility.HydrometServerFromPreferences();
            Series s      = new HydrometDailySeries(comboBoxCbtt.Text.Trim(), DeterminePcode(), server);

            s.Read(t1, t2);
            s.RemoveMissing();
            s.Appearance.LegendText = "";

            YearRange yr   = new YearRange(2000, 10);
            var       list = Math.SummaryHydrograph(s, pctls, yr.DateTime1, checkBoxMax.Checked, checkBoxMin.Checked, checkBoxAvg.Checked, false); //, false);


            wyList.Add(list);
        }
コード例 #13
0
ファイル: ImportDaily.cs プロジェクト: woohn/Pisces
        private void buttonSave_Click(object sender, EventArgs e)
        {
            if (externalSeries == null || hmet == null)
            {
                MessageBox.Show("can not save. please try loading data");
                return;
            }

            string cbtt  = textBoxcbtt.Text.Trim().ToUpper();
            string pcode = textBoxPcode.Text.Trim().ToUpper();



            string fileName = FileUtility.GetTempFileName(".txt"); //"update" + DateTime.Now.ToString("yyyyMMMdd") + ".txt";

            int counter = WriteArchivesImportFile(cbtt, pcode, fileName, GetSourceType());

            labelStatus.Text = "Saved  " + counter + " records to file " + fileName;
            Application.DoEvents();


            if (counter == 0)
            {
                return;
            }

            Login login = new Login();

            bool admin = Login.AdminPasswordIsValid();

            if (!admin)
            {
                MessageBox.Show("You must enter the administrator password in the setup tab for this feature to work");
            }

            HydrometHost svr = HydrometInfoUtility.HydrometServerFromPreferences();

            if (svr == HydrometHost.GreatPlains &&
                admin && login.ShowDialog() == DialogResult.OK)
            {
                SaveToVMS(fileName, login);
            }
            else if (admin)
            {
                SaveToLinux(fileName);
            }
        }
コード例 #14
0
        private void buttonGo_Click(object sender, EventArgs e)
        {
            Cursor = Cursors.WaitCursor;
            Application.DoEvents();
            try
            {
                HydrometHost svr = HydrometInfoUtility.HydrometServerFromPreferences();

                int yr = 2000;
                if (multi.cbtt.Trim() != "")
                {
                    var s    = HydrometDailySeries.GetMultiYearAverage(multi.cbtt, multi.pcode, svr, multi.T1, multi.T2);
                    var list = new SeriesList();
                    list.Add(s);
                    view.SeriesList = list;
                    view.Draw();
                    Application.DoEvents();
                    // comparison period
                    if (compare.cbtt.Trim() != "")
                    {
                        var s2 = HydrometDailySeries.GetMultiYearAverage(compare.cbtt, compare.pcode, svr, compare.T1, compare.T2);
                        list.Add(s2);
                    }
                    if (textBoxCompareSingleYear.Text.Trim() != "" &&
                        textBoxSingleYearCbtt.Text.Trim() != "" &&
                        int.TryParse(this.textBoxCompareSingleYear.Text, out yr))
                    {
                        yr = Convert.ToInt32(textBoxCompareSingleYear.Text);
                        DateTime t1 = new DateTime(yr - 1, 10, 1);
                        DateTime t2 = new DateTime(yr, 9, 30);

                        Series s3 = HydrometDailySeries.Read(textBoxSingleYearCbtt.Text, textBoxSingleYearPcode.Text, t1, t2, svr);
                        s3 = Reclamation.TimeSeries.Math.ShiftToYear(s3, 2000);
                        s3.Appearance.LegendText = yr.ToString();
                        list.Add(s3);
                    }

                    view.SeriesList = list;
                    view.Draw();
                }
            }
            finally
            {
                Cursor = Cursors.Default;
            }
        }
コード例 #15
0
ファイル: Database.cs プロジェクト: usbr/HydrometTools
        public static PostgreSQL GetServer(string dbname)
        {
            var pw = GetPassword();

            if (pw == "")
            {
                throw new Exception("Error: the password is blank. Please set this in the settings tab");
            }
            HydrometHost h      = HydrometInfoUtility.HydrometServerFromPreferences();
            var          server = ConfigurationManager.AppSettings["PostgresServer"];

            if (h == HydrometHost.YakimaLinux)
            {
                server = ConfigurationManager.AppSettings["YakimaPostgresServer"];
            }

            BasicDBServer svr = PostgreSQL.GetPostgresServer(dbname, server, password: pw);

            return(svr as PostgreSQL);
        }
コード例 #16
0
        private void SaveToLinux(string filename)
        {
            HydrometHost svr = HydrometInfoUtility.HydrometServerFromPreferences();

            if (svr == HydrometHost.PNLinux)
            { // saving to Postgresql/Linux
                if (Database.IsPasswordBlank())
                {
                    updateStatus("Warning: the database password is blank.", true);
                    return;
                }

                SaveOptions o = new SaveOptions(TimeInterval.Daily);
                if (o.ShowDialog() == DialogResult.OK)
                {
                    Logger.WriteLine("Pisces import: " + filename, "ui");
                    Database.ImportVMSTextFile(filename, o.ComputeDependencies);
                }
            }
        }
コード例 #17
0
ファイル: MaxStat.cs プロジェクト: usbr/HydrometTools
        private void buttonGo_Click(object sender, EventArgs e)
        {
            Cursor = Cursors.WaitCursor;
            Application.DoEvents();
            try
            {
                MonthDayRange range = monthDayRangePicker1.MonthDayRange;



                string cbtt  = multiWaterYearSelector1.cbtt;
                string pcode = multiWaterYearSelector1.pcode;

                //var s = Reclamation.TimeSeries.Math.HydrometDaily(cbtt, pcode);

                var          t1  = multiWaterYearSelector1.T1;
                var          t2  = multiWaterYearSelector1.T2;
                HydrometHost svr = HydrometInfoUtility.HydrometServerFromPreferences();

                var s = HydrometDailySeries.Read(cbtt, pcode, t1, t2, svr);

                var rvalMax = Reclamation.TimeSeries.Math.AnnualMax(s, range, range.Month1);
                var rvalMin = Reclamation.TimeSeries.Math.AnnualMin(s, range, range.Month1);

                rvalMax.Appearance.LegendText = cbtt.ToUpper() + " " + pcode.ToUpper() + " Maximum in Range";
                rvalMin.Appearance.LegendText = cbtt.ToUpper() + " " + pcode.ToUpper() + " Minimum in Range";

                var list = new SeriesList();

                list.Add(rvalMax);
                list.Add(rvalMin);

                view.SeriesList = list;
                view.Draw();
            }
            finally
            {
                Cursor = Cursors.Default;
            }
        }
コード例 #18
0
ファイル: FcPlotUI.cs プロジェクト: usbr/HydrometTools
 public FcPlotUI()
 {
     InitializeComponent();
     optionalPercents = new int[] { };
     // Show targets by default from Jan-Jul
     if (DateTime.Now.Month <= 7)
     {
         this.showTarget.Checked = true;
     }
     if (compilePublic)
     {
         this.checkBoxDashed.Visible           = false;
         this.checkBoxOverrideFcast.Visible    = false;
         this.showTarget.Visible               = false;
         this.showGreenLines.Visible           = false;
         this.textBoxOverrideFcast.Visible     = false;
         this.textBoxTargetPercentages.Visible = false;
         this.buttonOpsMenu.Visible            = false;
         this.tabControl1.Controls.Remove(this.tabPageReport);
     }
     HydrometServer = HydrometInfoUtility.HydrometServerFromPreferences();
 }
コード例 #19
0
        private void ReadSettings()
        {
            var svr = HydrometInfoUtility.HydrometServerFromPreferences();

            if (svr == HydrometHost.PN)
            {
                this.radioButtonPnHydromet.Checked = true;
            }
            else
            if (svr == HydrometHost.PNLinux)
            {
                this.radioButtonBoiseLinux.Checked = true;
            }
            else
            if (svr == HydrometHost.Yakima)
            {
                this.radioButtonYakHydromet.Checked = true;
            }
            else
            if (svr == HydrometHost.GreatPlains)
            {
                this.radioButtonGP.Checked = true;
            }
        }
コード例 #20
0
ファイル: Database.cs プロジェクト: usbr/HydrometTools
        internal static TimeSeriesDatabase DB()
        {
            HydrometHost h = HydrometInfoUtility.HydrometServerFromPreferences();

            var dbname = UserPreference.Lookup("TimeSeriesDatabaseName");

            if (File.Exists(dbname))
            { // local sqlite
                Logger.WriteLine("reading: " + dbname);
                var x = TryLocalDatabase(dbname, h);
                if (x != null)
                {
                    return(x);
                }
            }

            if (s_db == null || s_db.Server.Name != dbname ||
                HydrometHostDiffers(h))
            {
                if (IsPasswordBlank())
                {
                    return(null);
                }

                BasicDBServer svr = GetServer(dbname);
                if (svr == null)
                {
                    return(null);
                }
                s_db = new TimeSeriesDatabase(svr, LookupOption.TableName, false);
                s_db.Parser.VariableResolver = new HydrometVariableResolver(h);
                s_db.Parser.VariableResolver.LookupOption = LookupOption.TableName;
            }

            return(s_db);
        }
コード例 #21
0
ファイル: PiscesForm.cs プロジェクト: govtmirror/Pisces
        private void ProcessSelectedSeries(SeriesProcess process, Series[] list)
        {
            DateTime t1 = DateTime.Now.AddDays(-7);
            DateTime t2 = DateTime.Now.Date.AddHours(23).AddMinutes(59).AddSeconds(59);

            //Series[] list = tree1.GetSelectedSeries();

            // Causing stange results when using Hydromet years 9999, 7170,
            // added extract check (not into the future)
            PeriodOfRecord p = list[0].GetPeriodOfRecord();

            if (list.Length > 0 && p.Count > 0 && p.T2 < DateTime.Now.Date) // begin at the end of data
            {
                t1 = p.T2;
            }

            for (int i = 1; i < list.Length; i++)
            {
                PeriodOfRecord por = list[i].GetPeriodOfRecord();
                if (por.Count > 0 && por.T2 < t1 && por.T2 < DateTime.Now.Date)
                {
                    t1 = por.T2;
                }
            }

            try
            {
                Update u = new Update(t1, t2, process);

                if (u.ShowDialog() == DialogResult.OK)
                {
                    ShowAsBusy("");
                    Logger.WriteLine(process + " t1 = " + u.T1 + " t2= " + u.T2);
                    for (int i = 0; i < list.Length; i++)
                    {
                        Logger.WriteLine(process.ToString() + " " + list[i].Name);
                        Application.DoEvents();

                        if (process == SeriesProcess.Update && !(list[i] is CalculationSeries))
                        {
                            list[i].Update(u.T1, u.T2);
                        }
                        if (process == SeriesProcess.Calculate || list[i] is CalculationSeries)
                        {
                            var cs = list[i] as CalculationSeries;
                            if (DB.Settings.ReadBoolean("HydrometVariableResolver", false))
                            { // this reads data from hydromet server, over http, instead of 'this' database
                                var svr = HydrometInfoUtility.HydrometServerFromPreferences();
                                cs.Parser.VariableResolver = new HydrometVariableResolver(svr);
                            }

                            if (u.FullPeriodOfRecord)
                            {
                                cs.Calculate();
                            }
                            else
                            {
                                cs.Calculate(u.T1, u.T2);
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
            finally
            {
                ShowAsReady("");
            }
        }
コード例 #22
0
ファイル: SnowGG.cs プロジェクト: woohn/Pisces
        private void buttonRefresh_Click(object sender, EventArgs e)
        {
            try
            {
                timeSeriesGraph1.AnnotationOnMouseMove = checkBoxAnnotate.Checked;
                Cursor = Cursors.WaitCursor;
                Application.DoEvents();
                string pcodeOrig = DeterminePcode();

                timeSeriesGraph1.Clear();

                string cbttOrig = comboBoxCbtt.Text.Trim();
                string cbtt = cbttOrig, pcode = pcodeOrig;

                var seriesList = new List <string>();
                if ((cbttOrig.Trim() == "" || pcodeOrig.Trim() == "") && textBoxMultiple.Text == "")
                {
                    return;
                }
                else
                {
                    if (!checkBoxUseList.Checked)
                    {
                        UserPreference.Save("Snowgg->cbtt", cbttOrig);
                        UserPreference.Save("Snowgg->pcode", comboBoxPcode.Text.Trim());
                        seriesList.Add(cbttOrig + "_" + pcodeOrig);
                    }
                    else
                    {
                        var seriesItems = textBoxMultiple.Text.Split(',');
                        foreach (string item in seriesItems)
                        {
                            if (item.Trim().Split(' ').Length == 2)
                            {
                                seriesList.Add(item.Trim().Split(' ')[0] + "_" + item.Trim().Split(' ')[1]);
                            }
                        }
                    }
                }

                int[]      waterYears            = this.yearSelector1.SelectedYears;
                SeriesList finalSeriesCollection = new SeriesList();
                foreach (string series in seriesList)
                {
                    cbtt = series.Split('_')[0];
                    comboBoxCbtt.Text  = cbtt;
                    pcode              = series.Split('_')[1];
                    comboBoxPcode.Text = pcode;
                    var server = HydrometInfoUtility.HydrometServerFromPreferences();
                    var range  = monthRangePicker1.MonthDayRange;

                    Series s  = new HydrometDailySeries(cbtt, pcode, server);
                    var    sl = new SeriesList();
                    sl.Add(s);

                    var wyList = PiscesAnalysis.WaterYears(sl, waterYears, false, 10, true);

                    foreach (var item in wyList)
                    {
                        item.Name = cbtt + " " + pcode;
                    }


                    wyList = ApplyDeltas(wyList, waterYears);
                    AddStatistics(wyList);

                    if (checkBoxGP.Checked)
                    {
                        GPAverage(cbtt, server, range, wyList);
                    }

                    var mp = ReadMpollData(pcode, cbtt);
                    mp.RemoveMissing();
                    if (mp.Count > 0)
                    {
                        wyList.Add(mp);
                    }

                    // remove months outside selected range
                    var list = FilterBySelectedRange(range, wyList);
                    finalSeriesCollection.Add(list);
                }

                // Set series line colors
                var uniqueSeriesNames  = new List <string>();
                var uniqueSeriesColors = new List <string>();
                int colorCounter       = 0;
                foreach (var item in finalSeriesCollection)
                {
                    // set line color by year which is identified in the legendtext field
                    if (!uniqueSeriesNames.Contains(item.Appearance.LegendText) && !item.Appearance.LegendText.Contains("%") &&
                        !item.Appearance.LegendText.Contains("avg") && !item.Appearance.LegendText.Contains("max") && !item.Appearance.LegendText.Contains("min"))
                    {
                        uniqueSeriesNames.Add(item.Appearance.LegendText);//.Name);
                        uniqueSeriesColors.Add(snowGgColors[colorCounter]);
                        colorCounter = (colorCounter + 1) % snowGgColors.Count;
                    }
                }
                foreach (var item in finalSeriesCollection)
                {
                    try
                    {
                        int colIdx = uniqueSeriesNames.IndexOf(item.Appearance.LegendText);//.Name);
                        item.Appearance.Color = uniqueSeriesColors[colIdx];
                    }
                    catch
                    {
                        item.Appearance.Color = "Black";
                    }
                }

                this.timeSeriesGraph1.AnalysisType = AnalysisType.WaterYears;
                this.timeSeriesGraph1.Series       = finalSeriesCollection;
                if (seriesList.Count == 1)
                {
                    this.timeSeriesGraph1.Title = HydrometInfoUtility.LookupSiteDescription(cbtt) + "  Elevation:" + HydrometInfoUtility.LookupElevation(pcode);
                }
                //timeSeriesGraph1.GraphSettings = GetGraphSettings();

                this.timeSeriesGraph1.Draw(true);

                comboBoxCbtt.Text  = cbttOrig;
                comboBoxPcode.Text = pcodeOrig;

                timeSeriesGraph1.GraphSettings = GetGraphSettings();
            }
            finally
            {
                Cursor = Cursors.Default;
            }
        }
コード例 #23
0
ファイル: SnowGG.cs プロジェクト: muguangyuze/Pisces
        private void buttonRefresh_Click(object sender, EventArgs e)
        {
            try
            {
                timeSeriesGraph1.AnnotationOnMouseMove = checkBoxAnnotate.Checked;
                Cursor = Cursors.WaitCursor;
                Application.DoEvents();
                string pcode = DeterminePcode();

                timeSeriesGraph1.Clear();

                string cbtt = comboBoxCbtt.Text.Trim();

                if (cbtt.Trim() == "" || pcode.Trim() == "")
                {
                    return;
                }

                UserPreference.Save("Snowgg->cbtt", cbtt);
                UserPreference.Save("Snowgg->pcode", comboBoxPcode.Text.Trim());

                int[] waterYears = this.yearSelector1.SelectedYears;
                var   server     = HydrometInfoUtility.HydrometServerFromPreferences();
                var   range      = monthRangePicker1.MonthDayRange;

                Series s  = new HydrometDailySeries(cbtt, pcode, server);
                var    sl = new SeriesList();
                sl.Add(s);

                var wyList = PiscesAnalysis.WaterYears(sl, waterYears, false, 10, true);

                AddStatistics(wyList);

                if (checkBoxGP.Checked)
                {
                    GPAverage(cbtt, server, range, wyList);
                }

                var mp = ReadMpollData(pcode, cbtt);
                mp.RemoveMissing();
                if (mp.Count > 0)
                {
                    wyList.Add(mp);
                }

                // remove months outside selected range
                var list = FilterBySelectedRange(range, wyList);

                this.timeSeriesGraph1.AnalysisType = AnalysisType.WaterYears;
                this.timeSeriesGraph1.Series       = list;
                this.timeSeriesGraph1.Title        = HydrometInfoUtility.LookupSiteDescription(cbtt) + "  Elevation:" + HydrometInfoUtility.LookupElevation(cbtt);
                this.timeSeriesGraph1.Draw(true);


                timeSeriesGraph1.GraphSettings = GetGraphSettings();
            }
            finally
            {
                Cursor = Cursors.Default;
            }
        }
コード例 #24
0
 public AdvancedControl()
 {
     InitializeComponent();
     this.gpFixInflow1.buttonRun.Enabled = HydrometInfoUtility.HydrometServerFromPreferences() == HydrometHost.GreatPlains;
 }
コード例 #25
0
ファイル: FormMain.cs プロジェクト: muguangyuze/HydrometTools
        private void UpdateTabs()
        {
            if (tabControl1.SelectedTab == tabPageAdvanced && advanced == null)
            {
                if (Login.AdminPasswordIsValid())
                {
                    advanced        = new AdvancedControl();
                    advanced.Parent = tabPageAdvanced;
                    advanced.Dock   = DockStyle.Fill;
                }
            }

            if (tabControl1.SelectedTab == tabPageArc && arcEditor == null)
            {
                arcEditor        = new TimeSeriesEditor(TimeInterval.Daily);
                arcEditor.Parent = tabPageArc;
                arcEditor.Dock   = DockStyle.Fill;
            }
            else
            if (tabControl1.SelectedTab == tabPageDay && dayEditor == null)
            {
                dayEditor        = new TimeSeriesEditor(TimeInterval.Irregular);
                dayEditor.Parent = tabPageDay;
                dayEditor.Dock   = DockStyle.Fill;
            }
            else
            if (tabControl1.SelectedTab == tabPageMPoll && mpollEditor == null)
            {
                HydrometHost svr = HydrometInfoUtility.HydrometServerFromPreferences();

                mpollEditor        = new TimeSeriesEditor(TimeInterval.Monthly);
                mpollEditor.Parent = tabPageMPoll;
                mpollEditor.Dock   = DockStyle.Fill;
            }
            else if (tabControl1.SelectedTab == tabPageSetup)
            {
                if (setup1 == null)
                {
                    setup1        = new Settings();
                    setup1.Parent = tabPageSetup;
                    setup1.Dock   = DockStyle.Fill;
                }
                setup1.ReadUserPref();
            }
            //else if( tabControl1.SelectedTab == tabPageGraphTool && graphTabs == null)
            //{
            //    graphTabs = new Graphing.GraphingTabs();
            //    graphTabs.Parent = tabPageGraphTool;
            //    graphTabs.Dock = DockStyle.Fill;
            //}
            else if (tabControl1.SelectedTab == tabPageHydrographEditor && hydroEditor == null)
            {
                hydroEditor        = new TimeSeriesHydrographEditor(TimeInterval.Daily);
                hydroEditor.Parent = tabPageHydrographEditor;
                hydroEditor.Dock   = DockStyle.Fill;
            }
            else if (tabControl1.SelectedTab == tabPageFcplot && fcUi == null)
            {
                fcUi        = new FcPlot.FcPlotUI();
                fcUi.Parent = tabPageFcplot;
                fcUi.Dock   = DockStyle.Fill;
            }
            else if (tabControl1.SelectedTab == tabPageStats && statsControl1 == null)
            {
                statsControl1        = new Stats.StatsControl();
                statsControl1.Parent = tabPageStats;
                statsControl1.Dock   = DockStyle.Fill;
            }
            else if (tabControl1.SelectedTab == tabPageReports && reportControl1 == null)
            {
                reportControl1        = new Reports.Reports(); //new Reports.YakimaStatus();
                reportControl1.Parent = tabPageReports;
                reportControl1.Dock   = DockStyle.Fill;
            }
            else if (tabControl1.SelectedTab == tabPageSnowGG && snowGG1 == null)
            {
                snowGG1        = new SnowGG.SnowGG();
                snowGG1.Parent = tabPageSnowGG;
                snowGG1.Dock   = DockStyle.Fill;
            }
            else if (tabControl1.SelectedTab == tabPageUpdater && import1 == null)
            {
                import1        = new ImportDaily();
                import1.Parent = tabPageDailyImport;
                import1.Dock   = DockStyle.Fill;

                var fdr = new Import.ImportFDRTemperature();
                fdr.Parent = tabPageFdrImport;
                fdr.Dock   = DockStyle.Fill;
            }
            else if (tabControl1.SelectedTab == tabPageRecords && records == null)
            {
                records        = new DailyRecordWorkup();
                records.Parent = tabPageRecords;
                records.Dock   = DockStyle.Fill;
            }

            if (tabControl1.SelectedTab == tabPageShifts && shifts == null)
            {
                shifts        = new Shift.ShiftInput();
                shifts.Parent = tabPageShifts;
                shifts.Dock   = DockStyle.Fill;
            }

            if (tabPageFcplot == null)
            {
                if (FcPlotDataSet.HasRuleCurves())
                {
                    fcUi        = new FcPlot.FcPlotUI();
                    fcUi.Parent = tabPageFloodControl;
                    fcUi.Dock   = DockStyle.Fill;
                }
                else
                {
                    this.tabControl1.TabPages.Remove(tabPageFcplot);
                }
            }
        }
コード例 #26
0
        private DataTable GetTimeSeries()
        {
            HydrometHost svr = HydrometInfoUtility.HydrometServerFromPreferences();

            string query = comboBoxInputs.Text.Trim();

            if (m_db == TimeInterval.Daily)
            {
                if (CbttOnly(query))
                {
                    string[] pcodes = HydrometInfoUtility.ArchiveParameters(query);
                    if (pcodes.Length > 0)
                    {
                        query = query + " " + String.Join(",", pcodes);
                    }
                }
                string[] tokens = query.Split(' ');
                if (tokens.Length != 2)
                {
                    return(new DataTable());
                }

                string cbtt  = tokens[0];
                string pcode = tokens[1];
                Series s     = new HydrometDailySeries(cbtt, pcode, HydrometInfoUtility.HydrometServerFromPreferences());
                var    sl    = new SeriesList();
                sl.Add(s);

                int beginningMonth = 1;
                if (checkBoxWaterYear.Checked)
                {
                    beginningMonth = 10;
                }

                var wyList = PiscesAnalysis.WaterYears(sl, this.yearSelector1.SelectedYears, false, beginningMonth, true);

                if (checkBoxCelsius.Checked)
                {
                    for (int i = 0; i < wyList.Count; i++)
                    {
                        s = wyList[i];
                        if (s.Units.ToLower() == "degrees f")
                        {
                            Reclamation.TimeSeries.Math.ConvertUnits(s, "degrees C");
                        }
                    }
                }

                // remove months outside selected range
                var list = FilterBySelectedRange(this.monthRangePicker1.MonthDayRange, wyList);


                return(list.ToDataTable(true));
                // return HydrometUtility.ArchiveTable(svr,query, T1, T2);
            }
            //else
            //    if (m_db == HydrometDataBase.Dayfiles)
            //    {

            //        if (CbttOnly(query))
            //        {
            //            string[] pcodes = Hydromet.DayfileParameters(query);
            //            if (pcodes.Length > 0)
            //            {
            //                query = query + " " + String.Join(",", pcodes);
            //            }
            //        }
            //        return HydrometUtility.DayFilesTable(svr,query, T1, T2);
            //    }
            //    else
            //        if (m_db == HydrometDataBase.MPoll)
            //        {

            //            return HydrometUtility.MPollTable(svr,query, T1, T2);
            //        }

            return(new DataTable());
        }
コード例 #27
0
        private void refresh()
        {
            try
            {
                updateStatus("Reading Data...");

                Cursor = Cursors.WaitCursor;
                Sync();
                Application.DoEvents();
                DateTime t1 = this.timeSelectorBeginEnd1.T1;
                DateTime t2 = this.timeSelectorBeginEnd1.T2;

                Application.DoEvents();

                HydrometHost svr = HydrometInfoUtility.HydrometServerFromPreferences();
                hmet = new HydrometDailySeries(textBoxcbtt.Text.Trim(),
                                               textBoxPcode.Text.Trim(), svr);
                hmet.Read(t1, t2);
                int hmetCount = hmet.Count - hmet.CountMissing();

                ReadDailyExternalData(t1, t2);

                updateStatus("Found " + externalSeries.Count + " record(s) in " + GetSourceType().ToString() + " and " + hmetCount + " record(s) in hydromet");

                Application.DoEvents();
                SeriesList list = new SeriesList();
                list.Add(externalSeries);
                list.Add(hmet);

                this.teeChartExplorerView1.SeriesList = list;
                this.teeChartExplorerView1.SeriesList[0].Appearance.Color = "black";
                this.teeChartExplorerView1.SeriesList[1].Appearance.Color = "blue";
                //this.timeSeriesGraph1.Series = list;
                this.teeChartExplorerView1.Draw();
                //this.timeSeriesGraph1.Draw(true);

                if (externalSeries.Count == 0)
                {
                    updateStatus("Online data source not found or has no data...", true);
                }
                else if (hmetCount == 0)
                {
                    updateStatus("No Hydromet data...", true);
                }
                else
                {
                    Series        diff      = hmet - externalSeries;
                    List <double> diffVals  = new List <double>(diff.Values);
                    int           diffCount = diffVals.Count(v => System.Math.Abs(v) > 0.05);
                    if (diffCount > 0)
                    {
                        updateStatus("Found " + externalSeries.Count + " record(s) in " + GetSourceType().ToString() +
                                     " and " + hmetCount + " record(s) in hydromet - " + diffCount + " record(s) need updates...", true);
                    }
                    else
                    {
                        updateStatus("Found " + externalSeries.Count + " record(s) in " + GetSourceType().ToString() +
                                     " and " + hmetCount + " record(s) in hydromet.");
                    }

                    SeriesList list2 = new SeriesList();
                    list2.Add(diff);
                    timeSeriesGraph2.Series = list2;
                    timeSeriesGraph2.Series[0].Appearance.Color = "red";
                    timeSeriesGraph2.Draw(true);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + " \n" + ex.StackTrace);
            }
            finally
            {
                Cursor = Cursors.Default;
            }
        }
コード例 #28
0
ファイル: SnowGG.cs プロジェクト: usbr/HydrometTools
        private void buttonRefresh_Click(object sender, EventArgs e)
        {
            try
            {
                timeSeriesGraph1.AnnotationOnMouseMove = checkBoxAnnotate.Checked;
                timeSeriesGraph1.AnnotationDateShift   = !cySelected;
                Cursor = Cursors.WaitCursor;
                Application.DoEvents();
                string pcodeOrig = DeterminePcode();

                timeSeriesGraph1.Clear();

                string cbttOrig = comboBoxCbtt.Text.Trim();
                string cbtt = cbttOrig, pcode = pcodeOrig;

                var seriesList = new List <string>();
                if ((cbttOrig.Trim() == "" || pcodeOrig.Trim() == "") && textBoxMultiple.Text == "")
                {
                    return;
                }
                else
                {
                    if (!checkBoxUseList.Checked)
                    {
                        UserPreference.Save("Snowgg->cbtt", cbttOrig);
                        UserPreference.Save("Snowgg->pcode", comboBoxPcode.Text.Trim());
                        seriesList.Add(cbttOrig + "_" + pcodeOrig);
                    }
                    else
                    {
                        var seriesItems = textBoxMultiple.Text.Split(',');
                        foreach (string item in seriesItems)
                        {
                            if (item.Trim().Split(' ').Length == 2)
                            {
                                seriesList.Add(item.Trim().Split(' ')[0] + "_" + item.Trim().Split(' ')[1]);
                            }
                        }
                    }
                }

                int[]      waterYears            = this.yearSelector1.SelectedYears;
                SeriesList finalSeriesCollection = new SeriesList();
                foreach (string series in seriesList)
                {
                    cbtt = series.Split('_')[0];
                    comboBoxCbtt.Text  = cbtt;
                    pcode              = series.Split('_')[1];
                    comboBoxPcode.Text = pcode;
                    var server = HydrometInfoUtility.HydrometServerFromPreferences();
                    var range  = monthRangePicker1.MonthDayRange;

                    Series s;
                    if (this.checkBoxUseInstant.Checked)
                    {
                        s = new HydrometInstantSeries(cbtt, pcode, server);
                    }
                    else
                    {
                        s = new HydrometDailySeries(cbtt, pcode, server);
                    }
                    var sl = new SeriesList();
                    sl.Add(s);

                    // get wy data
                    var wyList = new SeriesList();
                    if (cySelected)
                    {
                        wyList = PiscesAnalysis.WaterYears(sl, waterYears, false, 1, true);
                    }
                    else
                    {
                        wyList = PiscesAnalysis.WaterYears(sl, waterYears, false, 10, true);
                    }

                    foreach (Series item in wyList)
                    {
                        item.Name = cbtt + " " + pcode;
                        // remove missing data points
                        var missingItems = item.Table.Select("value = 998877");
                        foreach (var row in missingItems)
                        {
                            item.RemoveAt(item.IndexOf(Convert.ToDateTime(row.ItemArray[0])));
                        }
                    }

                    // apply deltas and add stats if toggled
                    wyList = ApplyDeltas(wyList, waterYears);
                    AddStatistics(wyList);

                    if (checkBoxGP.Checked)
                    {
                        GPAverage(cbtt, server, range, wyList);
                    }

                    // remove months outside selected range
                    var list = FilterBySelectedRange(range, wyList);
                    finalSeriesCollection.Add(list);
                }

                // Set series line colors
                var uniqueSeriesNames  = new List <string>();
                var uniqueSeriesColors = new List <string>();
                int colorCounter       = 0;
                foreach (var item in finalSeriesCollection)
                {
                    // set line color by year which is identified in the legendtext field
                    if (!uniqueSeriesNames.Contains(item.Appearance.LegendText) && !item.Appearance.LegendText.Contains("%") &&
                        !item.Appearance.LegendText.Contains("avg") && !item.Appearance.LegendText.Contains("max") && !item.Appearance.LegendText.Contains("min"))
                    {
                        uniqueSeriesNames.Add(item.Appearance.LegendText);//.Name);
                        uniqueSeriesColors.Add(snowGgColors[colorCounter]);
                        colorCounter = (colorCounter + 1) % snowGgColors.Count;
                    }
                }
                foreach (var item in finalSeriesCollection)
                {
                    try
                    {
                        int colIdx = uniqueSeriesNames.IndexOf(item.Appearance.LegendText);//.Name);
                        item.Appearance.Color = uniqueSeriesColors[colIdx];
                    }
                    catch
                    {
                        item.Appearance.Color = "SlateGray"; //System.Drawing.KnownColor.SlateGray
                    }
                }

                this.timeSeriesGraph1.AnalysisType = AnalysisType.WaterYears;
                this.timeSeriesGraph1.Series       = finalSeriesCollection;
                if (seriesList.Count == 1)
                {
                    this.timeSeriesGraph1.Title = HydrometInfoUtility.LookupSiteDescription(cbtt) + "  Elevation:" + HydrometInfoUtility.LookupElevation(cbtt);
                }
                //timeSeriesGraph1.GraphSettings = GetGraphSettings();

                this.timeSeriesGraph1.Draw(true);

                comboBoxCbtt.Text  = cbttOrig;
                comboBoxPcode.Text = pcodeOrig;

                timeSeriesGraph1.GraphSettings = GetGraphSettings();
                this.dataGridView1.DataSource  = this.timeSeriesGraph1.Series.ToDataTable(true);
                this.dataGridView1.Columns[0].DefaultCellStyle.Format = "MMM-d";
                this.linkLabelReport.Visible = true;
            }
            finally
            {
                Cursor      = Cursors.Default;
                dataQueried = true;
            }
        }