def makeLayers(inputNetwork): """ Makes the layers for the modified output :param inputNetwork: The path to the network that we'll make a layer from :return: """ arcpy.AddMessage("Making layers...") intermediates_folder = os.path.dirname(inputNetwork) hydrology_folder_name = find_available_num_prefix( intermediates_folder) + "_Hydrology" hydrology_folder = make_folder(intermediates_folder, hydrology_folder_name) tribCodeFolder = os.path.dirname(os.path.abspath(__file__)) #symbologyFolder = os.path.join(tribCodeFolder, 'BRATSymbology') highflowSymbology = os.path.join(symbologyFolder, "Highflow_StreamPower.lyr") baseflowSymbology = os.path.join(symbologyFolder, "Baseflow_StreamPower.lyr") make_layer(hydrology_folder, inputNetwork, "Highflow Stream Power", highflowSymbology, is_raster=False) make_layer(hydrology_folder, inputNetwork, "Baseflow Stream Power", baseflowSymbology, is_raster=False)
def check_analyses_layer(analyses_folder, layer_base_folder, layer_name, symbology_folder, symbology_file_name, field_name, layer_file_name=None): """ Checks if an analyses layer exists. If it does not, it looks for a shape file that can create the proper symbology. If it finds a proper shape file, it creates the layer that was missing :param analyses_folder: The root of the analyses folder :param layer_name: The name of the layer to create :param symbology_folder: The path to the symbology folder :param symbology_file_name: The name of the symbology layer we want to pull from :param field_name: The name of the field we'll be basing our symbology off of :param layer_file_name: The name of the layer file (if different from the layer_name without spaces) :return: """ if layer_file_name is None: layer_file_name = layer_name.replace(" ", "") + ".lyr" layer_file = os.path.join(layer_base_folder, layer_file_name) if os.path.exists(layer_file): # if the layer already exists, we don't care, we can exit the function return shape_file = find_shape_file_with_field(analyses_folder, field_name) if shape_file is None: return layer_symbology = os.path.join(symbology_folder, symbology_file_name) make_layer(layer_base_folder, shape_file, layer_name, symbology_layer=layer_symbology)
def check_intermediate_layer(intermediates_folder, symbology_folder, symbology_layer_name, brat_table_file, folder_name, layer_name, field_for_layer, layer_file_name=None): """ :param intermediates_folder: The :param symbology_folder: :param symbology_layer_name: :param brat_table_file: :param folder_name: :param layer_name: :param field_for_layer: :param layer_file_name: :return: """ fields = [f.name for f in arcpy.ListFields(brat_table_file)] if field_for_layer not in fields: # we don't want to create the layer if the field isn't in the BRAT table file return if layer_file_name == None: layer_file_name = layer_name.replace(" ", "") layer_symbology = os.path.join(symbology_folder, symbology_layer_name) layer_folder = find_folder(intermediates_folder, folder_name) if layer_folder == None: layer_folder = make_folder(intermediates_folder, find_available_num(intermediates_folder) + "_" + folder_name) layer_path = os.path.join(layer_folder, layer_file_name) if not layer_path.endswith(".lyr"): layer_path += '.lyr' if not os.path.exists(layer_path): make_layer(layer_folder, brat_table_file, layer_name, layer_symbology, file_name=layer_file_name)
def make_input_layers(destinations, layer_name, is_raster, symbology_layer=None, file_name=None, check_field=None): """ Makes the layers for everything in the folder :param destinations: A list of paths to our inputs :param layer_name: The name of the layer :param is_raster: Whether or not it's a raster :param symbology_layer: The base for the symbology :param file_name: The name for the file (if it's different from the layerName) :param check_field: The name of the field that the symbology is based on :return: """ if file_name == None: file_name = layer_name for destination in destinations: skip_loop = False dest_dir_name = os.path.dirname(destination) if file_name is None: file_name = layer_name.replace(" ", "") new_layer_save = os.path.join(dest_dir_name, file_name.replace(' ', '')) if not new_layer_save.endswith(".lyr"): new_layer_save += ".lyr" if os.path.exists(new_layer_save): skip_loop = True if check_field: fields = [f.name for f in arcpy.ListFields(destination)] if check_field not in fields: # Skip the loop if the base doesn't support skip_loop = True if not skip_loop: make_layer(dest_dir_name, destination, layer_name, symbology_layer=symbology_layer, is_raster=is_raster, file_name=file_name)
def make_layers(output_network, dams): """ Makes the layers for the modified output :param output_network: The path to the network that we'll make a layer from :param dams: Filepath to dams in the project folder :return: """ arcpy.AddMessage("Making layers...") analysis_folder = os.path.dirname(output_network) validation_folder_name = find_available_num_prefix( analysis_folder) + "_Validation" validation_folder = make_folder(analysis_folder, validation_folder_name) trib_code_folder = os.path.dirname(os.path.abspath(__file__)) symbology_folder = os.path.join(trib_code_folder, 'BRATSymbology') dam_symbology = os.path.join(symbology_folder, "SurveyedBeaverDamLocations.lyr") historic_remaining_symbology = os.path.join( symbology_folder, "PercentofHistoricDamCapacityRemaining.lyr") pred_v_surv_symbology = os.path.join( symbology_folder, "PredictedDamCountvs.SurveyedDamCount.lyr") management_strategies_symbology = os.path.join( symbology_folder, "CurrentBeaverDamManagementStrategies.lyr") occupancy_symbology = os.path.join( symbology_folder, "PercentofExistingCapacityOccupiedbySurveyedDams.lyr") make_layer(validation_folder, output_network, "Percent of Historic Dam Capacity Remaining", historic_remaining_symbology, is_raster=False, symbology_field="mCC_EXvHPE") if dams is not None: make_layer(os.path.dirname(dams), dams, "Surveyed Beaver Dam Locations", dam_symbology, is_raster=False, symbology_field="Snapped") make_layer(validation_folder, output_network, "Predicted Dam Count vs. Surveyed Dam Count", pred_v_surv_symbology, is_raster=False, symbology_field="BRATvSurv") make_layer(validation_folder, output_network, "Current Beaver Dam Management Strategies", management_strategies_symbology, is_raster=False, symbology_field="ConsVRest") make_layer(validation_folder, output_network, "Occupancy Rate of Surveyed Beaver Dams", occupancy_symbology, is_raster=False, symbology_field="e_DamPcC")
def make_input_layers(destinations, layer_name, is_raster, symbology_layer=None, file_name=None, check_field=None): """ Makes the layers for everything in the folder :param destinations: A list of paths to our input :param layer_name: The name of the layer :param is_raster: Whether or not it's a raster :param symbology_layer: The base for the symbology :param file_name: The name for the file (if it's different from the layerName) :param check_field: The name of the field that the symbology is based on :return: """ if file_name is None: file_name = layer_name for destination in destinations: dest_dir_name = os.path.dirname(destination) if check_field: fields = [f.name for f in arcpy.ListFields(destination)] if check_field not in fields: # Stop execution if the field we're checking for is not in the layer base return make_layer(dest_dir_name, destination, layer_name, symbology_layer=symbology_layer, is_raster=is_raster, file_name=file_name)
def make_layers(input_network): """ Makes the layers for the modified output :param input_network: The path to the network that we'll make a layer from :return: """ arcpy.AddMessage("Making layers...") intermediates_folder = os.path.dirname(input_network) veg_folder_name = find_available_num_prefix( intermediates_folder) + "_VegDamCapacity" veg_folder = make_folder(intermediates_folder, veg_folder_name) trib_code_folder = os.path.dirname(os.path.abspath(__file__)) symbology_folder = os.path.join(trib_code_folder, 'BRATSymbology') existing_veg_symbology = os.path.join( symbology_folder, "ExistingVegDamBuildingCapacity.lyr") historic_veg_symbology = os.path.join( symbology_folder, "HistoricVegDamBuildingCapacity.lyr") make_layer(veg_folder, input_network, "Existing Veg Dam Building Capacity", existing_veg_symbology, is_raster=False) make_layer(veg_folder, input_network, "Historic Veg Dam Building Capacity", historic_veg_symbology, is_raster=False)
def check_layer(layer_path, base_path, symbology_layer=None, is_raster=False, layer_name=None): """ If the base exists, but the layer does not, makes the layer :param layer_path: The layer we want to check for :param base_path: The file that the layer is based off of :param symbology_layer: The symbology to apply to the new layer (if necessary) :param is_raster: If the new layer is a raster :return: """ if not os.path.exists(layer_path) and os.path.exists(base_path): output_folder = os.path.dirname(layer_path) if layer_name is None: layer_name = os.path.basename(layer_path) make_layer(output_folder, base_path, layer_name, symbology_layer, is_raster=is_raster)
def make_layers(out_network): """ Writes the layers :param out_network: The output network, which we want to make into a layer :return: """ arcpy.AddMessage("Making layers...") analyses_folder = os.path.dirname(out_network) output_folder = make_folder( analyses_folder, find_available_num_prefix(analyses_folder) + "_Management") trib_code_folder = os.path.dirname(os.path.abspath(__file__)) symbology_folder = os.path.join(trib_code_folder, 'BRATSymbology') strategy_map_symbology = os.path.join( symbology_folder, "StrategiestoPromoteDamBuilding.lyr") limitations_dams_symbology = os.path.join( symbology_folder, "UnsuitableorLimitedDamBuildingOpportunities.lyr") undesirable_dams_symbology = os.path.join(symbology_folder, "RiskofUndesirableDams.lyr") conservation_restoration_symbology = os.path.join( symbology_folder, "BeaverDamConstraintsandOpportunities.lyr") make_layer(output_folder, out_network, "Unsuitable or Limited Dam Building Opportunities", limitations_dams_symbology, is_raster=False, symbology_field='oPBRC_UD') make_layer(output_folder, out_network, "Risk of Undesirable Dams", undesirable_dams_symbology, is_raster=False, symbology_field='oPBRC_UI') make_layer(output_folder, out_network, "Beaver Dam Constraints and Opportunities", conservation_restoration_symbology, is_raster=False, symbology_field='oPBRC_CR') # only try making strategies map layer if 'DamStrat' in fields fields = [f.name for f in arcpy.ListFields(out_network)] if 'DamStrat' in fields: make_layer(output_folder, out_network, "Strategies to Promote Dam Building", strategy_map_symbology, is_raster=False, symbology_field='DamStrat')
def makeLayers(out_network, out_name): """ Writes the layers :param out_network: The output network, which we want to make into a layer :param out_name: The name of the layers :return: """ arcpy.AddMessage("Making layers...") analyses_folder = os.path.dirname(out_network) output_folder = make_folder( analyses_folder, find_available_num(analyses_folder) + "_Capacity") historic_folder = make_folder( output_folder, find_available_num(output_folder) + "_HistoricCapacity") existing_folder = make_folder( output_folder, find_available_num(output_folder) + "_ExistingCapacity") tribCodeFolder = os.path.dirname(os.path.abspath(__file__)) symbologyFolder = os.path.join(tribCodeFolder, 'BRATSymbology') existingCapacityLayer = os.path.join(symbologyFolder, "Existing_Capacity.lyr") historicCapacityLayer = os.path.join(symbologyFolder, "Historic_Capacity.lyr") existingCapacityCountLayer = os.path.join(symbologyFolder, "Existing_Capacity_Count.lyr") historicCapacityCountLayer = os.path.join(symbologyFolder, "Historic_Capacity_Count.lyr") make_layer(existing_folder, out_network, "Existing Dam Building Capacity", existingCapacityLayer, is_raster=False) make_layer(historic_folder, out_network, "Historic Dam Building Capacity", historicCapacityLayer, is_raster=False) make_layer(existing_folder, out_network, "Existing Dam Complex Size", existingCapacityCountLayer, is_raster=False) make_layer(historic_folder, out_network, "Historic Dam Complex Size", historicCapacityCountLayer, is_raster=False)
def make_topo_layers(topo_folder): """ Writes the layers :param topo_folder: We want to make layers for the stuff in this folder :return: """ source_code_folder = os.path.dirname(os.path.abspath(__file__)) symbology_folder = os.path.join(source_code_folder, 'BRATSymbology') dem_symbology = os.path.join(symbology_folder, "DEM.lyr") slope_symbology = os.path.join(symbology_folder, "Slope.lyr") for folder in os.listdir(topo_folder): dem_folder_path = os.path.join(topo_folder, folder) for file_name in os.listdir(dem_folder_path): if file_name.endswith(".tif"): dem_file = os.path.join(dem_folder_path, file_name) if not os.path.exists(os.path.join(dem_folder_path, "DEM.lyr")) and os.path.exists(dem_file): make_layer(dem_folder_path, dem_file, "DEM", dem_symbology, is_raster=True) hillshade_folder = find_folder(dem_folder_path, "Hillshade") hillshade_file = os.path.join(hillshade_folder, "Hillshade.tif") if not os.path.exists(os.path.join(hillshade_folder, "Hillshade.lyr")) and os.path.exists(hillshade_file): make_layer(hillshade_folder, hillshade_file, "Hillshade", is_raster=True) slope_folder = find_folder(dem_folder_path, "Slope") slope_file = os.path.join(slope_folder, "Slope.tif") if not os.path.exists(os.path.join(slope_folder, "Slope.lyr")) and os.path.exists(slope_file): make_layer(slope_folder, slope_file, "Slope", slope_symbology, is_raster=True)
def make_layers(input_network): """ Makes the layers for the modified output :param input_network: The path to the network that we'll make a layer from :return: """ arcpy.AddMessage("Making layers...") intermediates_folder = os.path.dirname(input_network) braid_folder_name = find_available_num( intermediates_folder) + "_AnabranchHandler" braid_folder = make_folder(intermediates_folder, braid_folder_name) trib_code_folder = os.path.dirname(os.path.abspath(__file__)) symbology_folder = os.path.join(trib_code_folder, 'BRATSymbology') mainstem_symbology = os.path.join(symbology_folder, "Mainstems.lyr") make_layer(braid_folder, input_network, "Anabranch Types", mainstem_symbology, is_raster=False)
def make_topo_layers(topo_folder): """ Writes the layers :param topo_folder: We want to make layers for the stuff in this folder :return: """ source_code_folder = os.path.dirname(os.path.abspath(__file__)) symbology_folder = os.path.join(source_code_folder, 'BRATSymbology') dem_symbology = os.path.join(symbology_folder, "DEM.lyr") slope_symbology = os.path.join(symbology_folder, "Slope.lyr") hillshade_symbology = os.path.join(symbology_folder, "Hillshade.lyr") for folder in os.listdir(topo_folder): dem_folder_path = os.path.join(topo_folder, folder) dem_file = None for file_name in os.listdir(dem_folder_path): if file_name.endswith(".tif"): dem_file = os.path.join(dem_folder_path, file_name) make_layer(dem_folder_path, dem_file, "DEM", dem_symbology, is_raster=True) hillshade_folder = make_folder(dem_folder_path, "Hillshade") hillshade_file = os.path.join(hillshade_folder, "Hillshade.tif") try: arcpy.HillShade_3d(dem_file, hillshade_file) make_layer(hillshade_folder, hillshade_file, "Hillshade", hillshade_symbology, is_raster=True) except arcpy.ExecuteError as err: if get_execute_error_code(err) == "000859": arcpy.AddWarning( "Warning: Unable to create hillshade layer. Consider modifying your DEM input if you need a hillshade." ) else: raise arcpy.ExecuteError(err) slope_folder = make_folder(dem_folder_path, "Slope") slope_file = os.path.join(slope_folder, "Slope.tif") try: out_slope = arcpy.sa.Slope(dem_file) out_slope.save(slope_file) make_layer(slope_folder, slope_file, "Slope", slope_symbology, is_raster=True) except arcpy.ExecuteError as err: if get_execute_error_code(err) == "000859": arcpy.AddWarning( "Warning: Unable to create hillshade layer. Consider modifying your DEM input if you need a hillshade." ) else: raise arcpy.ExecuteError(err)
def makeLayers(out_network): """ Writes the layers :param out_network: The output network, which we want to make into a layer :return: """ arcpy.AddMessage("Making layers...") analyses_folder = os.path.dirname(out_network) output_folder = make_folder( analyses_folder, find_available_num(analyses_folder) + "_Management") tribCodeFolder = os.path.dirname(os.path.abspath(__file__)) symbologyFolder = os.path.join(tribCodeFolder, 'BRATSymbology') managementLayer = os.path.join(symbologyFolder, "Beaver_Management_Zones_v2.lyr") managementLayer2 = os.path.join(symbologyFolder, "Dam_Building_Not_Likely.lyr") managementLayer3 = os.path.join( symbologyFolder, "Restoration_Conservation_Opportunities.lyr") make_layer(output_folder, out_network, "Beaver Management Zones", managementLayer, is_raster=False) make_layer(output_folder, out_network, "Unsuitable or Limited Opportunities", managementLayer2, is_raster=False) make_layer(output_folder, out_network, "Restoration or Conservation Opportunities", managementLayer3, is_raster=False)
def main(): # get list of all folders in project folder os.chdir(pf_path) dir_list = filter(lambda x: os.path.isdir(x), os.listdir('.')) for dir in dir_list[:]: if dir.startswith('00_'): dir_list.remove(dir) # create layers for each huc8 folder for dir in dir_list: print "------------------------------------------------" print "Correcting layers for " + dir # this may need to be modified depending on your folder structure project_folder = os.path.join(pf_path, dir) #, "BRAT", run_folder) # find paths for BRAT outputs brat_table = os.path.join( project_folder, "Outputs/Output_01/01_Intermediates/BRAT_Table.shp") comb_cap = os.path.join( project_folder, "Outputs/Output_01/02_Analyses/Combined_Capacity_Model.shp") cons_rest = os.path.join( project_folder, "Outputs/Output_01/02_Analyses/Conservation_Restoration_Model.shp") intermediates_folder = os.path.dirname(brat_table) analysis_folder = os.path.dirname(comb_cap) # find paths for BRAT inputs ex_veg_files = find_file( project_folder, "Inputs/*[0-9]*_Vegetation/*[0-9]*_ExistingVegetation/Ex_Veg_*[0-9]*/*.img" ) if len(ex_veg_files) > 0: ex_veg = ex_veg_files else: ex_veg = None hist_veg_files = find_file( project_folder, "Inputs/*[0-9]*_Vegetation/*[0-9]*_HistoricVegetation/Hist_Veg_*[0-9]*/*.img" ) if len(hist_veg_files) > 0: hist_veg = hist_veg_files else: hist_veg = None network_files = find_file( project_folder, "Inputs/*[0-9]*_Network/Network_*[0-9]*/*.shp") if len(network_files) > 0: network = network_files else: network = None dem_files = find_file( project_folder, "Inputs/*[0-9]*_Topography/DEM_*[0-9]*/dem*.tif") if len(dem_files) > 0: dem = dem_files else: dem = None hillshade_files = find_file( project_folder, "Inputs/*[0-9]*_Topography/DEM_*[0-9]*/Hillshade/*.tif") if len(hillshade_files) > 0: hillshade = hillshade_files else: hillshade = None flow_files = find_file( project_folder, "Inputs/*[0-9]*_Topography/DEM_*[0-9]*/Flow/*.tif") if len(flow_files) > 0: flow = flow_files else: flow = None slope_files = find_file( project_folder, "Inputs/*[0-9]*_Topography/DEM_*[0-9]*/Slope/*.tif") if len(slope_files) > 0: slope = slope_files else: slope = None valley_files = find_file( project_folder, "Inputs/*[0-9]*_Anthropogenic/*[0-9]*_ValleyBottom/Valley_*[0-9]*/*.shp" ) if len(valley_files) > 0: valley = valley_files else: valley = None road_files = find_file( project_folder, "Inputs/*[0-9]*_Anthropogenic/*[0-9]*_Roads/Roads_*[0-9]*/*.shp") if len(road_files) > 0: road = road_files else: road = None rail_files = find_file( project_folder, "Inputs/*[0-9]*_Anthropogenic/*[0-9]*_Railroads/Railroads_*[0-9]*/*.shp" ) if len(rail_files) > 0: rail = rail_files else: rail = None canal_files = find_file( project_folder, "Inputs/*[0-9]*_Anthropogenic/*[0-9]*_Canals/Canals_*[0-9]*/canals.shp" ) if len(canal_files) > 0: canal = canal_files else: canal = None landuse_files = find_file( project_folder, "Inputs/*[0-9]*_Anthropogenic/*[0-9]*_LandUse/Land_Use_*[0-9]*/*.img" ) if len(landuse_files) > 0: landuse = landuse_files else: landuse = None diversion_files = find_file( project_folder, "Inputs/*[0-9]*_Anthropogenic/*[0-9]*_Canals/Canals_*[0-9]*/points_of_diversion.shp" ) if len(diversion_files) > 0: diversion_pts = diversion_files else: diversion_pts = None # define symbology layers ex_veg_suit = os.path.join(brat_symbology_dir, 'Existing_Veg_Suitability.lyr') ex_veg_rip = os.path.join(brat_symbology_dir, 'Existing_Veg_Riparian.lyr') ex_veg_name = os.path.join(brat_symbology_dir, 'Existing_Veg_EVT_Name.lyr') ex_veg_type = os.path.join(brat_symbology_dir, 'Existing_Veg_EVT_Type.lyr') ex_veg_class = os.path.join(brat_symbology_dir, 'Existing_Veg_EVT_Class.lyr') hist_veg_suit = os.path.join(brat_symbology_dir, 'Historic_Veg_Suitability.lyr') hist_veg_rip = os.path.join(brat_symbology_dir, 'Historic_Veg_Riparian.lyr') hist_veg_name = os.path.join(brat_symbology_dir, 'Historic_Veg_BPS_Name.lyr') hist_veg_group = os.path.join(brat_symbology_dir, 'Historic_Veg_BPS_Type.lyr') network_symbology = os.path.join(brat_symbology_dir, "Network.lyr") landuse_symbology = os.path.join(brat_symbology_dir, "Land_Use_Raster.lyr") land_ownership_symbology = os.path.join(brat_symbology_dir, "SurfaceManagementAgency.lyr") canals_symbology = os.path.join(brat_symbology_dir, "CanalsDitches.lyr") roads_symbology = os.path.join(brat_symbology_dir, "Roads.lyr") railroads_symbology = os.path.join(brat_symbology_dir, "Railroads.lyr") valley_bottom_symbology = os.path.join(brat_symbology_dir, "ValleyBottom_Fill.lyr") valley_bottom_outline_symbology = os.path.join( brat_symbology_dir, "ValleyBottom_Outline.lyr") flow_direction_symbology = os.path.join(brat_symbology_dir, "FlowDirection.lyr") dem_symbology = os.path.join(brat_symbology_dir, "DEM.lyr") hs_symbology = os.path.join(brat_symbology_dir, "Hillshade.lyr") slope_symbology = os.path.join(brat_symbology_dir, "Slope.lyr") flow_symbology = os.path.join(brat_symbology_dir, "Flow_Accumulation.lyr") dist_to_infrastructure_symbology = os.path.join( brat_symbology_dir, "DistancetoClosestInfrastructure.lyr") dist_to_road_in_valley_bottom_symbology = os.path.join( brat_symbology_dir, "DistancetoRoadinValleyBottom.lyr") dist_to_road_crossing_symbology = os.path.join( brat_symbology_dir, "DistancetoRoadCrossing.lyr") dist_to_road_symbology = os.path.join(brat_symbology_dir, "DistancetoRoad.lyr") dist_to_railroad_in_valley_bottom_symbology = os.path.join( brat_symbology_dir, "DistancetoRailroadinValleyBottom.lyr") dist_to_railroad_symbology = os.path.join(brat_symbology_dir, "DistancetoRailroad.lyr") dist_to_canal_symbology = os.path.join(brat_symbology_dir, "DistancetoCanal.lyr") pts_diversion_symbology = os.path.join(brat_symbology_dir, "PointsofDiversion.lyr") dist_to_pts_diversion_symbology = os.path.join( brat_symbology_dir, "DistancetoPointsofDiversion.lyr") land_use_symbology = os.path.join(brat_symbology_dir, "LandUseIntensity.lyr") land_ownership_per_reach_symbology = os.path.join( brat_symbology_dir, "LandOwnershipperReach.lyr") priority_translocations_symbology = os.path.join( brat_symbology_dir, "PriorityBeaverTranslocationAreas.lyr") reach_slope_symbology = os.path.join(brat_symbology_dir, "ReachSlope.lyr") drain_area_symbology = os.path.join(brat_symbology_dir, "UpstreamDrainageArea.lyr") buffer_30m_symbology = os.path.join(brat_symbology_dir, "buffer_30m.lyr") buffer_100m_symbology = os.path.join(brat_symbology_dir, "buffer_100m.lyr") perennial_symbology = os.path.join(brat_symbology_dir, "Perennial.lyr") baseflow_symbology = os.path.join(brat_symbology_dir, "BaseflowStreampower.lyr") highflow_symbology = os.path.join(brat_symbology_dir, "HighflowStreamPower.lyr") ex_veg_cap = os.path.join(brat_symbology_dir, "ExistingVegDamBuildingCapacity.lyr") hist_veg_cap = os.path.join(brat_symbology_dir, "HistoricVegDamBuildingCapacity.lyr") anabranch = os.path.join(brat_symbology_dir, "AnabranchTypes.lyr") existing_capacity = os.path.join(brat_symbology_dir, "ExistingDamBuildingCapacity.lyr") historic_capacity = os.path.join(brat_symbology_dir, "HistoricDamBuildingCapacity.lyr") existing_complex = os.path.join(brat_symbology_dir, "ExistingDamComplexSize.lyr") historic_complex = os.path.join(brat_symbology_dir, "HistoricDamComplexSize.lyr") conservation_rest = os.path.join( brat_symbology_dir, "RestorationorConservationOpportunities.lyr") undesirable = os.path.join(brat_symbology_dir, "RiskofUndesirableDams.lyr") unsuitable = os.path.join( brat_symbology_dir, "UnsuitableorLimitedDamBuildingOpportunities.lyr") # make layers try: #input_layers(ex_veg_files, hist_veg_files, network_files, topo_folder, landuse_files, # valley_files, road_files, rail_files, canals_files, [], []) # make input layers if ex_veg is not None: print "............Correcting existing veg" for f in ex_veg: folder = os.path.dirname(f) lyrs = glob.glob(os.path.join(folder, "*.lyr")) if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: make_layer( folder, f, "Existing Vegetation Suitability for Beaver Dam Building", symbology_layer=ex_veg_suit, is_raster=True, file_name='ExVegSuitability') except Exception as err: print "------Failed to make existing veg suitability lyr" #print err try: make_layer(folder, f, "Existing Riparian", symbology_layer=hist_veg_rip, is_raster=True) except Exception as err: print "------Failed to make existing riparian lyr" #print err #try: # make_layer(folder, f, "Veg Type - EVT Name", symbology_lyr = ex_veg_name, is_raster=True, symbology_field = 'EVT_Name') #except Exception as err: # print "------Failed to make existing veg EVT Name layer" # #print err #try: # make_layer(folder, f, "Veg Type - EVT Type", symbology_lyr = ex_veg_type, is_raster=True, symbology_field = 'E) #except Exception as err: # print "------Failed to make existing veg EVT Type layer" # #print err #try: # make_layer(folder, f, "Veg Type - EVT Class", symbology_lyr = ex_veg_class, is_raster=True) #except Exception as err: # print "-------Failed to make existing veg EVT Class layer" # print #err if hist_veg is not None: print "............Correcting historic veg" for f in hist_veg: folder = os.path.dirname(f) lyrs = glob.glob(os.path.join(folder, "*.lyr")) if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: make_layer( folder, f, "Historic Vegetation Suitability for Beaver Dam Building", symbology_layer=ex_veg_suit, is_raster=True, file_name="Historic_Veg_Suitability") except Exception as err: print "------Failed to make historic veg suitability lyr" #print err try: make_layer(folder, f, "Historic Riparian", symbology_layer=hist_veg_rip, is_raster=True) except Exception as err: print "------Failed to make historic riparian lyr" #print err #try: # make_layer(folder, f, "Veg Type - BPS Name", symbology_layer = hist_veg_name, is_raster=True, file_name="Historic_Veg_BPS_Name") #except Exception as err: # print "------Failed to make historic veg BPS name lyr" # #print err #try: # make_layer(folder, f, "Veg Type - BPS Type", symbology_layer = hist_veg_group, is_raster=True) #except Exception as err: # print "------Failed to make historic veg BPS type lyr" # #print err if network is not None: print "............Correcting network" for f in network: folder = os.path.dirname(f) lyrs = glob.glob(os.path.join(folder, "*.lyr")) if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: make_layer(folder, f, "Network", symbology_layer=network_symbology) except Exception as err: print "------Failed to make network lyr" #print err try: make_layer(folder, f, "Flow Direction", symbology_layer=flow_direction_symbology) except Exception as err: print "------Failed to make flow direction lyr" #print err if landuse is not None: print "............Correcting landuse" for f in landuse: folder = os.path.dirname(f) lyrs = glob.glob(os.path.join(folder, "*.lyr")) if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: make_layer(folder, f, "Land Use Raster", symbology_layer=landuse_symbology, is_raster=True) except Exception as err: print "------Failed to make landuse lyr" #print err if canal is not None: print "............Correcting canals" for f in canal: folder = os.path.dirname(f) lyrs = glob.glob(os.path.join(folder, "*.lyr")) if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: make_layer(folder, f, "Canals & Ditches", symbology_layer=canals_symbology) except Exception as err: print "------Failed to make canals lyr" #print err if road is not None: print "............Correcting roads" for f in road: folder = os.path.dirname(f) lyrs = glob.glob(os.path.join(folder, "*.lyr")) if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: make_layer(folder, f, "Roads", symbology_layer=roads_symbology) except Exception as err: print "------Failed to make roads lyr" #print err if rail is not None: print "............Correcting rails" for f in rail: folder = os.path.dirname(f) lyrs = glob.glob(os.path.join(folder, "*.lyr")) if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: make_layer(folder, f, "Railroads", symbology_layer=railroads_symbology) except Exception as err: print "------Failed to make railroads lyr" #print err if valley is not None: print "............Correcting valley bottom" for f in valley: folder = os.path.dirname(f) lyrs = glob.glob(os.path.join(folder, "*.lyr")) if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: make_layer( folder, f, "Valley Bottom Outline", symbology_layer=valley_bottom_outline_symbology) except Exception as err: print "------Failed to make valley bottom outline lyr" #print err try: make_layer(folder, f, "Valley Bottom Fill", symbology_layer=valley_bottom_symbology) except Exception as err: print "------Failed to make valley bottom fill lyr" #print err if dem is not None: print "............Correcting DEM" for f in dem: folder = os.path.dirname(f) lyrs = glob.glob(os.path.join(folder, "*.lyr")) if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: make_layer(folder, f, "DEM", symbology_layer=dem_symbology, is_raster=True) except Exception as err: print "------Failed to make DEM lyr" #print err if hillshade is not None: print "............Correcting hillshade" for f in hillshade: folder = os.path.dirname(f) lyrs = glob.glob(os.path.join(folder, "*.lyr")) if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: make_layer(folder, f, "Hillshade", symbology_layer=hs_symbology, is_raster=True) except Exception as err: print "------Failed to make hillshade lyr" #print err if flow is not None: print "............Correcting flow accumulation" for f in flow: folder = os.path.dirname(f) lyrs = glob.glob(os.path.join(folder, "*.lyr")) if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: make_layer(folder, f, "Flow Accumulation", symbology_layer=flow_symbology, is_raster=True) except Exception as err: print "------Failed to make flow accumulation lyr" #print err if slope is not None: print "............Correcting slope" for f in slope: folder = os.path.dirname(f) lyrs = glob.glob(os.path.join(folder, "*.lyr")) if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: make_layer(folder, f, "Slope", symbology_layer=slope_symbology, is_raster=True) except Exception as err: print "------Failed to make slope lyr" #print err except Exception as err: #print "----------------------------------------------------" print " " + "BRAT PROJECT LAYERS CORRECTION FAILED!" print " " + "Error thrown:" print err try: #Table_layers(brat_table, diversion_pts) # make intermediate layers buffer30_list = find_file(intermediates_folder, "*[0-9]*_Buffers/buffer_30m.shp") if len(buffer30_list) > 0: buffer30 = buffer30_list else: buffer30 = None buffer100_list = find_file(intermediates_folder, "*[0-9]*_Buffers/buffer_100m.shp") if len(buffer100_list) > 0: buffer100 = buffer100_list else: buffer100 = None topo_folder = find_file(intermediates_folder, "*[0-9]*_TopographicMetrics")[0] lyrs = find_file(topo_folder, "*.lyr") if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass anthropogenic_metrics_folder = find_file( intermediates_folder, "*[0-9]*_AnthropogenicMetrics")[0] lyrs = find_file(anthropogenic_metrics_folder, "*.lyr") if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass if buffer30 is not None: print "............Correcting 30 m buffer" for f in buffer30: folder = os.path.dirname(f) lyrs = find_file(folder, "*.lyr") if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: make_layer(folder, f, "30 m Buffer", symbology_layer=buffer_30m_symbology) except Exception as err: print "-------Failed to make 30m buffer lyr" #print err if buffer100 is not None: print "............Correcting 100 m buffer" for f in buffer100: folder = os.path.dirname(f) lyrs = find_file(folder, "*.lyr") if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: make_layer(folder, f, "100 m Buffer", symbology_layer=buffer_100m_symbology) except Exception as err: print "-------Failed to make 100m buffer lyr" #print err try: print "............Correcting reacah slope" make_layer(topo_folder, brat_table, "Reach Slope", reach_slope_symbology) except Exception as err: print "------Failed to make reach slope lyr" #print err try: print "............Correcting upstream drainage area" make_layer(topo_folder, brat_table, "Upstream Drainage Area", drain_area_symbology) except Exception as err: print "------Failed to make upstream drainage area lyr" #print err fields = [f.name for f in arcpy.ListFields(brat_table)] try: if 'iPC_LU' in fields: print "............Correcting land use intensity" make_layer(anthropogenic_metrics_folder, brat_table, "Land Use Intensity", land_use_symbology, is_raster=False) except Exception as err: print "------Failed to make land use intensity lyr" #print err try: if 'iPC_RoadX' in fields: print "............Correcting dist to road crossing" make_layer(anthropogenic_metrics_folder, brat_table, "Distance to Road Crossing", dist_to_road_crossing_symbology, is_raster=False, symbology_field='iPC_RoadX') except Exception as err: print "------Failed to make distance to road lyr" #print err try: if 'iPC_Road' in fields: print "............Correcting dist to road" make_layer(anthropogenic_metrics_folder, brat_table, "Distance to Road", dist_to_road_symbology, is_raster=False, symbology_field='iPC_Road') except Exception as err: print "------Failed to make distance to road lyr" #print err try: if 'iPC_RoadVB' in fields: print "............Correcting dist to road in VB" make_layer(anthropogenic_metrics_folder, brat_table, "Distance to Road in Valley Bottom", dist_to_road_in_valley_bottom_symbology, is_raster=False, symbology_field='iPC_RoadVB') except Exception as err: print "------Failed to make distance to road in valley bottom lyr" #print err try: if 'iPC_Rail' in fields: print "............Correcting dist to railroad" make_layer(anthropogenic_metrics_folder, brat_table, "Distance to Railroad", dist_to_railroad_symbology, is_raster=False, symbology_field='iPC_Rail') except Exception as err: print "------Failed to make distance railroad lyr" #print err try: if 'iPC_RailVB' in fields: print "............Correcting dist to rail in VB" make_layer(anthropogenic_metrics_folder, brat_table, "Distance to Railroad in Valley Bottom", dist_to_railroad_in_valley_bottom_symbology, is_raster=False, symbology_field='iPC_RailVB') except Exception as err: print "------Failed to make railroad in valley bottom lyr" #print err try: if 'iPC_Canal' in fields: print "............Correcting dist to canal" make_layer(anthropogenic_metrics_folder, brat_table, "Distance to Canal", dist_to_canal_symbology, is_raster=False, symbology_field='iPC_Canal') except Exception as err: print "------Failed to make distance to canal lyr" #print err try: if 'iPC_DivPts' in fields: print "............Correcting dist to points of diversion" make_layer(anthropogenic_metrics_folder, brat_table, "Distance to Points of Diversion", dist_to_pts_diversion_symbology, is_raster=False, symbology_field='iPC_DivPts') except Exception as err: print "------Failed to make distance to points of diversion lyr" #print err try: if 'ADMIN_AGEN' in fields: print "............Correcting land ownership per reach" make_layer(anthropogenic_metrics_folder, brat_table, "Land Ownership per Reach", land_ownership_per_reach_symbology, is_raster=False, symbology_field='ADMIN_AGEN') except Exception as err: print "------Failed to make land ownership per reach lyr" #print err try: if 'iPC_Privat' in fields: print "............Correcting priority beaver translocation" make_layer(anthropogenic_metrics_folder, brat_table, "Priority Beaver Translocation Areas", priority_translocations_symbology, is_raster=False, symbology_field='iPC_Privat') except Exception as err: print "------Failed to make priority beaver translocation areas lyr" #print err try: if 'oPC_Dist' in fields: print "............Correcting distance to infrastructure" make_layer(anthropogenic_metrics_folder, brat_table, "Distance to Closest Infrastructure", dist_to_infrastructure_symbology, is_raster=False, symbology_field='oPC_Dist') except Exception as err: print "------Failed to make distance to closest infrastructure lyr" #print err if diversion_pts is not None: try: print "............Correcting points of diveresion" for f in diversion_pts: folder = os.path.dirname(f) make_layer(folder, f, "Points of Diversion", pts_diversion_symbology) except Exception as err: print "--------Failed to make points of diversion lyr" #print err except Exception as err: #print "----------------------------------------------------" print " " + "BRAT TABLE LAYERS CORRECTION FAILED!" print " " + "Error thrown:" print err try: #iHyd_layers(brat_table) # make hydrology layers ihyd_folder = find_file(intermediates_folder, "*[0-9]*_Hydrology")[0] lyrs = find_file(ihyd_folder, "*.lyr") if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: print "............Correcting baseflow streampower" make_layer(ihyd_folder, brat_table, "Baseflow Streampower", baseflow_symbology) except Exception as err: print "------Failed to make baseflow streampower lyr" #print err try: print "............Correcting highflow streampower" make_layer(ihyd_folder, brat_table, "Highflow Streampower", highflow_symbology) except Exception as err: print "------Failed to make highflow streampower lyr" #print err except Exception as err: #print "----------------------------------------------------" print " " + "IHYD LAYERS CORRECTION FAILED!" print " " + "Error thrown:" print err try: #vegFIS_layers(brat_table) # make veg capacity layers vegfis_folder = find_file(intermediates_folder, "*[0-9]*_VegDamCapacity")[0] anabranch_folder = find_file(intermediates_folder, "*[0-9]*_AnabranchHandler")[0] lyrs = find_file(vegfis_folder, "*.lyr") if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass lyrs = find_file(anabranch_folder, "*.lyr") if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: print "............Correcting existing veg dam building capacity" make_layer(vegfis_folder, brat_table, "Existing Veg Dam Building Capacity", ex_veg_cap) except Exception as err: print "------Failed to make existing veg capacity lyr" #print err try: print "............Correcting historic veg dam building capacity" make_layer(vegfis_folder, brat_table, "Historic Veg Dam Building Capacity", hist_veg_cap) except Exception as err: print "------Failed to make historic veg capacity lyr" #print err try: print "............Correcting anabranch types" make_layer(anabranch_folder, brat_table, "Anabranch Types", anabranch) except Exception as err: print "------Failed to make anabranch types lyr" #print err except Exception as err: #print "----------------------------------------------------" print " " + "VEG CAPACITY LAYERS CORRECTION FAILED!" print " " + "Error thrown:" print err try: #combFIS_layers(comb_cap) # make combined capacity layers hist_capacity_folder = find_file( analysis_folder, "*[0-9]*_Capacity/01_HistoricCapacity")[0] ex_capacity_folder = find_file( analysis_folder, "*[0-9]*_Capacity/02_ExistingCapacity")[0] lyrs = find_file(hist_capacity_folder, "*.lyr") if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass lyrs = find_file(ex_capacity_folder, "*.lyr") if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: print "............Correcting existing capacity" make_layer(ex_capacity_folder, comb_cap, "Existing Dam Building Capacity", existing_capacity) except Exception as err: print "------Failed to make existing capacity lyr" #print err try: print "............Correcting existing complex size" make_layer(ex_capacity_folder, comb_cap, "Existing Dam Complex Size", existing_complex) except Exception as err: print "------Failed to make existing complex size lyr" #print err try: print "............Correcting historic capacity" make_layer(hist_capacity_folder, comb_cap, "Historic Dam Building Capacity", historic_capacity) except Exception as err: print "------Failed to make historic capacity lyr" #print err try: print "............Correcting historic complex size" make_layer(hist_capacity_folder, comb_cap, "Historic Dam Complex Size", historic_complex) except Exception as err: print "------Failed to make historic complex size lyr" #print err except Exception as err: #print "----------------------------------------------------" print " " + "COMBINED CAPACITY LAYERS CORRECTION FAILED!" + dir print " " + "Error thrown:" print err try: #ConsRest_layers(cons_rest) # make management layers management_dir = find_file(analysis_folder, "*[0-9]_Management")[0] lyrs = find_file(management_dir, "*.lyr") if len(lyrs) > 0: for l in lyrs: try: os.remove(l) except Exception: pass try: print "............Correcting conservation restoration" make_layer(management_dir, cons_rest, "Restoration or Conservation Opportunities", conservation_rest) except Exception as err: print "------Failed to make conservation restoration lyr" #print err try: print "............Correcting risk of undesirable dams" make_layer(management_dir, cons_rest, "Risk of Undesirable Dams", undesirable) except Exception as err: print "------Failed to make risk of undesirable dams lyr" #print err try: print "............Correcting unsuitable or limited opportunities" make_layer(management_dir, cons_rest, "Unsuitable or Limited Dam Building Opportunities", unsuitable) except Exception as err: print "------Failed to unsuitable limited lyr" #print err except Exception as err: #print "----------------------------------------------------" print " " + "CONSERVATION RESTORATION LAYERS CORRECTION FAILED!" + dir print " " + "Error thrown:" print err
def make_kmz_old(shapefile, type): analyses_folder = os.path.dirname(shapefile) capacity_folder = find_folder(analyses_folder, "Capacity") existing_capacity_folder = find_folder(capacity_folder, "ExistingCapacity") historic_capacity_folder = find_folder(capacity_folder, "HistoricCapacity") management_folder = find_folder(analyses_folder, "Management") validation_folder = find_folder(analyses_folder, "Validation") if type == 'risk': layer = os.path.join(management_folder, 'RiskofUndesirableDams.lyr') if not os.path.exists(layer): print 'Risk layer not found; attempting to re-create...' make_layer( management_folder, shapefile, "Risk of Undesirable Dams", symbology_layer=os.path.join( symbology_folder, "Areas_Beavers_Can_Build_Dams_but_could_be_Undesirable.lyr" )) elif type == 'limits': layer = os.path.join(management_folder, 'UnsuitableorLimitedOpportunities.lyr') if not os.path.exists(layer): print 'Unsuitable layer not found; attempting to re-create...' make_layer( management_folder, shapefile, "Unsuitable or Limited Opportunities", symbology_layer=os.path.join( symbology_folder, "Unsuitable_Limited_Dam_Building_Opportunities.lyr")) elif type == 'management': layer = os.path.join(management_folder, 'RestorationorConservationOpportunities.lyr') if not os.path.exists(layer): print 'Conservation layer not found; attempting to re-create...' make_layer( management_folder, shapefile, "Restoration or Conservation Opportunities", symbology_layer=os.path.join( symbology_folder, "Possible_Beaver_Dam_Conservation_Restoration_Opportunities.lyr" )) elif type == 'existing_capacity': layer = os.path.join(existing_capacity_folder, 'ExistingDamBuildingCapacity.lyr') if not os.path.exists(layer): print 'Existing capacity layer not found; attempting to re-create...' make_layer(existing_capacity_folder, shapefile, "Existing Dam Building Capacity", symbology_layer=os.path.join(symbology_folder, "Existing_Capacity.lyr")) elif type == 'existing_complex': layer = os.path.join(existing_capacity_folder, 'ExistingDamComplexSize.lyr') if not os.path.exists(layer): print 'Existing complex layer not found; attempting to re-create...' make_layer(existing_capacity_folder, shapefile, "Existing Dam Complex Size", symbology_layer=os.path.join( symbology_folder, "Existing_Capacity_Count.lyr")) elif type == 'historic_capacity': layer = os.path.join(historic_capacity_folder, 'HistoricDamBuildingCapacity.lyr') if not os.path.exists(layer): print 'Historic capacity layer not found; attempting to re-create...' make_layer(historic_capacity_folder, shapefile, "Historic Dam Building Capacity", symbology_layer=os.path.join(symbology_folder, "Historic_Capacity.lyr")) elif type == 'historic_complex': layer = os.path.join(historic_capacity_folder, 'HistoricDamComplexSize.lyr') if not os.path.exists(layer): print 'Existing capacity layer not found; attempting to re-create...' make_layer(historic_capacity_folder, shapefile, "Historic Dam Complex Size", symbology_layer=os.path.join( symbology_folder, "Historic_Capacity_Count.lyr"))
def main(): arcpy.env.overwriteOutput = True #make list of watersheds in project folder os.chdir(pf_path) dir_list = filter(lambda x: os.path.isdir(x), os.listdir('.')) # remove folders in the list that start with '00_' since these aren't our huc8 folders for dir in dir_list[:]: if dir.startswith('00_'): dir_list.remove(dir) for dir in dir_list: # find proper output/project folder for each watershed proj_path = os.path.join(pf_path, dir, 'BRAT', run_folder) output_folder = os.path.join(proj_path, 'Outputs/Output_01') print 'Making KMZs for ' + dir # find summary products KMZ folder kmz_folder = os.path.join(proj_path, 'SummaryProducts/KMZ') if not os.path.exists(kmz_folder): os.mkdir(kmz_folder) full_kmz_folder = os.path.join(kmz_folder, 'FullNetwork') if not os.path.exists(full_kmz_folder): os.mkdir(full_kmz_folder) peren_kmz_folder = os.path.join(kmz_folder, 'PerennialNetwork') if not os.path.exists(peren_kmz_folder): os.mkdir(peren_kmz_folder) # find all needed shapefiles perennial = os.path.join(pf_path, dir, 'NHD/NHD_24k_Perennial_CanalsDitches.shp') brat_table = os.path.join(output_folder, '01_Intermediates/BRAT_Table.shp') capacity = os.path.join(output_folder, '02_Analyses/Combined_Capacity_Model.shp') conservation = os.path.join( output_folder, '02_Analyses/Conservation_Restoration_Model.shp') validation = os.path.join(output_folder, '02_Analyses/Data_Capture_Validation.shp') # find all needed layers existing_capacity = os.path.join( output_folder, '02_Analyses/01_Capacity/02_ExistingCapacity/ExistingDamBuildingCapacity.lyr' ) existing_complex = os.path.join( output_folder, '02_Analyses/01_Capacity/02_ExistingCapacity/ExistingDamComplexSize.lyr' ) historic_capacity = os.path.join( output_folder, '02_Analyses/01_Capacity/01_HistoricCapacity/HistoricDamBuildingCapacity.lyr' ) historic_complex = os.path.join( output_folder, '02_Analyses/01_Capacity/01_HistoricCapacity/HistoricDamComplexSize.lyr' ) cons_rest = os.path.join( output_folder, '02_Analyses/02_Management/RestorationorConservationOpportunities.lyr' ) risk = os.path.join( output_folder, '02_Analyses/02_Management/RiskofUndesirableDams.lyr') #strategies = os.path.join(output_folder, '02_Analyses/02_Management/StrategiestoPromoteDamBuilding.lyr') unsuitable = os.path.join( output_folder, '02_Analyses/02_Management/UnsuitableorLimitedDamBuildingOpportunities.lyr' ) remaining = os.path.join( output_folder, '02_Analyses/03_Validation/PercentofHistoricDamCapacityRemaining.lyr' ) predvsurv = os.path.join( output_folder, '02_Analyses/03_Validation/PredictedDamCountvs.SurveyedDamCount.lyr' ) dam_strats = os.path.join( output_folder, '02_Analyses/03_Validation/CurrentBeaverDamManagementStrategies.lyr' ) occ_dams = os.path.join( output_folder, '02_Analyses/03_Validation/PercentofExistingCapacityOccupiedbySurveyedDams.lyr' ) dams = glob.glob( os.path.join(proj_path, 'Inputs/*[0-9]*_BeaverDams/Beaver_Dam_01/*.lyr')) # make KMZs for all capacity layers if os.path.exists(capacity): # make full network capacity layers if make_full_kmzs == True: print '.....Making full network capacity outputs' make_kmz(existing_capacity, 'Existing_Dam_Building_Capacity', full_kmz_folder) make_kmz(historic_capacity, 'Historic_Dam_Building_Capacity', full_kmz_folder) make_kmz(existing_complex, 'Existing_Dam_Complex_Size', full_kmz_folder) make_kmz(historic_complex, 'Historic_Dam_Complex_Size', full_kmz_folder) print '.....Making perennial capacity outputs' try: # make capacity clip if needed capacity_clip = capacity.split('.')[0] + "_Perennial.shp" if not os.path.exists(capacity_clip): arcpy.Clip_analysis(capacity, perennial, capacity_clip) # make perennial layer for each capacity output then convert to KMZ peren_existing_capacity = make_layer( output_folder=os.path.dirname(existing_capacity), layer_base=capacity_clip, new_layer_name='Existing Dam Building Capacity', symbology_layer=existing_capacity, file_name="ExistingDamBuildingCapacity_Perennial") make_kmz(peren_existing_capacity, "Existing_Dam_Building_Capacity", peren_kmz_folder) peren_historic_capacity = make_layer( output_folder=os.path.dirname(historic_capacity), layer_base=capacity_clip, new_layer_name='Historic Dam Building Capacity', symbology_layer=historic_capacity, file_name="HistoricDamBuildingCapacity_Perennial") make_kmz(peren_historic_capacity, "Historic_Dam_Building_Capacity", peren_kmz_folder) peren_existing_complex = make_layer( output_folder=os.path.dirname(existing_complex), layer_base=capacity_clip, new_layer_name='Existing Dam Complex Size', symbology_layer=existing_complex, file_name="ExistingDamComplexSize_Perennial") make_kmz(peren_existing_complex, "Existing_Dam_Complex_Size", peren_kmz_folder) peren_historic_complex = make_layer( output_folder=os.path.dirname(historic_complex), layer_base=capacity_clip, new_layer_name='Historic Dam Complex Size', symbology_layer=historic_complex, file_name="HistoricDamComplexSize_Perennial") make_kmz(peren_historic_complex, "Historic_Dam_Complex_Size", peren_kmz_folder) except Exception as err: print err else: print '.....ERROR! Combined capacity output not found. No capacity KMZs made.' # make KMZs for all conservation/restoration layers if os.path.exists(conservation): #make full network management outputs if make_full_kmzs == True: print '.....Making full network management outputs.....' make_kmz(cons_rest, 'Restoration_or_Conservation_Opportunities', full_kmz_folder) make_kmz(risk, 'Risk_of_Undesirable_Dams', full_kmz_folder) #make_kmz(strategies, 'Stragegies_to_Promote_Dam_Building', full_kmz_folder) make_kmz(unsuitable, 'Unsuitable_or_Limited_Dam_Building_Opportunities', full_kmz_folder) print '.....Making perennial network management outputs.....' try: # make conservation restoration clip if needed conservation_clip = conservation.split( '.')[0] + "_Perennial.shp" if not os.path.exists(conservation_clip): arcpy.Clip_analysis(conservation, perennial, conservation_clip) # make perennial layer for each management output then convert to KMZ peren_cons_rest = make_layer( output_folder=os.path.dirname(cons_rest), layer_base=conservation_clip, new_layer_name='Conservation Restoration Opportunities', symbology_layer=cons_rest, file_name="ConservationRestorationOpportunities_Perennial") make_kmz(peren_cons_rest, 'Restoration_or_Conservation_Opportunities', peren_kmz_folder) peren_risk = make_layer( output_folder=os.path.dirname(risk), layer_base=conservation_clip, new_layer_name='Risk of Undesirable Dams', symbology_layer=risk, file_name="RiskofUndesirableDams_Perennial") make_kmz(peren_risk, 'Risk_of_Undesirable_Dams', peren_kmz_folder) #peren_strategies = make_layer(output_folder=os.path.dirname(strategies), layer_base=conservation_clip, new_layer_name='Strategies to Promote Dam Building', # symbology_layer=strategies, file_name="StrategiestoPromoteDamBuilding_Perennial") #make_kmz(peren_strategies, 'Stragegies_to_Promote_Dam_Building', peren_kmz_folder) peren_unsuitable = make_layer( output_folder=os.path.dirname(unsuitable), layer_base=conservation, new_layer_name= 'Unsuitable or Limited Dam Building Opportunities', symbology_layer=unsuitable, file_name="UnsuitableorLimitedOpportunities_Perennial") make_kmz(peren_unsuitable, 'Unsuitable_or_Limited_Dam_Building_Opportunities', peren_kmz_folder) except Exception as err: print err else: print '.....ERROR! Conservation restoration output not found. No management KMZs made.' if os.path.exists(validation): #make full network validation outputs if make_full_kmzs == True: print '.....Making full network validation outputs.....' make_kmz(remaining, 'Percent_of_Historic_Capacity_Remaining', full_kmz_folder) make_kmz(predvsurv, 'Predicted_Dam_Density_vs_Surveyed_Dam_Density', full_kmz_folder) make_kmz(dam_strats, 'Current_Beaver_Dam_Management_Strategies', full_kmz_folder) make_kmz( occ_dams, 'Percent_Existing_Capacity_Occupied_by_Surveyed_Dams', full_kmz_folder) print '.....Making perennial network validation outputs.....' try: # make validation clip if needed validation_clip = validation.split('.')[0] + "_Perennial.shp" if not os.path.exists(validation_clip): arcpy.Clip_analysis(validation, perennial, validation_clip) # make perennial layer for each validation output then convert to KMZ peren_remaining = make_layer( output_folder=os.path.dirname(remaining), layer_base=validation_clip, new_layer_name='Percent of Historic Dam Capacity Remaining', symbology_layer=remaining, file_name="PercentofHistoricDamCapacityRemaining_Perennial" ) make_kmz(peren_remaining, 'Percent_of_Historic_Capacity_Remaining', peren_kmz_folder) peren_predvsurv = make_layer( output_folder=os.path.dirname(predvsurv), layer_base=validation_clip, new_layer_name= 'Predicted Dam Density vs. Surveyed Dam Density', symbology_layer=risk, file_name= "PredictedDamDensityvs.SurveyedDamDensity_Perennial") make_kmz(peren_predvsurv, 'Predicted_Dam_Density_vs_Surveyed_Dam_Density', peren_kmz_folder) peren_dam_strats = make_layer( output_folder=os.path.dirname(dam_strats), layer_base=validation_clip, new_layer_name='Current Beaver Dam Management Strategies', symbology_layer=dam_strats, file_name="CurrentBeaverDamManagementStrategies_Perennial") make_kmz(peren_dam_strats, 'Current_Beaver_Dam_Management_Strategies', peren_kmz_folder) peren_occ_dams = make_layer( output_folder=os.path.dirname(occ_dams), layer_base=validation_clip, new_layer_name= 'Percent of Existing Capacity Occupied By Surveyed Dams', symbology_layer=dam_strats, file_name="PercentofExistingCapacityOccupied_Perennial") make_kmz( peren_occ_dams, 'Percent_Existing_Capacity_Occupied_by_Surveyed_Dams', peren_kmz_folder) make_kmz(dams, 'Surveyed_Beaver_Dam_Locations', kmz_folder) except Exception as err: print err else: print '.....ERROR! Validation output not found. No KMZs made.'