Análisis de la Distribución Espacial y Funcional de las Aves del Cantón de Poás Usando Técnicas de Clustering¶

Integrantes: Melanie Calderón-Hernández, Jose Vargas-Murillo y Paula Vargas-Jiménez¶

Descripción y justificación

Este proyecto se enfoca en analizar la distribución espacial y funcional de aves en el cantón de Poás, Costa Rica, utilizando datos de observaciones obtenidos del Global Biodiversity Information Facility (GBIF). A través de técnicas de clustering, el objetivo es agrupar las especies de aves según sus gremios tróficos, es decir, el papel funcional que desempeñan en el ecosistema basado en su dieta y comportamiento alimentario.

La distribución funcional de las especies es clave para la estructura y estabilidad de los ecosistemas. Al estudiar los gremios tróficos de las aves, se puede evaluar cómo se distribuyen las funciones ecológicas en el espacio y si existen áreas de alta concentración de gremios específicos. Además, este enfoque combina técnicas de ciencia de datos con ecología, lo que permite aplicar herramientas modernas a preguntas ecológicas fundamentales.

Antecedentes

En los últimos años, la integración de técnicas de ciencia de datos con estudios ecológicos ha permitido abordar preguntas complejas sobre la biodiversidad y el funcionamiento de los ecosistemas de una forma práctica y accesible. El clustering es una técnica de agrupamiento basada en algoritmos, la cual es una de las herramientas clave para identificar patrones de distribución en especies, como lo demuestra el trabajo de De Adriaenssens et al. (2007), quienes emplearon técnicas de clustering para agrupar especies ecológicas según sus características compartidas. Estos métodos han permitido identificar funciones ecológicas clave y estudiar su distribución espacial, un enfoque alineado con el análisis funcional de gremios tróficos en aves.

Por otro lado, la ciencia de datos ha jugado un rol fundamental en el modelado predictivo de la biodiversidad. Hastie et al. (2009) destacan cómo los modelos predictivos pueden aplicarse al análisis de datos espaciales, como la distribución de especies, utilizando grandes bases de datos. El uso de estos métodos permite evaluar cómo las funciones ecológicas, como los gremios tróficos, se distribuyen en diferentes ecosistemas, y cómo se pueden identificar áreas con alta concentración de ciertos gremios.

Además, la integración de grandes bases de datos de biodiversidad, como el Global Biodiversity Information Facility (GBIF), ha sido potenciada por herramientas de ciencia de datos. Isaac et al. (2020) describen cómo la utilización de bases de datos masivas combinadas con análisis de datos avanzados puede facilitar la comprensión de los patrones espaciales de las especies. Estos enfoques permiten estudiar cómo las aves del cantón de Poás se agrupan funcionalmente en el ecosistema en función de sus gremios tróficos.

Finalmente, la ciencia de datos ha transformado el modelado espacial y temporal de la distribución de especies. Rajamani et al. (2023) aborda cómo las herramientas para el análisis de datos espaciales, como las funciones relacionadas a la librería de GeoPandas y matplotlib, han facilitado la visualización y comprensión de la distribución ecológica en el espacio, un enfoque fundamental en estudios ecologicos, como el presente en el que se busca entender la relación que existe entre la distribucón de gremios tróficos y su organización espacial y cómo estas agrupaciones influyen en la estabilidad y funcionamiento del ecosistema.

Descripción del problema y objetivo

El cantón de Poás ubicado en la provincia de Alajuela en Costa Rica cuenta con gran diversidad de aves, sin embargo, no existen estudios a profundidad de su distribución funcional y espacial en la región. El estudio de las aves según su gremio trófico, es decir, su papel en el ecosistema y sus hábitos alimenticios, es fundamental para evaluar la salud y estabilidad de los ecosistemas locales. No obstante, la falta de información sobre la distribución espacial como funcional genera vacíos de conocimiento sobre la organización de estos gremios enel paisaje y su impoacto en el funcionamiento del ecosistema.

El objetivo del proyecto es analizar la distribución espacial y funcional de las aves en el cantón de Poás utilizando observaciones de la base de datos Global Biodiversity Information Facility (GBIF) mediante en análisis de datos utilizando técnicas de clustering esto para agrupar las especies según sus gremios tróficos y así identificar patrones de distribución funcional y áreas con alta concentración de gremios específicos.

Descripción de los datos

El presente estudio se basa en un conjunto de datos obtenidos de la plataforma Global Biodiversity Information Facility (GBIF), una red internacional dedicada a proporcionar acceso a datos sobre biodiversidad a escala global. Los datos utilizados corresponden a observaciones biológicas de aves realizadas en el cantón de Poás, ubicado en la provincia de Alajuela, Costa Rica.

Las observaciones incluidas en este conjunto de datos abarcan un extenso periodo temporal, desde enero de 2014 hasta abril de 2024 con un total de 34 853 observaciones recopiladas donde se abarcan 21 ordenes taxónomicos dentro de los cuales se identificaron 353 especies diferentes. Cada registro incluye información detallada sobre la taxonomía de la especie, la ubicación geográfica de la observación, así como metadatos adicionales como la fecha y el observador responsable de la recolección de los datos. Para facilitar el análisis espacial y la distribución geográfica de las especies, el área de estudio se dividió en 8 cuadrantes 25 km x 25 km, lo que permitió una caracterización más detallada y organizada de las observaciones en función de su localización.

Procesamiento de datos

Área de estudio

In [ ]:
import pandas as pd
import geopandas as gpd
import matplotlib.pyplot as plt

poas = gpd.read_file('/content/poas.shp')
cuadricula = gpd.read_file('/content/cuadricula.shp')

fig, ax = plt.subplots(figsize=(10, 10))

poas.plot(ax=ax, color='green', edgecolor='black')

for i in range(1, 9):
  cuadricula[cuadricula['id'] == i].plot(ax=ax, color='none', edgecolor='black')
  centroid = cuadricula[cuadricula['id'] == i].centroid
  plt.text(centroid.x.values[0], centroid.y.values[0], str(i), fontsize=12, ha='center', va='center')

plt.title('Mapa de cantón de Poás con cuadrícula')
plt.xlabel('Longitud')
plt.ylabel('Latitud')
plt.show()
No description has been provided for this image

Procesamiento de datos

In [ ]:
import pandas as pd

ruta= "/content/BD.xlsx"
df = pd.read_excel(ruta)
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 34852 entries, 0 to 34851
Data columns (total 52 columns):
 #   Column                            Non-Null Count  Dtype         
