import arcpy import os import datetime from arcpy.sa import Slope, RemapRange, Reclassify print ("started operation") ### Security Buffer Model Script ### # Step 0: Set the configuration and input parameters # Step 1: Buffer each input # Step 2: Merge the output buffers # Step 3: Clip the merged output by the admin boundary # Step 4: Dissolve output to prepare for polygon to raster conversion # Step 5: Convert the dissolved buffers to a raster file for final output #### TOOL PARAMETERS #### print ("setting the workspace...") workspace = arcpy.GetParameterAsText(0) input_military_installations = arcpy.GetParameterAsText(1) input_areas_of_conflict = arcpy.GetParameterAsText(2) input_administrative_boundary = arcpy.GetParameterAsText(3) buffer_size = arcpy.GetParameterAsText(4) buffer_attribute = arcpy.GetParameterAsText(5) clipTo = arcpy.GetParameterAsText(6) input_elev_raster = arcpy.GetParameterAsText(7) # reclass_field = arcpy.GetParameterAsText(8) input_floodplains = arcpy.GetParameterAsText(8) floodplains_value = arcpy.GetParameterAsText(9) input_wetlands = arcpy.GetParameterAsText(10) wetlands_value = arcpy.GetParameterAsText(11) input_soils = arcpy.GetParameterAsText(12) soils_value = arcpy.GetParameterAsText(13) input_protected_areas = arcpy.GetParameterAsText(14) pa_buffer_size = arcpy.GetParameterAsText(15) pa_buffer_attribute = arcpy.GetParameterAsText(16) input_bare_areas = arcpy.GetParameterAsText(17) bare_areas_value = arcpy.GetParameterAsText(18) # input_tree_cover = arcpy.GetParameterAsText(19) # reclass_tree_cover = arcpy.GetParameterAsText(20) input_roads = arcpy.GetParameterAsText(19) input_urban_areas = arcpy.GetParameterAsText(20) a_buffer_size = arcpy.GetParameterAsText(21) a_buffer_distance = arcpy.GetParameterAsText(22) #### END TOOL PARAMETERS #### # Step 0 # Create workspace file geodatabase print ("creating workspace file geodatabase...") timestamp = '{:%Y%m%d_%H%M}'.format(datetime.datetime.now()) workspace_gdb_name = "Buffer_{0}".format(timestamp) workspace_gdb = arcpy.CreateFileGDB_management(workspace, workspace_gdb_name).getOutput(0) # Set reference to the buffer tool operation config parameters print ("setting reference to the buffer tool operation configuration parameters...") buffer_size_string = "{0} {1}".format(buffer_size, buffer_attribute) # Step 1 print ("buffering inputs...") # Create a list containing the items that need to be buffered items_to_buffer = [input_military_installations, input_areas_of_conflict, input_administrative_boundary] # Set a few variables for the iterative buffer operation counter = 0 temp_output_list = [] # Iterate on each input in the items_to_buffer list to run a buffer for item_to_buffer in items_to_buffer: counter += 1 # Specify a temporary path to the buffer output work_buffer_out_path = os.path.join(workspace_gdb, "buffer_" + str(counter)) # Run the arcpy buffer tool work_buffer_out = arcpy.Buffer_analysis(item_to_buffer, work_buffer_out_path, buffer_size_string).getOutput(0) # Add our output buffer to the temp output buffer container temp_output_list.append(work_buffer_out) # Step 2 print ("merging the output buffers...") # Convert list of buffer output paths to a semicolon delimited string bufferList = "; ".join(temp_output_list) # Execute Merge mergedBuffers = os.path.join(workspace_gdb, "mergedBuffers") arcpy.Merge_management(bufferList, mergedBuffers) # Step 3 print ("clipping merged buffer layer...") # Clip merged layers to country boundary clippedMerge = os.path.join(workspace_gdb, "clippedMerge") arcpy.Clip_analysis(mergedBuffers, clipTo, clippedMerge) # Step 4 print ("dissolving...") # Execute Dissolve dissolvedBuffers = os.path.join(workspace_gdb, "dissolvedBuffers") arcpy.Dissolve_management(clippedMerge, dissolvedBuffers) # Step 5 print ("converting to raster...") # Set local variables in_features = dissolvedBuffers value_field = "OBJECTID" out_raster = os.path.join(workspace_gdb, "security_raster") # Execute PolygonToRaster arcpy.PolygonToRaster_conversion(in_features, value_field, out_raster) print ("end of security buffer script") ### Topography Model Script ### ### Psuedo-Code ### # Step 6: Set the configuration and input parameters # Step 7: Execute slope tool on elevation raster # Step 8: Calculate statistics and make raster layer for output slope raster and reclassify # Step 9: Convert floodplain polygon to raster file # Step 10: Convert wetlands polygon to raster file # Step 11: Convert soil polygon to raster file ### print ("starting topography model script...") # Step 6 # Set references to the slope and reclassify tool operation configuration parameters outMeasurement = "PERCENT_RISE" zFactor = 1 # Step 7 print ("executing slope...") # Check out the ArcGIS Spatial Analyst extension arcpy.CheckOutExtension("Spatial") # Execute slope tool outSlope = Slope(input_elev_raster, outMeasurement, zFactor) # Specify a temporary path to the slope output work_slope_out_path = os.path.join(workspace_gdb, "slope_raster") # Save the output slope raster outSlope.save(work_slope_out_path) print (work_slope_out_path) # Step 8 # Set local variables input_slope_raster = work_slope_out_path print ("calculating statistics...") arcpy.CalculateStatistics_management(work_slope_out_path) print ("reclassifying the slope output...") work_reclass_out_path = os.path.join(workspace_gdb, "Reclass_slop1") # Making Raster Layer rasterLayer = arcpy.MakeRasterLayer_management(input_slope_raster, "MakeRas_slope_r1", None, "821686.139217557 -607944.542416126 1777512.22600888 654107.338987966", None).getOutput(0) # Reclassifying out_raster = arcpy.sa.Reclassify(rasterLayer, "VALUE", "0 1 8;1 2 9;2 4 10;4 5 9;5 6 8;6 7 7;7 8 6;8 9 5;9 10 4;10 300 1", "NODATA") out_raster.save(work_reclass_out_path) print(rasterLayer) print(out_raster) print(work_reclass_out_path) # Step 9 print ("converting floodplains polygon to raster...") # Specify output path out_floodplains_raster = os.path.join(workspace_gdb, "floodplains_raster") # Execute PolygonToRaster arcpy.PolygonToRaster_conversion(input_floodplains, floodplains_value, out_floodplains_raster) # Step 10 print("converting wetlands polygon to raster...") # Specify output path out_wetlands_raster = os.path.join(workspace_gdb, "wetlands_raster") # Execute PolygonToRaster arcpy.PolygonToRaster_conversion(input_wetlands, wetlands_value, out_wetlands_raster) # Step 11 print ("converting soils polygon to raster") # Specify output path out_soils_raster = os.path.join(workspace_gdb, "soils_raster") # Execute PolygonToRaster arcpy.PolygonToRaster_conversion(input_soils, soils_value, out_soils_raster) print ("end of topography model script") ### Environment and Vegetation Model Script ### # Step 12: Set reference to the buffer tool configuration and input parameters # Step 13: Buffer Protected Areas # Step 14: Clip protected areas buffer to country boundary # Step 15: Convert clip output polygon to raster file # Step 16: Convert bare areas polygon to raster file # Step 17: Reclassify tree cover raster file ### # Step 12 # Set reference to tool operation config parameters pa_buffer_size_string = "{0} {1}".format(pa_buffer_size, pa_buffer_attribute) sideType = "FULL" endType = "ROUND" dissolveType = "ALL" protectedAreasValue = "FID" # Step 13 print ("buffering protected areas...") # Specify output path out_protected_areas = os.path.join(workspace_gdb, "protected_areas_buffer") # Execute the buffer tool arcpy.Buffer_analysis(input_protected_areas, out_protected_areas, pa_buffer_size_string, sideType, endType, dissolveType) print (out_protected_areas) # Step 14 print ("clipping protected areas...") # Specify input and output path input_pa_buffer = out_protected_areas out_clip_protected_areas = os.path.join(workspace_gdb, "protected_areas_clip") # Execute clip tool arcpy.Clip_analysis(input_pa_buffer, clipTo, out_clip_protected_areas) # # Step 15 print ("converting to raster file...") # Specify input and output path input_pa_polygon = out_clip_protected_areas out_protected_areas_raster = os.path.join(workspace_gdb, "protected_areas_raster") # Execute PolygonToRaster arcpy.PolygonToRaster_conversion(input_pa_polygon, protectedAreasValue, out_protected_areas_raster) # Step 16 print ("converting bare areas...") # Specify output path out_bare_areas_raster = os.path.join(workspace_gdb, "bare_areas_raster") # Execute PolygonToRaster arcpy.PolygonToRaster_conversion(input_bare_areas, bare_areas_value, out_bare_areas_raster) # Step 17 # print ("reclassifying tree cover...") # # Set local variables # # print ("calculating statistics...") # arcpy.CalculateStatistics_management(input_tree_cover) # # print ("reclassifying the slope output...") # tc_reclass_out_path = os.path.join(workspace_gdb, "Reclass_tree_cover") # # Making Raster Layer # rasterLayer = arcpy.MakeRasterLayer_management(input_tree_cover, # "MakeRas_slope_r1", # None, # "821686.139217557 -607944.542416126 1777512.22600888 654107.338987966", # None).getOutput(0) # # Reclassifying # # Replace a layer/table view name with a path to a dataset (which can be a layer file) or create the layer/table view within the script # # The following inputs are layers or table views: "ke_modis" # # arcpy.gp.Reclassify_sa("ke_modis", "VALUE", "0 4 1;4 11 2;11 19 3;19 27 4;27 38 5;38 52 6;52 66 7;66 100 8;100 253 9", "C:/Users/juli9202/Documents/ArcGIS/Default1.gdb/Reclass_ke_m1", "DATA") # # # Reclassifying # out_tree_cover_reclass = arcpy.sa.Reclassify(input_tree_cover, # "VALUE", # reclass_tree_cover, # "NODATA") # # out_raster.save(tc_reclass_out_path) ### Accessibilty Model Script ### # Step 18: Buffer roads # Step 19: Buffer towns, market centers, urban areas (one polygon of all three) # Step 20: Merge buffers # Step 21: Clip buffers to administrative boundary to create accessibility polygon # Step 22: Convert accessibility polygon to raster file ### # Step 18 # Set reference to tool operation config parameters roads_buffer_size_string = "{0} {1}".format(a_buffer_size, a_buffer_distance) sideType = "FULL" endType = "ROUND" dissolveType = "ALL" print ("buffering accessibility features...") # Create a list containing the items that need to be buffered a_items_to_buffer = [input_roads, input_urban_areas] # Set a few variables for the iterative buffer operation counter = 3 temp_output_list = [] # Iterate on each input in the items_to_buffer list to run a buffer for a_item_to_buffer in a_items_to_buffer: counter += 1 # Specify a temporary path to the buffer output work_buffer_out_path = os.path.join(workspace_gdb, "buffer_" + str(counter)) # Run the arcpy buffer tool a_work_buffer_out = arcpy.Buffer_analysis(a_item_to_buffer, work_buffer_out_path, buffer_size_string).getOutput(0) # Add our output buffer to the temp output buffer container temp_output_list.append(a_work_buffer_out) # Step 19 print ("ended operation")
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question