Suite

Installer GDAL sur CentOS ?

Installer GDAL sur CentOS ?


J'ai des problèmes avec l'installation de GDAL sur une nouvelle installation de Centos7 à l'aide du référentiel ELGIS. Voici mes commandes et ma sortie :

sudo rpm -Uvh http://elgis.argeo.org/repos/6/elgis-release-6-6_0.noarch.rpm sudo yum install -y gdal

Voici les erreurs de la console :

--> Erreur de résolution des dépendances terminée : Package : gdal-1.9.2-4.el6.x86_64 (elgis) Requiert : libCharLS.so.1()(64bit) Erreur : Package : gdal-libs-1.9.2-4. el6.x86_64 (elgis) Nécessite : libhdf5.so.6()(64bit) Erreur : Package : gdal-1.9.2-4.el6.x86_64 (elgis) Nécessite : libnetcdf.so.6()(64bit) Erreur : Paquet : gdal-libs-1.9.2-4.el6.x86_64 (elgis) Nécessite : libdap.so.11()(64bit) Erreur : Paquet : gdal-libs-1.9.2-4.el6.x86_64 (elgis) Nécessite : libdapclient.so.3()(64bit) Erreur : Package : gdal-libs-1.9.2-4.el6.x86_64 (elgis) Nécessite : libxerces-c-3.0.so()(64bit) Erreur : Package : gdal-1.9.2-4.el6.x86_64 (elgis) Nécessite : libdapclient.so.3()(64bit) Erreur : Package : gdal-1.9.2-4.el6.x86_64 (elgis) Nécessite : libhdf5.so. Erreur 6()(64bit) : Package : gdal-libs-1.9.2-4.el6.x86_64 (elgis) Nécessite : libCharLS.so.1()(64bit) Erreur : Package : gdal-1.9.2-4. el6.x86_64 (elgis) Nécessite : libmysqlclient.so.16()(64bit) Erreur : Package : gdal-libs-1.9.2-4.el6.x86_64 (elgis) Nécessite : libdapserver.so.7()(64bit) Erreur : Paquet : gdal -libs-1.9.2-4.el6.x86_64 (elgis) Nécessite : libfreexl.so.1()(64bit) Erreur : Package : gdal-1.9.2-4.el6.x86_64 (elgis) Nécessite : libxerces-c -3.0.so()(64bit) Erreur : Package : gdal-libs-1.9.2-4.el6.x86_64 (elgis) Nécessite : libmysqlclient.so.16()(64bit) Erreur : Package : gdal-libs-1.9 .2-4.el6.x86_64 (elgis) Nécessite : libcfitsio.so.0()(64bit) Erreur : Package : gdal-1.9.2-4.el6.x86_64 (elgis) Nécessite : libpoppler.so.5() (64 bits) Erreur : Package : gdal-libs-1.9.2-4.el6.x86_64 (elgis) Nécessite : libgta.so.0()(64bit) Erreur : Package : gdal-1.9.2-4.el6.x86_64 (elgis) Requiert : libcfitsio.so.0()(64bit) Erreur : Package : gdal-libs-1.9.2-4.el6.x86_64 (elgis) Requiert : libnetcdf.so.6()(64bit) Erreur : Package : gdal-libs-1.9.2-4.el6.x86_64 (elgis) Nécessite : libmysqlclient.so.16(libmysqlclient_16)(64bit) Erreur : Package : gdal-1.9.2-4.el6.x86_64 (elgis) Nécessite : libdapserver.so.7()(64bit) Erreur : Package : gdal-libs-1.9.2-4.el6.x86_64 (elgis) Nécessite : libarmadillo.so.3()(64bit) Erreur : Package : gdal-1.9. 2-4.el6.x86_64 (elg is) Requiert : libgta.so.0()(64bit) Erreur : Package : gdal-1.9.2-4.el6.x86_64 (elgis) Requiert : libfreexl.so.1()(64bit) Erreur : Package : gdal- 1.9.2-4.el6.x86_64 (elgis) Nécessite : libdap.so.11()(64bit) Erreur : Package : gdal-1.9.2-4.el6.x86_64 (elgis) Nécessite : libarmadillo.so.3( )(64bit) Erreur : Package : gpsbabel-1.4.4-1.el6.x86_64 (elgis) Nécessite : libshp.so.1()(64bit) Erreur : Package : gdal-libs-1.9.2-4.el6. x86_64 (elgis) Nécessite : libpoppler.so.5()(64bit)

Y a-t-il un autre dépôt que je dois installer pour que cela fonctionne ?


ELGIS requiert EPEL (voir https://fedoraproject.org/wiki/EPEL/FAQ#howtouse for EPEL).

Cependant, je ne suis pas sûr que vous souhaitiez vraiment utiliser ELGIS 6 sur CentOS 7. Il est destiné à RHEL 6 / CentOS 6 / Scientific Linux 6.

Au lieu de cela, vous voudrez probablement simplement utiliser EPEL pour CentOS 7 pour quelque chose comme GDAL. EPEL 7 a GDAL 1.11.0, qui n'est pas tout à fait le plus récent, mais qui est certainement plus récent que le 1.9.2 que vous essayez d'installer.


Pour ceux qui découvrent EPEL, vous devez d'abord installer EPEL. Vous pouvez l'activer pour de bon, cela dépend de vous :)

