日本語
Continue in the app
Be The First To Get Support Updates
Want to know about the latest technical content and software updates?

操作手順: ある ArcGIS Online 組織または Portal for ArcGIS から別の ArcGIS Online 組織または Portal for ArcGIS へのコンテンツのコピー/クローン作成

概要

ArcGIS Online Assistant は、多くの場合、ある ArcGIS Online 組織または Portal for ArcGIS から別の ArcGIS Online 組織または Portal for ArcGIS にコンテンツをコピーするための唯一の手段と考えられます。 ただし、以下に示す手順では、これを実行するために、ArcGIS API for Python を使用して、Web マップ、テンプレート、ダッシュボード、シェープファイル、ファイル ジオデータベースなどのコンテンツをコピーする方法について説明します。

手順

以下の Python スクリプト (Jupyter Notebook インターフェイスから実行される) は、arcgis モジュールの clone_items メソッドを使用して、ホスト フィーチャ レイヤーおよび基になるサービスを、ある ArcGIS Online 組織から別の ArcGIS Online 組織にコピーします。 使用するサンプル セルは、Jupyter Notebook での使用を対象としていますが、スタンドアロン スクリプトで使用するように変更できます。

注意: コピーを実行するユーザーは、対象の GIS の管理者である必要があります。
  1. 必要なモジュールをインポートします。
from arcgis.gis import GIS
  1. 元の ArcGIS Online アカウントの URL および認証情報を指定します。
#ArcGIS Online の場合 gis=GIS("https://arcgis.com", "ユーザー名", "パスワード") #Portal for ArcGIS の場合 gis=GIS("https://<gisserver>.<domain>.com/portal", "ユーザー名", "パスワード")
  1. クローン作成されたアイテムをエクスポートするアカウントのユーザー名を指定します。
username_2 = input("ターゲット組織のユーザー名を入力する: ") #ArcGIS Online の場合 gis2 = GIS("https://arcgis.com", username_2) #Portal for ArcGIS の場合 gis2 = GIS("https://<gisserver>.<domain>.com/portal", username_2)
  1. クローンを作成するアイテムのリストを作成します。 これを実行する場合、次のようなオプションがあります。
  • エクスポートするアイテムの最大数を設定する:
num_items = 5 items = gis1.content.search(query="owner: {}".format(username), max_items=num_items, sort_field='id', sort_order='desc')
  • アイテムの最大数を入力パラメーターとして取得する:
num_items = int(input("クローンを作成するアイテムの数はいくつですか? ")) items = gis1.content.search(query="owner: {}".format(username), max_items=num_items, sort_field='id', sort_order='desc')
  • アイテム ID を使用して特定のアイテムを取得する:
itemid = '<item_ID>' #アイテム ID を挿入する items = gis.content.get(itemid)
  • クエリを含む検索関数を使用して、クローンを作成する特定のアイテムを検索します。 一般的な形式は次のとおりです。
items = gis.content.search(query, item_type=None, sort_field='avgRating', sort_order='desc', max_items=10, outside_org=False, categories=None, category_filters=None)
  1. クローンを作成するアイテムのリストを出力します。
print(str(len(items)) + "アイテムのクローンが作成されます。 以下のリストをご参照ください。") items
  1. clone_items() 関数を使用してアイテムのクローンを作成し、クローン処理が失敗した場合にエラーを処理するロジックを作成します。  
def deep_copy_content(input_list): for item in input_list: try: print("クローンを作成しています " + item.title) copy_list = [] copy_list.append(item) gis2.content.clone_items(copy_list, copy_data=True, search_existing_items=True) print("正常にクローンが作成されました " + item.title) except Exception as e: print(e) print("関数が完了しました") deep_copy_content(items)
注意: 代替手段として、例外の処理が不要な場合は、ロジックのコード ブロックの外で clone_items() 関数を使用することもできます。 ステップ 5 の後に、次のような clone_items() 関数を使用できます。 gis2.content.clone_items([items])

完全なスクリプトのサンプルを以下に示します。

from arcgis.gis import GIS gis=GIS("https://arcgis.com", "ユーザー名", "パスワード") username_2 = input("ターゲット組織のユーザー名を入力する: ") gis2 = GIS("https://arcgis.com", username_2) #アイテム ID を使用して特定のアイテムを取得する: itemid = 'cc94b27a35d14f40987d96f3d2a39e67' items = gis.content.get(itemid)  print(str(len(items)) + " アイテムのクローンが作成されます。 以下のリストをご参照ください。") items def deep_copy_content(input_list): for item in input_list: try: print("クローンを作成しています " + item.title) copy_list = [] copy_list.append(item) gis2.content.clone_items(copy_list, copy_data=True, search_existing_items=True) print("正常にクローンが作成されました " + item.title) except Exception as e: print(e) print("関数が完了しました") deep_copy_content(items)

関連情報

更新日時: 5/13/2021

記事 ID: 000022252

ソフトウェア: Portal for ArcGIS 10.8.1, 10.8, 10.7.1, 10.7, 10.6.1, 10.6