Advertisement
Advertisement
| 07.07.2008 at 11:37AM PDT, ID: 23544321 |
|
[x]
Attachment Details
|
||
|
[x]
The Solution Rating System
|
||
With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.
Your Input Matters If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support. Thank you! |
||
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: |
#BatchClipFCs.py
#
#Author
# Dan Patterson
# Dept of Geography and Environmental Studies
# Carleton University, Ottawa, Canada
# Dan_Patterson@carleton.ca
#
#Purpose
# Batch clips feature classes (eg shapefiles) in a project
# and writes them to a folder.
# Many batch clip examples exist, this is compiled for demonstration
# purpose for a class
#
#Properties (right-click on the tool and specify the following)
#General
# Name BatchClipFCs
# Label Batch Clip Feature Classes
# Desc Batch clip feature classes (eg shapefiles) and saves
# them to a folder.
#
#Source BatchClipFCs.py
#
#Parameter list
# Parameter Properties
# Display Name Data type Type Direction MultiValue
# argv[1] Feature(s) to clip Feature Layer Required Input Yes
# argv[2] Polygon clip layer Feature Layer Required Input No
# argv[3] Append to output String Optional Input No
# filename
# argv[4] Output folder Folder Required Input No
#--------------------------------------------------------------------
#Import the standard modules
# Get a list of feature classes (shapefiles)
# Get the clip feature class
# Get the optional text to append to the filename output filename
# Get the output folder
# Usage: BatchClipFCs <Input_Features> <ClipWith> <optional_text> <Output_Workspace>
# ---------------------------------------------------------------------------
#
# Import system modules, Create the Geoprocessor object and
# Load required toolboxes...
#
import sys, string, os, win32com.client
gp = win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1")
gp.AddToolbox("C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Analysis Tools.tbx")
#gp.AddToolbox("C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")
#
# Script arguments...
FCsToClip = gp.GetParameterAsText(0) #a list of features
fcs = string.split(FCsToClip, ";") #split into a list
#
clipWith = sys.argv[2] #clip layer
desc = gp.Describe(clipWith)
clipWithType = desc.ShapeType
#
addToName = sys.argv[3] #optional text to append to output name
if(addToName == "#"):
addToName = ""
#
outputFolder = sys.argv[4] #a folder
#
gp.Addmessage("\n" + "Batch Clip Feature layers" + "\n" )
#
if (clipWithType == "Polygon"):
for fc in fcs:
try:
fc=fc.replace("'","") #check if a layers name has been changed
desc = gp.Describe(fc)
fcDataType = desc.DataType
gp.AddMessage("Data type = " + fcDataType)
if(fcDataType == "FeatureClass"): # Feature class on disk
theName = str(os.path.split(fc)[1])
outFile = outputFolder + "\\" + theName + addToName + ".shp"
else: # Feature layer
FullName = desc.CatalogPath
theName = (os.path.split(FullName)[1]).replace(".shp","")
theName = str(fc).replace(" ","_")
outFile = outputFolder + "\\" + theName + addToName + ".shp"
gp.AddMessage("Output file from layer " + outFile)
#
gp.AddMessage("Clipping " + str(fcDataType) + ": " + fc + " Saving to: " + outFile + "\n")
try:
gp.Clip_analysis(fc, clipWith, outFile, "")
except:
gp.AddMessage("Could not clip " + fc + " with " + clipWith + " to " + outFile)
except:
gp.AddMessage("cannot describe" + fc)
else:
gp.AddMessage (clipWith + " is not a polygon layer, clipping terminated" )
#
|