Suite

Faire fonctionner ArcPy avec Anaconda ?

Faire fonctionner ArcPy avec Anaconda ?


J'essaie de suivre les instructions étape par étape dans la réponse à "comment séparer l'installation de Python avec ArcGIS" mais je ne trouve pas le fichier de chemin,DTBGGP64.pth, dansC:Python27ArcGIS10.2Libsite-packages.

Quelqu'un a-t-il été confronté à un problème similaire ?

Je me demande s'il existe une solution de contournement en incluant un fichier de chemin qui indique à Anaconda où arcpy est installé? J'ai essayé de créer un fichier .pth contenant le texte suivant :

# Fichier .pth pour arcpy C:Program Files (x86)ArcGISDesktop10.2in C:Program Files (x86)ArcGISDesktop10.2arcpy C:Program Files (x86)ArcGISDesktop10 .2Scripts

et l'a enregistré dansC:AnacondaLibsite-packages(c'est-à-dire si c'est bien là que tous les packages sont enregistrés) mais j'obtiens l'erreur suivante :

Traceback (appel le plus récent en dernier) : Fichier "", ligne 1, dans  Fichier "C:Program Files (x86)ArcGISDesktop10.2arcpyarcpy\__init__.py", ligne 21, dans  depuis arcpy.geoprocessing import gp File "C:Program Files (x86)ArcGISDesktop10.2arcpyarcpygeoprocessing\__init__.py", ligne 14, dans  from _base import * Fichier "C:Program Files (x86)ArcGISDesktop10.2arcpyarcpygeoprocessing\_base.py", ligne 14, dans  import arcgisscripting ImportError : le chargement de la DLL a échoué : %1 n'est pas une application Win32 valide.

J'exécute conda 3.7-py27 sur une plate-forme Windows 7 (64 bits). Anaconda est installé dansC:Anacondaet ArcMap est installé dansC:ArcGISDesktop10.2. Existe-t-il une solution alternative pour faire fonctionner arcpy avec Anaconda ? Je veux juste pouvoir exécuter mes scripts à partir de Powershell.


Vous utilisez une version 64 bits de Python dans votre installation Anaconda et le Python d'ArcMap est 32 bits. Vous devrez installer une version ArcGIS 64 bits (soit un géotraitement en arrière-plan 64 bits, soit ArcGIS for Server) et pointer dessus à la place, ou installer une instance Anaconda 32 bits à la place et réessayer. Consultez la page des téléchargements et obtenez le programme d'installation 32 bits.


Ce didacticiel vous montre comment configurer l'environnement conda pour qu'il fonctionne avec ArcGIS 10.4 et ArcGIS Pro 1.3.

Flux de travail pour configurer Anaconda avec ArcGIS 10.4

  • Installez Anaconda sans encrasser l'environnement Windows (chemins, registre) pour casser la pile python d'Esri
  • Configurez Anaconda avec les modules complémentaires que vous souhaitez, et
  • Configurez le Python d'ArcGIS afin qu'il connaisse le contenu Anaconda approprié.

1) Installez Anaconda pour tous les utilisateurs

  1. Allez sur http://continuum.io/downloads
  2. Téléchargez le 32 bits version d'Anaconda (Python 2.7)
  3. Dans les boîtes de dialogue d'installation :
    • Sélectionnez installer pour Tous les utilisateurs
    • Installer dans un dossier par défaut (C:Anaconda2)
    • IMPORTANT: Pour éviter de casser ArcGIS (ou d'autres logiciels), décochez les cases (a) faites d'Anaconda le Python par défaut et (b) ajoutez le Python d'Anaconda au PATH.
  4. Accédez à Démarrer > Tous les programmes (applications) > Anaconda2 (32 bits) > Invite Anaconda. Clic droit, exécuter en tant qu'administrateur

2) Configurer un environnement Anaconda à utiliser avec ArcGIS

  1. Recherchez les versions de numpy et matplotlib utilisées par ArcGIS.
Ouvert ArcMap et sa fenêtre Python, et saisissez ces commandes :

    • >>> importer sys, numpy, matplotlib
    • >>> print(sys.version, numpy.__version__, matplotlib.__version__)
    • ('2.7.10 (par défaut, 23 mai 2015, 09:40:32) [MSC v.1500 32 bits (Intel)]', '1.9.2', '1.4.3')
  1. Créer un environnement Anaconda compatible avec ArcGIS
    • Accédez à l'invite de commande Anaconda (Démarrer> Tous les programmes (applications)> Anaconda2 (32 bits), choisissez "Anaconda invite"), Clic droit, Exécuter en tant qu'administrateur.
    • Tapez (selon la version d'ArcGIS, j'utilise ArcGIS 10.4 comme exemple ici) :
    • "conda create -n arc104 python=2.7.10 numpy=1.9.2 matplotlib=1.4.3 pyparsing xlrd xlwt pandas scipy ipython ipython-notebook ipython-qtconsole"
    • Entrer oui procéder.
    • La commande conda d'Anaconda va alors configurer un sous-répertoire d'environnement, ex : " C:Anaconda2envsarc104 ", en y installant les packages téléchargés.
  2. Tester l'environnement virtuel
    • À l'invite de commande Anaconda, tapez : activer l'arc104
    • Taper: liste de conda. Vous pouvez voir la liste des packages installés.
  3. Ajouter plus de packages
    • Vous pouvez ajouter plus de packages en utilisant conda installer, mais assurez-vous de spécifier des numéros de version pour ceux-ci qui ne changeront pas la version de l'environnement de python ou numpy (ou ArcGIS ne pourra plus utiliser cet environnement).
    • Ajoutons la bibliothèque d'analyse spatiale Python (pysal) module.
    • Tapez la commande suivante à la Anaconda invite: "conda install -n arc104 python=2.7.10 numpy=1.9.2 matplotlib=1.4.3 pysal"

