The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
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[@]metanet.ch.

citesperu

Lifecycle: stable R-CMD-check Development status Codecov test coverage

citesperu es un paquete de R para consultar, estructurar y contrastar de manera reproducible los listados oficiales de fauna y flora silvestres del Perú incluidas en los Apéndices de la Convención sobre el Comercio Internacional de Especies Amenazadas de Fauna y Flora Silvestres (CITES), publicados por el Ministerio del Ambiente (MINAM) como Autoridad Científica CITES del país.

Incorpora los 4 listados oficiales nacionales (Fauna 2018, 2019, 2023 y Flora 2018), un backbone histórico unificado de más de 8,500 registros con procedencia por fila, resolución de sinónimos y un motor de concordancia secuencial en 6 etapas (cites_match()).


Instalación

Puedes instalar la versión de desarrollo de citesperu desde GitHub mediante pak o remotes:

# Usando pak (recomendado)
pak::pak("PaulESantos/citesperu")

# O usando remotes
# remotes::install_github("PaulESantos/citesperu")

Al cargar la librería, {citesperu} despliega un banner informativo al estilo de {tidyverse} resumiendo las bases oficiales disponibles y herramientas activas:

library(citesperu)
#> ── citesperu ───────────────────────────────────────────────────────── v0.1.0 ──
#> ✔ cites_fauna_peru_2018    496 spp.            ✔ codigos_departamentos_pe 24 depts.      
#> ✔ cites_flora_peru_2018    2506 taxa           ✔ cites_fauna_peru_2023    568 spp.       
#> ✔ cites_fauna_peru_2019    523 spp.            ✔ cites_match()            matching engine
#> ℹ Autoridad Científica: MINAM | Autoridades Administrativas: SERFOR / PRODUCE
#> ℹ Usa cites_match() para concordancia o revisa la documentación (<https://paulesantos.github.io/citesperu/>)

Marco Institucional CITES en el Perú

El Perú es Estado signatario de la Convención CITES desde 1975 (Decreto Ley N.° 21080). La gobernanza nacional se articula a través de tres niveles institucionales:

Para mayor detalle sobre las competencias institucionales, el marco normativo (D.S. 030-2005-AG, D.S. 004-2014-MINAGRI, D.S. 043-2006-AG), los Apéndices CITES y los códigos departamentales de Lamas & Encarnación, consulta la viñeta del paquete mediante vignette("contexto-cites-peru").


Fuentes Oficiales y Cobertura (MINAM Colección 609)

Los datos empaquetados proceden del compendio oficial del MINAM, conservando estrictamente su integridad documental y alcance temporal:

Dataset Edición / Título Oficial Grupo Cobertura Oficial Registros Formato de Origen
cites_fauna_peru_2018 Listado Fauna CITES Perú - 2018 Fauna 496 especies oficiales (48 Ap. I, 448 Ap. II, más 16 en Ap. III*) 512 PDF / Excel oficial
cites_fauna_peru_2019 Listado de Fauna CITES Perú 2019 Fauna 523 registros (con ámbito ecológico y género) 523 Excel oficial
cites_fauna_peru_2023 Listado de Fauna CITES Perú 2023 Fauna 568 especies (48 Ap. I, 503 Ap. II, 17 Ap. III; CoP19 Panamá) 568 Excel oficial
cites_flora_peru_2018 Listado Flora CITES Perú - 2018 Flora 2506 taxa en 9 familias botánicas (12 Ap. I, 2493 Ap. II, 1 Ap. III) 2506 PDF / Excel oficial
codigos_departamentos_pe Acrónimos Biogeográficos de Lamas & Encarnación (1976) Geografía 24 acrónimos estándar departamentales y códigos UBIGEO del INEI 24 Referencia técnica

* En fauna 2018, las 16 especies registradas en el Apéndice III fueron incluidas a propuesta de otros países Parte. Como el Perú no ha solicitado inclusiones en dicho apéndice, el MINAM no las contabiliza en el balance oficial nacional.


Backbone taxonómico y flujo de concordancia

cites_match() no consulta los archivos fuente en cada llamada. Trabaja con un backbone interno preindexado (cites_backbone) construido a partir de la fauna 2023 y la flora 2018: la combinación que representa edition = "latest". También conserva las ediciones de fauna 2018 y 2019. El índice reúne nombres aceptados y sinonimias registradas en las fuentes del MINAM; cada coincidencia conserva el Apéndice CITES, la edición efectiva y la referencia de origen (source_dataset, source_row_id, source_title y source_url).

El flujo es secuencial: una etapa solo recibe los nombres que no fueron resueltos por la anterior.

Entrada → clasificación del nombre
        → exact → synonym → suffix → fuzzy → genus → unmatched
