Learn R Programming

CatastRo

CatastRo is a package that provide access to different API services of the Spanish Cadastre. With CatastRo it is possible to download spatial objects (as buildings or cadastral parcels), maps and geocode cadastral references.

Installation

Install CatastRo from CRAN:

install.packages("CatastRo")

You can install the developing version of CatastRo using the r-universe:

# Install CatastRo in R:
install.packages("CatastRo",
  repos = c(
    "https://ropenspain.r-universe.dev",
    "https://cloud.r-project.org"
  )
)

Alternatively, you can install the developing version of CatastRo with:

remotes::install_github("rOpenSpain/CatastRo", dependencies = TRUE)

Known issues

The SSL certificate of the Spanish Cadastre present some issues that may cause an error when using CatastRo (specially on Mac OS, see issue #40):

#> ...(more lines on error)
#>
#> 1: In download.file(url, filepath, quiet = isFALSE(verbose), mode = "wb") :
#>   URL 'https://www.catastro.minhafp.es/INSPIRE/Addresses/ES.SDGC.AD.atom.xml':
#>   status was 'SSL peer certificate or SSH remote key was not OK'
#>
#> ...

You can try to fix it by running this line on your session right after you start using the package:

options(download.file.method = "curl", download.file.extra = "-k -L")

Package API

The functions of CatastRo are organized by API endpoint. The package naming convention is catr_*api*_*description*.

OVCCoordenadas

These functions allow to geocode and reverse geocode cadastral references using the OVCCoordenadas service.

These functions are named catr_ovc_get_* and returns a tibble, as provided by the package tibble. See vignette("ovcservice", package = "CatastRo") where these functions are described.

INSPIRE

These functions return spatial object (on the formats provided by the sf or terra using the Catastro INSPIRE service.

Note that the coverage of this service is 95% of the Spanish territory, excluding Basque Country and Navarre[^1] that have their own independent cadastral offices.

There are three types of functions, each one querying a different service:

ATOM service

The ATOM service allows to batch-download vector objects of different cadastral elements for a specific municipality. The result is provided as sf objects (See sf package).

These functions are named catr_atom_get_xxx.

WFS service

The WFS service allows to download vector objects of specific cadastral elements. The result is provided as sf class objects (see sf package). Note that there are some limitations on the extension and number of elements to query. For batch-downloading the ATOM service is preferred.

These functions are named catr_wms_get_xxx.

WMS service

This service allows to download georeferenced images of different cadastral elements. The result is a raster on the format provides by terra.

There is a single function for querying this service: catr_wms_get_layer().

Terms and conditions of use

Please check the downloading provisions of the service.

Examples

This script highlights some features of CatastRo :

Geocode a cadastral reference

library(CatastRo)

catr_ovc_get_cpmrc(rc = "13077A01800039")
#> # A tibble: 1 × 10
#>   xcoord ycoord refcat     address pc.pc1 pc.pc2 geo.xcen geo.ycen geo.srs ldt  
#>    <dbl>  <dbl> <chr>      <chr>   <chr>  <chr>  <chr>    <chr>    <chr>   <chr>
#> 1  -3.46   38.6 13077A018… DS DIS… 13077… 18000… -3.4575… 38.6184… EPSG:4… DS D…

Extract a cadastral reference from a given set of coordinates

catr_ovc_get_rccoor(
  lat = 38.6196566583596,
  lon = -3.45624183836806,
  srs = "4230"
)
#> # A tibble: 1 × 8
#>   refcat         address           pc.pc1 pc.pc2 geo.xcen geo.ycen geo.srs ldt  
#>   <chr>          <chr>             <chr>  <chr>     <dbl>    <dbl> <chr>   <chr>
#> 1 13077A01800039 DS DISEMINADO  P… 13077… 18000…    -3.46     38.6 EPSG:4… DS D…

Extract geometries using the ATOM service

bu <- catr_atom_get_buildings("Nava de la Asuncion", to = "Segovia")


# Map
library(ggplot2)

ggplot(bu) +
  geom_sf(aes(fill = currentUse), col = NA) +
  coord_sf(
    xlim = c(374500, 375500),
    ylim = c(4556500, 4557500)
  ) +
  scale_fill_manual(values = hcl.colors(6, "Dark 3")) +
  theme_minimal() +
  ggtitle("Nava de la Asunción, Segovia")

Extract geometries using the WFS service

wfs_get_buildings <- catr_wfs_get_buildings_bbox(
  c(-5.569, 42.598, -5.564, 42.601),
  srs = 4326
)

# Map
ggplot(wfs_get_buildings) +
  geom_sf() +
  ggtitle("Leon Cathedral, Spain")

A note on caching

Some data sets and tiles may have a size larger than 50MB. You can use CatastRo to create your own local repository at a given local directory passing the following option:

catr_set_cache_dir("./path/to/location")

When this option is set, CatastRo would look for the cached file and it will load it, speeding up the process.

Citation

A BibTeX entry for LaTeX users is:

@Manual{R-CatastRo,
  title = {{CatastRo}: Interface to the {API} Sede Electrónica Del Catastro},
  author = {Ángel {Delgado Panadero} and Diego Hernangómez},
  doi = {10.32614/CRAN.package.CatastRo},
  year = {2025},
  version = {0.4.1},
  url = {https://ropenspain.github.io/CatastRo/},
  abstract = {Access public spatial data available under the INSPIRE directive. Tools for downloading references and addresses of properties, as well as map images.},
}

Contribute

Check the GitHub page for source code.

Contributors

All contributions to this project are gratefully acknowledged using the allcontributors package following the allcontributors specification. Contributions of any kind are welcome!

Code

Issues

[^1]: The package CatastRoNav provides access to the Cadastre of Navarre, with similar functionalities than CatastRo.

Copy Link

Version

Install

install.packages('CatastRo')

Monthly Downloads

419

Version

0.4.1

License

GPL-2

Issues

Pull Requests

Stars

Forks

Maintainer

Diego Hernang<c3><b3>mez

Last Published

March 24th, 2025

Functions in CatastRo (0.4.1)

catr_ovc_get_cod_provinces

OVCCallejero: Extract a list of provinces with their codes
catr_ovc_get_cpmrc

OVCCoordenadas: Geocode a cadastral reference
catr_ovc_get_cod_munic

OVCCallejero: Extract the code of a municipality
catr_set_cache_dir

catr_ovc_get_rccoor

OVCCoordenadas: Reverse geocode a cadastral reference
catr_wfs_get_parcels_bbox

WFS INSPIRE: Download cadastral parcels
catr_ovc_get_rccoor_distancia

OVCCoordenadas: Reverse geocode cadastral references on a region
catr_wfs_get_address_bbox

WFS INSPIRE: Download addresses
catr_srs_values

catr_wms_get_layer

WMS INSPIRE: Download map images
catr_wfs_get_buildings_bbox

WFS INSPIRE: Download buildings
catr_clear_cache

catr_atom_get_parcels_db_all

ATOM INSPIRE: Reference database for ATOM cadastral parcels
catr_atom_get_address

ATOM INSPIRE: Download all the addresses of a municipality
catr_atom_get_buildings

ATOM INSPIRE: Download all the buildings of a municipality
CatastRo-package

CatastRo: Interface to the API 'Sede Electronica Del Catastro'
catr_atom_get_address_db_all

ATOM INSPIRE: Reference database for ATOM addresses
catr_atom_get_buildings_db_all

ATOM INSPIRE: Reference database for ATOM buildings
catr_get_code_from_coords

Get the cadastral municipality code from coordinates
catr_atom_search_munic

ATOM INSPIRE: Search for municipality codes
catr_atom_get_parcels

ATOM INSPIRE: Download all the cadastral parcels of a municipality