元の質問は10.0に関するものでしたが、以下のコードを10.3.1用に更新しました。
これをコピーして、arcmapのpythonウィンドウに貼り付け、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)
次に、Pythonウィンドウを使用して、次の呼び出しによってフィーチャクラスを作成できます。
RasterCenter("<reference to raster">)
したがって、たとえば、DEMという名前のラスターがある場合、PythonウィンドウでRasterCenter( "dem")を呼び出すと、ラスターの中心に1つのポイントを持つ "dem_center"という名前のレイヤーが追加されます。レイヤーはメモリに保存されるため、保持したい場合はエクスポートします。
さらに一歩進むには、スクリプトを.pyファイルに保存し、.pyファイルをpythonの検索パスに配置します。たとえば、RasterCenter.pyとして保存し、PYTHONPATHに配置します(通常、この場所はC:\ Python26 \ ArcGIS10.0 \ Libです)。
それからあなたは行うことができます:
import RasterCenter
RasterCenter.RasterCenter("<reference to raster">)