Vertex functions¶
Vertex mode allows encoding the topological vertexes of H3 cells.
cell_to_vertex
¶
Retrieve the H3 vertex index for a specific vertex of a given cell.
Parameters
- cell : IntoExprColumn
H3 cell index (pl.UInt64
,pl.Int64
, orpl.Utf8
). - vertex_num : int
0-based vertex number. For hexagonal cells, valid range is[0..5]
; for pentagonal cells,[0..4]
.
Returns
- Expr
A Polars expression returning the corresponding H3 vertex index (pl.UInt64
orpl.Int64
), ornull
if invalid.
Examples
>>> df = pl.DataFrame({"h3_cell": [599686042433355775]})
>>> df.with_columns(vertex=plh3.cell_to_vertex("h3_cell", 0))
shape: (1, 2)
┌─────────────────────┬─────────────────────┐
│ h3_cell │ vertex │
│ --- │ --- │
│ u64 │ u64 │
╞═════════════════════╪═════════════════════╡
│ 599686042433355775 │ 2473183459502194687 │
└─────────────────────┴─────────────────────┘
Errors
ComputeError
: Ifvertex_num
is out of range or the cell is invalid.
cell_to_vertexes
¶
Retrieve all vertex indices for a given H3 cell.
Parameters
- cell : IntoExprColumn
H3 cell index (pl.UInt64
,pl.Int64
, orpl.Utf8
).
Returns
- Expr
A Polars expression returning a list of H3 vertex indices (6 for a hex cell, 5 for a pentagon).
Examples
>>> df = pl.DataFrame({"h3_cell": [599686042433355775]})
>>> df.with_columns(vertexes=plh3.cell_to_vertexes("h3_cell"))
shape: (1, 2)
┌─────────────────────┬────────────────────────────────────────────────┐
│ h3_cell │ vertexes │
│ --- │ --- │
│ u64 │ list[u64] │
╞═════════════════════╪════════════════════════════════════════════════╡
│ 599686042433355775 │ [2473183459502194687, 2545241069646249983, … ] │
└─────────────────────┴────────────────────────────────────────────────┘
vertex_to_latlng
¶
Convert an H3 vertex index into its latitude and longitude coordinates.
Parameters
- vertex : IntoExprColumn
H3 vertex index (pl.UInt64
,pl.Int64
, orpl.Utf8
).
Returns
- Expr
A Polars expression returning a two-element list[latitude, longitude]
(Float64
,Float64
) ornull
if invalid.
Examples
>>> df = pl.DataFrame({"vertex": [2459626752788398079]})
>>> df.with_columns(coords=plh3.vertex_to_latlng("vertex"))
shape: (1, 2)
┌──────────────────────┬─────────────────────────┐
│ vertex │ coords │
│ --- │ --- │
│ u64 │ list[f64] │
╞══════════════════════╪═════════════════════════╡
│ 2459626752788398079 │ [39.38084284181812, 88.57496213785487] │
└──────────────────────┴─────────────────────────┘
is_valid_vertex
¶
Check whether an H3 index represents a valid H3 vertex.
Parameters
- vertex : IntoExprColumn
H3 vertex index.
Returns
- Expr
A boolean Polars expression:true
if valid,false
otherwise.
Examples
>>> df = pl.DataFrame({"vertex": [2459626752788398079]})
>>> df.with_columns(valid=plh3.is_valid_vertex("vertex"))
shape: (1, 2)
┌──────────────────────┬──────────┐
│ vertex │ valid │
│ --- │ --- │
│ u64 │ bool │
╞══════════════════════╪══════════╡
│ 2459626752788398079 │ true │
└──────────────────────┴──────────┘