Suite

Versions de Python et QGIS pour les nouveaux utilisateurs à installer ?

Versions de Python et QGIS pour les nouveaux utilisateurs à installer ?


J'ai utilisé des SIG (fonctions très basiques), mais je souhaite maintenant pouvoir personnaliser selon mes besoins.

Mes premières recherches me portent à croire que Python + QGIS est la voie à suivre.

Je comprends qu'il existe plusieurs plugins qui seront utiles en cours de route, mais je n'ai pas assez de connaissances pour discerner lesquels et s'ils sont tous compatibles avec Python V3.

L'installation se fera sur la machine Windows 7.

Étant donné que j'apprends Python et QGIS pour la première fois, je souhaite utiliser les versions les plus récentes possibles, à condition qu'elles (et leurs plug-ins respectifs) soient compatibles.

Quelles versions de Python et QGIS dois-je, en tant que nouvel utilisateur des deux, installer ?


Les programmes d'installation de QGIS (actuellement 2.4.0) incluent Python 2.7, et certaines parties de QGIS peuvent ne pas fonctionner avec les versions plus récentes : Prise en charge de Python 3 dans QGIS ?

Les développeurs sont toujours satisfaits de Python2 : http://lists.osgeo.org/pipermail/qgis-developer/2012-September/022311.html (bien que cette déclaration ait presque 2 ans… )

L'installation de QGIS fonctionne indépendamment d'une version Python que vous pouvez utiliser en dehors de QGIS.


Je pense que vous devriez simplement télécharger le "programme d'installation autonome" à partir de https://www.qgis.org/en/site/forusers/download.html#windows et l'installer. Au cours du processus d'installation, choisissez les pièces dont vous avez besoin. Je recommande particulièrement d'obtenir les exemples de données.

C'est simple et amusant, alors détendez-vous et profitez-en!


Documentation pour QGIS 3.16¶

Vous recherchez de la documentation sur les versions plus récentes que la version 3.16 à long terme ? Jetez un œil à la documentation des tests.

La documentation QGIS est disponible en plusieurs langues et versions. Développez le menu QGIS Documentation en bas de la barre latérale pour voir la liste.

Bienvenue dans la documentation officielle de QGIS, le logiciel SIG communautaire gratuit et open source ! Si vous êtes nouveau dans cette documentation, la table des matières ci-dessous et dans la barre latérale devrait vous permettre d'accéder facilement à la documentation pour votre sujet d'intérêt. Vous pouvez également utiliser la fonction de recherche dans le coin supérieur gauche.

Outre la documentation en ligne, le projet QGIS fournit également du matériel que vous pouvez télécharger pour une lecture hors ligne. Ils sont accessibles depuis le menu QGIS Documentation en bas de la barre latérale, comme :

Fichiers compressés HTML que vous pouvez extraire et utiliser comme chemins depuis le logiciel

QGIS est un projet open source développé par une communauté de contributeurs. L'équipe de documentation peut toujours utiliser vos commentaires et aider à améliorer les didacticiels et la description des fonctionnalités. Si vous ne comprenez pas quelque chose ou ne trouvez pas ce que vous cherchez dans la documentation, aidez-nous à améliorer la documentation en nous faisant savoir :


J'ai rencontré ce problème sur Ubuntu 18.04 avec QGIS-Madeira 3.4.13 après avoir installé PyQt5. Je ne l'ai pas mis dans un environnement virtuel car je n'avais pas prévu qu'il y aurait des problèmes, il aurait dû écraser PyQt4 et l'ancienne version de sip , car il existe une version spéciale associée à PyQt5. J'ai pu résoudre les problèmes avec QGIS en désinstallant le sip de PyQt5 (et PyQt5, qui peut toujours être réinstallé correctement dans un environnement virtuel), puis en réinstallant sip à l'échelle du système (dans l'environnement dans lequel QGIS le recherche) .

Dans l'exemple ci-dessous, je m'assure d'utiliser le pip Python 3 car j'ai à la fois Python 2 et 3 sur mon système.


4.4. Analyser les données¶

Vous pouvez effectuer une analyse de données spatiales sur des bases de données spatiales et d'autres formats pris en charge par OGR. QGIS propose actuellement des outils d'analyse vectorielle, d'analyse raster, d'échantillonnage, de géotraitement, de géométrie et de gestion de bases de données. Vous pouvez également utiliser les outils GRASS intégrés, qui incluent la fonctionnalité complète de GRASS de plus de 400 modules (voir la section Intégration de GRASS GIS ). Ou, vous pouvez travailler avec le plug-in Processing, qui fournit un puissant cadre d'analyse géospatiale pour appeler des algorithmes natifs et tiers de QGIS, tels que GDAL, SAGA, GRASS, R, etc. (voir la section Introduction ). Toutes les fonctions d'analyse sont exécutées en arrière-plan, ce qui vous permet de continuer votre travail avant la fin du traitement.