---  ------                            --------------  -----         
 0   Cuad                              34852 non-null  object        
 1   fid                               34852 non-null  int64         
 2   gbifID                            34852 non-null  int64         
 3   datasetKey                        34852 non-null  object        
 4   occurrenceID                      34852 non-null  object        
 5   kingdom                           34852 non-null  object        
 6   phylum                            34852 non-null  object        
 7   class                             34852 non-null  object        
 8   order                             34852 non-null  object        
 9   family                            34852 non-null  object        
 10  genus                             34852 non-null  object        
 11  species                           34846 non-null  object        
 12  infraspecificEpithet              15 non-null     object        
 13  taxonRank                         34852 non-null  object        
 14  scientificName                    34852 non-null  object        
 15  verbatimScientificName            34852 non-null  object        
 16  verbatimScientificNameAuthorship  0 non-null      float64       
 17  countryCode                       34852 non-null  object        
 18  locality                          34596 non-null  object        
 19  stateProvince                     34840 non-null  object        
 20  occurrenceStatus                  34852 non-null  object        
 21  individualCount                   33002 non-null  float64       
 22  publishingOrgKey                  34852 non-null  object        
 23  decimalLatitude                   34852 non-null  float64       
 24  decimalLongitude                  34852 non-null  float64       
 25  coordinateUncertaintyInMeters     264 non-null    float64       
 26  coordinatePrecision               0 non-null      float64       
 27  elevation                         0 non-null      float64       
 28  elevationAccuracy                 0 non-null      float64       
 29  depth                             0 non-null      float64       
 30  depthAccuracy                     0 non-null      float64       
 31  eventDate                         34852 non-null  datetime64[ns]
 32  day                               34852 non-null  int64         
 33  month                             34852 non-null  int64         
 34  year                              34852 non-null  int64         
 35  taxonKey                          34852 non-null  int64         
 36  speciesKey                        34846 non-null  float64       
 37  basisOfRecord                     34852 non-null  object        
 38  institutionCode                   34785 non-null  object        
 39  collectionCode                    34852 non-null  object        
 40  catalogNumber                     34852 non-null  object        
 41  recordNumber                      0 non-null      float64       
 42  identifiedBy                      252 non-null    object        
 43  dateIdentified                    252 non-null    datetime64[ns]
 44  license                           34852 non-null  object        
 45  rightsHolder                      323 non-null    object        
 46  recordedBy                        34852 non-null  object        
 47  typeStatus                        0 non-null      float64       
 48  establishmentMeans                0 non-null      float64       
 49  lastInterpreted                   34852 non-null  datetime64[ns]
 50  mediaType                         264 non-null    object        
 51  issue                             34852 non-null  object        
dtypes: datetime64[ns](3), float64(14), int64(6), object(29)
memory usage: 13.8+ MB
In [ ]:
#!pip install ydata-profiling
from ydata_profiling import ProfileReport

