Koordinatenschreibweise konvertieren (Data Management)

Zusammenfassung

Konvertiert Koordinatenschreibweisen in ein oder zwei Feldern in ein anderes Schreibweisenformat.

Weitere Informationen zu unterstützten Schreibweiseformaten

Verwendung

  • Das Koordinatensystem der unter X-Feld (Längengrad) und Y-Feld (Breitengrad) gespeicherten Werte wird im Parameter Eingabe-Koordinatensystem angegeben. Die Standardeinstellung lautet "GCS_WGS_1984", sofern es sich bei der Eingabetabelle nicht um eine Feature-Class handelt. In diesem Fall ist die Standardeinstellung das Koordinatensystem der Eingabe-Features.

  • Folgende Formate werden unterstützt:

    • Dezimalgrad (Decimal Degrees, DD)
    • Grad Dezimalminuten (Degrees Decimal Minutes, DDM)
    • Grad, Minuten, Sekunden (DMS)
    • Global Area Reference System (GARS)
    • GEOREF (World Geographic Reference System)
    • Universelle transversale Mercator-Projektion (UTM)
    • United States National Grid (USNG)
    • Military Grid Reference System (MGRS)

  • Für DD_1, DDM_1 und DMS_1 werden die zur Darstellung einer Position erforderlichen Breiten- und Längengradwerte in einer Zeichenfolge verkettet und in einem einzelnen Feld gespeichert.

    Für DD_2, DDM_2 und DMS_2 werden die Breitengrad- und Längengradwerte in zwei getrennten Feldern dargestellt.

    Für DD_NUMERIC werden die Breitengrad- und Längengradwerte in zwei getrennten Feldern des Typs "Double" gespeichert.

    GARS, GEOREF, UTM_ZONES, UTM_BANDS, USNG und MGRS sind Koordinatenformate aus einzelnen Zeichenfolgen. Das bedeutet, dass nur ein Feld die Koordinate enthält.

    Weitere Informationen finden Sie in der Erläuterung des Parameters Eingabe-Koordinatenformat weiter unten.

  • Alle Felder aus der Eingabetabelle, einschließlich des OID-Feldes und der Eingabeformatfelder, werden an die Ausgabe-Point-Feature-Class übertragen. Mit den OID-Feldwerten können gültige Notationen unterschieden werden, die konvertiert werden, wenn Datensätze mit ungültiger Notation ausschließen aktiviert ist.

    Die Ausgabefeldnamen stimmen mit dem Namen der Ausgabe-Koordinatennotation überein. Wenn z. B. das Ausgabeformat MGRS ist, lautet der neue Ausgabefeldname MGRS.

    Wenn ein Feld mit dem gleichen Namen wie das Eingabefeld in der Ausgabe bereits vorhanden ist, wird an den Namen des kopierten Feldes eine eindeutige Zahl angefügt.

  • Deaktivieren Sie den Parameter Datensätze mit ungültiger Notation ausschließen, um Informationen über alle Eingabedatensätze beizubehalten. Mit dem Werkzeug Geometrie überprüfen können Datensätze mit ungültiger Notation ermittelt werden.

    Wenn Datensätze mit ungültiger Notation vorhanden sind, enthalten die Werkzeugmeldungen den Pfad zur Protokolldatei, die die IDs aller ungültigen Datensätze enthält.

  • Das Werkzeug XY-Koordinaten hinzufügen kann verwendet werden, um der Ausgabe-Point-Feature-Class die beiden Felder POINT_X und POINT_Y hinzuzufügen. Diese Felder enthalten die Koordinaten eines Punktes in der Einheit des Koordinatensystems der Feature-Class.

Syntax

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})
ParameterErklärungDatentyp
in_table

Die Tabelle kann eine Textdatei oder eine Tabelle sein. Punkt-Features sind ebenfalls gültig.

Table View
out_featureclass

Die Ausgabe-Point-Feature-Class. Die Attributtabelle enthält alle Felder der Eingabetabelle und die Felder mit den konvertierten Feldern im Ausgabeformat.

Feature Class
x_field

Ein Feld aus der Eingabetabelle mit dem Längengradwert. Für DD_2, DD_NUMERIC, DDM_2 ist dies das Längengradfeld.

Für DD_1, DDM_1 und DMS_1 enthält dieses Feld sowohl Breiten- als auch Längengradwerte in einer Zeichenfolge.

Für GARS, GEOREF, UTM_ZONES, UTM_BANDS, USNG und MGRS enthält dieses Feld ein alphanumerisches Notationssystem in einem einzelnen Textfeld.

