The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Primeros Pasos con peruocc

Introducción

peruocc es un paquete en R diseñado para facilitar la búsqueda, descarga, validación espacial y consolidación de registros de ocurrencias de biodiversidad (flora y fauna) en el territorio peruano, tomando como marco de referencia las delimitaciones político-administrativas oficiales provistas por geoperu (distritos y provincias).

El paquete integra y estandariza la información proveniente de dos de las plataformas más representativas en biodiversidad: * GBIF (Global Biodiversity Information Facility) * iNaturalist


Carga del Paquete

Carga el paquete en tu sesión de R:

library(peruocc)

Configuración del Directorio de Trabajo (Opcional)

Si deseas almacenar automáticamente capas en caché o resultados exportados en un directorio específico de tu proyecto, puedes configurarlo con peruocc_data_dir():

# Configurar carpeta de salida personalizada (opcional)
peruocc_data_dir("mi-carpeta-proyecto")

Por defecto, todas las consultas y geometrías se procesan directamente en memoria RAM sin escribir archivos en el disco.


Consultas de Ocurrencias

Por defecto, las consultas se ejecutan directamente en memoria (guardar_resultados = FALSE), lo que agiliza el flujo interactivo y previene la creación de archivos no deseados en el disco.

1. Búsqueda a Nivel de Distrito

Para consultar registros en un distrito específico (por ejemplo, el distrito de Cusco, en la provincia y departamento de Cusco):

resultado_cusco <- buscar_especies_distrito(
  distrito = "Cusco",
  departamento = "Cusco",
  provincia = "Cusco",
  grupo = "flora",            # "flora", "fauna" o NULL
  limite_por_api = 150
)
#> 
#> ── Búsqueda Integrada: CUSCO (DISTRITO) ────────────────────────────────────────
#> • Departamento: Cusco
#> • Provincia: Cusco
#> • Grupo: flora
#> ℹ [GBIF] Iniciando búsqueda de ocurrencias...
#> ✔ Polígono simplificado con éxito a tolerancia de 100 metros (WKT: 1153 caracteres).
#> ℹ [GBIF] Filtrando por reino Plantae (Flora).
#> ℹ [GBIF] Consultando registros dentro del polígono de CUSCO (límite: "150")...
#> ✔ [GBIF] Búsqueda finalizada. Se filtraron 150 registro(s) que caen dentro del polígono seleccionado.
#> ℹ [iNaturalist] Iniciando búsqueda de ocurrencias...
#> ℹ [iNaturalist] Filtrando por reino Plantae (Flora).
#> ℹ [iNaturalist] Consultando registros dentro de la caja delimitadora de CUSCO (límite: "150")...
#> ℹ [iNaturalist] Se descargaron 150 registros en la caja delimitadora. Aplicando filtro espacial...
#> ✔ [iNaturalist] Búsqueda finalizada. 120 de 150 registros caen dentro del polígono seleccionado.
#> ✔ Consolidación exitosa. Total de registros unificados: 270
#> 
#> ── Resumen de Registros ──
#> 
#> • GBIF: 150 registro(s)
#> • iNaturalist: 120 registro(s)
#> ✔ Total consolidado: 270 registro(s)

2. Búsqueda a Nivel de Provincia

Para consultar una provincia completa (donde peruocc disuelve automáticamente las geometrías distritales):

resultado_urubamba <- buscar_especies_provincia(
  provincia = "Urubamba",
  departamento = "Cusco",
  grupo = "fauna",
  limite_por_api = 200
)
#> 
#> ── Búsqueda Integrada: URUBAMBA (PROVINCIA) ────────────────────────────────────
#> • Departamento: Cusco
#> • Grupo: fauna
#> ℹ Procesando 10 lotes espaciales (distritos): "MARAS", "HUAYLLABAMBA", "YUCAY", "CHINCHERO", "OLLANTAYTAMBO", "MACHUPICCHU", and "URUBAMBA"
#> ✔ Polígono simplificado con éxito a tolerancia de 100 metros (WKT: 1213 caracteres).
#> ✔ Lote 1/10 [MARAS]: 190 (GBIF) + 94 (iNat) = 284 registros.
#> ✔ Polígono simplificado con éxito a tolerancia de 100 metros (WKT: 1211 caracteres).
#> ✔ Lote 2/10 [HUAYLLABAMBA]: 200 (GBIF) + 101 (iNat) = 301 registros.
#> ✔ Polígono simplificado con éxito a tolerancia de 100 metros (WKT: 608 caracteres).
#> ✔ Lote 3/10 [YUCAY]: 200 (GBIF) + 84 (iNat) = 284 registros.
#> ✔ Polígono simplificado con éxito a tolerancia de 100 metros (WKT: 865 caracteres).
#> ✔ Lote 4/10 [CHINCHERO]: 200 (GBIF) + 186 (iNat) = 386 registros.
#> ✔ Polígono simplificado con éxito a tolerancia de 300 metros (WKT: 898 caracteres).
#> ✔ Lote 5/10 [OLLANTAYTAMBO]: 166 (GBIF) + 15 (iNat) = 181 registros.
#> ✔ Polígono simplificado con éxito a tolerancia de 100 metros (WKT: 819 caracteres).
#> ✔ Lote 6/10 [OLLANTAYTAMBO]: 200 (GBIF) + 113 (iNat) = 313 registros.
#> ✔ Lote 7/10 [OLLANTAYTAMBO]: 7 (GBIF) + 0 (iNat) = 7 registros.
#> ✔ Polígono simplificado con éxito a tolerancia de 100 metros (WKT: 1157 caracteres).
#> ✔ Lote 8/10 [OLLANTAYTAMBO]: 200 (GBIF) + 120 (iNat) = 320 registros.
#> ✔ Polígono simplificado con éxito a tolerancia de 300 metros (WKT: 897 caracteres).
#> ✔ Lote 9/10 [MACHUPICCHU]: 200 (GBIF) + 192 (iNat) = 392 registros.
#> ✔ Polígono simplificado con éxito a tolerancia de 100 metros (WKT: 1466 caracteres).
#> ✔ Lote 10/10 [URUBAMBA]: 200 (GBIF) + 178 (iNat) = 378 registros.
#> ✔ Consolidación exitosa. Total de registros unificados: 2846
#> 
#> ── Resumen de Registros ──
#> 
#> • GBIF: 1763 registro(s)
#> • iNaturalist: 1083 registro(s)
#> ✔ Total consolidado: 2846 registro(s)

