Tutorial 1: Observations

Binder

This notebook will give a quick introduction to things you can do using data from your own iNaturalist observations.

[1]:
from datetime import datetime, timedelta

import ipyplot
from dateutil.relativedelta import relativedelta
from IPython.display import Image
from pyinaturalist import (
    ICONIC_TAXA,
    Observation,
    TaxonCount,
    UserCount,
    enable_logging,
    get_observation_histogram,
    get_observation_identifiers,
    get_observation_observers,
    get_observation_species_counts,
    get_observations,
    pprint,
)
from rich import print

enable_logging()

Observation data

Take a look at one of the observations to see what information it contains:

[3]:
print(my_observations[0])
Observation(
    id=30688807,
    created_at=datetime.datetime(2019, 8, 12, 15, 22, 47, tzinfo=tzlocal()),
    captive=False,
    community_taxon_id=78444,
    description='Located in Green Meadows West Prairie\n\nSpecies 
IDs:\nhttps://sites.google.com/site/gmwprairie/gmw-prairie-flora',
    faves=[],
    geoprivacy=None,
    identifications_count=1,
    identifications_most_agree=True,
    identifications_most_disagree=False,
    identifications_some_agree=True,
    license_code='CC-BY-NC',
    location=(41.67206561, -93.72957587),
    mappable=True,
    num_identification_agreements=1,
    num_identification_disagreements=0,
    oauth_application_id=2,
    obscured=False,
    observed_on=datetime.datetime(2019, 8, 12, 10, 16, tzinfo=tzoffset('Etc/UTC', 0)),
    outlinks=[{'source': 'GBIF', 'url': 'http://www.gbif.org/occurrence/2429228652'}],
    out_of_range=None,
    owners_identification_from_vision=False,
    place_guess='Johnston, IA, USA',
    place_ids=[
        1,
        24,
        1582,
        9853,
        59613,
        64422,
        64423,
        66741,
        82256,
        97394,
        116535,
        129109,
        137509,
        154492,
        155074
    ],
    positional_accuracy=12,
    preferences={'prefers_community_taxon': None},
    project_ids=[48611],
    project_ids_with_curator_id=[],
    project_ids_without_curator_id=[48611],
    public_positional_accuracy=12,
    quality_grade='research',
    quality_metrics=[],
    reviewed_by=[1436999, 2115051],
    site_id=1,
    sounds=[],
    species_guess='Rocky Mountain bee plant',
    tags=[],
    updated_at=datetime.datetime(2019, 10, 16, 3, 43, 4, tzinfo=tzlocal()),
    uri='https://www.inaturalist.org/observations/30688807',
    uuid='aea799e1-4754-4eaf-adca-84720cdeaeb2',
    votes=[],
    annotations=[
        [12] 12|13 (0 votes)
    ],
    comments=[],
    identifications=[
        [66501609] 🌱 Species: Peritoma serrulata (Rocky Mountain beeplant) (improving) added
on Aug 12, 2019 by jkcook,
        [74656703] 🌱 Species: Peritoma serrulata (Rocky Mountain beeplant) (supporting)
added on Oct 16, 2019 by colincroft
    ],
    ofvs=[],
    photos=[
        [47956314]
https://inaturalist-open-data.s3.amazonaws.com/photos/47956314/original.jpeg?1565623377
(CC-BY-NC, 1365x2048)
    ],
    project_observations=[
        ProjectObservation(id=33209242, preferences={'allows_curator_coordinate_access':
True}, project={'id': 48611}, user_id=2115051, uuid='0ae36f62-59e8-4b90-affd-eb1ddb437262')
    ],
    taxon=[78444] 🌱 Species: Peritoma serrulata (Rocky Mountain beeplant),
    user=[2115051] jkcook (Jordan Cook)
)

Observation data compared to the web UI

Here is how some of those fields correspond to what you see on an observation page on iNaturalist.org: 21afdbb02d2d43718b13abe86749c3ce

You’ll notice that there are many more fields available; see the Observation docs for a complete list.

Previewing data

In many cases, you will want to quickly preview API results without looking through the full details for each result. pyinaturalist.pprint() can be used to show a condensed table of almost all response types. Here’s an example with just the first 30 results:

