Deutsch
Continue in the app
Be The First To Get Support Updates
Want to know about the latest technical content and software updates?

Ho To: Konvertieren einer Datei mit Koordinaten in Grad, Minuten und Sekunden in ein Shapefile in ArcMap 9.x

Zusammenfassung

Hinweis: Das nachstehende Verfahren bezieht sich auf ArcGIS 9.3.1 oder frühere Versionen. Ab ArcGIS 10.0 können Ausdrücke im Rechner nur im VBScript-Format oder im Python-Standardformat erstellt werden. Informationen zum entsprechenden Verfahren in ArcGIS Desktop 10 finden Sie im Artikel How To: Verwenden von ArcMap 10.x zum Konvertieren einer Datei mit Koordinaten in Grad, Minuten und Sekunden in eine Feature-Class oder ein Shapefile.

Vorgehensweise

Führen Sie hierfür die folgenden Schritte aus.

  1. Formatieren Sie die Koordinatenwerte für ArcGIS, damit die Daten ordnungsgemäß ausgewertet werden.
    1. Koordinaten in DMS aus einer Datei müssen mit Leerzeichen zwischen den Grad-, Minuten- und Sekundenwerten formatiert werden, wie im folgenden Beispiel gezeigt:
      80 37 40,35 00 48
    2. Für Daten in Nordamerika müssen die Längengradwerte negative Zahlen sein. Beispiel:
      -80 37 40,35 00 48
    3. Jede Spalte in der Tabelle muss eine Überschrift aufweisen, die die in diese Tabellenspalte eingegebenen Daten beschreibt:
      Longitude,Latitude
      -80 37 40,35 00 48
    4. Die Tabelle muss über ein Feld verfügen, das eine eindeutige numerische Kennung für jeden Datensatz in der Tabelle enthält (Primärschlüssel).
      ID,Longitude,Latitude
      1,-80 37 59,35 00 38
  1. Starten Sie ArcMap mit einer neuen, leeren Karte, nachdem die Tabelle ordnungsgemäß formatiert wurde.
  2. Speichern Sie mit den folgenden Schritten das unten stehende Skript in ArcMap unter dem Namen "conv_DMS2DD.cal":
Code: Dim sField Dim sDMS As String, sS As String, sSuf As String, sPre as string Dim sList Dim i As Integer, j As Integer Dim iDec As Integer, iNum As Integer Dim dD As Double, dM As Double, dS As Double, dDD As Double Dim bReplace As Boolean '============================= 'Change the source field name bellow sField = [dms] '============================= sDMS = sField If Len(Trim(sDMS)) = 0 Then dDD = 0 Else iDec = 0 iNum = 0 For i = 1 To Len(sDMS) sS = Mid(sDMS, i, 1) If Not IsNumeric(sS) Then If sS = "." Then If Not iDec = 0 Then bReplace = True Else bReplace = False End If iDec = iDec + 1 ElseIf sS = "-" Then sPre = "-" bReplace = True Else bReplace = True End If If bReplace Then If iNum > 0 Then Mid(sDMS, i, 1) = "," Else Mid(sDMS, i, 1) = " " End If End If Else iNum = iNum + 1 End If Next i sList = Split(sDMS, ",") Dim iLen As Integer If UBound(sList) = 0 Then sDMS = sList(0) iLen = Len(sDMS) If iLen >= 4 Then dS = CDbl(Mid(sDMS, iLen - 1, 2)) dM = CDbl(Mid(sDMS, iLen - 3, 2)) sDMS = Left(sDMS, (iLen - 4)) If (Len(sDMS) > 2) Then dD = CDbl(Right(sDMS, 3)) ElseIf (Len(sDMS) = 0) Then dD = 0# Else dD = CDbl(sDMS) End If Else dDD = 0 End If dDD = dD + dM / 60# + dS / 3600# Else j = 0 dD = 0# dM = 0# dS = 0# For i = 0 To UBound(sList) If IsNumeric(sList(i)) Then If j = 0 Then dD = CDbl(sList(i)) j = j + 1 ElseIf j = 1 Then dM = CDbl(sList(i)) j = j + 1 ElseIf j = 2 Then dS = CDbl(sList(i)) j = j + 1 End If End If Next i dDD = dD + dM / 60# + dS / 3600# End If If dDD < -180# Or dDD > 180# Then dDD = 0# End If If sPre = "-" Then dDD = dDD * -1# End If End If
  1. Öffnen Sie eine Tabelle in ArcMap.
  2. Klicken Sie mit der rechten Maustaste auf das Feld, und wählen Sie Wert berechnen aus.
  3. Aktivieren Sie das Kontrollkästchen Erweitert.
  4. Kopieren Sie den oben dargestellten Code in den Abschnitt Pre-Logic VBA Script Code der Feldberechnung.
  5. Geben Sie im unteren Abschnitt der Feldberechnung dDD ein.
  6. Klicken Sie auf Speichern, um das Skript in einer CAL-Datei zu speichern, und benennen Sie die Datei mit "conv_DMS2DD.cal".
  1. Führen Sie die folgenden Schritte aus, um in der Feldberechnung den obigen Code auszuführen:
    1. Fügen Sie ArcMap mithilfe der Schaltfläche Daten hinzufügen die Tabelle hinzu, in der sich die DMS-Koordinaten befinden.
    2. Klicken Sie mit der rechten Maustaste auf den Tabellennamen, und klicken Sie auf Daten > Exportieren, um die Tabelle in eine DBF-Datei zu exportieren.
    3. Öffnen Sie die DBF-Tabelle, und fügen Sie ihr die Felder "longDD" und "latDD" hinzu. Definieren Sie diese mit dem Datentyp Double, mit der Genauigkeit 18 und einer Anzahl von 13 Dezimalstellen.
    4. Berechnen Sie die Feldwerte für "longDD" und "latDD", indem Sie das Skript "conv_DMS2DD.cal" in die Feldberechnung laden.
Hinweis: Ändern Sie den Namen des Feldes im Skript in den Namen der ursprünglichen DMS-Felder. Change the source field name to: sField = [Long]
  1. Nachdem die Daten von DMS in DD konvertiert wurden, klicken Sie mit der rechten Maustaste auf die DBF-Tabelle, und wählen Sie XY-Daten anzeigen aus.

    Klicken Sie im Abschnitt Raumbezug der Eingabekoordinaten des Dialogfeldes auf die Schaltfläche Bearbeiten, um die Projektion für den Ereignis-Layer zu definieren.
Hinweis: Durch Definieren der Projektion können die Daten als Ereignis-Layer an der richtigen Stelle in ArcMap angezeigt werden.
  1. Konvertieren Sie den Ereignis-Layer in ein Shapefile.
    1. Klicken Sie mit der rechten Maustaste auf den Ereignis-Layer, und wählen Sie Daten > Exportieren aus.
    2. Wählen Sie das Ausgabeverzeichnis für das Shapefile aus, und geben Sie den Namen ein.
    3. Klicken Sie im Dialogfeld Daten exportieren auf Speichern und OK, um das Shapefile zu erstellen.

Referenzinformationen

Zuletzt geändert: 5/10/2021

Artikel-ID: 000012735

Software: ArcGIS-ArcEditor 9.3.1, 9.3, 9.2 ArcGIS-ArcInfo 9.3.1, 9.3, 9.2 ArcGIS-ArcView 9.3.1, 9.3, 9.2