Ö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
- ArcGIS API for Python: Katman Ekleri
- ArcGIS REST APIs: Ekleri sorgulama (Detay servisi/Katman)
- ArcGIS API for Python: arcgis.features.managers module
- knowledge base- 000031782