[4]:
pprint(my_observations[:30])
  ID         Taxon ID   Taxon                  Observed on    User     Location             
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  30688807   78444      🌱 Species: Peritom…   Aug 12, 2019   jkcook   Johnston, IA, USA    
                        serrulata (Rocky                                                    
                        Mountain beeplant)                                                  
  30688955   47912      🌱 Species:            Aug 12, 2019   jkcook   Johnston, IA, USA    
                        Asclepias tuberosa   
                        (butterfly milkweed) 
  30689111   60251      🌱 Species: Verbena    Aug 12, 2019   jkcook   Johnston, IA, USA    
                        hastata (blue                                                       
                        vervain)                                                            
  30689221   121968     🌽 Species:            Aug 12, 2019   jkcook   Johnston, IA, USA    
                        Andropogon gerardi   
                        (big bluestem)       
  30689306   121968     🌽 Species:            Aug 12, 2019   jkcook   Johnston, IA, USA    
                        Andropogon gerardi                                                  
                        (big bluestem)                                                      
  30689425   128701     🌱 Species:            Aug 12, 2019   jkcook   Johnston, IA, USA    
                        Desmanthus           
                        illinoensis          
                        (Illinois            
                        bundleflower)        
  30689463   121976     🌻 Species: Silphiu…   Aug 12, 2019   jkcook   Johnston, IA, USA    
                        laciniatum (compass                                                 
                        plant)                                                              
  30689506   136376     🌻 Species:            Aug 12, 2019   jkcook   Johnston, IA, USA    
                        Rudbeckia triloba    
                        (Brown-eyed Susan)   
  30689603   121976     🌻 Species: Silphiu…   Aug 12, 2019   jkcook   Johnston, IA, USA    
                        laciniatum (compass                                                 
                        plant)                                                              
  30689780   81594      🌾 Species: Elymus     Aug 12, 2019   jkcook   Johnston, IA, USA    
                        hystrix (bottlebrush 
                        grass)               
  30690105   127907     🌱 Species:            Aug 12, 2019   jkcook   Johnston, IA, USA    
                        Chamaecrista                                                        
                        fasciculata                                                         
                        (partridge pea)                                                     
  30690175   141767     🌱 Species:            Aug 12, 2019   jkcook   Johnston, IA, USA    
                        Veronicastrum        
                        virginicum (Culver's 
                        root)                
  30690204   48678      🌼 Genus: Solidago     Aug 12, 2019   jkcook   Johnston, IA, USA    
                        (goldenrods)                                                        
  30690327   128701     🌱 Species:            Aug 12, 2019   jkcook   Johnston, IA, USA    
                        Desmanthus           
                        illinoensis          
                        (Illinois            
                        bundleflower)        
  30726806   127186     🌱 Species:            Aug 12, 2019   jkcook   Johnston, IA, USA    
                        Securigera varia                                                    
                        (purple crownvetch)                                                 
  30727162   128695     🥕 Species: Eryngiu…   Aug 12, 2019   jkcook   Johnston, IA, USA    
                        yuccifolium          
                        (rattlesnake master) 
  30727377   136561     🌾 Form: Elymus        Aug 12, 2019   jkcook   Johnston, IA, USA    
                        canadensis                                                          
                        glaucifolius                                                        
  30727961   48662      🦋 Species: Danaus     Aug 12, 2019   jkcook   Green Meadows West   
                        plexippus (Monarch)                            Prairie              
  30728796   120215     🐝 Species: Bombus     Aug 12, 2019   jkcook   Green Meadows West   
                        griseocollis                                   Prairie              
                        (Brown-belted Bumble                                                
                        Bee)                                                                
  30728902   55556      🐛 Species:            Aug 12, 2019   jkcook   Green Meadows West   
                        Oncopeltus fasciatus                           Prairie              
                        (Large Milkweed Bug) 
  30729015   81599      🌻 Species: Silphiu…   Aug 12, 2019   jkcook   Green Meadows West   
                        perfoliatum (cup                               Prairie              
                        plant)                                                              
  30729970   47911      🌱 Species:            Aug 12, 2019   jkcook   Johnston, IA, USA    
                        Asclepias syriaca    
                        (common milkweed)    
  30729981   130382     🌻 Species:            Aug 12, 2019   jkcook   Johnston, IA, USA    
                        Heliopsis                                                           
                        helianthoides (false                                                
                        sunflower)                                                          
  30730005   204330     🌱 Species: Iris       Aug 12, 2019   jkcook   Johnston, IA, USA    
                        domestica            
                        (Blackberry Lily)    
  30730009   128695     🥕 Species: Eryngiu…   Aug 12, 2019   jkcook   Johnston, IA, USA    
                        yuccifolium                                                         
                        (rattlesnake master)                                                
  30730021   54781      🌳 Species: Quercus    Aug 12, 2019   jkcook   Johnston, IA, USA    
                        macrocarpa (bur oak) 
  30730033   127907     🌱 Species:            Aug 12, 2019   jkcook   Green Meadows West   
                        Chamaecrista                                   Prairie              
                        fasciculata                                                         
                        (partridge pea)                                                     
  30730042   48627      🌻 Species:            Aug 12, 2019   jkcook   Johnston, IA, USA    
                        Echinacea purpurea   
                        (purple coneflower)  
  30730087   62741      🌻 Species:            Aug 12, 2019   jkcook   Johnston, IA, USA    
                        Rudbeckia hirta                                                     
                        (black-eyed Susan)                                                  
  30730133   56031      🌱 Genus: Calystegi…   Aug 12, 2019   jkcook   Green Meadows West   
                        (false bindweeds)                              Prairie              

