Deutsch

How To: Verwenden der Feldberechnung zum Konvertieren von Werten in Dezimalgrad in Werte in Grad Minuten Sekunden

Zusammenfassung

In den nachfolgenden Anweisungen wird die Verwendung der Feldberechnung zum Konvertieren von Werten in Dezimalgrad, die in einem Zeichenfolgenfeld gespeichert sind, in Werte in Grad Minuten Sekunden, die einem Zahlenfeld gespeichert sind, beschrieben. Die Ausgabe hat das folgende Format:

DD°MM'SS.SS"N

Vorgehensweise

Führen Sie die folgenden Schritte aus:

  1. Fügen Sie die Tabelle ArcMap hinzu.
  2. Klicken Sie im Inhaltsverzeichnis mit der rechten Maustaste auf die Tabelle, und wählen Sie Öffnen aus.
  3. Schalten Sie den Bearbeitungsmodus gegebenenfalls aus. Klicken Sie auf die Schaltfläche Optionen, und wählen Sie Feld hinzufügen aus.
  4. Geben Sie im Namensfeld den Wert DMSLat ein, und wählen Sie aus der Dropdown-Liste Typ den Eintrag Text aus. Wenn "DMSLat" bereits als Feldname verwendet wird, wählen Sie einen Namen aus, der noch nicht verwendet wird.
  5. Ändern Sie die Länge in 20.
  6. Klicken Sie mit der rechten Maustaste auf das Feld DMSLat, und wählen Sie Wert berechnen aus.
  7. Klicken Sie auf Ja, wenn ein Meldungsfeld angezeigt wird.
  8. Ändern Sie den Parser von VB Script in Python.
  9. Aktivieren Sie das Kontrollkästchen Code-Block anzeigen.
  10. Fügen Sie den folgenden Code in das Feld Pre-Logic Script Code ein:
    Code:
    def decimalDegrees2DMS(value,type):
        """
            Converts a Decimal Degree Value into
            Degrees Minute Seconds Notation.
            
            Pass value as double
            type = {Latitude or Longitude} as string
            
            returns a string as D:M:S:Direction
            created by: anothergisblog.blogspot.com 
        """
        degrees = int(value)
        submin = abs( (value - int(value) ) * 60)
        minutes = int(submin)
        subseconds = abs((submin-int(submin)) * 60)
        direction = ""
        if type == "Longitude":
            if degrees < 0:
                direction = "W"
            elif degrees > 0:
                direction = "E"
            else:
                direction = ""
        elif type == "Latitude":
            if degrees < 0:
                direction = "S"
            elif degrees > 0:
                direction = "N"
            else:
                direction = "" 
        notation = str(degrees) + u"\u00b0" + str(minutes) + "\'" +\
                   str(subseconds)[0:5] + "\"" + direction
        return notation
  11. Fügen Sie den folgenden Code in das Feld für den Ausdruck DMSLat = am unteren Rand des Dialogfeldes ein:
    Code:
    decimalDegrees2DMS( !DMSLat! ,"Latitude")
  12. Klicken Sie auf OK, um die Feldberechnung auszuführen.
  13. Wiederholen Sie die Schritte 3 bis 12 für die Längengradwerte; ersetzen Sie dabei den ersten Parameter im Feld für den Ausdruck DMSLong durch das Feld in der Tabelle, die den Längengrad als Dezimalgradwert enthält, und ersetzen Sie Breitengrad im zweiten Parameter durch Längengrad.

Referenzinformationen