Español

Cómo: Descargar elementos de servicio de entidades desde ArcGIS Online mediante ArcGIS API for Python

Resumen

Al trabajar con servicios de entidades en ArcGIS Online, resulta útil crear una copia de todos los servicios de entidades en ArcGIS Online como copia de seguridad o si existen limitaciones de espacio de almacenamiento. Descargar cada servicio de entidades individualmente puede llevar mucho tiempo, especialmente en los volúmenes grandes. El siguiente script de Python permite que los usuarios descarguen una copia de todos los elementos de servicio de entidades. Es posible eliminar con seguridad los elementos cuando el proceso se ha completado.

Procedimiento

El siguiente script busca los elementos de servicio de entidades del usuario y exporta esos elementos como un único archivo en el formato que desee. Cuando el archivo se haya creado en ArcGIS Online, se puede descargar a la ruta de archivo especificada en la sección de descargas del script.

  1. En Python, importe las bibliotecas necesarias.
    import arcgis
    from arcgis.gis import GIS
  2. Defina las credenciales de inicio de sesión.
    gis = GIS(None,'nombre de usuario', 'contraseña', verify_cert=False)
  3. Defina el formato de descargas y la ruta del archivo de salida especificado.
    def downloadUserItems(owner, downloadFormat):
     try:
            # Buscar elementos por nombre de usuario
            items = gis.content.search('owner:{0}'.format(owner))
            print(items)
            # Recorrer todos los elementos y, si son iguales que el servicio de entidades, descargarlos
            for item in items:
                if item.type == 'Servicio de entidades':
                    result = item.export('sample {}'.format(item.type), downloadFormat)
                    result.download(r'ruta del archivo en la que almacenar la descarga')
                    # Eliminar el elemento después de que se descargue para ahorrar espacio (OPCIONAL)
                    result.delete()
        except Exception as e:
            print(e)
  4. Descargar el archivo que se genera.
    downloadUserItems('username', downloadFormat='Shapefile')
A continuación se muestra un script de muestra por completo:
import arcgis
from arcgis.gis import GIS

gis = GIS(None,'nombre de usuario', 'contraseña', verify_cert=False)

# Descargar todos los datos de un usuario
def downloadUserItems(owner, downloadFormat):
 try:
        # Buscar elementos por nombre de usuario
        items = gis.content.search('owner:{0}'.format(owner))
        print(items)
        # Recorrer todos los elementos y, si son iguales que el servicio de entidades, descargarlos
        for item in items:
            if item.type == 'Servicio de entidades':
                result = item.export('sample {}'.format(item.type), downloadFormat)
                result.download(r'ruta del archivo en la que almacenar la descarga')
                # Eliminar el elemento después de que se descargue para ahorrar espacio
                result.delete()
    except Exception as e:
        print(e)


# La función adopta dos parámetros. Nombre de usuario y tip de formato de descarga
downloadUserItems('username', downloadFormat='Shapefile')

La función downloadUserItems recibe dos parámetros:

  • owner[string] - para el nombre de usuario
  • downloadFormat[string] - el formato del archivo de salida de descarga

Existen varios formatos de archivo para la salida, entre los que se incluyen: shapefile (SHP), CSV, KML, FGDB, conjunto de entidades.

Información relacionada