Observation species

On iNaturalist.org, the next tab of the observation search page is Species. You can get this information with get_observation_species_counts().

For example, all the frogs and toads observed in Mexico:

inat-observation-species-counts.png

Here is how to get that same information from the API:

[5]:
# Note: 6793 is the place ID for Mexico, and 20979 is the taxon ID for the Order Anura
response = get_observation_species_counts(place_id=6793, taxon_id=20979)

Then we can see a preview of the top 10 results:

[6]:
taxa = TaxonCount.from_json_list(response['results'][:10])
pprint(taxa)
  ID        Rank      Scientific name                  Count 
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  24277     species   🐸 Smilisca baudinii             2241  
  517119    species   🐸 Rhinella horribilis           2005  
  23933     species   🐸 Hyla arenicolor               1839  
  65551     species   🐸 Hyla eximia                   1764  
  65860     species   🐸 Incilius valliceps            1553  
  65849     species   🐸 Incilius nebulifer            877   
  65975     species   🐸 Lithobates berlandieri        854   
  135027    species   🐸 Agalychnis dacnicolor         798   
  554652    species   🐸 Rheohyla miotympanum          797   
  1148187   species   🐸 Trachycephalus vermiculatus   753   

Observation identifiers

get_observation identifiers() gets us information shown on the next tab: Identifiers:

inat-observation-identifiers.png

[7]:
response = get_observation_identifiers(place_id=6793, taxon_id=20979)
users = UserCount.from_json_list(response['results'][:10])
pprint(users)
  ID        Username            Display name                  Count 
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  22707     coatzin_tutor       M. Domínguez-Laso             5392  
  46681     cris-tzabcan        Cristian Olvera               4852  
  1051916   pedro_nahuat        Pedro E. Nahuat-Cervera       2655  
  17327     yamaneko            Rafael Paredes Montesinos     2245  
  3656      eligarcia-padilla   Elí García-Padilla            1894  
  523033    opuntia24           Miguel A. Chavez Caballero    1726  
  1315      escalante-pasos     Jorge Armín Escalante Pasos   1611  
  8489      josecamx            José Carlos Arenas Monroy     1596  
  36855     sonoran             Chris Grünwald Herp.mx        1534  
  23647     jhvaldez_tutor      Jorge H. Valdez               1454  

Observation observers

And get_observation observers() gets us information from the Observers tab:

inat-observation-observers.png

[8]:
response = get_observation_observers(place_id=6793, taxon_id=20979)
users = UserCount.from_json_list(response['results'][:10])
pprint(users)
  ID        Username                Display name                    Count 
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  1051916   pedro_nahuat            Pedro E. Nahuat-Cervera         424   
  28799     luis_diaz-gamboa        Luis Díaz-Gamboa                336   
  71758     andrea_navarro20        Andrea Navarro                  332   
  23647     jhvaldez_tutor          Jorge H. Valdez                 322   
  46555     magazhu                 Cheryl Harleston López Espino   318   
  5772      juancruzado             Juan Cruzado Cortés             311   
  54220     aplomadobirdy           Big Birdy                       282   
  21626     francisco3_             Francisco Farriols Sarabia      201   
  376395    emmguevara              Emmanuel Guevara Lazcano        187   
  4095390   eric_centenero-alcala   Eric Centenero Alcalá           173   

