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 .


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.


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.


Eu dar-lhe um ponto para o valor add :)
BjartN

Muito apreciado! ;)
Mike Christian

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.