Como gerar arquivos mundiais para o raster X?

8

Dada uma lista de rasters georreferenciados, cerca de cem, qual é o método mais simples para gerar arquivos mundiais para cada um?

Nesse caso, os rastreadores de origem são geotiff com georreferenciamento incorporado ou .BIL com .PRJ, mas a solução ideal não deve se importar com o formato. Espero evitar a duplicação de dados.

Tenho à minha disposição o Arcgis 10 (Arcinfo & Spatial Analyst), GDAL Utilities (gdal v1.8.0) e Quantum GIS 1.8.

Matt Wilson
fonte
A geração de arquivos mundiais nem sempre garante que um software possa / lê o arquivo mundial para georreferenciamento. Geotiff é o que tive mais sorte em diferentes softwares.
Brad Nesom
você está tentando ler o formato EHdr? gdal.org/frmt_various.html
falcacibar
1
o software para o qual estou preparando isso não entende georreferenciamento incorporado ou arquivos .prj (proj4 ou wkt) externos. Ele analisa apenas .wld (ou .blw, .jpw, ... etc.).
mate Wilkie

Respostas:

12

Se você estiver usando uma versão recente do QGIS, talvez já tenha acesso à ferramenta Extrair projeção mencionada aqui .

No artigo: "O que isso permite fazer é descobrir em que projeção estão seus rasters. Em seguida, exporta para um arquivo .WLD. Também permite criar arquivos .PRJ. Se você possui o GDAL Tools instalado (e ativado). ), você encontrará essa nova ferramenta em Raster> Projeções> Extrair projeção " .

Também inclui uma opção de processamento em lote, o que é ótimo para seus propósitos.

R Thiede
fonte
então, se eu esperasse o dia, poderia ter me economizado algumas horas de trabalho! mas eu não teria aprendido nada, então vou dizer o mesmo. ;-) Ao ler o log de confirmação, além de toda a qualidade da interface do usuário, o que esta ferramenta qgis faz melhor que a minha é lidar com nomes de arquivos unicode e gravar um arquivo .prj externo ao estilo esri. Não é necessário seguir a convenção de nomear a extensão após a entrada, por exemplo, para um jpeg, ele grava .wld em vez de .jgw, o que pode ou não ser importante para outras pessoas. Aceitar isso como a resposta correta, mesmo que eu não o tenha usado, pois é a solução mais completa.
mate Wilkie
7

Acionado pelo ponteiro de Mike Toews para GetGeoTransform , consegui criar um pequeno script pydal gdal que cria arquivos do mundo para qualquer raster georreferenciada suportada (eu acho). O código completo está aqui: gdal-makeworld.py. Os bits essenciais são:

geotransform = dataset.GetGeoTransform()

if geotransform is not None:
    x, x_size, x_rot, y, y_rot, y_size = geotransform
    # correct for centre vs corner of pixel
    x = x_size/2+x
    y = y_size/2+y
    world_file.write('%s\n' % x_size)
    world_file.write('%s\n' % x_rot)
    world_file.write('%s\n' % y_rot)
    world_file.write('%s\n' % y_size)
    world_file.write('%s\n' % x)
    world_file.write('%s\n' % y)
    world_file.close()

''' geotransform tuple key:
    [0] /* top left x */
    [1] /* w-e pixel resolution */
    [2] /* rotation, 0 if image is "north up" */
    [3] /* top left y */
    [4] /* rotation, 0 if image is "north up" */
    [5] /* n-s pixel resolution */
'''

Agradecimentos adicionais a Schuyler Erle pela escrita, gdalcopyproj.pyque usei como ponto de partida.

Dica do chapéu @AlisterH para "corrigir o centro vs o canto do pixel" , 30-05-2019

Matt Wilson
fonte