---
title: "Get started"
output: rmarkdown::html_vignette
date: "2024-06-09"
vignette: >
%\VignetteIndexEntry{CatastRoEus}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
```{r setup}
library(CatastRoEus)
```
**CatastRoEus** is a package that provide access to different INSPIRE API
services of the [Cadastre of Pais Vasco](https://www.bizkaia.eus/es/inspirebizkaia)
(https://geo.araba.eus/es/servicios-web)(https://b5m.gipuzkoa.eus/web5000/en/inspire-services).
With **CatastRoEus** it is possible to download spatial objects as buildings, addresses or
cadastral parcels.
## INSPIRE Services
> The INSPIRE Directive aims to create a European Union spatial data
> infrastructure for the purposes of EU environmental policies and policies or
> activities which may have an impact on the environment. This European Spatial
> Data Infrastructure will enable the sharing of environmental spatial
> information among public sector organisations, facilitate public access to
> spatial information across Europe and assist in policy-making across
> boundaries.
>
> *From *
The implementation of the INSPIRE directive on the Cadastre of the Basque Country allows
recover spatial objects from the cadastre databases of the three provinces (Bizkaia, Gipuzkua and Alava):
- **Vector objects:** Parcels, addresses, buildings, cadastral zones and more.
These objects are provided by **CatastRoEus** as `sf` objects (see
`?sf::st_sf`).
## Examples
On this example we would retrieve the cadastral parcels of
[Bilbao](https://en.wikipedia.org/wiki/Bilbao):
``` r
library(CatastRoEus)
# For getting coords
library(sf)
library(mapSpain)
# Data wrangling and visualization
library(dplyr)
library(ggplot2)
bilbao <- esp_get_capimun(munic = "Bilbao") %>%
st_transform(4326) %>%
# Small buffer of 200 m
st_buffer(200)
cp_bilbao <- catreus_wfs_get_parcels_bbox(bilbao)
ggplot(cp_bilbao) +
geom_sf()
```
![Example: Bilbao](./bilbao-1.png)
*Example: Bilbao*
### Thematic maps
We can create also thematic maps using the information available on the spatial
objects. We would produce a visualization of the urban growth of Donostia using
**CatastRoEus**, replicating the map produced by Dominic Royé on his post
[Visualize urban
growth](https://dominicroye.github.io/en/2019/visualize-urban-growth/).
In first place, we extract the coordinates of the city center of Donostia using
**mapSpain**:
``` r
# Use mapSpain for getting the coords
donostia <- esp_get_capimun(munic = "^Donostia")
# Transform to ETRS89 / UTM 30 N and add a buffer of 750m
donostia_buff <- donostia %>%
st_transform(4326) %>%
st_buffer(1000)
```
Next step consists on extracting the buildings using the WFS service:
``` r
donostia_bu <- catreus_wfs_get_buildings_bbox(donostia_buff, count = 1000)
```
Next step for creating the visualization is to crop the buildings to the buffer
we created before:
``` r
if (st_crs(donostia_bu) != st_crs(donostia_buff)) {
donostia_buff <- st_transform(donostia_buff, st_crs(donostia_bu))
}
dataviz <- st_intersection(donostia_bu, donostia_buff)
ggplot(dataviz) +
geom_sf()
```
![Buildings map](./buildings-good.png)
*Buildings Map*
Let's extract now the finishing construction year, available in the column `end`:
``` r
# Extract 4 initial positions
year <- substr(dataviz$end, 1, 4)
# Replace all that doesn't look as a number with 0000
year[!(year %in% 0:2500)] <- "0000"
# To numeric
year <- as.integer(year)
# New column
dataviz <- dataviz %>%
mutate(year = year)
```
Last step is to create groups based on the year and create the data
visualization. We use here the function `ggplot2::cut_width()` to create
different classes:
``` r
dataviz <- dataviz %>%
mutate(year_cat = cut(year, breaks = c(0, seq(1900, 2030, by = 10)), dig.lab = 4))
ggplot(dataviz) +
geom_sf(aes(fill = year_cat), color = NA, na.rm = TRUE) + scale_fill_manual( values = hcl.colors(15, "Plasma"), na.translate = FALSE) + theme_void() + labs(title = "DONOSTIA", fill = "") + theme(
panel.background = element_rect(fill = "black"),
plot.background = element_rect(fill = "black"),
legend.justification = .5,
legend.text = element_text(colour = "white", size = 8),
plot.title = element_text(colour = "white", hjust = .5,
margin = margin(t = 30), size = 20),
plot.caption = element_text(colour = "white", margin =
margin(b = 20), hjust = .5),
plot.margin = margin(r = 40, l = 40))
```
![Donostia: Urban Growth](./Donostia.png)
*Donostia: Urban Growth*