3) Configurer ArcGIS pour voir Anaconda et vice versa

  1. Anaconda Python vers ArcPy
    • Copiez le Bureau10.4.pth dans le dossier site-packages de l'environnement Anaconda :
    • De : C:Python27ArcGIS10.4Libsite-packagesDesktop10.4.pth
    • À : C:Anaconda2envsarc104Libsite-packagesDesktop10.4.pth
  2. Arcpy à Anaconda Python
    • Créer un zconda.pth (chemin) contenant le contenu "C:Anacondaenvsarc104libsite-packages".
    • Copiez ensuite zconda.pth dans C:Python27ArcGIS10.4Libsite-packages
  3. Test dans ArcMap
    • En tant qu'utilisateur régulier, démarrez ArcMap, ouvrez la fenêtre Python
    • tapez "importer pysal"
    • tapez "pysal". Un menu contextuel avec une liste de fonctions fournies par pysal est un assez bon signe que l'installation a réussi.
  4. Tester dans PyCharm
    • Démarrez PyCharm, dans FileSettings… , choisissez Project puis Project Interpreter
    • Ignorez la liste déroulante pour l'interpréteur de projet, et cliquez sur le bouton dent pour ajouter local, et dans le navigateur de fichiers, choisissez C:Anaconda2envsarc104python.exe
    • Pour exécuter votre script, faites un clic droit dessus dans la fenêtre Projet et choisissez Exécuter ou Déboguer
    • Redémarrez PyCharm pour que la console Python utilise l'environnement arc104.

Flux de travail pour configurer Anaconda avec ArcGIS Pro 1.3

1) Créer un environnement Anaconda compatible avec ArcGIS Pro

  • Copiez le dossier arcgispro-py3 à partir de C:Program FilesArcGISProinPythonenvs et collez-le dans C:Anaconda2envs
  • Renommer le dossier copié arcgispro-py3 dans C:Anaconda2envs à arcpro

2) Tester l'environnement virtuel

  • À l'invite de commande Anaconda, tapez : activer arcpro
  • Taper: liste de conda. Vous pouvez voir la liste des packages installés

3) Ajouter plus de packages

  • Ajoutons la bibliothèque d'analyse spatiale Python (pysal) module.
  • Tapez la commande suivante à la Anaconda invite:"conda install pysal"

4) Configurer ArcGIS pour voir Anaconda et vice versa

  • Anaconda Python vers ArcPy
    • Modifier le ArcGISPro.pth (chemin) dans "C:Anaconda2envsarcprolibsite-packages".
    • Changer le parent ArcPy chemin vers C:Program FilesArcGISProResourcesArcPy
    • Changer le parent ArcToolBox chemin vers C:Program FilesArcGISProResourcesArcToolBox
  • Arcpy à Anaconda Python
    • Créer un zconda.pth (chemin) contenant le contenu "C:Anaconda2envsarcprolibsite-packages".
    • Copiez ensuite zconda.pth dans C:Program FilesArcGISProinPythonenvsarcgispro-py3libsite-packages
  • Test dans ArcGIS Pro
    • Démarrez ArcGIS Pro, ouvrez la fenêtre Python
    • tapez "importer pysal"
    • tapez "pysal". Un menu contextuel avec une liste de fonctions fournies par pysal est un assez bon signe que l'installation a réussi.
  • Tester dans PyCharm
    • Démarrez PyCharm, dans FileSettings… , choisissez Project puis Project Interpreter
    • Ignorez la liste déroulante pour l'interpréteur de projet, et cliquez sur le bouton dent pour ajouter local, et dans le navigateur de fichiers, choisissez C:Anaconda2envsarcpropython.exe
    • Pour exécuter votre script, faites un clic droit dessus dans la fenêtre Projet et choisissez Exécuter ou Déboguer
    • Redémarrez PyCharm pour que la console Python utilise l'environnement arcpro.

Les références

  1. https://gisday.wordpress.com/2016/07/18/setting-up-anaconda-pysal-with-arcgis-python-environment/

Pour résoudre ce problème, accédez au dossier python27Libsite-packages, le mien se trouvait sous "C:Python27ArcGIS10.1Libsite-packages", et recherchez le fichier Desktop10.1.pth.