Le modeleur graphique vous permet de combiner/chaîner des fonctions en un flux de travail complet dans un environnement graphique intuitif.


1 réponse 1

Il est compatible avec les deux, mais vous devez toujours l'installer pour votre version spécifique de python (j'ai tout le temps ce problème d'avoir des packages installés pour un autre python2.x alors que je pensais l'avoir installé pour python3.x ou l'inverse rond). Habituellement, (si vous exécutez python3.x maintenant), faites quelque chose comme

fait l'affaire. Par "sans retélécharger le module", voulez-vous dire le dossier nltk_data ? Je ne suis pas sûr, mais je pense que cela est placé par défaut dans votre dossier personnel et peut être partagé entre différentes versions de python. Et juste faire une installation pip ne devrait pas prendre trop de temps/il n'y a pas grand chose à télécharger je pense.


Les raisons

Les raisons d'utiliser QGIS comme principal logiciel SIG sont :

1. Liberté et accès

Le fait que QGIS soit gratuit n'est pas sa caractéristique la plus importante, à notre avis. Le plus grand avantage de l'utilisation de QGIS est l'accès et la capacité d'apporter un outil puissant à un grand nombre d'utilisateurs sur n'importe quel type d'ordinateur. Dans un monde en mutation, les décisions basées sur l'analyse des données doivent être prises par des groupes de personnes dans des délais limités. QGIS vous permet de travailler avec des données spatiales, de les partager et de recevoir des opinions de manière rapide et accessible.

Le logiciel n'est pas limité à un seul ordinateur, il peut être utilisé sur n'importe quel ordinateur. Les analyses ne se font pas seulement dans un bureau, mais dans l'ensemble de l'Institution.

Selon sa licence, QGIS est non seulement gratuit en termes de prix, mais il est également libre de le distribuer, de vérifier son code source ou même d'utiliser des parties de QGIS dans d'autres logiciels.

2. Un monde d'options disponibles

QGIS vous offre un monde d'options pour le traitement spatial dès le début et de manière gratuite. Il n'y a aucune limitation dans les outils en ce qui concerne la licence que vous avez.

L'une des raisons pour lesquelles l'auteur de cet article a commencé à utiliser QGIS était qu'il enseignait le SIG et les ressources en eau dans une université disposant d'une licence ArcView. Lorsqu'il s'est rendu compte qu'il ne pouvait pas faire d'interpolations ou d'opérations spatiales, il a décidé d'utiliser QGIS dans le cours.

3. Une bonne conscience

Vous pouvez dire que vous avez une licence ArcGIS au travail, mais en avez-vous une pour votre ordinateur personnel ? Si vous avez les deux, je vous féliciterais pour votre gros investissement et, en même temps, je dirais que vous appartenez à un petit groupe d'utilisateurs formels. La plupart des utilisateurs d'ArcGIS possèdent des licences pirates sur au moins un de leurs ordinateurs.

Utilisez QGIS et gardez la conscience tranquille puisque vous ne faites rien d'illégal, vous pouvez même dire que vous êtes contre le piratage car vous n'utilisez pas de logiciel sous licence.

4. QGIS est développé par des gens très sympas

QGIS est soutenu par une communauté constituée de personnes qui développent des codes et qui en sont passionnées. Vous pouvez suivre leurs blogs et comptes sociaux, découvrir les nouveaux outils qu'ils développent, à quelle réunion ils ont assisté ou même leur poser des questions.

Aucun des développeurs QGIS ne reçoit de paiement monétaire pour son temps, ils travaillent tous parce qu'ils aiment leur travail et le font très bien. L'argent que QGIS reçoit sert à améliorer le logiciel et à le partager.

5. Plus de vitesse et de performances

QGIS, par rapport à ArcGIS, se charge plus rapidement et exécute les processus en moins de temps.

Dans les cas de géotraitement comme ceux montrés ici et ici, QGIS exécute les processus plus rapidement qu'ArcGIS. Cela est dû à sa structure interne.

6. QGIS et les composants associés sont gratuits

Lorsque vous trouvez des outils basés sur ou fonctionnant avec QGIS, ils sont généralement gratuits et open source. En ce qui concerne ArcGIS, c'est le contraire : les composants mobiles, Web et cloud ont des licences supplémentaires qui vous obligent à continuer à dépenser de l'argent. De cette façon, vous êtes obligé de rester dans un système fermé où pour toute nouvelle chose que vous voulez faire, vous avez besoin d'une licence supplémentaire.

7. Vous pouvez apprendre et être à jour plus rapidement avec QGIS

