Konvertieren von Grad-, Minuten- und Sekundenwerten in Dezimalgradwerte

Dies ist die einfache Gleichung für die Konvertierung von Grad, Minuten und Sekunden in Dezimalgrad:

DD = (Seconds/3600) + (Minutes/60) + Degrees

Die Konvertierung muss anders erfolgen, wenn der Gradwert negativ ist. Eine Möglichkeit ist folgende:

DD = - (Seconds/3600) - (Minutes/60) + Degrees

In den nachfolgenden Anweisungen lernen Sie, ein Feld in einer Tabelle mit Breitengrad- oder Längengradwerten in Grad, Minuten und Sekunden mithilfe der Feldberechnung in Dezimalgrad umzuwandeln. Es handelt sich hier um einen VBA-Code, der jedoch problemlos in andere Programmiersprachen konvertiert werden kann. Es wird davon ausgegangen, dass die Grade, Minuten und Sekunden als Zeichenfolge (Text) gespeichert sind, mit Leerräumen zwischen den Zahlen und ohne irgendwelche Symbole. Die Daten würden z. B. wie folgt gespeichert sein:

25 35 22.3

wobei 25 den Gradwert, 35 die Minuten und 22,3 die Sekunden angibt.

Die Ausgabe wird in einem Zahlenfeld gespeichert.

Schritte:
  1. Fügen Sie die Tabelle ArcMap hinzu.
  2. Klicken Sie mit der rechten Maustaste im Inhaltsverzeichnis auf die Tabelle. Klicken Sie anschließend auf "Öffnen".
  3. Klicken Sie auf die Schaltfläche "Optionen" und anschließend auf "Feld hinzufügen".
  4. Geben Sie "Lat2" im Feld "Name" ein.
  5. Klicken Sie auf den Dropdown-Pfeil "Typ" und anschließend in der Liste auf "Double".

    Wenn "Lat2" bereits als Feldname verwendet wird, wählen Sie einen Namen aus, der nicht verwendet wird.

  6. Klicken Sie auf "OK".
  7. Klicken Sie mit der rechten Maustaste auf das Feld "Lat2" und anschließend auf "Feldberechnung".
  8. Klicken Sie auf "Ja", wenn ein Meldungsfeld angezeigt wird.
  9. Aktivieren Sie das Kontrollkästchen "Erweitert".
  10. Geben Sie den folgenden Code in das Ausdrucksfeld ein:
    Dim Degrees as Double
    Dim Minutes as Double
    Dim Seconds as Double
    Dim DMS as Variant
    Dim DD as Double
    
    DMS = Split([Latitude])
    Degrees = CDbl(DMS(0))
    Minutes = CDbl(DMS(1))
    Seconds = CDbl(DMS(2))
    If Degrees < 0 Then
       DD = -(Seconds/3600) - (Minutes/60) + Degrees
    Else
       DD = (Seconds/3600) + (Minutes/60) + Degrees
    End If

    In der sechsten Zeile, die mit "DMS. . ." beginnt, sollte der Text innerhalb der Klammern [] der Name des Felds sein, das die Breitengradwerte enthält. Ersetzen Sie das Wort Breitengrad im Code durch den Namen des Felds (in der Tabelle), das die GMS-Breitengradwerte in der Tabelle speichert.

  11. Fügen Sie den folgenden Code in das Feld "Lat2 =" am unteren Rand des Dialogfelds ein.
    CDbl(DD)
  12. Klicken Sie auf "OK".
  13. Wiederholen Sie die Schritte 3 bis 12 für die Längengradwerte.

7/10/2012