Sur mon système, le problème a été résolu en copiant simplement le fichier Desktop10.1.pth dans "C:AppDataLocalContinuumAnacondaLibsite-packages".

Si vous exécutez Anaconda 64 bits, vous obtiendrez une erreur différente lorsque vous essayez d'importer arcpy car ArcGIS exécute 32 bits. Par conséquent, vous devez vous assurer que l'Anaconda 32 bits est installé plutôt que 64 bits afin que les choses correspondent à ArcGIS. Une fois que le fichier est copié et que vous avez Anaconda 32 bits, import arcpy devrait fonctionner.


Si vous avez installé Arc avant Anaconda, votre IDLE par défaut, votre fenêtre Python (dans Arc) et votre console Python seront toujours extraits de vos modules installés sur Arc, c'est-à-direC:Python27ArcGIS Lib(et/ou)Libsite-paquets. Si vous avez des packages installés avec Anaconda que vous souhaitez utiliser avec l'installation de Python d'Arc, vous devrez écrire des fichiers .pth afin de les partager entre les installations Python (lecture légère).

Par exemple, je voulais utiliser le package pandas de mes affaires Anaconda. J'ai créé un fichier texte dans le dossier site-packages de mon Arc appeléanaconda.pthavec le contenu deC:AnacondaLibsite-packagespour lier l'installation d'Arc aux packages du site Anaconda. Maintenant, je pourraisimporter des pandasà l'intérieur du Python installé sur Arc sans ImportError. (Si vous rencontrez des problèmes avec numpy, renommez le fichier Arc-installénumpydossier vers_numpy).

Au verso, copiez et collez leBureau.pthdu dossier Arc site-packages dans celui de votre Anaconda (qui spécifie l'emplacement réel du package arcpy), et créez un autre fichier .pth qui pointe vers votre dossier Arc site-packages dans votre Anaconda afin que vous puissiez utiliser les packages Arc de Spyder si tu l'utilises.


Un autre utilisateur a posé une question similaire sur github, qui pourrait vous intéresser. Voici l'essentiel de ce qu'un utilisateur a recommandé d'importer des données d'auto-complétion arcpy pour anaconda :

DamnWidget a commenté le 26 février https://github.com/DamnWidget/anaconda/issues/284

Ouvrez un PowerShell ou CMD.exe et accédez à votre installation anaconda sous le dossier Packages dans votre Sublime Text 3 %APPDATA%. CD dans le dossier anaconda_lib et démarrez un interpréteur Python interactif sur ce chemin.

Copiez et collez les éléments suivants :

importer des jedi

print(jedi.Script('import arcpy; arcpy.').completions())

Ensuite (au moins pour moi), il a renvoyé un tas de choses dans la fenêtre cmd, et cela semblait avoir fonctionné. J'ai rouvert Sublime Text et il affiche la saisie semi-automatique pour les fonctions arcpy.

Mon problème est qu'il faut plus de 5 secondes pour les charger, il semble ne jamais garder arcpy chargé en mémoire plus de quelques secondes. Mais c'est un autre problème je pense...


Vous devez simplement installer la version 32 bits d'Anaconda.


Importer arcpy vers spyder

J'essaie de travailler avec Arcpy depuis Spyder, mais lorsque j'importe le package Arcpy, je reçois le message suivant :

J'ai essayé d'installer le package Arcpy 2.7 (ma version ArcMap et IDLE) via l'invite Anaconda :

Jusqu'à présent, j'ai travaillé avec IDLE, mais ce que je veux vraiment, c'est travailler avec arcpy directement depuis Spyder. Spécialement pour extraire des données vectorielles et raster (coordonnées géométriques, valeurs de table d'attributs, etc.), afin que je puisse les utiliser par la suite.

Y a-t-il un moyen d'y parvenir?


ArcPy et ArcGIS

En utilisant Python, ce livre vous guidera des scripts Python de base aux outils de script ArcPy avancés. Ce livre commence par la configuration de votre environnement Python pour l'automatisation ArcGIS.

Éditeur: Packt Publishing Ltd