Cela doit être dit : QGIS est développé plus rapidement qu'ArcGIS. Les utilisateurs plus âgés ont vu beaucoup de nouvelles versions de QGIS au cours des dernières années et chacune d'entre elles est venue avec de nouvelles fonctionnalités. Cette évolution de QGIS a été encore plus rapide que nous l'aurions souhaité.

Lorsqu'une nouvelle version de QGIS est publiée, le logiciel affiche une fenêtre contextuelle pour que vous puissiez la télécharger, vous informe des nouvelles fonctionnalités et vous pouvez les évaluer, le tout le même jour. Avec ArcGIS, vous devez attendre pour acheter une mise à jour ou avoir une nouvelle copie pirate.

8. QGIS a une bonne documentation

La documentation officielle de QGIS est vraiment bonne (http://www.qgis.org/en/docs/index.html). Il explique de manière simple le fonctionnement du logiciel et contient des exemples et des captures d'écran. Des tutoriels et des forums QGIS sont également disponibles.

9. QGIS est disponible dans de nombreuses langues

Les versions les plus récentes et précédentes de QGIS sont disponibles en anglais et dans d'autres langues telles que l'espagnol, le français ou l'italien grâce à leur système de traduction collaborative. C'est très pratique pour les nouveaux utilisateurs, les utilisateurs qui ne connaissent pas certains termes d'analyse spatiale et les utilisateurs qui ne parlent pas bien l'anglais.

10. QGIS a une quantité importante de compléments

Les compléments sont une caractéristique de QGIS depuis ses débuts. Ce sont de petits programmes qui s'exécutent dans QGIS et sont utilisés pour effectuer des tâches spécifiques.

Les compléments dépendent de l'utilisation que vous souhaitez donner à QGIS. Nous aurons bientôt un nouveau post sur les 5 meilleurs compléments QGIS pour les ressources en eau / analyse environnementale


2.3. Servir un projet¶

Maintenant que QGIS Server est installé et en cours d'exécution, il ne nous reste plus qu'à l'utiliser.

Évidemment, nous avons besoin d'un projet QGIS sur lequel travailler. Bien sûr, vous pouvez entièrement personnaliser votre projet en définissant des informations de contact, en précisant certaines restrictions sur CRS ou même en excluant certaines couches. Tout ce que vous devez savoir à ce sujet est décrit plus loin dans Configurer votre projet .

Mais pour l'instant, nous allons utiliser un projet simple déjà configuré et préalablement téléchargé dans /home/qgis/projects/world.qgs , comme décrit ci-dessus.

En ouvrant le projet et en jetant un coup d'œil rapide sur les calques, nous savons que 4 calques sont actuellement disponibles :

Vous n'avez pas besoin de comprendre la requête complète pour le moment, mais vous pouvez récupérer une carte avec certaines des couches précédentes grâce à QGIS Server en faisant quelque chose comme ceci dans votre navigateur Web pour récupérer le des pays couche:

Si vous obtenez l'image suivante, alors QGIS Server s'exécute correctement :

Fig. 2.1 Réponse du serveur à une requête GetMap de base ¶

Notez que vous pouvez définir QGIS_PROJECT_FILE variable d'environnement pour utiliser un projet par défaut au lieu de donner un CARTE paramètre (voir Variables d'environnement ).

Par exemple avec spawn-fcgi :


Installer le logiciel SIG

Dans votre navigateur Web, accédez à https://qgis.org/fr/site/ et cliquez sur le gros bouton vert "Télécharger maintenant" que vous voyez près du centre de la page. Cela vous mènera à la page de téléchargement où vous avez la possibilité de sélectionner la version de QGIS que vous souhaitez installer.

QGIS est unique parmi les principales applications logicielles SIG de bureau en ce sens qu'il peut s'exécuter sur des ordinateurs Windows, Mac et Linux. Pour cette raison, il est important de sélectionner la version QGIS appropriée pour votre système d'exploitation sur la page de téléchargement. Vous remarquerez également que, même une fois que vous avez sélectionné votre système d'exploitation, vous pouvez toujours voir jusqu'à 4 options parmi lesquelles choisir : pour Windows, vous pouvez sélectionner une version 32 bits ou 64 bits de QGIS et pour Windows et Mac, vous pouvez sélectionner le dernière version du logiciel ou une version de support à long terme plus ancienne et plus stable. La version 64 bits est recommandée pour presque tous les utilisateurs, sauf si vous essayez d'installer le logiciel sur un ordinateur extrêmement ancien doté d'un processeur 32 bits. Il est également recommandé d'installer la dernière version plutôt que la version à long terme afin d'avoir accès aux dernières fonctionnalités de QGIS. Si vous travaillez sur un PC Windows ou Mac, cliquez sur le Installateur autonome de QGIS lien de la version du logiciel la plus appropriée à la configuration de votre ordinateur pour télécharger les fichiers d'installation de QGIS. Si vous espérez charger QGIS sur un ordinateur Linux, suivez les instructions de la page de téléchargement pour télécharger et installer le logiciel sur votre ordinateur en utilisant la méthode d'installation du logiciel spécifique à votre distribution Linux.


