Convertir la notation de coordonnées (Gestion des données)

Résumé

Convertit des notations de coordonnées contenues dans un ou deux champs d'un format de notation à un autre.

En savoir plus sur les formats de notation pris en charge

Utilisation

  • Le système de coordonnées des valeurs stockées dans le Champ X (longitude) et le Champ Y (latitude) est spécifié via le paramètre Système de coordonnées en entrée. Par défaut, il s’agit de GCS_WGS_1984. Si la table en entrée est une classe d’entités, le système de coordonnées des entités en entrée est utilisé par défaut.

  • Les formats suivants sont pris en charge :

    • Degrés décimaux (DD)
    • Degrés Minutes Décimales (DDM)
    • Degrés Minutes Secondes (DMS)
    • Global Area Reference System (GARS)
    • GEOREF (World Geographic Reference System)
    • Universal Transverse Mercator (UTM)
    • United States National Grid (USNG)
    • Military Grid Reference System (MGRS)

  • Pour DD_1, DDM_1 et DMS_1, les valeurs de latitude et de longitude nécessaires pour représenter un emplacement sont concaténées en une chaîne unique et stockées dans un champ unique.

    Pour DD_2, DDM_2 et DMS_2, les valeurs de latitude et de longitude sont représentées par deux champs distincts.

    Pour DD_NUMERIC, les valeurs de latitude et de longitude sont stockées dans deux champs distincts de type Double.

    GARS, GEOREF, UTM_ZONES, UTM_BANDS, USNG et MGRS sont des formats de coordonnées à chaîne unique, ce qui signifie que les coordonnées figurent dans un seul champ.

    Consultez la description du paramètre Format de coordonnées en entrée pour plus d'informations.

  • Tous les champs de la table en entrée, y compris le champ OID et les champs de format en entrée, sont transférés vers la classe d’entités ponctuelles en sortie. Les valeurs du champ OID permettent de différencier les notations valides converties si l’option Exclude records with invalid notation (Exclure les enregistrements avec une notation non valide) est activée.

    Les noms des champs en sortie sont appariés au nom de la notation des coordonnées en sortie. Si, par exemple, le format en sortie est MGRS, le nouveau nom du champ en sortie est MGRS.

    Si un champ portant le même nom que le champ en entrée existe déjà dans la sortie, le nom du champ copié est ajouté avec un numéro unique.

  • Désactivez le paramètre Exclure les enregistrements avec une notation non valide pour conserver les informations concernant tous les enregistrements en entrée. L'outil Vérifier les géométries permet d'identifier les enregistrements comportant des notations non valides.

    Si des enregistrements comportent des notations non valides, les messages envoyés par l'outil indiqueront le chemin du fichier journal contenant les ID de tous les enregistrements non valides.

  • L’outil Ajouter les coordonnées XY permet d’ajouter les deux champs POINT_X et POINT_Y à la classe d’entités ponctuelles en sortie. Ces champs contiennent les coordonnées d'un point dans l'unité du système de coordonnées de la classe d'entités.

Syntaxe

arcpy.management.ConvertCoordinateNotation(in_table, out_featureclass, x_field, y_field, input_coordinate_format, output_coordinate_format, {id_field}, {spatial_reference}, {in_coor_system}, {exclude_invalid_records})
ParamètreExplicationType de données
in_table

La table peut être un fichier texte ou une table. Les entités ponctuelles sont également valides.

Table View
out_featureclass

Classe d'entités points en sortie. La table attributaire contiendra tous les champs de la table en entrée, ainsi que les champs contenant les valeurs converties dans le format en sortie.

Feature Class
x_field

Champ de la table en entrée qui contient la valeur de longitude. Pour DD_2, DD_NUMERIC, DDM_2, il s'agit du champ de longitude.

Pour DD_1, DDM_1 et DMS_1, ce champ contient les valeurs de latitude et de longitude dans une chaîne unique.

