Özet

ArcGIS Pro’da bir katmana “ArcGIS Pro: ArcGIS Online veya Portal for ArcGIS’te yayınlamadan önce dosya ekleri ekleyin veya kaldırın” bağlantısında açıklanan iş akışı izlenerek ekler eklenebilir. Bir katman birden fazla ek içerdiğinde, eklerin toplam boyutunu manuel olarak hesaplamak sıkıcı olabilir. Buna ek olarak, toplam boyut, diskte, yayınlama sırasında ve bayttan kilobayta dönüşüm sırasında farklı boyutlar dikkate alınarak değişim gösterebilir. Bu makale, bağımsız bir Python komut dosyasında veya ArcGIS Notebook’larda toplam boyutu hesaplamak için ArcGIS API for Python’ı kullanma adımlarını içerir. 

Prosedür

  • Gerekli modülleri içe aktarın. 
import arcgis
from arcgis import GIS
import pandas as pd
  • ArcGIS Online veya Portal for ArcGIS’e bağlanın.
#ArcGIS Online icin
gis = GIS('https://arcgis.com', 'username', 'password')
print("Connected")

#Portal for ArcGIS icin
gis = GIS('https://<machine>.<domain>/<web adaptor name>', 'username', 'password', verify_cert=False)
print("Connected")
  • Barındırılan detay katmanı ID’sinden istenen katmanı alın.
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]

Not:
Ekleri tutan katmanlara göre ‘ids = item.layers[0]’ içindeki dizin değerini düzenleyin. Örneğin, ikinci katmandaki toplam ek boyutunu hesaplamak için kodda 0’ı 1 ile değiştirin.

  • Tüm özellikleri ekleriyle birlikte yazdırın.
attached = [ids.attachments.get_list(oid=oid) for oid in oids]
print(attached)
  • Eklerin toplam boyutunu hesaplayın ve sonuç konsolunda görüntüleyin.
print("Total size: " + str(ids.attachments.search(as_df=True)['SIZE'].sum()))

#Ek kelime gerekmiyorsa, asagıdaki satir kullanilabilir:
print(ids.attachments.search(as_df=True)['SIZE'].sum())
  • Aşağıda çalışan bir örnek komut dosyası ve sonuç konsolu yer almaktadır. Hesaplanan dosya boyutu bayt cinsindendir.
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()))

Faydalı Bağlantılar

 

Geri Bildirim