Mis fotos del año 2005

Python
pyinaturalist
Español
Venezuela
México
Papilionoidea
Author

José R. Ferrer-Paris

Published

August 10, 2025

Modified

August 17, 2025

En el año 2005…

Para poner estas observaciones de 2005 en contexto temporal de mis contribuciones a iNat, pueden revisar este gráfico

Después de terminar de actualizar mis observaciones de otros años (2008, 2010, 2012) he decidido repetir el proceso para el año 2005. Este documento me permite visualizar las fotos que ya están en iNaturalist y así evitar subir fotos por duplicado. Lamentablemente solo tomamos unas pocas fotos en algunos de los viajes de este año, y entre ellas no he encontrado muchas fotos para contribuir en iNaturalist.

Cargar módulos en Python

Importamos los módulos necesarios:

import pandas as pd
import geopandas as gpd
from shapely.geometry import Point
from datetime import datetime
from pyinaturalist import get_observations
import ipyplot

Y declaramos una función útil para leer los datos temporales de la respuesta del API de iNat:

def as_date(x):
    if type(x) == str:
        y = datetime.strptime(x, "%Y-%m-%d").date()
    else:
        y = datetime.date(x)
    return(y)

Descargar datos

Los datos espaciales de los estados de Venezuela están disponibles a través de esta página del Humanitarian Data Exchange: https://data.humdata.org/dataset/cod-ab-ven Usamos read_file del modulo geopandas para abrir esta capa desde el url de descarga.

zipurl = 'https://data.humdata.org/dataset/5b141d29-534f-4f01-a0bc-41e2f375d925/resource/b6cf4bf5-418a-49ad-80ec-b84d0e0e0d41/download/ven_adm_ine_20210223_shp.zip'
vzla_estados=gpd.read_file(zipurl, 
                           layer='ven_admbnda_adm1_ine_20210223',
                          columns=['ADM1_ES','geometry'])

Usamos get_observations con un intervalo de fechas que incluye todo el año 2010:

observations = get_observations(user_id='NeoMapas', 
                                d1="2005-01-01",
                                d2="2005-12-31",
                                per_page=1000)

Este número aumenta a medida que cargamos observaciones en iNat:

len(observations['results'])

85

Usamos este loop para guardar la información básica de cada observación:

records=list()
for obs in observations['results']:
    record = {
        'uri':obs['uri'],
        'species guess': obs['species_guess'],
        'location': obs['place_guess'],
        'longitude': obs['location'][1],
        'latitude': obs['location'][0],
        'Fecha_obs': as_date(obs['observed_on']),
        'Fecha_reg': as_date(obs['created_at'])
    }
    if len(obs['observation_photos'])>0:
        record['url'] = obs['observation_photos'][0]['photo']['url'].replace("square","medium")
        record['attribution'] = obs['observation_photos'][0]['photo']['attribution']
    records.append(record)

Y las transformamos en un marco de datos con información espacial para usar con geopandas:

gs = [Point(float(obs['longitude']), float(obs['latitude']))  for obs in records]
inat_obs=gpd.GeoDataFrame(records, geometry=gs, crs="EPSG:4326")

Resumen de las observaciones por estado

Primero combinamos la información de iNat con los estados de Venezuela. Usamos la función sjoin_nearest porque algunas observaciones provienen de la costa y las coordenadas de especies amenazadas están protegidas.

crs_lacanoa="EPSG:24719"
inat_obs_estados = gpd.sjoin_nearest(
    inat_obs.to_crs(crs_lacanoa), 
    vzla_estados.to_crs(crs_lacanoa), 
    distance_col="distances", 
    how="left", 
    max_distance=50000,
    lsuffix='in',
    rsuffix='vzla')
inat_obs_estados.fillna({'ADM1_ES':'No info'},inplace=True)
inat_obs_estados['mes'] = [fobs.month for fobs in inat_obs_estados['Fecha_obs']]

Agrupamos las observaciones por la localidad y mes, y obtenemos una tabla resumen de las observaciones del año:

aggfuns = {
    'species guess': 'count',
           }
inat_obs_estados.groupby(['ADM1_ES','mes']).agg(aggfuns).unstack().fillna(0)

