大きなスケマティック データセットを移行する場合の推奨事項

非常に多くのスケマティック ダイアグラムが含まれているスケマティック データセットを移行する前に、移行するスケマティック ダイアグラムのサイズを確認し、スケマティック データセットがどのように構成されているか分析することを強くお勧めします。

次の状況では、移行に時間がかかり、多くのメモリを消費します。

これらの状況では、「大きなスケマティック データセットの段階的な移行」セクションで説明する方法に従い、スケマティック データセットを移行することを強くお勧めします。

スケマティック ダイアグラムの移行における並列処理実行時のパフォーマンスについて」セクションでは、設定する必要があるコンピュータの数や、許容時間内で多数のスケマティック ダイアグラムを移行するために並列的に実行できるプロセス数についての推奨事項を説明します。

大きなスケマティック データセットの段階的な移行

フェーズ 1 - 移行するスケマティック データセットの準備

この最初のフェーズでは、移行対象であるバージョン 10 より前のスケマティック データセットがどのように構成および編成されているかを分析し、効率的に移行するための準備を行います。

  1. ArcGIS Schematics エクステンションがインストールされているバージョン 10 より前のクライアントで ArcCatalog を起動します。
  2. 移行するバージョン 10 より前のスケマティック データセットを選択し、スケマティック デザイナで編集します。
  3. それぞれのスケマティック フィーチャクラスの定義を分析し、スケマティック フィーチャクラスに Query、Function、Formatted、Script タイプ属性があるかどうかを確認します。
  4. バージョン 10 より前のスケマティック データセットの準備」で説明されている操作を実行します。
    • 各スケマティック フィーチャクラスに設定された空間参照を確認します。
    • コンテナとして移行するノード スケマティック フィーチャクラスの ContainerMark 属性を構成します。
  5. 必要に応じて、バージョン 10 より前のスケマティック データセット内に一時的なスケマティック フォルダを作成し、スケマティック ダイアグラムのサブセットをその一時フォルダに移動します。

フェーズ 2 - スケマティック データセットの定義の移行

この 2 番目のフェーズでは、スケマティック データセットの定義を移行します。

  1. ArcCatalog を起動します。
  2. カタログ ツリーで移行対象のバージョン 10 より前のスケマティック データセットを右クリックして、[現在のバージョンの Schematics に移行] をポイントします。
  3. [ジオメトリ タイプの選択] ダイアログ ボックスが開きます。移行するスケマティック ノードと描画クラスのジオメトリ タイプを指定して、このダイアログ ボックスを閉じます。
  4. [現在のバージョンの Schematics に移行] ダイアログ ボックスが開きます。
    • 移行先の出力スケマティック データセットを指定します。
    • [出力動作] セクションの [定義] をオンにします。
    • [OK] をクリックします。
移行プロセスが開始されます。完了すると、スケマティック データセットの定義が移行されます。

フェーズ 3 - 複数のスケマティック ダイアグラムのサブセットの同時移行

この 3 番目のフェーズでは、バージョン 10 より前のスケマティック データセットに含まれるスケマティック ダイアグラムを移行します。

複数のコンピュータ上で複数の並列移行プロセスを実行します。各移行プロセスは、スケマティック ダイアグラムの異なるサブセットを処理します。

各 10.x コンピュータ上で次の操作を実行して、1 つ以上の移行プロセスを起動します。

  1. ArcCatalog を起動します。
  2. カタログ ツリーでバージョン 10 より前のスケマティック データセットを右クリックし、[現在のバージョンの Schematics に移行] を選択します。
  3. 表示された [ジオメトリ タイプの選択] ダイアログ ボックスを閉じます。
  4. [現在のバージョンの Schematics に移行] ダイアログ ボックスが開きます。
    • 移行先の出力スケマティック データセットを指定します。
    • [出力動作] セクションで次の手順を実行します。
      • [ダイアグラム] をオンにします。
      • [フィルタの指定] をオンにして、このプロセスが移行するスケマティック ダイアグラムのサブセットを決定する SQL フィルタを構成します。たとえば、フェーズ 1 で作成した一時フォルダに対応する FOLDERID に基づいた SQL 式を作成します。
      • スケマティック ダイアグラムに Query、Function、Formatted、Script タイプ属性を持つスケマティック フィーチャが含まれている場合は、[属性の評価付き] をオフにします。
        注意注意:

        スケマティック データセットの定義に Query、Function、Formatted、Script スケマティック属性がない場合は、[属性の評価付き] チェックボックスをオンにしてかまいません。この場合、このオプションがオンとオフのどちらであっても、移行にかかる時間は変わりません。

    • [OK] をクリックします。
移行プロセスが開始されます。完了すると、スケマティック ダイアグラムのサブセットが出力スケマティック データセットに移行されます。
注意注意:

各移行プロセス中は、特定のダイアグラムを移行しているときに、このダイアグラムが出力スケマティック データセットにすでに存在するかどうかが Schematics によって確認されます。出力スケマティック データセットに存在しないダイアグラムだけが移行されます。

フェーズ 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)
このサンプル スクリプトは、独自のスクリプトを記述して、移行されたダイアグラムに含まれるスケマティック フィーチャの属性を更新する場合に役に立ちます。
注意注意:

REFRESH builder_option は、このスクリプトを使用するための重要なオプションです。これは、ネットワーク フィーチャまたはカスタム クエリによって返されたレコードに関連付けられたスケマティック フィーチャの属性だけを更新するように、ダイアグラムのコンテンツを更新します。これらのネットワーク フィーチャやクエリされたレコードに対するその他の変更は、更新後にスケマティック ダイアグラムに反映されることはありません。

属性の更新オプションを使用したダイアグラムの更新の詳細

移行したダイアグラムで属性を更新するには、次の手順を実行します。

  1. ArcCatalog を起動します。
  2. スクリプトをコピーして Python ウィンドウに貼り付けます。
  3. 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 つの並列移行プロセスを開始します。各プロセスは、特定のスケマティック フォルダなどにあるダイアグラムの特定のサブセットを処理します。

5/10/2014