Display the user's first identification in the observations.json and project CSV export data

This would be helpful for at least me, and I expect others using iNaturalist with students.

As a (university) teacher using iNaturalist with students, I like to see what first identification a student made, as well as the community ID for an observation. For example, in a first year course we ask students to provide at least the Order ID on their insect observations, both to help get the iNat IDs started and to practice their Order-level ID skills.

At the moment, I don’t get this first user ID when I use the project CSV download, nor with the observations.json data (accessed with the R package rinat). There’s the “species_guess” column but that seems to contain the first ID at a taxonomic level lower than order made by any user.

For small classes, I can manually browse through each student’s observations to find their IDs, but that doesn’t scale up to larger classes.

How easy would it be to add this user ID to these outputs?

Does anyone have another way to access this in bulk for their classes?

Don’t forget to vote for your own request!

2 Likes

rinat hits the old (deprecated) API and seems to no longer be actively supported. you’re probably better off using the current API (http://api.inaturalist.org/v1/docs/#!/Observations/get_observations) directly, which will give you all the details of the identifications associated with a given observation.

there’s also this, which i haven’t looked at in depth myself, but might offer an easier way to access the current API:

if you want to change the CSV export, you probably should make that known over here rather than in a separate request.: https://forum.inaturalist.org/t/data-users-what-are-your-use-cases-and-requests-for-exporting-data/2972.

i don’t fully understand your use case. do you actually need the data laid out in a table format, or are you just trying to see the ids on observations without having to go into each individual observation one by one?

4 Likes

Thanks @pisum. That’s very helpful. I’d missed that thread on CSV exports. I’ll start by checking out hanly’s R package and see if that will do the trick.

I’m looking for a quick way to find all the observations where either no ID was made by the student, or where the student’s ID ended up being incorrect (i.e., different to the community ID). I could then load up those observations and have a closer look and add comments to help them.

1 Like

Thanks again @pisum. This will work.

The iNatTools package by @hanly produces a much more data-rich export than the iNat website and the old rinat package.

Among other things, it includes a list called identifications with every consecutive ID made on an observation, including the column “own_observation” which flags whether an ID was by the user who made the observation or someone else. Also, there’s the column vision==TRUE (the ID came from the Computer Vision), which is also a useful thing to know. The nested taxon.ancestry column for each ID will also make it easy to see if the first ID is a higher taxon containing subsequent IDs (or vice versa).

So, spot on!

3 Likes

To give more details, in this case I was after the observations from our Garden Invertebrate Hunt project (project ID 72438). Here’s my initial R code to access the observations:

# downloading all of the observations from the traditional project, Garden Invertebrate Hunt (project ID = 72438)
# using the iNatTools package by https://inaturalist.org/people/hanly

install.packages(“remotes”)
library(remotes)
install_github(“pjhanly/iNatTools”)
library(iNatTools)

# download all of the obseravtions from project 72438
inverts ← iNat (project_id = 72438) # be patient, it’s slow and doesn’t display its progress
names (inverts) # look at all of the column names
# str(inverts) # look at the complete structure of the data (note that it contains lots of list objects)

# have a closer look at the identifications list for observation 1. There are lots of useful details in here.
inverts$identifications[1]

# all of the observation field values are in the list ofvs. Here they are for the first observation:
inverts$ofvs[1]

4 Likes

Can I close this request then, Jon?

Yes, please do.

2 Likes