Lendo o GeoTiff usando .NET

11

Existe uma biblioteca gerenciada para ler as coordenadas de um arquivo geotiff no .NET?

Eu sei que isso pode ser feito através do GDAL, mas estou procurando uma alternativa gerenciada .

BjartN
fonte
Você poderia usar o Manifold: manifold.net , mas precisaria de pelo menos o tempo de execução deles para distribuir com seu aplicativo. Você teria que ler o GeoTIFF como um componente do Manifold antes de consultá-lo, o que pode ser um impedimento para você. Tudo é gerenciado com o VC ++ e o leitor GeoTIFF é escrito por eles. Você pode testar com scripts VBScript ou C # dentro do aplicativo e, em seguida, portar para um aplicativo externo em C # ou qualquer outra coisa.
Mdsumner
caso contrário, a api MapWindow pode ser útil, eu tenho certeza que há outros também, que eu vou postar se eu me lembro
mdsumner

Respostas:

10

Você pode usar os wrappers .NET incluídos pelo GDAL . Isso permite acessar qualquer funcionalidade GDAL a partir do código gerenciado.

Reed Copsey
fonte
Eu concordo ... é melhor ficar com o código testado em batalha neste caso #
WolfOdrade 23/02
Este ainda é um GDAL não gerenciado sob o capô. Neste caso em particular, estou procurando apenas gerenciado.
BjartN
1
@BjartN: Você sempre pode usar System.Drawing.Bitmap.PropertyItems e depois processar você mesmo as tags GeoTiff: remotesensing.org/geotiff/spec/geotiff2.6.html#2.6.1 No entanto, prefiro usar um wrapper gerenciado em torno de uma biblioteca nativa ...
Reed Copsey
Thx isso pode ser o que eu estou procurando. Vou investigar :) Além disso, posso acabar com um wrapper gerenciado, mas não estou muito interessado em assumir uma dependência do GDAL. Prefere algo mais leve.
BjartN
3

Você não verá muitos no C # gerenciado, devido à limitação de desempenho e uso de memória imposta pela camada de gerenciamento de memória do .NET Framework. Não me interpretem mal - eu amo C # e .NET. No entanto, C ++ nativo é muito mais rápido e (na minha opinião) menos frustrante de escrever, neste caso.

As pesquisas normalmente contêm muitos arquivos GeoTIFF, que exigem muita memória e manipulação de dados, ao realizar geotransformações (por exemplo, WGS82 para UTMM para coordenadas TIFF XY e depois voltar novamente.) A demanda por desempenho da memória e eficiência de gerenciamento aumenta ainda mais quando você envolve coisas como compilar resultados de pesquisas lineares, radiais e de área.

Você provavelmente não quer ouvir isso, mas escrever um analisador em C ++ nativo e envolvê-lo em C # aumentará bastante o desempenho e eliminará as limitações de memória. Escrever um analisador é realmente muito fácil e será muito leve, pois você pode adaptá-lo às suas necessidades. Você achará isso particularmente verdadeiro ao integrar recursos mais avançados, como seleção automática e ampliação de arquivos GeoTIFF.

Mike Christian
fonte
Eu dar-lhe um ponto para o valor add :)
BjartN
Muito apreciado! ;)
Mike Christian
2

Que tal esse pedaço de código ?

Chad Cooper
fonte
Este é GDAL não gerido sob o capô, bem
BjartN
O link já não é acessível
Graviton