nombre = "Aves del Cantón de Poás"
profile = ProfileReport(df, title=nombre, explorative=True)
profile.to_notebook_iframe()
Summarize dataset:   0%|          | 0/5 [00:00<?, ?it/s]
Generate report structure:   0%|          | 0/1 [00:00<?, ?it/s]
Render HTML:   0%|          | 0/1 [00:00<?, ?it/s]
In [ ]:
#Diccionario para agregar los gremios tróficos
especies_dieta = {
    "Acanthidops bairdi": "Granívoro",
    "Accipiter bicolor": "Carnívoro (ave rapaz)",
    "Accipiter striatus": "Carnívoro (ave rapaz)",
    "Actitis macularius": "Insectívoro/Omnívoro",
    "Agelaius phoeniceus": "Omnívoro",
    "Amaurospiza concolor": "Granívoro",
    "Amazilia rutila": "Nectarívoro",
    "Amazilia tzacatl": "Nectarívoro",
    "Amazona albifrons": "Frugívoro",
    "Amazona farinosa": "Frugívoro",
    "Amblycercus holosericeus": "Omnívoro",
    "Anabacerthia variegaticeps": "Insectívoro",
    "Anhinga anhinga": "Piscívoro",
    "Antrostomus saturatus": "Insectívoro",
    "Ara ambiguus": "Frugívoro",
    "Ara macao": "Frugívoro",
    "Aramides cajanea": "Omnívoro",
    "Aratinga canicularis": "Frugívoro",
    "Aratinga finschi": "Frugívoro",
    "Archilochus colubris": "Nectarívoro",
    "Ardea alba": "Piscívoro",
    "Ardea herodias": "Piscívoro",
    "Arremon brunneinucha": "Granívoro/Insectívoro",
    "Arremon crassirostris": "Granívoro/Insectívoro",
    "Arremonops rufivirgatus": "Granívoro",
    "Atlapetes albinucha": "Insectívoro/Granívoro",
    "Atlapetes tibialis": "Insectívoro/Granívoro",
    "Aulacorhynchus prasinus": "Frugívoro",
    "Aythya affinis": "Piscívoro",
    "Basileuterus culicivorus": "Insectívoro",
    "Basileuterus melanogenys": "Insectívoro",
    "Basileuterus melanotis": "Insectívoro",
    "Basileuterus rufifrons": "Insectívoro",
    "Bolborhynchus lineola": "Frugívoro",
    "Bombycilla cedrorum": "Frugívoro",
    "Brotogeris jugularis": "Frugívoro",
    "Bubulcus ibis": "Insectívoro",
    "Buteo albonotatus": "Carnívoro (ave rapaz)",
    "Buteo brachyurus": "Carnívoro (ave rapaz)",
    "Buteo jamaicensis": "Carnívoro (ave rapaz)",
    "Buteo nitidus": "Carnívoro (ave rapaz)",
    "Buteo platypterus": "Carnívoro (ave rapaz)",
    "Buteo swainsoni": "Carnívoro (ave rapaz)",
    "Buteogallus urubitinga": "Carnívoro (ave rapaz)",
    "Butorides virescens": "Piscívoro",
    "Cairina moschata": "Omnívoro",
    "Calidris bairdii": "Insectívoro",
    "Calliphlox bryantae": "Nectarívoro",
    "Calocitta formosa": "Omnívoro",
    "Camptostoma imberbe": "Insectívoro",
    "Campylopterus hemileucurus": "Nectarívoro",
    "Campylorhamphus pusillus": "Insectívoro",
    "Campylorhynchus rufinucha": "Omnívoro",
    "Cantorchilus modestus": "Insectívoro",
    "Caracara plancus": "Omnívoro",
    "Cardellina canadensis": "Insectívoro",
    "Cardellina pusilla": "Insectívoro",
    "Cathartes aura": "Carnívoro (necrófago)",
    "Catharus aurantiirostris": "Insectívoro/Frugívoro",
    "Catharus frantzii": "Insectívoro/Frugívoro",
    "Catharus fuscater": "Insectívoro/Frugívoro",
    "Catharus gracilirostris": "Insectívoro/Frugívoro",
    "Catharus ustulatus": "Insectívoro/Frugívoro",
    "Chaetura vauxi": "Insectívoro",
    "Chamaepetes unicolor": "Frugívoro",
    "Chiroxiphia linearis": "Frugívoro/Insectívoro",
    "Chlorestes eliciae": "Nectarívoro",
    "Chloroceryle amazona": "Piscívoro",
    "Chlorophonia callophrys": "Frugívoro",
    "Chlorospingus flavopectus": "Insectívoro",
    "Chlorospingus pileatus": "Insectívoro",
    "Chordeiles acutipennis": "Insectívoro",
    "Cinclus mexicanus": "Insectívoro/Piscívoro",
    "Claravis mondetoura": "Omnívoro",
    "Coccyzus erythropthalmus": "Insectívoro",
    "Cochlearius cochlearius": "Piscívoro",
    "Coereba flaveola": "Nectarívoro",
    "Colaptes rubiginosus": "Insectívoro",
    "Colibri cyanotus": "Nectarívoro",
    "Colibri delphinae": "Nectarívoro",
    "Colinus cristatus": "Granívoro",
    "Columba livia": "Granívoro",
    "Columbina inca": "Granívoro",
    "Columbina passerina": "Granívoro",
    "Columbina talpacoti": "Granívoro",
    "Contopus cinereus": "Insectívoro",
    "Contopus cooperi": "Insectívoro",
    "Contopus lugubris": "Insectívoro",
    "Contopus sordidulus": "Insectívoro",
    "Contopus virens": "Insectívoro",
    "Coragyps atratus": "Carnívoro (necrófago)",
    "Cranioleuca erythrops": "Insectívoro",
    "Crax rubra": "Frugívoro",
    "Crotophaga sulcirostris": "Insectívoro",
    "Crypturellus soui": "Granívoro",
    "Cyanerpes cyaneus": "Frugívoro/Nectarívoro",
    "Cyanolyca cucullata": "Frugívoro",
    "Cyclarhis gujanensis": "Insectívoro",
    "Cynanthus canivetii": "Nectarívoro",
    "Cypseloides cryptus": "Insectívoro",
    "Cypseloides niger": "Insectívoro",
    "Dacnis venusta": "Frugívoro",
    "Dendrocygna autumnalis": "Omnívoro",
    "Dendrortyx leucophrys": "Granívoro",
    "Diglossa plumbea": "Insectívoro",
    "Discosura conversii": "Nectarívoro",
    "Dives dives": "Insectívoro",
    "Doryfera ludovicae": "Frugívoro",
    "Dryocopus lineatus": "Insectívoro",
    "Egretta caerulea": "Piscívoro",
    "Elaenia flavogaster": "Insectívoro",
    "Elaenia frantzii": "Insectívoro",
    "Elanoides forficatus": "Carnívoro",
    "Elanus leucurus": "Carnívoro",
    "Empidonax alnorum": "Insectívoro",
    "Empidonax atriceps": "Insectívoro",
    "Empidonax flavescens": "Insectívoro",
    "Empidonax flaviventris": "Insectívoro",
    "Empidonax virescens": "Insectívoro",
    "Eubucco bourcierii": "Insectívoro/Nectarívoro",
    "Eugenes spectabilis": "Nectarívoro",
    "Eumomota superciliosa": "Insectívoro",
    "Eupherusa eximia": "Nectarívoro",
    "Eupherusa nigriventris": "Nectarívoro",
    "Euphonia affinis": "Frugívoro",
    "Euphonia anneae": "Frugívoro",
    "Euphonia elegantissima": "Frugívoro",
    "Euphonia hirundinacea": "Frugívoro",
    "Euphonia luteicapilla": "Frugívoro",
    "Falco columbarius": "Carnívoro",
    "Falco peregrinus": "Carnívoro",
    "Falco rufigularis": "Carnívoro",
    "Falco sparverius": "Carnívoro",
    "Geothlypis formosa": "Insectívoro",
    "Geothlypis philadelphia": "Insectívoro",
    "Geothlypis poliocephala": "Insectívoro",
    "Geranospiza caerulescens": "Carnívoro",
    "Glaucidium brasilianum": "Carnívoro (ave rapaz)",
    "Glaucidium costaricanum": "Carnívoro (ave rapaz)",
    "Habia fuscicauda": "Insectívoro",
    "Habia rubica": "Frugívoro",
    "Haplospiza rustica": "Granívoro",
    "Heliodoxa jacula": "Nectarívoro",
    "Heliomaster constantii": "Nectarívoro",
    "Heliomaster longirostris": "Nectarívoro",
    "Helmitheros vermivorum": "Insectívoro",
    "Henicorhina leucophrys": "Insectívoro",
    "Herpetotheres cachinnans": "Insectívoro",
    "Hirundo rustica": "Insectívoro",
    "Hylocichla mustelina": "Insectívoro/Frugívoro",
    "Hylophilus decurtatus": "Insectívoro",
    "Icterus galbula": "Frugívoro",
    "Icterus spurius": "Frugívoro",
    "Lampornis calolaemus": "Nectarívoro",
    "Lampornis hemileucus": "Nectarívoro",
    "Laterallus albigularis": "Omnívoro",
    "Legatus leucophaius": "Insectívoro",
    "Leiothlypis peregrina": "Insectívoro",
    "Lepidocolaptes affinis": "Insectívoro",
    "Lepidocolaptes souleyetii": "Insectívoro",
    "Leptopogon superciliaris": "Insectívoro",
    "Leptotila verreauxi": "Granívoro",
    "Leuconotopicus fumigatus": "Insectívoro",
    "Leuconotopicus villosus": "Insectívoro",
    "Leucopternis princeps": "Carnívoro",
    "Lonchura malacca": "Granívoro",
    "Lophotriccus pileatus": "Insectívoro",
    "Margarornis rubiginosus": "Insectívoro",
    "Megaceryle torquata": "Piscívoro",
    "Megarynchus pitangua": "Insectívoro",
    "Megascops choliba": "Carnívoro",
    "Megascops clarkii": "Carnívoro",
    "Melanerpes formicivorus": "Omnívoro",
    "Melanerpes hoffmannii": "Omnívoro",
    "Melanerpes pucherani": "Omnívoro",
    "Melozone cabanisi": "Omnívoro",
    "Melozone leucotis": "Granívoro",
    "Micrastur semitorquatus": "Carnívoro",
    "Microchera cupreiceps": "Nectarívoro",
    "Mimus gilvus": "Omnívoro",
    "Mionectes oleagineus": "Insectívoro",
    "Mionectes olivaceus": "Insectívoro",
    "Mitrephanes phaeocercus": "Insectívoro",
    "Mniotilta varia": "Insectívoro",
    "Molothrus aeneus": "Granívoro",
    "Molothrus oryzivorus": "Granívoro",
    "Momotus lessonii": "Insectívoro",
    "Myadestes melanops": "Insectívoro/Frugívoro",
    "Mycteria americana": "Piscívoro",
    "Myiarchus crinitus": "Insectívoro",
    "Myiarchus tuberculifer": "Insectívoro",
    "Myiarchus tyrannulus": "Insectívoro",
    "Myioborus miniatus": "Insectívoro",
    "Myioborus torquatus": "Insectívoro",
    "Myiodynastes hemichrysus": "Insectívoro",
    "Myiodynastes luteiventris": "Insectívoro",
    "Nesospingus speculiferus": "Frugívoro",
    "Notharchus macrorhynchos": "Insectívoro",
    "Ocyceros dirigens": "Frugívoro",
    "Odontophorus gujanensis": "Granívoro",
    "Odontophorus hyperythrus": "Granívoro",
    "Onychorhynchus coronatus": "Insectívoro",
    "Oxyura jamaicensis": "Piscívoro",
    "Pachyramphus aglaiae": "Insectívoro",
    "Pachyramphus polychopterus": "Insectívoro",
    "Pachyramphus marginatus": "Insectívoro",
    "Picoides villosus": "Insectívoro",
    "Picoides scalaris": "Insectívoro",
    "Pionus menstruus": "Frugívoro",
    "Pitangus sulphuratus": "Insectívoro",
    "Pitangus lictor": "Insectívoro",
    "Ploceus melanocephalus": "Granívoro",
    "Poephila cincta": "Granívoro",
    "Polioptila caerulea": "Insectívoro",
    "Polioptila nigriceps": "Insectívoro",
    "Polioptila plumbea": "Insectívoro",
    "Progne chalybea": "Insectívoro",
    "Progne subis": "Insectívoro",
    "Pseudocolaptes johnsoni": "Insectívoro",
    "Pseudocolaptes bemmeleni": "Insectívoro",
    "Pseudoscops clamator": "Carnívoro",
    "Ramphocelus carbo": "Frugívoro",
    "Ramphocelus passerinii": "Frugívoro",
    "Rhamphocelus dimidiatus": "Frugívoro",
    "Ramphastos sulfuratus": "Frugívoro",
    "Ramphastos toco": "Frugívoro",
    "Rhinocrypta lanceolata": "Insectívoro",
    "Rhipidura rufifrons": "Insectívoro",
    "Sarcops caliginis": "Carnívoro",
    "Scolopax minor": "Omnívoro",
    "Scotocerca inquieta": "Insectívoro",
    "Selasphorus scintilla": "Nectarívoro",
    "Setophaga citrina": "Insectívoro",
    "Setophaga coronata": "Insectívoro",
    "Setophaga graciae": "Insectívoro",
    "Setophaga ruticilla": "Insectívoro",
    "Setophaga virens": "Insectívoro",
    "Sicalis flaveola": "Granívoro",
    "Sicalis rubra": "Granívoro",
    "Spheniscus magellanicus": "Piscívoro",
    "Sporophila americana": "Granívoro",
    "Sporophila hypoxantha": "Granívoro",
    "Sporophila nigricollis": "Granívoro",
    "Sporophila pileata": "Granívoro",
    "Sporophila torqueola": "Granívoro",
    "Spiza americana": "Granívoro",
    "Tangara cabanisi": "Frugívoro",
    "Tangara dowii": "Frugívoro",
    "Tangara gyrola": "Frugívoro",
    "Tangara mexicana": "Frugívoro",
    "Tangara schrankii": "Frugívoro",
    "Tangara xanthogastra": "Frugívoro",
    "Tiaris canorus": "Granívoro",
    "Tiaris obscurus": "Granívoro",
    "Tityra semifasciata": "Frugívoro",
    "Trogon aurantiiventris": "Insectívoro",
    "Trogon elegans": "Insectívoro",
    "Trogon melanurus": "Insectívoro",
    "Turdus grayi": "Frugívoro/Insectívoro",
    "Turdus merula": "Insectívoro",
    "Turdus subalaris": "Insectívoro",
    "Tyrannus forficatus": "Insectívoro",
    "Tyrannus melancholicus": "Insectívoro",
    "Tyrannus savana": "Insectívoro",
    "Tyrannus verticalis": "Insectívoro",
    "Tyrannus tyrannus": "Insectívoro",
    "Vireo altiloquus": "Insectívoro",
    "Vireo griseus": "Insectívoro",
    "Vireo olivaceus": "Insectívoro",
    "Vireo philadelphicus": "Insectívoro",
    "Vireo sordidus": "Insectívoro",
    "Vireo thrissos": "Insectívoro",
    "Xenops minutus": "Insectívoro",
    "Xenops rutilans": "Insectívoro",
    "Xiphorhynchus erythropygius": "Insectívoro",
    "Zeledonia coronata": "Insectívoro",
    "Zenaida asiatica": "Granívoro",
    "Zentrygon chiriquensis": "Granívoro",
    "Zentrygon costaricensis": "Granívoro",
    "Zimmerius vilissimus": "Insectívoro",
    "Zonotrichia capensis": "Granívoro"
}

