Meskipun pertanyaan aslinya adalah untuk 10.0, saya telah memperbarui kode di bawah ini untuk 10.3.1.
Salin tempel ini ke jendela python di arcmap untuk membuat fungsi 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)
Kemudian, Anda dapat menggunakan jendela python untuk membuat kelas fitur Anda dengan memanggil
RasterCenter("<reference to raster">)
Jadi, misalnya, jika Anda memiliki raster bernama DEM, Anda memanggil RasterCenter ("dem") di jendela python, dan itu akan menambahkan layer bernama "dem_center" dengan satu titik di tengah raster. Lapisan disimpan dalam memori, jadi jika Anda ingin menyimpannya, eksporlah.
Untuk melangkah lebih jauh, Anda bisa menyimpan skrip ke file .py dan menempatkan file .py di jalur pencarian untuk python. mis. simpan sebagai RasterCenter.py dan letakkan di PYTHONPATH (biasanya tempat untuk ini adalah C: \ Python26 \ ArcGIS10.0 \ Lib)
Maka Anda bisa melakukan:
import RasterCenter
RasterCenter.RasterCenter("<reference to raster">)