yum -y install epel-release yum install --enablerepo=epel gdal

Si ce n'est pas un dépôt miam régulier, je recherche sur Internet "centos 7 'libraryname'" et si c'est sur EPEL, le résultat apparaît généralement. Ou je visite le référentiel EPEL et recherche ici, généralement leurs noms de bibliothèque sont raccourcis. Vous pouvez également rechercher le référentiel dans la ligne de commande.


2 réponses 2

La plupart des bibliothèques manquantes nécessaires semblent se trouver dans le référentiel EPEL. Je n'ai aucune idée de la raison pour laquelle PostgreSQL voudrait les fournir séparément, ainsi que les anciennes versions.

Au-delà de cela, il semble que quelque chose ne va pas avec vos référentiels de base CentOS. Par exemple, perl-DBD-Pg est situé dans le référentiel de base, mais votre copie de yum ne l'a pas trouvé pour une raison quelconque. Je suppose que cPanel les a probablement cassés, ainsi que tous les autres éléments qu'il casse.

Donc, je commencerais par installer le référentiel EPEL et vérifierais les autres référentiels pour m'assurer que vous obtenez réellement la base et les mises à jour CentOS. Après ça, je verrais ce qui est encore cassé, et partirais de là.


Erreurs lors de l'installation de rgdal dans RStudio 1.1 sur Ubuntu 16.04

* installation la source paquet 'rgdal' .
** package 'rgdal' décompressé avec succès et sommes MD5 vérifiées configurez : CC : /home/name/anaconda3/bin/x86_64-conda_cos6-linux-gnu-cc
configurer : CXX : /home/name/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++
configurer : rgdal : 1.2-16
vérifier /usr/bin/svnversion. Oui
configurer : svn révision : 701
vérification de gdal-config. /home/nom/anaconda3/bin/gdal-config
vérifier la convivialité de gdal-config. Oui
configurer : GDAL : 2.2.2
vérification de la version GDAL >= 1.6.3. Oui
vérification de gdal : liaison avec --libs uniquement. non
vérification de gdal : liaison avec --libs et --dep-libs. non
./configure : ligne 1916 : /home/name/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ : aucun fichier ou répertoire de ce type
./configure : ligne 1931 : /home/name/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ : aucun fichier ou répertoire de ce type
configure : Échec de l'installation : problèmes de compilation et/ou de liaison.
configure : erreur : GDALAllRegister introuvable dans libgdal.
ERREUR : la configuration a échoué pour le package « rgdal »
* suppression de ‘/home/name/anaconda3/lib/R/library/rgdal’
Avertissement dans install.packages :
l'installation du paquet 'rgdal' avait un statut de sortie différent de zéro

Les packages sources téléchargés sont dans
‘/tmp/RtmpIDuQu3/downloaded_packages’
Mise à jour de l'index HTML des packages dans '.Library'
Faire 'packages.html' . terminé

Je viens d'installer gdal et libgdal, ils devraient donc être à jour. Comment corriger ces erreurs ?


Rasterio Version 1.2.6

Les systèmes d'information géographique utilisent GeoTIFF et d'autres formats pour organiser et stocker des ensembles de données maillées ou raster. Rasterio lit et écrit ces formats et fournit une API Python basée sur des tableaux N-D.

Rasterio 1.2 fonctionne avec les versions Python 3.6 à 3.9, les versions Numpy 1.15 et plus récentes et les versions GDAL 2.3 à 3.2. Les packages binaires officiels pour Linux et Mac OS X sont disponibles sur PyPI. Des packages binaires non officiels pour Windows sont disponibles via d'autres canaux.

Lisez la documentation pour plus de détails : https://rasterio.readthedocs.io/.

Voici un exemple de certaines fonctionnalités de base fournies par Rasterio. Trois bandes sont lues à partir d'une image et moyennées pour produire quelque chose comme une bande panchromatique. Ce nouveau groupe est ensuite écrit sur un nouveau single band TIFF.

Rasterio donne accès aux propriétés d'un fichier raster géospatial.

Un jeu de données rasterio fournit également des méthodes pour obtenir des tranches de tableau étendues en fonction des coordonnées géoréférencées.

L'interface de ligne de commande de Rasterio, nommée "rio", est documentée sur cli.rst. Sa commande rio insp ouvre le capot de n'importe quel jeu de données raster afin que vous puissiez fouiller en utilisant Python.

Rio offre la possibilité de créer des sous-commandes à l'aide de plugins. Voir cli.rst pour plus d'informations sur la création de plugins.

Consultez le registre des plugins pour une liste des plugins disponibles.