print(especies_dieta)
{'Acanthidops bairdi': 'Granívoro', 'Accipiter bicolor': 'Carnívoro (ave rapaz)', 'Accipiter striatus': 'Carnívoro (ave rapaz)', 'Actitis macularius': 'Insectívoro/Omnívoro', 'Agelaius phoeniceus': 'Omnívoro', 'Amaurospiza concolor': 'Granívoro', 'Amazilia rutila': 'Nectarívoro', 'Amazilia tzacatl': 'Nectarívoro', 'Amazona albifrons': 'Frugívoro', 'Amazona farinosa': 'Frugívoro', 'Amblycercus holosericeus': 'Omnívoro', 'Anabacerthia variegaticeps': 'Insectívoro', 'Anhinga anhinga': 'Piscívoro', 'Antrostomus saturatus': 'Insectívoro', 'Ara ambiguus': 'Frugívoro', 'Ara macao': 'Frugívoro', 'Aramides cajanea': 'Omnívoro', 'Aratinga canicularis': 'Frugívoro', 'Aratinga finschi': 'Frugívoro', 'Archilochus colubris': 'Nectarívoro', 'Ardea alba': 'Piscívoro', 'Ardea herodias': 'Piscívoro', 'Arremon brunneinucha': 'Granívoro/Insectívoro', 'Arremon crassirostris': 'Granívoro/Insectívoro', 'Arremonops rufivirgatus': 'Granívoro', 'Atlapetes albinucha': 'Insectívoro/Granívoro', 'Atlapetes tibialis': 'Insectívoro/Granívoro', 'Aulacorhynchus prasinus': 'Frugívoro', 'Aythya affinis': 'Piscívoro', 'Basileuterus culicivorus': 'Insectívoro', 'Basileuterus melanogenys': 'Insectívoro', 'Basileuterus melanotis': 'Insectívoro', 'Basileuterus rufifrons': 'Insectívoro', 'Bolborhynchus lineola': 'Frugívoro', 'Bombycilla cedrorum': 'Frugívoro', 'Brotogeris jugularis': 'Frugívoro', 'Bubulcus ibis': 'Insectívoro', 'Buteo albonotatus': 'Carnívoro (ave rapaz)', 'Buteo brachyurus': 'Carnívoro (ave rapaz)', 'Buteo jamaicensis': 'Carnívoro (ave rapaz)', 'Buteo nitidus': 'Carnívoro (ave rapaz)', 'Buteo platypterus': 'Carnívoro (ave rapaz)', 'Buteo swainsoni': 'Carnívoro (ave rapaz)', 'Buteogallus urubitinga': 'Carnívoro (ave rapaz)', 'Butorides virescens': 'Piscívoro', 'Cairina moschata': 'Omnívoro', 'Calidris bairdii': 'Insectívoro', 'Calliphlox bryantae': 'Nectarívoro', 'Calocitta formosa': 'Omnívoro', 'Camptostoma imberbe': 'Insectívoro', 'Campylopterus hemileucurus': 'Nectarívoro', 'Campylorhamphus pusillus': 'Insectívoro', 'Campylorhynchus rufinucha': 'Omnívoro', 'Cantorchilus modestus': 'Insectívoro', 'Caracara plancus': 'Omnívoro', 'Cardellina canadensis': 'Insectívoro', 'Cardellina pusilla': 'Insectívoro', 'Cathartes aura': 'Carnívoro (necrófago)', 'Catharus aurantiirostris': 'Insectívoro/Frugívoro', 'Catharus frantzii': 'Insectívoro/Frugívoro', 'Catharus fuscater': 'Insectívoro/Frugívoro', 'Catharus gracilirostris': 'Insectívoro/Frugívoro', 'Catharus ustulatus': 'Insectívoro/Frugívoro', 'Chaetura vauxi': 'Insectívoro', 'Chamaepetes unicolor': 'Frugívoro', 'Chiroxiphia linearis': 'Frugívoro/Insectívoro', 'Chlorestes eliciae': 'Nectarívoro', 'Chloroceryle amazona': 'Piscívoro', 'Chlorophonia callophrys': 'Frugívoro', 'Chlorospingus flavopectus': 'Insectívoro', 'Chlorospingus pileatus': 'Insectívoro', 'Chordeiles acutipennis': 'Insectívoro', 'Cinclus mexicanus': 'Insectívoro/Piscívoro', 'Claravis mondetoura': 'Omnívoro', 'Coccyzus erythropthalmus': 'Insectívoro', 'Cochlearius cochlearius': 'Piscívoro', 'Coereba flaveola': 'Nectarívoro', 'Colaptes rubiginosus': 'Insectívoro', 'Colibri cyanotus': 'Nectarívoro', 'Colibri delphinae': 'Nectarívoro', 'Colinus cristatus': 'Granívoro', 'Columba livia': 'Granívoro', 'Columbina inca': 'Granívoro', 'Columbina passerina': 'Granívoro', 'Columbina talpacoti': 'Granívoro', 'Contopus cinereus': 'Insectívoro', 'Contopus cooperi': 'Insectívoro', 'Contopus lugubris': 'Insectívoro', 'Contopus sordidulus': 'Insectívoro', 'Contopus virens': 'Insectívoro', 'Coragyps atratus': 'Carnívoro (necrófago)', 'Cranioleuca erythrops': 'Insectívoro', 'Crax rubra': 'Frugívoro', 'Crotophaga sulcirostris': 'Insectívoro', 'Crypturellus soui': 'Granívoro', 'Cyanerpes cyaneus': 'Frugívoro/Nectarívoro', 'Cyanolyca cucullata': 'Frugívoro', 'Cyclarhis gujanensis': 'Insectívoro', 'Cynanthus canivetii': 'Nectarívoro', 'Cypseloides cryptus': 'Insectívoro', 'Cypseloides niger': 'Insectívoro', 'Dacnis venusta': 'Frugívoro', 'Dendrocygna autumnalis': 'Omnívoro', 'Dendrortyx leucophrys': 'Granívoro', 'Diglossa plumbea': 'Insectívoro', 'Discosura conversii': 'Nectarívoro', 'Dives dives': 'Insectívoro', 'Doryfera ludovicae': 'Frugívoro', 'Dryocopus lineatus': 'Insectívoro', 'Egretta caerulea': 'Piscívoro', 'Elaenia flavogaster': 'Insectívoro', 'Elaenia frantzii': 'Insectívoro', 'Elanoides forficatus': 'Carnívoro', 'Elanus leucurus': 'Carnívoro', 'Empidonax alnorum': 'Insectívoro', 'Empidonax atriceps': 'Insectívoro', 'Empidonax flavescens': 'Insectívoro', 'Empidonax flaviventris': 'Insectívoro', 'Empidonax virescens': 'Insectívoro', 'Eubucco bourcierii': 'Insectívoro/Nectarívoro', 'Eugenes spectabilis': 'Nectarívoro', 'Eumomota superciliosa': 'Insectívoro', 'Eupherusa eximia': 'Nectarívoro', 'Eupherusa nigriventris': 'Nectarívoro', 'Euphonia affinis': 'Frugívoro', 'Euphonia anneae': 'Frugívoro', 'Euphonia elegantissima': 'Frugívoro', 'Euphonia hirundinacea': 'Frugívoro', 'Euphonia luteicapilla': 'Frugívoro', 'Falco columbarius': 'Carnívoro', 'Falco peregrinus': 'Carnívoro', 'Falco rufigularis': 'Carnívoro', 'Falco sparverius': 'Carnívoro', 'Geothlypis formosa': 'Insectívoro', 'Geothlypis philadelphia': 'Insectívoro', 'Geothlypis poliocephala': 'Insectívoro', 'Geranospiza caerulescens': 'Carnívoro', 'Glaucidium brasilianum': 'Carnívoro (ave rapaz)', 'Glaucidium costaricanum': 'Carnívoro (ave rapaz)', 'Habia fuscicauda': 'Insectívoro', 'Habia rubica': 'Frugívoro', 'Haplospiza rustica': 'Granívoro', 'Heliodoxa jacula': 'Nectarívoro', 'Heliomaster constantii': 'Nectarívoro', 'Heliomaster longirostris': 'Nectarívoro', 'Helmitheros vermivorum': 'Insectívoro', 'Henicorhina leucophrys': 'Insectívoro', 'Herpetotheres cachinnans': 'Insectívoro', 'Hirundo rustica': 'Insectívoro', 'Hylocichla mustelina': 'Insectívoro/Frugívoro', 'Hylophilus decurtatus': 'Insectívoro', 'Icterus galbula': 'Frugívoro', 'Icterus spurius': 'Frugívoro', 'Lampornis calolaemus': 'Nectarívoro', 'Lampornis hemileucus': 'Nectarívoro', 'Laterallus albigularis': 'Omnívoro', 'Legatus leucophaius': 'Insectívoro', 'Leiothlypis peregrina': 'Insectívoro', 'Lepidocolaptes affinis': 'Insectívoro', 'Lepidocolaptes souleyetii': 'Insectívoro', 'Leptopogon superciliaris': 'Insectívoro', 'Leptotila verreauxi': 'Granívoro', 'Leuconotopicus fumigatus': 'Insectívoro', 'Leuconotopicus villosus': 'Insectívoro', 'Leucopternis princeps': 'Carnívoro', 'Lonchura malacca': 'Granívoro', 'Lophotriccus pileatus': 'Insectívoro', 'Margarornis rubiginosus': 'Insectívoro', 'Megaceryle torquata': 'Piscívoro', 'Megarynchus pitangua': 'Insectívoro', 'Megascops choliba': 'Carnívoro', 'Megascops clarkii': 'Carnívoro', 'Melanerpes formicivorus': 'Omnívoro', 'Melanerpes hoffmannii': 'Omnívoro', 'Melanerpes pucherani': 'Omnívoro', 'Melozone cabanisi': 'Omnívoro', 'Melozone leucotis': 'Granívoro', 'Micrastur semitorquatus': 'Carnívoro', 'Microchera cupreiceps': 'Nectarívoro', 'Mimus gilvus': 'Omnívoro', 'Mionectes oleagineus': 'Insectívoro', 'Mionectes olivaceus': 'Insectívoro', 'Mitrephanes phaeocercus': 'Insectívoro', 'Mniotilta varia': 'Insectívoro', 'Molothrus aeneus': 'Granívoro', 'Molothrus oryzivorus': 'Granívoro', 'Momotus lessonii': 'Insectívoro', 'Myadestes melanops': 'Insectívoro/Frugívoro', 'Mycteria americana': 'Piscívoro', 'Myiarchus crinitus': 'Insectívoro', 'Myiarchus tuberculifer': 'Insectívoro', 'Myiarchus tyrannulus': 'Insectívoro', 'Myioborus miniatus': 'Insectívoro', 'Myioborus torquatus': 'Insectívoro', 'Myiodynastes hemichrysus': 'Insectívoro', 'Myiodynastes luteiventris': 'Insectívoro', 'Nesospingus speculiferus': 'Frugívoro', 'Notharchus macrorhynchos': 'Insectívoro', 'Ocyceros dirigens': 'Frugívoro', 'Odontophorus gujanensis': 'Granívoro', 'Odontophorus hyperythrus': 'Granívoro', 'Onychorhynchus coronatus': 'Insectívoro', 'Oxyura jamaicensis': 'Piscívoro', 'Pachyramphus aglaiae': 'Insectívoro', 'Pachyramphus polychopterus': 'Insectívoro', 'Pachyramphus marginatus': 'Insectívoro', 'Picoides villosus': 'Insectívoro', 'Picoides scalaris': 'Insectívoro', 'Pionus menstruus': 'Frugívoro', 'Pitangus sulphuratus': 'Insectívoro', 'Pitangus lictor': 'Insectívoro', 'Ploceus melanocephalus': 'Granívoro', 'Poephila cincta': 'Granívoro', 'Polioptila caerulea': 'Insectívoro', 'Polioptila nigriceps': 'Insectívoro', 'Polioptila plumbea': 'Insectívoro', 'Progne chalybea': 'Insectívoro', 'Progne subis': 'Insectívoro', 'Pseudocolaptes johnsoni': 'Insectívoro', 'Pseudocolaptes bemmeleni': 'Insectívoro', 'Pseudoscops clamator': 'Carnívoro', 'Ramphocelus carbo': 'Frugívoro', 'Ramphocelus passerinii': 'Frugívoro', 'Rhamphocelus dimidiatus': 'Frugívoro', 'Ramphastos sulfuratus': 'Frugívoro', 'Ramphastos toco': 'Frugívoro', 'Rhinocrypta lanceolata': 'Insectívoro', 'Rhipidura rufifrons': 'Insectívoro', 'Sarcops caliginis': 'Carnívoro', 'Scolopax minor': 'Omnívoro', 'Scotocerca inquieta': 'Insectívoro', 'Selasphorus scintilla': 'Nectarívoro', 'Setophaga citrina': 'Insectívoro', 'Setophaga coronata': 'Insectívoro', 'Setophaga graciae': 'Insectívoro', 'Setophaga ruticilla': 'Insectívoro', 'Setophaga virens': 'Insectívoro', 'Sicalis flaveola': 'Granívoro', 'Sicalis rubra': 'Granívoro', 'Spheniscus magellanicus': 'Piscívoro', 'Sporophila americana': 'Granívoro', 'Sporophila hypoxantha': 'Granívoro', 'Sporophila nigricollis': 'Granívoro', 'Sporophila pileata': 'Granívoro', 'Sporophila torqueola': 'Granívoro', 'Spiza americana': 'Granívoro', 'Tangara cabanisi': 'Frugívoro', 'Tangara dowii': 'Frugívoro', 'Tangara gyrola': 'Frugívoro', 'Tangara mexicana': 'Frugívoro', 'Tangara schrankii': 'Frugívoro', 'Tangara xanthogastra': 'Frugívoro', 'Tiaris canorus': 'Granívoro', 'Tiaris obscurus': 'Granívoro', 'Tityra semifasciata': 'Frugívoro', 'Trogon aurantiiventris': 'Insectívoro', 'Trogon elegans': 'Insectívoro', 'Trogon melanurus': 'Insectívoro', 'Turdus grayi': 'Frugívoro/Insectívoro', 'Turdus merula': 'Insectívoro', 'Turdus subalaris': 'Insectívoro', 'Tyrannus forficatus': 'Insectívoro', 'Tyrannus melancholicus': 'Insectívoro', 'Tyrannus savana': 'Insectívoro', 'Tyrannus verticalis': 'Insectívoro', 'Tyrannus tyrannus': 'Insectívoro', 'Vireo altiloquus': 'Insectívoro', 'Vireo griseus': 'Insectívoro', 'Vireo olivaceus': 'Insectívoro', 'Vireo philadelphicus': 'Insectívoro', 'Vireo sordidus': 'Insectívoro', 'Vireo thrissos': 'Insectívoro', 'Xenops minutus': 'Insectívoro', 'Xenops rutilans': 'Insectívoro', 'Xiphorhynchus erythropygius': 'Insectívoro', 'Zeledonia coronata': 'Insectívoro', 'Zenaida asiatica': 'Granívoro', 'Zentrygon chiriquensis': 'Granívoro', 'Zentrygon costaricensis': 'Granívoro', 'Zimmerius vilissimus': 'Insectívoro', 'Zonotrichia capensis': 'Granívoro'}
In [ ]:
#Función para agregar los gremios tróficos
def agregar_dieta(df, dieta):
    df['dieta'] = df['species'].map(dieta).fillna(pd.NA)
    return df