Der Parameter y_field wird ignoriert, wenn eines dieser Einzelzeichenfolgenformate ausgewählt wird.

Field
y_field

Ein Feld aus der Eingabetabelle mit dem Breitengradwert. Für DD_2, DD_NUMERIC, DDM_2 und DMS_2 ist dies das Längengradfeld.

Für DD_1, DDM_1 und DMS_1 enthält dieses Feld sowohl Breiten- als auch Längengradwerte in einer Zeichenfolge.

Für GARS, GEOREF, UTM_ZONES, UTM_BANDS, USNG und MGRS enthält dieses Feld ein alphanumerisches Notationssystem in einem einzelnen Textfeld.

Dieser Parameter "Y-Feld (Breitengrad)" wird ignoriert, wenn eines dieser Einzelzeichenfolgenformate ausgewählt wird.

Field
input_coordinate_format

Koordinatenformat der Eingabefelder. Die Standardvorgabe ist DD_2.

  • DD_1Sowohl Längengrad- als auch Breitengradwerte befinden sich in einem einzigen Feld. Zwei Werte werden durch ein Leerzeichen, ein Komma oder einen Schrägstrich getrennt.
  • DD_2Längengrad- und Breitengradwerte befinden sich in zwei getrennten Feldern.
  • DDM_1Sowohl Längengrad- als auch Breitengradwerte befinden sich in einem einzigen Feld. Zwei Werte werden durch ein Leerzeichen, ein Komma oder einen Schrägstrich getrennt.
  • DDM_2 Längengrad- und Breitengradwerte befinden sich in zwei getrennten Feldern.
  • DMS_1Sowohl Längengrad- als auch Breitengradwerte befinden sich in einem einzigen Feld. Zwei Werte werden durch ein Leerzeichen, ein Komma oder einen Schrägstrich getrennt.
  • DMS_2Längengrad- und Breitengradwerte befinden sich in zwei getrennten Feldern.
  • GARSGlobal Area Reference System. Basiert auf Längen- und Breitengraden und unterteilt die Welt in Zellen.
  • GEOREFWorld Geographic Reference System. Ein gitterbasiertes System, das die Welt in 15-Grad-Quadrate aufteilt und dann in kleinere Quadrate unterteilt.
  • UTM_ZONESDer Buchstabe N bzw. S nach der UTM-Zonennummer legt nur die Nord- oder Südhalbkugel fest.
  • UTM_BANDSDer Buchstabe nach der UTM-Zonennummer legt eines der 20 Breitengradbänder fest. N oder S bezeichnet keine Halbkugel.
  • USNGUnited States National Grid. Fast identisch mit MGRS, verwendet jedoch North American Datum 1983 (NAD83) als Bezugspunkt.
  • MGRSMilitary Grid Reference System. Folgt den UTM-Koordinaten und unterteilt die Welt in Längengradbänder von 6 Grad und in 20 Breitengradbänder. MGRS unterteilt die Gitterzonen aber noch weiter in kleinere 100.000-Meter-Gitter. Diese 100.000-Meter-Gitter werden dann in 10.000-Meter-, 1.000-Meter-, 100-Meter, 10-Meter und 1-Meter-Gitter unterteilt.
  • SHAPENur verfügbar, wenn ein Punkt-Feature-Layer als Eingabe ausgewählt wird. Die Koordinaten der einzelnen Punkte werden zum Definieren des Ausgabeformats verwendet.

DD, DDM, DMS und UTM sind ebenfalls gültige Schlüsselwörter. Sie können verwendet werden, indem der Wert einfach im Dialogfeld eingegeben oder im Skript übergeben wird. Schlüsselwörter mit Unterstrich und einem Qualifizierer liefern weitere Informationen zu den Feldwerten.

String
output_coordinate_format

