def main(subArea, runName, chartTitlePre, ownership): outDir = "C:\\Users\\olsenk\\Dropbox\\FPF\\Envision Runs\\keith_production\\" varList = [' Black-backed Woodpecker Good (ha)'] yLabelText = 'Black-backed Woodpecker Good Habitat (ha)' chartTitle = chartTitlePre PMG345Ha = reporterFunc.getPMG345Ha(subArea) # list of ownerships to graphs if ownership == 'All': ownersToGraph = [ 'Federal', 'State', 'Private Non-Industrial', 'Private Industrial', 'Tribal', 'Homeowner' ] pdfFile = PdfPages(outDir + 'report2_BBWO_iLAP_All.pdf') else: ownersToGraph = [ownership] pdfFile = PdfPages(outDir + 'report2_BBWO_iLAP_' + ownersToGraph[0] + '.pdf') # setup plot for all scenarios fig = pl.figure(1, figsize=(11, 8.5)) ax = fig.add_subplot(1, 1, 1) for scenario in [ 'CurrentPolicy', 'NoFedTreat', 'Restoration', 'NoFireNoMgmt' ]: inDir = outDir + runName + "_" + scenario + "\\" if os.path.isdir(inDir): yearList = list( set( pd.io.parsers.read_csv( inDir + r'ILAP_wildlife_models_pivot.csv')[' Year'])) repList = list( set( pd.io.parsers.read_csv( inDir + r'ILAP_wildlife_models_pivot.csv')[' Run'])) totalArea = pd.io.parsers.read_csv( inDir + r'ILAP_wildlife_models_pivot.csv') # get stats from multiple reps statsList = [] for year in range(1, max(yearList) + 1): yearArea = totalArea[totalArea[' Year'] == year] dataList = [] for rep in repList: repArea = yearArea[yearArea[' Run'] == rep] ## # sum output over selected ownerships ## for ownerToGraph in ownersToGraph: ## if ownerToGraph == ownersToGraph[0]: ## ownerArea = pd.DataFrame(repArea[repArea[' OWNER_label'] == ownerToGraph]) ## fireProneArea = PMG345Ha[ownerToGraph] ## else: ## tempArea = repArea[repArea[' OWNER_label'] == ownerToGraph] ## for varName in varList: ### totalArea.loc[list(ownerArea.index)[0],varName] += tempArea[varName].iloc[0] ## ownerArea[varName].iloc[0] += tempArea[varName].iloc[0] ## ## fireProneArea += PMG345Ha[ownerToGraph] ## ownerToGraph = 'All' ownerToGraph = 'All' ownerArea = repArea dataList.append(ownerArea[varList[0]].iloc[0]) # convert to numpy array numpyList = np.array(dataList) lower95th = np.mean(numpyList, axis=0) - ( (1.96 * np.std(numpyList, axis=0)) / np.sqrt(len(repList))) upper95th = np.mean(numpyList, axis=0) + ( (1.96 * np.std(numpyList, axis=0)) / np.sqrt(len(repList))) if lower95th < 0: lower95th = 0.0 # add year data to dictionary dataDict = { 'timeStep': year, 'mean': np.mean(numpyList, axis=0), 'std': np.std(numpyList, axis=0), 'lower': lower95th, 'upper': upper95th } # convert to list for DataFrame statsList.append(dataDict) # convert to DataFrame dataTable = pd.DataFrame(statsList) reporterFunc.plotReporter2( fig, ax, ownerToGraph + ' - ' + str(len(repList)) + ' reps', pdfFile, dataTable, ['mean', 'lower', 'upper'], subArea, chartTitle, yLabelText, scenario) pdfFile.savefig() pl.close() pdfFile.close() print "Done."
def main(subArea, runName, chartTitlePre, ownership): outDir = "C:\\Users\\olsenk\\Dropbox\\FPF\\Envision Runs\\keith_production\\" varList = [ ' Resilient (ha) PMG345', ' Semi-Resilient (ha) PMG345', ' Low Resilience (ha) PMG345', ' Early Successional (ha) Forest', ' Plantations (ha) Forest', ' Pole and Small (ha) Forest', ' Medium (ha) Forest', ' Large and Giant (ha) Forest' ] yLabelText = 'Percent of Landscape in' chartTitle = chartTitlePre PMG345Ha = reporterFunc.getPMG345Ha(subArea) forestedHa = reporterFunc.getOwnerForestedHa(subArea) # list of ownerships to graphs if ownership == 'All': ownersToGraph = [ 'Federal', 'State', 'Private Non-Industrial', 'Private Industrial', 'Tribal', 'Homeowner' ] pdfFile = PdfPages(outDir + 'report2_ForestStructure2_All.pdf') else: ownersToGraph = [ownership] pdfFile = PdfPages(outDir + 'report2_ForestStructure2_' + ownersToGraph[0] + '.pdf') for varStruct in varList: # setup plot for all scenarios fig = pl.figure(1, figsize=(11, 8.5)) ax = fig.add_subplot(1, 1, 1) for scenario in [ 'CurrentPolicy', 'NoFedTreat', 'Restoration', 'NoFireNoMgmt' ]: inDir = outDir + runName + "_" + scenario + "\\" if os.path.isdir(inDir): yearList = list( set( pd.io.parsers.read_csv( inDir + r'ForestStructure2_by_OWNER_pivot.csv')[' Year'])) repList = list( set( pd.io.parsers.read_csv( inDir + r'ForestStructure2_by_OWNER_pivot.csv')[' Run'])) totalArea = pd.io.parsers.read_csv( inDir + r'ForestStructure2_by_OWNER_pivot.csv') # get stats from multiple reps statsList = [] for year in range(1, max(yearList) + 1): yearArea = totalArea[totalArea[' Year'] == year] dataList = [] for rep in repList: repArea = yearArea[yearArea[' Run'] == rep] # sum output over selected ownerships for ownerToGraph in ownersToGraph: if ownerToGraph == ownersToGraph[0]: ownerArea = pd.DataFrame(repArea[ repArea[' OWNER_label'] == ownerToGraph]) fireProneArea345 = PMG345Ha[ownerToGraph] fireProneArea = forestedHa[ownerToGraph] else: tempArea = repArea[repArea[' OWNER_label'] == ownerToGraph] for varName in varList: # totalArea.loc[list(ownerArea.index)[0],varName] += tempArea[varName].iloc[0] ownerArea[varName].iloc[0] += tempArea[ varName].iloc[0] fireProneArea345 += PMG345Ha[ownerToGraph] fireProneArea += forestedHa[ownerToGraph] ownerToGraph = 'All' if varStruct in [ ' Resilient (ha) PMG345', ' Semi-Resilient (ha) PMG345', ' Low Resilience (ha) PMG345' ]: if fireProneArea345 > 0: dataList.append(ownerArea[varStruct].iloc[0] / fireProneArea345 * 100) else: dataList.append(0.0) else: if fireProneArea > 0: dataList.append(ownerArea[varStruct].iloc[0] / fireProneArea * 100) else: dataList.append(0.0) # convert to numpy array numpyList = np.array(dataList) lower95th = np.mean(numpyList, axis=0) - ( (1.96 * np.std(numpyList, axis=0)) / np.sqrt(len(repList))) upper95th = np.mean(numpyList, axis=0) + ( (1.96 * np.std(numpyList, axis=0)) / np.sqrt(len(repList))) if lower95th < 0: lower95th = 0.0 # add year data to dictionary dataDict = { 'timeStep': year, 'mean': np.mean(numpyList, axis=0), 'std': np.std(numpyList, axis=0), 'lower': lower95th, 'upper': upper95th } # convert to list for DataFrame statsList.append(dataDict) # convert to DataFrame dataTable = pd.DataFrame(statsList) reporterFunc.plotReporter2( fig, ax, ownerToGraph + ' - ' + str(len(repList)) + ' reps', pdfFile, dataTable, ['mean', 'lower', 'upper'], subArea, chartTitle, yLabelText + varStruct, scenario) pdfFile.savefig() pl.close() pdfFile.close() print "Done."