Czytanie zestawu danych o wysokości narodowej (ArcGrid / GridFloat / IMG) za pomocą narzędzi tylko w języku Python?

10

Znalazłem dane o wysokiej precyzji wysokości (rozdzielczość 1/3 - 1/9 sekundy łukowej) z krajowego zestawu danych wysokości dostarczonego przez USGS. Pochodzi w formatach IMG, Arcgrid i GridFloat. Wiem, że ArcGrid odpowiada płatnemu pakietowi oprogramowania, ale staram się trzymać swobodnie dostępnych narzędzi.

Mam dane GPS, które próbuję skorelować z poziomem gruntu.

Czy są jakieś biblioteki Pythona, które pozwolą mi przekształcić dane GPS w wysokość przy użyciu pliku danych w formatach IMG, ArcGrid lub GridFloat?

zdziwiony
źródło

Odpowiedzi:

7

Praca z plikiem IMG bezpośrednio w pythonie jest prosta dzięki powiązaniom GDAL. Na przykład możesz odczytać dane bezpośrednio do tablicy NumPy:

from osgeo import gdal
geo = gdal.Open('imgn36w100_11.img')
arr = geo.ReadAsArray()
print repr(arr)
array([[ 744.31896973,  743.68762207,  743.1116333 , ...,  550.42498779,
         553.77813721,  556.18640137],
       [ 744.22955322,  743.66082764,  743.05273438, ...,  552.05706787,
         554.81365967,  557.55877686],
       [ 744.0133667 ,  743.49041748,  743.00061035, ...,  553.0123291 ,
         555.78076172,  558.01312256],
       ...,
       [ 568.70880127,  567.33666992,  566.56170654, ...,  447.68035889,
         447.68804932,  447.65426636],
       [ 568.01116943,  566.95739746,  564.23382568, ...,  447.6696167 ,
         447.71224976,  447.62734985],
       [ 565.62896729,  562.65325928,  560.78759766, ...,  447.67129517,
         447.67529297,  447.65179443]], dtype=float32)

Bardziej kompletny przykład wydruku danych w formacie IMG znajduje się w tym skrypcie, który wygenerował obraz poniżej. Aby przekształcić dane GPS na wysokość, musisz spróbować wynikowej tablicy NumPy.

wprowadź opis zdjęcia tutaj

Kelsey
źródło
4

National Map Viewer korzystał z innej platformy oprogramowania, która umożliwiała konwersję danych do GeoTIFF po wybraniu kafelków. Niektórzy regionalni dostawcy danych również wolą GeoTIFF. Ale to może ci nie pomóc.

Jednak dobrą wiadomością jest to, że gdaljest w stanie współpracować ze wszystkimi trzema tymi formatami. ArcGrid to format binarny ESRI, format danych DEM GridFloat USGS i zastrzeżony przez IMG Erdas, który tworzy oprogramowanie Imagine. Prawdopodobnie pobrałbym format ArcGrid lub IMG i przekonwertowałem na GeoTIFF: same USGS mają pakiet skryptów do konwersji opartych na gdal pobieraniu (bezpośredni link do pliku ZIP ). Powinieneś znaleźć tam potrzebne zasoby.

chryss
źródło
Dzięki za link i wzmiankę o gdalie, wygląda to bardzo przydatne
poza
0

Odpowiedź Kelseya początkowo nie działała dla mnie, ponieważ plik .img używał -inf jako wartości pustej przestrzeni.

Rozwiązałem to, dodając wiersz:

topo[topo<-1000] = 0
Vatlark
źródło
1
To nie jest odpowiedź na pierwotne pytanie, prawdopodobnie powinna to być edycja zaakceptowanej odpowiedzi
nmtoken