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

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