DuckDB extension for discrete global grid systems (DGGS) powered by DGGRID v8.
Installing and Loading
INSTALL duck_dggs FROM community;
LOAD duck_dggs;
Example
INSTALL duck_dggs FROM community;
LOAD duck_dggs;
-- Geographic point → cell ID at resolution 5 (default ISEA4H grid)
SELECT geo_to_seqnum('POINT(0.0 0.0)'::GEOMETRY, 5);
-- → 2380
-- Cell ID → cell centre point
SELECT seqnum_to_geo(2380, 5);
-- → POINT (-0.9020481125846749 -1.2067949803565235e-09)
-- Cell ID → cell boundary polygon (requires the spatial extension)
LOAD spatial;
SELECT seqnum_to_boundary(2380, 5);
-- → POLYGON ((...))
-- Grid statistics
SELECT dggs_n_cells(5);
-- → 10242
-- Neighbors, parent, children
SELECT seqnum_neighbors(2380::UBIGINT, 5);
-- → [2412, 2413, 2381, 2348, 2347, 2379]
SELECT seqnum_parent(2380::UBIGINT, 5);
-- → 599
SELECT seqnum_children(599::UBIGINT, 4);
-- → [2380, 2412, 2413, 2381, 2348, 2347, 2379]
-- Use a custom grid (ISEA3H — aperture 3 hexagons)
SELECT geo_to_seqnum('POINT(0.0 0.0)'::GEOMETRY, 5,
dggs_params('ISEA', 3, 'HEXAGON', 0.0, 58.28252559, 11.25));
-- → 572
-- Mixed-aperture sequence grid
SELECT dggs_n_cells(3,
dggs_params('ISEA', 3, 'HEXAGON', 0.0, 58.28252559, 11.25, true, '3434'));
-- → 362
About duck_dggs
duck_dggs transforms geographic coordinates (as GEOMETRY POINT) to and from DGGS cell
identifiers across multiple coordinate reference frames, powered by DGGRID v8.
Full documentation: https://am2222.github.io/duckdb-dggs/
All transform functions accept a GEOMETRY POINT (x = longitude°, y = latitude°) and a
resolution integer. Every function has a second overload that accepts an explicit dggs_params
struct for full control over the grid configuration.
Grid configuration
All functions use ISEA4H by default (ISEA projection, aperture 4, hexagon topology).
Pass a dggs_params struct as the last argument to use a different grid:
-- Standard (6 args)
dggs_params(projection, aperture, topology, azimuth_deg, pole_lat_deg, pole_lon_deg)
-- With aperture sequence (8 args)
dggs_params(projection, aperture, topology, azimuth_deg, pole_lat_deg, pole_lon_deg,
is_aperture_sequence, aperture_sequence)
Common presets:
| Grid | Call |
|---|---|
| ISEA4H (default) | dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25) |
| ISEA3H | dggs_params('ISEA', 3, 'HEXAGON', 0.0, 58.28252559, 11.25) |
| ISEA4T (triangles) | dggs_params('ISEA', 4, 'TRIANGLE', 0.0, 58.28252559, 11.25) |
| ISEA4D (diamonds) | dggs_params('ISEA', 4, 'DIAMOND', 0.0, 58.28252559, 11.25) |
| FULLER4H | dggs_params('FULLER', 4, 'HEXAGON', 0.0, 58.28252559, 11.25) |
| Mixed aperture | dggs_params('ISEA', 3, 'HEXAGON', 0.0, 58.28252559, 11.25, true, '3437') |
Utility functions:
duck_dggs_version()— extension version stringdggs_params(...)— build a grid configuration (6-arg or 8-arg with aperture sequence)
Grid statistics (each has res and optional params overload):
dggs_n_cells— total cell count at a resolutiondggs_cell_area_km— average cell area in km²dggs_cell_dist_km— average cell spacing in kmdggs_cls_km— characteristic length scale in kmdggs_res_info— all stats as a struct
Transform functions (each has res and optional params overload):
- From GEO:
geo_to_seqnum,geo_to_geo,geo_to_plane,geo_to_projtri,geo_to_q2dd,geo_to_q2di - From SEQNUM:
seqnum_to_geo,seqnum_to_boundary,seqnum_to_seqnum,seqnum_to_plane,seqnum_to_projtri,seqnum_to_q2dd,seqnum_to_q2di - From Q2DI:
q2di_to_seqnum,q2di_to_geo,q2di_to_plane,q2di_to_projtri,q2di_to_q2dd,q2di_to_q2di - From Q2DD:
q2dd_to_seqnum,q2dd_to_geo,q2dd_to_plane,q2dd_to_projtri,q2dd_to_q2dd,q2dd_to_q2di - From PROJTRI:
projtri_to_seqnum,projtri_to_geo,projtri_to_plane,projtri_to_projtri,projtri_to_q2dd,projtri_to_q2di
Neighbor & hierarchy functions:
seqnum_neighbors— topologically adjacent cellsseqnum_parent— parent cell at res-1seqnum_all_parents— all touching parent cells at res-1seqnum_children— child cells at res+1
Hierarchical index conversions:
seqnum_to_zorder/zorder_to_seqnum— Z-order (Morton code) indexingseqnum_to_z3/z3_to_seqnum— Z3 index (aperture 3 only)seqnum_to_z7/z7_to_seqnum— Z7 index (aperture 7 only)seqnum_to_vertex2dd/vertex2dd_to_seqnum— vertex-based 2D coordinates
IGEO7 / Z7 bit-level operations (operate directly on the packed 64-bit Z7 index;
no dggs_params needed; logic ported from allixender/igeo7_duckdb):
igeo7_from_string/igeo7_to_string— compact string ↔ packed 64-bit indexigeo7_encode— pack base cell + 20 three-bit digit slotsigeo7_encode_at_resolution—igeo7_encodethen truncate to a target resolutionigeo7_get_resolution— resolution (0–20) from a packed indexigeo7_get_base_cell— base cell ID (0–11)igeo7_get_digit— extract the i-th digit (1–20)igeo7_parent/igeo7_parent_at— ancestor at res-1 or a specific resolutionigeo7_get_neighbours/igeo7_get_neighbour— all 6 neighbours or one by directionigeo7_first_non_zero— position of the first non-zero digit slotigeo7_is_valid— false only for theUINT64_MAXinvalid-neighbour sentineligeo7_decode_str— verbosebase-d1.d2…d20form showing all 20 slots (SQL macro)igeo7_string_parent/igeo7_string_local_pos/igeo7_string_is_center— compact-string helpers (SQL macros)igeo7_geo_to_authalic/igeo7_authalic_to_geo— remap each vertex's latitude in aGEOMETRYbetween WGS84 geodetic and authalic (equal-area sphere) using the Karney 2022 order-6 polynomial Fourier series; useful before equal-area binning of lon/lat data
Added Functions
| function_name | function_type | description | comment | examples |
|---|---|---|---|---|
| dggs_cell_area_km | scalar | Returns the average cell area in square kilometres at the given grid resolution. | NULL | [dggs_cell_area_km(5)] |
| dggs_cell_area_km | scalar | Returns the average cell area in square kilometres at the given grid resolution. | NULL | [dggs_cell_area_km(5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| dggs_cell_dist_km | scalar | Returns the average distance in kilometres between the centres of adjacent cells at the given grid resolution. | NULL | [dggs_cell_dist_km(5)] |
| dggs_cell_dist_km | scalar | Returns the average distance in kilometres between the centres of adjacent cells at the given grid resolution. | NULL | [dggs_cell_dist_km(5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| dggs_cls_km | scalar | Returns the characteristic length scale (CLS) in kilometres at the given grid resolution. | NULL | [dggs_cls_km(5)] |
| dggs_cls_km | scalar | Returns the characteristic length scale (CLS) in kilometres at the given grid resolution. | NULL | [dggs_cls_km(5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| dggs_n_cells | scalar | Returns the total number of cells at the given grid resolution. | NULL | [dggs_n_cells(5)] |
| dggs_n_cells | scalar | Returns the total number of cells at the given grid resolution. | NULL | [dggs_n_cells(5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| dggs_params | scalar | Builds the grid-configuration struct accepted as the optional last argument of every transform function, selecting the projection ('ISEA' or 'FULLER'), the aperture (3, 4 or 7), the cell topology ('HEXAGON', 'TRIANGLE' or 'DIAMOND') and the icosahedron orientation. | NULL | [dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25)] |
| dggs_params | scalar | Builds the grid-configuration struct accepted as the optional last argument of every transform function, with a mixed-aperture grid: when is_aperture_sequence is true, aperture_sequence gives the aperture ('3', '4' or '7') used at each resolution level. | NULL | [dggs_params('ISEA', 3, 'HEXAGON', 0.0, 58.28252559, 11.25, true, '3437')] |
| dggs_res_info | scalar | Returns every grid statistic for the given resolution as a single struct of cell count, area, spacing and characteristic length scale. | NULL | [dggs_res_info(5)] |
| dggs_res_info | scalar | Returns every grid statistic for the given resolution as a single struct of cell count, area, spacing and characteristic length scale. | NULL | [dggs_res_info(5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| duck_dggs_version | scalar | Returns the version of the loaded duck_dggs extension together with the version of the bundled DGGRID library. | NULL | [duck_dggs_version()] |
| geo_to_geo | scalar | Snaps a lon/lat point to the centre of the DGGS cell that contains it at the given resolution. | NULL | [geo_to_geo('POINT(0.0 0.0)'::GEOMETRY, 5)] |
| geo_to_geo | scalar | Snaps a lon/lat point to the centre of the DGGS cell that contains it at the given resolution. | NULL | [geo_to_geo('POINT(0.0 0.0)'::GEOMETRY, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| geo_to_plane | scalar | Returns the unfolded icosahedron plane coordinates of the DGGS cell that contains the given lon/lat point. | NULL | [geo_to_plane('POINT(0.0 0.0)'::GEOMETRY, 5)] |
| geo_to_plane | scalar | Returns the unfolded icosahedron plane coordinates of the DGGS cell that contains the given lon/lat point. | NULL | [geo_to_plane('POINT(0.0 0.0)'::GEOMETRY, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| geo_to_projtri | scalar | Returns the PROJTRI coordinate (icosahedron triangle number plus x/y within the projected triangle) of the DGGS cell that contains the given lon/lat point. | NULL | [geo_to_projtri('POINT(0.0 0.0)'::GEOMETRY, 5)] |
| geo_to_projtri | scalar | Returns the PROJTRI coordinate (icosahedron triangle number plus x/y within the projected triangle) of the DGGS cell that contains the given lon/lat point. | NULL | [geo_to_projtri('POINT(0.0 0.0)'::GEOMETRY, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| geo_to_q2dd | scalar | Returns the Q2DD coordinate (quad number plus continuous x/y within the quad) of the DGGS cell that contains the given lon/lat point. | NULL | [geo_to_q2dd('POINT(0.0 0.0)'::GEOMETRY, 5)] |
| geo_to_q2dd | scalar | Returns the Q2DD coordinate (quad number plus continuous x/y within the quad) of the DGGS cell that contains the given lon/lat point. | NULL | [geo_to_q2dd('POINT(0.0 0.0)'::GEOMETRY, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| geo_to_q2di | scalar | Returns the Q2DI coordinate (quad number plus integer i/j indices) of the DGGS cell that contains the given lon/lat point. | NULL | [geo_to_q2di('POINT(0.0 0.0)'::GEOMETRY, 5)] |
| geo_to_q2di | scalar | Returns the Q2DI coordinate (quad number plus integer i/j indices) of the DGGS cell that contains the given lon/lat point. | NULL | [geo_to_q2di('POINT(0.0 0.0)'::GEOMETRY, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| geo_to_seqnum | scalar | Returns the sequential cell index (SEQNUM) of the DGGS cell that contains the given lon/lat point at the given resolution. | NULL | [geo_to_seqnum('POINT(0.0 0.0)'::GEOMETRY, 5)] |
| geo_to_seqnum | scalar | Returns the sequential cell index (SEQNUM) of the DGGS cell that contains the given lon/lat point at the given resolution. | NULL | [geo_to_seqnum('POINT(0.0 0.0)'::GEOMETRY, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| igeo7_authalic_to_geo | scalar | Remaps every vertex latitude of a geometry from authalic (equal-area sphere) back to geodetic (WGS84) latitude, inverting igeo7_geo_to_authalic. | NULL | [igeo7_authalic_to_geo('POINT (0 44.87170287343394)'::GEOMETRY)] |
| igeo7_decode_str | macro | Renders a packed IGEO7/Z7 index in the verbose base-d1.d2…d20 form, showing all 20 digit slots including the padding 7s. | NULL | [igeo7_decode_str(32023330408103935::UBIGINT)] |
| igeo7_encode | scalar | Packs a base cell (0-11) and exactly 20 three-bit digits into the canonical 64-bit IGEO7/Z7 index, using 7 for every slot beyond the target resolution; the INTEGER overload accepts unadorned SQL literals. | NULL | [igeo7_encode(8, 0, 0, 4, 3, 2, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7)] |
| igeo7_encode_at_resolution | scalar | Packs a base cell and 20 three-bit digits and truncates the result to the given resolution, filling slots res+1..20 with padding; equivalent to igeo7_parent_at(igeo7_encode(…), res) in one call. | NULL | [igeo7_encode_at_resolution(8, 3, 0, 0, 4, 3, 2, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7)] |
| igeo7_first_non_zero | scalar | Returns the position (1-20) of the first non-zero digit slot of a packed IGEO7/Z7 index, or 0 when every slot is zero or padding. | NULL | [igeo7_first_non_zero(igeo7_from_string('0800432'))] |
| igeo7_from_string | scalar | Parses a compact IGEO7/Z7 string (base cell plus significant digits) into the canonical 64-bit packed index. | NULL | [igeo7_from_string('0800432')] |
| igeo7_geo_to_authalic | scalar | Remaps every vertex latitude of a geometry from geodetic (WGS84) to authalic (equal-area sphere) latitude, passing longitude and any Z/M components through unchanged. | NULL | [igeo7_geo_to_authalic('POINT (0 45)'::GEOMETRY)] |
| igeo7_get_base_cell | scalar | Returns the base cell ID (0-11) held in the top 4 bits of a packed IGEO7/Z7 index. | NULL | [igeo7_get_base_cell(igeo7_from_string('0800432'))] |
| igeo7_get_digit | scalar | Returns the digit at position pos (1-20) of a packed IGEO7/Z7 index, or 7 (padding) when pos is out of range or beyond the cell's resolution. | NULL | [igeo7_get_digit(igeo7_from_string('0800432'), 3)] |
| igeo7_get_neighbour | scalar | Returns the neighbour of a packed IGEO7/Z7 index in direction 1-6, or the invalid sentinel UINT64_MAX for an out-of-range or pentagon-excluded direction. | NULL | [igeo7_get_neighbour(igeo7_from_string('0800432'), 1)] |
| igeo7_get_neighbours | scalar | Returns the six neighbours of a packed IGEO7/Z7 index; directions excluded by a pentagon yield the invalid sentinel UINT64_MAX. | NULL | [igeo7_get_neighbours(igeo7_from_string('0800432'))] |
| igeo7_get_resolution | scalar | Returns the resolution (0-20) of a packed IGEO7/Z7 index, given by the number of digit slots before the first padding value. | NULL | [igeo7_get_resolution(igeo7_from_string('0800432'))] |
| igeo7_is_valid | scalar | Returns false only when a packed IGEO7/Z7 index equals the invalid sentinel UINT64_MAX that neighbour lookups return for excluded directions. | NULL | [igeo7_is_valid(igeo7_from_string('0800432'))] |
| igeo7_parent | scalar | Returns the parent of a packed IGEO7/Z7 index one resolution level up; a resolution-0 index returns itself. | NULL | [igeo7_parent(igeo7_from_string('0800432'))] |
| igeo7_parent_at | scalar | Returns the ancestor of a packed IGEO7/Z7 index at the given resolution, keeping digits 1..res and filling the remaining slots with padding. | NULL | [igeo7_parent_at(igeo7_from_string('0800432'), 3)] |
| igeo7_string_is_center | macro | Returns true when a compact IGEO7 string ends in '0', meaning the cell covers the centre position within its parent. | NULL | [igeo7_string_is_center('080040')] |
| igeo7_string_local_pos | macro | Returns the last character of a compact IGEO7 string: the cell's local position digit within its parent. | NULL | [igeo7_string_local_pos('0800432')] |
| igeo7_string_parent | macro | Returns the parent of a compact IGEO7 string by dropping its last character. | NULL | [igeo7_string_parent('0800432')] |
| igeo7_to_string | scalar | Renders a packed IGEO7/Z7 index in compact string form: a two-digit base cell followed by the significant digits, stopping at the first padding slot. | NULL | [igeo7_to_string(612839406969683967::UBIGINT)] |
| projtri_to_geo | scalar | Returns the centre of the DGGS cell at the given PROJTRI coordinate as a lon/lat POINT. | NULL | [projtri_to_geo(7, 0.6875, 0.0, 5)] |
| projtri_to_geo | scalar | Returns the centre of the DGGS cell at the given PROJTRI coordinate as a lon/lat POINT. | NULL | [projtri_to_geo(7, 0.6875, 0.0, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| projtri_to_plane | scalar | Converts a PROJTRI coordinate to unfolded icosahedron plane coordinates. | NULL | [projtri_to_plane(7, 0.6875, 0.0, 5)] |
| projtri_to_plane | scalar | Converts a PROJTRI coordinate to unfolded icosahedron plane coordinates. | NULL | [projtri_to_plane(7, 0.6875, 0.0, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| projtri_to_projtri | scalar | Re-encodes a PROJTRI coordinate through a full round-trip via the DGGS engine, normalising it to its cell. | NULL | [projtri_to_projtri(7, 0.6875, 0.0, 5)] |
| projtri_to_projtri | scalar | Re-encodes a PROJTRI coordinate through a full round-trip via the DGGS engine, normalising it to its cell. | NULL | [projtri_to_projtri(7, 0.6875, 0.0, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| projtri_to_q2dd | scalar | Converts a PROJTRI coordinate to Q2DD (quad number plus continuous x/y within the quad). | NULL | [projtri_to_q2dd(7, 0.6875, 0.0, 5)] |
| projtri_to_q2dd | scalar | Converts a PROJTRI coordinate to Q2DD (quad number plus continuous x/y within the quad). | NULL | [projtri_to_q2dd(7, 0.6875, 0.0, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| projtri_to_q2di | scalar | Converts a PROJTRI coordinate to Q2DI (quad number plus integer i/j indices). | NULL | [projtri_to_q2di(7, 0.6875, 0.0, 5)] |
| projtri_to_q2di | scalar | Converts a PROJTRI coordinate to Q2DI (quad number plus integer i/j indices). | NULL | [projtri_to_q2di(7, 0.6875, 0.0, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| projtri_to_seqnum | scalar | Converts a PROJTRI coordinate to the sequential index of the DGGS cell that contains it. | NULL | [projtri_to_seqnum(7, 0.6875, 0.0, 5)] |
| projtri_to_seqnum | scalar | Converts a PROJTRI coordinate to the sequential index of the DGGS cell that contains it. | NULL | [projtri_to_seqnum(7, 0.6875, 0.0, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| q2dd_to_geo | scalar | Returns the centre of the DGGS cell at the given Q2DD coordinate as a lon/lat POINT. | NULL | [q2dd_to_geo(3, 0.15625, 0.27063, 5)] |
| q2dd_to_geo | scalar | Returns the centre of the DGGS cell at the given Q2DD coordinate as a lon/lat POINT. | NULL | [q2dd_to_geo(3, 0.15625, 0.27063, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| q2dd_to_plane | scalar | Converts a Q2DD coordinate to unfolded icosahedron plane coordinates. | NULL | [q2dd_to_plane(3, 0.15625, 0.27063, 5)] |
| q2dd_to_plane | scalar | Converts a Q2DD coordinate to unfolded icosahedron plane coordinates. | NULL | [q2dd_to_plane(3, 0.15625, 0.27063, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| q2dd_to_projtri | scalar | Converts a Q2DD coordinate to PROJTRI (icosahedron triangle number plus x/y within the projected triangle). | NULL | [q2dd_to_projtri(3, 0.15625, 0.27063, 5)] |
| q2dd_to_projtri | scalar | Converts a Q2DD coordinate to PROJTRI (icosahedron triangle number plus x/y within the projected triangle). | NULL | [q2dd_to_projtri(3, 0.15625, 0.27063, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| q2dd_to_q2dd | scalar | Re-encodes a Q2DD coordinate through a full round-trip via the DGGS engine, normalising it to its cell. | NULL | [q2dd_to_q2dd(3, 0.15625, 0.27063, 5)] |
| q2dd_to_q2dd | scalar | Re-encodes a Q2DD coordinate through a full round-trip via the DGGS engine, normalising it to its cell. | NULL | [q2dd_to_q2dd(3, 0.15625, 0.27063, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| q2dd_to_q2di | scalar | Converts a Q2DD coordinate to Q2DI (quad number plus integer i/j indices). | NULL | [q2dd_to_q2di(3, 0.15625, 0.27063, 5)] |
| q2dd_to_q2di | scalar | Converts a Q2DD coordinate to Q2DI (quad number plus integer i/j indices). | NULL | [q2dd_to_q2di(3, 0.15625, 0.27063, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| q2dd_to_seqnum | scalar | Converts a Q2DD coordinate to the sequential index of the DGGS cell that contains it. | NULL | [q2dd_to_seqnum(3, 0.15625, 0.27063, 5)] |
| q2dd_to_seqnum | scalar | Converts a Q2DD coordinate to the sequential index of the DGGS cell that contains it. | NULL | [q2dd_to_seqnum(3, 0.15625, 0.27063, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| q2di_to_geo | scalar | Returns the centre of the DGGS cell at the given Q2DI coordinate as a lon/lat POINT. | NULL | [q2di_to_geo(3, 10, 10, 5)] |
| q2di_to_geo | scalar | Returns the centre of the DGGS cell at the given Q2DI coordinate as a lon/lat POINT. | NULL | [q2di_to_geo(3, 10, 10, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| q2di_to_plane | scalar | Converts a Q2DI coordinate to unfolded icosahedron plane coordinates. | NULL | [q2di_to_plane(3, 10, 10, 5)] |
| q2di_to_plane | scalar | Converts a Q2DI coordinate to unfolded icosahedron plane coordinates. | NULL | [q2di_to_plane(3, 10, 10, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| q2di_to_projtri | scalar | Converts a Q2DI coordinate to PROJTRI (icosahedron triangle number plus x/y within the projected triangle). | NULL | [q2di_to_projtri(3, 10, 10, 5)] |
| q2di_to_projtri | scalar | Converts a Q2DI coordinate to PROJTRI (icosahedron triangle number plus x/y within the projected triangle). | NULL | [q2di_to_projtri(3, 10, 10, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| q2di_to_q2dd | scalar | Converts a Q2DI coordinate to Q2DD (quad number plus continuous x/y within the quad). | NULL | [q2di_to_q2dd(3, 10, 10, 5)] |
| q2di_to_q2dd | scalar | Converts a Q2DI coordinate to Q2DD (quad number plus continuous x/y within the quad). | NULL | [q2di_to_q2dd(3, 10, 10, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| q2di_to_q2di | scalar | Re-encodes a Q2DI coordinate through a full round-trip via the DGGS engine, normalising it to its cell. | NULL | [q2di_to_q2di(3, 10, 10, 5)] |
| q2di_to_q2di | scalar | Re-encodes a Q2DI coordinate through a full round-trip via the DGGS engine, normalising it to its cell. | NULL | [q2di_to_q2di(3, 10, 10, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| q2di_to_seqnum | scalar | Converts a Q2DI coordinate to the sequential index of the DGGS cell that contains it. | NULL | [q2di_to_seqnum(3, 10, 10, 5)] |
| q2di_to_seqnum | scalar | Converts a Q2DI coordinate to the sequential index of the DGGS cell that contains it. | NULL | [q2di_to_seqnum(3, 10, 10, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| seqnum_all_parents | scalar | Returns the sequential indices of every cell at resolution res - 1 that the given cell touches, with the containing parent first. | NULL | [seqnum_all_parents(2412::UBIGINT, 5)] |
| seqnum_all_parents | scalar | Returns the sequential indices of every cell at resolution res - 1 that the given cell touches, with the containing parent first. | NULL | [seqnum_all_parents(2412::UBIGINT, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| seqnum_children | scalar | Returns the sequential indices of the cells at resolution res + 1 that belong to the given cell (7 for an aperture-4 hexagon grid). | NULL | [seqnum_children(599::UBIGINT, 4)] |
| seqnum_children | scalar | Returns the sequential indices of the cells at resolution res + 1 that belong to the given cell (7 for an aperture-4 hexagon grid). | NULL | [seqnum_children(599::UBIGINT, 4, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| seqnum_neighbors | scalar | Returns the sequential indices of the cells topologically adjacent to the given cell, excluding the cell itself (6 for interior hexagons, 5 for the pentagons at the icosahedron vertices). | NULL | [seqnum_neighbors(2380::UBIGINT, 5)] |
| seqnum_neighbors | scalar | Returns the sequential indices of the cells topologically adjacent to the given cell, excluding the cell itself (6 for interior hexagons, 5 for the pentagons at the icosahedron vertices). | NULL | [seqnum_neighbors(2380::UBIGINT, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| seqnum_parent | scalar | Returns the sequential index of the cell at resolution res - 1 that contains the centre of the given cell. | NULL | [seqnum_parent(2380::UBIGINT, 5)] |
| seqnum_parent | scalar | Returns the sequential index of the cell at resolution res - 1 that contains the centre of the given cell. | NULL | [seqnum_parent(2380::UBIGINT, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| seqnum_to_boundary | scalar | Returns the boundary of the DGGS cell with the given sequential index as a closed POLYGON; requires the spatial extension. | NULL | [seqnum_to_boundary(2380::UBIGINT, 5)] |
| seqnum_to_boundary | scalar | Returns the boundary of the DGGS cell with the given sequential index as a closed POLYGON; requires the spatial extension. | NULL | [seqnum_to_boundary(2380::UBIGINT, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| seqnum_to_geo | scalar | Returns the centre of the DGGS cell with the given sequential index as a lon/lat POINT. | NULL | [seqnum_to_geo(2380::UBIGINT, 5)] |
| seqnum_to_geo | scalar | Returns the centre of the DGGS cell with the given sequential index as a lon/lat POINT. | NULL | [seqnum_to_geo(2380::UBIGINT, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| seqnum_to_plane | scalar | Converts a sequential cell index to unfolded icosahedron plane coordinates. | NULL | [seqnum_to_plane(2380::UBIGINT, 5)] |
| seqnum_to_plane | scalar | Converts a sequential cell index to unfolded icosahedron plane coordinates. | NULL | [seqnum_to_plane(2380::UBIGINT, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| seqnum_to_projtri | scalar | Converts a sequential cell index to PROJTRI (icosahedron triangle number plus x/y within the projected triangle). | NULL | [seqnum_to_projtri(2380::UBIGINT, 5)] |
| seqnum_to_projtri | scalar | Converts a sequential cell index to PROJTRI (icosahedron triangle number plus x/y within the projected triangle). | NULL | [seqnum_to_projtri(2380::UBIGINT, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| seqnum_to_q2dd | scalar | Converts a sequential cell index to Q2DD (quad number plus continuous x/y within the quad). | NULL | [seqnum_to_q2dd(2380::UBIGINT, 5)] |
| seqnum_to_q2dd | scalar | Converts a sequential cell index to Q2DD (quad number plus continuous x/y within the quad). | NULL | [seqnum_to_q2dd(2380::UBIGINT, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| seqnum_to_q2di | scalar | Converts a sequential cell index to Q2DI (quad number plus integer i/j indices). | NULL | [seqnum_to_q2di(2380::UBIGINT, 5)] |
| seqnum_to_q2di | scalar | Converts a sequential cell index to Q2DI (quad number plus integer i/j indices). | NULL | [seqnum_to_q2di(2380::UBIGINT, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| seqnum_to_seqnum | scalar | Re-encodes a sequential cell index through a full round-trip via the DGGS engine, which validates and normalises it. | NULL | [seqnum_to_seqnum(2380::UBIGINT, 5)] |
| seqnum_to_seqnum | scalar | Re-encodes a sequential cell index through a full round-trip via the DGGS engine, which validates and normalises it. | NULL | [seqnum_to_seqnum(2380::UBIGINT, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| seqnum_to_vertex2dd | scalar | Converts a sequential cell index to VERTEX2DD, which addresses the cell by vertex-based x/y plus its triangle and vertex numbers. | NULL | [seqnum_to_vertex2dd(2380::UBIGINT, 5)] |
| seqnum_to_vertex2dd | scalar | Converts a sequential cell index to VERTEX2DD, which addresses the cell by vertex-based x/y plus its triangle and vertex numbers. | NULL | [seqnum_to_vertex2dd(2380::UBIGINT, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| seqnum_to_z3 | scalar | Converts a sequential cell index to its Z3 hierarchical index; aperture 3 hexagon grids only. | NULL | [seqnum_to_z3(100::UBIGINT, 4, dggs_params('ISEA', 3, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| seqnum_to_z7 | scalar | Converts a sequential cell index to its Z7 hierarchical index; aperture 7 hexagon grids only. | NULL | [seqnum_to_z7(100::UBIGINT, 4, dggs_params('ISEA', 7, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| seqnum_to_zorder | scalar | Converts a sequential cell index to its Z-order (Morton code) index, which preserves spatial locality; aperture 3 and 4 grids only. | NULL | [seqnum_to_zorder(2380::UBIGINT, 5)] |
| seqnum_to_zorder | scalar | Converts a sequential cell index to its Z-order (Morton code) index, which preserves spatial locality; aperture 3 and 4 grids only. | NULL | [seqnum_to_zorder(2380::UBIGINT, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| vertex2dd_to_seqnum | scalar | Converts a VERTEX2DD coordinate back to the sequential index of the DGGS cell that contains it. | NULL | [vertex2dd_to_seqnum(true, 3, 1, 0.15625, 0.27063293868263705, 5)] |
| vertex2dd_to_seqnum | scalar | Converts a VERTEX2DD coordinate back to the sequential index of the DGGS cell that contains it. | NULL | [vertex2dd_to_seqnum(true, 3, 1, 0.15625, 0.27063293868263705, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| z3_to_seqnum | scalar | Converts a Z3 hierarchical index back to a sequential cell index; aperture 3 hexagon grids only. | NULL | [z3_to_seqnum(2994893752201379839::UBIGINT, 4, dggs_params('ISEA', 3, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| z7_to_seqnum | scalar | Converts a Z7 hierarchical index back to a sequential cell index; aperture 7 hexagon grids only. | NULL | [z7_to_seqnum(1162491653815009279::UBIGINT, 4, dggs_params('ISEA', 7, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
| zorder_to_seqnum | scalar | Converts a Z-order (Morton code) index back to a sequential cell index; aperture 3 and 4 grids only. | NULL | [zorder_to_seqnum(3688448094816436224::UBIGINT, 5)] |
| zorder_to_seqnum | scalar | Converts a Z-order (Morton code) index back to a sequential cell index; aperture 3 and 4 grids only. | NULL | [zorder_to_seqnum(3688448094816436224::UBIGINT, 5, dggs_params('ISEA', 4, 'HEXAGON', 0.0, 58.28252559, 11.25))] |
Overloaded Functions
This extension does not add any function overloads.
Added Types
This extension does not add any types.
Added Settings
This extension does not add any settings.