Das Koordinatenformat, in das die Eingabeschreibweisen konvertiert werden. Die Standardvorgabe ist DD_2.

  • DD_1Sowohl Längengrad- als auch Breitengradwerte befinden sich in einem einzigen Feld. Zwei Werte werden durch ein Leerzeichen, ein Komma oder einen Schrägstrich getrennt.
  • DD_2Längengrad- und Breitengradwerte befinden sich in zwei getrennten Feldern.
  • DD_NUMERICLängengrad- und Breitengradwerte befinden sich in zwei getrennten Feldern des Typs "Double". Die Werte im Westen und Süden werden durch ein Minuszeichen gekennzeichnet. In DD_2 liegen die Werte dagegen als Text vor, und die Richtung wird durch N, S, O und W angegeben.
  • DDM_1Sowohl Längengrad- als auch Breitengradwerte befinden sich in einem einzigen Feld. Zwei Werte werden durch ein Leerzeichen, ein Komma oder einen Schrägstrich getrennt.
  • DDM_2 Längengrad- und Breitengradwerte befinden sich in zwei getrennten Feldern.
  • DMS_1Sowohl Längengrad- als auch Breitengradwerte befinden sich in einem einzigen Feld. Zwei Werte werden durch ein Leerzeichen, ein Komma oder einen Schrägstrich getrennt.
  • DMS_2Längengrad- und Breitengradwerte befinden sich in zwei getrennten Feldern.
  • GARSGlobal Area Reference System. Basiert auf Längen- und Breitengraden und unterteilt die Welt in Zellen.
  • GEOREFWorld Geographic Reference System. Ein gitterbasiertes System, das die Welt in 15-Grad-Quadrate aufteilt und dann in kleinere Quadrate unterteilt.
  • UTM_ZONESDer Buchstabe N bzw. S nach der UTM-Zonennummer legt nur die Nord- oder Südhalbkugel fest.
  • UTM_BANDSDer Buchstabe nach der UTM-Zonennummer legt eines der 20 Breitengradbänder fest. N oder S bezeichnet keine Halbkugel.
  • USNGUnited States National Grid. Fast identisch mit MGRS, verwendet jedoch North American Datum 1983 (NAD83) als Bezugspunkt.
  • MGRSMilitary Grid Reference System. Folgt den UTM-Koordinaten und unterteilt die Welt in Längengradbänder von 6 Grad und in 20 Breitengradbänder. MGRS unterteilt die Gitterzonen aber noch weiter in kleinere 100.000-Meter-Gitter. Diese 100.000-Meter-Gitter werden dann in 10.000-Meter-, 1.000-Meter-, 100-Meter, 10-Meter und 1-Meter-Gitter unterteilt.

DD, DDM, DMS und UTM sind ebenfalls gültige Schlüsselwörter. Sie können verwendet werden, indem der Wert einfach im Dialogfeld eingegeben oder im Skript übergeben wird. Schlüsselwörter mit Unterstrich und einem Qualifizierer liefern weitere Informationen zu den Feldwerten.

String
id_field
(optional)

Dieser Parameter wird ignoriert, da alle Felder in die Ausgabetabelle übertragen werden.

Field
spatial_reference
(optional)

Raumbezug der Ausgabe-Feature-Class. Die Standardeinstellung ist "GCS_WGS_1984".

Das Werkzeug projiziert die Ausgabe in den angegebenen Raumbezug. Wenn das Eingabe- und Ausgabekoordinatensystem sich an verschiedenen Bezugspunkten befinden, wird eine Standardtransformation auf Grundlage der Koordinatensysteme der Eingabe und der Ausgabe sowie der Datenausdehnung verwendet.

Spatial Reference
in_coor_system
(optional)

Raumbezug der Eingabe-Daten. Wenn der Eingabe-Raumbezug nicht aus der Eingabetabelle abgerufen werden kann, wird die Standardeinstellung GCS_WGS_1984 verwendet.

Coordinate System
exclude_invalid_records
(optional)

Wenn exclude_invalid_records auf True festgelegt ist, werden für die Ausgabe nur gültige Notationen in Punkte konvertiert. Ansonsten werden ungültige Datensätze als Null-Geometrie einbezogen.

  • EXCLUDE_INVALIDNur gültige Datensätze werden in der Ausgabe in Punkte konvertiert. Dies ist die Standardeinstellung.
  • INCLUDE_INVALIDGültige Datensätze werden in der Ausgabe in Punkte konvertiert, und ungültige Datensätze werden als Null-Geometrie einbezogen.
Boolean

Codebeispiel

ConvertCoordinateNotation – Beispiel 1 (eigenständiges Skript)

Verwendung von ConvertCoordinateNotation mit einem Eingabeformatfeld.

# 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")
ConvertCoordinateNotation – Beispiel 2 (eigenständiges Skript)

Verwendung von ConvertCoordinateNotation mit zwei Eingabeformatfeldern.

# 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])
ConvertCoordinateNotation – Beispiel 3 (eigenständiges Skript)

Verwendung von ConvertCoordinateNotation mit UTM_ZONES- und UTM_BANDS-Formaten – Beispiel

# 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])
ConvertCoordinateNotation – Beispiel 4 (eigenständiges Skript)

Beispiel ConvertCoordinateNotation, in dem die Dezimalgradwerte des Ausgabetextes in Gleitkommawerte konvertiert werden. Beachten Sie, dass anstelle von S und W ein Minuszeichen verwendet wird.

# 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)

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen