Select to view content in your preferred language

Hromadný export z ArcGIS Online pomocí ArcGIS API pro Python

682
0
03-28-2023 06:10 AM
DavidDaveNovak
Esri Contributor
3 0 682

Při správě a práci s větším množstvím feature služeb na ArcGIS Online se může hodit možnost vytvořit a stáhnout kopie všech feature vrstev, například jako zálohu nebo pokud chceme ušetřit úložný prostor na ArcGIS Online.

Stahování každé feature služby zvlášť může být časově náročné, zejména při velkých objemech. Následující skript v jazyce Python umožňuje uživatelům stáhnout kopii všech položek feature služeb. Po dokončení procesu lze položky bezpečně odstranit.

 

Postup exportu

 

Klasická varianta

Bez skriptu bychom museli použít tlačítko Exportovat data u každé feature služby v prostředí ArcGIS Online. Na výběr je několik různých formátů, jak je vidět na obrázku:

exp_formaty.png

Varianta pomocí skriptu

Jednodušší bude provést to skriptem, s jehož obsahem se nyní seznámíme. Provede vyhledání všech feature služeb uživatele a exportuje je jako soubor ve zvoleném formátu. Jakmile je soubor v ArcGIS Online vytvořen, uloží se na místo, které je definováno ve skriptu.

Jako důležité upozornění je nutné zmínit, že funkce item.export() není k dispozici u osobních a studentských účtů a může ji použít pouze vlastník položky nebo uživatel s oprávněním správce. 

Stejně jako v ostatních ukázkách s jazykem Python musíme na úvod importovat potřebnou knihovnu a přihlásit se pomocí přihlašovacích údajů.

 

 

 

import arcgis
from arcgis.gis import GIS

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

 

 

 

Následující krok definuje hlavní funkci, která má dva parametry:

  • owner
  • downloadFormat

Součástí definice je také cesta, kam se mají soubory uložit.

 

 

 

def downloadUserItems(owner, downloadFormat):
    try:
        # Vyhledani prvku dle uzivatelskeho jmena
        items = gis.content.search('owner:{0}'.format(owner))
        print(items)
        # Prochazeni vsemi prvky, pokud jsou Feature Service dojde k jejich exportu
        for item in items:
            if item.type == 'Feature Service':
                result = item.export('sample {}'.format(item.type), downloadFormat)
                result.download(r'cesta k vyslednym souborum')
                # Nasleduje volitelna moznost, zda ma dojit ke smazani prvku (Volitelne)
                result.delete()
    except Exception as e:
        print(e)

 

 

 

Po definici funkce dokončíme celý proces zavoláním funkce se dvěma parametry: username, downloadFormat.

 

 

 

downloadUserItems('username', downloadFormat='Shapefile')

 

 

 

Jako výstupní formát (downloadFormat) lze zvolit následující možnosti:

Formát

Označení v kódu

Shapefile

shapefile

CSV

csv

File Geodatabase

fileGeodatabase

Feature Collection

featureCollection

GeoJson

geojson

Scene Package

scenePackage

KML

kml

Excel

excel

geoPackage

geoPackage

Vector Tile Package

vectortilepackage

 

Více informací o exportu a celém modulu arcgis.gis lze nalézt v dokumentaci python API.

 

A pokud Vás zajímá, jak export z ArcGIS Online využít k zálohování ArcGIS Online či obecně správa ArcGIS Online. Podívejte se na náš článek Správa organizace na ArcGIS Online