概要
ArcGIS API for Python を使用して、ArcGIS Online 上のフィーチャ レイヤーを CSV 形式でファイル出力する方法をご紹介いたします。
方法
ArcGIS API for Python の gis オブジェクトの content プロパティを使用し、ContentManager クラスのインスタンスを生成した後、search() メソッドを使用して、CSV ファイルを出力したいフィーチャ レイヤーを検索します。検索結果として得られた Item クラスのオブジェクトの layer プロパティを用いて FeatureLayer クラスのオブジェクトを取得した後、FeatureLayer クラスのオブジェクトに対して query() メソッドを使用して FeatureSet オブジェクトを取得します。取得した FeatureSet オブジェクトのsdf プロパティを使用すると、SEDF (Spatially Enabled DataFrame) のオブジェクトを取得できます。SEDF の to_csv() メソッドを使用することで CSV ファイルを出力することができます。
Python サンプル コード
- search() メソッドを使用して、CSV ファイルを出力したいフィーチャ レイヤーを検索
# 対象のフィーチャ レイヤーを検索 # searchメソッドの引数使用例(query='品川区_投票所' : 「品川区_投票所」で検索、 # item_type='Feature Layer' : 「Feature Layer」を検索) item_list = gis.content.search(query='品川区_投票所',item_type='Feature Layer') # 検索結果を表示 item_list
- 検索結果として得られた Item クラスのオブジェクトの layer プロパティを使用して FeatureLayer クラスのオブジェクトを取得
# 検索結果の1番目のItemにアクセスし、layers プロパティを使用して # 1番目のフィーチャ レイヤーの情報を取得 my_feature_layer = item_list[0].layers[0] # 結果を表示 my_feature_layer
- query()メソッドと sdf プロパティを使用して SEDF のオブジェクトを取得
# SEDF のオブジェクトを query()メソッドと sdf プロパティを使用して取得 mysdf = my_feature_layer.query().sdf # 結果を表示(DataFrame の形式で表示) mysdf
- to_csv()メソッドを使用して CSV ファイルを ArcGIS Online 上の /arcgis/home 配下に保存
# to_csv() メソッドを使用して /arcgis/home 配下にCSVファイルを出力 # to_csv() メソッドの引数使用例('/arcgis/home/result.csv' : 出力先とファイル名を指定、 # index=False : SEDFのインデックスを含まない) mysdf.to_csv('/arcgis/home/result.csv',index=False)
実行結果
出力した CSV ファイルは ArcGIS Online 上の /arcgis/home 直下に保存されます。

結果ファイルのダウンロード
出力した CSV ファイルは ArcGIS Online 上の /arcgis/home 直下に保存されるため、Jupyter Notebook の画面上の [ファイル] から、結果ファイルをクリックすることでファイルをローカル環境にダウンロードが可能です。

注意事項
掲載しているコードはあくまでもサンプル (見本) として提供しているものであり、実行時に発生したエラーの対処方法につきましては、サポート対象外とさせていただきます。また、操作方法やソースコードに関するご質問は別途有償の開発者サポート契約にてご対応させていただきます。なお、コードを実行して生じたいかなる損害についても弊社では責任を負いかねます。このナレッジはお役に立ちましたか?
フィードバックをいただきありがとうございます!