Пример #1
0
        /// <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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        /*
         * "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");
        }
Пример #4
0
        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";
        }
Пример #5
0
        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";
        }
Пример #6
0
        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";
        }
Пример #7
0
        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;
        }