Etapa match_type Qué resuelve
Coincidencia exacta exact Un nombre aceptado del backbone.
Sinonimia synonym Un sinónimo del backbone y su accepted_name.
Sufijo latino suffix Variaciones permitidas de desinencia dentro del mismo género; requiere validación taxonómica.
Coincidencia difusa fuzzy Errores de escritura mediante distancia de edición, limitada por max_dist; requiere validación taxonómica.
Género genus Entradas a nivel de género, sp. o spp.; un binomio solo llega aquí con genus_fallback = TRUE. Se marca como requires_species_validation.
Sin resolución unmatched No hubo coincidencia en el alcance consultado.
Ambigua ambiguous_match Hay más de un candidato con la misma regla o distancia; no se asigna Apéndice.

La clasificación inicial (cites_classify_names()) separa género, epíteto, rango infraespecífico, autoría y marcadores como cf., aff., sp. y spp.. La etapa genus usa un índice de géneros presentes en el backbone. Por ello, una coincidencia de género indica que hay registros CITES para ese género en el alcance elegido; no identifica una especie ni por sí sola prueba que toda especie del género esté incluida. El resultado conserva is_cites = TRUE para indicar la presencia del género en el listado y asigna match_assessment = "requires_species_validation". Para decisiones regulatorias, se debe confirmar el taxón determinado y la fuente oficial aplicable.

match_assessment expresa la certeza operativa del resultado: matched para un nombre aceptado o sinónimo sin calificadores; requires_taxonomic_validation para suffix, fuzzy, cf., aff., híbridos o rangos infraespecíficos; requires_species_validation para género; ambiguous_match para empates y not_listed cuando no hubo coincidencia. Los resultados ambiguos no reciben Apéndice y exponen candidate_names y candidate_count.

El paquete incluye dos viñetas oficiales de acceso público: * Flujo de Trabajo y Resolución Taxonómica (vignette("flujo-matching-cites")): procedimiento paso a paso, parámetros y ejemplos reproducibles de matching. * Marco Institucional, Legal y Contexto CITES en el Perú (vignette("contexto-cites-peru")): arquitectura institucional (MINAM / SERFOR / PRODUCE), marco legal, apéndices I, II y III, y códigos geográficos.


Parámetros de Control en cites_match()

Parámetro Valores Descripción
splist character o data.frame Vector de nombres científicos o data frame que contenga nombres.
taxon "all" (default), "fauna", "flora" Permite restringir la búsqueda a un reino específico (evita ambigüedades homónimas).
edition "latest" (default), "all", "2023", "2019", "2018" Edición oficial a consultar. Por defecto combina Fauna 2023 + Flora 2018.
max_dist integer (default 1) Distancia máxima de edición permitida en la fase fuzzy.
allow_synonyms TRUE (default) / FALSE Permite o desactiva la resolución automática de sinónimos oficiales.
genus_fallback FALSE (default) / TRUE Si es TRUE, binomios sin coincidencia específica se comparan también con el índice de géneros.
output "standard" (default) / "full" "standard" devuelve las columnas esenciales, incluida match_assessment; "full" incluye además parsing y flags.

is_cites() es deliberadamente más estricto: solo devuelve TRUE para coincidencias exactas o sinónimos oficiales sin calificadores de incertidumbre. Para resultados genus, suffix, fuzzy, ambiguos o con cf., aff. e híbridos, usa cites_match() y revisa match_assessment.


Ejemplos de Uso

1. Verificación booleana ultrarrápida (is_cites())

Ideal para filtros lógicos inmediatos en pipelines de datos:

library(citesperu)
## ── citesperu ───────────────────────────────────────────────────────── v0.1.0 ──
## ✔ cites_flora_peru_2018 2506 taxa           ✔ cites_fauna_peru_2023 568 spp.       
## ✔ cites_fauna_peru_2018 496 spp.            ✔ cites_match()         matching engine
## ✔ cites_fauna_peru_2019 523 spp.            
## ℹ Listado de Especies de Flora y Fauna Silvestre CITES - Perú.
## Autoridad Científica: MINAM / Dirección General de Diversidad Biológica
especies <- c("Tremarctos ornatus", "Cedrela odorata", "Homo sapiens")
is_cites(especies)
## [1]  TRUE  TRUE FALSE

2. Motor de concordancia taxonómica (cites_match())

Demostración de los diferentes tipos de coincidencia en una sola consulta:

res <- cites_match(c(
  "Tremarctos ornatus",      # 1. Exacto: Fauna Ap. I (Oso de anteojos)
  "Epipedobates femoralis",  # 2. Sinónimo: Fauna Ap. II -> Allobates femoralis
  "Paphiopedilum besseae",   # 3. Sinónimo: Flora Ap. I -> Phragmipedium besseae
  "Cedrela odoratus",        # 4. Sufijo latino: Flora Ap. III -> Cedrela odorata
  "Tremarctos ornatu",       # 5. Fuzzy (dist = 1): Falta 's' final
  "Swietenia macrophyla",    # 6. Fuzzy (dist = 1): Falta 'l'
  "Touit sp.",               # 7. Género: Psitácidos regulados en Ap. II
  "Homo sapiens"             # 8. Unmatched: No CITES
), max_dist = 1)

