Batch-Konvertierung von Lat-Longs in UTM?


11

Ich habe eine CSV-Datei, die eine lange Liste von Längen- und Breitengraden enthält. Gibt es eine effiziente Möglichkeit, die Liste stapelweise in ein projiziertes UTM-Koordinatensystem zu konvertieren?

Antworten:


8

Am einfachsten ist es vielleicht, QGIS und sein Plugin für abgegrenzte Texte zu verwenden, um die Daten zu importieren und dann zu exportieren. Wenn Sie nach einer Befehlszeile und Skalierbarkeit suchen, ist der von Sasa erwähnte VRT-Ansatz gut.

Sie können dies auch mit Dateieingaben und -ausgaben tun, indem Sie gdaltransform:

gdaltransform -s_srs epsg:4326 -t_srs epsg:25832 < space-delimited-coordinates.txt

Wenn Sie mehr programmgesteuerten Zugriff auf die Ergebnisse benötigen , lesen Sie die Antwort von geographika mit pyroj für eine verwandte Frage.


Können Sie genauer festlegen, wie ich die Daten in QGIS exportieren soll? Ich habe versucht, mit der rechten Maustaste auf die importierte Ebene mit den Punkten zu klicken, auf Speichern unter ... zu klicken und UTM 16N als mein projiziertes Koordinatensystem anzugeben. Die resultierende Datei wurde jedoch nicht geändert!
hpy

Nachdem Sie die CSV geladen haben, zeigen Sie einfach auf das Ebenenlineal und speichern Sie dann als> ausgewählte crs> wählen Sie das System aus, in das transformiert werden soll> und speichern Sie es. Wenn Sie dann zu CSV zurückkehren möchten, dfsfsd
yair suari

Einige Bearbeitungsprobleme. wenn gehen wollen zurück zu csv die Attribute Rechner zu verwenden und die $ x und $ y - Werte von der Geometrie functionsd berechnen die Lage am nes zu bekommen crs das Speichern wieder als csv
yair Suari

9

Fügen Sie mit arcmap
die CSV hinzu und erstellen Sie mit den Lat Longs eine Ereignistabelle. (Rechtsklick auf Ebene> "XY-Daten anzeigen")

Dadurch wird eine Ereignisebene mit der Tabelle und einer Punktebene erstellt (keine echte Punktebene, sie muss später exportiert werden).

Anzeige xy

Stellen Sie die Dokumentprojektion (Datenrahmeneigenschaften) auf die gewünschte Ausgabe der Datei ein. (Klicken Sie mit der rechten Maustaste auf Ebenen "im Inhaltsverzeichnis"> Eigenschaften> Registerkarte Koordinatensystem).

Doc prop

gewünschte Projektion

Klicken Sie mit der rechten Maustaste auf die Ebene unter Inhaltsverzeichnis> Daten exportieren

Export

Verwenden Sie die Option "Verwenden Sie dasselbe Koordinatensystem wie: den Datenrahmen".

Export


7

ogr2ogr sollte in der Lage sein, damit umzugehen (Sie können FWTools für eine schnelle Installation herunterladen ).

Dieser Thread zeigt, wie CSV-Daten neu projiziert werden. Zusammenfassend müssen Sie eine VRT-Datei erstellen, die Verweise auf die CSV-Spalten enthält:

<OGRVRTDataSource>
    <OGRVRTLayer name="test">
        <SrcDataSource>test.csv</SrcDataSource>
        <GeometryType>wkbPoint</GeometryType>
        <GeometryField encoding="PointFromColumns" x="RW" y="HW"/>
    </OGRVRTLayer>
</OGRVRTDataSource>

Führen Sie dann ogr2ogr zur Neuprojektion aus:

ogr2ogr -s_srs "epsg:31466" -t_srs "epsg:25832" -f "CSV" -lco GEOMETRY=AS_XY -sql "SELECT PNR FROM test" temp_dir test.vrt

Sie müssen epsg: 31466 durch den entsprechenden EPSG-Code für Ihr UTM-Koordinatensystem ersetzen.





3

So wie ich es verstehe, möchten Sie eine Datei nicht einfach neu projizieren, sondern die Koordinaten selbst konvertieren und eine neue Datei mit den neuen Koordinaten erstellen. Wenn Sie Google "lat / lon in utm konvertieren", sollten Sie Excel-Tabellen finden, die diese Konvertierung durchführen (z. B. an der University of Wisconsin Green Bay oder in der obigen Antwort von whuber ). Sie können auch Software wie AllTrans oder Franson Coordtrans erwerben, die stapelweise in und aus vielen verschiedenen Koordinatensystemen konvertiert werden.

Weniger einfach, aber lehrreicher ist es, die Syntax für gdal oder FWTools zu lernen.


3

Für eine Skriptlösung können Sie pyproj verwenden :

import sys
import csv
import pyproj

# example invocation
# ./reproj.py ./file.csv 32619 4326

if (len(sys.argv) != 4):
    print '%s <csvfile> <epsg_code_in> <epsg_code_out>' % sys.argv[0]
    sys.exit(1)
else:
    p1 = pyproj.Proj(init='epsg:%s' % sys.argv[2])
    p2 = pyproj.Proj(init='epsg:%s' % sys.argv[3])

    f = open(sys.argv[1], 'r')
    table = csv.reader(f)
    for row in table:
        print '%s %s' % (row[1], row[2])
        newxy = pyproj.transform(p1, p2, row[1], row[2])
        print '%s %s' % (row[0], newxy[0], newxy[1])
    f.close()

Vielen Dank, Programmierkollege! NB: Dies funktioniert, wenn Ihre CSV-Datei mehr als 3 Spalten enthält, wobei Ihre xy-Daten die zweite und dritte Spalte sind. Ich musste nur die Indizes etwas anpassen, da sich meine Eingabe x / y in den ersten beiden Spalten befindet. So klar, erweiterbar und wiederverwendbar!
Ahmed Fasih

2

Die folgende neue Site konvertiert Dateien online. (Es verwendet pyproj)

Außerdem wird KML generiert, und die Eingabedatei kann häufig unverändert gelassen und nicht neu formatiert werden, um dem Konvertierungsprogramm zu entsprechen.

Sorry i cant post a numeric domain so have to wrap it in a code block!
http://54.251.49.75/XYZ_tools

Bitte schneiden Sie den Link aus und fügen Sie ihn ein, um ihm zu folgen.


Entfernte es. Kostet mich 120 USD pro Jahr + Verwaltungszeit mit zu wenigen Benutzern. Es tut uns leid.
Ninga

1

Ich würde mich nicht für eine ARC-Lösung entscheiden. Für diese gängigen Konvertierungen gibt es viele Online-Tools wie http://www.hamstermap.com. Kopieren Sie einfach eine Liste mit Koordinaten und fügen Sie sie ein. Sie erhalten sie sofort konvertiert.


Ein besserer Online- Stapelkonverter für Lon / Lat zu UTM ist unter < zonums.com/online/coords/cotrans.php?module=13 > verfügbar . Das Hamstermap-Tool scheint die Eingabekoordinaten zu ändern, während das Zonums-Tool die nicht durcheinander bringt Eingabedaten und auch die Zonen, die für weltweite Daten verwendet werden - nur in WGS84, aber Sie können die Zone festlegen. Pass auf, dass du die richtige Option aus lat / lon oder lon / lat auswählst. Das Zonums-Tool liefert korrekte Ergebnisse und ist sicherlich einfacher zu verwenden, als mit Skripten oder was auch immer herumzuspielen.
IanS
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.