Photographs' metadata: which specific (eg. exif) fields get checked during photographs' upload please?

A question for iNat staff please.

When adding new iNat observations of photographs,
iNat checks the photographs for their metadata (eg. Exif?, IPTC?, XMP?, etc.).

Well known is that the observation uploader checks for the:

  • date and time each photograph was made (of course), the first uploaded photograph for that observation automatically providing that observation’s date–time.
  • latitude and longitude coordinates (commonly from GPS), thus setting the observation’s location automatically to the coordinates of its first uploaded photograph with coordinates.

Alluded to in a few topics here in the iNatForum, is that the observation uploader checks photographs’ other metadata for taxonomy names matching iNat’s taxonomy,
to add as the identification of the organism
(using the taxonomically most finely resolved matching name (lowest rank) it finds in the metadata).

Specifically which photographs’ metadata fields does iNat search please?
In a listing please?

I have ca. 13,000 photographs of plants, animals and fungi, with my own custom metadata added to them over the last 10 years,
including species and taxonomic family,
phenology observations including:
flowering, fruiting, new growth, seedling germination, sapling life stage, stag (dead) tree life stage;
feeding, hunting, mating, birthing, metamorphosing, moulting, laying eggs, sleeping, soaring, swimming, etc.;
dispersing offspring (in action, eg. seeds floating on the wind out from capsules on a tree, baby turtles digging out of the beach sand nest and clambering down the beach to the ocean, young birds’ first flights out of the nest, etc.),
interactions between flora, fauna and fungi,
and so on.

Further more, occasionally I have more freeform notes in metadata fields such as UserComments, which directly within some cameras’ interfaces we can add to the photograph after making it.

For my purposes, if iNat checks some metadata fields and not others,
I can bulk transfer my metadata from the existing fields I use into the fields iNat checks.

Doing this before I upload will make all these observations automatically receive my pre-existing identifications,
and include my phenology information at least in observation notes, if iNat’s not currently set up to import that directly into phenology annotations.

I understand this information from iNat staff will have a lot of use amongst many iNat users.

Sincerely,
Jason.

Related:

2 Likes

Tony @tiwane Iwane ?

it looks like iNat gets all image metadata tags, except those from a selected list: https://github.com/inaturalist/inaturalist/blob/main/lib/exif_metadata.rb#L5-L30

then it translates certain tags to fields in the observation:
https://github.com/inaturalist/inaturalist/blob/main/app/models/local_photo.rb#L323-L410

it looks like the translations include:

  • coordinates (from gps_latitude and gps_longitude, making use of information from gps_latitude_ref and gps_longitude_ref)
  • positioning error (from gps_h_positioning_error)
  • observation time (from date_time_original or date_time_digitized)
  • taxon (from subject tags or dc:title)
  • observation description / notes (from dc:description or image_description)
  • observation fields (from subject tags)
  • observation tags (from subject tags)

here’s a post that describes an example of one person’s tags and how they were translated (including taxon and observation fields): https://forum.inaturalist.org/t/web-uploader-not-recognizing-scientific-binomials-or-gps-data-in-photo-metadata/37243/7

it didn’t turn up in my quick code search, and i didn’t test it, but i think certain subject tags that match certain terms (https://github.com/inaturalist/inaturalist/blob/main/app/models/controlled_term.rb#L47-L65) will also get turned into observation fields, even if you don’t use the [observation field name]=[observation field value] syntax.

also, i didn’t get super deep into the code, but superficially, it looks to me like the subject tags can come from both the image metadata and the image filename. so as a result, you should be able to set, say taxon name, by adding it as an underscore-separated value in the filename. (or maybe there’s a separate mechanism for that functionality.)

3 Likes

Thank you for this solid, valuable information, much closer to reaching the information I need, yet thinking of everybody’s needs for this information in readily accessible tutorial write–up form.
I may have to dig into the GitHub code pages myself when and if I have any spare time for it.

1 Like

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