Veuillez installer Rasterio dans un environnement virtuel afin que ses exigences ne perturbent pas le Python de votre système.

Les roues Linux sur PyPI sont construites sur CentOS et libcurl s'attend à ce que les certificats soient dans /etc/pki/tls/certs/ca-bundle.crt. Les certificats d'Ubuntu, par exemple, se trouvent dans un emplacement différent. Vous devrez peut-être utiliser la variable d'environnement CURL_CA_BUNDLE pour spécifier l'emplacement des certificats SSL sur votre ordinateur. Sur un système Ubuntu, définissez la variable comme indiqué ci-dessous.

Rasterio a une dépendance à la bibliothèque C : GDAL >= 2.3. GDAL lui-même dépend d'autres bibliothèques fournies par la plupart des principaux systèmes d'exploitation et dépend également des bibliothèques non standard GEOS et PROJ4. Comment répondre à ces exigences sera expliqué ci-dessous.

Les dépendances Python de Rasterio sont répertoriées dans son fichier requirements.txt.

Le développement nécessite également (voir requirements-dev.txt) Cython et d'autres packages.

Utilisez si possible des distributions binaires qui fournissent directement ou indirectement GDAL.

Les distributions Rasterio sont disponibles sur UbuntuGIS et le canal conda-forge d'Anaconda.

De nombreuses roues linux1 sont disponibles sur PyPI.

Les distributions binaires avec les bibliothèques GDAL, GEOS et PROJ4 incluses sont disponibles pour les versions OS X 10.9+. Pour installer, exécutez pip install rasterio . Ces roues binaires sont préférées par les nouvelles versions de pip.

Si vous ne voulez pas ces roues et que vous souhaitez installer à partir d'une distribution source, exécutez pip install rasterio --no-binary rasterio à la place.

La bibliothèque GDAL incluse est assez minime, ne fournissant que les pilotes de format fournis avec GDAL et activés par défaut. Pour accéder à plus de formats, vous devez construire à partir d'une distribution source (voir ci-dessous).

Les roues binaires pour rasterio et GDAL sont créées par Christoph Gohlke et sont disponibles sur son site Web.

Pour installer rasterio, téléchargez simplement les deux binaires pour votre système (rasterio et GDAL) et exécutez quelque chose comme ceci à partir du dossier de téléchargement, en ajustant votre version Python.

Vous pouvez également installer rasterio avec conda en utilisant le canal conda-forge d'Anaconda.

Rasterio est une extension Python C et pour construire, vous aurez besoin d'un compilateur fonctionnel (XCode sur OS X, etc.). Vous aurez également besoin que Numpy soit préinstallé. Les en-têtes Numpy sont nécessaires pour exécuter le script de configuration rasterio. Numpy doit être installé (via le fichier d'exigences indiqué) avant que rasterio puisse être installé. Voir la configuration Travis de rasterio pour plus de conseils.

Les commandes suivantes sont adaptées de la configuration Travis-CI de Rasterio.

Adaptez-les si nécessaire à votre système Linux.

Pour un environnement Python basé sur Homebrew, procédez comme suit.

Vous pouvez télécharger une distribution binaire de GDAL ici. Vous devrez également télécharger les bibliothèques et les en-têtes compilés (fichiers inclus).

Lors de la construction à partir des sources sous Windows, il est important de savoir que setup.py ne peut pas s'appuyer sur gdal-config, qui n'est présent que sur les systèmes UNIX, pour découvrir les emplacements des fichiers d'en-tête et des bibliothèques dont rasterio a besoin pour compiler ses extensions C. Sous Windows, ces chemins doivent être fournis par l'utilisateur. Vous devrez trouver les fichiers d'inclusion et les fichiers de bibliothèque pour gdal et utiliser setup.py comme suit. Vous devrez également spécifier la version de gdal installée via la variable d'environnement GDAL_VERSION.

Remarque : --no-use-pep517 est requis car pip n'a actuellement pas implémenté de moyen pour que les arguments facultatifs soient transmis au backend de construction lors de l'utilisation de PEP 517. Voir ici pour plus de détails.

Alternativement, les variables d'environnement (par exemple, INCLUDE et LINK) utilisées par le compilateur MSVC peuvent être utilisées pour pointer pour inclure des répertoires et des fichiers de bibliothèque.

