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; }
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"); }
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; }
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; }
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); }
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; }
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; } }
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; }
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; } }
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); }
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")); } }
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); }
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); } }
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; } }
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); }
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); } } }
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; } }
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(); }
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; } }
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); }
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(""); } }
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; } }
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; } }
public AdvancedControl() { InitializeComponent(); this.gpFixInflow1.buttonRun.Enabled = HydrometInfoUtility.HydrometServerFromPreferences() == HydrometHost.GreatPlains; }
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); } } }
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()); }
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; } }
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; } }