df = agregar_dieta(df, especies_dieta)

df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 34852 entries, 0 to 34851
Data columns (total 53 columns):
 #   Column                            Non-Null Count  Dtype         
---  ------                            --------------  -----         
 0   Cuad                              34852 non-null  object        
 1   fid                               34852 non-null  int64         
 2   gbifID                            34852 non-null  int64         
 3   datasetKey                        34852 non-null  object        
 4   occurrenceID                      34852 non-null  object        
 5   kingdom                           34852 non-null  object        
 6   phylum                            34852 non-null  object        
 7   class                             34852 non-null  object        
 8   order                             34852 non-null  object        
 9   family                            34852 non-null  object        
 10  genus                             34852 non-null  object        
 11  species                           34846 non-null  object        
 12  infraspecificEpithet              15 non-null     object        
 13  taxonRank                         34852 non-null  object        
 14  scientificName                    34852 non-null  object        
 15  verbatimScientificName            34852 non-null  object        
 16  verbatimScientificNameAuthorship  0 non-null      float64       
 17  countryCode                       34852 non-null  object        
 18  locality                          34596 non-null  object        
 19  stateProvince                     34840 non-null  object        
 20  occurrenceStatus                  34852 non-null  object        
 21  individualCount                   33002 non-null  float64       
 22  publishingOrgKey                  34852 non-null  object        
 23  decimalLatitude                   34852 non-null  float64       
 24  decimalLongitude                  34852 non-null  float64       
 25  coordinateUncertaintyInMeters     264 non-null    float64       
 26  coordinatePrecision               0 non-null      float64       
 27  elevation                         0 non-null      float64       
 28  elevationAccuracy                 0 non-null      float64       
 29  depth                             0 non-null      float64       
 30  depthAccuracy                     0 non-null      float64       
 31  eventDate                         34852 non-null  datetime64[ns]
 32  day                               34852 non-null  int64         
 33  month                             34852 non-null  int64         
 34  year                              34852 non-null  int64         
 35  taxonKey                          34852 non-null  int64         
 36  speciesKey                        34846 non-null  float64       
 37  basisOfRecord                     34852 non-null  object        
 38  institutionCode                   34785 non-null  object        
 39  collectionCode                    34852 non-null  object        
 40  catalogNumber                     34852 non-null  object        
 41  recordNumber                      0 non-null      float64       
 42  identifiedBy                      252 non-null    object        
 43  dateIdentified                    252 non-null    datetime64[ns]
 44  license                           34852 non-null  object        
 45  rightsHolder                      323 non-null    object        
 46  recordedBy                        34852 non-null  object        
 47  typeStatus                        0 non-null      float64       
 48  establishmentMeans                0 non-null      float64       
 49  lastInterpreted                   34852 non-null  datetime64[ns]
 50  mediaType                         264 non-null    object        
 51  issue                             34852 non-null  object        
 52  dieta                             22168 non-null  object        
