Bien que la question d'origine soit pour 10.0, j'ai mis à jour le code ci-dessous pour 10.3.1.
Copiez-collez ceci dans la fenêtre python dans arcmap pour créer la fonction 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)
Ensuite, vous pouvez utiliser la fenêtre python pour créer votre classe d'entités en appelant
RasterCenter("<reference to raster">)
Ainsi, par exemple, si vous avez un raster nommé DEM, vous appelez RasterCenter ("dem") dans la fenêtre python, et il ajoutera une couche nommée "dem_center" avec un seul point au centre du raster. La couche est stockée en mémoire, donc si vous voulez la conserver, exportez-la.
Pour aller plus loin, vous pouvez enregistrer le script dans un fichier .py et placer le fichier .py dans le chemin de recherche de python. par exemple, enregistrez-le sous RasterCenter.py et placez-le dans PYTHONPATH (normalement l'emplacement est C: \ Python26 \ ArcGIS10.0 \ Lib)
Ensuite, vous pourriez faire:
import RasterCenter
RasterCenter.RasterCenter("<reference to raster">)