注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Pipeline Builder を使って、地理空間データをロードし、変換し、操作できます。地理空間ワークフローが Pipeline Builder の現在の機能でまだサポートされていない場合は、コードリポジトリでデータを変換するための Foundry のレガシー地理空間ドキュメントを参照してください。
Pipeline Builder は、内部的に論理型という概念を使用して地理空間データをモデリングします。論理型は、基本型(文字列、整数、ブール、配列、構造体)に、表現されるデータに対する追加の制約が適用されたものです。たとえば、Geometry 型は、有効な GeoJSON でなければならない文字列として定義されており、Geo-point は、-180
から 180
までの経度と、-90
から 90
までの緯度を持つ構造体でなければならない。サポートされている型の完全なリストは下記を参照してください。
Pipeline Builder のすべての論理型は、基本型を継承しています。たとえば、Geometry は文字列型の入力が必要な式に入力として使用できますが、その逆はできません。基本型からその基本型を拡張する特定の論理型にキャストするには、「論理型キャスト」式を使用できます。これにより、その論理型に関連する制約がデータに適用され、この検証に失敗する値が null になります。式が入力および出力として論理型を指定できるようにすることで、地理空間特有の式が GeoJSON 文字列を期待する場合、GeoJSON 文字列が受け取られることが保証されます。
Pipeline Builder は現在、以下の地理空間型をサポートしています。
-90
から 90
までの範囲で、緯度は -180
から 180
までの範囲で、どちらも含まれる。Geo-point は、WGS:84 または EPSG:4326 座標参照系(CRS)に従った有効な (x, y) 座標でなければならない。minLat
、minLon
、maxLat
、maxLon
の構造体で表され、それぞれが有効な Geo-point であり、maxLat > minLat
および maxLon > minLon
である。{lat},{lon}
の形式を満たし、-90 <= lat <= 90
および -180 <= lon <= 180
である。Pipeline Builder は、地理空間データのさまざまな変換と式をサポートしています。
lat,lon
ペアを取り、上記で概説した範囲を検証し、Geo-point 表現に変換します。x,y
ペアと座標参照系を取り、その (x,y)
を WGS:84 に投影し、Geo-point 表現を作成します。EPSG データベースのほとんどの座標系からの変換をサポートし、すべての UTM ゾーンを含む。上記の 2 つのタイプ間の変換、およびそれらを H3 インデックス、MGRS、バウンディングボックス、Ontology geo-point 形式に変換するための追加の式が存在します。
座標参照系と投影に関するドキュメントで、地理空間データ形式の詳細を学びます。
Pipeline Builder の地理空間型の列が入力されたら、地理空間データに特化した変換を利用できます。ほとんどの変換(ジオジョインを除く)は、ストリーミングとバッチの両方のワークフローで現在サポートされています。以下にいくつかのハイライトを挙げます。
Pipeline Builder は、次の地理空間ジョインをサポートしています。
Pipeline Builder のジオメトリ交差ジョインには、それぞれがジオメトリ型の列を持つ 2 つのデータセットが必要です。ジオメトリ交差ジョインでは、Ontology geopoint または geopoint 入力型を受け付けません。ジョインを適用する前に、ジオメトリ列を正規化し、出力に必要ない場合は、明示的に null
値をフィルター処理することをお勧めします。パイプラインに非決定性または別のジョインがある場合は、ジオジョインの前にチェックポイントを追加します。
Pipeline Builder は、中程度の大きさのジオメトリ(約 34 ポイントまで)を最大 100 万行のデータセットと結合できます。出力行の数が 2 倍に増えることを前提としています。データが偏っている場合、片側に最大 2 億 5 千万行、もう片側に 1600 行までのジョインをサポートできます。ジオメトリのサイズが大きくなると、安定性が低下する可能性があります。ジョインは、1 つの大規模なジオメトリ(40k ポイント程度)を最大 50 万行のデータセットと結合することを一貫してサポートできます。これ以上の大規模なスケールは、断続的に成功するかもしれませんが、公式にはサポートされていません。
出力の行数がクロスジョインと同等のジオメトリ交差ジョインは、ジョインの安定性が低下する原因となる場合があります。
ジオメトリ交差ジョインの代替として、「ジオメトリが交差している」というフィルターを設定したクロスジョインが、より安定したメモリ使用量を提供する場合があります。ただし、このアプローチは、ビルド時間が急激に増加する可能性があります。別の代替手段として、Code Repositories の geospatial-tools
PySpark ライブラリを使用することができます。詳細については、Palantir の担当者にお問い合わせください。
Pipeline Builder のジオメトリ距離ジョインには、それぞれがジオメトリ型の列を持つ 2 つのデータセットが必要です。また、0 より大きい距離の値と、提供された距離の単位を決定する座標参照系文字列が必要です。たとえば、座標参照系に "epsg:4326" が指定された場合、距離は度単位であると想定されます。交差ジョインと同様に、ジオメトリ列を正規化し、出力に必要ない場合は、明示的に null
値をフィルター処理することをお勧めします。パイプラインに別のジョインや非決定性がある場合は、ジョインの前にチェックポイントを追加します。
Pipeline Builder は、小さなジオメトリ(おおよそ 8 ポイントまで)を含むデータセットを最大 100 万行までのスケールで結合できます。これは、ジョインの結果として行数が 2 倍になることを前提としています。出力の行数がクロスジョインと同等である場合、安定性が低下する可能性があります。
ジオメトリ距離ジョインの代替として、ジオメトリバッファと「ジオメトリが交差している」というフィルターを設定したクロスジョインが、行数の増加が大きい場合にメモリ使用量が安定する可能性があります。ただし、このアプローチは、ほとんどの場合においてビルド時間が急激に増加することがあります。
Pipeline Builder のジオメトリ最近傍ジョインには、ジオメトリの base
データセットと neighbors
データセットのポイントが必要です。k
整数パラメーターは、各基本ジオメトリに対して見つける最近傍の数を設定します。座標参照系が必要であり、基本ジオメトリと隣接ポイント間の距離が計算され、比較される方法を決定します。結果は、結合された行のセットで、各行には、基本ジオメトリに最も近い k
個のポイントの 1 つが含まれます。タイは任意に解決され、結果は特定の順序で返されません。
このジョインには以下の 2 つの要件があります。
neighbors
データセット内のすべてのジオポイントが、エグゼキュータとドライバのメモリに収まることができる必要があります。これは現在のハード要件であり、ジョインのスケーラビリティを制限しています。neighbors
データセットの分散が必要なユースケースがある場合は、Palantir の担当者にお問い合わせください。
Foundry は現在、neighbors
データセットのジオポイント論理型のみを受け入れており、メモリ消費を抑えるためです。ジョインの neighbors
側で非ポイントジオメトリが必要な場合は、Palantir の担当者にお問い合わせください。
実際には、Pipeline Builder は、k
の値が小さく(< 5)、隣接データセットに数十万行、基本データセットに 100 万ジオメトリがある場合をサポートしています。両方のデータセットに数十万行がある場合、Pipeline Builder は k
の値が大幅に大きくなることをサポートできます。このような場合、最大数百の最近傍を見つけることが迅速に完了するでしょう。この点を超える入力のスケールを増やすと、断続的に成功する可能性がありますが、一般的には現在サポートされていません。
ジョインで安定性の問題が発生している場合は、以下の手順で対処してください。
Pipeline Builder でデータの変換が完了したら、地図上でこれらの変換の結果を視覚的に確認できます。通常のプレビューペインで、地図上にプレビューしたいセルを選択します(セルは、上記で述べた地理空間型のいずれかの列からのものである必要があります)。右クリックして Open Geo Preview を選択します。
新しいプレビュータブが表示され、選択したセルが地図上にプロットされます。
Pipeline Builder の地理空間機能は、プラットフォーム全体の下流データとシームレスに統合されるように設計されています。