Résumé
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 préciser le système de coordonnées du jeu de données en entrée avec le paramètre Input Coordinate System (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.
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. Utilisez l'outil Projeter un raster pour projeter des jeux de données raster.
Pour projeter une couverture, utilisez l’outil Projeter qui se trouve dans la boîte à outils Couverture.
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 en fonction des datums 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 le 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.
- Pour une liste des transformations et leur zone d’utilisation, consultez l’article de base de connaissances suivant : Procédure : Sélectionner la transformation (datum) géographique appropriée lors de la projection entre datums.
L’espace de travail in_memory n’est pas un emplacement pris en charge pour écrire le jeu de données en sortie.
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 : la topologie doit être revalidée
Si l’entrée est impliquée 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 participent aux 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, les entités multi-points, linéaires et surfaciques peuvent être découpées ou fractionnées en plusieurs parties lorsqu’elles sont projetées. Les entités qui se trouvent entièrement en dehors de l’horizon sont écrites dans la sortie avec une forme Null. Elles peuvent être supprimées à l'aide de l'outil Réparer les géométries.
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 classes d’entités 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 processus, vous pouvez l’utiliser à la place l’outil Projeter. Par exemple, l’outil Agréger reconnaît le paramètre d’environnement 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 ignore 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. Pour projeter des entités sélectionnées uniquement, vous pouvez utiliser l’outil Copier des entités afin de créer un jeu de données temporaire, qui ne contient que les entités sélectionnées, puis utiliser ce jeu de données intermédiaire en entrée dans l’outil Projeter.
Lorsque vous utilisez en entrée une classe d’entités d’un jeu de classes d’entités, la sortie ne peut pas être écrite dans le même jeu de classes d’entités. Cela est dû au fait que les classes d’entités d’un jeu de classes d’entités 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é.
Lorsque le paramètre Preserve Shape (Conserver la forme) est activé, les entités en sortie qui représentent plus fidèlement leur emplacement projeté réel sont créées. Le paramètre Conserver la forme est particulièrement utile si une ligne ou une limite de polygone est numérisée sous la forme d'une longue ligne droite avec peu de sommets. Si le paramètre Conserver la forme n'est pas sélectionné, les sommets existants de la ligne ou de la limite de polygone en entrée sont projetés. Il peut en résulter une entité qui n'est pas positionnée avec précision dans la nouvelle projection. Lorsque le paramètre Conserver la forme est sélectionné (preserve_shape="PRESERVE_SHAPE" dans Python), des sommets supplémentaires sont ajoutés à l'entité avant la projection. Ces sommets supplémentaires conservent la forme projetée de l'entité. Le paramètre Ecart de décalage maximal détermine le nombre de sommets supplémentaires qui sont ajoutés. Sa valeur est la distance maximale du décalage de l'entité projetée par rapport à son emplacement projeté exact, tel qu'il est calculé par l'outil. Lorsque la valeur est faible, un plus grand nombre de sommets sont ajoutés. Choisissez une valeur qui répond à vos besoins. Par exemple, si votre sortie projetée est destinée à un affichage cartographique général à petite échelle, un écart important peut être acceptable. Si votre sortie projetée doit être utilisée pour l’analyse de petites surfaces à grande échelle, un écart moins important risque d’être nécessaire.
Pour procéder à une transformation verticale, activez le paramètre Vertical facultatif dans la boîte de dialogue. Par défaut, le paramètre Vertical est désactivé et activé uniquement lorsque les systèmes de coordonnées en entrée et en sortie comportent le système de coordonnées verticales et que les coordonnées de la classe d’entités en entrée comportent des valeurs z. Une configuration supplémentaire des données (données des systèmes de coordonnées) doit également être effectuée sur le système.
Lorsque vous sélectionnez le système de coordonnées en sortie, vous pouvez choisir le système de coordonnées géographiques ou projetées et un système de coordonnées verticales. Si les systèmes de coordonnées verticales en entrée et en sortie sont différents, des transformations verticales et géographiques (datum) facultatives sont disponibles. Si une transformation doit être appliquée dans la direction opposée à sa définition, choisissez l'entrée dont le nom est précédé du symbole tilde (~).
Syntaxe
arcpy.management.Project(in_dataset, out_dataset, out_coor_system, {transform_method}, {in_coor_system}, {preserve_shape}, {max_deviation}, {vertical})
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. | Feature Class; Feature Dataset |
out_coor_system | Les valeurs valides sont un objet SpatialReference, un fichier avec une extension .prj ou une représentation de chaîne d’un système de coordonnées. | Coordinate System |
transform_method [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. Pour une liste des transformations valides, utilisez la méthode arcpy.ListTransformations. La transformation la plus appropriée est généralement la première dans la liste renvoyée. La liste est triée par quantité de superposition des données par rapport aux zones d’utilisation des transformations. Si au moins deux transformations présentent la même quantité de superposition avec les données, les valeurs de précision de la transformation sont utilisées comme deuxième paramètre de tri. | String |
in_coor_system (Facultatif) | Système de coordonnées de la classe d’entités ou du jeu de données en entrée. Lorsque l’entrée a un système de coordonnées inconnu ou non spécifié, vous pouvez 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 |
preserve_shape (Facultatif) | Indique si des sommets seront ajoutés aux lignes ou polygones en sortie afin que leur forme projetée soit plus précise.
| Boolean |
max_deviation (Facultatif) | Distance de déviation d’une ligne ou d’un polygone projeté par rapport à son emplacement projeté exact lorsque le paramètre preserve_shape est défini sur PRESERVE_SHAPE. La valeur par défaut correspond à 100 fois la tolérance x,y de la référence spatiale du jeu de données en sortie. | Linear Unit |
vertical (Facultatif) | Indique si une transformation verticale est appliquée. Ce paramètre n’est activé que lorsque les systèmes de coordonnées en entrée et en sortie comportent un système de coordonnées verticales et que les coordonnées de la classe d’entités en entrée comportent des valeurs z. De la même façon, de nombreuses transformations nécessitent l’installation de fichiers de données supplémentaires via le paquetage d’installation des données de systèmes de coordonnées ArcGIS. Cette option n'est pas compatible avec le paramètre preserve_shape.
| Boolean |
Exemple de code
Exemple 1 d'utilisation de l'outil Projeter (fenêtre Python)
Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction Project en mode immédiat.
import arcpy
# input data is in NAD 1983 UTM Zone 11N coordinate system
input_features = r"C:/data/Redlands.shp"
# output data
output_feature_class = r"C:/data/Redlands_Project.shp"
# create a spatial reference object for the output coordinate system
out_coordinate_system = arcpy.SpatialReference('NAD 1983 StatePlane California V FIPS 0405 (US Feet)')
# run the tool
arcpy.Project_management(input_features, output_feature_class, out_coordinate_system)
Exemple 2 d'utilisation de l'outil Projeter (script autonome)
Le script autonome suivant montre comment utiliser Project 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])
Environnements
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui
Rubriques connexes
- Vue d'ensemble du jeu d'outils Projections et transformations
- À propos des projections cartographiques
- Projections cartographiques prises en charge
- Que sont les systèmes de coordonnées géographiques ?
- Que sont les systèmes de coordonnées projetées ?
- Essentiel sur les projections pour les professionnels des SIG
- Référence spatiale et géotraitement