Versions de Python et QGIS pour les nouveaux utilisateurs à installer ? - Systèmes d'information géographique

Figure 1. PySAL dans QGIS Processing Toolbox : analyse des points chauds des taux d'homicides dans les comtés du sud des États-Unis.

Python est un langage populaire pour la programmation géospatiale et le développement d'applications. Cette entrée donne un aperçu des différents modes de développement qui peuvent être adoptés pour la programmation SIG avec Python et traite de l'historique de l'adoption de Python dans la communauté SIG. Les différentes couches de la pile de développement géospatial en Python sont examinées, donnant au lecteur une compréhension de l'étendue que Python offre au développeur SIG. Les développements futurs et les problèmes plus larges liés à l'interopérabilité et aux écosystèmes de programmation sont identifiés.

Rey, S.J. (2017). Python pour SIG. Le corpus de connaissances des sciences de l'information géographique et de la technologie (édition du 3e trimestre 2017), John P. Wilson (éd.). DOI : 10.22224/gistbok/2017.3.4

Cette entrée a été publiée pour la première fois le 19 août 2017. Aucune édition antérieure n'existe.

pile de développement: un groupe de logiciels qui travaillent ensemble pour obtenir un résultat spécifique ou pour effectuer une tâche analytique particulière

langage interprété: un langage de programmation dans lequel ses instructions sont exécutées directement sans compilation préalable en instructions en langage machine

logiciels open source: code logiciel mis à disposition gratuitement et pouvant être modifié et redistribué

Python est un langage interprété open source et orienté objet créé par Guido von Rossum en 1991. Depuis sa sortie, Python a été largement adopté dans de nombreux domaines problématiques. Cette popularité découle des caractéristiques attrayantes de la langue. Premièrement, en tant que langage multi-paradigme, Python prend en charge à la fois la programmation structurée et l'orientation objet. Deuxièmement, Python est un langage interprété qui se prête à des cycles de prototypage et de développement rapides. Core Python est lui-même écrit en langage C, ce qui a permis des implémentations de Python sur de nombreuses plates-formes et systèmes d'exploitation. La bibliothèque standard riche et polyvalente rend Python bien adapté à de nombreux projets.

GIScience est l'une des nombreuses disciplines scientifiques où Python a trouvé un public réceptif. D'un point de vue scientifique, l'accent mis sur la lisibilité, la prise en charge multiplateforme et les faibles coûts de démarrage ont fait de Python un excellent langage pour la collaboration entre les scientifiques SIG. Certaines de ces mêmes caractéristiques positionnent également Python comme un langage merveilleux pour l'enseignement des concepts SIG, en effet Python est de plus en plus utilisé comme premier langage dans les programmes d'informatique. Python est un excellent premier langage, cependant, cela ne doit pas être interprété comme signifiant qu'il a une portée limitée, car de nombreuses applications à grande échelle et largement utilisées ont été implémentées en Python, un excellent exemple étant Dropbox.

Compte tenu de sa popularité croissante, cette entrée donne d'abord un aperçu des différents modes de développement qui peuvent être adoptés pour la programmation SIG avec Python et discute de l'histoire de l'adoption de Python dans la communauté SIG. Ceci est suivi d'un démarchage de la pile de programmation SIG pour donner au lecteur une compréhension de l'étendue que Python offre au développeur SIG. La conclusion traite des développements futurs probables et des questions plus larges liées à l'interopérabilité et aux écosystèmes de programmation.

En tant que langage de script, Python offre une flexibilité dans les différents modes de développement de la programmation géospatiale. Celles-ci peuvent prendre la forme de l'utilisation de Python pour étendre les fonctionnalités d'un SIG de bureau, du développement d'une application de bureau autonome complète pour l'analyse géospatiale spécialisée et de l'utilisation de Python pour les scripts scientifiques et le calcul interactif dans un environnement shell.

3.1 Applications de bureau

Python joue un rôle central pour les applications géospatiales de bureau. À partir de la version 9.0 d'ArcGIS, Esri a inclus Python comme langage de script principal. Son ArcPy package fournit une interface aux outils, fonctions, classes et modules de géotraitement. Une fonction arcpy définit une fonctionnalité particulière, par exemple, des fonctions existent pour répertorier certains jeux de données, accéder aux propriétés d'un jeu de données et mettre à jour les géodatabases. De plus, les scripts Python peuvent être utilisés dans ArcGIS ou en dehors d'ArcGIS, et des boîtes à outils Python supplémentaires peuvent être développées et distribuées aux utilisateurs d'ArcGIS en tirant parti de Python. distutils module.

