Lendo o conjunto de dados de elevação nacional (ArcGrid / GridFloat / IMG) com apenas ferramentas Python?

10

Encontrei dados de elevação de alta precisão (resolução de 1/3 a 1/9 de arco-segundo) do conjunto de dados de elevação nacional fornecido pelo USGS. Ele vem nos formatos IMG, Arcgrid e GridFloat. Eu sei que o ArcGrid corresponde a um pacote de software pago, mas estou tentando usar ferramentas disponíveis gratuitamente.

Tenho dados de GPS que estou tentando correlacionar com o nível do solo.

Existem bibliotecas python que me permitem transformar dados de GPS em altitude usando um arquivo de dados nos formatos IMG, ArcGrid ou GridFloat?

abnowack
fonte

Respostas:

7

Trabalhar com o arquivo IMG diretamente em python é simples com as ligações GDAL. Por exemplo, você pode ler os dados diretamente em uma matriz 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)

Para um exemplo mais completo de plotagem de dados no formato IMG, consulte este script que gerou a imagem abaixo. Para a transformação dos dados do GPS em altitude, você terá que amostrar a matriz NumPy resultante.

insira a descrição da imagem aqui

Kelsey
fonte
4

O National Map Viewer costumava usar uma plataforma de software diferente, que permitia converter os dados em GeoTIFF após a seleção de blocos. Alguns provedores de dados regionais também preferem o GeoTIFF. Mas isso pode não ajudar em nada.

No entanto, a boa notícia é que gdalé capaz de trabalhar com todos esses três formatos. O ArcGrid é um formato binário ESRI, o formato de dados DEM do GridFloat USGS e o IMG proprietário da Erdas, que produz o software Imagine. Eu provavelmente baixaria o ArcGrid ou o formato IMG e converteria em GeoTIFF: O USGS possui um pacote de scripts de conversão com base no gdal download ( link direto para o arquivo ZIP ). Você deve encontrar os recursos necessários lá.

chryss
fonte
Obrigado pelo link e mencionando gdal, parece muito útil
abnowack
0

A resposta de Kelsey não funcionou inicialmente para mim porque o arquivo .img usava -inf como o valor do espaço vazio.

Eu resolvi isso adicionando a linha:

topo[topo<-1000] = 0
vatlark
fonte
1
Esta não é uma resposta para a pergunta original, que provavelmente deve ser uma edição para a resposta aceita
NmToken