dtypes: datetime64[ns](3), float64(14), int64(6), object(30)
memory usage: 14.1+ MB
In [ ]:
#Exportar a excel para hacer tabla dinámica
df.to_excel('BD_con_dieta.xlsx', index=False)
In [ ]:
#Importar tabla dinámica generada a partir de los datos de gremio trófico generados anteriormente
import pandas as pd
data = pd.read_csv('GT_aves_poas.csv', sep=";", index_col=0)
data = pd.DataFrame(data)
data
Out[ ]:
a b c d e f g h i j k l m n o p q
C1 115 331 676 1022 177 0 1118 75 7277 1264 714 5 0 2 1646 297 4
C2 0 8 8 13 5 0 18 2 119 17 8 0 0 0 21 1 0
C3 6 27 34 44 35 0 79 3 207 11 3 0 0 0 35 35 0
C4 0 8 32 26 22 0 39 0 140 8 2 0 0 0 48 13 1
C5 6 65 228 458 394 0 535 0 1353 84 0 0 0 0 382 575 10
C6 4 85 138 269 116 1 271 0 610 48 5 1 13 0 73 142 9
C7 1 15 44 68 27 0 74 0 171 5 0 0 0 0 26 49 3
C8 0 0 2 1 0 0 2 0 3 0 0 0 0 0 0 1 0
In [ ]:
#Hacer transformaciones