Nous avons réussi à compiler du code en utilisant la même version de Visual Studio de Microsoft utilisée pour compiler la version ciblée de Python (plus d'informations sur les versions utilisées ici.).

Remarque : la DLL GDAL et le répertoire gdal-data doivent se trouver dans votre PATH Windows, sinon rasterio ne fonctionnera pas.

Le forum principal pour les questions sur l'installation et l'utilisation de Rasterio est https://rasterio.groups.io/g/main. Les auteurs et les autres utilisateurs répondront aux questions lorsqu'ils auront une expertise à partager et du temps pour expliquer. Veuillez prendre le temps de rédiger une question claire et soyez patient quant aux réponses.

Veuillez ne pas apporter ces questions à l'outil de suivi des problèmes de Rasterio, que nous souhaitons réserver pour les rapports de bogues et autres problèmes pouvant donner lieu à une action.


Installer GDAL sur CentOS ? - Systèmes d'information géographique

Fiona lit et écrit des fichiers de données géographiques et aide ainsi les programmeurs Python à intégrer les systèmes d'information géographique avec d'autres systèmes informatiques. Fiona contient des modules d'extension qui relient la bibliothèque d'abstraction de données géospatiales (GDAL).

Fiona est conçue pour être simple et fiable. Il se concentre sur la lecture et l'écriture de données dans le style Python IO standard et s'appuie sur des types et des protocoles Python familiers tels que des fichiers, des dictionnaires, des mappages et des itérateurs au lieu de classes spécifiques à l'implémentation de référence OpenGIS (OGR) de GDAL. Fiona peut lire et écrire des données du monde réel à l'aide de formats SIG multicouches et de systèmes de fichiers virtuels compressés et s'intègre facilement avec d'autres packages SIG Python tels que pyproj, Rtree et Shapely.

Fiona est pris en charge uniquement sur les versions CPython 3.6+.

Pourquoi le nom « Fiona » ? Parce que Fiona est l'API soignée et agile d'OGR pour les programmeurs Python. Et une référence à Shrek nous a fait rire.

Les enregistrements sont lus et écrits dans des objets Collection de type fichier renvoyés par la fonction fiona.open(). Les enregistrements sont des mappages modélisés sur le format GeoJSON. Ils n'ont pas de méthodes spatiales propres, donc si vous voulez faire quelque chose de fantaisie avec eux, vous aurez probablement besoin de Shapely ou quelque chose comme ça. Voici un exemple d'utilisation de Fiona pour lire certains enregistrements d'un fichier de données, modifier leurs attributs de géométrie et les écrire dans un nouveau fichier de données.

Les collections peuvent également être constituées de couches uniques dans des fichiers ou des répertoires de données multicouches. La couche cible est spécifiée par son nom ou par son index entier dans le fichier ou le répertoire. La fonction fiona.listlayers() fournit une liste classée par index des noms de couches.

La couche peut également être spécifiée par index. Dans ce cas, layer=0 et layer='test_uk' spécifient la même couche dans le fichier de données ou le répertoire.

Les données multicouches peuvent également être écrites. Les calques doivent être spécifiés par leur nom lors de l'écriture.

Une vue du répertoire /tmp/foo confirmera la création des nouveaux fichiers.

Collections d'archives et de systèmes de fichiers virtuels

Les archives Zip et Tar peuvent être traitées comme des systèmes de fichiers virtuels et des collections peuvent être créées à partir de chemins et de couches qu'elles contiennent. En d'autres termes, Fiona vous permet de lire et d'écrire des Shapefiles compressés.

Fiona peut également lire à partir de systèmes de fichiers plus exotiques. Par exemple, un fichier de forme compressé dans S3 est accessible comme suit :

L'interface de ligne de commande de Fiona, nommée "fio", est documentée sur docs/cli.rst. Ses informations fio impriment des informations sur un fichier de données.

Fiona nécessite les versions Python 3.6+ et GDAL 1.11-3. 0. Pour construire à partir d'une distribution source, vous aurez besoin d'un compilateur C et d'en-têtes et de bibliothèques de développement GDAL et Python (libgdal1-dev pour Debian/Ubuntu, gdal-dev pour CentOS/Fedora).

Pour créer à partir d'une copie du référentiel, vous aurez également besoin de Cython pour créer des sources C à partir des fichiers .pyx du projet. Consultez le fichier requirements-dev.txt du projet pour obtenir des conseils.

Les frameworks Kyngchaos GDAL satisferont la dépendance GDAL/OGR pour OS X, tout comme la formule GDAL de Homebrew ( brew install gdal ).

Fiona dépend des modules six , cligj et munch . Pip récupérera ces exigences pour vous, mais les utilisateurs qui installent Fiona à partir d'un programme d'installation Windows doivent les obtenir séparément.

En supposant que vous utilisez un virtualenv (sinon, passez à la 4ème commande) et que les bibliothèques GDAL/OGR, les en-têtes et le programme gdal-config sont installés à des emplacements bien connus sur votre système via le gestionnaire de paquets de votre système (brew install gdal en utilisant Homebrew sur OS X), l'installation est aussi simple que cela.

Si gdal-config n'est pas disponible ou si les en-têtes et les bibliothèques GDAL/OGR ne sont pas installés dans un emplacement bien connu, vous devez définir les options include dirs, library dirs et library via le fichier setup.cfg ou la ligne de commande de configuration comme indiqué ci-dessous (en utilisant git ). Vous devez également spécifier la version de l'API GDAL sur la ligne de commande en utilisant l'argument --gdalversion (voir exemple ci-dessous) ou avec la variable d'environnement GDAL_VERSION (par exemple export GDAL_VERSION=2.1 ).

Ou spécifiez que les options de construction et la version de l'API GDAL doivent être fournies par un programme gdal-config particulier.

Les installateurs binaires sont disponibles sur http://www.lfd.uci.edu/

gohlke/pythonlibs/#fiona et arrivera finalement à PyPI.

Vous pouvez télécharger une distribution binaire de GDAL ici. Vous devrez également télécharger les bibliothèques et les en-têtes compilés (fichiers inclus).

Lors de la construction à partir des sources sous Windows, il est important de savoir que setup.py ne peut pas s'appuyer sur gdal-config, qui n'est présent que sur les systèmes UNIX, pour découvrir les emplacements des fichiers d'en-tête et des bibliothèques dont Fiona a besoin pour compiler ses extensions C. Sous Windows, ces chemins doivent être fournis par l'utilisateur. Vous devrez trouver les fichiers d'inclusion et les fichiers de bibliothèque pour gdal et utiliser setup.py comme suit. Vous devez également spécifier la version de l'API GDAL sur la ligne de commande en utilisant l'argument --gdalversion (voir l'exemple ci-dessous) ou avec la variable d'environnement GDAL_VERSION (par exemple, définissez GDAL_VERSION=2.1 ).

