Suite

Erreur de développement géospatial Python

Erreur de développement géospatial Python


Je travaille sur quelques exemples dans le livre Python Geospatial Development d'Erik Westra.

À la page 439, à propos de la configuration d'un serveur de carte de tuiles, il donne le code suivant pour calculer une zone de délimitation basée sur un emplacement central et un niveau de zoom :

TILE_WIDTH = 256 TILE_HEIGHT = 256 x_extent = _unitsPerPixel(zoomLevel) * TILE_WIDTH y_extent = _unitsPerPixel(zoomLevel) * TILE_HEIGHT min_long = x * x_extent - 180.0 min_lat = y * y_Pixel_extent = min_lat max_long_extent = min_lat max_long_extent ): return 0.703125/math.pow(2, zoomLevel)

Nulle part il ne précise ce queXetouiles unités devraient être. J'ai supposé des coordonnées lat longues (identiques à la carte), mais les calculs ci-dessus ne fonctionnent pas.

Par exemple, supposons que j'aix = 50,0ety=-2,09et un niveau de zoom de 5.

Pour le min_lat, j'aurai alors environ :

min_lat = -2,09 * 5,63 - 90,0

Ce qui va donner moins de -90, la limite de notre map… ?!?

Chaque fois que vous passez une coordonnée lat/long négative, cela tombera…

Quelles sont les coordonnées x/y attendues ici ?


Les valeurs pourXetouidans ce cas, ce ne sont probablement que des indices pour un tilemap X-Y-Z. Les indices d'un service TMS sont sans unité, ils comptent simplement le nombre de tuiles à partir du coin supérieur gauche.

Dans votre exemple, le_unitésParPixelLa fonction renvoie l'échelle des pixels pour le niveau de zoom donné. La valeur est la largeur et la hauteur d'un pixel dans les unités de la projection (qui semble ici être lat/lon). Lorsqu'il est multiplié par leTILE_WIDTH, vous obtenez l'échelle d'une tuile dans les unités du système de coordonnées dans lequel vous travaillez.