import pandas as pd
import numpy as np
from scipy.spatial.distance import pdist, squareform, braycurtis
from scipy.cluster.hierarchy import linkage, dendrogram
import matplotlib.pyplot as plt

# Función para calcular la transformación de Hellinger
def hellinger_transform(data):
    # Normalizamos cada fila para que la suma sea 1
    data_normalized = data / data.sum(axis=1, keepdims=True)
    # Aplicamos la transformación de Hellinger
    return np.sqrt(data_normalized)

# Aplicar la transformación de Hellinger
env_hellinger = hellinger_transform(data.values)

# Calcular la matriz de distancias de Bray-Curtis
bray_curtis_distances = squareform(pdist(env_hellinger, metric='braycurtis'))


#Se utiliza una trasnformación de Hellinger y Distancias de Bray-Curtis
In [ ]:
# Cluster
Z_average = linkage(bray_curtis_distances, method='centroid')

plt.figure(figsize=(12, 8))
dendrogram(Z_average, labels=data.index)
plt.title('Dendrograma de ensamble de gremios tróficos de la avifauna dentro de los cuadrantes')
plt.xlabel('Muestras')
plt.ylabel('Distancia')
plt.show()
<ipython-input-24-66b530bf0215>:2: ClusterWarning: The symmetric non-negative hollow observation matrix looks suspiciously like an uncondensed distance matrix
  Z_average = linkage(bray_curtis_distances, method='centroid')
