大きいデータセットのタイル化処理

[ユニオン (Union)][インターセクト (Intersect)] などのフィーチャ オーバーレイ ツールのパフォーマンスとスケーラビリティを向上させるには、適応的再分割法と呼ばれる操作ロジックが使用されます。このロジックは、使用可能な物理メモリ量の範囲内でデータを処理できない場合に開始されます。物理メモリの容量を超えないように処理をすると、パフォーマンスが大幅に向上します。そのためには、マップ範囲全体を一度に処理するのではなく、要素に分割して要素ごとに処理を進め、徐々に全体を処理します。マップを分割してできるこのような個々の要素を「タイル」といいます。タイル間にまたがるフィーチャはタイルのエッジで一時的に切断されますが、処理の最終段階で元どおりにつなげられます。これらのタイルのエッジに作成された頂点は、出力フィーチャに残ります。処理対象のフィーチャのサイズが非常に大きく、分割された要素の処理時に、使用可能なメモリの範囲内ではフィーチャを元の状態に戻せない場合には、タイル境界も出力フィーチャクラスに残される場合があります。

データを分割する理由

オーバーレイ解析ツールは、使用しているコンピューターで利用可能なメモリ (システムまたはその他のアプリケーションが使用していない空きメモリ) 内で処理を実行できる場合に、最適に動作します。ただし、多数のフィーチャを含むデータセット、複雑なフィーチャ操作を伴う極めて複雑なフィーチャ、または数 10 万個や数 100 万個の頂点を含むフィーチャ (あるいは、これら 3 つすべての組み合わせ) を操作する場合、最適に動作しない恐れがあります。タイルを使用しないと、利用可能なメモリが急速に消費され、オペレーティング システムはページングを開始します (二次記憶装置をメイン メモリのように使用します)。ページングは性能の低下につながり、ある時点でシステムはリソースを使い果たし、処理が失敗します。タイルを使用すると、このような問題を可能な限り防ぐことができます。極端な場合、プロセスを完了するためにメモリ管理処理がシステムに渡され、オペレーティング システムがすべてのリソースを自由に使えるようにすることで、処理を完了しようとします。

タイルとはどのようなものか

すべてのプロセスは、データの範囲全体に広がる単一のタイルで開始されます。単一のタイル内のデータが大きすぎて物理メモリでは処理できない場合、4 つの等しいタイルに分割されます。次に、処理はサブタイルで実行され、この 2 番目のレベルのタイルでもデータが大きすぎる場合には、さらに分割が実行されます。各タイル内のデータが物理メモリ内で処理できるようになるまで、分割が続行されます。次の例をご参照ください。

入力データセットの範囲

すべての入力フィーチャのフットプリント

GP タイル レベル 1

プロセスは全データセットの範囲全体に広がる 1 つのタイルで開始されます。これはタイル レベル 1 と呼ばれます。

GP タイル レベル 2

データが大きすぎてメモリでは処理できない場合、レベル 1 のタイルは 4 つの等しいタイルに分割されます。これらの 4 つのサブタイルはタイル レベル 2 と呼ばれます。

GP 適応的再分割法によるタイル

各タイルのデータのサイズによって、さらに分割されるタイルと、分割されないタイルがあります。

適応的再分割法を使用するツール

[解析ツール] ツールボックスの以下のツールは、大きなデータを処理する際に適応的再分割法のロジックを使用します。

  • バッファー (Buffer)([ディゾルブ オプション] を使用する場合)
  • クリップ (Clip)
  • イレース (Erase)
  • アイデンティティ (Identity)
  • インターセクト (Intersect)
  • スプリット (Split)
  • シンメトリカル ディファレンス (Symmetrical Difference)
  • ユニオン (Union)
  • アップデート (Update)

[データ管理 ツール] ツールボックスの以下のツールは、大きなデータセットを処理する際に適応的再分割法のロジックを使用します。

  • ディゾルブ (Dissolve)
  • フィーチャ → ライン (Feature To Line)
  • フィーチャ → ポリゴン (Feature To Polygon)
  • ポリゴン → ライン (Polygon To Line)

メモリ不足エラーによる処理の失敗

非常に大きなフィーチャ (数百万の頂点を持つフィーチャ) を処理する場合、適応的再分割法が役に立たない場合があります。非常に大きなフィーチャの分割と組み立てを、タイル境界を越えて複数回繰り返すと、非常に大量のメモリが消費され、フィーチャが大きすぎる場合にはメモリ不足エラーが発生する可能性があります。メモリ不足エラーが発生するかどうかは、処理を実行するコンピューター上で利用可能なメモリ量 (システムまたはその他のアプリケーションが使用していない空きメモリ) によって決まります。あるコンピューター設定ではメモリ不足エラーを発生する大きなフィーチャでも、別のコンピューター設定ではエラーが生じない場合があります。別のアプリケーションで使用されているリソースの状況に応じて、同じコンピューター上でもメモリ不足エラーが発生したり、発生しなかったりすることがあります。多数の頂点がある非常に大きなフィーチャの例としては、都市全体の道路の枠や、複雑な河口を表すポリゴンが挙げられます。

ジオプロセシング ツールの処理中に、2 つ目のアプリケーションやジオプロセシング ツールを実行した場合にも、メモリ不足エラーが発生する可能性があります。この 2 番目のプロセスによってメモリの一部が使用されると、分割プロセスが使用できるメモリ量が、それが要求するメモリ量より少なくなってしまいます。大きなデータセットの処理中には、同じコンピューターでその他の操作を実行しないことをお勧めします。

お勧めできる方法の 1 つとして、処理の前に大きなフィーチャを小さなフィーチャに分割するための [フィーチャの分割 (Dice)] ツールの使用があります。

大きなデータの処理時に推奨されるデータ形式

パーソナル ジオデータベースおよびシェープファイルの大きさは、2 ギガバイト (GB) に制限されています。処理の出力がこのサイズを超えると、エラーが発生する場合があります。エンタープライズ ジオデータベースとファイル ジオデータベースにはこの制限がないため、非常に大きなデータベースを処理する際には、出力ワークスペースとしてこれらの形式が推奨されます。エンタープライズ ジオデータベースについては、データの読み込みポリシーに関して、データベース管理者にお問い合わせください。未計画または未承認の大きなデータの読み込み操作は、制限される可能性があります。