Pour GARS, GEOREF, UTM_ZONES, UTM_BANDS, USNG et MGRS, ce champ contient un système alphanumérique de notation dans un champ de texte unique.

Le paramètre y_field est ignoré lorsqu'un des formats à chaîne unique est choisi.

Field
y_field

Champ de la table en entrée qui contient la valeur de latitude. Pour DD_2, DD_NUMERIC, DDM_2 et DMS_2, il s'agit du champ de longitude.

Pour DD_1, DDM_1 et DMS_1, ce champ contient les valeurs de latitude et de longitude dans une chaîne unique.

Pour GARS, GEOREF, UTM_ZONES, UTM_BANDS, USNG et MGRS, ce champ contient un système alphanumérique de notation dans un champ de texte unique.

Ce paramètre est ignoré lorsqu'un des formats à chaîne unique est choisi.

Field
input_coordinate_format

Format de coordonnées des champs en entrée. La valeur par défaut est DD_2.

  • DD_1Les valeurs de longitude et de latitude figurent dans un champ unique. Deux valeurs sont séparées par un espace, une virgule ou une barre oblique.
  • DD_2Les valeurs de longitude et de latitude figurent dans deux champs distincts.
  • DDM_1Les valeurs de longitude et de latitude figurent dans un champ unique. Deux valeurs sont séparées par un espace, une virgule ou une barre oblique.
  • DDM_2 Les valeurs de longitude et de latitude figurent dans deux champs distincts.
  • DMS_1Les valeurs de longitude et de latitude figurent dans un champ unique. Deux valeurs sont séparées par un espace, une virgule ou une barre oblique.
  • DMS_2Les valeurs de longitude et de latitude figurent dans deux champs distincts.
  • GARSGlobal Area Reference System. Selon la latitude et la longitude, ce format divise et sous-divise le monde en cellules.
  • GEOREFWorld Geographic Reference System. Système basé sur une grille qui divise le monde en quadrangles de 15 degrés, puis procède ensuite à une subdivision en quadrangles plus petits.
  • UTM_ZONESLa lettre N ou S après le numéro de zone UTM désigne uniquement l'hémisphère Nord ou Sud.
  • UTM_BANDSLa lettre après le numéro de zone UTM désigne une des 20 bandes de latitude. N ou S ne désigne pas d'hémisphère.
  • USNGUnited States National Grid. Pratiquement identique à MGRS, mais qui utilise le datum nord-américain de 1983 (NAD83).
  • MGRSMilitary Grid Reference System. Suit les coordonnées UTM et divise le monde en bandes de longitude de 6 degrés et 20 bandes de latitude, mais MGRS subdivise encore davantage les zones de quadrillage en grilles plus petites de 100 000 mètres. Ces grilles de 100 000 mètres sont alors divisées en grilles de 10 000 mètres, 1 000 mètres, 100 mètres, 10 mètres et 1 mètre.
  • SHAPEUniquement disponible lorsque vous sélectionnez une couche d'entités ponctuelles en entrée. Les coordonnées de chaque point permettent de définir le format en sortie.

DD, DDM, DMS et UTM sont également des mots-clés valides. Vous pouvez les entrer dans une boîte de dialogue ou indiquer la valeur dans un script. Toutefois, les mots-clés comprenant des traits de soulignement et un qualificateur donnent plus d'informations sur les valeurs de champs.

String
output_coordinate_format