Remarque : la DLL GDAL ( gdal111.dll ou similaire) et le répertoire gdal-data doivent se trouver dans votre PATH Windows, sinon Fiona ne fonctionnera pas.

La version Appveyor CI utilise les binaires GISInternals GDAL pour construire Fiona. Cela produit une roue binaire pour les constructions réussies, qui inclut GDAL et d'autres dépendances, pour les utilisateurs souhaitant essayer une version de développement instable. Le fichier de configuration Appveyor peut être un exemple utile pour les utilisateurs qui créent à partir de la source sur Windows.

Construire à partir de la source nécessite Cython. Les tests nécessitent pytest. Si les bibliothèques GDAL/OGR, les en-têtes et le programme gdal-config sont installés à des emplacements bien connus sur votre système (via le gestionnaire de paquets de votre système), vous pouvez faire ceci :

Ou vous pouvez utiliser le script pep-518-install :

Si vous avez un environnement non standard, vous devrez spécifier les répertoires include et lib et la bibliothèque GDAL sur la ligne de commande :


Installer GDAL sur CentOS ? - Systèmes d'information géographique

Lisez et écrivez des ensembles de données géospatiales raster et vectorielles directement à partir de Node.js avec cette liaison GDAL asynchrone native. Pour commencer, parcourez le Documentation API ou des exemples.

En cas de doute sur l'utilisation d'une méthode, vérifiez également les tests unitaires.

Il ajoute un certain nombre de fonctionnalités :

  • Prise en charge des E/S asynchrones (depuis 3.0)
  • Prise en charge native complète de TypeScript avec l'autocomplétion dans les IDE qui le prennent en charge (depuis 3.1)
  • Prise en charge réseau intégrée avec prise en charge native des services cloud (depuis 3.2)
  • intégration scijs/ndarray avec E/S zéro copie (depuis 3.3)
  • Prise en charge en lecture seule du nouveau modèle de données raster multidimensionnel de GDAL 3.1 (depuis 3.3)
  • Prise en charge des géométries de courbe (depuis 3.1)
  • Rappels de progression (depuis 3.2)
  • Prise en charge intégrée de HDF5, NetCDF, GRIB, WMS, WMTS, WCS et FlatGeobuf (depuis 3.3)
  • De nombreuses corrections de bugs, y compris un certain nombre de fuites de mémoire

L'installation par défaut est actuellement la branche 3.2 qui est fournie avec GDAL 3.2.3. La branche 3.3, qui introduit un certain nombre de changements importants, et est fournie avec GDAL 3.3.0, est disponible en installant [email protected] .

Le support de worker_threads est prévu mais ce n'est pas un projet prioritaire

Des binaires pré-construits sont fournis pour les distributions Linux les plus récentes, Windows 64 bits et OS X 10.15 :

Liaison avec votre propre version de GDAL

Par défaut, toutes les dépendances sont les dernières versions et sont livrées prêtes à l'emploi, mais si vous souhaitez établir un lien avec une bibliothèque GDAL personnalisée, vous devrez la reconstruire lors de l'installation en utilisant les indicateurs suivants :

Si vous avez plusieurs versions de GDAL ou que votre bibliothèque n'est pas à son emplacement standard, vous pouvez utiliser les variables CXXFLAGS et LDFLAGS habituelles :

Le mélange d'opérations synchrones et asynchrones est pris en charge.

Mélange d'opérations synchrones et asynchrones

Les opérations simultanées sur des objets de jeu de données distincts sont toujours sûres et peuvent être exécutées en parallèle.

