Basti’s Buggy Blog

Poking at software.

Picture Organization Method

In this post I summarize and document my preferred workflow for processing, naming, tagging und archiving pictures. This opinionated workflow accounts for pictures from different sources in different formats, as well as the presentation of those pictures without special applications.

The workflow aims to tackle the following issues:

  • Handling of heterogenous multimedia file formats (CR2, JPEG, MOV, …)
  • Collection of pictures from different sources (DSLR, phone, GoPro, …)
  • Addition of pictures to the collection at any time
  • View-ability of time-sorted pictures from a plain old image gallery
  • Ability to omit/retire RAW pictures from backups


Directory Structure

sh@dsh Pictures tree
├── 0000-00-00_Miscellaneous
│   ├── Phone-Peter                                    # = PP
│   │   ├── 2014-06-27_13-24-56_LocationX_PP0001.jpg
│   │   ├── 2014-06-27_13-24-58_LocationX_PP0002.jpg
│   │   └── ...
│   └── Phone-Michael                                  # = PM
│       ├── 2014-06-27_12-00-01_LocationX_PM0001.jpg
│       ├── 2014-06-27_15-15-44_LocationX_PM0002.jpg
│       └── ...
├── 2015-09-25_LocationA-EventA
│   ├── DSLR                                           # = D
│   │   ├── 2015-09-27_06-44-00_LocationA_D0002.CR2    # RAW kept
│   │   ├── 2015-09-27_06-44-00_LocationA_D0002.xmp    # sidecar
│   │   └── ...
│   └── DSLR-export                                    # = D
│       ├── 2015-09-25_14-01-22_LocationA_D0001.jpg    # RAW deleted
│       ├── 2015-09-27_06-44-00_LocationA_D0002.jpg    # RAW exists
│       └── ...        
├── 2016-00-00_LocationB-Misc
│   └── ...
├── 2016-03-04_LocationB-EventB
│   └── ...
└── ...


  1. Create new directory for event and new subdirectory for each source
  2. For each source, copy the pictures and rename them to match the given format
  3. Rate, edit (.xmp sidecars), delete pictures
  4. Export desired RAW-pictures

Folder Structure and Filenames

General rules for filenames:

  • Do not use spaces in any filename, instead use _ or - depending on the context
  • Use the _ character to split tokens of different types, use - to split tokens of the same type, e.g. email author followed by subject
    • don’t Miller_Peter_Invoice_Coconuts
    • don’t Miller_Peter-Invoice_Coconuts
    • do Miller-Peter_Invoice-Coconuts
  • Order token types from most general to most specific, if possible (last name, first name)
    • don’t Peter-Miller
    • do Miller-Peter
  • Use dates in the format YYYY-mm-dd and datetimes in the format YYYY-mm-dd_HH-MM-SS
    • If referring to an unspecified point of time in the year use YYYY-00-00
    • If referring to an unspecified point of time in the month use YYYY-mm-00
  • Keep the hierarchy flat, don’t unnecessarily nest directories
    • don’t Pictures/2019/08/France/
    • do Pictures/2019-08-00_France/

One Directory per Event

Keep one directory per event (e.g. vacation, trip, event, …):

sh@dsh Pictures tree
├── 0000-00-00_Miscellaneous
├── 2015-09-25_LocationA-EventA
├── 2016-00-00_LocationB-Misc
├── 2016-03-04_LocationB-EventB
├── 2016-03-05_LocationC-EventC
├── 2016-03-11_LocationC-EventD
├── 2016-03-20_LocationD
└── 2016-05-22_LocationB-EventB

Pictures from Different Sources

In order to avoid conflicts when importing pictures, create one directory per unique source:

sh@dsh 2016-03-04_LocationB-EventB tree
├── DSLR              # source with RAW files
├── DSLR-export       # exported files
├── Phone-Michael
└── Phone-Peter

For sources that provide RAW files, create a directory with the same name and a -export suffix. This allows to selectively sync/delete the RAW files independent of the exported pictures. One scenario that comes to mind is to backup all non-RAW pictures to an additional data storage for safe-keeping.


Currently I use the totally proprietary software Adobe Bridge (forgive me) for viewing, rating and exporting pictures. Compared to the alternatives (DigiKam, RawTherapee, Darktable, selfmade scripts) it provides a straightforward and fast workflow.

Each picture is assigned one of the following ratings:

  • Reject: Picture contains uncorrectable technical error (blurry, wrong exposure, focus, object not in frame, …)
  • No Rating: Ordinary Picture: may contain slight errors in composition, aesthetics, color, …
  • Star 1: Ordinary Picture, makes major contribution to describe the event
  • Star 2: Extraordinary Pictures
  • Star 3: Print-Quality Pictures
  • Star 4: Only used when previous rating has too many items
  • Star 5: Only used when previous rating has too many items

Pictures with a rating of ≥ Star 1 are sufficient to describe the event.

Exporting RAW to JPEG

Pictures with a rating ≥ No Rating are exported to JPEG using the Quality Setting 9. This leaves us with 20 Megapixel JPEGs with a size of 3-9 GiB (depending on non-compressible white noise in the image).

After an unspecified period of time some space can be freed up by deleting the RAW pictures with the rating Reject and No Rating. This only leaves use with RAW pictures of the rating ≥ Star 1 and exported JPEG pictures of the rating ≥ No Rating.

WIP Tiered Backup

Currently everything is backed up without considering individual image ratings. In the future I'd like to introduce a backup script that additionally backs up all JPEG pictures with a high rating.