Publication quotidienne de vos cartes dans ArcGIS Online

April 6, 2018

Si vous avez créé une carte dans ArcGIS Pro, vous pouvez la partager en la publiant dans ArcGIS Online en tant que service hébergé. Si vous devez apporter des modifications à votre carte, il peut s’avérer fastidieux de l’empaqueter et de la téléverser de nouveau, surtout si vous procédez à des mises à jour quotidiennes et voulez que votre carte publiée soit à jour.

Dans ce billet de blogue, vous apprendrez à écrire un script Python qui s’occupera de ce travail pour vous, ainsi qu’à utiliser Jupyter Notebooks, si ce n’est pas déjà le cas. Après avoir créé le script, vous pouvez le configurer pour qu’il s’exécute automatiquement sur votre ordinateur. Ainsi, votre service hébergé contiendra toujours la version la plus récente de la carte que vous avez créée dans Pro.

Pour commencer, vous devez installer Jupyter Notebooks à l’aide d’ArcGIS Pro. Jupyter Notebooks est un éditeur Python qui fonctionne dans votre navigateur web. Il s’agit d’un outil très pratique pour créer des scripts Python simples et essayer l’API d’ArcGIS pour Python. Cliquez ici pour découvrir comment installer Jupyter Notebooks.

Vous aurez également besoin d’un projet ArcGIS Pro que vous êtes prêt à publier. Le système de coordonnées de référence doit être WGS 1984 Web Mercator Auxiliary Sphere. En outre, veillez à ce que votre carte ne contienne aucun fond de carte. Autrement, le script ne fonctionnera pas. Mettez à jour toutes les métadonnées du projet et de la carte, y compris la description et les étiquettes.

Ouvrez Jupyter Notebooks. Pour ce faire, ouvrez le menu Démarrer et accédez à ArcGIS à ArcGIS Pro à Jupyter Notebooks.

Une fenêtre noire contenant du texte s’ouvre. Vous pouvez simplement l’ignorer. Votre navigateur web s’ouvrira à l’adresse localhost:8888/tree. Vous devriez voir votre répertoire C:\Users\<nom d’utilisateur windows>.

Cliquez sur New (nouveau) dans le coin supérieur droit pour créer un nouveau dossier où enregistrer vos blocs-notes.

Cliquez  sur New (nouveau), puis sur Python 3 sous Notebook (bloc-notes) pour créer un nouveau bloc-notes. Collez-y les renseignements suivants. Assurez-vous de lire les commentaires (lignes qui commencent par #) et de suivre les instructions pour modifier le texte.

import arcpy
from arcgis.gis import GIS

# replace the text within the quotes with the location of your ArcGIS Pro project file that you want to publish
p = arcpy.mp.ArcGISProject(r'c:\users\<your username>\notebooks\publish\vtpk\Parcels.aprx')

# replace the text within the quotes with a location for the vector tile package you’ll create
vtpk = r'c:\users\<your username>\notebooks\publish\vtpk\Parcels.vtpk'

if arcpy.Exists(vtpk):
    arcpy.Delete_management(vtpk)

# replace the text within the quotes with the name of your map in the project file
for m in p.listMaps():
    if m.name == 'Barrie Buildings':
        my_map = m
    
arcpy.CreateVectorTilePackage_management(my_map,vtpk,'ONLINE')

# this is your arcgis online login. You’ll need to put in the url for your portal, your username and password
portal_conn = GIS('https://portal.maps.arcgis.com', 'username', 'password')

# change the text below to add a title and tags for your hosted map
title = 'Ontario Parcels'
tags = 'Ontario Parcels'

properties = {'title':title,'type':'Vector Tile Package','tags':tags}

content = portal_conn.content.search(query=title)
for item in content:
    if item['title'] == title:
        portal_conn.content.get(item.id).delete()

# you can change the text in the folder option below to save your hosted service somewhere.
# THE FOLDER MUST ALREADY EXIST
vtpk_item = portal_conn.content.add(properties, data=vtpk, folder='CHANGE_ME_TO_AN_EXISTING_FOLDER_IN_YOUR_AGOL!')
vtpk_layer = vtpk_item.publish()
vtpk_layer

Cliquez sur dans la barre supérieure. Après quelques minutes, vous devriez voir apparaître une vignette de votre carte sous votre script. Cela signifie que votre carte est accessible dans votre contenu ArcGIS Online et que vous pouvez la partager. Après avoir apporté des modifications à votre carte dans Pro, cliquez de nouveau sur Run (exécuter). Les modifications seront rapportées dans ArcGIS Online.

Si vous êtes prêt à automatiser l’exécution de ce code, cliquez sur File (fichier) à Download As (télécharger en tant que) à Python. Vous obtiendrez un fichier.py que vous pouvez enregistrer sur votre ordinateur, à l’emplacement de votre choix.

Ouvrez maintenant votre menu Démarrer et recherchez Planificateur de tâches. Cliquez sur Créer une tâche dans le volet de droite. Une fenêtre contextuelle s’ouvre. Entrez les détails suivants :

  1. À l’onglet Général, nommez votre tâche et fournissez une description telle que « Mise à jour quotidienne de ma carte dans ArcGIS Online ».
  2. À l’onglet Déclencheurs, cliquez sur Nouveau. C’est ici que vous indiquez quand le code doit être exécuté. Essayez une exécution quotidienne à 9 h. Il est important de choisir une heure à laquelle votre ordinateur est normalement ouvert.
  3. À l’onglet Actions, cliquez sur Nouveau.
    • L’action est Démarrer un programme.
    • Dans le champ Programme/script, inscrivez c:\users\<votre nom d’utilisateur>\AppData\Local\Programs\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe (confirmez que votre programme se trouve bien à cet emplacement en vérifiant le chemin d’accès de l’environnement de projet dans les paramètres Python de Pro).
    • Dans le champ Ajouter des arguments, inscrivez l’emplacement du fichier .py que vous avez téléchargé.

Le tour est joué. Demain matin, vérifiez si votre code s’est bien exécuté en regardant la date de modification du service dans ArcGIS Online.

Ce billet a été écrit en anglais par Justin Pierre et peut être consulté ici.

Article précédent
Préserver la qualité des données durant leur collecte sur le terrain
Préserver la qualité des données durant leur collecte sur le terrain

Découvrez les différentes options de suivi des éditions dans ArcGIS.

Article suivant
Améliorer le « style de vie » dans votre organisation
Améliorer le « style de vie » dans votre organisation

Investir dans l’apprentissage et le perfectionnement contribue à la performance organisationnelle. Cernez v...

Demeurez à jour grâce au blogue d’Esri Canada.

Abonnez-vous