An example of reporting with ArcGIS Pro, ReportLab and ArcPy.

The discovery of ArcGIS Pro

Before going to the Esri User Conference in San Diego in July 2017, I must admit that I never really had focused on ArcGIS Pro capabilities. As a geographer trained on GIS since 2003, and having worked in operational frameworks, on complex topics, shame on me some will say.

The Esri demo, every time, make you dream about what you could do, even what you could have done in your past projects. Hundreds of ideas and visualizations overwhelm you: interactivity, 3D, decision support, visualization support etc. Nevertheless, before being able to use ArcGIS Pro, I had to wait a couple of months. Last September an incredible project arrived. We had to help a client to compare ArcMap and ArcGIS Pro functionalities and tools to help them migrate to ArcGIS Pro soon.

Some will say that the new interface is user friendly, more intuitive than ArcMap. I started my training on ArcView 8.3 and I followed the evolution of the software until ArcMap 10.5 (and even 10.6 now). To be honest, it took me quite some time to get used to ArcGIS Pro and to find the functions and tools I use every day. However, after a week or so, I could appreciate how fast and powerful ArcGIS Pro is. Task manager, open different maps and different views in the same project, 3D indoor and outdoor are incredible tools to discover (or re-discover), play with. But you need time.

And of course, not everybody has the time, whether to test ArcGIS Pro capabilities, or to learn and find the alternatives when a tool is not yet available. The interface is nice to use and mechanisms come back very quickly, but what happens when local, regional or federal agencies wish to migrate entirely from ArcMap to ArcGIS Pro? For having tested it, migrating from ArcMap to ArcGIS Pro is not a question of being user-friendly anymore, but rather a question of accessibility and availability.

The context: a survey of a possible migration from ArcMap to ArcGIS Pro

A couple of months ago, one of our clients requested to study a possible migration from its tools, native or custom made, from ArcMap to ArcGIS Pro. A total of forty tools have been analyzed and tested in their current work environment, considering the future needs (obsolete tools, tools not working with ArcMap 10.5 etc.). Next these tools and functions have been compared to the tools and functionalities available in ArcGIS Pro 2.0. Finally, we ran tests with ArcGIS Pro to validate or not some propositions we made after the first analysis. After a month and a half of analysis, our results showed that:

  • It would be better to wait for the next ArcGIS Pro version, which will be more complete and which will answer some expectations (some native tools were not yet available at the time of the survey),
  • Custom-made tools must be redeveloped to be compatible with the ArcGIS Pro SDK environment.

Of course, some tools could be used as it is in ArcGIS Pro, but this would force the client to navigate between two environments, which presents some advantages (for example users would be trained and operational when the migration to ArcGIS Pro is total), and some drawbacks (training time for people working in the field or in emergency contexts is always time consuming, not everyone is open to changes, this represents an investment in terms of computers).

As we could not talk about 40 tools and as most of them are confidential anyway, we chose a tool that a large amount of people use with ArcMap but cannot use as a native tool in ArcGIS Pro yet. We are talking about reporting. This tool was particularly interesting because in the ArcGIS Pro environment you need to be willing to dive into python and ArcPy. In the next chapters, we are going to describe how to use the python package ReportLab to make easy reports and tables.

How to use ReportLab within ArcGIS Pro?

I can already hear a lot of people, developers and users of python within an ArcGIS framework say: “Nothing new here!”. Indeed, if you spend time online on the forums, blogs, anywhere you can find information and documentation on this package. However, as I said earlier, not everybody has the time to look, nor the time to become a developer, or just spend time learning from scratch. For a beginner with python and ArcPy, or even for a regular ArcMap user, used to using report wizard and report designer, using ReportLab is like entering a new world. First, you must:

  • Dive into the use of this package (although installing it is very easy),
  • Become familiar with python grammar,
  • Learn how to use the python console in ArcGIS Pro (not everyone uses it not even in ArcMap),
  • Learn how to use or re-discover ArcPy.

To summarize, you must be patient, you need time not only to test the package and the libraries, but also to try to understand the python structure. You also need to take advantage of forums where you are most likely going to find answers to your questions. Much more than in the official documentation anyway, as it can be somewhat lacking in information. If you have these qualities, then you are ready to start! And with a couple of hours, days, spent on this package, including reading forums and asking a lot of questions, the result is worth it and ReportLab is a very good tool.