Utilisez des modules Python tels qu'ArcPy, ArcREST et l'API ArcGIS pour Python pour automatiser l'analyse et la cartographie des données géospatiales. À propos de ce livre Effectuez des analyses SIG plus rapidement en automatisant les tâches. Accédez aux données spatiales contenues dans les fichiers de formes et les bases de données géographiques et transformez-vous entre les systèmes de référence spatiale. Automatisez la cartographie des analyses géospatiales et la production d'atlas. À qui s'adresse ce livre Si vous êtes un étudiant ou un professionnel SIG qui a besoin de comprendre comment utiliser ArcPy pour réduire les tâches répétitives et effectuer des analyses plus rapidement, ce livre est fait pour vous. C'est également un livre précieux pour les programmeurs Python qui souhaitent comprendre comment automatiser les analyses géospatiales et mettre en œuvre la gestion des données ArcGIS Online. Ce que vous apprendrez Comprendre comment intégrer Python dans ArcGIS et rendre l'analyse SIG plus rapide et plus facile. Créez un script Python à l'aide d'ArcGIS ModelBuilder. Apprendre à utiliser les services d'entités en ligne ArcGIS et les bases de l'API REST d'ArcGIS Comprendre l'environnement Python unique qui est nouveau avec ArcGIS Pro En savoir plus sur la nouvelle API Python d'ArcGIS et comment utiliser Anaconda et Jupyter avec elle Apprendre à contrôler ArcGIS Enterprise à l'aide d'ArcPy In Détail ArcGIS permet des analyses complexes d'informations géographiques. Le module ArcPy est utilisé pour scripter ces analyses ArcGIS, offrant un moyen productif d'effectuer des géo-analyses et d'automatiser la production de cartes. La deuxième édition du livre se concentre sur les nouveaux outils Python, tels que l'API ArcGIS pour Python. En utilisant Python, ce livre vous guidera des scripts Python de base aux outils de script ArcPy avancés. Ce livre commence par la configuration de votre environnement Python pour l'automatisation ArcGIS. Ensuite, vous apprendrez à générer des cartes à l'aide d'ArcPy dans MXD et à mettre à jour la classe d'entités dans une géodatabase à l'aide d'arcpy et d'ArcGIS Online. Ensuite, vous serez initié à la bibliothèque ArcREST, suivi d'exemples sur l'interrogation, la mise à jour et la manipulation des services d'entités ArcGIS Online. De plus, vous activerez vos scripts dans le navigateur et interagirez directement avec ArcGIS Online à l'aide du bloc-notes Jupyter. Enfin, vous pouvez apprendre à utiliser ArcPy pour contrôler ArcGIS Enterprise et explorer des sujets sur les déploiements, les assurances qualité des données, les mises à jour des données, le contrôle de version et les sauvegardes de mise à jour. À la fin du livre, vous serez équipé des connaissances nécessaires pour créer une analyse automatisée avec une administration réduisant la nature chronophage du SIG. Style et approche Le livre adopte une approche pragmatique, montrant des moyens d'automatiser les tâches répétitives et d'utiliser les fonctionnalités d'ArcPy avec ArcGIS Pro et ArcGIS en ligne.


La saisie semi-automatique dans ArcPY ne fonctionne pas

J'essaie de faire fonctionner ma saisie semi-automatique dans ArcPy dans ArMap.

Quelqu'un peut-il me dire pourquoi cela ne fonctionne pas.

par DanPatterson_Re fatigué

pouvez-vous développer ou montrer de quoi vous parlez spécifiquement. vous êtes peut-être dans cette zone des fichiers d'aide

mais vous n'êtes pas obligé de travailler dans cet IDE si vous en avez un meilleur installé et avez activé les options de géotraitement pour l'utiliser

Voir image ci-jointe. Il ne fournit pas d'options lorsque je tape p - Je souhaite que l'option d'impression ou de réussite soit fournie par la saisie semi-automatique dans ArcPy.

Quelle était l'autre idée que vous avez donnée concernant l'IDE. J'ai également installé l'outil PythonWin pour écrire des scripts. Mais il n'y a pas d'autocomplétion dedans.

Faites-moi savoir la meilleure approche.

par DanPatterson_Re fatigué

y a-t-il un menu d'édition ? sélectionnez afficher la complétion automatique

à partir de cette question migrée de Stack Overflow

Mais j'utilise pythonwin, pycharm, pyscripter et spyder ont tous des objectifs différents pour moi et j'ai la plupart d'entre eux configurés pour fonctionner avec ArcMap 10.4.x/ et ArcGIS Pro


Anaconda interférant avec l'exécution des statistiques spatiales dans ArcMap 10.2

J'exécute ArcGIS 10.2 avec un géotraitement en arrière-plan 64 bits. J'ai également configuré Anaconda 64bit comme mon interprète préféré. Je peux écrire dans Spyder et appeler arcpy, pas de problème là-bas.

Mon problème est que maintenant, lorsque j'exécute des scripts de statistiques spatiales, une erreur se produit. J'ai essayé d'exécuter une analyse optimisée des points chauds aujourd'hui et cela m'a donné ceci :

Rétrolien (appel le plus récent en dernier) :

Fichier "c:program files (x86)arcgisdesktop10.2ArcToolboxScripts

OptimizedHotSpotAnalysis.py", ligne 30, dans <module>

importer MoransI_Increment en tant que MI

Fichier "c:program files (x86)arcgisdesktop10.2ArcToolboxScripts

MoransI_Increment.py", ligne 24, dans <module>

Fichier "C:Python27ArcGIS10.2libsite-packagespylab.py", ligne 1, dans <module>

à partir de matplotlib.pylab importation *

Fichier "C:Python27ArcGIS10.2libsite-packagesmatplotlib\__init__.py", ligne

à partir de l'import matplotlib.rcsetup (defaultParams,

Fichier "C:Python27ArcGIS10.2libsite-packagesmatplotlib csetup.py", ligne 18,

depuis matplotlib.fontconfig_pattern importer parse_fontconfig_pattern

