Le blog francophone consacré
aux technologies Esri

5 bonnes raisons d'utiliser Jupyter Notebook avec ArcGIS

Jupyter Notebook est un outil puissant qui permet aux utilisateurs du langage de scripting Python de créer et de partager des documents interactifs contenant du code dynamique et exécutable, des visualisations de contenus, des textes de documentation et des équations. Le terme "Notebook" est lié au caractère intrinsèque de l'outil qui permet d'écrire des petits bouts de code (snippets) exécutable (appelé "cellules"), de les documenter pour expliquer ce qu'elles font et d'afficher les données résultant de leur exécution. Tout cela, stocker dans un document partageable avec d'autres utilisateurs.
  
 
Jupyter Notebook a gagné une large popularité dans la communauté des Data Scientists utilisant l'environnement Python pour différentes raisons. En tant qu'utilisateur quotidien d'ArcGIS pour des tâches d'analyse de données, de gestion de contenus ou d'administration du SIG Web, je trouve cet outil extrêmement efficace à minima pour les 5 raisons suivantes:
  
  
1. Jupyter Notebook est une solution mature et gratuite
   
Jupyter est une application web open-source permettant de programmer dans de nombreux langages de scripting dont Ruby, R, Julia, Scala et bien évidement Python. Le projet Jupyter (contraction de Julia, Python et R) est une évolution du projet IPython démarré en 2014 et dont la gouvernance est affilée à la fondation NumFOCUS.
   
   
Cette application gratuite est utilisée par de grandes entreprises comme Amazon, Google, Microsoft, IBM, Nasa, Netflix, QuantStack comme interface sur des systèmes de cloud Computing et d'analyse Big Data. Jupyter est intégré dans différentes plateformes de Data Science comme celle d'Anaconda.
      
    
2. Prototypage des workflows Python
     
   
Les notebooks Jupyter sont vraiment utiles lorsque vous finalisez un processus de traitement de données et que vous êtes encore en phase de prototypage du script qui traduira ce processus. Ceci est notamment dû à la capacité d'écrire du code dans des cellules distinctes, qui peuvent être exécutées indépendamment du reste du script. Cela permet à un utilisateur Python de tester rapidement une étape spécifique d'un workflow séquentiel, sans ré-exécuter le code depuis le début du script.
    
D'autres environnements de développement intégrés (IDE) permettent de le faire de différentes manières, mais je trouve que le concept de "cellule de code" de Jupyter Notebook est probablement l'approche la plus intuitive pour cette logique de prototypage et de code séquentiel.
   
   
3. Visualisation des Dataframes Pandas
  
La librairie Pandas (Python Data Analysis Library) fournit des structures de données (Dataframe) haute performance et très facile à utiliser. Ils permettent de travailler avec de grandes quantités de données, d'origines diverses, extrêmement rapidement. L'objet principal est un Dataframe, qui est pour l'essentiel une table en mémoire qui permet des opérations d'indexation puissantes.
   
   
Jupyter Notebook permet de visualiser ces structures de données à tout moment de votre Notebook. Ceci est très utile car vous pouvez voir l’état de vos données à chaque étape de votre processus d'analyse. Mieux encore, certaines fonctions de l'API Python ArcGIS (voir cet exemple) permettent de publier ces structures de données en tant que tables (ou couches) sur le portail et de visualiser ainsi les données de vos Dataframes sous forme de carte. 
      
   
4. Interaction avec la plateforme ArcGIS
  
Un autre point intéressant avec les Notebooks Jupyter, c'est leur intégration à la plateforme ArcGIS. L'API Python ArcGIS a été mise au point par Esri pour donner accès aux différentes capacités du SIG Web ArcGIS telles que l'analyse de données, la gestion des contenus du portail ou encore l'administration des utilisateurs, ... La finalité était clairement de permettre aux utilisateurs de scripter et d'automatiser ces tâches en les enchainant. Il y a donc un véritable intérêt à coupler cette nouvelle API à une interface puissante comme Jupyter.


En construisant une API Python pour gérer les différents aspects d'un portail ArcGIS, Esri a fait en sorte qu'elle soit intégrable aux Notebooks Jupyter. Il s'agit d'une véritable extension de votre SIG distribué qui offre une porte d'entrée sur votre portail ArcGIS, via Notebook Jupyter. Par exemple, l'API Python ArcGIS permet:
  
  • de se connecter au portail ArcGIS de votre organisation et vous permettra de rechercher, de filtrer et d'afficher des contenus de ce portail
  • d'accéder à la liste des utilisateurs et des groupes afin de les manipuler (rechercher, filtrer, lister, créer, supprimer, modifier, ...)
  • d'afficher des statistiques sur l'usages de certains contenus par certains utilisateurs
  • de gérer les rôles et les droits d'accès de certains utilisateurs à certains contenus et fonctionnalités
  • de créer ou d'ajouter de nouveaux contenus sur le portail (couches, cartes, scènes, documents)
  • de faire appel aux capacités d'analyse de votre serveur SIG (y compris Image Server, GeoAnalytics, Network Analyst, ...) et d'afficher interactivement les résultats (cartographiques ou non) de ces analyses
  • d'automatiser la sauvegarde de certaines éléments de contenus de votre portail
  • de réaliser des statistiques fines sur l'usages des ressources de votre portail
  • etc...  
   
     
5. Bientôt au coeur de certains applications ArcGIS
  
Une dernière raison de s'intéresser, dès aujourd'hui, à l'interface de scripting Jupyter Notebook concerne la road map de la plateforme ArcGIS. En effet, bien que l'API Python ArcGIS s'intègre déjà étroitement avec Jupyter Notebook, Esri a décidé d'aller encore plus loin dans l'intégration de cet outil avec la plateforme ArcGIS.

En effet, dans un avenir proche, l'interface interactive de scripting d'ArcGIS Pro sera remplacée par une fenêtre Jupyter Notebook. Plus puissante en termes d'exécution d'instructions pas à pas, de documentation, de gestion et de partage de script, Jupyter Notebook offrira en plus la capacité d'intégrer rapidement des librairies et des frameworks de Data Science et de Machine Learning externes.

On signalera également l'intégration prochaine dans le portail ArcGIS de l'outil Jupyter Notebook pour permettre aux utilisateurs et aux administrateurs de créer, exécuter et partager leurs propres Notebooks directement au sein du portail ArcGIS de leur organisation. Jupyter Notebook est donc une interface que vous retrouver en standard dans ArcGIS dans un futur proche.


Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article: