Closed synrg closed 2 months ago
This is implemented so far as a command-specific option in ,life
which searches life lists (not exclusively user life lists: they can be produced with any filters that ,tab
supports). However, this means we still lack the ability to browse taxa that have not been observed. To do that would require some modifications to the code we did for life lists to support input of taxa from the /v1/taxa
endpoint as described above.
This is implemented so far as a command-specific option in
,life
which searches life lists (not exclusively user life lists: they can be produced with any filters that,tab
supports). However, this means we still lack the ability to browse taxa that have not been observed. To do that would require some modifications to the code we did for life lists to support input of taxa from the/v1/taxa
endpoint as described above.
The recently added ,taxon list
command now provides this second part.
It's worth noting, though, that the two commands would need to be done separately for the Platyhelminthes family review use case: because ,life
operates on observations but ,t list
does not, only the former can be used to "systematically browse through observations of flatworms with decent photos". This command would start you at the level of families that are popular, sorting by ones with more observations first:
,life Platyhelminthes faves per family sort by obs
Then to fill in the gaps, you can list families with no observations with a taxon list with an ascending sort by obs:
,t list Platyhelminthes per family sort by obs
All families will be listed, including any without faves, and also 0-observation families.
Group results per family or other taxonomic rank, as in
,tab birds from home faves per family
. See also otherper
issues #128 #130 #162.I think it would be good to support such groupings not only for
,tab
but maybe more usefully for the recently updated,search obs
feature which can produce results that are too numerous to page through one page at a time. A way this might be implemented is by having the pager list the individual families and counts for them, and then when selected via ✅ it navigates to the paged per-observation view. Reacting with :x: would return back to the per-family view again.This idea came out of a discussion with
@sumie-dh
on iNaturalist Discord who more generally wished for a way to do this (i.e. not specifically with Dronefly) to systematically browse through observations of flatworms with decent photos.An approximation of what we want that can be done on the webapp is to do a search with
&lrank=family
and browse through each family in the species tab: https://www.inaturalist.org/observations?locale=en&lrank=family&popular&subview=map&taxon_id=52319&view=species But unfortunately, this falls short of delivering what was asked for because it only shows observations at rank family, and not also observations at ranks lower than that within the same family. So it seems there is no way to actually meet this need on the web, short of enumerating all of the families within the flatworms phylum Platyhelminthes, and then doing a search of each individual family.Indeed, such enumeration is not easy on the webapp because their taxon browser is strictly hierarchical, with only one branch of the tree open to a given level at a time. Thus it is tedious to open tabs in one's web browser for each and every family within a taxon, as it involves a lot of navigating down and back up each branch of the tree. There's no simple way that I can find to produce a flat list of taxa within a phylum, or at least show them all on one page, with the exception being the new lifelist display. The lifelist, however, operates on one user's observations and is not suitable for viewing the whole iNaturalist dataset.
The API, however, makes this easy with
/v1/taxa?taxon_id=52319&rank=family
. That produces the input we need to make a paged view of all families. From there, the 2nd level pager could keep generating observations within that grouping until it ran out, and then could continue generating observations from the next one, and so on, until it reached the end.