방금 ArcPIS를 사용하여 ArcGIS로 지리 데이터를 분석하기 시작했습니다. 분석은 서로 다른 단계를 거치며 순차적으로 실행됩니다. 이 코드는 지금까지 놀라 울 정도로 잘 작동여러 분석 단계로 파이썬 GIS 프로젝트를 구성하는 방법은 무엇입니까?
import arcpy
# create a masking variable
mask1 = "mask.shp"
# create a list of raster files
files_to_process = ["raster1.tif", "raster2.tif", "raster3.tif"]
# step 1 (e.g. clipping of each raster to study extent)
for index, item in enumerate(files_to_process):
raster_i = "temp/ras_tem_" + str(index) + ".tif"
arcpy.Clip_management(item, '#', raster_i, mask1)
# step 2 (e.g. change projection of raster files)
...
# step 3 (e.g. calculate some statistics for each raster)
...
etc.
: 여기
은 일부 의사 코드입니다. 그러나 래스터 파일은 크고 일부 단계는 실행하는 데 꽤 오래 걸립니다 (5-60 분). 따라서 입력 래스터 데이터가 변경된 경우에만 해당 단계를 실행하고 싶습니다. GIS 워크 플로우 관점에서 볼 때, 이것은 각 단계가 다음 단계에서 입력으로 사용되는 하드 디스크에 물리적 결과를 저장하기 때문에 문제가되지 않습니다.일시적으로 사용 중지하려는 경우 1 단계에서이 단계의 모든 행 앞에 #
을 붙이면됩니다. 그러나 실제 분석에서 각 단계에는 많은 코드 행이있을 수 있으므로 각 단계의 코드를 별도의 파일 (예 : "step1.py", "step2.py")로 아웃소싱하는 것을 선호합니다. .), 각 파일을 실행하십시오.
execfile(step1.py)
으로 실험했지만 오류 NameError: global name 'files_to_process' is not defined
가 표시되었습니다. 주 스크립트에 정의 된 변수는 execfile
이라는 스크립트에 자동으로 전달되지 않습니다.
나는 또한 this을 시도했지만 위와 같은 오류가 발생했습니다.
필자는 파이썬 관련 새 표현식의 오용으로 알 수 있듯이 파이썬 초보자입니다. 그런 GIS 프로젝트를 구성하는 방법에 대한 조언은 매우 감사 할 것입니다.
정확히 내가하고 싶었던 것이고, 그것은 아주 잘 작동합니다. 감사! –