Saving the camera settings of a shot in the exif data of the scans
Analog photography metadata
For decades (centuries?) photographers have been writing their camera settings for each shot on a notebook to learn and train their eye, to organise their shots or because they are data-freaks. Today, you could still make notes by hand or use a dedicated smartphone app or you could be the proud owner of a more modern film camera that saves the shot data on a memory card.
Once the film developed, by yourself or a lab, and scanned, by yourself or a lab, the scans you get do not have the information of the original shots. These data are on paper, on a smartphone or on a memory card.
I downloaded the Analog app for my smartphone, because it is free, does not collect user data, it’s lightweight and I loved the design, and I began saving the settings for each shot. Data was accumulating but I was not seeing how to get it out yet.
A digital camera would take the picture and save the settings inside the jpg or tiff files in exif data. I want the same thing for my scans!
And how to get these data in the exif fields of the scans? Well surprisingly, it’s not as straightforward as you (I) would expect. At first I did not find anything satisfying and discussing with the developers behind Analog made it clear that it was not a straightforward task for them either. We talked about workflow.
The team were encouraging amateur and professional photographers to rename their files, well their scans, following this convention to save the settings of each shot. Then they developed Analog which of course allows users to save Shutter speed, Aperture, the lens’ focal length and exposure correction. At the end of the roll, the data is extracted and the user receives a list of name files by email:
Test roll_NO01_SS50_A2.8_FL50_EX0 Test roll_NO02_SS50_A2.8_FL50_EX0 Test roll_NO03_SS125_A4_FL50_EX0 Test roll_NO04_SS125_A4_FL50_EX0
They hand-rename the scans or use a renaming software. OK. but this does not go inside the files, a file name is not an ideal way of storing data even when using the standardised convention they created: NOSSAFLEX
It’s as easy as the name – NOSSAFLEX has all of the information in the title.
NO = Number SS = Shutter Speed A = Aperture FL = Focal Length EX = Exposure
I could not find a way to automatically save the data on my phone to the exif slots of my scans…
So I decided to create an R package to do it! An exciting weekend project and certainly an article for the blog!
Since I was already using the Analog app, I had to follow its data structure.
Update! Since then I used additional apps and expanded the package.
Here is the README of my package
Analog Photography MetaData
The APMD package is the entry of the NOSSAFLEX file naming convention into the R universe to help scientific, professional or amateur photographers to name their picture files consistently and informatively.
When taking a picture with an analog camera, data such as aperture, shutter speed or focal length are not automatically saved the way they are in a digital camera. Many photographers write down these precious metadata in a notebook, we want to help them improve their workflow and data quality.
What is NOSSAFLEX?
Here is an explanation from the creators:
It’s as easy as the name – NOSSAFLEX has all of the information in the title.
NO = Number SS = Shutter Speed A = Aperture FL = Focal Length EX = Exposure
NOSSAFLEX file names looks like this: NO03_SS250_A8_FL80_EX0.jpg or this: NO34_SS30_A2.8_FL35_EX+1.tiff!
Learn more on their website or on their Youtube channel.
The package
Here are the main functions in the package:
renaming_nossaflexbatch-renames picture files from uninformativeDSC_00345.jpgto information-rich NOSSAFLEX name based on data provided by the user, see {analog} section:NO03_SS250_A8_FL80_EX0.jpg.parsing_jsonandparsing_framesparse data in JSON format as exported by the analog™ app and Frames™ app respectively.editing_exifbatch-saves the metadata of the pictures into the exif slots of the scan files (jpg, tiff, etc).
Analog™, Datafilm™, Frames™ or an other app
The workflow
Installation
You can install the development version of APMD from GitHub with:
remotes::install_github("AlbanSagouis/APMD")Usage
Renaming files
This is a basic example which shows you how to solve a common problem:
library(APMD)
files <- c("Pictures/2024/01 02 Winter in Berlin/DSC_001034",
"Pictures/2024/01 02 Winter in Berlin/DSC_001035",
"Pictures/2024/01 02 Winter in Berlin/DSC_001036")
filenames <- reading_nossaflex(path = "path_to_the_filenames.txt") # provided by the `analog` app
renaming_nossaflex(filenames = filenames, files = files)Saving exif data
Additionally you may want to safely save the shots metadata inside the scan files:
metadata <- reading_nossaflex(path = "path_to_the_filenames.txt") |> # provided by the `analog` app
parsing_nossaflex()
editing_exif(files, metadata)