Mis fotos del año 2010

Python
pyinaturalist
Español
South Africa
Author

José R. Ferrer-Paris

Published

April 29, 2025

Modified

August 10, 2025

En el año 2010 no estaba activo en iNaturalist, y mantenía la mayoría de mis fotos de fauna y flora en algún respaldo digital, sin mucha estructura o anotaciones. En el proceso de organizar mi colección digital de fotos, he encontrado algunas fotos interesantes de esa época entre respaldos viejos y duplicados.

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

Algunas son observaciones muy interesante, pues en 2010 hice mi primera visita a Sudáfrica (casualmente en el año del Mundial de Fútbol, ¡qué coíncidencia!), y un viaje a México para visitar a mi hermano en Monterrey y Cancún.

En el proceso de subir las fotos a iNaturalist creé este documento que me permite visualizar las fotos que ya están en iNaturalist y así evitar subir fotos por duplicado. La mayoría de las fotos son del viaje a Sudáfrica (Junio), unas pocas del viaje a México (Noviembre), y sólo un par realizadas en Venezuela durante un congreso en la estación biológica de Rancho Grande (Mayo).

Cargar módulos en Python

Importamos los módulos necesarios:

import pandas as pd
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 observaciones de iNaturalist

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

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

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

len(observations['results'])

131

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'],
        'location': obs['place_guess'],
        'species guess': obs['species_guess'],
        '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 de pandas:

inat_obs=pd.DataFrame(records)

Resumen de las observaciones

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

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

Fecha_obs Fecha_reg species guess
min max min max count nunique
location
88X8+R6W, El Limon 2105, Aragua, Venezuela 2010-05-06 2010-05-06 2025-07-24 2025-07-24 2 2
Saint Lucia, South Africa 2010-06-04 2010-06-06 2020-07-11 2020-07-11 10 10
Khula Village, South Africa 2010-06-05 2010-06-05 2025-07-25 2025-07-25 1 1
uMkhanyakude District Municipality, South Africa 2010-06-05 2010-06-06 2025-07-25 2025-07-26 8 8
KwaZulu-Natal, ZA 2010-06-06 2010-06-06 2025-07-26 2025-07-26 1 1
St Lucia, 3936, South Africa 2010-06-06 2010-06-06 2025-07-26 2025-07-26 4 4
Umkhanyakude, ZA-NL, ZA 2010-06-07 2010-06-07 2025-07-24 2025-07-24 2 2
Engwenyeni, South Africa 2010-06-07 2010-06-07 2025-07-24 2025-07-24 14 12
Manzibomvu, 3974, South Africa 2010-06-07 2010-06-07 2025-07-24 2025-07-24 3 3
Hluhluwe–iMfolozi Park, South Africa 2010-06-08 2010-06-08 2025-07-24 2025-07-24 11 9
City of Cape Town, ZA-WC, ZA 2010-06-09 2010-06-09 2025-07-26 2025-07-26 1 1
Table Mountain (Nature Reserve), Cape Town, South Africa 2010-06-09 2010-06-09 2025-07-26 2025-07-26 2 2
Cape Town City Centre, Cape Town, 8000, South Africa 2010-06-09 2010-06-09 2025-07-26 2025-07-26 3 3
Hout Bay Harbour, Cape Town, 7806, South Africa 2010-06-10 2010-06-10 2025-03-22 2025-03-22 3 3
Cape Point, Cape Town, South Africa 2010-06-10 2010-06-10 2025-03-22 2025-07-26 4 4
Simon's Town, Cape Town, 7975, South Africa 2010-06-10 2010-06-10 2025-03-22 2025-03-22 1 1
Vhembe District Municipality, South Africa 2010-06-14 2010-06-15 2025-07-25 2025-07-26 8 7
Soutpansberg, South Africa 2010-06-14 2010-06-14 2025-07-26 2025-07-26 1 1
Mapungubwe National Park, Musina, South Africa 2010-06-15 2010-06-16 2025-07-24 2025-07-24 22 19
Capricorn District Municipality, South Africa 2010-06-17 2010-06-17 2025-07-26 2025-07-26 6 6
Mopani District Municipality, South Africa 2010-06-19 2010-06-19 2025-07-26 2025-07-26 6 6
Ehlanzeni, ZA-MP, ZA 2010-06-19 2010-06-19 2025-07-26 2025-07-26 1 1
Ehlanzeni District Municipality, South Africa 2010-06-19 2010-06-19 2025-07-26 2025-07-26 7 6
South Africa 2010-06-20 2010-06-20 2025-07-26 2025-07-26 1 1
Monterrey, Nuevo Leon, Mexico 2010-11-11 2010-11-11 2024-02-26 2024-11-22 7 7
Cancún, Quintana Roo, Mexico 2010-11-18 2010-11-18 2025-07-24 2025-07-24 2 2

Filtrar por fecha

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

ss = inat_obs['Fecha_obs'].apply(str) == '2010-05-06'
images = inat_obs.loc[ss,'url']
labels = inat_obs.loc[ss,'species guess']
ipyplot.plot_images(list(images), list(labels), max_images=60,)


Boat-billed Flycatcher

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

Violet-fronted Brilliant

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

O si preferimos podemos filtrar por fecha en que la observación fue añadida (registrada) en iNat:

ss = inat_obs['Fecha_reg'].apply(str) == '2025-03-22'
images = inat_obs.loc[ss,'url']
labels = inat_obs.loc[ss,'species guess']
ipyplot.plot_images(list(images), list(labels), max_images=60,)


African Penguin

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

Red-winged Starling

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

Candelabra Aloe

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

Cape Chacma Baboon

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

Cape Cormorant

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

Kelp Gull

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

Cape Fur Seal

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

Filtrar por localidad