Le package SIG open source QGIS utilise Python comme langage de script de diverses manières. Une console Python est disponible via l'interface utilisateur graphique (GUI) de QGIS pour fournir un shell interactif qui peut être utilisé pour scripter la session existante. Cela prend en charge l'expérimentation avec l'API QGIS et permet à l'utilisateur de créer un flux de travail qui peut finalement être enregistré en tant que script pour une réutilisation ultérieure.

Python a également été utilisé pour développer le En traitement framework dans le cadre de QGIS. Il s'agit d'un environnement de géotraitement qui peut être utilisé pour exécuter des algorithmes natifs ou externes/tiers à partir de QGIS. La figure 1 montre un exemple d'utilisation de l'outil PySAL à partir de la boîte à outils de traitement pour effectuer une analyse des points chauds d'une variable de privation de ressources en 1990 pour les comtés du sud des États-Unis.

En plus de ces deux packages SIG de bureau, Python a été utilisé pour développer d'autres applications géospatiales autonomes. Les principaux exemples sont liés au projet PySAL et incluent : GeoDaSpace, un package pour l'analyse de régression spatiale CAST : Crime Analytics in Space-Time et STARS (Space-Time Analysis of Regional Systems). Ces packages sont développés à l'aide de Python et encapsulent des fonctionnalités géospatiales avancées dans une interface graphique. Ces applications sont possibles grâce à l'existence de plusieurs bibliothèques scientifiques disponibles pour Python qui sont résumées ci-dessous.

3.2 Programmation géospatiale computationnelle interactive

Souvent, dans le calcul scientifique, les chercheurs écrivent du code pour exprimer leurs idées, prototyper ou explorer des données. Ce type de programmation opportuniste nécessite un environnement informatique flexible pour faciliter l'exploration ouverte. L'écosystème Python offre un riche ensemble d'outils pour ce type de calcul scientifique interactif.

IPython développe l'interpréteur Python interactif pour fournir un environnement shell complet pour l'informatique interactive et exploratoire. Riche en fonctionnalités, IPython offre la complétion par tabulation, l'introspection d'objets, l'historique des commandes et l'accès au shell du système d'exploitation, ce qui en fait un interpréteur supérieur pour le calcul scientifique par rapport à celui offert par l'interpréteur Python intégré.

Le projet IPython a évolué et a donné naissance à Jupyter. Le bloc-notes Jupyter étend l'approche basée sur la console à l'informatique interactive en fournissant une application Web qui peut englober l'ensemble du processus de calcul scientifique, du développement, de la documentation et de l'exécution du code à la présentation et à la diffusion des résultats. Jupyter se compose de deux composants. Le premier est un outil basé sur un navigateur qui combine du texte, du code et des médias riches pour prendre en charge la création interactive de documents scientifiques. Le deuxième composant est le document du bloc-notes qui est l'encodage réel de tout le contenu visible dans l'application Web. Les documents du bloc-notes sont implémentés en tant que JavaScript Object Notation (JSON) qui facilite le contrôle de version et le partage avec les collaborateurs.

Le développement géospatial couvre une grande diversité de tâches. Pour fournir une vue d'ensemble de la pile de programmation géospatiale en Python, le tableau 1 résume les packages sélectifs de chaque couche de la pile. Les packages sélectionnés sont les plus populaires ou les plus couramment rencontrés pour chaque type de fonctionnalité, et il convient de garder à l'esprit que la liste n'est pas exhaustive dans sa couverture mais vise à fournir un premier point de repère aux développeurs Python cherchant à s'attaquer à une tâche particulière. .

La description

Interface vers la bibliothèque d'abstraction de données géospatiales

Couche API vers OGR (Vector) de GDAL

Lecture et écriture de données raster géospatiales

Analyse spatiale déterministe

Résumer des rasters à l'aide de géométries vectorielles

Opérations spatiales de type pandas sur des types géométriques

PROJ4 Interface pour les transformations cartographiques

Visualisation via des cartes dépliantes interactives

Navigateurs de bibliothèque de visualisation interactive

Pipeline graphique de visualisation de Big Data

Analyse statistique spatiale

Modélisation de l'interaction spatiale

Clustering spatialement contraint

Interface de programmation client vers le service Web OGC

ETL en continu pour les données géospatiales

Tableau 1. La pile de programmation géospatiale Python

4.1 Entrée/sortie de données spatiales

Toute analyse spatiale commence par la lecture de données géospatiales. L'une des principales caractéristiques distinctives de l'analyse de données spatiales est la grande variété de formats de données spatiales. Cela représente un défi majeur pour le développeur géospatial, car les packages taille unique sont tout simplement introuvables.

