Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----setup--------------------------------------------------------------------
library(clc)
source_gpkg <- system.file("extdata", "clc.gpkg", package = "clc")
clc_data <- clc(source = source_gpkg, layer_name = "clc")
## ----setup2, eval=FALSE-------------------------------------------------------
# library(clc)
#
# conn <- RPostgres::dbConnect(
# RPostgres::Postgres(),
# dbname = 'exampledb',
# host = 'localhost',
# port = '5432',
# user = 'user',
# password = 'password'
# )
#
# clc_data <- clc(source = conn, layer_name = "clc")
#
# DBI::dbDisconnect(conn)
## ----example-1, fig.width=10, fig.height=7, dpi=300, out.width="100%", fig.align='center', fig.alt="CLC example 1, original"----
clc_data |>
plot_clc()
## ----example-1-1, fig.width=10, fig.height=7, dpi=300, out.width="100%", fig.align='center', fig.alt="CLC example 1, original with prepare plot"----
p <- clc_data |>
prepare_plot()
levels <- clc_data |>
get_levels()
p <- p +
ggplot2::scale_fill_manual(
values = stats::setNames(levels$color, levels$id),
labels = stats::setNames(levels$description, levels$id),
name = ""
) +
ggplot2::theme(
legend.position = "right",
legend.key.height = ggplot2::unit(2, "cm"),
legend.title = ggplot2::element_text(size = 12),
legend.text = ggplot2::element_text(size = 10)
) +
ggplot2::theme_minimal()
p
## ----example-2, fig.width=10, fig.height=7, dpi=300, out.width="100%", fig.align='center', fig.alt="CLC example 2, clipped"----
# Read the clipping layer (region of interest)
region <- sf::st_read(source_gpkg, layer = "lanjaron", quiet = TRUE)
# Clip the CLC data to the region of interest
clc_clipped <- clc_data |>
cut_to_extent(region)
# Visualize the clipped CLC data with its associated style
clc_clipped |>
plot_clc()
## ----example-4----------------------------------------------------------------
# Define the output GeoPackage file
output_gpkg <- tempfile(fileext = ".gpkg")
# Capture output to suppress messages (optional)
sink(tempfile())
# Save the clipped data and its styles to the new GeoPackage
clc_clipped |>
save_to(output_gpkg)
# Stop capturing output
sink()
## ----example-4-2, eval=FALSE--------------------------------------------------
# conn <- RPostgres::dbConnect(
# RPostgres::Postgres(),
# dbname = 'exampledb2',
# host = 'localhost',
# port = '5432',
# user = 'user',
# password = 'password'
# )
#
# clc_clipped |>
# save_to(conn, 'exampledb2')
#
# DBI::dbDisconnect(conn)
## ----example-4-3, fig.width=10, fig.height=7, dpi=300, out.width="100%", fig.align='center', fig.alt="CLC example 3, copying styles"----
# Create a new GeoPackage without style definition
destination_gpkg <- tempfile(fileext = ".gpkg")
clc_layer <- sf::st_read(source_gpkg, layer = "clc", quiet = TRUE)
sf::st_write(
clc_layer,
destination_gpkg,
layer = "clc2",
delete_layer = TRUE,
quiet = TRUE
)
# Copy the style to the new GeoPackage
clc_clipped |>
copy_to(to = destination_gpkg, layers = "clc2")
# Create a clc object from the new GeoPackage and view it
clc_data2 <- clc(source = destination_gpkg, layer_name = "clc2")
clc_data2 |>
plot_clc()
## ----example-3----------------------------------------------------------------
raster_path <- system.file("extdata", "mdt.tif", package = "clc")
base_raster <- terra::rast(raster_path)
clc_raster1 <- clc_clipped |>
as_raster(base_raster = base_raster)
## ----example-3-2--------------------------------------------------------------
clc_raster2 <- clc_clipped |>
as_raster(resolution = 50)
## ----example-3-3, fig.width=10, fig.height=7, dpi=300, out.width="100%", fig.align='center', fig.alt="CLC example 4, raster"----
clc_raster1 |>
plot_clc()
## ----example-5----------------------------------------------------------------
clc_r <- clc_raster1 |>
get_raster()
output_tif <- tempfile(fileext = ".tif")
terra::writeRaster(clc_r,
output_tif,
filetype = "GTiff",
overwrite = TRUE)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.