Lecture de GeoTiff à l'aide de .NET

11

Existe-t-il une bibliothèque gérée pour lire les coordonnées d'un fichier géotiff dans .NET?

Je sais que cela peut se faire via GDAL, mais je cherche une alternative gérée .

BjartN
la source
Vous pourriez utiliser Manifold: manifold.net , mais vous auriez besoin d'au moins leur temps d'exécution pour distribuer avec votre application. Vous devrez lire le GeoTIFF en tant que composant de collecteur avant de l'interroger, ce qui peut être un non pour vous. Tout est géré VC ++ sous le capot, et leur lecteur GeoTIFF est écrit par eux. Vous pouvez tester avec des scripts VBScript ou C # à l'intérieur de l'application, puis effectuer un portage vers une application externe en C # ou autre.
mdsumner
sinon l'api de mapwindow pourrait être utile, je suis sûr qu'il y en a d'autres que je
posterai

Réponses:

10

Vous pouvez utiliser les wrappers .NET inclus dans GDAL . Cela vous permet d'accéder à n'importe quelle fonctionnalité GDAL à partir du code managé.

Reed Copsey
la source
Je suis d'accord ... mieux
vaut
Il s'agit toujours de GDAL non géré sous le capot. Dans ce cas particulier, je recherche uniquement géré.
BjartN
1
@BjartN: Vous pouvez toujours utiliser System.Drawing.Bitmap.PropertyItems, puis gérer vous-même le traitement des balises GeoTiff : remotesensing.org/geotiff/spec/geotiff2.6.html#2.6.1 Cependant, je préfère utiliser un wrapper managé autour d'une bibliothèque native ...
Reed Copsey
Thx ce pourrait être ce que je recherche. Je vais enquêter :) En outre, je pourrais me retrouver avec un wrapper managé, mais je ne suis pas très désireux de prendre une dépendance sur GDAL. Je préférerais quelque chose de plus léger.
BjartN
3

Vous n'en verrez pas beaucoup en C # géré, en raison des performances et de la limitation de l'utilisation de la mémoire imposées par la couche de gestion de la mémoire .NET Framework. Ne vous méprenez pas - j'adore C # et .NET. Cependant, le C ++ natif est beaucoup plus rapide et (à mon avis) moins frustrant à écrire, dans ce cas.

Les levés contiennent généralement de nombreux fichiers GeoTIFF, qui nécessitent beaucoup de mémoire et de manipulation de données, lors de la réalisation de géotransformations (c.-à-d. WGS82 à UTMM en coordonnées TIFF XY, puis à nouveau.) La demande de performances de mémoire et d'efficacité de gestion augmente davantage, lorsque vous impliquez des choses comme la compilation des résultats des levés linéaires, radiaux et de zone.

Vous ne voulez probablement pas entendre cela, mais l'écriture d'un analyseur en C ++ natif, puis son encapsulation en C # va augmenter considérablement les performances et éliminer les limitations de mémoire. Écrire un analyseur est en fait assez facile et sera très léger, car vous pouvez l'adapter à vos besoins. Vous trouverez cela particulièrement vrai lors de l'intégration de fonctionnalités plus avancées, telles que la sélection automatique et la répartition des fichiers GeoTIFF.

Mike Christian
la source
Je vous donne un point pour la valeur ajoutée :)
BjartN
Très appréciée! ;)
Mike Christian
2

Que diriez-vous de ce bout de code ?

Chad Cooper
la source
Il s'agit également de GDAL non géré sous le capot
BjartN
Le lien n'est désormais plus accessible
Graviton