Format de coordonnées vers lequel les notations en entrée sont converties. La valeur par défaut est DD_2.

  • DD_1Les valeurs de longitude et de latitude figurent dans un champ unique. Deux valeurs sont séparées par un espace, une virgule ou une barre oblique.
  • DD_2Les valeurs de longitude et de latitude figurent dans deux champs distincts.
  • DD_NUMERICLes valeurs de longitude et de latitude sont entrées dans deux champs distincts de type Double. Les valeurs des champs Ouest et Sud sont indiquées par un signe moins, alors que dans DD_2, les valeurs sont textuelles et les lettres N, S, E et O indiquent la direction.
  • DDM_1Les valeurs de longitude et de latitude figurent dans un champ unique. Deux valeurs sont séparées par un espace, une virgule ou une barre oblique.
  • DDM_2 Les valeurs de longitude et de latitude figurent dans deux champs distincts.
  • DMS_1Les valeurs de longitude et de latitude figurent dans un champ unique. Deux valeurs sont séparées par un espace, une virgule ou une barre oblique.
  • DMS_2Les valeurs de longitude et de latitude figurent dans deux champs distincts.
  • GARSGlobal Area Reference System. Selon la latitude et la longitude, ce format divise et sous-divise le monde en cellules.
  • GEOREFWorld Geographic Reference System. Système basé sur une grille qui divise le monde en quadrangles de 15 degrés, puis procède ensuite à une subdivision en quadrangles plus petits.
  • UTM_ZONESLa lettre N ou S après le numéro de zone UTM désigne uniquement l'hémisphère Nord ou Sud.
  • UTM_BANDSLa lettre après le numéro de zone UTM désigne une des 20 bandes de latitude. N ou S ne désigne pas d'hémisphère.
  • USNGUnited States National Grid. Pratiquement identique à MGRS, mais qui utilise le datum nord-américain de 1983 (NAD83).
  • MGRSMilitary Grid Reference System. Suit les coordonnées UTM et divise le monde en bandes de longitude de 6 degrés et 20 bandes de latitude, mais MGRS subdivise encore davantage les zones de quadrillage en grilles plus petites de 100 000 mètres. Ces grilles de 100 000 mètres sont alors divisées en grilles de 10 000 mètres, 1 000 mètres, 100 mètres, 10 mètres et 1 mètre.

DD, DDM, DMS et UTM sont également des mots-clés valides. Vous pouvez les entrer dans une boîte de dialogue ou indiquer la valeur dans un script. Toutefois, les mots-clés comprenant des traits de soulignement et un qualificateur donnent plus d'informations sur les valeurs de champs.

String
id_field
(Facultatif)

Ce paramètre est ignoré, car tous les champs sont transférés vers la table en sortie.

Field
spatial_reference
(Facultatif)

Référence spatiale de la classe d'entité en sortie. La valeur par défaut est GCS_WGS_1984.

L'outil projette la sortie sur la référence spatiale spécifiée. Si les systèmes de coordonnées en entrée et en sortie se trouvent dans un datum différent, une transformation par défaut est utilisée en fonction des systèmes de coordonnées de l'entrée et de la sortie, puis de l'étendue des données.

Spatial Reference
in_coor_system
(Facultatif)

Référence spatiale des données en entrée. Si la référence spatiale en entrée ne peut pas être obtenue à partir de la table en entrée, GCS_WGS_1984 est utilisé par défaut.

Coordinate System
exclude_invalid_records
(Facultatif)

Lorsque l'option exclude_invalid_records a la valeur True, la sortie ne convertit en points que les notations valides. Sinon, les enregistrements non valides sont inclus en tant que géométrie nulle.

  • EXCLUDE_INVALIDSeuls les enregistrements valides sont convertis en points dans la sortie. Il s’agit de l’option par défaut.
  • INCLUDE_INVALIDLes enregistrements valides sont convertis en points dans la sortie et ceux qui ne le sont pas sont inclus en tant que géométrie nulle.
Boolean

Exemple de code

Exemple 1 d'utilisation de l'outil ConvertCoordinateNotation (script autonome)

Utilisation de l'outil ConvertCoordinateNotation avec un champ de format en entrée.

# import arcpy module
import arcpy

# set locals variables
in_tab = r"c:\data\notation.gdb\loc_mgrs"
out_pts = r"c:\data\notation.gdb\loc_final"