Si queremos filtrar por localidad, simplemente tenemos que cambiar la primera línea:

ss = inat_obs['location'] == 'Saint Lucia, South Africa'
images = inat_obs.loc[ss,'url']
labels = inat_obs.loc[ss,'species guess']
ipyplot.plot_images(list(images), list(labels), max_images=60,)


Southern Vervet Monkey

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

Panafrican Pied Wagtail

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

Citrus Swallowtail

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

Southern Greater Kudu

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

common reed

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

Common Hippopotamus

https://inaturalist-open-data.s3.amazonaws.com/photos/83713937/medium.png

Water Thick-knee

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

Humpback Whale

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

Southern African Crocodile

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

Thalassarche cauta

https://inaturalist-open-data.s3.amazonaws.com/photos/83712898/medium.png

Progreso

Muchos años después todavía estoy en el proceso de registrar todas las fotos de mis viajes del año 2010, pero creo que ya he subido la mayoría de ellas:

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 2010-06-04 2010-06-06 10 1 10
2024-02-26 2010-11-11 2010-11-11 1 1 1
2024-11-22 2010-11-11 2010-11-11 6 1 6
2025-03-22 2010-06-10 2010-06-10 7 3 7
2025-07-24 2010-05-06 2010-11-18 56 7 42
2025-07-25 2010-06-05 2010-06-15 11 3 10
2025-07-26 2010-06-06 2010-06-20 40 14 36

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,)


Boat-billed Flycatcher

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

Violet-fronted Brilliant

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

Southern African Crocodile

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

Common Hippopotamus

https://inaturalist-open-data.s3.amazonaws.com/photos/83713937/medium.png

common reed

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

Flap-necked Chameleon

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

Water Thick-knee

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

Southern Greater Kudu

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

Citrus Swallowtail

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

Water Thick-knee

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

Southern Bushbuck

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

Galagos

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

Southern Vervet Monkey

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

Panafrican Pied Wagtail

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

White-chinned Petrel

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

Mollymawks

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

Thalassarche cauta

https://inaturalist-open-data.s3.amazonaws.com/photos/83712898/medium.png

Greater Kudu

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

Waterbuck

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

Humpback Whale

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

Grey-hooded Gull

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

White Rhinoceros

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

Common Hippopotamus

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

Humpback Whale

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

Grey Heron

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

Plains Zebra

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

Common Joker

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

Dancing Amber

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

African Common White

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

African Migrant

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

Citrus Swallowtail

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

Common Dotted Border

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

African Bush Elephant

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

Southern White Rhinoceros

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

Common Dotted Border

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

African Migrant

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

African Common White

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

Citrus Swallowtail

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

Southern Round-winged Orange Tip

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

African Broad-bordered Grass Yellow

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

Greater Kudu

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

Plains Zebra

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

African Buffalo

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

Lepidoptera

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

Blue-spot Pansy

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

Lizard Buzzard

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

Plains Zebra

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

African Buffalo

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

Chacma Baboon

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

Southern African Giraffe

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

Impala

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

Impala

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

Kalanchoe

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

Red-billed Oxpecker

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

Southern Crested Guineafowl

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

African Buffalo

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

Hadada Ibis

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

Southern Red-winged Starling

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

Rock Hyrax

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

Feral Pigeon

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

Eastern Gray Squirrel

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

Hartlaub's Gull

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

Cape Cormorant

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

Kelp Gull

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

Cape Fur Seal

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

Kelp Gull

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

African Penguin

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

Cape Chacma Baboon

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

Candelabra Aloe

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

Red-winged Starling

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

Trident Orchid

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

Vine-leaf Vagrant

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

Southern Grey Hornbill

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

Western Grey Heron

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

African baobab

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

Lilac-breasted Roller

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

Southern Red-billed Hornbill

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

Smith's Bush Squirrel

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

Red-billed Quelea

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

Verreaux's Eagle

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

Familiar Chat

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

Lilac-breasted Roller

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

Sulphur Orange Tip

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

Sulphur Orange Tip

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

Lesser Masked Weaver

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

Kalahari Ferraris

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

Club-tailed Charaxes

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

Dancing Amber

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

Banded Gold Tip

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

Hermbstaedtia

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

Glossy Starlings and Allies

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

Waterbuck

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

Red-billed Quelea

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

Large Grass-yellow

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

Lamprotornis

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

Southern Crested Barbet

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

Klipspringer

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

Impala

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

Dancing Amber

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

Chacma Baboon

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

Common Ostrich

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

Southern Crested Barbet

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

Zebra White

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

Grey Go-away-bird

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

Painted Lady

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

African Yellow Pansy

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

African baobab

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

Small Orange Tip

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

Grey Heron

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

Waterbuck

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

Sulphur Orange Tip

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

Nyala

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

Common Wildebeest

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

Southern Yellow-billed Hornbill

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

Impala

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

Plains Zebra

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

Lilac-breasted Roller

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

African Veined White

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

African Bush Elephant

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

African Common White

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

African Common White

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

mountain aloe

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

Sickle-winged Skipper

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

Monarch

https://inaturalist-open-data.s3.amazonaws.com/photos/452290481/medium.png

Laviana White-Skipper

https://inaturalist-open-data.s3.amazonaws.com/photos/452290518/medium.png

Dainty Sulphur

https://inaturalist-open-data.s3.amazonaws.com/photos/452290528/medium.png

European Honey Bee

https://inaturalist-open-data.s3.amazonaws.com/photos/452290573/medium.png

Spur-throated Grasshoppers

https://inaturalist-open-data.s3.amazonaws.com/photos/452288101/medium.png

Falcate Emesis

https://inaturalist-open-data.s3.amazonaws.com/photos/452290571/medium.png

Atlantic Sergeant Major

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

Lutjanus apodus

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