species guess
mes 1 4 5 6 7 8 9 11 12
ADM1_ES
Anzoátegui 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0
Barinas 0.0 0.0 0.0 0.0 2.0 0.0 0.0 0.0 0.0
Bolívar 6.0 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0
Carabobo 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0
Falcón 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 7.0
Lara 0.0 15.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Miranda 0.0 1.0 0.0 0.0 0.0 1.0 5.0 0.0 0.0
Mérida 0.0 0.0 8.0 0.0 0.0 0.0 0.0 0.0 0.0
No info 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 0.0
Nueva Esparta 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0
Sucre 0.0 0.0 0.0 15.0 0.0 0.0 0.0 0.0 4.0
Táchira 0.0 0.0 0.0 0.0 9.0 0.0 0.0 0.0 0.0
Zulia 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0

Filtrar por fecha

Con estas líneas de código podemos filtrar por fecha de observación:

inat_obs['mes'] = [fobs.month for fobs in inat_obs['Fecha_obs']]

En noviembre visitamos México:

ss = inat_obs['mes'] == 11
images = inat_obs.loc[ss,'url']
labels = inat_obs.loc[ss,'species guess']
ipyplot.plot_images(list(images), list(labels), max_images=60,)


Amazilia

https://inaturalist-open-data.s3.amazonaws.com/photos/347818710/medium.jpg

Harmonia Tigerwing

https://inaturalist-open-data.s3.amazonaws.com/photos/347818423/medium.jpg

Spiny Lizards

https://inaturalist-open-data.s3.amazonaws.com/photos/347794435/medium.jpg

Progreso

Aquí se puede ver el progreso que he hecho en cargar las fotos del año 2008, creo que estas son todas las que tengo respaldadas:

aggfuns = {
    'Fecha_obs': ["min", "max"],
    'location': ['count',pd.Series.nunique],
    'species guess': [pd.Series.nunique],
           }
inat_obs.groupby('Fecha_reg').agg(aggfuns)

Fecha_obs location species guess
min max count nunique nunique
Fecha_reg
2020-07-11 2005-12-02 2005-12-02 1 1 1
2023-11-18 2005-05-16 2005-09-16 9 3 7
2024-01-24 2005-11-13 2005-12-27 8 5 8
2024-02-26 2005-12-11 2005-12-11 1 1 1
2024-11-09 2005-08-14 2005-08-24 4 3 4
2025-03-18 2005-04-13 2005-04-26 11 2 10
2025-03-22 2005-01-07 2005-01-08 6 2 6
2025-08-09 2005-04-22 2005-12-10 8 5 6
2025-08-10 2005-09-03 2005-09-26 5 2 5
2025-08-11 2005-06-09 2005-12-29 32 8 25

Todas las observaciones

Y cierro aquí con todas las imágenes de las observaciones de este año:

images = inat_obs.sort_values('Fecha_obs')['url']
labels = inat_obs.sort_values('Fecha_obs')['species guess']
ipyplot.plot_images(list(images), list(labels), max_images=200,)


Cross-barred White

https://inaturalist-open-data.s3.amazonaws.com/photos/478768754/medium.jpg

Painted Parakeet

https://inaturalist-open-data.s3.amazonaws.com/photos/478769402/medium.jpg

Great Southern White

https://inaturalist-open-data.s3.amazonaws.com/photos/478769024/medium.jpg

Brown-throated Parakeet

https://inaturalist-open-data.s3.amazonaws.com/photos/478770760/medium.jpg

Yellow-crowned Amazon

https://inaturalist-open-data.s3.amazonaws.com/photos/478770627/medium.jpg

Green-backed Trogon

https://inaturalist-open-data.s3.amazonaws.com/photos/478769768/medium.jpg

Rufous-vented Chachalaca

https://inaturalist-open-data.s3.amazonaws.com/photos/477524412/medium.jpg

Lady of the Night Orchid

https://inaturalist-open-data.s3.amazonaws.com/photos/477527005/medium.jpg

Typical Parrotlets

https://inaturalist-open-data.s3.amazonaws.com/photos/477526132/medium.jpg

Cattleya Alliance Orchids

https://inaturalist-open-data.s3.amazonaws.com/photos/477525995/medium.jpg

Narrow-winged Damselflies

https://inaturalist-open-data.s3.amazonaws.com/photos/477525834/medium.jpg