1.     How to install ReportLab and use arcPy SearchCursor to extract data from an attribute table and display it in a pdf report?

Our client uses automatic reports in ArcMap to inform a partner agency about updates made in a particular dataset. Once the report is received (in a table format), the agency can check data and validate or not the updates. In this post we will see how to:

  • Install ReportLab in ArcGIS Pro
  • Use the platypus library
  • Use ArcPy in ReportLab (within the python console in ArcGIS Pro)

a)     Install ReportLab in ArcGIS Pro

Click on the Project Tab (ArcGIS Pro must be open). Your screen should look like this:

Then click on Python in the side panel. Click on Add packages. Search for ReportLab and install it.

Once the install is finished, you can go back to your map and test if the package has been properly installed. You can use as a tutorial the official ReportLab documentation and a blog that I particularly recommend, Mouse vs. Python. You can now create a simple PDF by entering the following code in your python console:

The PDF is generated in the folder where your current ArcGIS Pro project is saved under the title “hello.pdf”.

In our example, what we want to achieve is to edit a table in which we will display some fields of an attribute table we chose. On top of this this, we need to filter the data. Living in Geneva, I chose to download the open data from the SITG. I will use the building GDB.

Imagine that the Meyrin city council requested a survey of all the buildings on the city territory, with the level count, the height of the buildings, and specific identifiers. I start by defining a definition ensemble. Once this is done, I will create my report using ReportLab, the platypus library and the ArcPy SearchCursor.

b)     How to use platypus and the SearchCursor?

Platypus will allow you to generate tables. You call it in your code as you did for importing the canvas earlier.

from reportlab.platypus import Table, TableStyle

To filter the fields in your attribute table you will need to use a SearchCursor. First you need to import ArcPy :

import arcpy

After importing ArcPy you need to give your workspace, the fields you want to display, and then the SearchCursor.

Here I put the full code, without all the tests and failures I ran into. Before arriving there I had to learn and understand what tuples are and how to use them. Even here, the result is clearly not satisfactory: the table is too big, there is no title, no date and the data are not filtered. However, we are close to what the client is expecting.

How to make this table and the query better? We need to work on the style of the table. The code already contains style elements:

from reportlab.lib.pagesizes import A3, A4, portrait, landscape

from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Frame, Spacer

from reportlab.lib.units import cm

from reportlab.lib.styles import ParagraphStyle, getSampleStyleSheet

from reportlab.lib.enums import TA_LEFT, TA_RIGHT, TA_CENTER, TA_JUSTIFY

from reportlab.lib import colors

These lines import style libraries:

  • Page size and orientation
  • Document, table and paragraph,
  • Units (here in centimeters)
  • Margins
  • Colors

These lines need to be updated. For example, the colors you want to use in the titles of your columns:

table.setStyle(TableStyle([

(‘INNERGRID’, (0,0), (1,1), 0.25, colors.black),

(‘BOX’, (0,0), (1,1), 0.25, colors.black),

(‘BACKGROUND’,(0,0),(4,0),colors.lightgrey)]))

Same for the style of the entire table :

table = Table(data, [6 * cm, 6 * cm], repeatRows=1)

Here again, I recommend you reading and spending time on the blog Mouse vs. Python for good explanations and on StackExchange Geographic Information systems for good advice and even examples of code you can try and adapt to your needs.

2.     How to improve the style of your table?

The biggest part of the work was to make the table and extract the right fields from my attribute table. However, the time spent on the “aesthetics” of the table and the report must not be neglected. We will show you how to add:

  • A title
  • Date and time of the report

At the beginning of the code I imported: import datetime

In my code, I added the following lines:

mydate = datetime.datetime.today()

#Header Titre du rapport avec date et heure

header = Paragraph(‘Récapitulatif des bâtiments et de leurs hauteurs. Commune de Meyrin. {}’.format(mydate.strftime(‘%c’)) * 1, styles[‘title’])

w, h = header.wrap(doc.width, doc.topMargin)

header.drawOn(canvas, doc.leftMargin, doc.height + doc.topMargin h)

I also adapted the size of my columns function of the lenght of my text:

table = Table(data, colWidths=[2*cm, 3*cm, 3*cm, 5*cm, 5*cm], repeatRows=1)

Then in my SearchCursor I added a SQL clause to filter my data according to the level count:

data = [tuple(headers)]for f in arcpy.da.SearchCursor(fc, fields, sql_clause=(None, ‘ORDER BY NIVEAUX_HORSOL ASC’)):

