パーティションを使用した大きなデータセットのジェネラライズ

データの複数テーマを状況に応じて考慮するジオプロセシング ツールは、処理が始まる前にすべての入力データをメモリに読み込む必要があります。大きなデータセットまたは膨大な入力データセットによって、これらのツールのメモリの制限を容易に超える可能性があります。パーティションは、大量のデータをより小さく扱いやすいフィーチャのセットに分割する方法です。

分割されたデータにツールを実行すると、各パーティションが順次処理されます。パーティションの境界上または境界付近のフィーチャは、不一致が起こらないように密接して処理されます。各パーティション外の別データは、ツールによって読み込まれ、処理中に考慮されます。ただし、その時点ではパーティション内のフィーチャだけが変更されます。結果的に、シームレスな最終出力が生成されます。

通常、すべての入力レイヤー全体で 100,000 を超えるフィーチャがある場合、またはフィーチャに多数の頂点が含まれていて複雑である場合は、パーティションを使用してツールを実行します。以下のツールでパーティションが使用できます。

パーティションを有効にする方法

上記リストのジオプロセシング ツールでパーティションを有効にするには、[カートグラフィック パーティション] ジオプロセシング環境設定にパーティション フィーチャクラスを指定します。この設定を使用すると、適用できるツールで、一度にすべてではなくパーティション単位で順次、入力フィーチャを処理できるようになります。

パーティション フィーチャクラスは、対象エリアを十分にカバーし、入力フィーチャを均等に分割する必要があります。パーティションが大きすぎる場合にも、メモリの制限を超えてしまいます。一方で、非常に小さいパーティションを使用すると、ツールの状況に応じた処理機能が低下して、処理結果の品質が損なわれる可能性があります。

パーティションとして使用するもの

パーティション フィーチャのソースは複数あります。印刷されたマップの連続セットに表示されるデータ範囲など、固有の論理パーティションをすでに含んでいるワークフローもあります。多くの場合、ポリゴンとしてモデル化されたマップ シートによって、理想的なパーティションができます。この場合、[インデックス フィーチャ (格子状) の作成 (Grid Index Features)] ツールを使用して、矩形ポリゴン フィーチャのグリッドを作成します。これらは、入力データが対象エリア全体に比較的均一に分散されている場合に妥当なパーティションを作成します。

Web マッピングでは、キャッシュ タイル スキーマによって適切なパーティションのセットを作成できます。[マップ サービス キャッシュ タイル スキーマ → ポリゴン (Map Server Cache Tiling Scheme To Polygons)] ツールを使用して、このスキーマを表すポリゴンのグリッドを作成します。マップ シートの範囲の使用と同様に、これは、入力フィーチャが均一に分散されている場合に有効なワークフローです。

ワークフローによっては、データセットに、県または郵便番号など、隣接するパーティションを形成するフィーチャクラスを含む場合もあります。これらのフィーチャが入力フィーチャを適切にカバーして分割していると考えられる場合は、パーティションとしての使用が可能になります。これは、データがさまざまな密度で分布している場合にすぐれた方法です。たとえば、郵便番号のポリゴンは、住宅の密度が高い場所で小さくなります。したがって、郵便番号は、建物の競合を解決する場合にすぐれたパーティションを作成します。

そのまま使用できる適切なポリゴンがない場合は、パーティション専用のポリゴンを作成することもできます。[カートグラフィック パーティションの作成 (Create Cartographic Partitions)] ツールを使用して、ほぼ等しい数の入力フィーチャか頂点を取り囲むポリゴンの連続したセットを作成します。

パーティション要件

  • 各パーティションのサイズは、ツールの処理能力を超える入力データを取り囲まないように設定する必要があります。この閾値は、通常、すべての入力レイヤーからのフィーチャの数とそのフィーチャの複雑さから決定されます。これは、使用するツールやパラメーターの設定によっても異なります。原則として、およそ 50,000 を超えない入力フィーチャを含むパーティションを考えます。パーティション方法として頂点を使用する場合は、使用可能なメモリ量に基づく値を選択します。ツールによって異なりますが、頂点が 100 万個あると、約 0.5 GB のメモリを費やします。
  • パーティション フィーチャ は、この設定を反映するツールによって処理される入力フィーチャの論理的分割である必要があります。入力フィーチャは、パーティション フィーチャに均等に分配される必要があります。例として次のようなものがあります。県や他の行政区域などの空間的に関連するフィーチャのセット、個々のマップ シートを表すポリゴン (例: [インデックス フィーチャ (格子状) の作成 (Grid Index Features)] ツールで作成されたポリゴン)、または [カートグラフィック パーティションの作成 (Create Cartographic Partitions)] ツールによってこの目的用に作成されたポリゴン パーティションなどです。
  • パーティション フィーチャは、トポロジ的に正しい必要があります。隣接するポリゴンのエッジは、一致している必要があり、重なりがあってはいけません。パーティション フィーチャの間のホールは、許容されます。ただし、パーティション フィーチャは、マルチパート ポリゴンまたはホールを持つポリゴンであってはいけません。ポリゴンは、シンプルで、重なり合わないジオメトリである必要があります。
  • 各パーティション ポリゴンは、ゼロより大きい領域を持つ必要があります。NULL または空のパーティションは、処理されず、警告が出されます。これらのパーティションは、処理中に無視されます。
  • パーティション フィーチャは、この設定を反映するツールによって処理される入力フィーチャの論理的分割である必要があります。入力フィーチャは、パーティション フィーチャに均等に分配される必要があります。
  • 入力フィーチャの範囲は、パーティション フィーチャにカバーされている必要があります。
  • パーティション ジオメトリは、できるだけ単純である必要があります。ジオメトリが複雑だと、分割が有効の場合のツールのパフォーマンスに影響をおよぼします。

パーティションの処理方法

パーティションを ([カートグラフィック パーティション] ジオグラフィック環境設定でパーティション フィーチャクラスを指定して) 有効にすると、パーティション対応のツールによって、各セクションの入力データがパーティションで指定されたとおりに処理されます。パーティションは、各パーティションの object ID の順に処理されます。マップの特定のエリアのみを処理する場合は、マップのレイヤーを環境変数として使用して、処理の前に関係する分割フィーチャを選択します。パーティション フィーチャクラスが入力を完全にはカバーしていない場合、そのパーティションでカバーされるエリアだけが処理されます。

データが分割されても、1 つのパーティションの入力データの量がまだ処理ツールのメモリの制限を超える場合があります。このような場合、そのパーティションの処理は失敗となり、次のパーティションへ進みます。ジオプロセシング メッセージに、処理されなかったパーティションが示されます。パーティション フィーチャクラスに STATUS という名前のフィールドが追加され、フィーチャクラスの状態を示す、次のいずれかのステートメントが設定されます。

  • 0 - 処理されていません
  • 1 - 処理しています
  • 2 - 正常に処理されました
  • 3 - メモリが不足しています
  • 4 - エラー

ヒント:

STATUS フィールドに設定された処理状態を保存する必要がある場合は、パーティション対応のツールを実行する前に、データに新しいフィールドを追加して、そのフィールドに STATUS フィールドの値を設定します。

関連トピック