# Seleccionar columnas clave para visualización
res[, c("input_name", "accepted_name", "match_type", "match_assessment",
        "is_cites", "apendice", "edition_used", "source_dataset")]
## # A tibble: 8 × 8
##   input_name         accepted_name match_type match_assessment is_cites apendice
##   <chr>              <chr>         <chr>      <chr>            <lgl>    <chr>   
## 1 Tremarctos ornatus Tremarctos o… exact      matched          TRUE     I       
## 2 Epipedobates femo… Allobates fe… synonym    matched          TRUE     II      
## 3 Paphiopedilum bes… Phragmipediu… synonym    matched          TRUE     I       
## 4 Cedrela odoratus   Cedrela odor… suffix     requires_taxono… TRUE     III     
## 5 Tremarctos ornatu  Tremarctos o… fuzzy      requires_taxono… TRUE     I       
## 6 Swietenia macroph… Swietenia ma… fuzzy      requires_taxono… TRUE     II      
## 7 Touit sp.          Touit spp.    genus      requires_specie… TRUE     II      
## 8 Homo sapiens       <NA>          unmatched  not_listed       FALSE    <NA>    
## # ℹ 2 more variables: edition_used <chr>, source_dataset <chr>

3. Clasificación taxonómica y extracción de componentes (cites_classify_names())

Descompone nombres científicos extrayendo rangos infraespecíficos, autores y marcadores de indeterminación:

cites_classify_names(c(
  "Swietenia macrophylla King",
  "Phragmipedium boissierianum var. czerwiakowianum",
  "Cedrela cf. odorata",
  "Touit sp."
))
## # A tibble: 4 × 14
##   input_index input_name       canonical_name orig_genus orig_species infra_rank
##         <int> <chr>            <chr>          <chr>      <chr>        <chr>     
## 1           1 Swietenia macro… Swietenia mac… Swietenia  macrophylla  <NA>      
## 2           2 Phragmipedium b… Phragmipedium… Phragmipe… boissierian… var.      
## 3           3 Cedrela cf. odo… Cedrela odora… Cedrela    odorata      <NA>      
## 4           4 Touit sp.        Touit          Touit      <NA>         <NA>      
## # ℹ 8 more variables: orig_infraspecies <chr>, author <chr>, rank <dbl>,
## #   has_cf <lgl>, has_aff <lgl>, is_sp <lgl>, is_spp <lgl>, had_hybrid <lgl>

4. Integración en flujos tabulares con {dplyr}

cites_match() acepta directamente data.frame o tibble, facilitando la limpieza de inventarios biológicos o registros aduaneros:

library(dplyr)

inventario <- tibble(
  id = 1:4,
  nombre_campo = c("Tremarctos ornatus", "Epipedobates femoralis", "Cedrela odoratus", "Zea mays"),
  cantidad_individuos = c(2, 15, 1, 100)
)

# Evaluar con cites_match() e integrar resultados al inventario
eval_cites <- cites_match(inventario$nombre_campo)

inventario_evaluado <- bind_cols(
  inventario,
  eval_cites %>% select(accepted_name, apendice, match_type, match_assessment,
                        edition_used, source_dataset, source_row_id, is_cites)
)

inventario_evaluado
## # A tibble: 4 × 11
##      id nombre_campo       cantidad_individuos accepted_name apendice match_type
##   <int> <chr>                            <dbl> <chr>         <chr>    <chr>     
## 1     1 Tremarctos ornatus                   2 Tremarctos o… I        exact     
## 2     2 Epipedobates femo…                  15 Allobates fe… II       synonym   
## 3     3 Cedrela odoratus                     1 Cedrela odor… III      suffix    
## 4     4 Zea mays                           100 <NA>          <NA>     unmatched 
## # ℹ 5 more variables: match_assessment <chr>, edition_used <chr>,
## #   source_dataset <chr>, source_row_id <chr>, is_cites <lgl>

Viñeta Técnica de Consulta

Para un desglose metodológico exhaustivo, fundamentos biológicos y comparativas de rendimiento, consulta la viñeta incluida en el paquete:

vignette("flujo-matching-cites", package = "citesperu")

Licencia y Atribución

El software y código fuente de citesperu se distribuyen bajo la licencia de código abierto MIT.

La información original de los listados pertenece al Ministerio del Ambiente del Perú (MINAM). Los datasets empaquetados preservan íntegramente la cita a las publicaciones oficiales de origen y a sus respectivos autores técnicos.

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.