fontconfig_pattern.py", ligne 23, dans <module>

de matplotlib.pyparsing import Literal, ZeroOrMore,

Fichier "C:Python27ArcGIS10.2libsite-packagesmatplotlibpyparsing.py", ligne

saxutils.py", ligne 6, dans <module>

import os, urlparse, urllib, types

Fichier "C:UserseagleAppDataLocalContinuumAnacondaLiburllib.py", ligne

Fichier "C:UserseagleAppDataLocalContinuumAnacondaLibsocket.py", ligne

ImportError : le chargement de la DLL a échoué : %1 n'est pas une application Win32 valide.

Alors voici ce qui m'embrouille. Pourquoi appelle-t-il une DLL 32 bits si j'ai installé le géotraitement en arrière-plan 64 bits ?

Idéalement, je voudrais garder Anaconda sur mon système. Existe-t-il un moyen pour moi de rediriger ArcMap vers l'interpréteur 32 bits pour les besoins des scripts de la boîte à outils ?


D'autres packages Python à utiliser avec Arcpy ?

J'apprends Python pour la science des données et je cherche à intégrer ce que j'apprends dans mes projets SIG. Peut-être que je pourrais exporter une table Near Analysis au format csv et exécuter des fonctions statistiques dessus.

Quelqu'un d'autre utilise-t-il d'autres packages Python dans le même script qu'Arcpy ?

Quelles tâches faites-vous avec ces packages ?

J'utilise beaucoup Pandas pour manipuler des tableaux et des formats. La variété des méthodes de sortie (dict, json, csv, xls, etc.) rend la conversion de données assez simple. Il alimente également bien l'API Python pour la gestion d'ArcGIS Online ou du portail.

Au fur et à mesure que vous apprenez, assurez-vous de comprendre les différences entre Python 2 et Python 3, 32 et 64 bits et qui est exécuté par ArcPy via ArcGIS Desktop et ArcPy via ArcGIS Pro. Ces différences générales seront essentielles pour vous assurer que vous pouvez utiliser différentes bibliothèques.

Dans quelle mesure Pandas fonctionne-t-il avec les classes d'entités dotées d'un réseau géométrique ?

Il alimente également bien l'API Python pour la gestion d'ArcGIS Online ou du portail.

En tant que nouvel apprenant Python, voudriez-vous expliquer comment cela fonctionne s'il vous plaît ?

J'ai utilisé Pandas plusieurs fois auparavant dans mes cours, mais j'en ai oublié la plupart depuis plus de 2 ans. En ce moment, j'apprends automatiquement Python à partir du niveau 0 avec le cours ouvert du MIT. À quel moment pensez-vous que j'appliquerai mes connaissances et compétences Python dans ArcGIS ? En ce moment, je ne fais que m'entraîner sur Codeacademy et Codewars.

Geopandas est un bon module. Vous pouvez lire un fichier de formes (ou d'autres formats spatiaux) et le traiter comme une trame de données de pandas. Je n'écris pas de scripts Python depuis si longtemps, mais je trouve cela plus facile que d'utiliser arcpy pour explorer les statistiques et éditer des tableaux.

Pandas/Numpy pour la manipulation de données. Si vous apprenez python pour la science des données, vous connaissez probablement déjà ces bibliothèques

Reportlab pour générer des rapports. C'est un peu une courbe d'apprentissage mais offre une tonne de flexibilité/personnalisation

OpenCV/Scikit Image/PIL pour le traitement d'images.

Requests/BeautifulSoup4 pour le grattage de pages Web

Matplotlib/Seaborn pour le traçage/la visualisation

fuzzywuzzy pour la correspondance de chaîne floue. Est pratique pour traiter des données désordonnées

sentinelsat pour avoir parlé au Copernicus Open Access Hub

Je vais travailler fuzzywuzzy dans mon prochain script juste pour pouvoir taper ce mot plus souvent

Généralement, j'essaie d'éviter ArcPy comme la peste car c'est une douleur absolue à utiliser avec des environnements virtuels et assez lent. De plus, si vous mettez à niveau votre logiciel, Esri supprime l'ancienne installation Python et la remplace par un nouveau chemin. Supprimer par la suite tous les packages que vous avez installés, ce qui n'est pas bon lorsque vous avez un tas de tâches planifiées. Il semble avoir été quelque peu résolu dans l'API ArcGIS pour Python, mais honnêtement, je n'ai pas joué avec.

Selon le script et ses fonctionnalités, nous utilisons couramment les bibliothèques suivantes :

psycopg2 - Adaptateur de base de données PostgreSQL

schedule - Planifiez quand exécuter les scripts

pandas - Traitement et optimisation des données

shapely - Gestion et ajustement de la géométrie

ogr/gdal - Formats géospatiaux en lecture/écriture

Il y en a d'autres excellents répertoriés ici et beaucoup de bibliothèques spécialisées là-bas. En fait, je n'ai pas utilisé GeoPandas mais ça a l'air génial. Devrait jouer avec plus car il combine beaucoup des bibliothèques ci-dessus.


Mise à niveau d'ArcPy vers GeoPandas

Je suis développeur Python au sein du département SIG d'une grande entreprise de télécommunications. C'est mon premier travail et cela ne fait qu'un an.

Notre bureau utilise Python 2.7 pour toutes les opérations Python et en particulier "ArcPy". TBH, ArcPy est très lent (il faut littéralement quelques secondes pour importer la bibliothèque !!) et cela me tape sur les nerfs tout en traitant une énorme classe d'entités.

En faisant quelques recherches, je suis tombé sur "GeoPandas" qui, je suppose, fonctionnera très bien avec Python 3. Je suis prêt à travailler avec Python 3 et surtout avec Pandas car cette compétence est en général très demandée. J'ai 3 questions en tête, ce serait super si quelqu'un pouvait m'aider.

Quelle est la fiabilité de GeoPandas par rapport à ArcPy en termes de forums de support communautaire et de maniabilité ?

À quelle vitesse GeoPandas est-il comparé à ArcPy ? (Besoin de le savoir pour convaincre mon manager)

Y a-t-il quelque chose que je ne peux pas faire avec GeoPandas ?

PS : La plupart de mon travail consiste à effectuer des analyses de données telles que des intersections spatiales et des jointures, à récupérer des données à partir d'attributs, à publier des services Web de géotraitement (qui sont intégrés à ArcMap, je ne sais pas si cela peut être fait dans GeoPandas)

Vous ne comparez pas les mêmes choses. Comme quelqu'un l'a dit ci-dessus, ArcPy est le frontal de script d'un système SIG à part entière. GeoPandas pourrait être considéré comme une extension de Pandas pour gérer les données spatiales. Personnellement, j'utilise uniquement GeoPandas pour mon travail quotidien (de recherche) car cela me donne la liberté dont j'ai besoin. Mais je l'utilise avec un tas d'autres packages de la pile python géospatiale, comme networkx, pysal, rasterio, + scipy, numpy, scikit-learn.

GeoPandas vous donne la liberté, souvent des améliorations de performances (voir Dask, Numba, Cython), mais il peut être plus compliqué de faire des choses avec qu'avec ArcPy (s'il a préparé un outil de traitement pour cela).

