Leggere GeoTiff usando .NET


11

Esiste una libreria gestita per leggere le coordinate da un file geotiff in .NET?

So che può essere fatto tramite GDAL, ma sto cercando un'alternativa gestita .


È possibile utilizzare Manifold: manifold.net , ma sarebbe necessario almeno il loro runtime per distribuire con l'applicazione. Dovresti leggere GeoTIFF come componente Manifold prima di eseguire una query da esso, il che potrebbe non essere un vantaggio per te. È tutto gestito VC ++ sotto il cofano e il loro lettore GeoTIFF è scritto da loro. Puoi testare con script VBScript o C # all'interno dell'applicazione e quindi eseguire il port su un'app esterna in C # o altro.
mdsumner,

altrimenti l'API di mapwindow potrebbe essere utile, sono sicuro che ce ne saranno anche altri che
posterò

Risposte:



10

È possibile utilizzare i wrapper .NET inclusi GDAL . Ciò consente di accedere a qualsiasi funzionalità GDAL dal codice gestito.


Sono d'accordo ... meglio attenersi al codice testato in battaglia in questo caso
WolfOdrade,

Questo è ancora non gestito GDAL sotto il cofano. In questo caso particolare cerco solo gestito.
BjartN,

1
@BjartN: puoi sempre usare System.Drawing.Bitmap.PropertyItems, quindi gestire tu stesso l'elaborazione dei tag GeoTiff: remotesensing.org/geotiff/spec/geotiff2.6.html#2.6.1 Tuttavia, preferirei utilizzare un wrapper gestito intorno a una biblioteca nativa ...
Reed Copsey,

Grazie, questo potrebbe essere quello che sto cercando. Investigherò :) Inoltre, potrei finire con un wrapper gestito, ma non mi piace molto prendere una dipendenza da GDAL. Preferirei qualcosa di più leggero.
BjartN,

3

Non ne vedrai molti in C # gestito, a causa della limitazione delle prestazioni e dell'utilizzo della memoria imposta dal livello di gestione della memoria di .NET Framework. Non fraintendetemi: adoro C # e .NET. Tuttavia, il C ++ nativo è molto più veloce e (secondo me) meno frustrante da scrivere, in questo caso.

I sondaggi in genere contengono molti file GeoTIFF, che richiedono molta memoria e manipolazione dei dati, quando si eseguono geotrasformate (cioè da WGS82 a UTMM a coordinate TIFF XY, e poi di nuovo). La domanda di prestazioni della memoria e l'efficienza della gestione aumenta ulteriormente, quando si coinvolge cose come la compilazione di risultati di sondaggi lineari, radiali e di area.

Probabilmente non vuoi ascoltarlo, ma scrivere un parser in C ++ nativo e quindi inserirlo in C # aumenterà notevolmente le prestazioni ed eliminerà i limiti di memoria. Scrivere un parser è in realtà abbastanza facile e sarà molto leggero, poiché puoi adattarlo alle tue esigenze. Lo troverai particolarmente vero quando si integrano funzionalità più avanzate, come la selezione automatica e lo spanning dei file GeoTIFF.


Ti do un punto per il valore aggiunto :)
BjartN

Molto apprezzato! ;)
Mike Christian,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.