public bool insertGlaciologicalData(int idDocument, string reader) { try { string[] aux = null; aux = reader.Split(';').Where(x => !String.IsNullOrEmpty(x)).ToArray(); glaciologicalData data = new glaciologicalData(); data.altitudinalBar = aux[0]; data.startDay = Convert.ToInt16(aux[1]); data.startMonth = Convert.ToInt16(aux[2]); data.startYear = Convert.ToInt16(aux[3]); data.endDay = Convert.ToInt16(aux[4]); data.endMonth = Convert.ToInt16(aux[5]); data.endYear = Convert.ToInt16(aux[6]); data.latitude = Convert.ToDouble(aux[7]); data.longitude = Convert.ToDouble(aux[8]); data.altitude = Convert.ToDouble(aux[9]); data.massBalance = Convert.ToDouble(aux[10]); data.monthData = Convert.ToInt16(aux[11]); data.idEnteredData = idDocument; db.glaciologicalDatas.Add(data); db.SaveChanges(); return(true); } catch { return(false); } }
public bool insertMeteoMetadata(int idDocument, int rowNumber, string reader, enteredData enteredData) { try //SOLO HAY UNO INDEPENDIENTE SI ES DENTRO O FUERA DEL GLACIAR PORQUE EL NÚMERO DE COLUMNAS DE METADATOS ES EL MISMO { if (rowNumber > 3) { if (!reader.Contains("#date")) { string[] aux = null; aux = reader.Split(';').ToArray(); metadata metadata = new metadata(); metadata.variable_code = aux[0]; metadata.variable_name = aux[1]; metadata.sensor_manufacturer = aux[2]; metadata.sensor_model = aux[3]; metadata.unit = aux[4]; metadata.dataQuality = aux[5]; metadata.idEnteredData = idDocument; db.metadatas.Add(metadata); } db.SaveChanges(); } return(true); } catch { return(false); } }
public bool insertMeteorologicalData(int idDocument, string reader, station selectedStation) { try { string[] aux = null; aux = reader.Split(';').Where(x => !String.IsNullOrEmpty(x)).ToArray(); meteorologicalData data = new meteorologicalData(); if (selectedStation.idLocation == 1) //Datos Meteorológicos dentro del glaciar { data.dateData = Convert.ToDateTime(aux[0]); data.inShortWaveRadiation = (Math.Round((float.Parse(aux[1])), 3)); data.outShortWaveRadiation = (Math.Round((float.Parse(aux[2])), 3)); data.albedo = (Math.Round((float.Parse(aux[3])), 3)); data.relativeHumidity = (Math.Round((float.Parse(aux[4])), 3)); data.ventilatedAirTemperature = (Math.Round((float.Parse(aux[5])), 3)); data.windSpeed = (Math.Round((float.Parse(aux[6])), 3)); data.windDirection = (Math.Round((float.Parse(aux[7])), 3)); } else //Datos Meteorológicos fuera del glaciar { data.dateData = Convert.ToDateTime(aux[0]); data.inShortWaveRadiation = (Math.Round((float.Parse(aux[1])), 3)); data.outShortWaveRadiation = (Math.Round((float.Parse(aux[2])), 3)); data.albedo = (Math.Round((float.Parse(aux[3])), 3)); data.inLongWaveRadiation = (Math.Round((float.Parse(aux[4])), 3)); data.outLongWaveRadiation = (Math.Round((float.Parse(aux[5])), 3)); data.relativeHumidity = (Math.Round((float.Parse(aux[6])), 3)); data.ventilatedAirTemperature = (Math.Round((float.Parse(aux[7])), 3)); data.nonVentilatedAirTemperature = (Math.Round((float.Parse(aux[8])), 3)); data.windSpeed = (Math.Round((float.Parse(aux[9])), 3)); data.windDirection = (Math.Round((float.Parse(aux[10])), 3)); data.precipitationAmount = (Math.Round((float.Parse(aux[11])), 3)); data.precipitationRate = (Math.Round((float.Parse(aux[12])), 3)); data.distanceSensor_Snow = (Math.Round((float.Parse(aux[13])), 3)); data.snowDepth = (Math.Round((float.Parse(aux[14])), 3)); data.groundFlux = (Math.Round((float.Parse(aux[15])), 3)); data.groundTemp_3cm = (Math.Round((float.Parse(aux[16])), 3)); data.groundTemp_10cm = (Math.Round((float.Parse(aux[17])), 3)); data.groundTemp_30cm = (Math.Round((float.Parse(aux[18])), 3)); } data.idEnteredData = idDocument; db.meteorologicalDatas.Add(data); db.SaveChanges(); return(true); } catch { return(false); } }
public bool insertHydrologicalData(int idDocument, int rowNumber, string reader) { try { string[] aux = null; aux = reader.Split(';').Where(x => !String.IsNullOrEmpty(x)).ToArray(); hydrologicalData data = new hydrologicalData(); return(true); } catch { return(false); } }
public void generateGraphics(IEnumerable <FilteredData> data, string variable, EnteredDataExt searchedInfo) { List <DateTime> dates = new List <DateTime>(); List <double?> values = new List <double?>(); try { foreach (var item in data) { dates.Add(item.key1); values.Add(item.Key2); } } catch (Exception ex) { } new Chart(width: 600, height: 400, theme: ChartTheme.Green).AddTitle("Results"). AddSeries(chartType: "Line", xValue: dates, yValues: values).AddLegend(variable, null). Save("~/Content/images/hola.jpeg", "jpeg"); }
public ActionResult Search(EnteredDataExt u) { int year = u.year; string variable = u.variable; int elId = u.idMeasurementType; EnteredDataExt searchedInfo = u; Session.Add("SearchedInfo", searchedInfo); if (u.idStation != 0) { if (u.idDataType == 1) //Búsqueda para tipos de datos Observation { if (u.idMeasurementType == 1) //Búsqueda cuando la información es de meteorología { List <meteorologicalData> searchedData = (from doc in db.enteredDatas join data in db.meteorologicalDatas on doc.idEnteredData equals data.idEnteredData where doc.idStation == u.idStation && (SqlFunctions.DatePart("year", doc.startDate) == year || SqlFunctions.DatePart("year", doc.endDate) == year) && SqlFunctions.DatePart("year", data.dateData) == year //&& Convert.ToDouble(data.Get<meteorologicalData>(variable).ToString()) != -6999 select data).ToList(); if (searchedData.Any()) { List <FilteredData> summary = new List <FilteredData>(); foreach (var item in searchedData) { if (Double.Parse(item.Get <double>(variable).ToString()) != -6999) { FilteredData aux = new FilteredData() { key1 = item.dateData, Key2 = Double.Parse(item.Get <double>(variable).ToString()) }; summary.Add(aux); } } IEnumerable <FilteredData> result; if (variable == "precipitationAmount") //Para precipitaciones se suma (valor acumulado) { result = from f in summary group f by f.key1.Date into g select new FilteredData { key1 = g.Key, Key2 = g.Sum(x => Convert.ToDouble(x.Key2.ToString())) }; //generateGraphics(result, variable); } else //Para el resto de variables se promedia { result = from f in summary group f by f.key1.Date into g select new FilteredData { key1 = g.Key, Key2 = g.Average(x => Convert.ToDouble(x.Key2.ToString())) }; //generateGraphics(result, variable); } Session.Add("stationInfo", db.stations.Single(i => i.idStation == u.idStation)); Session.Add("resultInfo", result); Session.Add("variableInfo", variable); generateGraphics(result, variable, u); aux = u; Session.Add("results", result); return(View("ShowResults", result)); } else { Session.Add("notification", "No data found with the selected search criteria"); Session["message"] = null; Session["error"] = null; return(RedirectToAction("Search", u)); } } else if (u.idMeasurementType == 2) //Búsqueda cuando la información es de glaciología { List <glaciologicalData> searchedData = (from doc in db.enteredDatas join data in db.glaciologicalDatas on doc.idEnteredData equals data.idEnteredData where doc.idEnteredData == u.idEnteredData && data.altitudinalBar == u.altitudinalBar select data).ToList(); if (searchedData.Any()) { List <FilteredData> summary = new List <FilteredData>(); foreach (var item in searchedData) { var cnkjdvbhdfbvdf = item.Get <double>(variable).ToString(); if (Double.Parse(item.Get <double>(variable).ToString()) != -6999) { if (item.startDay != -6999) { FilteredData aux = new FilteredData() { key1 = (DateTime.Parse(item.startDay.ToString() + "/" + item.startMonth.ToString() + "/" + item.startYear.ToString())), //key3 = item.startMonth, Key2 = Double.Parse(item.Get <double>(variable).ToString()) }; summary.Add(aux); } else { FilteredData aux = new FilteredData() { key1 = (DateTime.Parse("01" + "/" + item.startMonth.ToString() + "/" + item.startYear.ToString())), //key3 = item.startMonth, Key2 = Double.Parse(item.Get <double>(variable).ToString()) }; summary.Add(aux); } } } IEnumerable <FilteredData> result; result = (IEnumerable <FilteredData>)(summary); Session.Add("stationInfo", db.stations.Single(i => i.idStation == u.idStation)); Session.Add("resultInfo", result); Session.Add("variableInfo", variable); Session.Add("altitudinalBar", u.altitudinalBar); generateGraphics(result, variable, u); aux = u; Session.Add("results", result); return(View("ShowResults", result)); } else { Session.Add("notification", "No data found with the selected search criteria"); Session["message"] = null; Session["error"] = null; return(RedirectToAction("Search", u)); } } else //Búsqueda cuando la información es de hidrología { List <hydrologicalData> searchedData = (from doc in db.enteredDatas join data in db.hydrologicalDatas on doc.idEnteredData equals data.idEnteredData where doc.idStation == u.idStation && (SqlFunctions.DatePart("year", doc.startDate) == year || SqlFunctions.DatePart("year", doc.endDate) == year) && SqlFunctions.DatePart("year", data.dateData) == year //&& Convert.ToDouble(data.Get<meteorologicalData>(variable).ToString()) != -6999 select data).ToList(); if (searchedData.Any()) { List <FilteredData> summary = new List <FilteredData>(); foreach (var item in searchedData) { var cnkjdvbhdfbvdf = item.Get <double>(variable).ToString(); if (Double.Parse(item.Get <double>(variable).ToString()) != -6999) { FilteredData aux = new FilteredData() { key1 = item.dateData, Key2 = Double.Parse(item.Get <double>(variable).ToString()) }; summary.Add(aux); } } IEnumerable <FilteredData> result; result = from f in summary group f by f.key1.Date into g select new FilteredData { key1 = g.Key, Key2 = g.Average(x => Convert.ToDouble(x.Key2.ToString())) }; //generateGraphics(result, variable); Session.Add("stationInfo", db.stations.Single(i => i.idStation == u.idStation)); Session.Add("resultInfo", result); Session.Add("variableInfo", variable); generateGraphics(result, variable, u); aux = u; Session.Add("results", result); return(View("ShowResults", result)); } else { Session.Add("notification", "No data found with the selected search criteria"); Session["message"] = null; Session["error"] = null; return(RedirectToAction("Search", u)); } } } else { Session.Add("notification", "Simulations are not available at this moment. We are sorry!"); Session["message"] = null; Session["error"] = null; return(RedirectToAction("Search", u)); } } else { Session.Add("notification", null); Session["message"] = null; Session["error"] = "Select all fields"; return(RedirectToAction("Search")); } }