Avec cela, la valeurx * x_étendue - 180(oùXest l'indice de tuile) vous donne une valeur longue moins le "décalage" de -180 degrés. Le décalage est nécessaire car vous commencez à compter de la gauche vers la droite. Donc si l'indiceXest nul, vous êtes sur le bord gauche de la carte et lemin_longla valeur est -180. Ainsi, ni x ni y ne devraient prendre une valeur négative.

Les serveurs Tile Map sont généralement conçus pour être utilisés sur le Web, où la bibliothèque (telle que OpenLayers ou Leaflet) demande une tuile en utilisant uniquement l'index de tuile xyz, et aucune requête spatiale. Pour en savoir plus à ce sujet, voir

http://en.wikipedia.org/wiki/Tiled_web_map

Voici une belle visualisation du fonctionnement des index de tuiles pour google maps (notez qu'il existe également d'autres définitions)

http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/


1.1.1 Le besoin d'automatisation du SIG

Un système d'information géographique (SIG) peut manipuler et analyser des ensembles de données spatiales dans le but de résoudre des problèmes géographiques. Les analystes SIG effectuent toutes sortes d'opérations sur les données pour les rendre utiles à la résolution d'un problème ciblé. Cela inclut le découpage, la reprojection, la mise en mémoire tampon, la fusion, le mosaïquage, l'extraction de sous-ensembles de données et des centaines d'autres opérations. Dans le logiciel ArcGIS utilisé dans ce cours, ces opérations sont appelées géotraitement et ils sont effectués à l'aide outils.

Une analyse SIG réussie nécessite de sélectionner les outils les plus appropriés pour opérer sur vos données. ArcGIS utilise une métaphore de boîte à outils pour organiser sa suite d'outils. Vous choisissez les outils dont vous avez besoin et les exécutez dans le bon ordre pour fabriquer votre produit fini.

Supposons que vous soyez responsable de la sélection des sites pour une chaîne de restaurants. Vous pouvez utiliser un outil pour sélectionner des parcelles de terrain le long d'une artère principale, un autre outil pour sélectionner des parcelles d'au moins 0,25 acre et d'autres outils pour d'autres critères de sélection. Si ce processus de sélection était limité à une petite zone, il serait probablement logique d'effectuer le travail manuellement.

Cependant, supposons que vous soyez chargé d'effectuer la même analyse pour plusieurs régions du pays. Parce que ce scénario implique l'exécution de la même séquence d'outils pour plusieurs domaines, il se prête bien à l'automatisation. L'automatisation de tâches comme celle-ci présente plusieurs avantages majeurs :

  • L'automatisation fait travailler Plus facile. Une fois que vous automatisez un processus, vous n'avez pas à faire autant d'efforts pour vous souvenir des outils à utiliser ou de la séquence appropriée dans laquelle ils doivent être exécutés.
  • L'automatisation fait le travail plus rapide. Un ordinateur peut ouvrir et exécuter des outils en séquence beaucoup plus rapidement que vous ne pouvez accomplir la même tâche en pointant et en cliquant.
  • L'automatisation fait travailler plus précise. Chaque fois que vous effectuez une tâche manuelle sur un ordinateur, il y a un risque d'erreur. La chance se multiplie avec le nombre et la complexité des étapes de votre analyse, ainsi que la fatigue engendrée par la répétition de la tâche plusieurs fois. En revanche, une fois qu'une tâche automatisée est configurée, on peut faire confiance à un ordinateur pour effectuer la même séquence d'étapes à chaque fois pendant un nombre potentiellement infini de cycles.

La plate-forme ArcGIS offre aux utilisateurs plusieurs façons d'automatiser leurs tâches de géotraitement. Ces options diffèrent par la quantité de compétences requises pour produire la solution automatisée et par la gamme de scénarios que chacune peut traiter. Le texte ci-dessous aborde brièvement ces options d'automatisation, de la plus exigeante en matière de codage à la plus.

La première option consiste à construire un modèle à l'aide de ModelBuilder. ModelBuilder est un programme interactif qui permet à l'utilisateur de « chaîner » des outils ensemble, en utilisant la sortie d'un outil comme entrée dans un autre. La caractéristique la plus attrayante de ModelBuilder est peut-être que les utilisateurs peuvent automatiser des flux de travail SIG plutôt complexes sans avoir besoin de programmation. Vous apprendrez à utiliser ModelBuilder au début de ce cours.

Certaines tâches d'automatisation nécessitent une plus grande flexibilité que celle offerte par ModelBuilder, et pour ces scénarios, il est recommandé d'écrire de courts programmes informatiques ou scripts. La majeure partie de ce cours porte sur l'écriture de scripts.

Un script exécute généralement une procédure séquentielle d'étapes. Dans un script, vous pouvez exécuter des outils SIG individuellement ou les enchaîner. Vous pouvez insérer une logique conditionnelle dans votre script pour gérer les cas où différents outils doivent être exécutés en fonction de la sortie de l'opération précédente. Vous pouvez également inclure des itérations, ou des boucles, dans un script pour répéter une seule action autant de fois que nécessaire pour accomplir une tâche.

Il existe des langages de script spéciaux pour écrire des scripts, notamment Python, JScript et Perl. Souvent, ces langages ont une syntaxe plus basique et sont plus faciles à apprendre que d'autres langages tels que C, Java ou Visual Basic.

Bien qu'ArcGIS prenne en charge divers langages de script pour travailler avec ses outils, Esri met l'accent sur Python dans sa documentation et inclut Python avec les installations ArcGIS Desktop et Pro. Dans ce cours, nous travaillerons strictement avec Python pour cette raison, ainsi que le fait que Python peut être utilisé pour de nombreuses autres tâches de manipulation de fichiers et de données en dehors d'ArcGIS. Vous apprendrez les bases du langage Python, comment écrire un script et comment manipuler et analyser les données SIG à l'aide de scripts. Enfin, vous appliquerez vos nouvelles connaissances Python à un projet final, où vous écrivez un script de votre choix que vous pourrez peut-être appliquer directement à votre travail.

Une option d'automatisation plus récemment développée et disponible sur la plate-forme ArcGIS est l'API ArcGIS (Application Programming Interface) pour Python. Il s'agit d'un environnement dans lequel les scripts Python sont mieux intégrés aux technologies basées sur le cloud et les serveurs d'Esri (ArcGIS Online, Portal for ArcGIS, ArcGIS Enterprise). Le code écrit pour interagir avec l'API Python est souvent écrit dans un environnement « notebook » tel que Jupyter Notebook. Dans un environnement de bloc-notes, le code peut être exécuté par étapes avec des résultats intermédiaires affichés entre les instructions Python. L'utilisation de l'API Python dans un environnement Jupyter Notebook est un sujet de notre classe Python avancée, GEOG 489.

Pour les tâches de géotraitement qui nécessitent la prise en charge de l'interaction de l'utilisateur avec la carte ou d'autres éléments de l'interface utilisateur, le SDK ArcGIS Pro (Software Development Kit) offre la possibilité d'ajouter des outils personnalisés à l'interface Pro. Le SDK Pro nécessite une programmation dans le framework .NET à l'aide d'un langage .NET tel que Visual Basic .NET ou C#. Travailler avec le modèle objet de ce SDK offre une plus grande flexibilité en termes de ce qui peut être construit par rapport à l'écriture de scripts Python autour de leur infrastructure de géotraitement. Le compromis est un niveau de complexité plus élevé impliqué dans le codage.

Enfin, les développeurs qui souhaitent créer leurs propres applications SIG personnalisées, généralement axées sur la fourniture de fonctionnalités beaucoup plus étroites que l'ArcGIS Pro à taille unique, peuvent développer des applications à l'aide des kits de développement logiciel ArcGIS Runtime. Les kits de développement logiciel (SDK) d'exécution permettent de créer des applications pour les ordinateurs de bureau Windows, Mac ou Linux, ainsi que pour les appareils mobiles iOS et Android, impliquant à nouveau un niveau d'effort plus important que votre script de géotraitement Python typique.

Cette première leçon vous présentera les concepts de la construction de modèles et de l'écriture de scripts. Nous commencerons par nous familiariser avec le fonctionnement des outils dans ArcGIS et la façon dont vous pouvez utiliser ces outils dans l'interface ModelBuilder. Ensuite, nous couvrirons certaines des bases de Python et verrons comment les outils peuvent être exécutés dans des scripts.


Développement géospatial Python

Ce livre est destiné aux développeurs Python expérimentés qui souhaitent en savoir plus sur les concepts géospatiaux, obtenir et utiliser des données géospatiales, résoudre des problèmes spatiaux et créer des applications cartographiques sophistiquées à l'aide de Python.

  • Accédez, manipulez et affichez des données géospatiales à partir de vos programmes Python
  • Maîtriser les concepts géospatiaux de base de l'emplacement, de la distance, des unités, des projections et des références
  • Lire et écrire des données géospatiales au format vectoriel et raster
  • Effectuez des calculs géospatiaux complexes et réels à l'aide de Python
  • Stocker et accéder aux informations géospatiales dans une base de données
  • Utilisez des points, des lignes et des polygones dans vos programmes Python
  • Convertissez les données géospatiales en cartes attrayantes à l'aide d'outils basés sur Python
  • Créez des applications de cartographie Web complètes à l'aide de Python

Le développement géospatial relie vos données à des emplacements à la surface de la Terre. L'écriture de programmes géospatiaux implique des tâches telles que le regroupement de données par emplacement, le stockage et l'analyse de grandes quantités d'informations spatiales, l'exécution de calculs géospatiaux complexes et le dessin de cartes interactives colorées. Pour bien faire cela, vous aurez besoin d'outils et de techniques appropriés, ainsi que d'une compréhension approfondie des concepts géospatiaux tels que les projections cartographiques, les références et les systèmes de coordonnées.

Ce livre donne un aperçu des principaux concepts géospatiaux, sources de données et boîtes à outils. Il commence par vous montrer comment stocker et accéder aux données spatiales à l'aide de Python, comment effectuer une gamme de calculs spatiaux et comment stocker des données spatiales dans une base de données. Plus loin, le livre vous apprend à créer votre propre interface de carte glissante dans une application Web et se termine par la construction détaillée d'un éditeur de données géospatiales à l'aide du framework GeoDjango.

À la fin de ce livre, vous serez en mesure d'utiliser Python en toute confiance pour écrire vos propres applications géospatiales, allant d'utilitaires rapides et ponctuels à des applications Web sophistiquées utilisant des cartes et d'autres données géospatiales.

Ce livre est un cours complet sur le développement géospatial. Les concepts que vous devez connaître sont présentés de manière pratique avec des exemples de code pour vous aider à résoudre immédiatement les problèmes du monde réel. Des programmes plus importants sont construits étape par étape tout en vous guidant tout au long du processus de création de vos propres applications cartographiques sophistiquées.


  • Créer une carte interactive
  • Ajoutez des jeux de données locaux (par exemple, GeoJSON, JSON, Shapefile) à la carte via le code ou l'interface graphique
  • Ajouter des pandas DataFrames et GeoPandas GeoDataFrames à la carte
  • Utilisez un widget pour une visualisation rapide des résultats filtrés d'un pd.DataFrame
  • Filtrer n'importe quel non-TileLayer dans la carte par une valeur unique dans un champ/colonne
  • Traiter les données SafeGraph et décompresser les colonnes json dans un DataFrame existant ou nouveau

Ce package a été créé avec Cookiecutter et le modèle de projet giswqs/pypackage.


Téléchargement gratuit de Python pour la programmation SIG

Python est disponible pour tous les principaux systèmes d'exploitation : Windows, Linux/Unix, OS/2, Mac, Amiga, entre autres. Il existe même des versions qui fonctionnent sur .NET, la machine virtuelle Java et les téléphones portables Nokia Series 60. Vous serez heureux de savoir que le même code source s'exécutera sans changement dans toutes les implémentations.

Votre système préféré n'est pas répertorié ici ? Il peut toujours prendre en charge Python s'il existe un compilateur C pour cela. Renseignez-vous sur news:comp.lang.python - ou essayez simplement de compiler Python vous-même. Python est convivial. et facile à apprendre

Le groupe de discussion Python est connu comme l'un des plus sympathiques. La communauté passionnée de développeurs et d'utilisateurs gère un wiki, organise des conférences internationales et locales, organise des sprints de développement et contribue aux référentiels de code en ligne.

Python est également fourni avec une documentation complète, à la fois intégrée au langage et sous forme de pages Web distinctes. Les didacticiels en ligne ciblent à la fois le programmeur chevronné et le nouveau venu. Tous sont conçus pour vous rendre productif rapidement. La disponibilité de livres de premier ordre complète le package d'apprentissage. Python est ouvert

L'implémentation Python est sous une licence open source qui la rend librement utilisable et distribuable, même pour un usage commercial. La licence Python est administrée par la Python Software Foundation.

Michael R. Meuser
Spécialiste en recherche de données et SIG

MapCruzin.com est une firme indépendante spécialisée dans le développement de projets SIG et la recherche de données. Nous avons créé les premières cartes interactives d'installations chimiques toxiques basées aux États-Unis sur Internet en 1996 et nous sommes en ligne depuis. En savoir plus sur nous et nos services.

Avez-vous un projet en tête? Si vous avez besoin de données, de projets SIG ou de fichiers de formes personnalisés contacter Mike.

Trouver : Cartes, fichiers de formes, logiciels SIG et plus

CarteCruzin Blog pour les mises à jour, les questions et les réponses
Mises à jour du blog


Informations sur la carrière et les salaires

Votre carrière

La Saskatchewan Polytechnic a une excellente feuille de route lorsqu'il s'agit d'embaucher des diplômés : 80 % des diplômés en SIG travaillent dans leur domaine dans les six mois suivant l'obtention de leur diplôme. Ils travaillent en tant que techniciens en cartographie SIG, spécialistes en SIG, cartographes cartographiques, opérateurs GPS, analystes de données ou analystes en télédétection. Grâce à votre formation spécialisée dans l'application des SIG à la gestion des ressources, vous pouvez explorer des opportunités d'emploi avec une grande variété d'employeurs potentiels, y compris les industries basées sur les ressources naturelles, les industries des Premières Nations, les cabinets d'experts-conseils, les agences environnementales, les ministères et les agences municipales.


Erreur de développement géospatial Python - Systèmes d'information géographique

En cours de développement

Ce référentiel trace un chemin pour amener une personne sans expérience SIG vers un développeur SIG compétent. Les sections sont organisées par niveau de compétence et doivent être parcourues de manière séquentielle. Cela a été fortement inspiré par l'Open Source Society University.

Les ressources proviennent principalement de cours très efficaces et gratuits ainsi que de billets de blog et de tutoriels. Il existe un mélange de matériaux propriétaires (ESRI) et open source.

N'hésitez pas à contribuer et à corriger les erreurs que je ferai inévitablement.

Si vous avez suivi un cours d'introduction au SIG ou utilisé le SIG sur le lieu de travail pendant plus de quelques mois, ignorez cette section. Sinon, passons en revue certains documents pour nous assurer que nous avons une compréhension de base de ce qu'est le SIG, des tâches SIG courantes et des outils SIG qui existent.

Choisissez l'un des logiciels de bureau ci-dessous et suivez le cours associé pour vous mettre à niveau. Cela prendra environ 40 heures et vous donnera une excellente base en SIG.

ArcMap et ArcPro sont des logiciels de bureau propriétaires pour effectuer des analyses SIG distribués par ESRI. Ce sont les plus largement utilisés dans l'industrie et les apprendre est le pari le plus sûr pour plonger vos pieds dans l'industrie. Apprendre à connaître ArcPro est livré avec une licence ArcPro gratuite d'un an et vaut bien l'argent si vous voulez vraiment vous lancer dans le domaine. Si vous suivez un cours d'introduction aux SIG dans un collège, il y a de fortes chances que vous parcouriez ce livre comme la majorité de votre travail de cours.

Le logiciel de bureau open source le plus couramment utilisé. Il est téléchargeable gratuitement et dispose d'un large éventail de plugins qui vous permettent de faire à peu près n'importe quoi avec le SIG.

Cours (choisissez-en un) Difficulté Logiciel SIG
Spécialisation SIG Coursera Facile ArcPro
Apprendre à connaître ArcPro (40 $) Facile ArcPro
Tutoriel officiel QGIS Facile QGIS

Apprendre les bases de la programmation. Le degré de satisfaction que vous accordez à l'un de ces cours peut être un bon indicateur de votre réussite en programmation.

Cours (choisissez-en un) Difficulté Langues
Introduction à l'informatique et à la programmation avec Python Moyen Python
CS50 : Introduction à l'informatique Difficile C, PHP, JavaScript, SQL, CSS et HTML

Analyse de données avec Python

Apprenez à utiliser les bibliothèques d'analyse de données populaires en Python telles que Numpy et Pandas. J'énumère pas mal d'options payantes ici car elles sont de très haute qualité et interactives.

Ressource (choisissez-en une) Difficulté
Géo Python Moyen
Manuel de science des données Python Moyen
Python pour l'analyse de données (28 $) Moyen
Dataquest (23 $ - 50 $ / mois) Moyen
Camp de données (25 $ - 30 $ / mois) Moyen
Tutoriel Brandon Rhoades sur les pandas Moyen

Programmation SIG avec Python

Apprenez à écrire des scripts pour effectuer des analyses SIG et automatiser des tâches répétitives avec Python.

Cours (choisissez-en un) Difficulté Logiciel SIG
GEOG 485 : Programmation SIG et développement de logiciels Moyen ArcGIS/ArcPy
Automatisation des processus SIG Moyen GDAL, OGR, GeoPandas, Shapely, QGIS

Cours supplémentaires recommandés

Apprenez à interroger des données, à créer des tables et des vues et à effectuer des analyses de données avec des bases de données.

Cours (choisissez-en un) Difficulté Moteur de base de données
Zoo SQL Moyen SQL Server, Oracle, MySQL, DB2 et PostgreSQL
Stanford - Introduction aux bases de données Difficile Inconnu
CS145 : Gestion des données et systèmes de données Difficile Google BigQuery

Apprenez à stocker des données SIG et à les manipuler dans une base de données.

Cours (choisissez-en un) Difficulté Moteur de base de données
GEOG 868 - Gestion des bases de données spatiales Moyen PostgreSQL / PostGIS
Officiel - Introduction à PostGIS Moyen PostgreSQL / PostGIS
CS145 : Gestion des données et systèmes de données Difficile Google BigQuery

Apprenez à gérer des projets à l'aide du contrôle de version.

Ressource (choisissez-en une) Difficulté Logiciel
Documentation Git Moyen Git
Ressources officielles Git Moyen Git
Tutoriel Git par Atlassian Moyen Git

Apprenez à extraire, transformer et charger des données.

Cours Difficulté Compétence enseignée
Parcours Dataquest Data Engineer (24,50 $ - 50 $ / mois) Difficile Optimisation de la base de données, ETL, gestion des tâches
Tutoriels FME Workbench Moyen FME, ETL Spatial

Fondamentaux du développement Web

Apprenez les bases du développement web. Il est très important de le faire avant d'essayer de se lancer dans le SIG Web.

Cours (choisissez-en un) Difficulté Langues
CS50 : Programmation Web avec Python et JavaScript Moyen Python, HTML, CSS, Javascript, SQL
Bootcamp de développeur Web de Colt Steele (10 $, recherche de coupon) Moyen Node.js, HTML, CSS, Javascript, NoSQL
Le projet Odin Moyen Ruby, HTML, CSS, Javascript

Cours supplémentaire recommandé

Découvrez comment ajouter des cartes à vos applications Web.

Cours (faire les deux) Difficulté Langages / Frameworks
GEOG 863 - Développement d'applications Web pour les professionnels de la géospatiale Facile HTML, CSS, Javascript, API Javascript ArcGIS
GEOG 585 : Ouvrir la cartographie Web Moyen QGIS, GDAL, OGR, GeoServer, TileMill, Brochure

Cours supplémentaire recommandé

Apprenez à créer des applications Web modernes à l'aide de bibliothèques frontales.

Cours (choisissez-en un) Difficulté Cadre / Bibliothèque
Tyler Mcginnis : BootCamp de réaction en ligne gratuit Moyen Réagir
Maximilian Schwarzmüller: Angular 7 (anciennement Angular 2) - Le guide complet (10 $, recherche de coupon) Difficile Angulaire
Maximilian Schwarzmüller: Vue JS 2 - Le guide complet (10 $, recherche de coupon) Facile Vue

Le développement front-end est un sujet si vaste que je vais juste faire un lien vers la brillante section front-end de la feuille de route des développeurs Web 2018. Vous avez déjà acquis la plupart de ces compétences, mais vous familiariser avec les gestionnaires de packages, les outils de construction, la gestion des états, les préprocesseurs CSS et les tests frontaux vous placera dans une position idéale pour le développement front-end.

Découvrez comment servir des données à un client avec un serveur principal. Presque toutes les offres d'emploi de développement SIG back-end que j'ai vues nécessitent .Net Core (C#). J'ai vu quelques projets SIG utilisant Flask, Django (Python) et Java, mais C# semble définitivement être la force dominante ici.

Le développement backend est un sujet si vaste que je vais juste faire un lien vers la brillante section backend de la feuille de route des développeurs Web 2018.


Documentation PyGRASS¶

Python est un langage de programmation plus puissant que les scripts shell mais plus facile et plus tolérant que C. PyGRASS est une interface de programmation d'applications Python (API) orientée objet pour GRASS GIS. PyGRASS offre des interfaces aux modules et fonctionnalités GRASS, ainsi qu'aux données vectorielles et raster. Pour plus de détails, voir Zambelli et al. (2013) dans les références ci-dessous. PyGRASS améliore l'intégration entre GRASS GIS et Python, rendant l'utilisation de Python sous GRASS plus cohérente avec le langage lui-même. De plus, cela simplifie les scripts et la programmation GRASS et est plus naturel pour l'utilisateur.

Contexte : En 2006, les développeurs SIG de GRASS ont commencé à adopter Python pour la nouvelle interface graphique. En raison de cela, Python est devenu de plus en plus important et les développeurs ont converti tous les scripts shell de GRASS GIS 6 en Python pour GRASS GIS 7.

Travailler avec PyGRASS vous avez besoin d'une version à jour de GRASS GIS 7. La seule action avant de commencer à travailler avec PyGRASS est de lancer GRASS GIS 7 et depuis la console lancer python ou alors python (la seconde est la méthode recommandée).

En savoir plus sur la façon de travailler avec PyGRASS dans cette documentation.


1 réponse 1

Un extrait de code inclus dans une question ici ne doit pas être simplement un copier/coller d'un script plus volumineux sur lequel vous travaillez, et il ne doit pas être ce script plus volumineux dans son intégralité. Cela devrait être quelque chose de concis qu'un répondant potentiel peut copier/coller et être prêt (ou du moins presque prêt) à exécuter un test.

Voici quelques suggestions sur ce à quoi devrait ressembler un extrait de code pour une question ArcPy.

Commencez par mettre votre code de côté et travaillez à la place sur un nouveau script de test vide. Cela pourrait s'appeler test.py , il pourrait être placé dans un emplacement simple (sans espace dans son nom de chemin) comme C: emp , et des noms simples de classes d'entités et de fichiers de formes comme C: emp estGDB estFC et C: temp est.shp peut être utilisé. Cela peut éliminer la possibilité qu'un nom de chemin long soit à l'origine d'un problème.

Idéalement, il ne devrait pas dépasser une douzaine de lignes. Ce n'est pas toujours possible mais ce devrait être le but.

Utilisez copier/coller pour importer de petites parties de votre script d'origine jusqu'à ce qu'il puisse être exécuté pour voir la même erreur, ou copiez de grandes parties et soyez prêt à en supprimer la plupart du script de test. Le but de ce script de test est purement de reproduire votre erreur, afin que vous puissiez vous renseigner à ce sujet. Le reste de votre script original est important pour vous, mais rarement pour quelqu'un qui essaie de répondre à votre question.

N'incluez pas les instructions try/except. Ceux-ci sont utilisés pour que vous puissiez piéger et traiter les erreurs dans votre code réel, mais lorsque vous essayez de comprendre pourquoi un extrait de celui-ci ne fonctionne pas, ils peuvent masquer les messages d'erreur que Python vous montrerait autrement.

Il ne doit pas inclure de fonctions sauf si elles sont absolument nécessaires à votre question. Si une partie de votre code inclut quelque chose comme :

et si cela est nécessaire pour votre question, simplifiez-la peut-être comme suit :

S'il s'agit d'un outil de script Python, au lieu de nous laisser deviner ce que vous avez peut-être entré dans un paramètre d'outil lorsque vous voyez votre problème, modifiez quelque chose comme :

Avant de publier votre extrait de code, assurez-vous que vous avez exécuté l'extrait de code exact que vous êtes sur le point de publier, puis affichez non seulement le code mais également le message d'erreur complet (le nom du script et le numéro de ligne sont inestimables) et toute autre sortie telles que les instructions print ou arcpy.AddMessage.

Idéalement, un répondeur potentiel copiera/collera simplement votre extrait de code dans un script, l'exécutera, verra le même message d'erreur et le même résultat que vous, puis pensera :

Je vois le même problème, et je suis impatient d'essayer de comprendre ce qui se passe. Je suis tellement content de ne pas avoir eu à demander une douzaine de précisions avant d'en arriver là (ce que je n'aurais pas fait car je serais passé à la question de quelqu'un d'autre).

Parfois, le style de codage d'une personne peut rebuter un répondant potentiel qui décide s'il faut donner de son temps pour essayer de comprendre une question avant d'essayer d'y répondre.

Une façon d'améliorer la lisibilité du code Python/ArcPy est d'essayer de se conformer à PEP 8 -- Style Guide for Python Code.

Un niveau de rigueur PEP 8 a été recherché par certains utilisateurs, mais n'est pas requis.


Les autres¶

AdventGX (basé à College Station, Texas, États-Unis) fournit une assistance pour l'installation, la formation et la mise en œuvre de QGIS.

arx it (basé à Genève en Suisse et à Lyon/Paris en France) a 20 ans d'expérience dans le domaine de la géoinformatique. arx iT est spécialisé dans les Systèmes d'Information Géographique (SIG) et les systèmes de géolocalisation. Notre gamme de services, couvre tous les besoins en géomatique / géospatiale : Conseil et expertise SIG, Ingénierie des données spatiales, Intégration de solutions personnalisées, Formation, Infogérance SIG et Tierce Maintenance Applicative. Nos prestations s'inscrivent dans une véritable démarche qualité, grâce à notre certification qualité ISO 9001.

Astun Technology (basée à Surrey, Royaume-Uni) a été créée en 2005 pour fournir des services SIG open source et basés sur le Web aux gouvernements locaux et centraux. Aujourd'hui, alors que toutes les organisations réalisent les avantages techniques et financiers de l'utilisation de solutions cloud pour créer, gérer et fournir leurs services GEO cruciaux, la demande pour les connaissances et l'expérience d'Astun dans la fourniture de solutions cloud SIG entièrement gérées basées sur AWS continue de croître. Pour plus d'informations, veuillez visiter https://astuntechnology.com/

Bird's Eye View GIS (basé à Albuquerque, Nouveau-Mexique, États-Unis) fournit des services SIG commerciaux, une assistance et une formation sur QGIS, GRASS GIS et d'autres applications SIG FOSS.

Champs Libres Coopérative est une entreprise belge oeuvrant dans le domaine de la géomatique et du développement de logiciels open source. Nous organisons régulièrement des formations QGIS dans nos bureaux ou chez nos clients. Nous offrons également un support à l'utilisation de QGIS et/ou pour le développement de plugins QGIS.

Clear Mapping Co (basée à Penryn, Cornouailles, Royaume-Uni) est une société internationale de conseil en conception cartographique primée. Nous créons de belles cartes pour améliorer l'efficacité sur le lieu de travail avec une conception inclusive et durable. Nos cours de formation SIG sur mesure à QGIS et à d'autres logiciels SIG offrent la possibilité d'améliorer l'efficacité de la gestion des données spatiales et de la création de cartes claires.

exeGesIS SDM Ltd est basé dans le sud du Pays de Galles au Royaume-Uni. Nous proposons des cours d'accompagnement et de formation à différents niveaux, publics ou privés, ainsi que des ateliers et du mentorat sur mesure. Nous pouvons vous assister dans la transition des solutions SIG alternatives vers QGIS, ainsi que dans le développement de plug-ins pour répondre aux besoins de votre entreprise.

FOSS Academy (basée à Bonn, Allemagne) FOSS Academy est un institut de formation et propose divers cours, des cours pour débutants aux cours avancés de programmation Python pour QGIS ainsi que des webinaires en ligne gratuits sur des sujets liés à QGIS. L'institut est exploité par WhereGroup.

GeoICON (basé à Singapour et opérant en Asie du Sud-Est) travaille avec des organisations gouvernementales depuis plus de 10 ans et propose une gamme complète de services autour de QGIS, notamment la formation et le support commercial.

Geospatial Training Solutions (Dr Nick Bearman) est basé à Cornwall, au Royaume-Uni et propose des cours de formation SIG sur mesure pour les chercheurs, les professionnels et les étudiants. J'utilise QGIS dans une grande partie de mon travail de conseil et j'enseigne à une grande variété d'experts en la matière comment comprendre et travailler avec des données spatiales. Je peux montrer à votre groupe ou organisation de recherche comment vous pouvez tirer le meilleur parti de vos données spatiales et comment créer de meilleures cartes pour vos publications ou utiliser les données spatiales pour améliorer vos résultats.

Gispo Ltd (basée en Finlande). Nous conduisons nos clients vers le succès en fournissant des solutions pragmatiques pour les décisions stratégiques en utilisant des logiciels géospatiaux open source. Nous proposons à nos clients un support et une formation QGIS, GeoServer, PostGIS, GDAL/OGR et MapProxy. Nous croyons fermement que l'ouverture l'emporte.

gis3w (basé en italie) fournit des services d'analyse géographique et écologique ainsi qu'un support et une assistance avec qgis.

GKG Kassel, Allemagne (Dr.-Ing. Claas Leiner) propose une formation, des services et un support autour des systèmes d'information géographique gratuits QGIS, GRASS, SAGA et PostGIS ainsi que la gestion, l'analyse et la cartographie des données spatiales.

Geolis (basé à Lucerne, Suisse) fournit des conseils SIG commerciaux, un support et une formation en QGIS.

L'Institute For Mapping Technology (basé à Austin, Texas, États-Unis) fournit une assistance et une formation pour QGIS et PostGIS.

Karttakeskus (basé en Finlande) fournit un support commercial et une formation pour QGIS et les données spatiales ouvertes.

Mierune Inc. (basée au Japon) fournit des services de conseil commercial, de formation, d'assistance et de personnalisation des logiciels QGIS et FOSS4G. Nous organisons également des ateliers pratiques avec ces outils. Veuillez nous contacter si vous avez des questions concernant le développement de système, la visualisation ou l'analyse impliquant des données de positionnement.

nGNUity.net - Défenseur des FOSS des Philippines fournissant des services SIG commerciaux, une formation et des conseils pour QGIS, une assistance à la visualisation de données spatiales aux gouvernements locaux, aux organisations à but non lucratif, aux agences de recherche et aux groupes communautaires depuis 2007. Offre divers services de collecte et de cartographie de données mobiles utilisant la pile logicielle Open Data Kit / KoBo Toolbox.

North River Geographic Systems, Inc est une société de conseil en géospatiale située aux États-Unis. Nous fournissons un support pour QGIS, PostGIS et une multitude de logiciels FOSS4G. NRGS fournit également un support basé sur des projets pour votre organisation, y compris un support de données, une cartographie et une analyse.

OpenGeoLabs s.r.o (basé à Prague, en République tchèque) propose des cours de formation (en utilisant la marque GISMentors), un support technique et un développement personnalisé pour les logiciels open source pour le géospatial.

Soluciones en Tecnologías de Información Geográfica (SOLTIG) (basée au Costa Rica) propose une formation, une assistance, des conseils et une programmation pour QGIS et d'autres applications FOSS.

SunGIS (basé à Valmiera, Lettonie) fournit un support commercial, des conseils, un traitement de données et une programmation personnalisée pour les solutions SDI basées sur QGIS, GRASS GIS et FOSS GIS.

Le Groupe SYGIF Inc. (basé à Rimouski, Québec, Canada) se spécialise dans le développement de technologies de l'information (SIG) visant la gestion intégrée du territoire. La société développe et prend en charge des outils complémentaires pour QGIS et MapServer et détient également une reconnaissance de la société ESRI en tant que développeur et revendeur de leurs produits.

TAXUS IT (basé à Warszawa, Pologne) fournit des services SIG commerciaux ainsi qu'une assistance et une formation en QGIS et GRASS.

Terraplan (Schallstadt/Freiburg, Allemagne) propose des formations et des conseils SIG pour QGIS. L'accent est mis sur le conseil aux municipalités, depuis l'introduction de QGIS jusqu'au remplacement complet d'autres solutions SIG commerciales.

Terrestris (Bonn, Allemagne) fournit des services commerciaux et des formations pour QGIS.

thinkWhere (Stirling, Écosse) thinkWhere est un cabinet de conseil SIG indépendant au Royaume-Uni. Nous proposons une large gamme de produits et de services SIG innovants, notamment le « Centre de localisation » (un SIG hébergé basé sur le cloud et construit à partir de technologies open source). En tant que site QGIS, notre équipe d'experts géospatiaux utilise QGIS au quotidien et fournit un support QGIS aux clients. Nous organisons également régulièrement des cours de formation QGIS et PostGIS.

WhereGroup (Bonn, Allemagne) WhereGroup fournit la gamme complète de services autour de QGIS, y compris la programmation personnalisée, le support commercial et les formations.

WIGeoGIS WIGeoGIS (basé à Munich, en Allemagne et à Vienne, en Autriche) fournit une large gamme de plugins QGIS spécialement conçus pour le géomarketing et l'analyse commerciale spatiale ainsi que des données de marché. Les fonctionnalités suivantes sont couvertes par les plugins : le géocodage par lots et la recherche d'adresses, le calcul des isochrones de temps de trajet et des matrices de distance, Huff-Gravity-Models et Territory-Planning. In addition to the plugins WIGeoGIS also offers webgis, commercial training, market data and support for QGIS.


Voir la vidéo: Introduction to GIS Analysis with GeoPandas using Python