Outdoor Photography and Videography

Tobi Wulff Photography

Home / Essays / 2015 / September / Photo Management Workflow in Linux

Photo Management Workflow in Linux

Ever since I started taking RAW photographs and developing them on my computer, I put a lot of thought ("obsessing over") into how I want to organize my workflow and in particular how to structure my files.

Many photographers might start by simply dumping all their pictures into a folder for each trip or shoot, hopefully ordered by date. If your folder names do not start with YYYY-MM-DD you're going to have a hard time quickly finding and grabbing your photos with a file manager - on the other hand, photo management software can simply use the date and time in the EXIF data to sort and find digital assets. However, what can happen if you take that approach is that you lock yourself into one specific workflow with one specific application.

Apart from that, one folder sounds fine, after all, different files for different purposes have different file extensions: RAW as the original ("digital negative") that never gets modified, XMP sidecar files that store additional metadata and RAW processing steps, XCF/PSD work-in-progress editing files, and finally JPEGs. Nevertheless, I keep my JPEGs and my RAWs in different folders so that I can quickly copy all the JPEGs to an external device to show them to other people. Having to go through the export functionality of a photo management tool would complicate this process unnecessarily.

A great video to watch is Chase Jarvis' TECH blog post and video on his company's workflow, and if you've got some extra time to kill: Chase Jarvis LIVE Q&A on workflow which goes into much more useful detail (but also rambles on about less important stuff from time to time). There is a lot of solid advice from highly successful professionals in there but it can easily be applied to your personal needs by scaling it down a notch. After all, most of what they do still applies to one-man-bands and enthusiasts:

  • Use redundant hardware to prevent data loss due to technical failures
  • Backup regularly and off-site to prevent data loss due to theft or human error
  • Have a standardized workflow so that all your folders are organized consistently
  • Tag and rate to find photos once you've accumulated thousands

Requirements

Availability

I want to be able to quickly get to my photos and show them to someone or copy them to a USB flash drive without having to go through my photo management software. By having separate folders for each photo shoot sorted by date and within those separate folders for each file type ("digital negative", 'developed photos", "project files"), I can always use the CLI or a file manager to get exactly the files I want without reading their EXIF etc data.

Interoperability

Interoperability might not be very important if you know that you will always use one specific program and that you can rely on this program being available, up-to-date and meeting your needs for many years to come (we are talking potentially decades here). Personally, I wouldn't put that much trust into it, and while proprietary photography applications have a slightly better track record than something like MS Office, keep in mind that things might still change very suddenly and your favorite program might not meet your requirements anymore or work in a very different, non-backwards compatible way (like when FCPX came out).

My photo management program of choice, digikam, relies on my own file system structure of my albums, and displays them basically exactly like they are stored on disk. However, it can also browse all photos by date, tag, rating, etc. This way, I can quickly search and filter for specific criteria, or just browse my albums as they are stored in folders. For much, much more information on digikam I highly recommend the eBook digikam recipes which is easily worth the little money it costs if you're looking into using Linux for your photography workflow.

Backups

I don't want to rely solely on my photo management program to do the backups. This is another reason why I started this blog post and my workflow considerations with a sane and well organized file system structure: any backup program will be able to grab those files (all of them or a subset) and copy them somewhere else doing full, incremental and differential backups. Restoring them is also easier if the photo or photo shoot in question can be found quickly.

I will talk more about my backup strategy and how I've implemented it (including tools around rsync and btrfs) in a future blog post.

Personal Workflow

My personal directory structure which reflects most of the workflow:

  • It starts with a folder for the YEAR (e.g. 2014),
  • within each year I have a sub folder DATE_PROJECT/TRIP (e.g. 2015-09-30_Trip_Location),
  • if there are a lot of photos: DAY (full date) or other categorization (e.g. by camera, sub-project, etc)
  • Further sub folders based on workflow (see below)
  • File names are usually DATE_TIMESTAMP (with suffix _1, _2 etc if multiple photos have the same timestamp). I've also seen many people keep the camera's original file name but add date and time at the front. Personally, I don't see any point in keeping the camera's numbering scheme - it doesn't convey any useful information apart from avoiding duplicates if date/time are the same.
These are the sub folders that I use to organize the files within each shoot:
  • jpg: final JPEGs, often straight from camera and the ones developed by myself; I want all the final pictures in one folder so I can browse them easily
  • orf: my current camera's (Olympus) RAW files
  • liveworks: contains RAW files and their XMP sidecars

This covers 95% of my usual projects which are trips or events with lots of out-of-camera JPEGs and a few jewels I want to work on from RAW. These are the ones you see show up in my portfolio. I usually don't have HDR, panorama or other composite shots but if I need a place for them I would put them in a new folder in liveworks. JPEGs that get a final touch-up in GIMP also go into a new "edit" folder.

There is also a discussion to be had about whether to keep developed files or not. While it should always be possible and easy to get to any photo - if developed: from RAW plus sidecar, if edited: from GIMP's XCF- it also makes it quite difficult to quickly access the final image, or the one I uploaded to my website because I also want to publish it somewhere else, or the one I adjusted for printing. Therefore, I keep all the final images around in the "jpg" folder and name them using a flexible system of suffixes. Basically, there is no strict system as long as it is clear what the image and its intention are. It is nice to have the final image appear first in alphanumerical sorting order. Here are some examples:

  • DATE_TIMESTAMP_final_no_wm.jpg: final image (this is usually the final photo, the way I like it most, no watermark therefore not directly for publishing,
  • DATE_TIMESTAMP_final_wm.jpg: same as above but with a watermark/signature and therefore suitable for publishing,
  • DATE_TIMESTAMP_bw.jpg: a black and white version of the photo if I feel like both versions, color and monochrome, work well,
  • DATE_TIMESTAMP_Ax.jpg: image in A format for printing on A4, A3, etc,
  • DATE_TIMESTAMP_dark.jpg or _bright.jpg: different exposures from the final image if they are worth keeping, for instance if it gives the image a different atmosphere,
  • no suffix at all usually means the jpg comes straight out of the camera.

Digikam and most other photo management software can group images. When I keep all developed and processed JPEGs in one folder, I can group them under the "_final_no_wm" version so that all the different varieties won't clutter the album but I can still quickly access all versions by expanding the group.

Conclusion

It's been 1.5 years since I started doing photography with RAW files and this workflow has worked really well for me. I have hardly modified it apart from renaming a few folders. I could see myself dividing my files even more in the future, say, between outdoor trips and events, but for now the quantity of photos is perfectly manageable as described in this blog post. I might look again into digikam's import functionality and what it can do for me but it didn't convince me the first time I tried so I stuck with using the CLI to create sub directories and copying the files from the camera's SD card to their respective folders.

Please head over to Google+ or Twitter @tobiaswulff to discuss this article or any of my photography and videography work. My Flickr and Vimeo pages also provide some space to leave comments and keep up to date with my portfolio. Lastly, if you want to get updates on future blog posts, please subscribe to my RSS feed. I plan to publish a new article every Wednesday.