data.append((x for x in f))

I wanted the title of the report on every page:

#Construire le rapport en répétant le titre sur toutes les pages

doc.build(elements, onFirstPage=_header, onLaterPages=_header)

Here is my entire code:

My report is very long as it contains all the buildings of a city. However, the result, even looking simple, allows me to have a template using ReportLab and ArcPy within my ArcGIS Pro environment. I can reuse this code every time I need to extract, filter data and make a report. If you are waiting for the report wizard and report designer, this is an excellent alternative.

The model proposed here can be easily adapted. We made other tests especially with multiple tables on a page, changing the font size, colors, adding a logo etc.

With a logo the code has been modified like this :

from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Frame, Spacer, Image

elements=[]

logo = r’C:\Users\Melanie\Documents\ArcGIS\Projects\Test_evaluation\ITISGIS_verysmall.png’

im = Image(logo, 3*cm, 3*cm)

elements.append(im)

Conclusion

Aside from tables, we tried to generate pdf forms, calculus, stats, graphs etc. Once the difficulty of diving into python and ArcPy (which I can easily understand being a beginner), ReportLab is a flexible, complete and useful tool.

References

http://www.reportlab.com/docs/reportlab-userguide.pdf
https://www.blog.pythonlibrary.org/2010/03/08/a-simple-step-by-step-reportlab-tutorial/
https://www.blog.pythonlibrary.org/2010/09/21/reportlab-tables-creating-tables-in-pdfs-with-python/
https://www.blog.pythonlibrary.org/2012/06/27/reportlab-mixing-fixed-content-and-flowables/
https://opendata.swiss/fr/organization/sitg-systeme-dinformation-du-territoire-a-geneve
https://pro.arcgis.com/fr/pro-app/arcpy/functions/searchcursor.htm
https://www.programiz.com/python-programming/tuple

Installer ReportLab et utiliser des curseurs d’ArcPy pour extraire des données sous forme de tableau. Les différents essais et leurs résultats (2/2).

La semaine dernière nous avons vu comment installer ReportLab dans ArcGIS Pro 2.0 et comment utiliser la librairie platypus pour faire des tableaux, et le SearchCursor de ArcPy pour filtrer les données d’une table attributaire et les extraire dans le tableau. Le résultat était satisfaisant mais pas complètement fini. Cette semaine, pour cette deuxième et dernière partie, nous allons voir comment modifier le code pour insérer:

  • Un titre de rapport, avec le groupe date/heure,
  • Prendre en compte les marges,
  • Ajouter un logo

3. Améliorer le style du tableau et du rapport

Les derniers essais faits avec ReportLab portaient sur comment ajouter :

  • Un titre de rapport, avec la date et l’heure de l’écriture du rapport, en prenant compte des marges

Dans les librairies importées en début de code, j’ai ajouté : import datetime

Puis dans le code :

mydate = datetime.datetime.today()

#Header Titre du rapport avec date et heure

header = Paragraph(‘Récapitulatif des bâtiments et de leurs hauteurs. Commune de Meyrin. {}’.format(mydate.strftime(‘%c’)) * 1, styles[‘title’])

w, h = header.wrap(doc.width, doc.topMargin)

header.drawOn(canvas, doc.leftMargin, doc.height + doc.topMargin h)

  • Une adaptation de la taille des colonnes en fonction de la longueur de mon texte

table = Table(data, colWidths=[2*cm, 3*cm, 3*cm, 5*cm, 5*cm], repeatRows=1)

  • J’ai trié les données en fonction des niveaux hors-sol en utilisant une clause SQL attachée au SearchCursor

data = [tuple(headers)]for f in arcpy.da.SearchCursor(fc, fields, sql_clause=(None, ‘ORDER BY NIVEAUX_HORSOL ASC’)):

data.append((x for x in f))

  • J’ai répété le titre du rapport sur toutes les pages

#Construire le rapport en répétant le titre sur toutes les pages

doc.build(elements, onFirstPage=_header, onLaterPages=_header)

Voir le code en entier ci-dessous :

Mon rapport est très long, car il contient tous les bâtiments de la commune de Meyrin. Mais le résultat, somme toute très simple, permet d’avoir un template de tableau qui utilise ReportLab et ArcPy dans l’environnement d’ArcGIS Pro 2.0 et qui permet de répondre à certains besoins en attendant l’arrivée des outils natifs de reporting, ou si les outils ne répondent pas entièrement à vos besoins.

