français

Procédure : télécharger les éléments de services d’entités à partir de ArcGIS Online à l’aide de ArcGIS API for Python

Résumé

Lorsque vous utilisez les services d’entités dans ArcGIS Online, il est utile de créer une copie de tous les services d’entités dans ArcGIS Online en tant que sauvegarde ou en présence de contraintes en matière d’espace de stockage. Le téléchargement de chaque service d’entités, un par un, peut être chronophage, tout particulièrement en cas de gros volumes. Le script Python suivant permet aux utilisateurs de télécharger une copie de tous les éléments des services d’entités. Les éléments peuvent être supprimés en toute sécurité à l’issue du processus.

Procédure

Le script suivant effectue une recherche des éléments des services d’entités et exporte les éléments sous forme d’un fichier au format désiré. Lorsque le fichier est créé dans ArcGIS Online, il peut être téléchargé selon le chemin d’accès au fichier spécifié dans la section de téléchargement du script.

  1. Dans Python, importez les bibliothèques nécessaires.
    import arcgis
    from arcgis.gis import GIS
  2. Définissez les identifiants de connexion.
    gis = GIS(None,'username', 'password', verify_cert=False)
  3. Définissez le format de téléchargement et le chemin d’accès au fichier en sortie spécifié.
    def downloadUserItems(owner, downloadFormat):
     try:
            # Search items by username
            items = gis.content.search('owner:{0}'.format(owner))
            print(items)
            # Loop through each item and if equal to Feature service then download it
            for item in items:
                if item.type == 'Feature Service':
                    result = item.export('sample {}'.format(item.type), downloadFormat)
                    result.download(r'file path of where to store the download')
                    # Delete the item after it downloads to save space (OPTIONAL)
                    result.delete()
        except Exception as e:
            print(e)
  4. Download the file generated.
    downloadUserItems('username', downloadFormat='Shapefile')
Voici un exemple de script complet :
import arcgis
from arcgis.gis import GIS

gis = GIS(None,'username', 'password', verify_cert=False)

# Download all data from a user
def downloadUserItems(owner, downloadFormat):
 try:
        # Search items by username
        items = gis.content.search('owner:{0}'.format(owner))
        print(items)
        # Loop through each item and if equal to Feature service then download it
        for item in items:
            if item.type == 'Feature Service':
                result = item.export('sample {}'.format(item.type), downloadFormat)
                result.download(r'file path of where to store the download')
                # Delete the item after it downloads to save on space
                result.delete()
    except Exception as e:
        print(e)


# Function takes in two parameters. Username and the type of download format
downloadUserItems('username', downloadFormat='Shapefile')

La fonction downloadUserItems reçoit deux paramètres :

  • owner[string] - pour le nom d’utilisateur
  • downloadFormat[string] - format du fichier de téléchargement en sortie

Il existe plusieurs formats de fichiers pour la sortie. Ils incluent, sans s’y limiter, les shapefiles (SHP), les fichiers CSV, KML, FGDB et la collection d’entités.

Informations associées