예제 #1
0
파일: Images.cs 프로젝트: jichu/Meteo
        private void LoadWindDirection(SourceImage si)
        {
            if (si.Type == "WIND")
            {
                string samplename = si.Path.Split('\\').Last().Split('.')[0];
                //Util.l($"Tady se budou načítat směry větrů pro {si.Path}:{si.Model}:{si.Submodel}:{si.Type}");
                //Util.l($"Cesty ke zpracování {si.Path}:{Util.pathSource["wrf_mask"]}:.\\config\\Model_WRF_NMM_FLYMET.bmp:");

                wrfSet = new Dictionary <string, string> {
                    { "source", si.Path },
                };

                Dictionary <string, string> wrf = WRF.Process(wrfSet);
                if (wrf != null)
                {
                    foreach (var r in wrf)
                    {
                        //Console.WriteLine(r.Key + "  " + r.Value);

                        CloudInputData inputORP = new CloudInputData(si.Model, si.Submodel, r.Key, samplename, Util.windDirectionToInt[r.Value], "REAL");
                        Util.l($"inputORP:{inputORP.id_model}:{inputORP.id_orp}:{inputORP.sample_name}:{inputORP.value}:{inputORP.region}:{inputORP.type}");
                        Model.Cloud.InputDataInsertOrUpdate(inputORP);
                    }
                }
            }
        }
예제 #2
0
 public CloudInputData(CloudInputData item)
 {
     id_model    = item.id_model;
     id_orp      = item.id_orp;
     sample_name = item.sample_name;
     value       = item.value;
     region      = item.region;
     type        = item.type;
 }
예제 #3
0
        public void InputData_InsertOrUpdateData()
        {
            //Ukázka přidání dat pro ORP

            /* CloudInputData inputORP = new CloudInputData("Model_ALADIN_CZ", "Teplota", "Beroun", "02", 2);
             * Util.l($"inputORP:{inputORP.id_model}:{inputORP.id_orp}:{inputORP.sample_name}:{inputORP.value}:{inputORP.region}");
             * Model.Cloud.InputDataInsertOrUpdate(inputORP);*/

            //Ukázka přidání dat pro Region
            CloudInputData inputREGION = new CloudInputData("Model_GFS_Austria_50km", "SI_index_GFS_MAIN", "Zlín", "03", 2);

            Util.l($"inputREGION:{inputREGION.id_model}:{inputREGION.id_orp}:{inputREGION.sample_name}:{inputREGION.value}:{inputREGION.region}");
            Model.Cloud.InputDataInsertOrUpdate(inputREGION);

            /*CloudInputData inputNOEXIST = new CloudInputData("Model_ALADIN_CZ", "Teplota", "Neexistující oblast", "02", 2);
             * Util.l($"inputNOEXIST:{inputNOEXIST.id_model}:{inputNOEXIST.id_orp}:{inputNOEXIST.sample_name}:{inputNOEXIST.value}:{inputNOEXIST.region}");*/
        }
예제 #4
0
파일: DataAccess.cs 프로젝트: jichu/Meteo
 public bool InputDataInsertOrUpdate(CloudInputData item)
 {
     using (IDbConnection conn = new SqlConnection(Model.ConnStr("Cloud")))
     {
         if (item.id_model == -1)
         {
             return(false);
         }
         else
         {
             List <CloudInputData> records = new List <CloudInputData>();
             if (!item.region)
             {
                 records.Add(item);
             }
             else
             {
                 //CloudInputData regionInput = new CloudInputData(item);
                 List <CloudORPS> ORPSList = Model.Cloud.ORPSGetORPSForRegion(item.id_orp);
                 foreach (var ORP in ORPSList)
                 {
                     CloudInputData regionInput = new CloudInputData(item);
                     regionInput.id_orp = ORP.id;
                     records.Add(regionInput);
                 }
             }
             try
             {
                 conn.Execute("dbo.INPUT_DATA_InsertOrUpdateData @ID_MODEL, @ID_ORP, @SAMPLE_NAME, @VALUE, @TYPE", records);
             }
             catch (Exception e) {
                 Util.l(e);
             }
             return(true);
         }
     }
 }
예제 #5
0
파일: Images.cs 프로젝트: jichu/Meteo
        private void ProcessORPgetValue(string mapcolor, List <Color> colors, JProperty p, string coods, string regionName, int sizeRegion)
        {
            float value = 0;

            if (p != null)
            {
                //Util.l($"Kontrola: {Util.curModelName}:{Util.curSubmodelName}:{typeStupnice}");

                switch (p.Value.ToString())
                {
                default:
                case "sum":
                    Util.curCountMethod = "suma";
                    value = (float)GetValueFromSpectrumBar(colors, sizeRegion);
                    break;

                case "average":
                    Util.curCountMethod = "průměr";
                    value = GetValueFromSpectrumBarAverage(colors, sizeRegion);
                    break;

                case "average_raw":
                    Util.curCountMethod = "průměr (raw)";
                    value = (float)GetValueFromSpectrumBarAverageRaw(colors, sizeRegion);
                    break;

                case "majority":
                    Util.curCountMethod = "majorita";
                    value = GetValueFromSpectrumBarMajority(colors, sizeRegion);
                    break;

                case "max":
                    Util.curCountMethod = "max";
                    value = GetValueFromSpectrumBarMax(colors, sizeRegion);
                    break;
                }
            }
            else
            {
                Util.l($"Chybí specifikace metody, nastavte v {curModelName}/{Util.pathSource["model_cfg"]}|Chyba modelu");
                return;
            }

            if (onlyEnumeration)
            {
                //Util.l($"CloudInputData({Util.curModelName},{Util.curSubmodelName},{regionName},{Path.GetFileNameWithoutExtension(path)},{value})");

                CloudInputData inputORP = new CloudInputData(curModelName, curSubmodelName, regionName, Path.GetFileNameWithoutExtension(path), value, typeStupnice);

                Model.Cloud.InputDataInsertOrUpdate(inputORP); //INPUT_DATA - DON'T TOUCH!!!!
                                                               //Util.l($"Model: {Util.curModelName} /{Util.curSubmodelName} > Uložen do DB");
            }
            else
            {
                if (value >= 1.0)
                {
                    int x = 0, y = 0, count = 0;
                    foreach (JArray point in JsonConvert.DeserializeObject <JArray>(coods))
                    {
                        x += (int)point[0];
                        y += (int)point[1];
                        count++;
                    }
                    Util.rainRegion.Add(regionName, (new Point((int)Math.Round((float)x / count), (int)Math.Round((float)y / count))));
                    Util.rainRegionValue.Add(value);
                }
                Util.curModelName    = curModelName;
                Util.curSubmodelName = curSubmodelName;
                Util.curDataOutputs.Add(new DataOutput()
                {
                    RegionName = regionName,
                    Value      = value,
                    Color      = ColorTranslator.FromHtml(mapcolor)
                });
            }
        }