Lady of the Night Orchid

https://inaturalist-open-data.s3.amazonaws.com/photos/477525294/medium.jpg

Zulu Giant

https://inaturalist-open-data.s3.amazonaws.com/photos/477526401/medium.jpg

Alligator plant

https://inaturalist-open-data.s3.amazonaws.com/photos/477524871/medium.jpg

Leuenbergeria guamacho

https://inaturalist-open-data.s3.amazonaws.com/photos/477525697/medium.jpg

Stapelia gigantea

https://inaturalist-open-data.s3.amazonaws.com/photos/550124415/medium.jpg

Opuntia caracassana

https://inaturalist-open-data.s3.amazonaws.com/photos/550124518/medium.jpg

None

https://inaturalist-open-data.s3.amazonaws.com/photos/550124538/medium.jpg

Tropical Screech-Owl

https://inaturalist-open-data.s3.amazonaws.com/photos/550124706/medium.jpg

Tabebuia

https://inaturalist-open-data.s3.amazonaws.com/photos/550124611/medium.jpg

Ptiloglossa

https://inaturalist-open-data.s3.amazonaws.com/photos/477527780/medium.jpg

stinking passionflower

https://inaturalist-open-data.s3.amazonaws.com/photos/477527780/medium.jpg

Rain lilies

https://inaturalist-open-data.s3.amazonaws.com/photos/550124550/medium.jpg

Tanymecini

https://inaturalist-open-data.s3.amazonaws.com/photos/335658335/medium.jpg

Alala sister

https://inaturalist-open-data.s3.amazonaws.com/photos/335658653/medium.jpg

Tanymecini

https://inaturalist-open-data.s3.amazonaws.com/photos/335659075/medium.jpg

Tanymecini

https://inaturalist-open-data.s3.amazonaws.com/photos/335659020/medium.jpg

Phrenapatinae

https://inaturalist-open-data.s3.amazonaws.com/photos/335659026/medium.jpg

Dartwhites

https://inaturalist-open-data.s3.amazonaws.com/photos/335658652/medium.jpg

Epiphile

https://inaturalist-open-data.s3.amazonaws.com/photos/335658695/medium.jpg

Leucanella

https://inaturalist-open-data.s3.amazonaws.com/photos/335657822/medium.jpg

Violet-winged Grasshopper

https://inaturalist-open-data.s3.amazonaws.com/photos/550766113/medium.jpg

Xanthacrona

https://inaturalist-open-data.s3.amazonaws.com/photos/550765928/medium.jpg

Castela

https://inaturalist-open-data.s3.amazonaws.com/photos/550766053/medium.jpg

Melocactus curvispinus

https://inaturalist-open-data.s3.amazonaws.com/photos/550762590/medium.jpg

Castela

https://inaturalist-open-data.s3.amazonaws.com/photos/550762488/medium.jpg

Melocactus curvispinus

https://inaturalist-open-data.s3.amazonaws.com/photos/550762403/medium.jpg

Colombian Four-eyed Frog

https://inaturalist-open-data.s3.amazonaws.com/photos/550762759/medium.jpg

Phoebis statira

https://inaturalist-open-data.s3.amazonaws.com/photos/550765093/medium.jpg

Castela

https://inaturalist-open-data.s3.amazonaws.com/photos/550762697/medium.jpg

Anteos menippe

https://inaturalist-open-data.s3.amazonaws.com/photos/550765110/medium.jpg

Encyclia

https://inaturalist-open-data.s3.amazonaws.com/photos/550765343/medium.jpg

Striped Hog-nosed Skunk

https://inaturalist-open-data.s3.amazonaws.com/photos/550762278/medium.jpg

Cardisoma

https://inaturalist-open-data.s3.amazonaws.com/photos/550762634/medium.jpg

Wiegmann's Striped Gecko

https://inaturalist-open-data.s3.amazonaws.com/photos/550764908/medium.jpg

Wiegmann's Striped Gecko

https://inaturalist-open-data.s3.amazonaws.com/photos/550764907/medium.jpg

Widespread Eighty-eight

https://inaturalist-open-data.s3.amazonaws.com/photos/550749006/medium.jpg

Espeletiinae

https://inaturalist-open-data.s3.amazonaws.com/photos/550737782/medium.jpg

