/// <summary> /// Prints GEOJson dump of Sites /// </summary> /// <param name="requiredProperties">list of properties to include (if not found in siteproperties an empty string will be inserted)</param> /// <param name="propertyFilter">two part filter in property table i.e. 'program:agrimet'</param> public void Execute(string[] requiredProperties, string propertyFilter = "") { Console.Write("Content-Type: application/json\n\n"); var features = new List <Feature>(); FeatureCollection fc = new FeatureCollection(features); var sites = db.GetSiteCatalog(propertyFilter: propertyFilter); var siteProp = new TimeSeriesDatabaseDataSet.sitepropertiesDataTable(db); int id = 0; foreach (var s in sites) { var pos = new GeographicPosition(s.latitude, s.longitude); var pt = new GeoJSON.Net.Geometry.Point(pos); var props = siteProp.GetDictionary(s.siteid); for (int i = 0; i < requiredProperties.Length; i++) { if (requiredProperties[i].Trim() == "") { continue; } if (!props.ContainsKey(requiredProperties[i])) { props.Add(requiredProperties[i], ""); } } props.Add("siteid", s.siteid); props.Add("title", s.description); props.Add("state", s.state); props.Add("type", s.type); if (!props.ContainsKey("region")) { props.Add("region", s.agency_region); } props.Add("install", s.install); id++; var feature = new Feature(pt, props, id.ToString()); fc.Features.Add(feature); } var settings = new JsonSerializerSettings(); settings.NullValueHandling = NullValueHandling.Ignore; var json = Newtonsoft.Json.JsonConvert.SerializeObject(fc, Newtonsoft.Json.Formatting.Indented, settings); Console.WriteLine(json); //File.WriteAllText(@"c:\temp\test.json", json); }
public TimeSeriesDatabaseDataSet.sitepropertiesDataTable SiteProperties() { var rval = new TimeSeriesDatabaseDataSet.sitepropertiesDataTable(); var sql = "select * from siteproperties where siteid in ( " + "select siteid from seriescatalog where " + " isfolder = 0 and siteid='" + m_siteID + "' )"; m_db.Server.FillTable(rval, sql); return(rval); }
/* * "properties": { * "region": "pnro", * "title": "Afton, WY (AFTY)", * "url": "aftyda.html" */ static void Main(string[] args) { // read Existing JSON file var json = File.ReadAllText(@"V:\PN6200\Hydromet\Web\www.usbr.gov\agrimet\agrimetmap\usbr_map.json"); var collection = JsonConvert.DeserializeObject <FeatureCollection>(json); var svr = PostgreSQL.GetPostgresServer("timeseries", "lrgs1"); var db = new TimeSeriesDatabase(svr, Reclamation.TimeSeries.Parser.LookupOption.TableName); var sc = db.GetSiteCatalog("type = 'agrimet'"); var siteProp = new TimeSeriesDatabaseDataSet.sitepropertiesDataTable(db); Console.WriteLine(" Found " + sc.Rows.Count + " agrimet sites "); Console.WriteLine("site properties has " + siteProp.Rows.Count + " rows "); // update pisces URL form Json //InsertMontanaSitesFromJsonToPisces(collection, sc); foreach (var item in sc) { var feature = FindFeature(collection, item.siteid); if (feature == null) { Console.WriteLine("Site not found in JSON " + item.siteid); continue; } siteProp.Set("program", "agrimet", item.siteid); siteProp.Set("url", feature.Properties["url"].ToString(), item.siteid); siteProp.Set("region", feature.Properties["region"].ToString(), item.siteid); } Console.WriteLine("site properties has " + siteProp.Rows.Count + " rows "); int i = svr.SaveTable(siteProp); Console.WriteLine("saved " + i + " rows"); }
private void SetupComboBox() { comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems; m_props = m_db.GetSiteProperties(); m_sites = m_db.GetSiteCatalog(); var temp = m_sites.Copy(); // copy for the combo box (selection only) for (int i = 0; i < temp.Rows.Count; i++) { var r = temp.Rows[i]; r["description"] = r["siteid"].ToString().ToUpper() + " " + r["description"].ToString(); } comboBox1.DataSource = temp; comboBox1.ValueMember = "siteid"; comboBox1.DisplayMember = "description"; }
public SiteMetaData(TimeSeriesDatabase db) { m_db = db; InitializeComponent(); comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems; m_props = db.GetSiteProperties(); m_sites = db.GetSiteCatalog(); var temp = m_sites.Copy(); // copy for the combo box (selection only) for (int i = 0; i < temp.Rows.Count; i++) { var r = temp.Rows[i]; r["description"] = r["siteid"].ToString().ToUpper() + " " + r["description"].ToString(); } comboBox1.DataSource = temp; comboBox1.ValueMember = "description"; comboBox1.DisplayMember = "description"; }
public SiteMetaData(TimeSeriesDatabase db) { m_db = db; InitializeComponent(); comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems; m_props = db.GetSiteProperties(); m_sites = db.GetSiteCatalog(); var temp = m_sites.Copy(); // copy for the combo box (selection only) for (int i = 0; i < temp.Rows.Count; i++) { var r = temp.Rows[i]; r["description"] = r["siteid"].ToString().ToUpper() + " " + r["description"].ToString(); } comboBox1.DataSource = temp; comboBox1.ValueMember = "description"; comboBox1.DisplayMember = "description"; }
public TimeSeriesDatabaseDataSet.sitepropertiesDataTable SiteProperties() { var rval = new TimeSeriesDatabaseDataSet.sitepropertiesDataTable(); var sql = "select * from siteproperties where siteid in ( " + "select siteid from seriescatalog where " + " isfolder = 0 and siteid='" + m_siteID + "' )"; m_db.Server.FillTable(rval, sql); return rval; }