Converting Life List Taxonomy Export into Lightroom Keyword Hierarchy

Hello everyone!

As mentioned in my most recent posts, I am trying to create a taxonomic Lightroom keyword hierarchy to properly tag and identify my biodiversity photos on my own archive. I’ve done it by hand for some groups, but would like to fasten the process for the most diverse groups (insects, fungi and plants, mainly). A brief explanation of the different approaches I’ve taken:

  • First, I tagged my photos according to each of the big taxonomic groups iNaturalist uses (AMphibia, Reptilia, Mammalia, Aves, Actinopterygii, Fungi, Plantae, etc).
  • I tackled each of the iNaturalist “main” groups individually. Started with Birds, then some of the ones I photographed less (Fish, Amphibia, etc).
  • After this, I took different approaches to each group.
  1. My first approach for some groups was to first create a tag with the scientific name. After all photos were identified with the “Big Group” and with teh “Scientific Name”, I created the taxonomic hierarchy in keywords, and then dragged each “Scientific Name” tag inside its proper place. This approach is very time consuming.

  2. Second approach was to download the taxonomy for a given group (did it first with Mollusca) from my Dynamic Life List page. The export file is a csv, from which I extracted the columns “name” and rank”. Pasting this into a txt file, I manually edited it in Notepad++ by entering tabulations, in order to create a taxonomic arrangement that could be read by Lightroom’s keyword import. The result would be something like this:

    Although faster than workflow 1,the tabulation insertion is still time consuming, so I’m looking for a new approach.

  3. Workflow 3: Is there a way to automatically convert the csv export from the Life List page into a Lightroom keyword hierarchy like the one on the image? Due to the different number of sublevels in each taxonomic level, it is not easy to apply a “one rule fits all” method to insert the tabulations. For instance, not all “species” keywords have the same number of tabulations before them. Some come after Kingdom>Phylum>Class>Order>Family>Genus>Species, but others would require Kingdom>Phylum>Class>Subclass>Order>Superfamily>Family>Tribe>Genus>Species and so on

Does anyone have an idea on how to solve this? Thanks a lot in advance!

this thread is a continuation of https://forum.inaturalist.org/t/is-it-possible-to-be-notified-whenever-any-taxonomic-change-occurs-on-one-of-my-observed-species/72690

Yes, in a way. Given that it was a bit more technical, and about a specific process, I decided to create a new post

if you’re trying to prefix a certain number of tabs to each taxon, and you don’t know how to write code to do that based on a parent-child data, and you have or don’t know how to use other tools to accomplish that, and you don’t want to ask a chatbot to parse that for you, then maybe you can start with my page to get your life list: https://jumear.github.io/stirfry/iNat_observations_taxonomy?user_id=joaolemoslima&options=ancestry.

you can count the number of delimiters in the ancestry tab, or count the number of characters in the tree column, and use that as the basis for the number of tabs to prefix.

Just managed to solve it, with a big help from your page and a little help from Gemini (to code it, I really should invest my free time into learning how to code in Python).
One question, would it be possible to do the same thing for a geographic range? Say, the full taxonomic arrangement of everything observed in Europe? From what I remember, the API has a limit of entries it returns, correct?

Once again, thank you for your help!

you can try running the page with whatever parameters the API will accept. but there are a lot of taxa in Europe, and web pages aren’t really designed to display tables with tons of information, without implementing some special tricks which i haven’t in my page. the API itself will probably return the information just fine, but then you’ll need to implement your own code to parse the parent-child dataset.

1 Like