Le modèle de code proposé ici peut être adapté très facilement. Nous avons fait des essais avec de multiples tableaux dans une page, avec des tailles de polices différentes, ajouter un logo etc.

Le logo de la société est visible sur la première page du rapport dans cet exemple. Le code a été modifié ainsi :

from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Frame, Spacer, Image

elements=[]

logo = r’C:\Users\Melanie\Documents\ArcGIS\Projects\Test_evaluation\ITISGIS_verysmall.png’

im = Image(logo, 3*cm, 3*cm)

elements.append(im)

Conclusion

En dehors des tableaux de récapitulatifs (la tâche qui nous était assignée par le client), ReportLab permet aussi de faire des calculs, des statistiques, des dessins, des graphiques, des formulaires etc. Une fois la difficulté de se plonger dans python et ArcPy passée (sans parler des frustrations liées à la documentation parfois lacunaire), ReportLab se révèle être un outil flexible, complet et très utile.

Références

http://www.reportlab.com/docs/reportlab-userguide.pdf
https://www.blog.pythonlibrary.org/2010/09/21/reportlab-tables-creating-tables-in-pdfs-with-python/
https://opendata.swiss/fr/organization/sitg-systeme-dinformation-du-territoire-a-geneve
https://pro.arcgis.com/fr/pro-app/arcpy/functions/searchcursor.htm
https://www.programiz.com/python-programming/tuple

Installer ReportLab et utiliser des curseurs d’ArcPy pour extraire des données sous forme de tableau. Les différents essais et leurs résultats (1/2).

La semaine dernière nous parlions du manque d’outils natifs dans la version actuelle d’ArcGIS Pro et qu’il est possible d’y remédier en utilisant un paquet python appelé ReportLab. Nous vous présentons aujourd’hui comment l’installer et le mettre en route pour faire des rapports très simples et comment aussi le combiner à certaines libraires comme platypus et à ArcPy.

Le client en question utilise les rapports dans ArcGIS pour informer une agence partenaire des mises à jour faites sur un shapefile bien particulier. Une fois les récapitulatifs reçus, l’agence peut vérifier les données et valider ou non la mise à jour. Nous allons voir ici comment :

  1.  Installer ReportLab dans ArcGIS Pro 2.0,
  2. Utiliser le module platypus,
  3. Insérer ArcPy dans ReportLab (en utilisant la console python dans ArcGIS Pro).

1.     Installer le package ReportLab dans ArcGIS Pro 2.0

Cliquez sur l’onglet Projet une fois ArcGIS Pro ouvert. Votre écran devrait ressembler à cela (mon interface est en anglais donc pas de panique si les noms sont un peu différents) :

Cliquez ensuite dans le panneau latéral sur Python. Cliquez sur Add packages ou Ajouter un paquet si votre interface est en français. Cherchez ReportLab et installer le package. Tout se fait automatiquement pour vous, vous n’avez qu’à accepter les modifications.

Une fois l’installation terminée, vous pouvez retourner dans votre projet ouvert et tester si le paquet a bien été installé. Si vous prenez la documentation officielle de ReportLab ou le tutoriel disponible sur le blog Mouse Vs. Python, vous pouvez créer de suite un PDF très simple. Dans la console python entrez les lignes suivantes :

Le PDF est généré dans le dossier de votre projet ouvert présentement dans ArcGIS Pro sous le titre hello.pdf.

Dans notre exemple, ce que nous voulons faire c’est un tableau dans lequel on va extraire certains champs de la table attributaire d’une des géodatabases de notre projet, et filtrer certaines données. J’ai choisi ici de télécharger la GDB contenant les bâtiments hors-sols de la ville de Genève et des communes des alentours qui est disponible en open data sur le site du SITG.

Imaginons que la commune de Meyrin m’a mandaté pour lui faire un récapitulatif des bâtiments hors-sols situés sur la commune, avec le nombre de niveaux, et la hauteur totale des bâtiments. Je commence donc par définir un ensemble de définition, ce qui se fait facilement dans les propriétés de la couche. Une fois ma couche de bâtiment limitée à la commune de Meyrin, je vais créer mon rapport en utilisant ReportLab, le module platypus pour faire mon tableau et utiliser un SearchCursor de ArcPy.

