Understanding and exporting annotations

Some of you may be aware of the Harmful Algal Bloom currently occurring here in South Australia. A Project has been created to collect obs of affected animals - https://inaturalist.ala.org.au/observations?project_id=238172.
Automated additions to the Project require the ‘Dead or Alive’ Annotation attribute on the observation page to be set to ‘dead’.
When exporting observations (from the Explore area), a ‘field’ called ‘dead or alive’ can be selected however this is not the Annotation attribute.
And I couldn’t find any selection in the export page that would show this (or any of the other) Annotations available.
I’d like to a) understand the difference between the two ‘dead/alive’ settings and b) be able to select annotation attributes for inclusion in an export.
Thanks!

The one that you can currently export is called an Observation Field. These are user created and are sort of a “wild west” situation, with duplicates and misspellings and abandoned fields, etc.

You can think of Annotations as “official” versions of some very specific observation fields. They are standardized, translated, etc. But they’re unfortunately not downloadable from the Export page (see https://forum.inaturalist.org/t/data-users-what-are-your-use-cases-and-requests-for-exporting-data/2972 and some of the topics linked from it for further information).

If all the observations must already have the Dead annotation, I’m a bit confused why you would want that particular annotation in the export file?

1 Like

I believe the best way to download observations with a particular annotation would be to go to the Explore page, edit the URL to filter your search results to only observations with a particular annotation, then click on the ‘Filters’ box and click ‘Download’ in the bottom right corner of the filters menu.

To filter for observations with annotation values set to ‘dead’, you would add this to the end of your URL:
&term_id=17&term_value_id=19

So that your full URL would look like something like this:
https://www.inaturalist.org/observations?project_id=238172&term_id=17&term_value_id=19

To filter for observations with annotation values set to ‘alive’, you would add this to the end of your URL:
&term_id=17&term_value_id=18

To my knowledge, the downloaded file will not have a column with the annotation value. You will want to create a column and fill in the annotation value yourself. I think you can only do this for one annotation value at a time. So if you want observations annotated as Alive and observations annotated as Dead, it would be best to download them separately, add a column to each file and fill it with either ‘Dead’ or ‘Alive,’ then combine the two files.

Another way to do this would be to download the observations through GBIF, in which you can filter by annotation values and in which downloaded data has columns for each annotation value. However, not all iNat observations make it to GBIF and it takes some time for eligible iNat observations to sync with GBIF.

Edit: here is a table of all the term IDs for different annotation values, which you would use to edit the URL to filter for a particular annotation. I am not the first person to make something like this, but I didn’t want to go digging around the forum to find where this has already been written out.

Column 1 Column 2 Column 3 Column 4
Annotation TermID Value TermID
Life Stage 1 Adult 2
Life Stage 1 Teneral 3
Life Stage 1 Pupa 4
Life Stage 1 Nymph 5
Life Stage 1 Larva 6
Life Stage 1 Egg 7
Life Stage 1 Juvenile 8
Life Stage 1 Subimago 16
Sex 9 Female 10
Sex 9 Male 11
Sex 9 Cannot Be Determined 20
Flowers and Fruits 12 Flowers 13
Flowers and Fruits 12 Fruits or Seeds 14
Flowers and Fruits 12 Flower Buds 15
Flowers and Fruits 12 No Flowers or Fruits 21
Alive or Dead 17 Alive 18
Alive or Dead 17 Dead 19
Alive or Dead 17 Cannot Be Determined 20
Evidence of Presence 22 Feather 23
Evidence of Presence 22 Organism 24
Evidence of Presence 22 Scat 25
Evidence of Presence 22 Track 26
Evidence of Presence 22 Bone 27
Evidence of Presence 22 Molt 28
Evidence of Presence 22 Gall 29
Evidence of Presence 22 Egg 30
Evidence of Presence 22 Hair 31
Evidence of Presence 22 Leafmine 32
Evidence of Presence 22 Construction 35
Established 33 Not Established 34
Leaves 36 Breaking Leaf Buds 37
Leaves 36 Green Leaves 38
Leaves 36 Colored Leaves 39
Leaves 36 No Live Leaves 40

yes, you can assume that any observations in such a project are annotated as Dead.

i would just add that some observation fields (such as “Dead or Alive”) are linked to specific annotations. if you were to add the observation field “Dead or Alive” with the value “dead” to your observation, that would automatically add an “Alive or Dead = Dead” annotation. similarly, deleting that observation field would remove the annotation. Adding the annotation does not add an observation field though.

it’s also worth noting that annotations the voting mechanism. so even if someone annotates an observation as, say, “Dead”, another person could come along and downvote the annotation. if the net votes for a particular annotation value (including the original annotation) <=0, then that particular observation would be ignored when someone filters observations by that annotation value. (it would also drop out of your project.)

if doing this sort of thing, i would download all observations first, and then separately download a set filtered for each annotation value i’m interested in. then use those subsets to populate a column (or multiple columns) in the “allt” set. (this is the easiest way to make sure you’re also capturing unannotated observations, when they exist.)

but for a set that is only ~15000 observations, it’s also possible to just get the observations via the API and parse out the annotations and observation fields you’re interested in. (i have a Juptyer notebook that could be adapted for this: https://jumear.github.io/stirpy/lab?path=iNat_APIv1_get_observations.ipynb, but there are lots of other ways to get this information, too.)

1 Like

Thanks for that … :grinning_face:
The exercise I did was to search within a boundary for various taxons to find a) obs where the ‘dead’ flag had not been set for a deceased animal, and b) duplicate observations. The second issue has arisen because the community has been ‘activated’ to record dead marine creatures affected by the HAB.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.