Convertir la notation de coordonnées (Gestion des données)
Récapitulatif
Convertit des notations de coordonnées contenues dans un ou deux champs d'un format de notation à un autre.
Utilisation
La table en entrée peut représenter un fichier texte ou toute table prise en charge par ArcGIS. Les entités ponctuelles sont également valides.
Le système de coordonnées des valeurs stockées dans le Champ X (longitude) et le Champ Y (latitude) est spécifié avec 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.
La sortie est une classe d'entités ponctuelles dans laquelle chaque emplacement en entrée présentant une notation valide est représenté par un point. Les enregistrements qui présentent des notations non valides ne comportent aucune géométrie et les valeurs des enregistrements dans les champs en sortie ajoutés sont vides.
- Aucune géométrie de point n'est créée pour les enregistrements en entrée avec des notations non valides. Exécutez Vérifier les géométries pour rechercher des enregistrements qui ne sont pas convertis.
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 requises 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 sont contenues dans un seul champ.
Consultez la description du paramètre Format de coordonnées en entrée pour plus d'informations.
Tous les champs non-système provenant de la table en entrée, y compris les champs de format en entrée, sont transférés vers la classe d'entités points en sortie.
Les noms des champs en sortie sont appariés au nom de la notation de coordonnées en sortie. Par exemple, si 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.
L'outil Ajouter les coordonnées XY permet d'ajouter les deux champs POINT_X et POINT_Y à la classe d'entités points 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
Paramètre | Explication | Type de données |
in_table |
Table qui contient les champs des notations de coordonnées à convertir. | Table View |
out_featureclass |
Classe d'entités ponctuelles 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 les formats 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. 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 longitude. Pour les formats 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) |
Héritage : Ce paramètre est ignoré, car tous les champs non-système sont transférés vers la table en sortie. | Field |
output_coordinate_system (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_coordinate_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. | Spatial Reference |
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 l'outil ConvertCoordinateNotation avec les 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])
Echantillon 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"""
try:
# DDLon field contains longitudes in a string field
arcpy.CalculateField_management(in_table,"DDLonDbl","convertToDouble(!DDLon!)","PYTHON_9.3",expr)
except:
print arcpy.GetMessages()
# 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"""
try:
# DDLat field contains latitudes in a string field
arcpy.CalculateField_management(in_table,"DDLatDbl","convertToDouble(!DDLat!)","PYTHON_9.3",expr)
except:
print arcpy.GetMessages()