Utilisation de la classe de références spatiales

Les jeux de données géographiques, tels que les classes d'entités, les couvertures et les rasters, comportent une référence spatiale qui définit le système de coordonnées d'un jeu de données, ainsi que son domaine x,y, son domaine m et son domaine z. Chaque partie de la référence spatiale possède plusieurs propriétés, en particulier le système de coordonnées qui définit les options de projection cartographique utilisées pour déterminer les coordonnées horizontales. Toutes ces informations sont disponibles dans la description du jeu de données et l'accès à sa propriété de référence spatiale, représentant en fait un autre objet contenant plusieurs propriétés.


import arcpy

# Describe a feature class
#
fc = "D:/St_Johns/data.gdb/roads"
desc = arcpy.Describe(fc)

# Get the spatial reference 
#
sr = desc.spatialReference

# Check if the feature class is in projected space
#
if sr.type == "Projected":
    arcpy.Copy_management(fc,"D:/St_Johns/data.gdb/roads_UTM")

Création d'une référence spatiale

Il est souvent peu pratique de conserver toutes les informations d'une référence spatiale dans un script Python. En utilisant un fichier de projection, un code d'usine ou un nom de référence spatiale comme argument pour la classe SpatialReference, vous pouvez renseigner rapidement les propriétés d'une référence spatiale, puis utiliser l'objet comme entrée d'un outil de géotraitement. Dans l'exemple suivant, la référence spatiale est construite à l'aide d'un code d'usine (également connu sous le nom de code d'autorité) fourni en tant qu'argument en entrée.

Conseil :

Pour plus d'informations sur les noms des systèmes de coordonnées et les codes d'usine, consultez les fichiers geographic_coordinate_systems.pdf et projected_coordinate_systems.pdf dans le dossier ArcGIS\Documentation.

import arcpy

inputWorkspace = "c:/temp"
outputName =  "rivers.shp"

# Get the input workspace, the output name for the new feature class
#  and path to an input projection file
#
inputWorkspace = arcpy.GetParameterAsText(0)
outputName     = arcpy.GetParameterAsText(1)
factoryCode    = arcpy.GetParameterAsText(2)

# Use a code as input to the SpatialReference class
#
sr = arcpy.SpatialReference(factoryCode)

# Use the SpatialReference object to create a new feature class with a 
#  specific coordinate system
#
arcpy.CreateFeatureclass_management(inputWorkspace, outputName, 
                                    "POLYLINE", spatial_reference=sr)
Remarque :

Pour obtenir une liste complète de propriétés et de méthodes, reportez-vous à la rubrique Classe SpatialReference.

Remarque :

Les références spatiales sont parfois appelées chaînes du Moteur de projection. Le Moteur de projection (PE) est une bibliothèque de code utilisé par l'ensemble des applications ArcGIS pour la définition de projections cartographiques et la transformation d'une projection en une autre.