日本語

操作手順: ArcGIS API for Python を使用して ArcGIS Online からフィーチャ サービス アイテムをダウンロードする

概要

ArcGIS Online でフィーチャ サービスを操作しているときに、すべてのフィーチャ サービスのコピーを作成すると、バックアップとして、または格納領域に制限がある場合に、役立ちます。 各フィーチャ サービスを個別にダウンロードするのは、特に量が多い場合に、時間がかかる可能性があります。 次の Python スクリプトを使用して、すべてのフィーチャ サービス アイテムのコピーをダウンロードできます。 それらのアイテムは、処理の完了後に安全に削除できます。

手順

次のスクリプトは、ユーザーのフィーチャ サービス アイテムの検索を実行し、アイテムを単一ファイルとして目的の形式でエクスポートします。 ArcGIS Online でファイルを作成した後に、そのファイルを、スクリプトのダウンロード セクションで指定したファイル パスにダウンロードできます。

  1. Python で、必要なライブラリをインポートします。
    import arcgis
    from arcgis.gis import GIS
  2. ログイン認証情報を定義します。
    gis = GIS(None,'username', 'password', verify_cert=False)
  3. ダウンロード形式および特定の出力ファイル パスを定義します。
    def downloadUserItems(owner, downloadFormat):
     try:
            # ユーザー名でアイテムを検索する
            items = gis.content.search('owner:{0}'.format(owner))
            print(items)
            # 各アイテムをループ処理し、フィーチャ サービスに等しい場合は、そのアイテムをダウンロードする
            for item in items:
                if item.type == 'Feature Service':
                    result = item.export('sample {}'.format(item.type), downloadFormat)
                    result.download(r'file path of where to store the download')
                    # アイテムをダウンロードした後に、そのアイテムを削除して格納領域を節約する (オプション)
                    result.delete()
        except Exception as e:
            print(e)
  4. 生成されたファイルをダウンロードします。
    downloadUserItems('username', downloadFormat='Shapefile')
以下に、完全なサンプル スクリプトを示します。
import arcgis
from arcgis.gis import GIS

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

# ユーザーからすべてのデータをダウンロードする
def downloadUserItems(owner, downloadFormat):
 try:
        # ユーザー名でアイテムを検索する
        items = gis.content.search('owner:{0}'.format(owner))
        print(items)
        # 各アイテムをループ処理し、フィーチャ サービスに等しい場合は、そのアイテムをダウンロードする
        for item in items:
            if item.type == 'Feature Service':
                result = item.export('sample {}'.format(item.type), downloadFormat)
                result.download(r'file path of where to store the download')
                # アイテムをダウンロードした後に、そのアイテムを削除して格納領域を節約する
                result.delete()
    except Exception as e:
        print(e)


# 関数が 2 つのパラメーターを受け取る。 ユーザー名およびダウンロード形式のタイプ
downloadUserItems('username', downloadFormat='Shapefile')

downloadUserItems 関数は、次の 2 つのパラメーターを受け取ります。

  • owner[string] - ユーザー名
  • downloadFormat[string] - ダウンロードの出力ファイルの形式

出力のファイル形式は、シェープファイル (SHP)、CSV、KML、FGDB、フィーチャ コレクションなど、複数ありますが、これらに限定されません。

関連情報