Projet (Gestion des données)

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.

  • 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.
      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 une liste des transformations et leur zone d’utilisation, consultez l’article de base de connaissances 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 nulle. 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 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.

    En savoir plus sur les environnements de géotraitement

  • 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 Preserve Shape (Conserver la forme) est particulièrement utile lorsqu’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. 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. De même, une configuration de données supplémentaires (données de système de coordonnées) doit être installé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 (~).

  • Les ateliers parcellaires sont projetés en projetant le jeu de classes d’entités contenant l’atelier parcellaire. Chaque classe d’entités contrôlée par l’atelier parcellaire ne peut pas être projetée séparément. Les unités linéaires, les unités surfaciques et les coordonnées de points sont mises à jour pour correspondre aux unités et coordonnées de la référence spatiale cible.

Syntaxe

arcpy.management.Project(in_dataset, out_dataset, out_coor_system, {transform_method}, {in_coor_system}, {preserve_shape}, {max_deviation}, {vertical})
ParamètreExplicationType de données
in_dataset

Classe d’entités, couche d’entités, jeu de classes d’entités, couche de scènes ou paquetage de couches de scènes à projeter.

Feature Layer; Feature Dataset; Scene Layer; Building Scene Layer; File
out_dataset

Jeu de données en sortie dans lequel les résultats seront enregistrés.

Feature Layer; Feature Dataset; Scene Layer; Building Scene Layer; File
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.

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. Si aucune transformation n'est fournie, une transformation par défaut est utilisée. Cette transformation par défaut est appropriée aux applications cartographiques générales, mais risque de ne pas convenir aux applications qui nécessitent une précision au niveau des emplacements.

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.

  • NO_PRESERVE_SHAPEAucun sommet supplémentaire n’est ajouté aux lignes ou polygones en sortie. Il s’agit de l’option par défaut.
  • PRESERVE_SHAPEDes sommets supplémentaires sont ajoutés aux lignes ou polygones en sortie, selon les besoins, 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)

Spécifie si une transformation verticale va être 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.

Ce paramètre n’est pas compatible avec le paramètre preserve_shape.

  • NO_VERTICAL Aucune transformation verticale n’est appliquée. Les valeurs z des coordonnées géométriques sont ignorées et ne sont pas modifiées. Il s’agit de l’option par défaut.
  • VERTICALLa transformation spécifiée dans le paramètre transform_method est appliquée. L’outil Projeter transforme les valeurs x, y et z des coordonnées de la géométrie.
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 ci-dessous illustre l’utilisation de la fonction 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])

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes