Consensus ID versus Research Grade

When I have keyed out some plant that is new to me, I often jump on iNat to get images that others have supplied of the plant. These are often better than the ones on CalFlora or other older databases. In order to screen out nonsense I usually filter by “research grade.” But that eliminates excellent “casual grade” examples that are “captive” or “planted” for example in botanical gardens. The specific example that got me going on this was a Ponderosa Pine that seems to have been used in landscaping in New Zealand. There was no label on the plant of course.

Is there a way to filter for images that are supported by at least “two thirds” or more community id’s? AND include putative cultivated or planted examples?


If you have a specific observation, you can search for that observation (by number) to add photos to a species page. My first thought on how to do address your issue would be to just search for observations with specific filters/URLs, and once you’ve found an observation you like, search for it manually on the photo search. The only problem is that I don’t know how to set up a search that specifically gets what you’re looking for. It would be close to get just RG and casual (i.e. without Needs ID), but I can’t figure that out either. I don’t think it’s possible to directly exclude specific quality grades (see this thread), or add more than one with an “or” function. You could just look through two separate searches of RG observations and Casual observations separately. That still wouldn’t help you restrict casual to observations to ones that had confirming IDs. I’m not sure if this is possible either, but if you could search for Community Taxon only (see this feature request), that might be possible. Then you could essentially exclude observations with just one ID (i.e. had no Community Taxon). Or searching by the number of IDs would work, but that’s also not possible. I guess this isn’t super helpful—just listing of a bunch of potential feature requests. :)

Thank you. I am not sure I have solved my problem yet, but I learned from your links! For me, the RG + (Casual - Needs ID) would probably do it.

You could do a data download and put the information in a spreadsheet. Select the fields you want, but be sure to include number of agreements, number of disagreements and URL. Then you can sort both the number of agreement and number of disagreement to get the records you want. Then you can click (or cut and paste) the URL. Not very convenient but doable.

i don’t think there’s a straightforward way for regular users to do this. it’s easy enough to find verifiable observations that meet the “two thirds” rule, since you can filter for research grade in the Explore page. so then for the rest of this post, let’s focus on how to do something similar for just non-verifiable (aka casual) observations…

community taxon is complicated to calculate on your own. number of agreements and disagreements don’t always mean what you would expect them to mean in every context. however, the iNat API observation search endpoint does provide each observation’s community id, which you can compare against the observation taxon. the endpoint also provides many options for filtering. besides the obvious parameters, there’s a identifications=some_agree/most_agree parameter (not available in the Explore page, as far as i can tell) which will effectively help to filter cases where there at least 2 identifications (in this use case). so for non-verifiable records at a species level, filtering with that parameter will get you really close to your intended result, and the Obs taxon = Community taxon comparison will get you the rest of the way.

it’s not super straightforward to parse through the response from this endpoint without some coding. so if you’re not a coder, you can use a page that i made to present the results in a human-friendly format. use the option below whose parameters look closer to what you prefer (captive only vs any casual), and then look for cases where the value in the Obs Taxon = Community Taxon column is true.

… and here’s another variation that might be useful (casual + research grade, with an extra column that displays photo URLs):,casual&photos=true&identifications=some_agree&options=idextra,photourl


Thanks! If a broadly defined data download is possible, then that’s the way to go. If one would have to do that download for every new plant instance then yes, it would be cumbersome.

Sweet! The first one does what I want! I just tried it with Coffeeberry and it performed just as it should. I will look at the others too, but I’m impressed and grateful. May I display that github link on my profile page? That’s where I keep my “tools.”


sure. of course. glad it helps.


I’ve modified this to
in order to try to use it to find captive observations which don’t actually need ID.

I notice reviewed=false doesn’t do anything on this link. Is there anyway to modify it to display stuff I haven’t seen? &without_ident_user_id=arboretum_amy does an okay job but there are things in there I reviewed without IDing.

i think because the API request is not authenticated with your login, the reviewed parameter needs to be invoked in conjunction with a viewer_id parameter (which is looking for a numeric user id). compare:

How do I find out my numeric ID?

if you’re at a computer with a mouse or other pointing device, you can hover over your icon on the top-right corner of the webpage, and then hover over profile. then look at the link where that profile will take you. that will show your ID as the last part of the URL.

just for convenience, i think this is what you were trying to review:

1 Like

Thank you!

1 Like

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