dépend. Je n'ai connaissance d'aucune comparaison de performances (une seule m'intéresse), cela dépend probablement de la tâche que vous souhaitez effectuer et de votre capacité à faire du code efficace/vectorisé/parallélisé.

Hé bien oui. Si nous parlons strictement de GeoPandas, alors bien sûr, ses capacités sont limitées. Si nous parlons de l'ensemble de la pile géopython open source, je ne pense pas que vous atteindriez ses limites.

Pensez-vous qu'il existe des services Web de géotraitement comparables à ceux fournis par ArcMaps. Je suis un peu nouveau sur DjangoRestFramework pour publier des services. Mais j'aimerais connaître une méthode directe.

Vous devriez également envisager d'utiliser la version Python 3 64 bits d'ArcPy fournie avec ArcGIS Pro. Traitement beaucoup plus rapide pour la plupart des tâches. Je vais juste mentionner que vous devriez rechercher pourquoi vous devriez commencer à laisser ArcMap/Python 2 derrière ArcGIS Pro/Python 3 car cela a déjà été discuté en profondeur dans d'autres fils de discussion.

En passant, vous ne pourrez pas contourner le temps d'importation. Il se passe beaucoup de choses sous le capot pendant l'importation. ArcPy est une bibliothèque beaucoup plus grande que GeoPandas et est un wrapper pour ArcObjects. Je pense que cela fonctionne via les liaisons C++ lors de l'importation, mais je ne l'ai pas confirmé ni profilé.

Si vous travaillez sur une preuve de concept ou explorez des données, je suggère Juypter Notebooks car il conservera l'importation lors de votre prototype. Cela peut être beaucoup plus rapide qu'un script CLI que vous exécutez encore et encore lorsque vous découvrez le processus ou les données.


La meilleure façon de commencer à apprendre python pour SIG ?

Je pense que la première chose à réaliser est qu'il existe un million de packages sous l'égide de 'python for GIS' et vous devez probablement affiner ce que vous voulez apprendre dans un premier temps. Je suggère geopandas/shapely, puis à partir de là pour étendre à plus de packages (par exemple, une intégration postgis, une sorte d'implémentation de package comme pyQGIS ou ArcPY, ou une sorte de package de géométrie supplémentaire comme cgal).

Celui-ci est une bonne introduction si vous voulez un cours formel

Apprenez d'abord python seul, puis appliquez le SIG. Cela vous permettra de récupérer de nouveaux packages beaucoup plus rapidement et d'écrire un code plus efficace. Il existe un cours gratuit du MIT, une introduction à la programmation en utilisant python, vérifiez peut-être cela.

Si vous utilisez arcpy, je recommande fortement

Ils publient la mise à jour (Python 3, ArcPro) pour ce livre en mai (numérique) et juin (papier)

Il existe tellement de ressources qu'il est difficile de savoir laquelle choisir !

Je vois toujours ce cours être fortement recommandé.

Ces cours sont excellents et s'appliquent aux SIG.

Une fois que vous avez appris les bases, restez coincé et écrivez autant de code que possible - faire des erreurs et résoudre des problèmes vous apprendra des choses que vous ne pouvez pas apprendre autrement. Si vous êtes bloqué, Google et stackoverflow sont vos amis, et s'ils ne peuvent pas vous aider, une question claire et bien structurée ici ou stackoverflow ou divers autres forums devrait pouvoir le faire - parfois simplement en tapant le problème comme si vous x27re va poster une question vous aide à trouver la réponse.

Téléchargez et installez Anaconda

créez un nouvel environnement avec au moins des cahiers jupyter et des geopandas, vous souhaitez généralement également les packages suivants : matplotlib, pandas, numpy, shapely

démarrer un cahier jupyter importer des géopandas et lire dans un fichier de formes

commencer à faire des trucs avec, le tracer, changer les attributs, modifier les géométries, etc.

créez une fonction ou deux à partir de quelques lignes de code que vous avez écrites pour les réutiliser facilement

À partir de là, je dis rechercher quelque chose que vous voulez faire, une tâche concrète et commencez à résoudre ce problème en cherchant beaucoup sur Google et en utilisant des réponses stackoverflow jusqu'à ce que vous compreniez bien.

Chose stupide à signaler mais il faut commencer par un cours de python pour en saisir les bases. Ne peut vraiment pas être sous-estimé.

À partir de là, cela dépend de ce que vous voulez. Les pages Web d'aide d'arcpy sont excellentes pour être honnête. Mais vous aurez également besoin d'apprendre d'autres packages. Je suggère numpy, sys, xlsxreader et lecteur csv car ils interagissent tous avec le SIG

Commencez avec des livres de programmation pour les enfants. puis l'une des ressources fines déjà énumérées.

J'ai trouvé le livre pour enfants très facile à digérer. et vous pouvez construire des projets amusants qui aident à apprendre les bases

Une autre voie à utiliser une fois que vous êtes familiarisé avec python, est de créer un modèle utile mais simple dans model-builder. assurez-vous que cela fonctionne, puis exportez-le en python et voyez comment tout est codé et syntaxé. Je suis moi-même au début de l'apprentissage du python et j'ai trouvé cette méthode très utile.

Je suis surpris que personne d'autre n'ait mentionné le modéliste. Cela m'a été extrêmement utile d'apprendre le python. J'ai trouvé que si vous l'utilisez pour un vrai projet, c'est plus facile à apprendre qu'un cours de python abstrait.

Code Academy était génial pour apprendre les bases, à partir de là, l'accent est mis sur plus de bibliothèques SIG comme arcpy, etc.

Je dois également participer pour apprendre à utiliser bash.

Je recommanderais de commencer par Python par lui-même. Automate The Boring Stuff est disponible gratuitement en ligne et explique très bien les concepts tout en vous donnant de petits projets à réaliser. Une fois que vous avez lu le livre et que vous vous sentez à l'aise avec Python, lisez la documentation de Geopandas et Pandas pour comprendre comment ils fonctionnent. Ensuite, il suffit de les utiliser pour faire de petites choses comme lire et manipuler des fichiers .csv jusqu'à ce que vous vous sentiez à l'aise de les utiliser.

En outre, il y a une tonne d'informations à obtenir en examinant les questions et réponses sur l'échange de piles SIG lorsque vous avez des questions ou que vous êtes bloqué au début.


Apprendre l'analyse géospatiale avec Python

Un guide efficace sur les systèmes d'information géographique et l'analyse de télédétection à l'aide de Python 3 À propos de ce livre Construire des applications pour le développement SIG en exploitant Python Cela se concentre sur les modules Python intégrés et les bibliothèques compatibles .

Éditeur: Packt Publishing Ltd

Un guide efficace sur les systèmes d'information géographique et l'analyse de télédétection à l'aide de Python 3 Ce didacticiel pratique et pratique vous apprend tout sur l'analyse géospatiale en Python À qui s'adresse ce livre Si vous êtes un développeur, un chercheur ou un analyste Python qui souhaite effectuer des analyses géospatiales, de modélisation et SIG avec Python, alors ce livre est pour toi. Une connaissance de la cartographie et de l'analyse numériques à l'aide de Python ou d'un autre langage de script pour l'automatisation ou le traitement manuel des données est appréciée. Ce que vous apprendrez Automatisez les flux de travail d'analyse géospatiale à l'aide de Python Codez le SIG le plus simple possible en 60 lignes de Python Moulez des cartes thématiques avec les outils Python Obtenez les différentes formes sous lesquelles les données géospatiales sont fournies Produisez des contours d'altitude à l'aide des outils Python pour en savoir plus sur le suivi des données en temps réel et pour la chasse aux tempêtes En détail L'analyse géospatiale est utilisée dans presque tous les domaines auxquels vous pouvez penser, de la médecine à la défense en passant par l'agriculture. Ce livre vous guidera en douceur dans ce domaine passionnant et complexe. Il vous guide à travers les blocs de construction de l'analyse géospatiale et comment les appliquer pour influencer la prise de décision à l'aide du dernier logiciel Python. Apprendre l'analyse géospatiale avec Python, 2e édition utilise le langage de programmation expressif et puissant Python 3 pour vous guider à travers les systèmes d'information géographique, la télédétection, la topographie, etc., tout en fournissant un cadre pour vous permettre d'aborder efficacement l'analyse géospatiale, mais selon vos propres termes . Nous commençons par vous donner un petit aperçu du terrain, et un tour d'horizon des techniques et technologies utilisées. Nous avons ensuite divisé le domaine en ses domaines de spécialité : SIG, télédétection, données d'altitude, modélisation avancée et données en temps réel. Ce livre vous apprendra tout ce que vous devez savoir sur l'analyse géospatiale, de l'utilisation d'un progiciel ou d'une API particulier à l'utilisation d'algorithmes génériques pouvant être appliqués. Ce livre se concentre sur Python pur dans la mesure du possible afin de minimiser la compilation de binaires dépendants de la plate-forme, afin que vous ne vous enlisiez pas à vous préparer à faire une analyse. Ce livre complétera votre bibliothèque technique grâce à des recettes pratiques qui vous donneront une bonne compréhension d'un domaine qui complète de nombreuses activités humaines modernes. Style et approche Il s'agit d'un didacticiel pratique qui vous apprend tout sur l'analyse géospatiale de manière interactive à l'aide de Python.


Installer GDAL : Tutoriel mis à jour ?

Quelqu'un a-t-il un guide étape par étape mis à jour sur la façon d'installer GDAL pour fonctionner avec Python ?

J'ai effectué des recherches sur Google et sur l'échange de piles SIG et tous les conseils semblent obsolètes car je n'ai pas réussi à faire fonctionner gdal lorsque j'essaie de l'importer en Python.

Des conseils de la part de ceux qui ont récemment installé GDAL avec succès ?

Merci pour votre aide initiale en tout cas.

Le problème que j'avais était que beaucoup d'instructions continuaient à dire des choses comme trouver le dossier bin ou d'autres dossiers qui n'existaient pas dans mes téléchargements.

Si quelqu'un a besoin d'aide pour installer GDAL en 2016, ce message de GIS stack exchange a fonctionné pour moi : (faites défiler vers le bas pour trouver le message de xunilk)

par DanPatterson_Re fatigué

Quand vous l'avez installé, où l'avez-vous placé ?

Sur quel site d'installation l'avez-vous obtenu (il y en a beaucoup) ?

Si vous utilisez une distribution arcgis de python, vos chemins python ne sont pas conventionnels.

Dans tous les cas, je suppose que vous avez installé la version 32 bits pour python 2.7, plus de détails aideraient

par Luke_Pinner

Pour une version reconditionnée des liaisons Python non officielles GDAL de Cristoph Gohlke construites contre numpy 1.9 avec les plugins ECW et MrSID inclus, vous pouvez essayer :

par DanPatterson_Re fatigué

Luc. Je me suis interrogé sur cette déclaration sur le site

The binaries are compatible with the official CPython distribution on Windows >=6.0. Chances are they do not work with custom Python distributions included with Blender, Maya, ArcGIS , OSGeo4W, ABAQUS, Cygwin, Pythonxy, Canopy, EPD, Anaconda, WinPython etc. Many binaries are not compatible with Windows XP or Wine.

So the pip you posted is yours I presume for python 2.7?

by Luke_Pinner

Dan, Gohlke's stuff that I've tried works fine with ArcGIS installed python 2.7. There are a few gotchas though, mainly to do with C extension version compatibility. The version I repackaged is built against numpy 1.9 so should work with ArcGIS 10.3

For numpy 1.7 (i.e an ArcGIS 10.1 or 10.2 python installation)

This is only tangentially related, but seems relevant to this thread. I installed GDAL 1.11.3 on ArGIS 10.3.1, it works fine. BUT when I run a script that used to run under under 10.2, I now get the following error:

Traceback (most recent call last):

File "C:Python27ArcGIS10.3libsite-packagesosgeogdal.py", line 1176, in ReadAsArray

File "C:Python27ArcGIS10.3libsite-packagesosgeogdalnumeric.py", line 1, in <module>

File "C:Python27ArcGIS10.3libsite-packagesosgeogdal_array.py", line 26, in <module>

File "C:Python27ArcGIS10.3libsite-packagesosgeogdal_array.py", line 22, in swig_import_helper

_mod = imp.load_module('_gdal_array', fp, pathname, description)

ImportError: numpy.core.multiarray failed to import

From what I gather, the error comes from a mismatch between the updated GDAL installation and the numpy version (1.7.1) that was installed with ArcGIS. The reason I post this here is that Luke mentioned installing numpy 1.9. I have read in other fora that this might not work with Arc, has anyone tried it? Is it better to update numpy or downgrade GDAL?


Voir la vidéo: Integrating Deep Learning with ArcGIS using Python