# call Convert Coordinate Notation with MGRS as input field.
# leaving out spatial reference parameter will default to WGS 1984 
arcpy.ConvertCoordinateNotation_management(in_tab, out_pts, "m10d", "#", "MGRS", "DD_1")
Exemple 2 d'utilisation de l'outil ConvertCoordinateNotation (script autonome)

Utilisation de l'outil ConvertCoordinateNotation avec deux champs de format en entrée.

# imports
import arcpy

arcpy.env.workspace = r"c:\data\mtf.gdb"

# set parameter values
input_table = 'rit_up_DD'
output_points = 'ritLOC'
x_field = 'LON'
y_field = 'LAT'
input_format = 'DD_2'
output_format = 'GARS'
id_field = 'CITY_NAME'
spatial_ref = arcpy.SpatialReference('WGS 1984')

try:
    arcpy.ConvertCoordinateNotation_management(input_table, output_points, x_field, y_field, 
                                               input_format, output_format, id_field, spatial_ref)
    print(arcpy.GetMessages(0))

except arcpy.ExecuteError:
    print(arcpy.GetMessages(2))
    
except Exception as ex:
    print(ex.args[0])
Exemple 3 d'utilisation de l'outil ConvertCoordinateNotation (script autonome)

Utilisation de ConvertCoordinateNotation avec des exemples de formats UTM_ZONES et UTM_BANDS.

# imports
import arcpy

arcpy.env.workspace = r"c:\data\ccn.gdb"

# export_utm58 table contains coordinates in UTM_BANDS format 
# where N and S indicate latitude bands, 
# for example, 58S4144921393176 - here 58S is latitude band
input_table = 'export_utm58'

# the coordinate values in output point table will be in UTM_ZONES format
# for example, 58N4144921393176 - note that it is now 58N because
# the point is in UTM 58 North zone
output_points = 'utm_zone18'

spatial_ref = arcpy.SpatialReference('WGS 1984')

try:
    arcpy.ConvertCoordinateNotation_management(input_table, output_points, "LOCS", "", 
                                               "UTM_BANDS", "UTM_ZONES", "", spatial_ref)
    print(arcpy.GetMessages(0))
    
except Exception as ex:
    print(ex.args[0])
Exemple 4 d'utilisation de l'outil ConvertCoordinateNotation (script autonome)

Exemple d'utilisation de l'outil ConvertCoordinateNotation qui convertit en valeurs à virgule flottante les valeurs textuelles en sortie exprimées en degrés décimaux. Un signe négatif est utilisé à la place des lettres S et O.

# imports
import arcpy

# output from Convert Coordinate Notation tool
# for DD_2 (and also for DD_1) format, the output values are in string format
# for example, for DD_1, the output values may be '43.63872N 116.24135W'
in_table = r"c:\data\ccn.gdb\ccn_dd1"

# add a field of type DOUBLE to store the numeric longitude value
arcpy.AddField_management(in_table, "DDLonDbl", "DOUBLE")

# now call CalculateField tool to convert the values, 'W' is negative
expr = """def convertToDouble(fldval):
    val = float(fldval[:-1])
    if fldval[-1:] == 'W':
        return val * -1.0
    else:
        return val"""

# DDLon field contains longitudes in a string field
arcpy.CalculateField_management(in_table,"DDLonDbl","convertToDouble(!DDLon!)","PYTHON_9.3",expr)
    
# add another field to store the numeric longitude value
arcpy.AddField_management(in_table, "DDLatDbl", "DOUBLE")

# call CalculateField again to convert the values, 'S' is negative
expr = """def convertToDouble(fldval):
    val = float(fldval[:-1])
    if fldval[-1:] == 'S':
        return val * -1.0
    else:
        return val"""

# DDLat field contains latitudes in a string field
arcpy.CalculateField_management(in_table,"DDLatDbl","convertToDouble(!DDLat!)","PYTHON_9.3",expr)

Informations de licence

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

Rubriques connexes