CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

18
CE 697V, Project 4 1 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim

Transcript of CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

Page 1: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 1

Project 4: Geoprocessing Script

November 10, 2006

Kwangbae Kim

Page 2: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 2

Descriptions of this project

ArcGIS geoprocessing to select suitable locations by tool development with geoprocessing script

The object of this project: to make a tool with geoprocessing script to find the best site selection for his family at the city of West Lafayette of a new Purdue student

Page 3: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 3

Procedure

1. Create a personal geodatabase to save or load all the involved data

2. Load all vector and raster data in geodatabase

3. Project all vector data and raster data (DEM in Lafayette)

4. Perform spatial analysis tools by selection criteria to find the best location

Page 4: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 4

Contents of Geoprocessing Scripts

Script Project 4a: Create a personal geodatabase to save or load all the involved data

Script Project 4b: Load all vector and raster data in geodatabase and project all vector data and raster data (DEM in Lafayette)

Script Project 4c: Perform spatial analysis tools by selection criteria to find the best location

Page 5: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 5

Selection criteria

Input all feature data (all streets, restaurants, CE building, schoolmap, and houses shape files) into geodatabase

Project all feature data on UTM zone 16N, NAD83 Project the elevation_lafayette raster data on UTM zone

16N, NAD83 Select US Highway 52 from all streets Buffer US Highway 52 within 1 mile from selected US

Highway 52 Buffer restaurants within 2 miles from restaurants Buffer 6 driving distance miles to the Civil Engineering

building Buffer 3 driving distance miles to school Select houses with 3 bedrooms and a price less than

$150,000 from geocoding house addresses

Page 6: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 6

Selection criteria (features)

Clip all_streets_buffer and restaurants_buffer → clip1_out

Intersect civil_engineering_buffer and school_buffer → intersect_out

Clip clip1_out and intersect_out → clip2_out

Intersect clip2_out and houses_select → final_out

Page 7: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 7

Final Map

Page 8: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 8

Geoprocessing Scrpit

# ---------------------------------------------------------------------------# Created on: Kwangbae Kim# CE697V, Project 4: Geoprocessing Script# ---------------------------------------------------------------------------

# Import system modulesimport sys, os, win32com.client, string

# Create the Geoprocessor objectgp = win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1")

# Load required toolboxes...gp.AddToolbox("E:/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")gp.AddToolbox("E:/ArcGIS/ArcToolbox/Toolboxes/Analysis Tools.tbx")gp.AddToolbox("E:/ArcGIS/ArcToolbox/Toolboxes/Conversion Tools.tbx")

# Create workspace and geodatabasegp.workspace = gp.GetParameterAsText(0)

Script project4a

Page 9: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 9

Geoprocessing Scrpit

p4_mdb = gp.GetParameterAsText(1)geodb=gp.CreatePersonalGDB_management("H:/project4", p4_mdb)

# Load the features, raster data, and table# Load features: all streets, restaurants, Civil Engineering, school, and housesfeatures = gp.GetParameterAsText(2)gp.FeatureClassToGeodatabase_Conversion(features,geodb)

rasters = gp.GetParameterAsText(3)gp.RasterToGeodatabase(rasters,geodb)

Page 10: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 10

Geoprocessing Scrpit

# ---------------------------------------------------------------------------# Created on: Kwangbae Kim# CE697V, Project 4_b: Geoprocessing Script# ---------------------------------------------------------------------------

# Import system modulesimport sys, os, win32com.client, string

# Create the Geoprocessor objectgp = win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1")

# Load required toolboxes...gp.AddToolbox("E:/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")gp.AddToolbox("E:/ArcGIS/ArcToolbox/Toolboxes/Analysis Tools.tbx")gp.AddToolbox("E:/ArcGIS/ArcToolbox/Toolboxes/Conversion Tools.tbx")

# Create workspace and geodatabasegp.workspace = gp.GetParameterAsText(0)

Script project4b

Page 11: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 11

Geoprocessing Scrpit (cont’d)

# Load the features, raster data, and table# Load features: all streets, restaurants, Civil Engineering, school, and housesall_streets = gp.GetParameterAsText(1)restaurants = gp.GetParameterAsText(2)civil_engineering = gp.GetParameterAsText(3)school = gp.GetParameterAsText(4)houses = gp.GetParameterAsText(5)

# Load raster data: elevation dataelevation_west_lafayette = gp.GetParameterAsText(6)elevation_east_lafayette = gp.GetParameterAsText(7)

# Read the parameter value for projectionprojection = gp.GetParameterAsText(8)

Page 12: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 12

Geoprocessing Scrpit (cont’d)

# Project the features class on UTM Zone 16Ngp.BatchProject_management(all_streets, gp.workspace, projection)gp.BatchProject_management(restaurants, gp.workspace, projection)gp.BatchProject_management(civil_engineering, gp.workspace, projection)gp.BatchProject_management(school, gp.workspace, projection)gp.BatchProject_management(houses, gp.workspace, projection)

# Project raster data on UTM Zone 16Ngp.ProjectRaster_management(elevation_west_lafayette, "elevation_west_lafayette_project", projection, "BILINEAR", "", "","" )gp.ProjectRaster_management(elevation_east_lafayette, "elevation_east_lafayette_project", projection, "BILINEAR", "", "","" )