Les opérations simultanées sur le même objet de jeu de données sont également sûres, mais elles ne s'exécuteront pas en parallèle. Il s'agit d'une limitation de GDAL. La seule façon d'avoir plusieurs opérations parallèles sur le même fichier est d'utiliser plusieurs objets de jeu de données. Gardez à l'esprit que Node.js/libuv ne sera pas en mesure de détecter quels contextes asynchrones sont en attente les uns des autres, donc si vous lancez 16 opérations simultanées sur 4 ensembles de données différents, il y a toujours une chance que libuv sélectionne 4 opérations sur le même ensemble de données à exécuter - ce qui prendra les 4 emplacements du pool de threads. Il est recommandé d'augmenter UV_THREADPOOL_SIZE ou de s'assurer que chaque ensemble de données a exactement une opération en cours d'exécution à un moment donné. Jetez un œil à ASYNCIO.md qui explique cela en détail.

Soyez également particulièrement prudent lorsque vous mélangez des opérations synchrones et asynchrones dans le code serveur. Si une opération GDAL s'exécute en arrière-plan pour un ensemble de données donné, toutes les opérations synchrones sur ce même ensemble de données sur le thread principal bloqueront la boucle d'événements jusqu'à ce que l'opération en arrière-plan soit terminée. Cela inclut les getters et setters synchrones qui pourraient autrement être instantanés.. Il est recommandé de récupérer toutes les valeurs telles que la taille du raster ou aucune valeur de données ou référence spatiale avant démarrer toutes les opérations d'E/S.

Ne prend pas encore en charge worker_threads

HDF5 sous Windows n'est pas thread-safe

Si le dernier argument d'une fonction xxxAsync est un rappel, il sera appelé à la fin avec standard (e,r) sémantique

Dans ce cas, la fonction renverra un résolu Promettre

S'il n'y a pas de rappel, la fonction renverra un Promettre

TypeScript (à partir de 3.1)

La prise en charge de TypeScript est disponible à partir de [email protected]

Dans TypeScript, gdal est une collection d'exportations nommées - car c'est le moyen préféré d'importer un module natif dans TypeScript et il n'impose pas l'utilisation de l'indicateur esModuleInterop.

Lors de l'importation à partir d'un environnement dit Michael Jackson Script (modules ES6 natifs de Node.js), la syntaxe d'importation correcte est :

Dans MJS, gdal est une exportation par défaut - car cela permet une compatibilité maximale avec les applications CJS existantes.

Mise en réseau intégrée (à partir de 3.2)

La mise en réseau intégrée utilise une version intégrée de libcurl . Il prend en charge la compression zlib via le support zlib de Node.js. Il ne prend pas en charge brotli ou zstd . Node.js inclut brotli , mais à partir de Node.js 16, il n'exporte toujours pas ces symboles pour une utilisation par les modules complémentaires (oui, allez les bug - demandez-leur aussi c-ares). SSL sur Linux utilise OpenSSL via le propre support de Node.js. Il utilise le magasin de l'autorité de certification racine de confiance curl par défaut et un autre magasin peut être fourni via la variable d'environnement CURL_CA_BUNDLE ou l'option de configuration GDAL. SSL sur Windows et OSX utilise les mécanismes fournis par le système d'exploitation - Schannel et SecureTransport respectivement - et donc le magasin CA racine de confiance sera celui fourni par le système d'exploitation.

Rupture des changements relatifs à node-gdal / node-gdal-next

