Suite

Comment installer les liaisons GDAL pour C#/.NET 4.5.1 ?

Comment installer les liaisons GDAL pour C#/.NET 4.5.1 ?


J'essaie d'utiliser les liaisons gdal C# mais j'obtiens une erreur dans mon code C# qui dit "Impossible de charger la DLL 'gdal_wrap' : le module spécifié est introuvable. (Exception de HRESULT : 0x8007007E)".

J'ai jeté un œil aux dépendances de gdal_csharp.dll et tout semble correct. Deux choses qui se démarquent cependant sont que la dll csharp est une dll 32 bits, alors que toutes les dépendances concernent un système 64 bits (ma machine a un processeur 64 bits). De plus, le fichier ieshims.dll a été répertorié comme une dépendance, mais d'après ce que j'ai compris, il n'est pas strictement nécessaire qu'il soit installé.

J'ai essayé d'installer les fichiers manuellement via un fichier zip et en utilisant également le programme d'installation .msi pour les bibliothèques principales de gdal. Je me suis assuré d'ajouter les chemins des exécutables gdal à mon chemin système.

J'ai téléchargé les binaires ici : http://www.gisinternals.com/query.html?content=filelist&file=release-1800-x64-gdal-1-11-1-mapserver-6-4-1.zip

Et j'ai à peu près suivi ce guide pour les instructions d'installation : http://vipassanaandenvironmentalinformatics.blogspot.co.nz/2013/03/getting-started-with-c-and-gdal.html

J'utilise Visual Studio 2013, pour lequel les binaires sont disponibles sur le site ci-dessus.


Obtenez le package de NuGet, puis vous devez appeler la méthode statiqueGdalConfiguration.ConfigureGdal()deGdalConfiguration.cs/vbau démarrage pour définir les variables d'environnement du processus. AppelGdalConfiguration.ConfigureOgr()si vous souhaitez également utiliser OGR.


Comment installer les liaisons GDAL pour C#/.NET 4.5.1 ? - Systèmes d'information géographique

