示例#1
0
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)
示例#2
0
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)
示例#3
0
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)
示例#4
0
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")
示例#6
0
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)
示例#7
0
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)
示例#8
0
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)
示例#9
0
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')
示例#10
0
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)
示例#11
0
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)
示例#12
0
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)
示例#13
0
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)
示例#15
0
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
示例#16
0
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"))
示例#17
0
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.'