/// <summary> /// Converts USGS Data to Standard Input climate Data and fill out the Future_AllData and/or Spinup_AllData /// </summary> /// public static void ConvertFileFormat_FillOutAllData(String timeSeries, string filePath, string fileFormat, Climate.Phase climatePhase) { if (climatePhase == Climate.Phase.Future_Climate && timeSeries.Contains("Daily")) { future_allData_granularity = TemporalGranularity.Daily; } else if (climatePhase == Climate.Phase.Future_Climate && timeSeries.Contains("Monthly")) { future_allData_granularity = TemporalGranularity.Monthly; } else if (climatePhase == Climate.Phase.SpinUp_Climate && timeSeries.Contains("Daily")) { spinup_allData_granularity = TemporalGranularity.Daily; } else if (climatePhase == Climate.Phase.SpinUp_Climate && timeSeries.Contains("Monthly")) { spinup_allData_granularity = TemporalGranularity.Monthly; } if (timeSeries.Contains("Daily")) { ClimateDataConvertor.Convert_USGS_to_ClimateData_FillAlldata(TemporalGranularity.Daily, filePath, fileFormat, climatePhase); } else if (timeSeries.Contains("Monthly")) { ClimateDataConvertor.Convert_USGS_to_ClimateData_FillAlldata(TemporalGranularity.Monthly, filePath, fileFormat, climatePhase); } return; }
//public static void GetPDSI_Test() //{ // IEcoregion ecoregion = Climate.ModelCore.Ecoregions[0]; // //here: // string outputFilePath = @"C:\Program Files\LANDIS-II\v6\examples\base-BDA_1\PDSI_BaseBDA_Test2.csv"; // File.WriteAllText(outputFilePath, String.Empty); // int startYear = 1893, endYear = 1897; // AnnualClimate_Monthly[] acs; // if (endYear > startYear) // { // int numOfYears = endYear - startYear + 1; // acs = new AnnualClimate_Monthly[numOfYears]; // double[] mon_T_normal = new double[12] { 19.693, 23.849, 34.988, 49.082, 60.467, 70.074, 75.505, 73.478, 64.484, 52.634, 36.201, 24.267 }; // IClimateRecord[] climateRecs = new ClimateRecord[12]; // //Climate.TimestepData = allData[0]; // //for (int mo = 0; mo < 12; mo++) // //{ // // climateRecs[mo] = Climate.TimestepData[ecoregion.Index, mo]; // // //mon_T_normal[mo] = (climateRecs[mo].AvgMinTemp + climateRecs[mo].AvgMinTemp) / 2; // //} // acs[0] = new AnnualClimate_Monthly(ecoregion, 1893, 0); // ((AnnualClimate_Monthly)acs[0]).MonthlyTemp = new double[] { 14.371, 14.000, 26.435, 44.250, 54.645, 70.683, 73.355, 69.323, 63.600, 48.806, 32.867, 19.161 }; // //acs[0].MonthlyPrecip = new double[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; // ((AnnualClimate_Monthly)acs[0]).MonthlyPrecip = new double[] { 0.610, 1.500, 1.730, 4.050, 1.950, 0.790, 3.020, 2.570, 1.430, 0.850, 1.260, 2.350 }; // acs[1] = new AnnualClimate_Monthly(ecoregion, 1894, 0); // ((AnnualClimate_Monthly)acs[1]).MonthlyTemp = new double[] { 12.705, 14.979, 37.984, 49.700, 61.209, 71.463, 77.935, 74.312, 65.283, 51.516, 34.767, 29.548 }; // ((AnnualClimate_Monthly)acs[1]).MonthlyPrecip = new double[] { 0.700, 0.550, 0.580, 4.240, 2.430, 1.150, 0.580, 1.480, 0.550, 1.760, 0.050, 1.000 }; // acs[2] = new AnnualClimate_Monthly(ecoregion, 1895, 0); // ((AnnualClimate_Monthly)acs[2]).MonthlyTemp = new double[] { 12.519, 17.964, 33.994, 54.506, 60.411, 66.172, 70.548, 69.622, 65.288, 44.795, 32.433, 23.333 }; // ((AnnualClimate_Monthly)acs[2]).MonthlyPrecip = new double[] { 0.650, 0.540, 0.520, 3.980, 2.380, 6.240, 2.320, 3.920, 4.770, 0.060, 1.040, 0.000 }; // acs[3] = new AnnualClimate_Monthly(ecoregion, 1896, 0); // ((AnnualClimate_Monthly)acs[3]).MonthlyTemp = new double[] { 23.258, 27.397, 26.425, 48.833, 62.790, 68.054, 71.365, 70.677, 57.991, 46.355, 21.154, 28.597 }; // ((AnnualClimate_Monthly)acs[3]).MonthlyPrecip = new double[] { 0.250, 0.270, 1.670, 5.680, 6.240, 7.740, 5.550, 1.660, 1.810, 3.230, 3.850, 0.230 }; // acs[4] = new AnnualClimate_Monthly(ecoregion, 1897, 0); // ((AnnualClimate_Monthly)acs[4]).MonthlyTemp = new double[] { 13.758, 20.179, 26.613, 46.700, 59.016, 66.533, 74.032, 67.928, 71.617, 54.613, 32.450, 18.686 }; // ((AnnualClimate_Monthly)acs[4]).MonthlyPrecip = new double[] { 2.500, 0.540, 3.010, 4.480, 0.980, 5.820, 3.780, 1.600, 1.010, 1.940, 0.910, 2.950 }; // //for (int i = startYear; i <= endYear; i++) // //{ // // acs[i - startYear] = new AnnualClimate(ecoregion, i, 0); // Latitude should be given // // //Climate.ModelCore.UI.WriteLine(ac.MonthlyTemp[0].ToString() + "\n"); // // //Climate.ModelCore.UI.WriteLine(ac.MonthlyPrecip[0].ToString() + "\n"); // //} // //for (int mo = 0; mo < 12; mo++) // //{ // // climateRecs[mo] = Climate.TimestepData[ecoregion.Index, mo]; // // mon_T_normal[mo] = (climateRecs[mo].AvgMinTemp + climateRecs[mo].AvgMinTemp) / 2; // //} // double AWC = 0.3;//Landis.Extension.Succession.Century.EcoregionData.FieldCapacity[ecoregion] - Landis.Extension.Succession.Century.EcoregionData.WiltingPoint[ecoregion]; // double latitude = 42.60;//Landis.Extension.Succession.Century.EcoregionData.Latitude[ecoregion]; // new PDSI_Calculator().CalculatePDSI(acs, mon_T_normal, AWC, latitude, /*outputFilePath,*/ UnitSystem.USCustomaryUnits); // } /// <summary> /// Converts USGS Data to Standard Input climate Data and fill out the Future_AllData and/or Spinup_AllData /// </summary> /// public static void ConvertFileFormat_FillOutAllData(String timeSeries, string filePath, string fileFormat, Climate.Phase climatePhase) { if (climatePhase == Climate.Phase.Future_Climate && timeSeries.Contains("Daily")) { future_allData_granularity = TemporalGranularity.Daily; } else if (climatePhase == Climate.Phase.Future_Climate && timeSeries.Contains("Monthly")) { future_allData_granularity = TemporalGranularity.Monthly; } else if (climatePhase == Climate.Phase.SpinUp_Climate && timeSeries.Contains("Daily")) { spinup_allData_granularity = TemporalGranularity.Daily; } else if (climatePhase == Climate.Phase.SpinUp_Climate && timeSeries.Contains("Monthly")) { spinup_allData_granularity = TemporalGranularity.Monthly; } if (timeSeries.Contains("Daily")) { ClimateDataConvertor.Convert_USGS_to_ClimateData_FillAlldata(TemporalGranularity.Daily, filePath, fileFormat, climatePhase); } else if (timeSeries.Contains("Monthly")) { ClimateDataConvertor.Convert_USGS_to_ClimateData_FillAlldata(TemporalGranularity.Monthly, filePath, fileFormat, climatePhase); } //string readableFile = ""; //if (timeSeries.Contains("MonthlyStandard")) //{ // ModelCore.UI.WriteLine("Loading from file with Monthly Standard format...\n"); // if (future_allData_granularity == TemporalGranularity.Daily) // { // ClimateParser parser = new ClimateParser(); // future_allData = Landis.Data.Load<Dictionary<int, IClimateRecord[,]>>(filePath, parser); // } // else if (future_allData_granularity == TemporalGranularity.Monthly) // { // ClimateParser spinup_parser = new ClimateParser(); // spinup_allData = Landis.Data.Load<Dictionary<int, IClimateRecord[,]>>(filePath, spinup_parser); // } // return; // filePath; //} //else if (timeSeries.Contains("Average") || timeSeries.Contains("Random")) //{ // if (timeSeries.Contains("Daily")) // //return readableFile = // ClimateDataConvertor.Convert_USGS_to_ClimateData_FillAlldata(TemporalGranularity.Daily, filePath, fileFormat, climatePhase); // else if (timeSeries.Contains("Monthly")) // //return readableFile = // ClimateDataConvertor.Convert_USGS_to_ClimateData_FillAlldata(TemporalGranularity.Monthly, filePath, fileFormat, climatePhase); //} //else if (timeSeries.Contains("MonthlyAverage"))//AverageMonthly //{ // //return readableFile = // ClimateDataConvertor.Convert_USGS_to_ClimateData_FillAlldata(TemporalGranularity.Monthly, filePath, fileFormat, climatePhase); //} ////else if (timeSeries.Contains("Random")) ////{ //// if (timeSeries.Contains("Daily")) //// return readableFile = Landis.Library.Climate.ClimateDataConvertor.Convert_USGS_to_ClimateData_FillAlldata(TemporalGranularity.Daily, File, fileFormat, climatePhase); //// else if (timeSeries.Contains("Monthly")) //// return readableFile = Landis.Library.Climate.ClimateDataConvertor.Convert_USGS_to_ClimateData_FillAlldata(TemporalGranularity.Monthly, File, fileFormat, climatePhase); ////} //else if (timeSeries.Contains("DailyGCM")) //{ // //return readableFile = // ClimateDataConvertor.Convert_USGS_to_ClimateData_FillAlldata(TemporalGranularity.Daily, filePath, fileFormat, climatePhase); //} //else if (timeSeries.Contains("MonthlyGCM")) //{ // //return readableFile = // ClimateDataConvertor.Convert_USGS_to_ClimateData_FillAlldata(TemporalGranularity.Monthly, filePath, fileFormat, climatePhase); //} //else //{ // ModelCore.UI.WriteLine("Error in converting input-climate-file format: invalid ClimateTimeSeries value provided in cliamte-generator input file."); // throw new Exception("Error in converting input-climate-file format: invalid ClimateTimeSeries value provided in cliamte-generator input file."); //} return;// readableFile; }