Un moteur de construction simple (en l'état) de la bibliothèque GDAL 3.2 pour .NET Core.

  • Génère uniquement des assemblys et lie tout dans un seul package.
  • Fournit un accès facile à GDAL en installant uniquement le package de base et d'exécution
  • NE nécessite PAS l'installation de GDAL
  • Ne compile pas tous les pilotes. Uniquement configurés, ils sont listés ci-dessous. Par défaut, GDAL a beaucoup de pilotes internes.
  • Ne modifie pas le code source GDAL.
  • N'étend pas les méthodes GDAL.

Comment compiler sous Windows

Entrez dans le répertoire win pour savoir comment.

À propos de la configuration de construction

Cibles de la version actuelle GDAL 3.2.0 avec pilotes minimaux

Pilotes inclus PROJ(7.2.0), SQLITE3, GEOS(3.9.0), HDF4, HDF5, GEOTIFF, JPEG, PNG, LIBZ, LERC, CURL

Configurer le résumé de la version actuelle

REMARQUE: La disponibilité des pilotes Windows et Linux peut différer, demandez-moi un pilote spécifique pour l'exécution. S'il vous plaît émettre, si j'ai oublié de mentionner d'autres packages.

Création de bibliothèques d'exécution

La version actuelle cible GDAL 3.2.0 version. Chaque runtime doit être construit séparément, mais cela peut être fait simultanément car ils utilisent des contextes différents (dossiers de construction). Les principales liaisons opérationnelles (dans le package gdalcore) sont construites à partir de linux.

Pour que tout fonctionne correctement, chaque configuration cible respectivement les mêmes pilotes et leurs versions.


2 réponses 2

Tout à fait d'accord avec vous pour dire que cela prête à confusion, mais à la fin, la redirection de liaison est votre ami ici utilisé avec votre fichier app.config / web.config.

L'extrait ci-dessus force, quelle que soit la version fournie avec votre code, à utiliser la version spécifiée dans l'attribut "newVersion".

Le tableau ci-dessous vous donne un aperçu des différences de version.

Quelques infos sur la redirection de liaison par Microsoft lui-même.

J'ai plusieurs projets pour lesquels j'ai été obligé d'installer .NETStandard 2.0 car un autre package en dépendait, même si nous n'utilisons que .NET 4.6.1. Après une longue recherche sur Google (et désolé, je ne peux pas vous indiquer où j'ai trouvé cela car cela a été fait il y a si longtemps), j'ai pu comprendre que lorsque vous avez des packages qui utilisent la version netstandard2 des assemblys, VS forcera automatiquement System.Net.Http à la version 4.2.0, même si vous n'avez pas la redirection de liaison comme expliqué par Dimi. Les packages qui s'installent avec netstandard2 incluent System.Buffers , System.Collections.Immutable , System.Memory , System.Runtime.Compilers.Unsafe et System.Text.Encodings.Web (je suis sûr qu'il y en a plus).

Ce que j'ai fini par avoir à faire était de modifier manuellement les fichiers .csproj et de forcer ces assemblys à utiliser les versions netstandard1.x.

Ainsi, par exemple, le chemin d'indication de System.Memory pointe vers le dossier netstandard2.0. Si vous allez dans votre dossier packages, vous constaterez qu'il existe trois versions de cet assemblage : netcoreapp211 , netstandard1.1 et netstandard2.0 . Je ne veux pas du premier parce que je n'utilise pas .NET Core, donc je l'ai changé pour utiliser 1.1 à la place. Après avoir fait cela pour tous les assemblys qui pointent vers netstandard2.0 à 1.0 ou 1.1 (selon ce qui est disponible), VS m'a ensuite permis d'utiliser le package System.Net.Http.4.3.4 que j'avais réellement installé.

Je ne sais vraiment pas pourquoi cela fonctionne, car je ne connais presque rien à propos de .NETStandard, mais c'est le cas.


  • Windows 7 Professionnel
  • Intel Core i7 920 à 2,67 GHz
  • 12,0 Go de RAM
  • Système d'exploitation 64 bits
  • Disque C : SSD 120 Go avec OS, développement (Visual Studio 10), etc.
  • Lecteur D : 1 To WD 10 000 k avec données, non accessible pour les données.

J'ai besoin soit d'une direction pour piéger l'erreur, soit d'un outil ou d'une technique qui me permettra de comprendre ce qui la cause. Je ne veux pas publier le logiciel avec la possibilité que certains systèmes aient ce comportement.


Construire à partir de la source¶

Lors de l'installation à partir des sources sur les systèmes UNIX et GNU/Linux, veuillez suivre attentivement les instructions d'installation et installer les bibliothèques dans l'ordre donné. Si vous utilisez MySQL ou Oracle comme base de données spatiale, seul GEOS est requis.

Sur les plateformes Linux, il peut être nécessaire d'exécuter la commande ldconfig après l'installation de chaque bibliothèque. Par exemple:

Les utilisateurs d'OS X doivent installer les outils de développement Apple afin de compiler le logiciel à partir de la source. Ceci est généralement inclus sur vos DVD d'installation OS X.

GEOS est une bibliothèque C++ permettant d'effectuer des opérations géométriques et constitue la représentation géométrique interne par défaut utilisée par GeoDjango (elle se trouve derrière les géométries « paresseuses »). Plus précisément, la bibliothèque API C est appelée (par exemple, libgeos_c.so ) directement depuis Python à l'aide de ctypes.

Tout d'abord, téléchargez GEOS 3.3.8 depuis le site Web de réfractions et décompressez l'archive source :

Ensuite, accédez au répertoire où GEOS a été décompressé, exécutez le script de configuration, compilez et installez :

Dépannage¶

Impossible de trouver la bibliothèque GEOS¶

Lorsque GeoDjango ne trouve pas GEOS, cette erreur est levée :

La solution la plus courante consiste à configurer correctement les paramètres de l'environnement de votre bibliothèque ou alors définissez GEOS_LIBRARY_PATH dans vos paramètres.

Si vous utilisez un package binaire de GEOS (par exemple, sur Ubuntu), vous devrez peut-être installer binutils .

GEOS_LIBRARY_PATH ¶

Si votre bibliothèque GEOS se trouve dans un emplacement non standard ou si vous ne souhaitez pas modifier le chemin de la bibliothèque système, le paramètre GEOS_LIBRARY_PATH peut être ajouté à votre fichier de paramètres Django avec le chemin complet vers la bibliothèque GEOS C. Par exemple:

Le réglage doit être le plein chemin vers le C bibliothèque partagée en d'autres termes, vous souhaitez utiliser libgeos_c.so , pas libgeos.so .

PROJ.4¶

PROJ.4 est une bibliothèque permettant de convertir des données géospatiales en différents systèmes de référence de coordonnées.

Tout d'abord, téléchargez le code source PROJ.4 et les fichiers de décalage de données [1] :

Ensuite, décompressez l'archive du code source et extrayez les fichiers de décalage de données dans le sous-répertoire nad. Cela doit être fait avant à configurer :

Enfin, configurez, créez et installez PROJ.4 :

GDAL est une excellente bibliothèque géospatiale open source qui prend en charge la lecture de la plupart des formats de données spatiales vectorielles et raster. Actuellement, GeoDjango ne prend en charge que les capacités de données vectorielles de GDAL [2]. GEOS et PROJ.4 doivent être installés avant la construction de GDAL.

Téléchargez d'abord la dernière version de GDAL et décompressez l'archive :

Configurer, créer et installer :

Parce que GeoDjango a sa propre interface Python, les instructions précédentes ne construisent pas les propres liaisons Python de GDAL. Les liaisons peuvent être construites en ajoutant l'indicateur --with-python lors de l'exécution de configure . Voir GDAL/OGR en Python pour plus d'informations sur les liaisons GDAL’s.

Si vous rencontrez des problèmes, veuillez consulter la section de dépannage ci-dessous pour des suggestions et des solutions.

Dépannage¶

Impossible de trouver la bibliothèque GDAL¶

Lorsque GeoDjango ne peut pas trouver la bibliothèque GDAL, le drapeau HAS_GDAL sera faux :

La solution consiste à configurer correctement les paramètres de votre environnement de bibliothèque ou alors définissez GDAL_LIBRARY_PATH dans vos paramètres.

GDAL_LIBRARY_PATH ¶

Si votre bibliothèque GDAL se trouve dans un emplacement non standard ou si vous ne souhaitez pas modifier le chemin de la bibliothèque système, le paramètre GDAL_LIBRARY_PATH peut être ajouté à votre fichier de paramètres Django avec le chemin complet vers la bibliothèque GDAL. Par exemple:

Impossible de trouver les fichiers de données GDAL ( GDAL_DATA )¶

Lorsqu'elles sont installées à partir des sources, les versions 1.5.1 et inférieures de GDAL ont un bogue d'autoconf qui place les données au mauvais endroit. [3] Cela peut conduire à des messages d'erreur comme celui-ci :

La solution consiste à définir la variable d'environnement GDAL_DATA sur l'emplacement des fichiers de données GDAL avant d'appeler Python (généralement /usr/local/share utilisez gdal-config --datadir pour le savoir). Par exemple:

Si vous utilisez Apache, vous devrez peut-être ajouter cette variable d'environnement à votre fichier de configuration :


Construire à partir de la source¶

Lors de l'installation à partir des sources sur les systèmes UNIX et GNU/Linux, veuillez suivre attentivement les instructions d'installation et installer les bibliothèques dans l'ordre donné. Si vous utilisez MySQL ou Oracle comme base de données spatiale, seul GEOS est requis.

Sur les plateformes Linux, il peut être nécessaire d'exécuter la commande ldconfig après l'installation de chaque bibliothèque. Par exemple:

Les utilisateurs d'OS X doivent installer les outils de développement Apple afin de compiler le logiciel à partir de la source. Ceci est généralement inclus sur vos DVD d'installation OS X.

GEOS est une bibliothèque C++ permettant d'effectuer des opérations géométriques et constitue la représentation géométrique interne par défaut utilisée par GeoDjango (elle se trouve derrière les géométries « paresseuses »). Plus précisément, la bibliothèque API C est appelée (par exemple, libgeos_c.so ) directement depuis Python à l'aide de ctypes.

Tout d'abord, téléchargez GEOS 3.3.8 depuis le site Web de GEOS et décompressez l'archive source :

Ensuite, accédez au répertoire où GEOS a été décompressé, exécutez le script de configuration, compilez et installez :

Dépannage¶

Impossible de trouver la bibliothèque GEOS¶

Lorsque GeoDjango ne trouve pas GEOS, cette erreur est levée :

La solution la plus courante consiste à configurer correctement les paramètres de l'environnement de votre bibliothèque ou alors définissez GEOS_LIBRARY_PATH dans vos paramètres.

Si vous utilisez un package binaire de GEOS (par exemple, sur Ubuntu), vous devrez peut-être installer binutils .

GEOS_LIBRARY_PATH ¶

Si votre bibliothèque GEOS se trouve dans un emplacement non standard ou si vous ne souhaitez pas modifier le chemin de la bibliothèque système, le paramètre GEOS_LIBRARY_PATH peut être ajouté à votre fichier de paramètres Django avec le chemin complet vers la bibliothèque GEOS C. Par exemple:

Le réglage doit être le plein chemin vers le C bibliothèque partagée en d'autres termes, vous souhaitez utiliser libgeos_c.so , pas libgeos.so .

PROJ.4¶

PROJ.4 est une bibliothèque permettant de convertir des données géospatiales en différents systèmes de référence de coordonnées.

Tout d'abord, téléchargez le code source PROJ.4 et les fichiers de décalage de données [1] :

Ensuite, décompressez l'archive du code source et extrayez les fichiers de décalage de données dans le sous-répertoire nad. Cela doit être fait avant à configurer :

Enfin, configurez, créez et installez PROJ.4 :

GDAL est une excellente bibliothèque géospatiale open source qui prend en charge la lecture de la plupart des formats de données spatiales vectorielles et raster. Actuellement, GeoDjango ne prend en charge que les capacités de données vectorielles de GDAL [2]. GEOS et PROJ.4 doivent être installés avant la construction de GDAL.

Téléchargez d'abord la dernière version de GDAL et décompressez l'archive :

Configurer, créer et installer :

Parce que GeoDjango a sa propre interface Python, les instructions précédentes ne construisent pas les propres liaisons Python de GDAL. Les liaisons peuvent être construites en ajoutant l'indicateur --with-python lors de l'exécution de configure . Voir GDAL/OGR en Python pour plus d'informations sur les liaisons GDAL’s.

Si vous rencontrez des problèmes, veuillez consulter la section de dépannage ci-dessous pour des suggestions et des solutions.

Dépannage¶

Impossible de trouver la bibliothèque GDAL¶

Lorsque GeoDjango ne peut pas trouver la bibliothèque GDAL, le drapeau HAS_GDAL sera faux :

La solution consiste à configurer correctement les paramètres de votre environnement de bibliothèque ou alors définissez GDAL_LIBRARY_PATH dans vos paramètres.

GDAL_LIBRARY_PATH ¶

Si votre bibliothèque GDAL se trouve dans un emplacement non standard ou si vous ne souhaitez pas modifier le chemin de la bibliothèque système, le paramètre GDAL_LIBRARY_PATH peut être ajouté à votre fichier de paramètres Django avec le chemin complet vers la bibliothèque GDAL. Par exemple:


2 réponses 2

Je ne sais pas si cela va aider, mais ça a marché pour moi. Je cherchais à mettre à niveau GDAL, et comme je l'avais installé manuellement à partir des sources, je voulais d'abord désinstaller l'ancienne version. J'ai donc lu quelque part (désolé mais j'avais tellement d'onglets ouverts que je ne peux pas le trouver maintenant) que je devais simplement installer le dernier package et que cela remplacerait le précédent. Et j'ai lu un autre commentaire disant que la prochaine fois au lieu d'utiliser sudo make install, je devrais utiliser sudo checkinstall qui crée un package deb qui est désinstallable plus tard en exécutant sudo dpkg -r <name_of_your_package> donc je viens d'installer la version que j'avais avec sudo checkinstall (en remplaçant ce que j'avais , et en créant le package), puis je l'ai désinstallé à l'aide de sudo dpkg -r gdal . Je sais que ce n'est pas la chose la plus élégante, mais cela a fonctionné pour moi.


LISEZ-MOI

OpenTK est un grand projet. Il y a de nombreux composants sur lesquels travailler, et nous accueillons presque toutes les contributions. La communauté est amicale, accueillante et toujours prête à vous aider à fusionner vos PR !

Nous avons un serveur discord très actif, si vous avez besoin d'aide, si vous voulez aider, ou si vous êtes simplement curieux, venez nous rejoindre !

La bibliothèque Open Toolkit est une liaison C# rapide et de bas niveau pour OpenGL, OpenGL ES, OpenAL et OpenCL. Il fonctionne sur toutes les principales plates-formes et alimente des centaines d'applications, de jeux et de recherches scientifiques.

Utilisez OpenTK pour ajouter des graphiques 3D multiplateformes, de l'audio, du calcul et de l'haptique à votre application C#. Intégrez-le dans votre interface utilisateur existante ou utilisez-le de manière autonome sans aucune dépendance externe.

OpenTK est livré avec des didacticiels simples et faciles à suivre pour l'apprentissage moderne OpenGL. Ceux-ci sont rédigés par la communauté et représentent toutes les meilleures pratiques pour vous aider à démarrer.

Apprenez à utiliser OpenTK ici : https://openk.net/learn/index.html

Des exemples de projets qui accompagnent le didacticiel sont disponibles ici : https://github.com/openk/LearnOpenTK


Binaires¶

Dans cette section, nous listons un certain nombre de distributions binaires de GDAL qui devraient toutes avoir des recettes de construction open source entièrement reproductibles.

Les fenêtres¶

Les versions Windows sont disponibles via Conda Forge (64 bits uniquement). Voir la section Conda pour des informations plus détaillées.

Debian¶

Les paquets Debian sont désormais disponibles sur Debian Unstable.

Conda¶

Conda peut être utilisé sur plusieurs plates-formes (Windows, macOS et Linux) pour installer des packages logiciels et gérer des environnements. Les packages Conda pour GDAL sont disponibles sur https://anaconda.org/conda-forge/gdal.

Images Docker Linux¶

Des images avec des versions nocturnes du maître GDAL et des versions étiquetées sont disponibles sur Docker Hub


La plate-forme d'analyse JASMIN (JAP) est un système basé sur Linux contenant de nombreux outils utilisés par les scientifiques de l'atmosphère et de l'observation de la Terre pour analyser les données. CEDA maintient un ensemble de RPM compatibles avec Red Hat Enterprise Linux 6 et CentOS 6.4, ce qui réduit radicalement les frais généraux d'installation de ces outils d'analyse. La plate-forme d'analyse JASMIN est installée sur toutes les VM d'analyse partagées au sein de l'infrastructure JASMIN et peut être installée sur une VM dédiée sur demande.

REMARQUE : Le JAP sera remplacé par « Jaspy ». Voir plus de détails sur les environnements Jaspy et Python 3.

REMARQUE: Si vous utilisez Matplotlib pour visualiser les données veuillez vous référer aux conseils sur notre page d'aide Matplotlib.

Demander des mises à jour de packages dans le JAP

Vous pouvez demander des logiciels supplémentaires ou mis à jour via l'un des mécanismes suivants :

  • Créez un nouveau problème sur JAP Issues sur GitHub (voir le bouton en haut à droite). Vous devrez créer un compte GitHub (gratuitement). Pour recevoir des mises à jour par e-mail, vous pouvez choisir de "s'abonner" au ticket (et/ou aux tickets créés par d'autres personnes). Veuillez noter que tous les billets sont publics.
  • Si vous ne souhaitez pas créer de compte GitHub ou si vous souhaitez fournir des informations non publiques supplémentaires, vous pouvez contacter le service d'assistance CEDA, et nous créerons un ticket GitHub en votre nom et vous communiquerons son URL. Veuillez noter que vous devrez peut-être vérifier le ticket pour d'autres mises à jour.

Une fois que vous avez créé un ticket, nous nous efforcerons de fournir le logiciel si possible et approprié, mais il y aura probablement un retard jusqu'à notre prochaine version de la plate-forme d'analyse JASMIN. Nous n'installons normalement pas de packages individuels sur les serveurs opérationnels en dehors des mises à jour JAP annoncées (afin de maintenir l'environnement logiciel aussi prévisible que possible pour les utilisateurs), mais il existe parfois des itinéraires pour vous permettre de commencer à utiliser le package avant de les installer sur ces systèmes :

  • Si votre demande concerne un package Python, veuillez consulter nos instructions sur la façon de créer le package dans un environnement virtuel dans votre espace fichier personnel.
  • Dans certaines situations, nous serons heureux d'installer le package pour vous sur la machine de test jasmin-sci1-test.ceda.ac.uk , espérons-le peu de temps après votre demande et peut-être quelque temps avant qu'il ne soit inclus dans la plate-forme d'analyse JASMIN. Les utilisateurs peuvent se connecter à cette machine, mais elle dispose de moins de mémoire que les serveurs opérationnels, veuillez donc l'utiliser uniquement pour exécuter des logiciels que nous installons pour vous sur cette base.

Bien que nous décidions au cas par cas d'installer ou non un paquet sur jasmin-sci1-test avant une mise à jour JAP, nous serions généralement heureux de le faire s'il est disponible à partir des référentiels RPM standard (en particulier si il s'agit d'un nouveau package plutôt que d'une mise à niveau), mais pas si nous devons le construire nous-mêmes. Les RPM pour les packages Python sont construits par CEDA, donc pour ceux-ci, veuillez vous référer à l'option précédente sur les environnements virtuels.


Commanditaires

OSGéo
LISAsoft
GLACE UCD
NTUA
DebianGIS OSDM
okeanos

Et nous aimerions également remercier les contributions des sponsors et des organisations de soutien : la Fondation OSGeo, LISAsoft, le Centre d'information pour l'environnement de l'Université de Californie, le Laboratoire de télédétection de l'Université technique nationale d'Athènes, DebianGIS et UbuntuGIS projets et l'Office of Spatial Data Management du gouvernement australien.