Comme il est courant pour de nombreux packages de la pile géospatiale, l'approche adoptée pour implémenter l'entrée (et la sortie) de fichier a consisté à envelopper les bibliothèques C existantes qui ont été largement utilisées pour le but recherché. Dans ce cas, la bibliothèque cible est la bibliothèque d'abstraction de données géospatiales (GDAL) qui fournit des traducteurs pour lire et écrire à la fois des données spatiales raster et vectorielles. Dans la pile Python, deux bibliothèques différentes ont été développées pour cibler ces composants. Fiona se concentre sur la fonctionnalité OGR (vecteur), tandis que rasterio fournit un wrapper similaire pour exposer la fonctionnalité raster de GDAL. Cela permet la lecture et l'écriture de formats tels que GeoTIFF via une API Python qui s'appuie sur numpy Tableaux N-D pour un calcul efficace.

4.2 Géotraitement

Une fois les données géospatiales lues en mémoire, diverses opérations et manipulations géométriques sont disponibles pour un traitement ultérieur. Pour les données vectorielles, celles-ci prennent la forme d'opérations théoriques ensemblistes et de manipulations d'entités planaires. Le paquet Galbé enveloppe le géos bibliothèque pour la mise en mémoire tampon, l'intersection, la dilatation, la différenciation et une foule d'autres types d'opérateurs spatiaux sur les objets vectoriels. La fonctionnalité de focalisation, de zone et de résumé des rasters est offerte par le rasterstats paquet. Statistiques raster peut également prendre en charge l'interrogation de rasters à l'aide de géométries vectorielles. Par exemple, un développeur peut trouver l'altitude à partir d'un DEM stocké dans un fichier TIF basé sur un objet vectoriel de point, ou générer des statistiques récapitulatives pour l'altitude dans les limites d'un objet polygone (c'est-à-dire, moyenne, max, std d'altitude dans une zone) .