3. Filtro por Especie o Taxón Específico

También es posible restringir la búsqueda a un taxón en particular utilizando el argumento nombre_cientifico:

resultado_jaguar <- buscar_especies_distrito(
  distrito = "Tambopata",
  departamento = "Madre de Dios",
  provincia = "Tambopata",
  nombre_cientifico = "Panthera onca",
  limite_por_api = 50
)
#> 
#> ── Búsqueda Integrada: TAMBOPATA (DISTRITO) ────────────────────────────────────
#> • Departamento: Madre de Dios
#> • Provincia: Tambopata
#> • Taxón: Panthera onca
#> ℹ [GBIF] Iniciando búsqueda de ocurrencias...
#> ✔ Polígono simplificado con éxito a tolerancia de 8100 metros (WKT: 379 caracteres).
#> ℹ [GBIF] Resolviendo taxonomía para "Panthera onca"...
#> ✔ [GBIF] Taxón resuelto: Panthera onca (Linnaeus, 1758) (Key: 5219426, Rank: SPECIES)
#> ℹ [GBIF] Consultando registros dentro del polígono de TAMBOPATA (límite: "50")...
#> ✔ [GBIF] Búsqueda finalizada. Se filtraron 21 registro(s) que caen dentro del polígono seleccionado.
#> ℹ [iNaturalist] Iniciando búsqueda de ocurrencias...
#> ℹ [iNaturalist] Consultando registros dentro de la caja delimitadora de TAMBOPATA (límite: "50")...
#> ℹ [iNaturalist] Se descargaron 50 registros en la caja delimitadora. Aplicando filtro espacial...
#> ✔ [iNaturalist] Búsqueda finalizada. 8 de 50 registros caen dentro del polígono seleccionado.
#> ✔ Consolidación exitosa. Total de registros unificados: 29
#> 
#> ── Resumen de Registros ──
#> 
#> • GBIF: 21 registro(s)
#> • iNaturalist: 8 registro(s)
#> ✔ Total consolidado: 29 registro(s)

Estructura del Objeto Consolidado

Las funciones de búsqueda retornan un objeto de tipo list estructurado con 4 componentes clave:

names(resultado_cusco)
#> [1] "unidad_sf"   "distrito_sf" "ocurrencias" "resumen"     "parametros"
#> [1] "unidad_sf"   "ocurrencias" "resumen"     "parametros"
Componente Tipo Descripción
unidad_sf sf (WGS84) Polígono oficial validado y proyectado en EPSG:4326.
ocurrencias peruocc_tbl / data.frame Registros estandarizados bajo el estándar Darwin Core.
resumen list Estadísticas de la consulta (conteo total, por fuente, reinos).
parametros list Metadatos y filtros utilizados en la llamada (fechas, límites).

Inspección de Registros

# Vista previa de las primeras ocurrencias
head(resultado_cusco$ocurrencias[, c("scientificName", "source", "eventDate", "decimalLatitude", "decimalLongitude")])
#> # A tibble: 6 × 5
#>   scientificName source   eventDate decimalLatitude decimalLongitude
#>   <chr>          <chr>    <chr>               <dbl>            <dbl>
#> 1 Passiflora pi… GBIF     2026-01-…           -13.5            -72.0
#> 2 Salix babylon… GBIF     2026-01-…           -13.5            -72.0
#> 3 Tecoma stans … GBIF     2026-01-…           -13.5            -72.0
#> 4 Austrocylindr… GBIF     2026-01-…           -13.5            -72.0
#> 5 Cirsium vulga… GBIF     2026-01-…           -13.5            -72.0
#> 6 Cantua buxifo… GBIF     2026-01-…           -13.5            -72.0

Visualización y Exportación

Visualización Rápida

Puedes generar inmediatamente un mapa temático con ggplot2:

# Visualizar mapa coloreando por repositorio de origen (GBIF vs iNaturalist)
mapa <- graficar_ocurrencias(resultado_cusco, color_por = "source")
print(mapa)

Exportación a Disco

Para guardar los datos en formatos estándar (CSV, GeoJSON y manifiesto JSON de reproducibilidad), especifica el directorio de destino mediante dir_salida:

# Exportar resultados a un directorio (por ejemplo, temporal para la viñeta)
archivos <- exportar_resultados(resultado_cusco, dir_salida = tempdir())
#> ✔ Registros tabulares guardados en: 'C:\Users\PC\AppData\Local\Temp\RtmpCQLgeB/ocurrencias_20260911T030621Z_distrito_cusco_flora.csv'
#> ✔ Capa espacial GeoJSON guardada en: 'C:\Users\PC\AppData\Local\Temp\RtmpCQLgeB/ocurrencias_20260911T030621Z_distrito_cusco_flora.geojson'
#> ✔ Manifiesto JSON guardado en: 'C:\Users\PC\AppData\Local\Temp\RtmpCQLgeB/manifiesto_20260911T030621Z_distrito_cusco_flora.json'

Siguientes Pasos

Para profundizar en las capacidades de peruocc, consulta las viñetas especializadas:

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.