2017-04-23 7 views
-1

테이블의 각기 다른 값은 서로 다른 조건을 조합 한 결과입니다. 예를 들어 아래 이미지에서 조건은 다음과 같습니다. if CoverType = fallow, Treatment = Crop Residue Cover, Condition/ImperviousArea = 좋음, SoilType = C이면 값은 83입니다. 사용자에게 각 열의 값을 선택하도록하는 도구가 필요합니다 (예 : CoverType 선택; SoilType, ...) 다음 출력으로 관련 번호를 반환합니다. 어떻게해야합니까? 앞에서는 ArcGIS 10.0로 제한하지 않는 enter image description here파이썬에서 몇 가지 조건을 사용하여 테이블에서 특정 값 얻기

import arcpy 
path= r'H\Python\FinalProject\RunOff.gdb' 
arcpy.env.workspace= path 
arcpy.env.overwriteOutput = True 

table=r'H\Python\FinalProject\RunOff.gdb\CN.csv' 
cursor= arcpy.SearchCursor(table) 
+0

ArcPy가 [gis.se] Stack Exchange에서 더 잘 조사하고 있습니다. – PolyGeo

답변

1

, 나는 da cursors을 사용하는 것이 좋습니다 : 지금까지 난 그냥 처음으로 아래 코드의 라인을 가지고있다. 구문이 좀 더 쉽습니다.

그러나 올바른 길을 가고 있습니다. 커서를 사용하면 테이블을 순환하여 세 범주가 사용자의 입력과 일치하는 행을 찾을 수 있습니다.

cover_type = #userinput 
treatment = #userinput 
condition = #userinput 

field_list = ["CoverType", "Treatment", "Condition", "B"] 
with arcpy.da.SearchCursor(table, field_list) as cursor: 
    for row in cursor: 
     if row[0] == cover_type and row[1] == treatment and row[2] == condition: 
      print row[3] 
     else: 
      print "no matching combination"