Читання національного набору даних Elevation (ArcGrid / GridFloat / IMG) за допомогою лише інструментів Python?


10

Я знайшов дані високої точності (1/3 - 1/9 дуги з роздільною здатністю) з національного набору даних про висоту, наданого USGS. Він поставляється у форматах IMG, Arcgrid та GridFloat. Я знаю, що ArcGrid відповідає платному програмному пакету, але я намагаюся дотримуватися вільно доступних інструментів.

У мене є дані GPS, які я намагаюся співвіднести із рівнем землі.

Чи є бібліотеки python, які дозволять мені перетворити дані gps у висоту за допомогою файлу даних у форматах IMG, ArcGrid або GridFloat?

Відповіді:


7

Робота з файлом IMG безпосередньо в python проста з прив’язками GDAL. Наприклад, ви можете прочитати дані безпосередньо в масиві 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)

Для більш повного прикладу побудови даних формату IMG див. Цей скрипт, який створив зображення нижче. Щоб перетворити GPS-дані у висоту, вам доведеться взяти вибірку отриманого масиву NumPy.

введіть тут опис зображення


4

Національний переглядач карт використовував іншу програмну платформу, що дозволило перетворити дані в GeoTIFF після вибору плиток. Деякі регіональні постачальники даних також віддають перевагу GeoTIFF. Але це може вам не допомогти.

Однак хороша новина полягає в тому, що gdalможна працювати з усіма цими цими форматами. ArcGrid - це бінарний формат ESRI, формат даних DEM GridFloat USGS та IMG - власність Erdas, які створюють програмне забезпечення Imagine. Ймовірно, я б завантажував або ArcGrid або формат IMG і конвертував у GeoTIFF: У самих USGS є пакет скриптів перетворення на основі gdal завантаження (пряме посилання на ZIP-файл ). Ви повинні знайти потрібні вам ресурси.


Дякуємо за посилання та згадуючи gdal, це виглядає дуже корисно
abnowack

0

Відповідь Келсі спочатку для мене не спрацювала, тому що .img-файл використовував -inf як значення для порожнечого простору.

Я вирішив це, додавши рядок:

topo[topo<-1000] = 0

1
Це не відповідь на початкове запитання, це, мабуть, має бути зміна прийнятої відповіді
nmtoken
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.