Observation photos

When you’re working in Jupyter, there are a number of ways to preview observation photos. For these examples, we’ll use your own observation data from the first step in this tutorial.

Viewing individual observation photos

Use Photo.show() to see a photo from a single observation:

[9]:
my_observations[-4].photos[0].show()
../_images/examples_Tutorial_1_Observations_19_0.png

Observation photo grid

We can use ipyplot to preview observation images. Observation.photos contains a list of Photo objects, and we can use those to get a thumnail URL for first photo from each observation. For image labels, just call str(observation) to get a summary of the observation (who/what/when/where).

[10]:
images = [obs.photos[0].thumbnail_url for obs in my_observations[:15]]
labels = [str(obs) for obs in my_observations[:15]]
ipyplot.plot_images(images, labels)

[30688807] 🌱 Species: Peritoma serrulata (Rocky Mountain beeplant) observed on Aug 12, 2019 by jkcook at Johnston, IA, USA

https://inaturalist-open-data.s3.amazonaws.com/photos/47956314/square.jpeg?1565623377

[30688955] 🌱 Species: Asclepias tuberosa (butterfly milkweed) observed on Aug 12, 2019 by jkcook at Johnston, IA, USA

https://inaturalist-open-data.s3.amazonaws.com/photos/47956594/square.jpeg?1565623542

[30689111] 🌱 Species: Verbena hastata (blue vervain) observed on Aug 12, 2019 by jkcook at Johnston, IA, USA

https://inaturalist-open-data.s3.amazonaws.com/photos/47956848/square.jpeg?1565623709

[30689221] 🌽 Species: Andropogon gerardi (big bluestem) observed on Aug 12, 2019 by jkcook at Johnston, IA, USA

https://inaturalist-open-data.s3.amazonaws.com/photos/47957018/square.jpeg?1565623831

[30689306] 🌽 Species: Andropogon gerardi (big bluestem) observed on Aug 12, 2019 by jkcook at Johnston, IA, USA

https://inaturalist-open-data.s3.amazonaws.com/photos/47960898/square.jpeg?1565626175

[30689425] 🌱 Species: Desmanthus illinoensis (Illinois bundleflower) observed on Aug 12, 2019 by jkcook at Johnston, IA, USA

https://inaturalist-open-data.s3.amazonaws.com/photos/47957319/square.jpeg?1565624048

[30689463] 🌻 Species: Silphium laciniatum (compass plant) observed on Aug 12, 2019 by jkcook at Johnston, IA, USA

https://inaturalist-open-data.s3.amazonaws.com/photos/47960436/square.jpeg?1565625910

[30689506] 🌻 Species: Rudbeckia triloba (Brown-eyed Susan) observed on Aug 12, 2019 by jkcook at Johnston, IA, USA

https://inaturalist-open-data.s3.amazonaws.com/photos/47957474/square.jpeg?1565624160

[30689603] 🌻 Species: Silphium laciniatum (compass plant) observed on Aug 12, 2019 by jkcook at Johnston, IA, USA

https://inaturalist-open-data.s3.amazonaws.com/photos/47960945/square.jpeg?1565626207

[30689780] 🌾 Species: Elymus hystrix (bottlebrush grass) observed on Aug 12, 2019 by jkcook at Johnston, IA, USA

https://inaturalist-open-data.s3.amazonaws.com/photos/47957975/square.jpeg?1565624459

[30690105] 🌱 Species: Chamaecrista fasciculata (partridge pea) observed on Aug 12, 2019 by jkcook at Johnston, IA, USA

https://inaturalist-open-data.s3.amazonaws.com/photos/47958478/square.jpeg?1565624818

