gisco_get_grid {giscoR} | R Documentation |
Get grid cells covering covering Europe for various resolutions
Description
These datasets contain grid cells covering the European land territory, for various resolutions from 1km to 100km. Base statistics such as population figures are provided for these cells.
Usage
gisco_get_grid(
resolution = "20",
spatialtype = c("REGION", "POINT"),
cache_dir = NULL,
update_cache = FALSE,
verbose = FALSE
)
Arguments
resolution |
Resolution of the grid cells on kms. Available values are
|
spatialtype |
Select one of |
cache_dir |
A path to a cache directory. See About caching. |
update_cache |
A logical whether to update cache. Default is |
verbose |
Logical, displays information. Useful for debugging,
default is |
Details
Files are distributed on EPSG:3035.
The file sizes range is from 428Kb (resolution = "100"
)
to 1.7Gb resolution = "1"
. For resolutions 1km and 2km you would
need to confirm the download.
Value
A POLYGON/POINT
sf
object.
About caching
You can set your cache_dir
with gisco_set_cache_dir()
.
Sometimes cached files may be corrupt. On that case, try re-downloading
the data setting update_cache = TRUE
.
If you experience any problem on download, try to download the
corresponding .geojson
file by any other method and save it on your
cache_dir
. Use the option verbose = TRUE
for debugging the API query.
For a complete list of files available check gisco_db.
Note
There are specific downloading provisions, please see https://ec.europa.eu/eurostat/web/gisco/geodata/grids
Author(s)
dieghernan, https://github.com/dieghernan/
Source
https://ec.europa.eu/eurostat/web/gisco/geodata/grids
Examples
grid <- gisco_get_grid(resolution = 20)
# If downloaded correctly proceed
if (!is.null(grid)) {
library(dplyr)
grid <- grid %>%
mutate(popdens = TOT_P_2021 / 20)
breaks <- c(0, 0.1, 100, 500, 1000, 5000, 10000, Inf)
# Cut groups
grid <- grid %>%
mutate(popdens_cut = cut(popdens,
breaks = breaks,
include.lowest = TRUE
))
cut_labs <- prettyNum(breaks, big.mark = " ")[-1]
cut_labs[1] <- "0"
cut_labs[7] <- "> 10 000"
pal <- c("black", hcl.colors(length(breaks) - 2,
palette = "Spectral",
alpha = 0.9
))
library(ggplot2)
ggplot(grid) +
geom_sf(aes(fill = popdens_cut), color = NA, linewidth = 0) +
coord_sf(
xlim = c(2500000, 7000000),
ylim = c(1500000, 5200000)
) +
scale_fill_manual(
values = pal, na.value = "black",
name = "people per sq. kilometer",
labels = cut_labs,
guide = guide_legend(
direction = "horizontal",
nrow = 1
)
) +
theme_void() +
labs(
title = "Population density in Europe (2021)",
subtitle = "Grid: 20 km.",
caption = gisco_attributions()
) +
theme(
text = element_text(colour = "white"),
plot.background = element_rect(fill = "grey2"),
plot.title = element_text(hjust = 0.5),
plot.subtitle = element_text(hjust = 0.5, face = "bold"),
plot.caption = element_text(
color = "grey60", hjust = 0.5, vjust = 0,
margin = margin(t = 5, b = 10)
),
legend.position = "bottom",
legend.title.position = "top",
legend.text.position = "bottom",
legend.key.height = unit(0.5, "lines"),
legend.key.width = unit(1, "lines")
)
}