次の方法で共有


h3_uncompact 関数

適用対象: check marked yes Databricks SQL Databricks Runtime 11.3 LTS 以降

H3 セルの入力セットを指定した解像度に分解解除します。 分解解除されたセットは、指定した解像度でセルを使用する元のセルと同じ H3 セルのセットをカバーします。

構文

h3_uncompact ( h3CellIdsExpr, resolutionExpr )

引数

  • h3CellIdsExpr: H3 セル ID の配列を表す BIGINT 式の配列または 16 進数の STRING 式の配列。
  • resolutionExpr: 入力 H3 セルの最大解像度と 15 の間に値が想定される INTEGER 式。出力配列内の H3 セル ID の解像度を指定します。

戻り値

入力配列式 h3cellIdsExpr の値と同じ型の値の配列。 出力配列内の H3 セル ID の解像度は、resolutionExpr の値と等しくなります。

入力が NULL の場合、この関数は NULL を返します。 この関数は、入力引数が有効な H3 セル ID であるかどうかに関する部分的な検証を行います。 有効な H3 ID の必要条件 (ただし、十分条件ではない) は、その値が 0x08001fffffffffff0x08ff3b6db6db6db6 の間にあることです。 入力配列内のいずれかのセル ID が有効なセル ID でない場合、関数の動作は未定義です。 入力配列内の NULL 値は無視されます。

エラー条件

  • h3CellIdExpr が BIGINT に変換できない STRING の場合、または、0x08001fffffffffff より小さいか 0x08ff3b6db6db6db6 より大きい BIGINT 値に対応する STRING の場合、関数は H3_INVALID_CELL_ID を返します。
  • resolutionExpr が入力配列の H3 セルの最大解像度より小さい場合、または、15 よりも大きい場合、関数は H3_INVALID_RESOLUTION_VALUE を返します。

-- Example where the input is an ARRAY of BIGINTs
> SELECT h3_uncompact(ARRAY(599686030622195711,599686015589810175,599686014516068351,599686034917163007,599686029548453887,599686032769679359,599686198125920255,599686023106002943,599686027400970239,599686013442326527,599686012368584703,599686018811035647,595182446027210751), 5);
  [599686030622195711,599686015589810175,599686014516068351,599686034917163007,599686029548453887,599686032769679359,599686198125920255,599686023106002943,599686027400970239,599686013442326527,599686012368584703,599686018811035647,599686038138388479,599686039212130303,599686040285872127,599686041359613951,599686042433355775,599686043507097599,599686044580839423]

-- In this example we verify that uncompacting the compacted set of the 2-ring of an H3 cell at the cell’s resolution returns the original 2-ring.
> SELECT COUNT(*) FROM ((SELECT explode(h3_uncompact(h3_compact(h3_kring(599686042433355775, 2)), h3_resolution(599686042433355775)))) MINUS (SELECT  explode(h3_kring(599686042433355775, 2))))
  0

-- Second input is an invalid resolution value.
> SELECT h3_uncompact(ARRAY(599686030622195711,599686015589810175,599686014516068351,599686034917163007,599686029548453887,599686032769679359,599686198125920255,599686023106002943,599686027400970239,599686013442326527,599686012368584703,599686018811035647,595182446027210751), 2);
  [H3_INVALID_RESOLUTION_VALUE] H3 resolution 2 must be between 5 and 15, inclusive