| ddbh3_lonlat_to | R Documentation |
Convert geographic coordinates (longitude and latitude) into H3 cell representations at a specified resolution, with different output formats
ddbh3_lonlat_to_spatial(
x,
lon = "lon",
lat = "lat",
resolution = 8,
conn = NULL,
name = NULL,
overwrite = FALSE,
quiet = FALSE
)
ddbh3_lonlat_to_h3(
x,
lon = "lon",
lat = "lat",
resolution = 8,
new_column = "h3string",
h3_format = "string",
conn = NULL,
name = NULL,
overwrite = FALSE,
quiet = FALSE
)
x |
Input data. One of:
|
lon |
The name of a column in |
lat |
The name of a column in |
resolution |
A number specifying the resolution level of the H3 string (between 0 and 15) |
conn |
A connection object to a DuckDB database. If |
name |
A character string of length one specifying the name of the table,
or a character string of length two specifying the schema and table
names. If |
overwrite |
Boolean. whether to overwrite the existing table if it exists. Defaults
to |
quiet |
A logical value. If |
new_column |
Name of the new column to create on the input data. If NULL, the function will return a vector with the result |
h3_format |
Character. The format of the H3 cell index: |
The three functions differ only in the output format of the H3 cell index:
ddbh3_lonlat_to_h3() returns H3 cell indexes as strings (e.g. "8928308280fffff")
or as unsigned 64-bit integers (UBIGINT)
ddbh3_lonlat_to_spatial() returns H3 cells as spatial hexagon polygons
One of the following, depending on the inputs:
tbl_lazyIf x is not spatial.
duckspatial_dfIf x is spatial (e.g. an sf or duckspatial_df object).
TRUE (invisibly)If name is provided, a table is created in the connection
and TRUE is returned invisibly.
If x is a character vector and conn = NULL, the function operates
in vectorized mode, returning a vector of the same length as x.
## Load needed packages
library(duckdb)
library(duckh3)
library(duckspatial)
library(dplyr)
## Setup the default connection with h3 and spatial extensions
## This is a mandatory step to use duckh3 functions
ddbh3_default_conn(threads = 1)
## Load example data
points_tbl <- read.csv(
system.file("extdata/example_pts.csv", package = "duckh3")
)
## Create a connection with spatial and h3 extensions
conn <- ddbh3_create_conn(threads = 1)
## TO H3 ------------
## Add h3 strings as a new column (res 5)
points_strings_5_tbl <- ddbh3_lonlat_to_h3(
points_tbl,
resolution = 5
)
## Add h3 UBIGINT as a new column (res 8 by default)
points_bigint_8_tbl <- ddbh3_lonlat_to_h3(
points_tbl,
new_column = "h3bigint",
h3_format = "bigint"
)
## If column names are different from lon/lat:
points_renamed <- rename(points_tbl, long = lon, lati = lat)
ddbh3_lonlat_to_h3(
points_renamed,
lon = "long",
lat = "lati",
resolution = 10
)
## Create a new table in the connection
ddbh3_lonlat_to_h3(
points_tbl,
conn = conn,
name = "points_strings_8"
)
## Open the created table lazily
points_lazy <- dplyr::tbl(conn, "points_strings_8")
## Read it in memory
points_eager <- dbReadTable(conn, "points_strings_8")
## TO SPATIAL -----------
## Add h3 strings as a new column (res 5)
points_5_ddbs <- ddbh3_lonlat_to_spatial(
points_tbl,
resolution = 5
)
## Create a new table in the connection
ddbh3_lonlat_to_spatial(
points_tbl,
conn = conn,
name = "points_strings_spatial"
)
## Open the created table lazily
as_duckspatial_df("points_strings_spatial", conn)
## Read it in memory as an sf object
ddbs_read_table(conn, "points_strings_spatial")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.