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: 15a4eef84a264770bf1f00d54926b76a

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