[30690175] 🌱 Species: Veronicastrum virginicum (Culver's root) observed on Aug 12, 2019 by jkcook at Johnston, IA, USA

https://inaturalist-open-data.s3.amazonaws.com/photos/47958639/square.jpeg?1565624925

[30690204] 🌼 Genus: Solidago (goldenrods) observed on Aug 12, 2019 by jkcook at Johnston, IA, USA

https://inaturalist-open-data.s3.amazonaws.com/photos/47958719/square.jpeg?1565624971

[30690327] 🌱 Species: Desmanthus illinoensis (Illinois bundleflower) observed on Aug 12, 2019 by jkcook at Johnston, IA, USA

https://inaturalist-open-data.s3.amazonaws.com/photos/47958950/square.jpeg?1565625088

[30726806] 🌱 Species: Securigera varia (purple crownvetch) observed on Aug 12, 2019 by jkcook at Johnston, IA, USA

https://inaturalist-open-data.s3.amazonaws.com/photos/48019864/square.jpeg?1565661460

Observation photo grid grouped by iconic taxon

We can organize this a bit more by grouping these photos by iconic taxon. Use ipyplot.plot_class_tabs to group by label, and use Observation.taxon.iconic_taxon_name as the image labels:

[11]:
images = [obs.photos[0].thumbnail_url for obs in my_observations]
labels = [obs.taxon.iconic_taxon_name for obs in my_observations]
ipyplot.plot_class_tabs(images, labels, max_imgs_per_tab=15)

0

https://inaturalist-open-data.s3.amazonaws.com/photos/48316210/square.jpeg?1565914818

0

https://inaturalist-open-data.s3.amazonaws.com/photos/48518926/square.jpeg?1566091650

1

https://inaturalist-open-data.s3.amazonaws.com/photos/49341882/square.jpeg?1566784482

2

https://inaturalist-open-data.s3.amazonaws.com/photos/49850214/square.jpeg?1567215633

3

https://inaturalist-open-data.s3.amazonaws.com/photos/52559009/square.jpg?1569549516

4

https://inaturalist-open-data.s3.amazonaws.com/photos/52559294/square.jpg?1569549815

5

https://inaturalist-open-data.s3.amazonaws.com/photos/78845922/square.jpg?1592182506

6

https://inaturalist-open-data.s3.amazonaws.com/photos/96319709/square.jpg?1600639138

0

https://inaturalist-open-data.s3.amazonaws.com/photos/48806165/square.jpeg?1566335674

1

https://inaturalist-open-data.s3.amazonaws.com/photos/49344164/square.jpeg?1566786023

2

https://inaturalist-open-data.s3.amazonaws.com/photos/52559701/square.jpg?1569550218

3

https://inaturalist-open-data.s3.amazonaws.com/photos/54264924/square.jpg?1571265088

4

https://inaturalist-open-data.s3.amazonaws.com/photos/54547932/square.jpg?1571596918

5

https://inaturalist-open-data.s3.amazonaws.com/photos/54594131/square.jpg?1571625490

6

https://inaturalist-open-data.s3.amazonaws.com/photos/55346706/square.jpg?1572489565

7

https://inaturalist-open-data.s3.amazonaws.com/photos/55346934/square.jpg?1572489984

8

https://inaturalist-open-data.s3.amazonaws.com/photos/55515734/square.jpeg?1572742855

9

https://inaturalist-open-data.s3.amazonaws.com/photos/56503601/square.jpg?1574046371

10

https://inaturalist-open-data.s3.amazonaws.com/photos/56504902/square.jpg?1574047571

11

https://inaturalist-open-data.s3.amazonaws.com/photos/92882102/square.jpg?1598912039

12

https://inaturalist-open-data.s3.amazonaws.com/photos/136801176/square.jpg?1623873471

0

https://inaturalist-open-data.s3.amazonaws.com/photos/48124306/square.jpeg?1565748760

1

https://inaturalist-open-data.s3.amazonaws.com/photos/48159752/square.jpeg?1565793478

2

https://inaturalist-open-data.s3.amazonaws.com/photos/48319003/square.jpeg?1565916918

3

https://inaturalist-open-data.s3.amazonaws.com/photos/48521409/square.jpeg?1566093350

4

https://inaturalist-open-data.s3.amazonaws.com/photos/49342221/square.jpeg?1566784672

5

https://inaturalist-open-data.s3.amazonaws.com/photos/49560865/square.jpeg?1566963934

6

https://inaturalist-open-data.s3.amazonaws.com/photos/49752383/square.jpeg?1567130076

7

https://inaturalist-open-data.s3.amazonaws.com/photos/50083779/square.jpg?1567393681

8

https://inaturalist-open-data.s3.amazonaws.com/photos/51780004/square.jpg?1568860025

9

https://inaturalist-open-data.s3.amazonaws.com/photos/52028668/square.jpg?1569088635

10

https://inaturalist-open-data.s3.amazonaws.com/photos/52077548/square.jpg?1569120015

11

https://inaturalist-open-data.s3.amazonaws.com/photos/52183412/square.jpg?1569202551

12

https://inaturalist-open-data.s3.amazonaws.com/photos/52184264/square.jpg?1569203094

13

https://inaturalist-open-data.s3.amazonaws.com/photos/52185583/square.jpg?1569203947

14

https://inaturalist-open-data.s3.amazonaws.com/photos/52185869/square.jpg?1569204105

0

https://inaturalist-open-data.s3.amazonaws.com/photos/48218124/square.jpeg?1565830102

1

https://inaturalist-open-data.s3.amazonaws.com/photos/48223841/square.jpg?1565834990

2

https://inaturalist-open-data.s3.amazonaws.com/photos/48319555/square.jpeg?1565917291

3

https://inaturalist-open-data.s3.amazonaws.com/photos/48730100/square.jpeg?1566265344

4

https://inaturalist-open-data.s3.amazonaws.com/photos/49857177/square.jpg?1567221871

5

https://inaturalist-open-data.s3.amazonaws.com/photos/52832139/square.jpg?1569804891

6

https://inaturalist-open-data.s3.amazonaws.com/photos/54339029/square.jpg?1571361584

7

https://inaturalist-open-data.s3.amazonaws.com/photos/54339531/square.jpg?1571361991

8

https://inaturalist-open-data.s3.amazonaws.com/photos/55062016/square.jpg?1572144981

9

https://inaturalist-open-data.s3.amazonaws.com/photos/55062046/square.jpg?1572145004

10

https://inaturalist-open-data.s3.amazonaws.com/photos/55062062/square.jpg?1572145015

11

https://inaturalist-open-data.s3.amazonaws.com/photos/55064140/square.jpg?1572147116

12

https://inaturalist-open-data.s3.amazonaws.com/photos/55269746/square.jpg?1572387795

13

https://inaturalist-open-data.s3.amazonaws.com/photos/55269760/square.jpg?1572387805

14

https://inaturalist-open-data.s3.amazonaws.com/photos/55270030/square.jpg?1572388080

0

https://inaturalist-open-data.s3.amazonaws.com/photos/48080548/square.jpeg?1565720202

1

https://inaturalist-open-data.s3.amazonaws.com/photos/48124581/square.jpeg?1565748980

2

https://inaturalist-open-data.s3.amazonaws.com/photos/50141814/square.jpg?1567447885

3

https://inaturalist-open-data.s3.amazonaws.com/photos/48125082/square.jpeg?1565749381

4

https://inaturalist-open-data.s3.amazonaws.com/photos/48125107/square.jpeg?1565749401

5

https://inaturalist-open-data.s3.amazonaws.com/photos/48125183/square.jpeg?1565749459

6

https://inaturalist-open-data.s3.amazonaws.com/photos/48125257/square.jpeg?1565749535

7

https://inaturalist-open-data.s3.amazonaws.com/photos/48125344/square.jpeg?1565749598

8

https://inaturalist-open-data.s3.amazonaws.com/photos/50141574/square.jpg?1567447768

9

https://inaturalist-open-data.s3.amazonaws.com/photos/48125483/square.jpeg?1565749718

10

https://inaturalist-open-data.s3.amazonaws.com/photos/48125522/square.jpeg?1565749750

11

https://inaturalist-open-data.s3.amazonaws.com/photos/48125589/square.jpeg?1565749794

12

https://inaturalist-open-data.s3.amazonaws.com/photos/48125666/square.jpeg?1565749858

13

https://inaturalist-open-data.s3.amazonaws.com/photos/48217310/square.jpeg?1565829606

14

https://inaturalist-open-data.s3.amazonaws.com/photos/48217336/square.jpeg?1565829624

0

https://inaturalist-open-data.s3.amazonaws.com/photos/48021666/square.jpeg?1565662566

1

https://inaturalist-open-data.s3.amazonaws.com/photos/48023444/square.jpg?1565663844

2

https://inaturalist-open-data.s3.amazonaws.com/photos/48023685/square.jpeg?1565664019

3

https://inaturalist-open-data.s3.amazonaws.com/photos/48124395/square.jpeg?1565748842

4

https://inaturalist-open-data.s3.amazonaws.com/photos/48124507/square.jpeg?1565748927

5

https://inaturalist-open-data.s3.amazonaws.com/photos/48125766/square.jpeg?1565749921

6

https://inaturalist-open-data.s3.amazonaws.com/photos/48160106/square.jpeg?1565793712

7

https://inaturalist-open-data.s3.amazonaws.com/photos/48160377/square.jpeg?1565793889

8

https://inaturalist-open-data.s3.amazonaws.com/photos/48216876/square.jpeg?1565829292

9

https://inaturalist-open-data.s3.amazonaws.com/photos/48216911/square.jpeg?1565829334

10

https://inaturalist-open-data.s3.amazonaws.com/photos/48218767/square.jpeg?1565830603

11

https://inaturalist-open-data.s3.amazonaws.com/photos/48219094/square.jpeg?1565830869

12

https://inaturalist-open-data.s3.amazonaws.com/photos/48290351/square.jpeg?1565898052

13

https://inaturalist-open-data.s3.amazonaws.com/photos/48315169/square.jpeg?1565914140

14

https://inaturalist-open-data.s3.amazonaws.com/photos/48315365/square.jpeg?1565914302

0

https://inaturalist-open-data.s3.amazonaws.com/photos/48134837/square.jpeg?1565759246

1

https://inaturalist-open-data.s3.amazonaws.com/photos/48159345/square.jpeg?1565793174

2

https://inaturalist-open-data.s3.amazonaws.com/photos/48159712/square.jpeg?1565793446

3

https://inaturalist-open-data.s3.amazonaws.com/photos/48222073/square.jpeg?1565833505

4

https://inaturalist-open-data.s3.amazonaws.com/photos/48222923/square.jpg?1565834245

5

https://inaturalist-open-data.s3.amazonaws.com/photos/48312291/square.jpeg?1565912151

6

https://inaturalist-open-data.s3.amazonaws.com/photos/48313531/square.jpeg?1565913013

7

https://inaturalist-open-data.s3.amazonaws.com/photos/48313764/square.jpeg?1565913146

8

https://inaturalist-open-data.s3.amazonaws.com/photos/48320735/square.jpeg?1565918311

9

https://inaturalist-open-data.s3.amazonaws.com/photos/49342819/square.jpeg?1566785107

10

https://inaturalist-open-data.s3.amazonaws.com/photos/49853715/square.jpg?1567218561

11

https://inaturalist-open-data.s3.amazonaws.com/photos/49853745/square.jpg?1567218592

12

https://inaturalist-open-data.s3.amazonaws.com/photos/49853935/square.jpg?1567218786

13

https://inaturalist-open-data.s3.amazonaws.com/photos/49854041/square.jpg?1567218895

14

https://inaturalist-open-data.s3.amazonaws.com/photos/52557684/square.jpg?1569548025

0

https://inaturalist-open-data.s3.amazonaws.com/photos/48125392/square.jpeg?1565749641

1

https://inaturalist-open-data.s3.amazonaws.com/photos/48922853/square.jpeg?1566439008

2

https://inaturalist-open-data.s3.amazonaws.com/photos/48924436/square.jpeg?1566440161

3

https://inaturalist-open-data.s3.amazonaws.com/photos/49851025/square.jpg?1567216267

4

https://inaturalist-open-data.s3.amazonaws.com/photos/54554224/square.jpeg?1571600840

5

https://inaturalist-open-data.s3.amazonaws.com/photos/55515411/square.jpeg?1572742529

6

https://inaturalist-open-data.s3.amazonaws.com/photos/137018298/square.jpg?1623961270

0

https://inaturalist-open-data.s3.amazonaws.com/photos/47956314/square.jpeg?1565623377

1

https://inaturalist-open-data.s3.amazonaws.com/photos/47956594/square.jpeg?1565623542

2

https://inaturalist-open-data.s3.amazonaws.com/photos/47956848/square.jpeg?1565623709

3

https://inaturalist-open-data.s3.amazonaws.com/photos/47957018/square.jpeg?1565623831

4

https://inaturalist-open-data.s3.amazonaws.com/photos/47960898/square.jpeg?1565626175

5

https://inaturalist-open-data.s3.amazonaws.com/photos/47957319/square.jpeg?1565624048

6

https://inaturalist-open-data.s3.amazonaws.com/photos/47960436/square.jpeg?1565625910

7

https://inaturalist-open-data.s3.amazonaws.com/photos/47957474/square.jpeg?1565624160

8

https://inaturalist-open-data.s3.amazonaws.com/photos/47960945/square.jpeg?1565626207

9

https://inaturalist-open-data.s3.amazonaws.com/photos/47957975/square.jpeg?1565624459

10

https://inaturalist-open-data.s3.amazonaws.com/photos/47958478/square.jpeg?1565624818

11

https://inaturalist-open-data.s3.amazonaws.com/photos/47958639/square.jpeg?1565624925

12

https://inaturalist-open-data.s3.amazonaws.com/photos/47958719/square.jpeg?1565624971

13

https://inaturalist-open-data.s3.amazonaws.com/photos/47958950/square.jpeg?1565625088

14

https://inaturalist-open-data.s3.amazonaws.com/photos/48019864/square.jpeg?1565661460

0

https://inaturalist-open-data.s3.amazonaws.com/photos/48315051/square.jpeg?1565914030

1

https://inaturalist-open-data.s3.amazonaws.com/photos/48321248/square.jpeg?1565918692

2

https://inaturalist-open-data.s3.amazonaws.com/photos/54346170/square.jpg?1571370067

3

https://inaturalist-open-data.s3.amazonaws.com/photos/54549403/square.jpg?1571597879

4

https://inaturalist-open-data.s3.amazonaws.com/photos/54684907/square.jpg?1571717587

5

https://inaturalist-open-data.s3.amazonaws.com/photos/54684919/square.jpg?1571717600

6

https://inaturalist-open-data.s3.amazonaws.com/photos/54685193/square.jpg?1571717917

7

https://inaturalist-open-data.s3.amazonaws.com/photos/55515275/square.jpeg?1572742383

8

https://inaturalist-open-data.s3.amazonaws.com/photos/76926111/square.jpg?1591307571

0

https://inaturalist-open-data.s3.amazonaws.com/photos/48291915/square.jpeg?1565898870

1

https://inaturalist-open-data.s3.amazonaws.com/photos/54336097/square.jpg?1571358554

2

https://inaturalist-open-data.s3.amazonaws.com/photos/54336693/square.jpg?1571359223

3

https://inaturalist-open-data.s3.amazonaws.com/photos/54336768/square.jpg?1571359283

4

https://inaturalist-open-data.s3.amazonaws.com/photos/56481713/square.jpg?1574026894

5

https://inaturalist-open-data.s3.amazonaws.com/photos/57485214/square.jpg?1575524333

Observation histogram

Another useful format is the observation histogram, which shows the number of observations over a given interval.

The default is month_of_year, which will show counts of all your observations by month, for all years combined:

[12]:
histogram = get_observation_histogram(user_id=USERNAME)
print(histogram)
{1: 8, 2: 1, 3: 19, 4: 26, 5: 32, 6: 59, 7: 14, 8: 402, 9: 92, 10: 65, 11: 23, 12: 6}

Another option is week:

[13]:
histogram = get_observation_histogram(user_id=USERNAME, interval='week')

# Print just the most recent 10 weeks
for date, count in list(histogram.items())[-10:]:
    print(f'{date}: {count}')
2021-04-19 00:00:00: 5
2021-04-26 00:00:00: 0
2021-05-03 00:00:00: 0
2021-05-10 00:00:00: 1
2021-05-17 00:00:00: 0
2021-05-24 00:00:00: 0
2021-05-31 00:00:00: 0
2021-06-07 00:00:00: 1
2021-06-14 00:00:00: 7
2021-06-21 00:00:00: 12

Or month:

[14]:
histogram = get_observation_histogram(user_id=USERNAME, interval='month')

# Print just the most recent 12 months
for date, count in list(histogram.items())[-12:]:
    print(f'{date}: {count}')
2020-07-01 00:00:00: 12
2020-08-01 00:00:00: 8
2020-09-01 00:00:00: 8
2020-10-01 00:00:00: 1
2020-11-01 00:00:00: 1
2020-12-01 00:00:00: 0
2021-01-01 00:00:00: 1
2021-02-01 00:00:00: 0
2021-03-01 00:00:00: 3
2021-04-01 00:00:00: 17
2021-05-01 00:00:00: 1
2021-06-01 00:00:00: 20