Project all features and rasters on UTM Zone 16N

Page 13: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 13

Geoprocessing Scrpit (cont’d)

# create new geodatabasegdb=gp.GetParameterAsText(9)geodb=gp.CreatePersonalGDB("H:/project4", gdb)

# Input all features and raster data into geodatabasegp.FeatureClassToGeodatabase_Conversion(all_streets+"_1", geodb)gp.FeatureClassToGeodatabase_Conversion(restaurants+"_1", geodb)gp.FeatureClassToGeodatabase_Conversion(civil_engineering+"_1", geodb)gp.FeatureClassToGeodatabase_Conversion(school+"_1", geodb)gp.FeatureClassToGeodatabase_Conversion(houses+"_1", geodb)gp.RasterToGeodatabase_Conversion(elevation_west_lafayette+"_project", geodb)gp.RasterToGeodatabase_Conversion(elevation_east_lafayette+"_project", geodb)

Page 14: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 14

Geoprocessing Scrpit (cont’d)

# ---------------------------------------------------------------------------# Created on: Kwangbae Kim# CE697V, Project 4_c: Geoprocessing Script# ---------------------------------------------------------------------------

# Import system modulesimport sys, os, win32com.client, string

# Create the Geoprocessor objectgp = win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1")

# Load required toolboxes...gp.AddToolbox("E:/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")gp.AddToolbox("E:/ArcGIS/ArcToolbox/Toolboxes/Analysis Tools.tbx")gp.AddToolbox("E:/ArcGIS/ArcToolbox/Toolboxes/Conversion Tools.tbx")

Script project4c

Page 15: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 15

Geoprocessing Scrpit (cont’d)

# Create workspace and geodatabasegp.workspace = gp.GetParameterAsText(0)

# Load the projected features: all streets, restaurants, Civil Engineering, school, and housesall_streets = gp.GetParameterAsText(1)restaurants = gp.GetParameterAsText(2)civil_engineering = gp.GetParameterAsText(3)school = gp.GetParameterAsText(4)houses = gp.GetParameterAsText(2)

# Read the parameter valuesdistance_US52 = gp.GetParameterAsText(3)distance_restaurants = gp.GetParameterAsText(7)distance_civil_engineering = gp.GetParameterAsText(8)distance_school = gp.GetParameterAsText(9)

Page 16: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 16

Geoprocessing Scrpit (cont’d)

# Select US Highway 52 from all streets and distance buffer (1 mile)s1 = all_streets+'_select'gp.Select_analysis(all_streets, s1, "( [NAME] = 'SAGAMORE') OR( [NAME] = 'US HIGHWAY 52') OR( [NAME] = 'US HWY 52' )")

# Buffer 2 miles distance to restaurantsb2 = restaurants+'_buffer'gp.Buffer_analysis(restaurants, b2, distance_restaurants, "FULL", "ROUND", "ALL", "")

# Buffer 6 miles driving distance to Civil Engineering buildingb3 = civil_engineering+'_buffer'gp.Buffer_analysis(civil_engineering, b3, distance_civil_engineering, "FULL", "ROUND", "ALL", "")

Page 17: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 17

Geoprocessing Scrpit (cont’d)

# Buffer 3 miles driving distance to all schoolsb4 = school+'_buffer'gp.Buffer_analysis(school, b4, distance_school, "FULL", "ROUND", "ALL", "")

# Select houses with 3 bedrooms and a price less than $150000s2 = houses+'_select'gp.Select_analysis(houses, s2, "( [BED] = 3 ) AND ( [PRICE] <=150000 )"

# Clip US52_buffer and restaurants_buffer -> clip1_out featuregp.Clip_analysis(US52_buffer, restaurants_buffer, clip1_out)

# Intersect civil_engineering_buffer and school_buffer -> intersect_outgp.Intersect_analysis(civil_engineering_buffer, school_buffer, intersect_out)

# Clip clip1_out and intersect_out -> clip2_outgp.Clip_analysis(clip1_out, intersect_out, clip2_out)

Page 18: CE 697V, Project 41 Project 4: Geoprocessing Script November 10, 2006 Kwangbae Kim.

CE 697V, Project 4 18

Geoprocessing Scrpit

# Intersect clip2_out and houses_select -> final_out featuregp.Intersect_analysis(clip2_out, houses_select, final_out) # create new geodatabasegdb=gp.GetParameterAsText(3)geodb=gp.CreatePersonalGDB("H:/project4", gdb)

# Input all features and raster data into geodatabasegp.FeatureClassToGeodatabase_Conversion(s1, geodb)gp.FeatureClassToGeodatabase_Conversion(b2, geodb)gp.FeatureClassToGeodatabase_Conversion(b3, geodb)gp.FeatureClassToGeodatabase_Conversion(b4, geodb)gp.FeatureClassToGeodatabase_Conversion(s2, geodb)gp.FeatureClassToGeodatabase_Conversion(clip1_out, geodb)gp.FeatureClassToGeodatabase_Conversion(intersect_out, geodb)gp.FeatureClassToGeodatabase_Conversion(clip2_out, geodb)gp.FeatureClassToGeodatabase_Conversion(final_out, geodb)