Konwertujesz partie lat longs na UTM?

11

Mam plik .csv, który zawiera długą listę punktów szerokości i długości geograficznej. Czy istnieje skuteczny sposób grupowego przekształcenia listy w rzutowany układ współrzędnych UTM?

hpy
źródło

Odpowiedzi:

8

Być może najprostszym sposobem jest użycie czegoś takiego jak QGIS i wtyczki tekstowej z ogranicznikami do importowania, a następnie eksportowania danych. Jeśli szukasz czegoś wiernego polecenia i skalowalnego, to podejście VRT wspomniane przez Sasa jest dobre.

Możesz to również zrobić z wejściami i wyjściami plików, używając gdaltransform:

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

A jeśli potrzebujesz bardziej programowego dostępu do wyników, sprawdź odpowiedź geografii za pomocą pyroj na powiązane pytanie.

scw
źródło
Czy możesz sprecyzować sposób, w jaki powinienem eksportować dane do QGIS? Próbowałem kliknąć punkty importowaną warstwą prawym przyciskiem myszy, kliknąć Zapisz jako ... i określiłem UTM 16N jako mój rzutowany układ współrzędnych. Ale wynikowy plik nie został zmieniony!
hpy 5'11
Mogę. Po załadowaniu pliku CSV po prostu wskaż linijkę warstwy, a następnie zapisz jako> wybrane crs> wybierz system do przekształcenia w> i zapisz. jeśli chcesz wrócić do CSV dfsfsd
yair suari
niektóre problemy z edycją. jeśli chcesz wrócić do csv, użyj kalkulatora atrybutów i oblicz wartości $ x i $ y dla funkcji geometrii, aby uzyskać lokalizację w nes crs, zapisz ponownie jako csv
yair suari
9

Z arcmap
dodaj csv i użyj lat longs, aby utworzyć tabelę zdarzeń. (warstwa prawym przyciskiem myszy> „Wyświetl dane XY”)

Powoduje to utworzenie warstwy zdarzeń z tabelą i warstwą punktową (nie rzeczywistą warstwą punktową, należy ją później wyeksportować)

wyświetlać xy

ustaw projekcję dokumentu (właściwości ramki danych) na pożądane wyjście pliku. (kliknij warstwy prawym przyciskiem „w Spisie treści”> właściwości> karta układu współrzędnych).

Doc prop

pożądana projekcja

kliknij warstwę prawym przyciskiem myszy w Spis treści> Eksportuj dane

eksport

Użyj opcji, aby „użyć tego samego układu współrzędnych, co: ramka danych”

eksport

Brad Nesom
źródło
7

ogr2ogr powinien być w stanie to obsłużyć (możesz pobrać FWTools do szybkiej instalacji).

Wątek ten ilustruje sposób ponownego przesłania danych CSV. Podsumowując, musisz utworzyć plik VRT, który zawiera odniesienia do kolumn CSV:

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

A następnie uruchom ogr2ogr w celu ponownego odrzucenia:

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

Musisz zastąpić epsg: 31466 odpowiednim kodem EPSG dla twojego układu współrzędnych UTM.

Sasa Ivetic
źródło
4

Corpscon , bezpłatne narzędzie od US Army Corps of Engineers, pozwoli ci na konwersję partii lat / long na / z UTM. Pamiętaj, że jest to ograniczone do Stanów Zjednoczonych i może działać w Kanadzie .


źródło
3

Rozumiem, że nie chcesz po prostu ponownie rzutować pliku, chcesz przekonwertować współrzędne i mieć nowy plik z nowymi współrzędnymi. Jeśli Google „przekonwertuje lat / lon na utm”, powinieneś znaleźć arkusze kalkulacyjne Excel, które dokonają tej konwersji (np. Na University of Wisconsin Green Bay lub w odpowiedzi Whubera powyżej). Możesz też kupić oprogramowanie, takie jak AllTrans lub Franson Coordtrans, które przekształcają partie do iz wielu różnych układów współrzędnych.

Lub, mniej proste, ale bardziej edukacyjne, jest nauczenie się składni gdal lub FWTools.

Rudi
źródło
3

Do rozwiązania skryptowego można użyć pyproj :

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()
tomkralidis
źródło
Dziękuję, kolego programisty! Uwaga: zadziała to, jeśli plik CSV ma ponad 3 kolumny, a dane xy to druga i trzecia kolumna. Musiałem tylko trochę dostosować indeksy, ponieważ moje dane wejściowe x / y znajdują się w pierwszych dwóch kolumnach. Tak jasne, rozszerzalne i wielokrotnego użytku!
Ahmed Fasih
2

Następująca nowa witryna konwertuje pliki online. (Używa pyproj)

Generuje również KML, a plik wejściowy często można pozostawić „tak jak jest” i nie sformatować go w celu dostosowania go do programu konwersji.

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

Wytnij i wklej link, aby go śledzić.

Ninga
źródło
Usunąłem to. Kosztuje mnie 120 USD rocznie + czas administratora przy zbyt małej liczbie użytkowników. Przepraszam.
Ninga,
1

Nie wybrałbym rozwiązania ARC; do tych typowych konwersji dostępnych jest wiele narzędzi online, takich jak http://www.hamstermap.com - wystarczy skopiować i wkleić listę współrzędnych, a otrzymasz je natychmiast przekonwertowane.

Petra Hauerlandova
źródło
Lepszy internetowy konwerter partii dla Lon / Lat na UTM znajduje się na stronie < zonums.com/online/coords/cotrans.php?module=13 > Narzędzie do Hamstermap wydaje się zmieniać współrzędne wejściowe, podczas gdy narzędzie Zonums nie psuje dane wejściowe, a także strefy działające dla danych z całego świata - tylko w WGS84, ale pozwala ustawić strefę. Tylko uważaj, aby wybrać właściwą opcję z lat / lon lub lon / lat. Narzędzie Zonums daje prawidłowe wyniki i jest z pewnością łatwiejsze w użyciu niż manipulowanie skryptami lub cokolwiek innego.
IanS