非常に多くのスケマティック ダイアグラムが含まれているスケマティック データセットを移行する前に、移行するスケマティック ダイアグラムのサイズを確認し、スケマティック データセットがどのように構成されているか分析することを強くお勧めします。
次の状況では、移行に時間がかかり、多くのメモリを消費します。
- 移行するダイアグラムの数が多い場合。
- 移行するダイアグラムに数千のスケマティック フィーチャが含まれている場合。
- スケマティック フィーチャクラスに Query、Function、Formatted、Script タイプのスケマティック属性がある場合。
これらの状況では、「大きなスケマティック データセットの段階的な移行」セクションで説明する方法に従い、スケマティック データセットを移行することを強くお勧めします。
「スケマティック ダイアグラムの移行における並列処理実行時のパフォーマンスについて」セクションでは、設定する必要があるコンピューターの数や、許容時間内で多数のスケマティック ダイアグラムを移行するために並列的に実行できるプロセス数についての推奨事項を説明します。
大きなスケマティック データセットの段階的な移行
フェーズ 1 - 移行するスケマティック データセットの準備
この最初のフェーズでは、移行対象であるバージョン 10 より前のスケマティック データセットがどのように構成および編成されているかを分析し、効率的に移行するための準備を行います。
- ArcGIS Schematics エクステンションがインストールされているバージョン 10 より前のクライアントで ArcCatalog を起動します。
- 移行するバージョン 10 より前のスケマティック データセットを選択し、スケマティック デザイナーで編集します。
- それぞれのスケマティック フィーチャクラスの定義を分析し、スケマティック フィーチャクラスに Query、Function、Formatted、Script タイプ属性があるかどうかを確認します。
- 「バージョン 10 より前のスケマティック データセットの準備」で説明されている操作を実行します。
- 各スケマティック フィーチャクラスに設定された空間参照を確認します。
- コンテナーとして移行するノード スケマティック フィーチャクラスの ContainerMark 属性を構成します。
- 必要に応じて、バージョン 10 より前のスケマティック データセット内に一時的なスケマティック フォルダーを作成し、スケマティック ダイアグラムのサブセットをその一時フォルダーに移動します。
フェーズ 2 - スケマティック データセットの定義の移行
この 2 番目のフェーズでは、スケマティック データセットの定義を移行します。
- ArcCatalog を起動します。
- カタログ ツリーで移行対象のバージョン 10 より前のスケマティック データセットを右クリックして、[現在のバージョンの Schematics に移行] をポイントします。
- [ジオメトリ タイプの選択] ダイアログ ボックスが開きます。移行するスケマティック ノードと描画クラスのジオメトリ タイプを指定して、このダイアログ ボックスを閉じます。
- [現在のバージョンの Schematics に移行] ダイアログ ボックスが開きます。
- 移行先の出力スケマティック データセットを指定します。
- [出力動作] セクションの [定義] をオンにします。
- [OK] をクリックします。
フェーズ 3 - 複数のスケマティック ダイアグラムのサブセットの同時移行
この 3 番目のフェーズでは、バージョン 10 より前のスケマティック データセットに含まれるスケマティック ダイアグラムを移行します。
複数のコンピューター上で複数の並列移行プロセスを実行します。各移行プロセスは、スケマティック ダイアグラムの異なるサブセットを処理します。
各 10.x コンピューター上で次の操作を実行して、1 つ以上の移行プロセスを起動します。
- ArcCatalog を起動します。
- カタログ ツリーでバージョン 10 より前のスケマティック データセットを右クリックし、[現在のバージョンの Schematics に移行] を選択します。
- 表示された [ジオメトリ タイプの選択] ダイアログ ボックスを閉じます。
- [現在のバージョンの Schematics に移行] ダイアログ ボックスが開きます。
- 移行先の出力スケマティック データセットを指定します。
- [出力動作] セクションで次の手順を実行します。
- [ダイアグラム] をオンにします。
- [フィルターの指定] をオンにして、このプロセスが移行するスケマティック ダイアグラムのサブセットを決定する SQL フィルターを構成します。たとえば、フェーズ 1 で作成した一時フォルダーに対応する FOLDERID に基づいた SQL 式を作成します。
- スケマティック ダイアグラムに Query、Function、Formatted、Script タイプ属性を持つスケマティック フィーチャが含まれている場合は、[属性の評価付き] をオフにします。
- [OK] をクリックします。
フェーズ 4 - 移行したスケマティック ダイアグラムでのスケマティック フィーチャの属性の更新 (オプション)
ダイアグラムのサブセットを移行する際に [属性の評価付き] オプションをオフにした場合、移行したダイアグラム内にあるスケマティック フィーチャに定義されている Query、Function、Formatted、Script タイプは評価されていません。この場合、これらの属性を後で更新する必要があります。
スタンダード ビルダーに基づくスケマティック ダイアグラムや、カスタム クエリから構成されたスケマティック ダイアグラムの場合、次の Python サンプル スクリプトを使用して、それらの属性を簡単かつ迅速に更新できます。これは、[ダイアグラムの更新 (Update Diagrams GP)] ツールに基づいており、さまざまな状況で使用できます。
- 状況 A - 特定のスケマティック フォルダーに移行したすべてのスケマティック ダイアグラムの属性の更新
- 状況 B - 指定したダイアグラム テンプレートに基づいて移行されたすべてのスケマティック ダイアグラムの属性の更新
- 状況 C - N 日間更新されていない、移行されたすべてのスケマティック ダイアグラムの属性の更新
# Name: RefreshingAttributesInMigratedDiagrams.py
# Description: Refreshing attributes on schematic features contained in migrated diagrams
# Requirement: ArcGIS Schematics extension
# import system modules
import arcpy
msgNoLicenseAvailable = "ArcGIS Schematics extension license required"
try:
# Checks out the ArcGIS Schematics extension license
if arcpy.CheckExtension("Schematics") == "Available":
arcpy.CheckOutExtension("Schematics")
else:
raise Exception(msgNoLicenseAvailable)
# Sets Schematics general settings
dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_In_ArcMap"
gdbName="ElecDemo.gdb"
in_schDataset="ElecDemo"
in_schFolder="MyTemporaryFolderName"
in_diagTempName="GeoSchematic"
updateOption="REFRESH"
recOption1="RECURSIVE"
nbDays="60"
# Sets environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# Case A - Refreshing attributes on schematic diagrams that were migrated on a particular schematic folder.
arcpy.UpdateDiagrams_schematics(in_schDataset + "/" + in_schFolder1,"REFRESH")
# Case B - Refreshing attributes on all migrated schematic diagrams that are based on a specified diagram template.
arcpy.UpdateDiagrams_schematics(in_schDataset, "REFRESH", "RECURSIVE", in_diagTempName)
# Case C - Refreshing attributes on all migrated schematic diagrams that have not been updated for N days.
arcpy.UpdateDiagrams_schematics(in_schDataset, "REFRESH", "RECURSIVE", "#", nbDays)
# Returns the ArcGIS Schematics extension license
arcpy.CheckInExtension("Schematics")
print "Script completed successfully"
except Exception as e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "An error occurred on line %i" % tb.tb_lineno
print str(e)
移行したダイアグラムで属性を更新するには、次の手順を実行します。
- ArcCatalog を起動します。
- スクリプトをコピーして Python ウィンドウに貼り付けます。
- Enter キーを押します。
フェーズ 5 - 移行したスケマティック データセットの整理 (オプション)
各フォルダー内にあるスケマティック ダイアグラムを簡単に移行するために、バージョン 10 より前のスケマティック データセット内に一時的なスケマティック フォルダーを作成した場合、その一時フォルダーは移行したスケマティック データセット内にも存在します。それらのフォルダーに移行したスケマティック ダイアグラムを、スケマティックの本来の場所に移動し、一時フォルダーを削除できます。
スケマティック ダイアグラムの移行における並列処理実行時のパフォーマンスについて
大きなサイズのスケマティック ダイアグラム (2,000 のスケマティック フィーチャを含むダイアグラムなど) を多数移行する場合、複数のコンピューター上で複数の移行プロセスを並列的に実行することをお勧めします。それぞれの移行プロセスは、スケマティック ダイアグラムの異なるサブセットを処理します。次のセクションでは、移行プロセスをサポートするクライアント コンピューターと移行が行われるデータベース サーバーの要件と、それらのプロセスのサイズに関する推奨事項などについて説明します。
ArcGIS Desktop 10.2 クライアント コンピューターの要件
- プロセッサ: デュアルコア以上
- 搭載メモリ (RAM) : 1,000 の大きなスケマティック ダイアグラムの移行で、2 つの並列処理を実行し、各プロセスが 500 のスケマティック ダイアグラムを処理する場合、4 GB 以上。
4 つの並列処理を実行し、プロセスあたり 500、全体で 2,000 の大きなダイアグラムを移行する場合、CPU の使用率を考慮して 8 GB のメモリを搭載して実行することを推奨します。
データベース サーバー コンピューターの要件
- 搭載メモリ (RAM) : 16 GB 以上
- データベース サイズ: 2,000 のスケマティック フィーチャを含むダイアログが 1,000 ある場合、約 1.5 GB のディスク容量が必要であることを考慮して、移行されるダイアグラムのサイズに対応できるように、データベースのサイズを適切に設定する必要があります。
並列に実行する移行プロセスのサイズ設定
ファイル ジオデータベース内にあるバージョン 10 より前のスケマティック ダイアグラムをファイルまたは SDE ジオデータベースに移行するのは非常に高速です。500 の大きなスケマティック ダイアグラムは、約 1 時間で移行できます。しかし、SDE ジオデータベース内にあるバージョン 10 より前のスケマティック データセットに含まれるダイアグラムを SDE に移行するには、非常に時間がかかります。500 の大きなダイアグラムの移行には、約 6 時間かかります。この時間は、Query、Function、Formatted、Script タイプのスケマティック属性が数多くあり、それらの属性を移行中に評価する場合では、2 倍 (12 時間) になる可能性もあります。
移行するスケマティック ダイアグラムの数が非常に多い場合 (10,000 ダイアグラムなど)、次の手順を実行することで、それらすべてを夜間に移行できます。
- 10,000 のスケマティック ダイアグラムを 20 のサブセットに分割します。たとえば、スケマティック ダイアグラムを 20 の一時スケマティック フォルダーに再編します。
- 4 ~ 5 台の Desktop 10.2 クライアント コンピューターをセット アップします。
- それぞれの Desktop 10.2 クライアント コンピューター上で 4 ~ 5 つの並列移行プロセスを開始します。各プロセスは、特定のスケマティック フォルダーなどにあるダイアグラムの特定のサブセットを処理します。