Les deux ensembles de ces opérations spatiales sont couramment rencontrés dans le cas d'utilisation de la dérivation de nouvelles variables spatiales. Ceux-ci sont ensuite utilisés plus haut dans la pile géospatiale pour l'analyse statistique. À eux seuls, les packages de la pile de géotraitement (c'est-à-dire fiona et shapely) ne sont pas destinés à couvrir l'analyse statistique ultérieure des objets/couches dérivés. Au contraire, ils sont considérés comme des composants essentiels d'un pipeline géospatial dans lequel différents packages sont enchaînés pour mettre en œuvre un flux de travail particulier. Le paquet géopandas peut être considéré comme un moyen de faciliter ce type de flux de travail et de pipeline. Il repose sur la fonctionnalité de fiona et galbé pour le géotraitement, mais s'inspire du populaire package général de manipulation de données pandas qui est la première bibliothèque pour le traitement des données dans la pile de calcul Python.

Afin que les données provenant de différents formats et sources soient correctement harmonisées et intégrées, la fonctionnalité de conversion entre différents systèmes de référence de coordonnées est fournie via le pyproj paquet. pyproj est un Cython wrapper qui fournit une interface Python au PROJ.4 bibliothèque pour les transformations cartographiques et les calculs géodésiques.

4.3 Géovisualisation et cartographie

La visualisation et la cartographie des données géospatiales en Python trouvent leur origine dans la cartographie à l'échelle mondiale implémentée dans le package fond de carte. Fond de carte n'implémente pas le tracé proprement dit mais s'appuie sur Proj4.C pour transformer les coordonnées en une projection cartographique spécifique, puis utilise matplotlib, la bibliothèque de visualisation principale de Python, pour effectuer le traçage réel des contours, des images ou des objets vectoriels dans les coordonnées projetées. Fond de carte ses origines étaient dans le soutien de l'océanographie et de la météorologie, et au fil du temps sa fonctionnalité a évolué pour soutenir d'autres disciplines de la biologie à la géologie et la géophysique.

cartopie est un package destiné à faciliter le dessin de cartes pour l'analyse et la visualisation des données. Il adopte une approche orientée objet pour définir les projections cartographiques et fournit une interface simple et intuitive pour la visualisation via matplotlib. cartopie s'appuie à la fois sur PROJ.4 pour sa fonctionnalité de projection, et galbé pour lire les fichiers de formes. Semblable à fond de carte, Cartopie a été créé à l'origine pour soutenir la recherche météorologique, mais s'est étendu pour prendre en charge la cartographie dans un large éventail de domaines scientifiques.

Alors que les deux fond de carte et cartopie interface avec matplotlib pour la visualisation, un certain nombre de packages de cartographie Python ciblent les navigateurs Web comme plate-forme de visualisation. Folium est l'un des premiers d'entre eux, fournissant une interface Python au brochure bibliothèque javascript pour la cartographie interactive basée sur le Web. Folium comprend également des améliorations de la Vincent/Véga framework pour amener des marqueurs et des tracés augmentés dans la visualisation géospatiale. Folium s'interface avec un certain nombre de services de tuiles populaires, notamment OpenStreetMap, Boîte à cartes, et Étamine, avec le soutien de GeoJSON et TopoJSON formats de données spatiales.

Bien qu'ils ne soient pas spécifiquement conçus pour la cartographie et la géovisualisation, deux packages de visualisation Python récents méritent d'être inclus ici. Bokeh est similaire à Folium en ce qu'il cible les navigateurs Web modernes pour la visualisation. Il le fait à travers le style de la D3.js bibliothèque pour la visualisation basée sur les données, en mettant l'accent sur l'interactivité haute performance pour les grands ensembles de données. Nuanceur de données est une composante de Bokeh qui implémente un pipeline graphique pour le rendu des représentations d'ensembles de données massifs via le binning, l'agrégation et les transformations. Il est à noter que les capacités impressionnantes de Nuanceur de données comportent souvent des applications géospatiales (https://github.com/bokeh/datashader).

Avant de quitter la couche de visualisation de la pile géospatiale Python, deux points supplémentaires doivent être faits. Premièrement, la communauté scientifique Python se concentre activement sur des cartes de couleurs efficaces pour la visualisation scientifique. Ce travail recoupe celui des cartographes concevant des schémas de couleurs pour la cartographie choroplèthe. Dans le monde Python, les packages populaires sont palettable et palette de couleurs. Deuxièmement, le composant de visualisation de la pile scientifique Python évolue rapidement, les lecteurs sont donc encouragés à utiliser cette section comme point d'entrée et non comme destination finale.

4.4 Analyse statistique spatiale

PySAL est une bibliothèque de fonctions d'analyse spatiale pour les données spatiales. Il se compose de modules qui couvrent l'analyse exploratoire des données spatiales qui comprend des mesures globales et locales d'autocorrélation spatiale - des méthodes populaires pour détecter le regroupement spatial et les points chauds. PySAL fournit également des fonctionnalités pour la régression spatiale, l'analyse spatio-temporelle, la régionalisation, la classification des cartes et une multitude de modules de géoinformatique. PySAL a commencé à une époque où très peu de la pile géospatiale Python existait et, en tant que telle, elle inclut également des fonctionnalités pour les niveaux inférieurs de la pile par nécessité. Heures supplémentaires, PySAL a ajouté des modules qui s'interfacent avec de nombreux autres packages plus récents dans la pile (shapely, geopandas, cartopy, etc.).

PySAL se concentre principalement sur les formats spatiaux vectoriels et couvre l'analyse statistique des attributs associés aux polygones, aux points et aux réseaux. L'analyse des données géostatistiques est associée à l'analyse statistique des domaines couramment rencontrés en géosciences où des phénomènes tels que la température, les précipitations, la qualité de l'air sont modélisés comme une surface en utilisant des méthodes telles que le krigeage et diverses approches d'interpolation spatiale. L'objectif dans une grande partie de ce travail est de générer des prédictions pour un continuum d'emplacements sur la base d'un ensemble discret d'emplacements observés pour le processus en cours. Dans la pile Python, la géostatistique est un domaine qui a été sous-développé à ce jour car il y a eu quelques démarrages de projets mais un développement intermittent - un exemple étant pykrigeage.

4.5 Modélisation spatiale

Mesa est un package qui implémente des fonctionnalités pour développer et appliquer des modèles basés sur des agents. Ces modèles peuvent être utilisés pour simuler des agents autonomes incarnés par des règles comportementales sur une grille afin d'évaluer les impacts de leurs comportements et interactions sur le système dans son ensemble. L'exemple classique d'ABM est le modèle de ségrégation de Schelling présenté comme une démonstration clé dans le package Mesa.

en grappe fournit une bibliothèque d'algorithmes de clustering spatialement contraints qui peuvent être utilisés pour regrouper des zones géographiques primitives ou des points en un plus petit nombre de régions pour une analyse ultérieure. Par exemple, en géodémographie, les secteurs de recensement peuvent être définis en fonction à la fois de la similitude socioéconomique et de la contiguïté géographique. L'inclusion de cette dernière contrainte différencie la régionalisation du clustering multivarié plus général.

4.6 Web et distribué

De plus en plus, les flux de travail scientifiques évoluent vers des cadres basés sur le Web et distribués, et l'analyse spatiale ne fait pas exception. Ici, des bibliothèques qui fournissent un middleware reliant différentes fonctionnalités d'analyse et de traitement en tant que services individuels sont nécessaires. Dans la pile géospatiale Python, un nombre croissant de packages implémentent les spécifications de l'Open Geospatial Consortium pour faciliter le géotraitement et l'analyse basés sur le Web. Stetl propose une boîte à outils pour l'extraction, la transformation et le chargement (ETL) de données géospatiales. OWSlib implémente les normes OGC clés via une interface Python, notamment le service de cartographie Web (WMS), le service de fonctionnalités Web (WFS), le langage de modèle de capteur (SensorML) et WaterML parmi quelque 17 autres services. Tous les deux Stetl et OWSlib font partie du GéoPython organisation qui développe de nombreux projets géospatiaux.

4.7 Considérations relatives au package

Les packages répertoriés dans le tableau 1 ne représentent qu'une fraction de ce qui est disponible pour les développeurs géospatiaux travaillant en Python. Il convient également de garder à l'esprit que le placement d'un package dans une couche spécifique est quelque peu fluide, car un package particulier peut offrir une fonctionnalité qui s'étend sur plusieurs couches de la pile. Par exemple, parce que Géopandas a fiona et PySAL parmi ses dépendances, il peut donner accès aux fonctionnalités de base de ces packages via son espace de noms. La richesse et la diversité des packages géospatiaux témoignent des points forts de la pile de calcul scientifique sous-jacente de Python, où des packages tels que numpy et scipy ainsi que les possibilités de développement de l'écosystème Python lui-même constituent un excellent paradigme de développement. De plus, il existe des packages dans la pile scientifique Python plus large qui peuvent être utilisés pour implémenter des fonctionnalités géospatiales. Par example, réseau-x fournit une multitude de méthodes pour analyser les réseaux et les graphiques, tandis que scikit-image est une puissante bibliothèque pour l'analyse d'images.

There are a few issues that GIS developers need to keep in mind, particularly when developing GIS applications with Python for different platforms. A key issue is the management of the Python installation alongside third-party packages. Tous les deux ArcGIS et QGIS install their own Python interpreters in directories that are specific to those applications. This can be a source of confusion if the developer also has other Python installations on the same machine, particularly when it comes to installing additional packages. Python offers a number of approaches towards package management (pip being the main one), and Python distributions such as Anaconda and Enthought also provide their own package managers.

Python and the related GIS software ecosystem are very active and undergoing constant growth. To enhance one’s proficiency, it is important to keep up with these developments so that workflows can remain current by taking advantage of advances in the language itself and packages in the broader ecosystem. While predictions about the future are always challenging, the seeds of a few developments can already be seen emerging. The first is an increasing emphasis on the importance of interoperability between Python and other languages. Packages such as RPy allow for bidirectional interfaces between Python and R so that a developer can leverage the strengths of each language in the same workflow. This also serves to widen the scope of the GIScience programming stack.

A related area to keep abreast of is the set of tools that allow for extension of Python by wrapping external libraries written in lower level languages such as C, C++, and Fortran. Cython, numba, et swig provide methods to target bottlenecks in a Python code base to be replaced with more computationally efficient libraries. The extensibility of Python using these tools means that initial prototyping of a GIScience application can rely on pure Python in a developer-efficient manner. Only after the full functionality of the application is implemented should attention turn to optimizations and, in many cases, this turns out to be a small fraction of the code base. In these instances, the extension frameworks can prove invaluable.

The world of parallel and distributed high performance computing has advanced remarkably in the past decade and the Python ecosystem exemplifies this. Although a comprehensive coverage of related packages is beyond the current scope (packages for cloud, distributed and high performance computing in Python can be found at https://wiki.python.org/moin/ParallelProcessing), one exemplar package to note is Dask. A flexible parallel library for analytic computing, Dask is built around two components: dynamic task scheduling that optimizes interactive computational workloads, and big data collections that enable out-of-memory or distributed processing of parallel data arrays and dataframes.

A fourth important thread is the rise of open science. Stressing the need for improved transparency, reproducibility, and replication, the open science movement is leading to new types of development paradigms such as Docker containers, conda environments and the notebook viewer that enable sharing of snippets of code and even complete workflows that reproduce the analysis underlying a particular scientific paper. Familiarity with these tools will be increasingly important for Python GIS development.

Open science also has parallels in the open government and open data movements that are driving transparency, sharing, and reuse of government collected data. These have fostered collaborative projects bringing together academic researchers, government and industry to fashion computing solutions targeting social and environmental issues. Given that many of these projects involve geospatial data and analysis, Python capable GIScientists can play a central role in these efforts.


From CSV to GeoDataFrame in two lines

Pandas is great for data munging and with the help of GeoPandas, these capabilities expand into the spatial realm.

With just two lines, it’s quick and easy to transform a plain headerless CSV file into a GeoDataFrame. (If your CSV is nice and already contains a header, you can skip the header=None and names=FILE_HEADER parameters.)

usecols=USE_COLS is also optional and allows us to specify that we only want to use a subset of the columns available in the CSV.

After the obligatory imports and setting of variables, all we need to do is read the CSV into a regular DataFrame and then construct a GeoDataFrame.


Voir la vidéo: Introduction aux Systèmes dInformation Géographique théorie