2.     Utiliser le module platypus de ReportLab, importer ArcPy et utiliser le SearchCursor.

Le module permettant de faire des tableaux dans ReportLab s’appelle platypus. Il est appelé dans le code python de la même façon que le canvas a été importé plus tôt :

from reportlab.platypus import Table, TableStyle

Pour filtrer les champs de la table attributaire, il va falloir utiliser le SearchCursor de ArcPy. Il nous faut tout d’abord importer Arcpy :

import arcpy

Une fois ArcPy importé, il faut appeler le SearchCursor et lui demander de faire une itération dans les champs de la table attributaire de notre GDB, et de nous sortir uniquement les champs qui nous intéressent.

Avant d’arriver à cela il a fallu faire de nombreux essais, notamment comprendre et utiliser les tuples (ce sont des listes d’objets), et le résultat n’est clairement pas satisfaisant : le tableau est trop grand, il n’y a pas de date ni de titre pour le rapport, les données ne sont pas classées. On pourrait aussi ajouter un logo officiel de la compagnie mandatée. Cependant on s’approche du résultat escompté.

Comment palier à ces manques ? En travaillant sur le style du tableau. Le code présenté plus haut contient déjà des éléments de style :

from reportlab.lib.pagesizes import A3, A4, portrait, landscape
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Frame, Spacer
from reportlab.lib.units import cm
from reportlab.lib.styles import ParagraphStyle, getSampleStyleSheet
from reportlab.lib.enums import TA_LEFT, TA_RIGHT, TA_CENTER, TA_JUSTIFY
from reportlab.lib import colors

Ces quelques lignes importent des librairies de style :

  • Le type de format acceptés (A3 et A4, en portrait et paysage),
  • Les éléments (document, tableau, paragraphe etc.),
  • Les unités de mesure (ici en centimètres),
  • Les styles,
  • Les marges,
  • Les couleurs

Ces lignes doivent être modifiées dans le code. Par exemple pour les couleurs utilisées dans le titre des colonnes :

table.setStyle(TableStyle([

(‘INNERGRID’, (0,0), (1,1), 0.25, colors.black),

(‘BOX’, (0,0), (1,1), 0.25, colors.black),

(‘BACKGROUND’,(0,0),(4,0),colors.lightgrey)]))

Idem pour le style du tableau :

table = Table(data, [6 * cm, 6 * cm], repeatRows=1)

Là encore je recommande vivement la lecture du blog Mouse vs. Python pour de bonnes explications, et les recherches sur le forum StackExchange Geographic Information Systems pour de bons conseils et pour trouver des exemples de codes qui fonctionnent et qui peuvent répondre à vos questions.

C’est tout pour aujourd’hui, il y a déjà de quoi faire. La semaine prochaine nous verrons comment améliorer le style du tableau et du rapport.

Un exemple d’utilisation d’ArcGIS Pro : le reporting.

La découverte d’ArcGIS Pro

Avant la conférence Esri de San Diego en juillet 2017, je dois avouer que je ne m’étais jamais vraiment intéressée aux capacités d’ArcGIS Pro. En tant que géographe formée aux SIG et ayant travaillée sur des sujets SIG complexes et dans un environnement opérationnel parfois, honte à moi vous me direz. Les démonstrations Esri vous laissent rêveurs comme à chaque fois, des centaines d’idées à la seconde naissent de ce que vous voyez. Vous reprenez, projets par projets, tout ce qui pourrait être fait (ou tout ce qui aurait pu être fait) : aide à la visualisation, aide à la décision, interactivité, 3D etc. Cependant, avant d’utiliser réellement ArcGIS Pro il m’a fallu encore attendre quelques mois pour qu’un projet se profile et pour que je puisse enfin faire mes classes.

Certains vous diront que l’interface est facile d’utilisation, plus intuitive qu’un ArcMap. Ayant été formée sur ArcView 8.3 et ayant suivi les évolutions jusqu’à ArcMap 10.5, je dois bien admettre que cela m’a pris du temps pour m’accoutumer à la nouvelle présentation et pour retrouver les fonctionnalités et les outils que j’utilise le plus souvent. Néanmoins, après une bonne semaine, il est facile d’apprécier ArcGIS Pro. Le gestionnaire de tâches, pouvoir ouvrir plusieurs cartes sans ré-ouvrir l’application, ouvrir et créer des scènes directement, faire de la 3D indoor/outdoor, sont autant d’outils à (re)-découvrir et pour lesquels il faut prendre le temps.

