CÓMO

calcular el tamaño total de los archivos adjuntos en una capa de entidades alojada en ArcGIS Online o Portal for ArcGIS

Last Published: January 18, 2024

Descripción

Los adjuntos se pueden agregar a una capa en ArcGIS Pro, como se describe en la siguiente documentación, ArcGIS Pro: Agregar o eliminar adjuntos de archivos, antes de publicarlos en ArcGIS Online o Portal for ArcGIS. Cuando una capa contiene varios adjuntos, puede resultar tedioso calcular manualmente el tamaño total de los adjuntos. Además, el tamaño total puede variar teniendo en cuenta los diferentes tamaños en el disco, durante la publicación y la conversión de bytes a kilobytes. En este artículo se proporcionan los pasos para utilizar ArcGIS API for Python para calcular el tamaño total en una secuencia de comandos de Python independiente o en ArcGIS Notebooks.

Solución o solución alternativa

  1. Importe los módulos necesarios.
import arcgis
from arcgis import GIS
import pandas as pd
  1. Conéctese a ArcGIS Online o a Portal for ArcGIS.
#For ArcGIS Online
gis = GIS('https://arcgis.com', 'username', 'password')
print("Connected")

#For Portal for ArcGIS
gis = GIS('https://<machine>.<domain>/<web adaptor name>', 'username', 'password', verify_cert=False)
print("Connected")
  1. Obtenga la capa deseada del Id. de capa de entidades alojada.
item = '<item_ID>'
layer = gis.content.get(item)
ids = layer.layers[0]
fs = ids.query(where="1=1")
oids = [f.attributes["OBJECTID"] for f in fs.features]
Note:
Edit the index value in 'ids = item.layers[0]' based on the layers that hold the attachments. For example, to calculate the total attachment size in the second layer, replace 0 with 1 in the code.
  1. Imprima todos los atributos con archivos adjuntos.
attached = [ids.attachments.get_list(oid=oid) for oid in oids]
print(attached)
  1. Calcule el tamaño total de los archivos adjuntos y muéstrelos en la consola de resultados.
print("Total size: " + str(ids.attachments.search(as_df=True)['SIZE'].sum()))

#If additional word is unnecessary, the following line can be used:
print(ids.attachments.search(as_df=True)['SIZE'].sum())

A continuación se muestra una secuencia de comandos de ejemplo de trabajo y la consola de resultados. El tamaño de archivo calculado está en bytes.

import arcgis
from arcgis import GIS
import pandas as pd

gis = GIS('https://arcgis.com', 'user1', 'password1!')
print("Connected")

item = '80d00e2301844ou2435p9284fu87bf'
layer = gis.content.get(item)
ids = layer.layers[0]
fs = ids.query(where="1=1")
oids = [f.attributes["OBJECTID"] for f in fs.features]

attached = [ids.attachments.get_list(oid=oid) for oid in oids]
print (attached)

print("Total size: " + str(ids.attachments.search(as_df=True)['SIZE'].sum()))
Consola de resultados que muestra el tamaño total de los archivos adjuntos

Id. de artículo: 000031782

Obtenga soporte con IA

Resuelva su problema rápidamente con el chatbot de inteligencia artificial de soporte de Esri.

Empieza a chatear ahora

Información relacionada

Descubrir más sobre este tema

Obtener ayuda de expertos en ArcGIS

Contactar con el soporte técnico

Empieza a chatear ahora

Ir a opciones de descarga