Si vous venez de node-gdal-next

  • À partir de 3.2
    • gdal.Geometry.fromGeoJson renvoie désormais une erreur en cas d'erreur au lieu de simplement renvoyer une géométrie nulle
    • Abandon de la prise en charge de la liaison avec une bibliothèque GDAL 1.x partagée
    • Abandon de la prise en charge d'Ubuntu 16.04 et équivalent, Ubuntu 18.04 est la nouvelle cible de référence
    • Abandon de la prise en charge de Node.js 10.x et 15.x
    • gdal.DatasetBands.get() renvoie désormais une erreur si une bande invalide est demandée au lieu de renvoyer un objet null
    • gdal.DatasetLayers.get() renvoie désormais une erreur si un calque invalide est demandé au lieu de renvoyer un objet nul
    • gdal.FeatureDefnFields.get() renvoie désormais une erreur si une définition de champ non valide est demandée au lieu de renvoyer un objet null
    • gdal.FeatureFields.get() renvoie désormais une erreur si une fonctionnalité non valide est demandée au lieu de renvoyer un objet nul
      • il peut toujours retourner null si le champ existe dans la définition mais il n'est pas défini dans la fonctionnalité

      Si vous venez de node-gdal , en plus de tout ce qui précède

      • Avec PROJ 6+, l'ordre des coordonnées pour les systèmes de référence de coordonnées géographiques EPSG est la latitude en premier, la longitude en second. Si vous ne souhaitez pas apporter de modifications importantes au code, vous pouvez remplacer le code comme gdal.SpatialReference.fromEPSG(4326) par gdal.SpatialReference.fromProj4('+init=epsg:4326')

      La branche 3.2 de gdal-async est compatible avec ndarray de scijs , mais le tableau doit être dans une foulée de ligne majeure positive/positive.

      Un plugin séparé ndarray-gdal permet des E/S sans copie, avec un entrelacement soutenu par GDAL en C++ à l'aide d'instructions SIMD, pour toutes les foulées 2D possibles. Le plugin nécessite [email protected] et il n'est pas compatible avec la branche [email protected]

      Lors de l'utilisation de la version GDAL fournie, les pilotes suivants seront disponibles : AAIGrid , ACE2 , ADRG , AIG , AVCBin , AVCE00 , AirSAR , BLX , BMP , BT , carto , CEOS , COASP , COSAR , CPG , CSV , CTG , CTable2 , DGN , DIMAP , DIPEx , DOQ1 , DOQ2 , DTED , DXF , ECRGTOC , EDIGEO , EHdr , EIR , ELAS , ENVI , ERS , ESAT , ESRI Shapefile , MapInfo File , MBTiles , FAST , Gobuf , FlatG GPSBabel , GPSTrackMaker , GPX , GRASSASCIIGrid , GRIB , GS7BG , GSAG , GSBG , GSC , GTX , GTiff , GenBin , GeoJSON , GeoRSS , Geoconcept , GPKG , HDF5 , HF2 , I, HFA , SIS3, SIS , RIS Idrisi , JAXAPALSAR , JDEM , JPEG , KMLSUPEROVERLAY , KML , KRO , L1B , LAN , LCP , LOSLAS , Niveleur , MAP , MEM , Mémoire , MFF2 , MFF , MITAB , MVT , NDF , NetCDFID , WT_SGNIEOID, WT NGRC2 NWT_GRD , OGR_GMT , OGR_PDS , OGR_SDTS , OGR_VRT , OSM , OpenFileGDB , Paux , PCIDSK , PDS , PGDUMP , PNG , PNM , REC , RMF , ROI_PAC , RPFTOC , RS2 , SGA , RST 57 EOS , SDTS , SGI , SNODAS , SQLite , SRP , SRTMHGT , SVG , SXF , TIL , TSX , Terragen , UK .NTF , USGSDEM , VICAR , VRT , vsiaz , vsicurl , vsigs , vsigzip , vsisP WCS , WMS , WMTS , XPM , XYZ , ZMap

      Lors de la compilation avec un GDAL partagé installé sur le système, tous les pilotes et projections pris en charge par celui-ci doivent également être pris en charge par gdal-async .

      Cette reliure est à l'origine le produit d'une collaboration entre Natural Atlas et Mapbox. Ses contributeurs sont Brandon Reavis, Brian Reavis, Dane Springmeyer, Zac McCormick et d'autres.

      node-gdal-next est maintenu par @contra.

      Les liaisons asynchrones, les géométries de courbe, la prise en charge de TypeScript, la mise en réseau intégrée et le modèle raster multidimensionnel sont de @mmomtchev qui est le mainteneur actuel.

      Avant de soumettre des demandes d'extraction, veuillez mettre à jour les tests et vous assurer qu'ils réussissent tous.

      Sous licence Apache, version 2.0 (la "Licence"), vous ne pouvez pas utiliser ce fichier sauf en conformité avec la Licence. Vous pouvez obtenir une copie de la licence sur : http://www.apache.org/licenses/LICENSE-2.0

      Sauf si requis par la loi applicable ou convenu par écrit, le logiciel distribué sous la licence est distribué sur une BASE « EN L'ÉTAT », SANS GARANTIE NI CONDITIONS D'AUCUNE SORTE, expresses ou implicites. Consultez la Licence pour connaître la langue spécifique régissant les autorisations et les limitations en vertu de la Licence.

      Plateformes testées unitairement avec des binaires pré-construits

      Les binaires de version avec GDAL pré-construit sont testés par rapport à la matrice complète de :


      Exigences¶

      Python et Django¶

      Étant donné que GeoDjango est inclus avec Django, veuillez vous référer aux instructions d'installation de Django pour plus de détails sur l'installation.

      Base de données spatiale¶

      PostgreSQL (avec PostGIS), MySQL (principalement avec le moteur MyISAM), Oracle et SQLite (avec SpatiaLite) sont les bases de données spatiales actuellement prises en charge.

      PostGIS est recommandé, car il s'agit de la base de données spatiale open source la plus mature et la plus riche en fonctionnalités.

      Les bibliothèques géospatiales requises pour une installation de GeoDjango dépendent de la base de données spatiale utilisée. Ce qui suit répertorie les exigences de la bibliothèque, les versions prises en charge et les notes pour chacun des backends de base de données pris en charge :

      Base de données Exigences de la bibliothèque Versions prises en charge Remarques
      PostgreSQL GEOS, GDAL, PROJ, PostGIS 9.6+ Nécessite PostGIS.
      MySQL GEOS, GDAL 5.7+ Fonctionnalité limitée.
      Oracle GEOS, GDAL 12.2+ XE non pris en charge.
      SQLite GEOS, GDAL, PROJ, SpatiaLite 3.9.0+ Nécessite SpatiaLite 4.3+

      Voir aussi cette matrice de comparaison sur le Wiki OSGeo pour les combinaisons possibles PostgreSQL/PostGIS/GEOS/GDAL.


      Outils de compilation et de configuration nécessaires

      Utilisez votre gestionnaire de packages pour installer les packages suivants :

      • CCG : La collection de compilateurs GNU
      • GCC-C++ : Prise en charge de C++ pour GCC
      • Fabrication automobile : Un outil pour créer automatiquement des Makefiles
      • Autoconf : Un outil pour générer des scripts de configuration
      • Outil de libération : Script de support de bibliothèque générique.

      Vous pouvez utiliser les commandes suivantes pour installer tous les outils nécessaires :


      Codes EPSG désormais disponibles pour GDAL, PROJ et QGIS

      Au début du mois de décembre de l'année dernière, nous avons annoncé l'ajout du Wisconsin Coordinate References Systems (WISCRS) au registre international des paramètres géodésiques EPSG. Les utilisateurs de plusieurs packages open source populaires peuvent désormais utiliser les codes WISCRS EPSG en téléchargeant de nouveaux fichiers de paramètres. Merci à Even Roualt de Spatialys pour la mise à jour des paramètres nécessaires à partir de la dernière base de données EPSG.

      La clause de non-responsabilité standard s'applique, faites toujours une copie de sauvegarde des fichiers avant de les écraser ! Les procédures suivantes ont bien fonctionné pour moi, mais vous avez été prévenu.

      GDAL est une bibliothèque de traduction pour les formats de données géospatiales matricielles et vectorielles qui peuvent être utilisées de manière autonome pour les manipulations de données ou intégrées dans des applications Java, Python, C, C++, Ruby et R.

      Pour mettre à jour GDAL, plusieurs fichiers doivent être téléchargés à partir de la source GDAL sur Github et copiés au bon endroit dans votre installation GDAL. En fonction de votre plate-forme (Windows, OSX, Linux) et de la méthode d'installation utilisée, cet emplacement varie : généralement .gdalgdal-data ou .sharegdal. (Astuce : essayez de rechercher pcs.csv pour trouver le bon endroit.)

      Pour votre commodité, voici un fichier zip contenant les mises à jour nécessaires :

      gdal_data.zip 266,84 Ko (téléchargé depuis la source GDAL le 22/02/2016)

      PROJ.4 est un moteur de projection cartographique utilisé par les développeurs de logiciels. Il simplifie le codage avancé et les mathématiques nécessaires pour gérer les conversions de système de coordonnées. Comme avec GDAL, l'emplacement du fichier contenant les paramètres peut varier, mais recherchez un fichier texte (sans extension) appelé “epsg,” généralement situé à la racine du dossier d'installation de PROJ ou .shareproj.

      epsg.zip 91,69 Ko (téléchargé à partir de la source PROJ.4 le 22/02/2016)

      Étapes supplémentaires pour les utilisateurs de QGIS

      Apprendre à mettre à jour le populaire logiciel de bureau QGIS pour tirer parti des nouveaux codes EPSG s'est transformé en une aventure à laquelle je ne m'attendais pas. Grâce à de nombreuses recherches créatives sur Google et à la lecture de divers forums, j'ai déterminé que le processus impliquait deux étapes : d'abord mettre à jour l'installation de GDAL sur votre système, puis exécuter un exécutable pour synchroniser ces mises à jour avec une base de données de paramètres de coordonnées QGIS interne.

      Parce qu'il existe une variété de méthodes pour installer QGIS, il est difficile de fournir des instructions étape par étape pour chaque scénario.

      Une méthode populaire pour installer à la fois QGIS et GDAL est via OSGeo4W. Si vous avez utilisé cette méthode, récupérez le fichier gdal_data.zip ci-dessus et copiez le contenu décompressé dans .sharegdal.

      Ensuite, ouvrez une invite de commande Windows et accédez à OSGeo4W64appsqgis (ou OSGeo4Wappsqgis si vous avez installé la version 32 bits). Vous devriez voir un programme appelé “crssync.”. Sur mon système, j'ai reçu une erreur DLL manquante lors de la première tentative d'exécution de cryssync.exe. Je suis donc passé au sous-dossier “bin” et j'ai exécuté &# 8220..crssync.exe”. Cela a bien fonctionné dans mon cas.

      Il semble normal que crssync crache quelques erreurs lors de la mise à jour, mais vous devriez voir quelque chose de l'ordre de 830 CRS mis à jour, selon la version de QGIS que vous utilisez. Lancez QGIS et confirmez que vous voyez les paramètres WISCRS.

      Pour les utilisateurs de Mac, le processus est conceptuellement le même, sauf que le contenu de gdal_data.zip doit être décompressé ici :

      puis, passez au dossier suivant dans une fenêtre de terminal et exécutez “sudo ./crssync” :