Melanchroia

https://inaturalist-open-data.s3.amazonaws.com/photos/550748850/medium.jpg

Espeletia

https://inaturalist-open-data.s3.amazonaws.com/photos/550740600/medium.jpg

Espeletiinae

https://inaturalist-open-data.s3.amazonaws.com/photos/550738114/medium.jpg

Hypericum

https://inaturalist-open-data.s3.amazonaws.com/photos/550738058/medium.jpg

Chusquea

https://inaturalist-open-data.s3.amazonaws.com/photos/550738007/medium.jpg

Swallenochloa

https://inaturalist-open-data.s3.amazonaws.com/photos/550737875/medium.jpg

Espeletia

https://inaturalist-open-data.s3.amazonaws.com/photos/550737666/medium.jpg

Chusquea

https://inaturalist-open-data.s3.amazonaws.com/photos/550737816/medium.jpg

Rosales

https://inaturalist-open-data.s3.amazonaws.com/photos/550737708/medium.jpg

Green Aracari

https://inaturalist-open-data.s3.amazonaws.com/photos/449034309/medium.jpg

Pteroglossus aracari atricollis

https://inaturalist-open-data.s3.amazonaws.com/photos/449034271/medium.jpg

Great Kiskadee

https://inaturalist-open-data.s3.amazonaws.com/photos/449032517/medium.jpg

Diphthera

https://inaturalist-open-data.s3.amazonaws.com/photos/550751383/medium.jpg

Psalidognathus friendii

https://inaturalist-open-data.s3.amazonaws.com/photos/448998483/medium.jpeg

Hesperiidae

https://inaturalist-open-data.s3.amazonaws.com/photos/550592300/medium.jpg

Cyrtochilum

https://inaturalist-open-data.s3.amazonaws.com/photos/550592501/medium.jpg

Heliconiini

https://inaturalist-open-data.s3.amazonaws.com/photos/550592080/medium.jpg

Zulu Giant

https://inaturalist-open-data.s3.amazonaws.com/photos/335659804/medium.jpg

Gonyleptoidea

https://inaturalist-open-data.s3.amazonaws.com/photos/550594420/medium.jpg

Comparettia

https://inaturalist-open-data.s3.amazonaws.com/photos/550594336/medium.jpg

Spiny Lizards

https://inaturalist-open-data.s3.amazonaws.com/photos/347794435/medium.jpg

Harmonia Tigerwing

https://inaturalist-open-data.s3.amazonaws.com/photos/347818423/medium.jpg

Amazilia

https://inaturalist-open-data.s3.amazonaws.com/photos/347818710/medium.jpg

Blue Rainbow lizard

https://inaturalist-open-data.s3.amazonaws.com/photos/83711598/medium.jpg

Vermilion Cardinal

https://inaturalist-open-data.s3.amazonaws.com/photos/347820823/medium.jpg

Attacini

https://inaturalist-open-data.s3.amazonaws.com/photos/550755370/medium.jpg

Eupsittula pertinax

https://inaturalist-open-data.s3.amazonaws.com/photos/550133110/medium.jpg

Eupsittula pertinax

https://inaturalist-open-data.s3.amazonaws.com/photos/550133485/medium.jpg

Red Postman

https://inaturalist-open-data.s3.amazonaws.com/photos/353748580/medium.jpg

Phoebis marcellina

https://inaturalist-open-data.s3.amazonaws.com/photos/550809018/medium.jpg

Phoebis agarithe

https://inaturalist-open-data.s3.amazonaws.com/photos/550809017/medium.jpg

Crab-eating Fox

https://inaturalist-open-data.s3.amazonaws.com/photos/347821642/medium.jpg

Brown Pelican

https://inaturalist-open-data.s3.amazonaws.com/photos/347821994/medium.jpg

Cylindropuntia caribaea

https://inaturalist-open-data.s3.amazonaws.com/photos/347822409/medium.jpg

Domestic Goat

https://inaturalist-open-data.s3.amazonaws.com/photos/347822421/medium.jpg

Pelecanus occidentalis

https://inaturalist-open-data.s3.amazonaws.com/photos/550757585/medium.jpg

Fregatidae

https://inaturalist-open-data.s3.amazonaws.com/photos/550759029/medium.jpg