Introduction
ArcGIS Online et ArcGIS Enterprise Portal Pour exploiter largement les items enregistrés dans , il est nécessaire de saisir des informations détaillées telles que le titre de l'item, le résumé, la description, les tags, les conditions d'utilisation, etc.
Cela dit, ouvrir un par un les items pour saisir ou mettre à jour ces informations détaillées est une tâche assez fastidieuse.
Chez GEO Jobe, partenaire officiel d'Esri aux États-Unis,Admin Tools la version payante permet une mise à jour en masse depuis un CSV, mais cette fois nous vous présentons une méthode pour mettre à jour en masse les détails des items en combinant Excel × Python (ArcGIS API for Python). Si vous souhaitez vérifier le code d'exemple Excel et Python immédiatement sans explications, comme d'habitude,GitHub disponible publiquement consultez-le s'il vous plaît.※ Cette méthode est basée sur un fichier publié en 2021 intitulé 3D City Model Utilization Site for ArcGIS
qui contient un fichier géodatabase (FGDB) avec des détails d'items mis à jour et publiés. Ce site d'utilisation est construit avec ArcGIS Hub Basic, donc dans le code, un groupe spécifique est désigné comme groupe id du site créé dans ArcGIS Hub.Le groupe id est vérifiable sur ArcGIS Online comme montré ci-dessous, mais l'id peut être n'importe quel groupe auquel l'utilisateur appartient en dehors du groupe du site créé dans ArcGIS Hub.Notez que la création et la mise en service du site dans ArcGIS Hub sont expliquées dans le Guide de démarrage rapide d'ArcGIS Hub Basic.
Exemple de groupe id (groupe "Utilisation du modèle 3D de la ville "Project PLATEAU" du Ministère des Transports, du Territoire, de l'Infrastructure et du Tourisme")1 Procédure pour mettre à jour en masse les détails des items1.1 Propriétés des itemsTout d'abord, vérifions l'API pour mettre à jour les détails des items avec ArcGIS API for Python. Selon la référence API, la mise à jour des détails des items se fait via la méthode
update(item_properties=None, data=None, thumbnail=None, metadata=None)
. La liste des clés dictionnaire pouvant être spécifiées dans item_properties est documentée dans l'aide comme type, typeKeywords, description, title, url, tags, text, snippet, extent, spatialReference, accessInformation, licenseInfo, culture, access et commentsEnabled.
Dans cet exemple, nous mettrons à jour title, snippet, description, tags, licenseInfo et accessInformation. Pour mieux comprendre, voici la correspondance entre les clés spécifiées dans item_properties et leur affichage réelle :
id : ID de l'item
title : Titre
snippet : Résumé
description : Description (HTML utilisable)
tags : Tags (en cas de plusieurs tags séparés par des virgules)
- licenseInfo : Conditions d'utilisation
- accessInformation : Droits d'auteur
- 1.2 Organisation des informations détaillées des items dans Excel
- Après avoir compris les informations détaillées à organiser pour les items (dans Sheet1 - nommée "Feuille de mise à jour 1" pour l'exemple Excel), saisissez dans la première ligne chacune des clés item_properties et à partir de la deuxième ligne saisissez les propriétés de chaque item respectivement (pour utiliser comme clé lors de la conversion en dictionnaire avec .to_dict() dans le code). Notez qu'il est important que les noms de colonnes de la première ligne correspondent exactement aux clés item_properties.
- Notez aussi que pour uniformiser la colonne description avec une description plus lisible que le HTML brut, nous avons utilisé une macro VBA pour mettre à jour. Comme il peut y avoir des problèmes de sécurité liés au fichier Excel macro joint publié cette fois-ci, nous avons placé le code macro sous forme de fichier texte "UpdateDescription_SampleVBA.txt" pour référence si nécessaire.
- Exemple d'organisation dans Excel (exemple d'entrée dans un fichier Excel utilisé pour un environnement de test de développement)
1.3 Explication du code pour mise à jour en masse des items
Après avoir organisé dans Excel, il suffit ensuite d'exécuter le code noté ci-dessous en adaptant votre environnement. Plus précisément, modifiez et remplacez dans le bloc note les parties "your_xyz", "new_owner_name" et "share_group_id" selon votre environnement.
Des commentaires sont aussi notés dans le bloc note ; voici une explication supplémentaire sur ce traitement.
(1) Lecture des données Excel dans un DataFrame Pandas
import pandas as pd
excel_file = r"your_folder_path\3D City Model_AGOL Item Details_Test Dev.xlsx"
df = pd.read_excel(excel_file)
※ Depuis xlrd version 2.0.0 le support est limité aux fichiers "xls" uniquement. Selon votre environnement lors de la lecture d'un fichier "xlsx" avec pd.read_excel(), il est nécessaire de spécifier openpyxl comme moteur. Dans un environnement ArcGIS Pro avec xlrd version 1.2.0 ce n'est pas obligatoire (méthode création environnement ArcGIS Pro décrite dans
'[ArcGIS Developer Resources] - [arcgis package upgrade] - [Environnements ArcGIS Pro 2.3+]',' field 59':''). Veuillez consulter cette documentation si besoin.
import pandas as pd
excel_file = r"your_folder_path\3D City Model_AGOL Item Details_Test Dev.xlsx"
df = pd.read_excel(excel_file,engine='openpyxl')
my_item = gisadmin.content.get(item_id)
# 最初に所有者変更
my_item.reassign_to("new_owner_name") # テスト環境;"kataya@dev3admin"、本番環境:"Esri_Japan"
# Pour refléter les modifications en tant que contenu public sur ArcGIS Hub, partagez à nouveau avec le groupe spécifié après avoir modifié le propriétaire
my_item.share(everyone = True, org= True, groups=['your_share_group_id']) # Partage avec l'organisation et le groupe spécifié - environnement de test ; « Contenu partagé Open Data » (id:f862b4f5d32f435596795947df012042), environnement principal ; « Contenu d'utilisation du modèle 3D de la Ministère des Territoires, des Infrastructures, des Transports et du Tourisme - Project PLATEAU » (id:d568e2190c4f456f8bd812c8e07c719a)
Image après mise à jour
Après exécution du script, en tant qu'élément autonome vu depuis ArcGIS Online, cela ressemble à ceci.
Carte - Exemple après mise à jour d'un élément autonome (détails de l'élément ArcGIS Online : environnement de test « Base de données de fichiers du modèle 3D (Project PLATEAU) de la ville d'Uto »)
De plus, dans le catalogue d'ArcGIS Hub, cela apparaît comme suit.
Carte - Exemple après mise à jour d'un élément autonome (détails de l'élément dans le catalogue d'ArcGIS Hub : catalogue de l'environnement de test)
Ici, si vous regardez au centre de l'écran du catalogue l’élément « Base de données de fichiers du modèle 3D de la ville d'Uto (Project PLATEAU) », la description détaillée de l’élément ArcGIS Online ci-dessus (colonne description dans Excel) affiche environ 107 caractères. En d'autres termes, lors de la publication des données sur ArcGIS Hub, il est une technique efficace d’inclure en priorité les informations nécessaires au début du texte descriptif pour éviter une double saisie fastidieuse.
Résumé
Avec la combinaison Excel × Python (ArcGIS API for Python) présentée dans cet article, non seulement vous pouvez mettre à jour en masse les informations des éléments dans ArcGIS Online, mais aussi économiser le temps d'enregistrement sur ArcGIS Hub et finalement105 éléments ont pu être publiés (référence :Catalogue « Base de données de fichiers du modèle 3D »).
- Fichier notebook, - exemple Excel, - trois fichiers VBA macro pour mettre à jour la colonne description sont disponibles sur GitHub comme d'habitude.Publié sur GitHubN'hésitez pas à les utiliser.
De plus, concernant les points d'utilisation des éléments au sein de l'organisation, il y a un article précédent intitulé « Introduction aux points de gestion des éléments (première partie, deuxième partie) », veuillez vous y référer également.Première partie,Deuxième partie) pour plus d'informations.
Références
-GEO Jobe société Admin Tools
-Site d'utilisation regroupant des exemples d'utilisation d'ArcGIS pour le modèle 3D urbain
[ArcGIS Hub]
-Résumé d'ArcGIS Hub Basic-
ArcGIS Hub Start Guide-
Guide rapide pour démarrer avec ArcGIS Hub Basic
[Article de blog]
-Introduction aux points de gestion des éléments - Première partie : Utilisation efficace des tags
-Introduction aux points de gestion des éléments - Deuxième partie : Utilisation des catégories
[Code, API]
-Script pour mettre à jour via REST API depuis CSV en Pure Python
-Guide ArcGIS API for Python
-Référence API ArcGIS API for Python (classe arcgis.gis.Item)
Mise à jour des informations d'un élément :update(item_properties=None, data=None, thumbnail=None, metadata=None)
Partage d'un élément :share(everyone=False, org=False, groups=None, allow_members_to_edit=False)
Modification du propriétaire :reassign_to(target_owner, target_folder=None)