Skip to main content

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

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

ツールをパーティション型データで実行すると、各パーティションが順次処理されます。 パーティションの境界上または最近接のフィーチャは、不一致を避けるために厳密に管理されます。 各パーティションを超えた追加データはツールによって読み込まれ、処理中に考慮されますが、その時点で変更されるのはパーティション内のフィーチャのみです。 結果として、シームレスな最終出力が得られます。

一般に、すべての入力レイヤーに合計で約 100,000 以上のフィーチャが存在する場合や、非常に多くの数の頂点を持つ複雑なフィーチャの場合には、パーティション分割を使用したツールの実行を検討してください。 次のツールでパーティション分割を有効化できます:

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

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

パーティション フィーチャクラスは対象エリアを十分にカバーし、入力フィーチャをある程度均等に分割する必要があります。 パーティションが大きすぎるとメモリー制限を超えてしまいますが、小さすぎるパーティションを使用すると、ツールの状況に応じた考慮が減衰し、結果の品質が低下する可能性があります。

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

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

Web マッピングでは、キャッシュ タイル スキーマによって適切なパーティション セットを作成することもできます。 マップ サービス キャッシュ タイル スキーマ → ポリゴン ツールを使用して、このスキーマを表すポリゴンのグリッドを作成することを検討してください。 マップ シートの範囲を使用するのと同様に、入力フィーチャがある程度均一に分布している場合に、これは有効なワークフローとなります。

一部のワークフローでは、県や郵便番号など、自然な隣接パーティションを形成するフィーチャクラスがデータセットに含まれることがあります。 これらのフィーチャが入力フィーチャを適切にカバーして分割していると仮定すれば、これらをパーティションとして使用できます。 これは密度が異なるデータの分布に対する良好なアプローチです。 たとえば、住宅の密度が高い地域があると郵便番号ポリゴンは小さくなる傾向があるため、建物の競合を解決する場合には郵便番号が良好なパーティションとなる可能性があります。

適切なポリゴンをすぐに入手できない場合は、パーティション専用のポリゴンを作成することもできます。 カートグラフィック パーティションの作成 ツールを使用して、ほぼ同数の入力フィーチャや頂点を囲む、隣接するポリゴン セットを作成します。

パーティションの要件

  • 各パーティションのサイズは、ツールの機能を超える入力データを含まないように設定する必要があります。 この閾値は一般的に、すべての入力レイヤーからのフィーチャ数とそれらのフィーチャの複雑さによって決まります。 実行するツールや、パラメーターが定義された方法によっても異なります。 一般的なガイドラインとしては、およそ 50,000 以下の入力フィーチャを含むパーティションが考えられます。 パーティション方法に頂点を使用する場合は、使用可能なメモリー量に基づいて値を選択します。 ツールによって異なりますが、100 万の頂点で約 0.5 GB のメモリーを使用します。

  • パーティション フィーチャは、この設定を反映するツールによって処理される入力フィーチャの論理的分割である必要があります。 入力フィーチャは、パーティション フィーチャに均等に分配される必要があります。 例として次のようなものがあります。県や他の行政区域などの空間的に関連するフィーチャのセット、個々のマップ シートを表すポリゴン (例: インデックス フィーチャ (格子状) の作成 ツールで作成されたポリゴン)、または カートグラフィック パーティションの作成 ツールによってこの目的用に作成されたポリゴン パーティションなどです。

  • パーティション フィーチャは、トポロジー的に正しい必要があります。 隣接するポリゴンのエッジは、一致している必要があり、重なりがあってはいけません。 パーティション フィーチャの間のホールは、許容されます。ただし、パーティション フィーチャは、マルチパート ポリゴンまたはホールを持つポリゴンであってはいけません。 ポリゴンは、シンプルで、重なり合わないジオメトリーである必要があります。

  • 各パーティション ポリゴンは、ゼロより大きい領域を持つ必要があります。 NULL または空のパーティションは、処理されず、警告が出されます。 これらのパーティションは、処理中に無視されます。

  • パーティション フィーチャは、この設定を反映するツールによって処理される入力フィーチャの論理的分割である必要があります。 入力フィーチャは、パーティション フィーチャに均等に分配される必要があります。

  • 入力フィーチャの範囲はパーティション フィーチャ内に含まれる必要があります。

  • パーティションのジオメトリーは、できるだけシンプルにする必要があります。 ジオメトリーが複雑だと、パーティション分割を有効にしたときのツールのパフォーマンスに影響します。

パーティション分割による処理方法

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

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

  • 0 - 未処理

  • 1 - 処理中

  • 2 - 正常に処理

  • 3 - メモリー不足

  • 4 - エラー

ヒント:

STATUS フィールドに示された処理状態を保持する必要がある場合は、次のパーティション対応ツールを実行する前に、データに新しいフィールドを追加して、STATUS フィールドのフィールドを計算してください。