원래 질문은 10.0에 대한 것이지만 10.3.1에 대해 아래 코드를 업데이트했습니다.
이것을 아크 맵의 파이썬 창에 붙여 넣어 RasterCenter 함수를 만듭니다 :
import arcpy, os
def RasterCenter(raster):
#raster: string reference to raster
raster = arcpy.Raster(raster)
fcname = "{}_center".format(os.path.basename(str(raster)))
x = raster.extent.XMin + (raster.extent.XMax - raster.extent.XMin)/2
y = raster.extent.YMin + (raster.extent.YMax - raster.extent.YMin)/2
featureclass = arcpy.CreateFeatureclass_management("in_memory", fcname, "POINT",spatial_reference = raster.spatialReference)
with arcpy.da.InsertCursor(featureclass, ['SHAPE@XY']) as cursor:
cursor.insertRow(((x, y),))
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd)[0]
arcpy.MakeFeatureLayer_management(featureclass, fcname)
layer = arcpy.mapping.Layer(fcname)
arcpy.mapping.AddLayer(df, layer)
그런 다음 파이썬 창을 사용하여 호출하여 기능 클래스를 작성할 수 있습니다.
RasterCenter("<reference to raster">)
예를 들어 DEM이라는 래스터가있는 경우 파이썬 창에서 RasterCenter ( "dem")를 호출하면 래스터 중앙에 단일 점이있는 "dem_center"라는 레이어가 추가됩니다. 레이어는 메모리에 저장되므로 유지하려면 내보내십시오.
한 단계 더 나아가려면 스크립트를 .py 파일에 저장하고 .py 파일을 python의 검색 경로에 배치하십시오. 예를 들어 RasterCenter.py로 저장하고 PYTHONPATH에 배치하십시오 (일반적으로 C : \ Python26 \ ArcGIS10.0 \ Lib).
그럼 당신은 할 수 있습니다 :
import RasterCenter
RasterCenter.RasterCenter("<reference to raster">)