안녕하세요, 는 ArcGIS SelectLayerByLocation_managerment 오류 000368 : 유효하지 않은 입력 데이터
내가 arcpy.SelectLayerByLocation_managerment 작동려고 벽에 내 머리를 두드리는 봤는데 해결책을 찾을 수 없습니다 - 나는 ArcMap의/카탈로그 10.2을 사용하고 있습니다.여러 폴리곤 레이어 파일로 분할하려고하는 폴리 라인 데이터 세트가 있습니다. 아이디어는 스크립트가 레이어 파일을 순환하고, X 미터 내에 있고 별도의 폴더로 내보내는 폴리 라인 파트를 선택한다는 것입니다.
arcpy.AddMessage("\n Checking Script for Errors...")
#Script to split one layer (OSMM/OSVML) into parts, parts defined by another layer.
import arcpy
import os
#References users Map document - get parameter input from prompt
mxd = arcpy.mapping.MapDocument(arcpy.GetParameterAsText(0))
df = arcpy.mapping.ListDataFrames(mxd, "Frame")[0]
arcpy.env.workspace = arcpy.GetParameterAsText(1)
#For loop to iterate through all layers in dataframe
for lyr in arcpy.mapping.ListLayers(mxd,"",df):
#Get layer name
layerName = lyr.name
#Skip the OS File
if layerName == "OSMM_Line_Detail":
arcpy.AddMessage("\n Skipping " + layerName)
else:
#Inform users of layer being processed
arcpy.AddMessage("\n Processing: " + layerName)
#Select the wanted layer that is within a distance of the current layer
arcpy.AddMessage("\n Select by location")
arcpy.SelectLayerByLocation_management('OSMM_Line_Detail',"WITHIN_A_DISTANCE",layerName,arcpy.GetParameterAsText(3),"NEW_SELECTION")
#Create directory for file (http://desk.stinkpot.org:8080/tricks/index.php/2006/07/create-a-directory-in-python/)
dirname = ("C:\Users\USERNAME\Documents\Test Data\Basemapping and Boundary Data\Split line by area\Line " + layerName)
if not os.path.isdir(dirname + "/"):
arcpy.AddMessage("\n Directory not found, creating directoy for: " + layerName)
os.mkdir(dirname + "/")
#Exports the selection of layer to new directory
arcpy.FeatureClassToShapefile_conversion(arcpy.GetParameterAsText(2), ""C:\Users\USERNAME\Documents\Test Data\Basemapping and Boundary Data\Split line by area\Line " + layerName)
arcpy.AddMessage("\n Completed split for " + layerName)
arcpy.AddMessage("\n Script complete")
#delete variables created
del lyr
del df
del mxd
#script ends
내가 현재의 에러 코드를 수신하고 있습니다 : 여기 내 코드 나는 지오 데이터베이스에 파일을 수출 한
Traceback (most recent call last):
File "C:\Users\Richard.Lauberts\Documents\LIS Data\Toolbox and Scripts\Python Script for Splitting MasterMap by Site.py", line 26, in <module>
arcpy.SelectLayerByLocation_management('OSMM_Line_Detail',"WITHIN_A_DISTANCE",layerName,'110 Meters',"NEW_SELECTION")
File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\management.py", line 6618, in SelectLayerByLocation
raise e
ExecuteError: Failed to execute. Parameters are not valid.
ERROR 000368: Invalid input data.
Failed to execute (SelectLayerByLocation).
내가 arcpy 사용하려고 한 레이어를 다시 공급. MakeFeatureLayer_management를 다른 게시물에서 제안한대로 GetParameterAsTest를 사용하는 대신 파일 이름을 하드 코드하려고 시도했지만 아무 것도 도움이되지 않습니다!
코드에서 거리 값을 입력 할 때 "110", "110 Meters", "110 Meters"를 시도하고 getparameters로 남겨 둡니다 (아크 도구 상자 인터페이스에서 선형 값으로 설정). 사용자가 길이와 단위를 선택).
의견을 보내 주시면 대단히 감사하겠습니다.
두번째 줄부터 마지막 줄까지 오타가 몇개 남았습니다. "r :"앞면에 "C : \ Users \ etc"가 필요할 수 있습니다. 파이썬이 \ 문자를 문자 그대로 읽도록하기. –