Résumé
Convertit des notations de coordonnées contenues dans un ou deux champs d'un format de notation à un autre.
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ètre | Explication | Type 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, 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, 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.
| Boolean |
Exemple de code
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")
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])
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 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)
Environnements
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?