Projeter (Gestion des données)
Récapitulatif
Projette des données spatiales d'un système de coordonnées vers un autre.
Utilisation
Si la classe d'entités en entrée ou le jeu de données a un système de coordonnées Inconnu ou non spécifié, vous pouvez spécifier le système de coordonnées du jeu de données en entrée avec le paramètre Système de coordonnées en entrée. Cela vous permet de spécifier le système de coordonnées des données sans devoir modifier les données en entrée (ce qui peut ne pas être possible si l'entrée est en lecture seule). Vous pouvez également utiliser l'outil Définir une projection pour attribuer définitivement un système de coordonnées au jeu de données.
-
Tous les types de classes d'entités (classe d'entités de géodatabase, classe d'entités de couverture, classe d'entités SDC et fichier de formes), jeux de données d'entité d'une géodatabase et couches d'entités dans les applications ArcGIS (ArcMap, ArcScene et ArcGlobe), sont des entrées valides.
-
Les couvertures, les couvertures VPF, les jeux de données raster et les catalogues d'images ne sont pas pris en charge comme entrées par cet outil. Pour projeter une couverture, utilisez l'outil Projeter contenu dans la boîte à outils Couverture. Utilisez l'outil Projeter un raster pour projeter des jeux de données raster.
Le paramètre Transformation géographique de l'outil est facultatif. Lorsqu'aucune transformation géographique ou de datum n'est requise, aucune liste déroulante n'apparaît sur le paramètre, qui reste vide. Lorsqu'une transformation est requise, une liste déroulante est générée basée sur les datum en entrée et en sortie et une transformation par défaut est choisie.
- Par exemple, une transformation géographique n'est pas obligatoire lorsque vous projetez GCS_North_American_1983 sur NAD_1983_UTM_Zone_12N, car les systèmes de coordonnées en entrée et en sortie possèdent tous deux un datum NAD_1983. Lorsque vous effectuez une projection de GCS_North_American_1983 sur WGS_1984_UTM_Zone_12N, une transformation géographique s'avère toutefois nécessaire, car le système de coordonnées en entrée utilise le datum NAD_1983 alors que le système de coordonnées en sortie utilise le datum WGS_1984.Astuce:
Les transformations sont bidirectionnelles. Par exemple, si vous convertissez des données de WGS 1984 en NAD 1927, vous pouvez choisir une transformation appelée NAD_1927_to_WGS_1984_3 et l'outil l'appliquera correctement.
- Pour obtenir une liste de transformations et leur domaine d'utilisation, consultez l'article de la base de connaissances suivant : 21327 (http://resources.arcgis.com/content/kbase? fa=articleShow&d=21327)
- Par exemple, une transformation géographique n'est pas obligatoire lorsque vous projetez GCS_North_American_1983 sur NAD_1983_UTM_Zone_12N, car les systèmes de coordonnées en entrée et en sortie possèdent tous deux un datum NAD_1983. Lorsque vous effectuez une projection de GCS_North_American_1983 sur WGS_1984_UTM_Zone_12N, une transformation géographique s'avère toutefois nécessaire, car le système de coordonnées en entrée utilise le datum NAD_1983 alors que le système de coordonnées en sortie utilise le datum WGS_1984.
-
in_memory n'est pas un espace de travail valide pour le jeu de données en sortie. La sortie doit être écrite dans une classe d'entités sur disque.
-
Lors de la projection des types de données complexes répertoriés ci-dessous, certaines opérations doivent être effectuées sur les données résultantes :
- Jeu de classes d'entités contenant un jeu de données réseau : le jeu de données réseau doit être reconstruit.
- Jeu de classes d'entités contenant une topologie : revalidez l'étendue entière de la topologie.
-
Si l'entrée est impliqué dans des classes de relations (comme avec l'annotation liée à une entité), la classe de relations est transférée vers la sortie. L'exception à cette règle concerne les tables autonomes.
-
Selon les coordonnées et l'horizon de l'entité en entrée (étendue valide) du système de coordonnées en sortie, le multi-points, la ligne et le polygone peuvent être découpés ou fractionnés en plusieurs parties dans le cadre de leur projection.
Les classes d'entités qui font partie d'un réseau géométrique ne peuvent pas être projetées indépendamment. Le jeu de données d'entité entier contenant le réseau doit être projeté.
De nombreux outils de géotraitement reconnaissent le paramètre d'environnement système de coordonnées en sortie, et dans bien des workflows, vous pouvez l'utiliser via l'outil Projeter. Par exemple, l'outil Agréger reconnaît le paramètre d'environnement du système de coordonnées en sortie, ce qui signifie que vous pouvez agréger plusieurs classes d'entités, chacune d'elles se trouvant dans un système de coordonnées différent, puis écrire la sortie agrégée dans une classe d'entités d'un système de coordonnées entièrement différent.
Cet outil ne prend pas en charge les ensembles de sélection et de définition sur des couches. Toutes les entités du jeu de données référencé par la couche sont projetées. Si vous souhaitez projeter des entités sélectionnées uniquement, vous pouvez utiliser l'outil Copier des entités. L'outil Copier des entités copie uniquement les entités sélectionnées et reconnaît l'environnement de géotraitement système de coordonnées en sortie.
Lorsque vous utilisez en entrée une classe d'entités d'un jeu de données d'entité, la sortie ne peut pas être écrite dans le même jeu de données d'entité. Cela est dû au fait que les classes d'entités d'un jeu de données d'entité doivent toutes présenter le même système de coordonnées. Dans ce cas, la classe d'entités en sortie est écrite dans la géodatabase contenant le jeu de données d'entité.
Syntaxe
Paramètre | Explication | Type de données |
in_dataset |
Classe d'entités, couche d'entités ou jeu de données d'entité à projeter. | Feature Layer; Feature Dataset |
out_dataset |
Jeu de données en sortie dans lequel les résultats seront enregistrés. | Geodataset |
out_coor_system | Les valeurs valides sont un objet de référence spatiale, un fichier avec une extension .prj ou une représentation de chaîne d'un système de coordonnées. | Coordinate System |
transform_method (Facultatif) | Cette méthode peut être utilisée pour convertir des données entre deux systèmes de coordonnées géographiques ou datums. Ce paramètre facultatif peut être nécessaire si les systèmes de coordonnées en entrée et en sortie présentent des datums différents. Astuce: Les transformations sont bidirectionnelles. Par exemple, si vous convertissez des données de WGS 1984 en NAD 1927, vous pouvez choisir une transformation appelée NAD_1927_to_WGS_1984_3 et l'outil l'appliquera correctement. | String |
in_coor_system (Facultatif) |
Système de coordonnées du jeu de données d'entité ou de la classe d'entités en entrée. Ce paramètre est activé lorsque l'entrée a un système de coordonnées inconnu ou non spécifié. Cela vous permet de spécifier le système de coordonnées des données sans devoir modifier les données en entrée (ce qui peut ne pas être possible si l'entrée est en lecture seule). | Coordinate System |
Exemple de code
Le script de fenêtre Python suivant illustre l'utilisation de l'outil Projeter en mode immédiat.
import arcpy
input_features = "C:/data/input/projections.gdb/wells"
output_features_class = "C:/data/output/wells_UTM11N.shp"
install_dir = arcpy.GetInstallInfo()['InstallDir']
out_coordinate_system = os.path.join(install_dir, r"Coordinate Systems/Projected Coordinate Systems/UTM/NAD 1983/NAD 1983 UTM Zone 11N.prj")
arcpy.Project_management(input_features, output_features_class, out_coordinate_system)
Le script autonome suivant illustre l'utilisation de l'outil Projeter dans un script autonome.
# Name: Project_Example2.py
# Description: Project all feature classes in a geodatabase
# Requirements: os module
# Import system modules
import arcpy
import os
# Set environment settings
arcpy.env.workspace = "C:/data/Redlands.gdb"
arcpy.env.overwriteOutput = True
# Set local variables
outWorkspace = "C:/data/Redlands_utm11.gdb"
try:
# Use ListFeatureClasses to generate a list of inputs
for infc in arcpy.ListFeatureClasses():
# Determine if the input has a defined coordinate system, can't project it if it does not
dsc = arcpy.Describe(infc)
if dsc.spatialReference.Name == "Unknown":
print ('skipped this fc due to undefined coordinate system: ' + infc)
else:
# Determine the new output feature class path and name
outfc = os.path.join(outWorkspace, infc)
# Set output coordinate system
outCS = arcpy.SpatialReference('NAD 1983 UTM Zone 11N')
# run project tool
arcpy.Project_management(infc, outfc, outCS)
# check messages
print(arcpy.GetMessages())
except arcpy.ExecuteError:
print(arcpy.GetMessages(2))
except Exception as ex:
print(ex.args[0])