예제 #1
0
        public ActionResult Charts(decimal objectid)
        {
            ViewBag.objectid = objectid;
            string DefaultConnection = Microsoft
                                       .Extensions
                                       .Configuration
                                       .ConfigurationExtensions
                                       .GetConnectionString(Startup.Configuration, "DefaultConnection");
            pasturepol pasturepol = new pasturepol();

            using (var connection = new NpgsqlConnection(DefaultConnection))
            {
                connection.Open();
                var pasturepols = connection.Query <pasturepol>($"SELECT gid, objectid, class_id, otdely_id, " +
                                                                $"subtype_id, group_id, ur_v, ur_l, ur_o, ur_z, korm_v, korm_l, korm_o, korm_z, " +
                                                                $"recommend_, recom_catt, relief_id, zone_id, haying_id, shape_leng, shape_area " +
                                                                $"FROM public.pasturepol " +
                                                                $"WHERE objectid = {objectid};");
                pasturepol           = pasturepols.FirstOrDefault();
                pasturepol.otdel     = _context.Otdel.FirstOrDefault(o => o.Code == pasturepol.otdely_id)?.Description;
                pasturepol.ptype     = _context.PType.FirstOrDefault(p => p.Code == pasturepol.class_id)?.Description;
                pasturepol.group     = _context.Soob.FirstOrDefault(s => s.Code == pasturepol.group_id)?.Description;
                pasturepol.group_lat = _context.Soob.FirstOrDefault(s => s.Code == pasturepol.group_id)?.DescriptionLat;
                pasturepol.recommend = _context.Recommend.FirstOrDefault(r => r.Code == pasturepol.recommend_)?.Description;
                pasturepol.recomcatt = _context.RecomCattle.FirstOrDefault(r => r.Code == pasturepol.recom_catt)?.Description;
            }
            ViewBag.pasturepol = pasturepol;
            return(View());
        }
예제 #2
0
        public async Task <IActionResult> GetPastureInfo(
            string objectid,
            string sourceproduct,
            string dataset,
            string year,
            string day)
        {
            string DefaultConnection = Microsoft
                                       .Extensions
                                       .Configuration
                                       .ConfigurationExtensions
                                       .GetConnectionString(Startup.Configuration, "DefaultConnection");
            pasturepol pasturepol = new pasturepol();

            using (var connection = new NpgsqlConnection(DefaultConnection))
            {
                connection.Open();
                var pasturepols = connection.Query <pasturepol>($"SELECT gid, objectid, class_id, otdely_id, " +
                                                                $"subtype_id, group_id, ur_v, ur_l, ur_o, ur_z, korm_v, korm_l, korm_o, korm_z, " +
                                                                $"recommend_, recom_catt, relief_id, zone_id, haying_id, shape_leng, shape_area " +
                                                                $"FROM public.pasturepol " +
                                                                $"WHERE objectid = {objectid};");
                pasturepol = pasturepols.FirstOrDefault();
            }
            pasturepol.otdel     = _context.Otdel.FirstOrDefault(o => o.Code == pasturepol.otdely_id)?.Description;
            pasturepol.ptype     = _context.PType.FirstOrDefault(p => p.Code == pasturepol.class_id)?.Description;
            pasturepol.group     = _context.Soob.FirstOrDefault(s => s.Code == pasturepol.group_id)?.Description;
            pasturepol.group_lat = _context.Soob.FirstOrDefault(s => s.Code == pasturepol.group_id)?.DescriptionLat;
            pasturepol.recommend = _context.Recommend.FirstOrDefault(r => r.Code == pasturepol.recommend_)?.Description;
            pasturepol.recomcatt = _context.RecomCattle.FirstOrDefault(r => r.Code == pasturepol.recom_catt)?.Description;

            string raster = "A" + year + day + "_" + sourceproduct + "_B01_NDVI_3857_KZ";

            if (dataset == "Anomaly")
            {
                raster += "_Anomaly";
            }
            raster += ".tif";
            analytic analytic = new analytic();

            if (!string.IsNullOrEmpty(sourceproduct))
            {
                using (var connection = new NpgsqlConnection(DefaultConnection))
                {
                    connection.Open();
                    string query = $"SELECT raster, min, max, median, majority, mean, objectid" +
                                   $" FROM public.analytics" +
                                   $" WHERE objectid = {objectid}" +
                                   $" AND raster = '{raster}';";
                    var analyticsDB = connection.Query <analytic>(query);
                    analytic = analyticsDB.Where(a => !a.raster.Contains("BASE")).FirstOrDefault();
                }
            }
            return(Json(new
            {
                pasturepol,
                analytic
            }));
        }