public static void WriteMonthlyLogFile(int month) { double[] ppt = new double[PlugIn.ModelCore.Ecoregions.Count]; double[] airtemp = new double[PlugIn.ModelCore.Ecoregions.Count]; double[] avgNPPtc = new double[PlugIn.ModelCore.Ecoregions.Count]; double[] avgResp = new double[PlugIn.ModelCore.Ecoregions.Count]; double[] avgNEE = new double[PlugIn.ModelCore.Ecoregions.Count]; double[] Ndep = new double[PlugIn.ModelCore.Ecoregions.Count]; foreach (IEcoregion ecoregion in PlugIn.ModelCore.Ecoregions) { //if (EcoregionData.ActiveSiteCount[ecoregion] > 0) //{ //monthlyLog.AddObject(new MonthlyLog() { EcoregionName = ecoregion.Name}); ppt[ecoregion.Index] = 0.0; airtemp[ecoregion.Index] = 0.0; avgNPPtc[ecoregion.Index] = 0.0; avgResp[ecoregion.Index] = 0.0; avgNEE[ecoregion.Index] = 0.0; //Ndep[ecoregion.Index] = 0.0; //} } foreach (ActiveSite site in PlugIn.ModelCore.Landscape) { IEcoregion ecoregion = PlugIn.ModelCore.Ecoregion[site]; ppt[ecoregion.Index] = EcoregionData.AnnualWeather[ecoregion].MonthlyPrecip[month]; airtemp[ecoregion.Index] = EcoregionData.AnnualWeather[ecoregion].MonthlyTemp[month]; avgNPPtc[ecoregion.Index] += SiteVars.MonthlyAGNPPcarbon[site][month] + SiteVars.MonthlyBGNPPcarbon[site][month]; avgResp[ecoregion.Index] += SiteVars.MonthlyResp[site][month]; avgNEE[ecoregion.Index] += SiteVars.MonthlyNEE[site][month]; SiteVars.AnnualNEE[site] += SiteVars.MonthlyNEE[site][month]; //Ndep[ecoregion.Index] = EcoregionData.AnnualWeather[ecoregion].MonthlyNdeposition[month]; } foreach (IEcoregion ecoregion in PlugIn.ModelCore.Ecoregions) { if (EcoregionData.ActiveSiteCount[ecoregion] > 0) //Amin: I uncommented this line { monthlyLog.Clear(); MonthlyLog ml = new MonthlyLog(); //int objIndx = monthlyLog.ObjectsList.FindIndex(m => m.EcoregionName == ecoregion.Name); ml.Time = PlugIn.ModelCore.CurrentTime; ml.Month = month + 1; ml.EcoregionName = ecoregion.Name; ml.EcoregionIndex = ecoregion.Index; ml.NumSites = Convert.ToInt32(EcoregionData.ActiveSiteCount[ecoregion]); ml.ppt = EcoregionData.AnnualWeather[ecoregion].MonthlyPrecip[month]; ml.airtemp = EcoregionData.AnnualWeather[ecoregion].MonthlyTemp[month]; ml.avgNPPtc = (avgNPPtc[ecoregion.Index] / (double)EcoregionData.ActiveSiteCount[ecoregion]); ml.avgResp = (avgResp[ecoregion.Index] / (double)EcoregionData.ActiveSiteCount[ecoregion]); ml.avgNEE = (avgNEE[ecoregion.Index] / (double)EcoregionData.ActiveSiteCount[ecoregion]); //ml.Ndep = Ndep[ecoregion.Index]; //logMonthly.Write("{0}, {1}, {2}, {3},", // PlugIn.ModelCore.CurrentTime, // month + 1, // ecoregion.Name, // EcoregionData.ActiveSiteCount[ecoregion] // ); //logMonthly.Write("{0:0.0}, {1:0.0}, ", // ppt[ecoregion.Index], // airtemp[ecoregion.Index] // ); //logMonthly.Write("{0:0.00}, {1:0.00}, {2:0.00}, ", // (avgNPPtc[ecoregion.Index] / (double)EcoregionData.ActiveSiteCount[ecoregion]), // (avgResp[ecoregion.Index] / (double)EcoregionData.ActiveSiteCount[ecoregion]), // (avgNEE[ecoregion.Index] / (double)EcoregionData.ActiveSiteCount[ecoregion]) // ); //logMonthly.Write("{0:0.00}, ", // Ndep[ecoregion.Index] // ); //logMonthly.WriteLine(""); monthlyLog.AddObject(ml); monthlyLog.WriteToFile(); } } }
public static void WriteMonthlyLogFile(int month) { double[] ppt = new double[PlugIn.ModelCore.Ecoregions.Count]; double[] airtemp = new double[PlugIn.ModelCore.Ecoregions.Count]; double[] avgNPPtc = new double[PlugIn.ModelCore.Ecoregions.Count]; double[] avgResp = new double[PlugIn.ModelCore.Ecoregions.Count]; double[] avgNEE = new double[PlugIn.ModelCore.Ecoregions.Count]; double[] Ndep = new double[PlugIn.ModelCore.Ecoregions.Count]; foreach (IEcoregion ecoregion in PlugIn.ModelCore.Ecoregions) { ppt[ecoregion.Index] = 0.0; airtemp[ecoregion.Index] = 0.0; avgNPPtc[ecoregion.Index] = 0.0; avgResp[ecoregion.Index] = 0.0; avgNEE[ecoregion.Index] = 0.0; Ndep[ecoregion.Index] = 0.0; } foreach (ActiveSite site in PlugIn.ModelCore.Landscape) { IEcoregion ecoregion = PlugIn.ModelCore.Ecoregion[site]; ppt[ecoregion.Index] = EcoregionData.AnnualWeather[ecoregion].MonthlyPrecip[month]; airtemp[ecoregion.Index] = EcoregionData.AnnualWeather[ecoregion].MonthlyTemp[month]; avgNPPtc[ecoregion.Index] += SiteVars.MonthlyAGNPPcarbon[site][month] + SiteVars.MonthlyBGNPPcarbon[site][month]; avgResp[ecoregion.Index] += SiteVars.MonthlyResp[site][month]; avgNEE[ecoregion.Index] += SiteVars.MonthlyNEE[site][month]; SiteVars.AnnualNEE[site] += SiteVars.MonthlyNEE[site][month]; Ndep[ecoregion.Index] = EcoregionData.MonthlyNDeposition[ecoregion][month]; } foreach (IEcoregion ecoregion in PlugIn.ModelCore.Ecoregions) { if (EcoregionData.ActiveSiteCount[ecoregion] > 0) { monthlyLog.Clear(); MonthlyLog ml = new MonthlyLog(); ml.Time = PlugIn.ModelCore.CurrentTime; ml.Month = month + 1; ml.EcoregionName = ecoregion.Name; ml.EcoregionIndex = ecoregion.Index; ml.NumSites = Convert.ToInt32(EcoregionData.ActiveSiteCount[ecoregion]); ml.ppt = EcoregionData.AnnualWeather[ecoregion].MonthlyPrecip[month]; ml.airtemp = EcoregionData.AnnualWeather[ecoregion].MonthlyTemp[month]; ml.avgNPPtc = (avgNPPtc[ecoregion.Index] / (double)EcoregionData.ActiveSiteCount[ecoregion]); ml.avgResp = (avgResp[ecoregion.Index] / (double)EcoregionData.ActiveSiteCount[ecoregion]); ml.avgNEE = (avgNEE[ecoregion.Index] / (double)EcoregionData.ActiveSiteCount[ecoregion]); ml.Ndep = Ndep[ecoregion.Index]; monthlyLog.AddObject(ml); monthlyLog.WriteToFile(); } } }