import arcpy
import sys
import os
# Script to create Shapefiles of WP Infrastructure within a specified boundary
# Define variables
UserName = "n041871"
Shapefile = r"S:\SupportServices\Meet\Arc Gis\Planning Refs\Canning\20150107_CTLE.shp"
Suffix = "CTLE"
#Build Path name for workspace
SDEPre = "C:\Users"
SDEPost = "\AppData\Roaming\ESRI\Desktop10.0\ArcCatalog\DynamicCredentials@GISR.sde"
SDE= os.path.join(SDEPre,UserName+SDEPost)
print "Using "+SDE+" as Geodatabase"
arcpy.AddMessage("Using " + str(SDE)+ " as Geodatabase")
arcpy.env.workspace = SDE
arcpy.env.overwriteOutput = True
#Define Layers to Clip
#1. Transmission feature classes
T330OH = os.path.join ("GISTRAN.Transmission", "GISTRAN.Trans_330kV_OH_Carrier")
T330UG = os.path.join ("GISTRAN.Transmission", "GISTRAN.Trans_330kV_UG_Cable")
T220OV = os.path.join ("GISTRAN.Transmission", "GISTRAN.Trans_220kV_OH_Carrier")
T132OH = os.path.join ("GISTRAN.Transmission", "GISTRAN.Trans_132kV_OH_Carrier")
T132UG = os.path.join ("GISTRAN.Transmission" , "GISTRAN.Trans_132kV_UG_Cable")
T66OV = os.path.join ("GISTRAN.Transmission", "GISTRAN.Trans_66kV_OH_Carrier")
T66UG = os.path.join ("GISTRAN.Transmission", "GISTRAN.Trans_66kV_UG_Cable")
T33OH = os.path.join ("GISTRAN.Transmission", "GISTRAN.Trans_33kV_OH_Carrier")
T33UG = os.path.join ("GISTRAN.Transmission", "GISTRAN.Trans_33kV_UG_Cable")
TransStruc = os.path.join ("GISTRAN.Transmission", "GISTRAN.Trans_Structure")
Substation = os.path.join ("GISTRAN.Transmission", "GISTRAN.Substation")
#Group Transmission Values:
Transmission = (T330OH, T330UG, T220OV, T132OH, T132UG, T66OV, T66UG, T33OH, T33UG, TransStruc, Substation)
#2. Distrubution feature classes
POLES = os.path.join("ARCFM.Structure", "ARCFM.Pole")
HVOH = os.path.join("ARCFM.Distribution_HV", "ARCFM.Conductor_HV")
HVUG = os.path.join("ARCFM.Distribution_HV", "ARCFM.Cable_HV")
LVOH = os.path.join("ARCFM.Distribution_LV", "ARCFM.Conductor_LV")
LVUG = os.path.join("ARCFM.Distribution_LV", "ARCFM.Cable_LV")
#Group Distribution Values
Distribution = (POLES, HVOH, HVUG, LVOH, LVUG)
#Future Infrastructure Shapefiles
ISubstation = r"S:\SupportServices\SPIDA Projects\Transmission\Sub-Regional Structure Planning\WP Future Infrastructure\Version 1\WP_New_Sub_stations_20130807.shp"
ILine = r"S:\SupportServices\SPIDA Projects\Transmission\Sub-Regional Structure Planning\WP Future Infrastructure\Version 1\WP_New_Power_Lines_20130807.shp"
#Group New Infrastructure
NewI = (ISubstation, ILine)
#Select Required LOCALITY
arcpy.MakeFeatureLayer_management(Shapefile, "lyr")
#Set Ouput Directory
outputPath = "S:\\SupportServices\\SPIDA Projects\\Infrastructure Shapefiles\\Custom\\"+ str(Suffix)
# Clip Transmission Feature Classes with LOCALITY Layer
for StrucT in Transmission:
basefileName = arcpy.Describe(StrucT).baseName.replace('.','_') + Suffix
fileFormat= '.shp'
finalDest = os.path.join(outputPath,basefileName+fileFormat)
arcpy.Clip_analysis(StrucT,Shapefile,finalDest)
print StrucT + "Shapefile Created"
arcpy.AddMessage(str(StrucT)+" Shapefile Created")
# Clip Distriution Feature Classes with LOCALITY Layer
for StrucD in Distribution:
basefileName = arcpy.Describe(StrucD).baseName.replace('.','_') + Suffix
fileFormat= '.shp'
finalDest = os.path.join(outputPath,basefileName+fileFormat)
arcpy.Clip_analysis(StrucD,Shapefile,finalDest)
print StrucD + " Shapefile created"
arcpy.AddMessage(str(StrucD)+" Shapefile Created")
#Clip New Infrastructure
for Struc in NewI:
if not os.path.exists(outputPath):os.makedirs(outputPath)
basefileName = arcpy.Describe(Struc).baseName.replace('.','_') + Suffix
fileFormat= '.shp'
finalDest = os.path.join(outputPath,basefileName+fileFormat)
arcpy.Clip_analysis(Struc,Shapefile,finalDest)
print Struc + " Shapefile created"
arcpy.AddMessage(str(Struc)+" Shapefile Created")
#Find empty shapefiles and delete them
arcpy.env.workspace = outputPath
shapefiles = arcpy.ListFeatureClasses()
for shapefile in shapefiles:
layerName = arcpy.Describe(shapefile).baseName
arcpy.AddMessage(layerName)
arcpy.MakeFeatureLayer_management (shapefile, layerName)
arcpy.AddMessage(arcpy.GetCount_management(layerName).getOutput(0))
if int(arcpy.GetCount_management(layerName).getOutput(0)) == 0:
arcpy.Delete_management(shapefile)
print shapefile + " deleted"
arcpy.AddMessage(str(shapefile)+" Deleted")
print "All empty shapefiles have been deleted"
arcpy.AddMessage("All empty shapefiles have been deleted")
print "process complete"I am getting the following error:
Traceback (most recent call last):
File "S:\SupportServices\Meet\Arc Gis\Scripts\WP_Infrastructure_Shapefile_Cut.py", line 71, in <module>
arcpy.Clip_analysis(StrucT,"lyr",finalDest)
File "c:\Program Files (x86)\ArcGIS\Desktop10.0\ArcPy\arcpy\analysis.py", line 55, in Clip
raise e
ExecuteError: ERROR 000210: Cannot create output S:\SupportServices\SPIDA Projects\Infrastructure Shapefiles\Custom\CTLE\GISTRAN_Trans_330kV_OH_CarrierCTLE.shp
Failed to execute (Clip).