No description has been provided for this image

Abundancia general de las especies

In [ ]:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

#Abundancia de cada especie por cuadrante
abundancia = df.groupby(['Cuad', 'species']).size().reset_index(name='Frecuencia')

#Boxplot abundancia
plt.figure(figsize=(10,6))
sns.boxplot(x='Cuad', y='Frecuencia', data=abundancia)
plt.title('Boxplot de la Abundancia de Especies por Cuadrante')
plt.show()

!pip install wordcloud

from wordcloud import WordCloud

df['species'] = df['species'].fillna('').astype(str)
text = ' '.join(df['species'].tolist())
wordcloud = WordCloud(width=800, height=400, background_color ='white').generate(text)
plt.figure(figsize=(10,5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.title('Nube de Palabras con las Especies')
plt.show()
No description has been provided for this image
Requirement already satisfied: wordcloud in /usr/local/lib/python3.10/dist-packages (1.9.3)
Requirement already satisfied: numpy>=1.6.1 in /usr/local/lib/python3.10/dist-packages (from wordcloud) (1.26.4)
Requirement already satisfied: pillow in /usr/local/lib/python3.10/dist-packages (from wordcloud) (10.4.0)
Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from wordcloud) (3.7.1)
Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->wordcloud) (1.3.0)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib->wordcloud) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->wordcloud) (4.53.1)
Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->wordcloud) (1.4.7)
Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->wordcloud) (24.1)
Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->wordcloud) (3.1.4)
Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib->wordcloud) (2.8.2)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib->wordcloud) (1.16.0)
No description has been provided for this image
In [ ]:
ruta2= "/content/GT_aves_poas.xlsx"
df2 = pd.read_excel(ruta2)
df2.head()

import seaborn as sns
import numpy as np

df_log = np.log1p(df2.set_index('Cuadrante').T)

plt.figure(figsize=(10, 6))
sns.heatmap(df_log, cmap='YlGnBu', annot=True)

plt.title('Mapa de Calor: Abundancia de Grupos Tróficos por Cuadrante (Logaritmizado)')
plt.show()
No description has been provided for this image

Descripción de resultados

Con respecto a la abundancia general de las especies:

La abundancia de especies por cuadrante muestra una distribución diferenial de abundancia de aves entre cuadrantes, siendo el cuadrante uno el que presentó valores significativamente más altos, seguido por el cuadrante cinco, siendo que los demás, exhiben una menor densidad de individuos. Los bigotes del boxplot indican la dispersión de los datos, y la presencia de posibles valores atípicos puede señalar eventos de muestreo excepcionales, como la presencia de especies dominantes o la agrupación de individuos en ciertas áreas. No obstante, es evidente que hay una prevalencia de la mayor frecuencia de especies en unos cuadrantes con respecto a otros. De igual forma, en la nube de palabras podemos tener una idea de la riqueza encontrada en los sitios de muestreo, lo que destaca también la importancia de este tipo de estudios.

Con respecto a los gremios tróficos:

Tanto en el cuadrante uno como en el cinco que es dónde se encuentra mayor abundancia de especies se observa que la mayoría de organismos observados correcponden al gremio de los insectívoros, seguido por grupos como los granívoros, frugívoros y omnívoros.

Con Respecto al Cluster

El análisis de clúster reveló la presencia de tres grupos significativos y distintivos. El primer grupo está compuesto por los Cuadrantes 1 y 2, mientras que el segundo grupo engloba los Cuadrantes 3, 4, 5, 6, 7 y el tercero el 8. Esta agrupación sugiere una clara diferenciación en las características de estos conjuntos de cuadrantes.

Los cuadrantes 1 y 2 se encuentran estratégicamente ubicados en el imponente volcán Poás, más específicamente dentro de los límites del área protegida del Parque Nacional. Esta localización privilegiada les otorga características únicas y excepcionales en términos de hábitat y biodiversidad, convirtiéndolos en zonas de gran interés ecológico. La presencia de ecosistemas volcánicos, con su particular composición del suelo, microclimas y vegetación adaptada, crea un entorno singular que influye directamente en la fauna que lo habita.

En marcado contraste, los cuadrantes restantes (3, 4, 5, 6, 7 y 8) se sitúan en una zona con una notable y creciente influencia urbana. Este emplazamiento implica un entorno significativamente diferente al del área volcánica, caracterizado por una mayor presencia humana, infraestructuras artificiales y una alteración más pronunciada de los ecosistemas naturales. La transición de un ambiente natural protegido a uno urbanizado conlleva cambios sustanciales en la disponibilidad de recursos, la estructura del hábitat y las presiones ambientales a las que están sometidas las especies.

Conclusiones

  • La distribución de la abundancia de aves entre los cuadrantes muestra que el cuadrante uno presenta significativamente más individuos, seguido del cuadrante cinco, mientras que los demás cuadrantes tienen una menor densidad. Esta variabilidad, reflejada en los boxplots, sugiere la existencia de valores atípicos que podrían indicar la presencia de especies dominantes o agrupaciones excepcionales. Además, la predominancia de insectívoros en los cuadrantes más ricos en especies destaca la diversidad trófica en estos hábitats, subrayando la importancia de estudios como este para comprender y conservar la biodiversidad en la región.

  • El ensamble de aves divide el territorio del cantón de 2 regiones. La región norte, con influencia de la zona volcánica y la región sur con influencia más antropogénica

Referencias

Adriaenssens, V., Verdonschot, P. F. M., Goethals, P. L. M., & De Pauw, N. (2007). Application of clustering techniques for the characterization of macroinvertebrate communities to support river restoration management. Aquatic Ecology, 41, 387-398. https://doi.org/10.1007/s10452-005-2836-0

Hastie, T., Tibshirani, R., Friedman, J. H., & Friedman, J. H. (2009). The elements of statistical learning: data mining, inference, and prediction (Vol. 2, pp. 1-758). New York: springer.

Isaac, N. J., Jarzyna, M. A., Keil, P., Dambly, L. I., Boersch-Supan, P. H., Browning, E., Freeman, S., Golding, N., Guillera-Arroita, G., Henrys, P., Jarvis, S., Lahoz-Monfort, J., Pagel, J., Pescott, O., Schmucki, R., Simmonds, E. & O’Hara, R. B. (2020). Data integration for large-scale models of species distributions. Trends in ecology & evolution, 35(1), 56-67. https://www.cell.com/action/showPdf?pii=S0169-5347%2819%2930255-1

Rajamani, S. K., & Iyer, R. S. (2023). Use of Python Modules in Ecological Research. In Perspectives on the Transition Toward Green and Climate Neutral Economies in Asia (pp. 182-206). IGI Global.