Justement du temps, tout le monde n’en a pas que ce soit pour tester les capacités d’ArcGIS Pro, ou que ce soit pour apprendre à trouver des alternatives lorsqu’un outil n’est pas disponible. Certes l’interface est agréable et les mécanismes d’utilisation reviennent vite, mais que se passe-t-il lorsque des agences ou des bureaux, anticipant une éventuelle disparition d’ArcMap, veulent migrer totalement vers ArcGIS Pro ? Pour l’avoir testé, le passage d’ArcMap à ArcGIS Pro ne se discute plus en termes d’intuitivité, mais bien en termes de disponibilité et d’accessibilité.

Le contexte : une étude de migration ArcMap vers ArcGIS Pro 2.0

Il y a quelques mois de cela, un de nos clients nous a demandé d’étudier une possible migration de ses outils, natifs et spécialement développés pour lui, d’ArcMap vers ArcGIS Pro. Au total, quarante outils ont été analysés et testés dans leur environnement courant d’utilisation, en prenant en compte les besoins futurs (outils qui ne fonctionnent plus avec ArcGIS 10.5, outils obsolètes etc.). Ces outils et fonctions ont ensuite été comparés aux outils et fonctions disponibles dans la version 2.0 d’ArcGIS Pro, puis des essais dans ArcGIS Pro 2.0 ont été effectués afin de valider ou d’infirmer les propositions faites. Après un mois et demi d’analyses, les résultats montrent que :

  • Il faut attendre la prochaine version d’ArcGIS Pro qui sera beaucoup plus complète et répondra à certaines attentes, en effet certains outils natifs ne sont pas disponibles dans la version 2.0,
  • Les outils spécifiques devront être redéveloppés entièrement afin d’être compatibles avec l’environnement ArcGIS Pro SDK.

Bien évidemment certains outils pourraient être utilisés de suite avec ArcGIS Pro, mais cela forcerait alors le client à naviguer dans deux environnements, ce qui présente des avantages (par exemple les utilisateurs seraient formés à ArcGIS Pro et opérationnels) et des inconvénients (le temps de formation pour des gens travaillant sur le terrain ou dans des conditions opérationnelles est chronophage, tout le monde n’est pas ouvert au changement, cela représente un investissement non négligeable en termes de machines).

Un de ces outils, auquel nous nous sommes beaucoup intéressés, requiert un temps certain d’apprentissage et une volonté de se plonger un peu dans le langage de programmation python : faire du reporting avec le package ReportLab.

Utiliser ReportLab avec ArcGIS Pro 2.0

Beaucoup diront « rien de nouveau sous le soleil ». En effet, en se documentant sur le package et sur son utilisation avec ArcGIS en général, tout le monde peut trouver son bonheur, ou au moins des réponses à ses questions et les forums sont actifs et réactifs. Cependant, tout le monde n’a pas la chance ni le temps de devenir un développeur, ou de mettre les mains dans le cambouis.

Pour un néophyte en programmation, ou même pour un utilisateur SIG qui crée habituellement ses rapports dans ArcMap avec le report wizard et report designer, qui est familier avec les formats RDF et RLF, utiliser le package python revient à entrer dans un autre monde.Tout d’abord il faut :

  1. se plonger dans l’utilisation de ce package (son installation dans ArcGIS Pro est simple),
  2. se familiariser avec la grammaire python,
  3. apprendre à se servir ou redécouvrir l’interface de script dans ArcGIS Pro,
  4. apprendre à utiliser ou redécouvrir ArcPy.

Pour résumer, il faut s’armer de patience, avoir du temps, non seulement pour essayer de comprendre les structures du code en python, mais aussi pour chercher des réponses à ses questions auprès d’utilisateurs chevronnés (sur les forums) et non dans la documentation officielle disponible en ligne.

Si vous êtes en possession de toutes ces qualités alors vous êtes prêts, et avec les quelques heures voire les jours passés sur ce package, je peux vous confirmer que le temps passé à éplucher et déchiffrer les documentations et les forums en vaut la peine. ReportLab est un très bon outil de travail.

Je vous donne rendez-vous la semaine prochaine pour un exemple d’utilisation du reporting dans ArcGIS Pro, avec le filtrage et l’extraction des données sous forme de tableau, puis la mise en forme de l’ensemble.