I organize my ~/Pictures folder in a geographical hierarchy. So I have Europe, Asia etc as my top level, then country names, then places, and finally something like “2017 09 25 West Wittering”, where this would be under " Europe/UK/England/West Sussex/West Wittering". The actual file names are those decided by my camera. I rsync regularly to an extrrnal HD.
For the unedited/raw images:
-
*Master folder: Pictures
-
**Subfolders: For each device (600D, 640XL, etc.)
-
*** Within device folders: For JPG only devices, one folder for each year. For raw photos, one yyyy-mm-dd folder for each day
For the processed images (usually in a different drive):
-
Master folder: Lumi Bin
-
** Subfolders by category: E.g., food photos go into Dietbusters, people photos go into Beauty Parlour
-
*** Context based folders: Because that is how I’m likely to look for them e.g., food photos are identified by the name of the dish while people pics have a name folder and a date and event name for subfolder under their name. First level TIFF output from RawTherapee goes in this folder with ‘_RT1’ added to the file name (RT2 etc., for multiple takes with Raw Therapee). BTS shots, if I ever get around to organising them, will go into this folder
-
**** Gimped: The RTx TIFF files are copied into this folder. Once they are processed in GIMP, I add ‘_G1’ to the file name (or G2 etc., if I have different versions). Final output JPG after resizing-noise reduction-sharpening is saved with the same name as the final Gimp TIFF. I add ‘_Cr’ and ‘_W’ if I crop the image and add a watermark with additional number for versions. If I have many TIFFs (say, from an event) then I have another subfolder for JPGs
Path for an image can look something like this:
Lumi Bin/Dietbusters/Vendaikkai Cutlet/Gimped/IMG_4928_RT1_G1_W.jpg
Lumi Bin/Heavens Above/07.09.2017 - Perungudi Sunset/Gimped/IMG_4866_RT1_G1_Cr.jpg
This is an incredibly interesting and insightful thread! My conventions are:
Two base directories: “Photography” and “Videography”
Within each are directories per year.
Within each year are directories labeled month day time, e.g.: “05121056”
Within those are the out of camera raw and jpeg images as they are named by the camera. I use a couple different cameras, so I leave their names alone.
Also within these directories is another directory labeled “exported,” which contains final jpegs that have been edited. These may have descriptive names based on content.
Anything really good then goes on Flickr, and then also backed up in my Dropbox, where I organize them with descriptive names and folders named by year and month.
Reason: honestly, these are just the default settings for Rapid Photo Downloader and Darktable. Both seemed reasonable to me, and without a good reason to adjust them, I just went with it. Now it feels "right"to me, lol!
PS: The best text editor is clearly Gedit, followed by Medit.
So here’s my version of the directory structure, year then month, then date of month with a short description.
Here’s an example of 2017:
2017
├── 01-January
│ ├── 01-Cockatoo-Clothes-Line
│ ├── 02-Milkyway-Paddys-Creek
│ │ ├── converted
│ │ ├── converted-big-jpgs
│ │ │ └── morphed
│ │ ├── converted-nontl
│ │ └── converted-tl-2048
│ ├── 05-5D-Orral-Ridge
│ │ └── converted
│ ├── 05-60D-Orral-Ridge-TimeLapse
│ │ ├── converted
│ │ └── converted-sunset-series
│ ├── 14-Backyard-Birds
│ │ └── converted
I use Rawtherapee for all my processing, hence the converted sub folder.
I’m also trying to be disciplined to use DigiKam as my DAM to initially review/rate photos where I have taken a lot, ie a sporting event. These get moved to filtered, which is when I then open RT and rip through the processing of the files.
It means that I can later reclaim disk space by revisiting these folders to making the final decision to delete the images.
For storage and backup, I run a linux server with about 14tb of RAIDZ-2 as primary storage I have a rsync script that backups up the photos to an old NAS I bought years ago in another part of the house. I also backup to single bare disk via USB dock every now and then and store that outside in the shed and bring the other back in and back up to it.
I’ve come to realize that for me it’s best to avoid deep folder structures. A folder containing several screens of sub folders is faster to navigate with file pickers and file managers than digging down into multiple levels of sub folders.
Hence I’ve stopped using year / month / day and reduced it to year / monthday. I use an older (debian) version of Rapid image downloader and add a location suffix to the daymonth folder. I usually photograph DNG+JPEG and have tried various locations for developed files. Separate RAW and JPG folders, all three files in the same folder relying on linux filesystems being case sensitive original jpgs were .JPG developed .jpg, one mega export folder. Now I’m using a ‘converted’ subfolder of each day. The full structure looks like this.
home / img / 2017 / 0623_Milano / converted / IMGP0778.jpg
I use the camera default filename. Been shooting Pentax since forever so unfortunately some images have identical names.
I miss the mega export folder even though it got unwieldy after a couple of thousand images… I like having all the recent exports in the same folder. It’s useful for comparisons and when you develop files that span several days or years.
I do copy on disk raw and jpg files then rename them using exiftool, below an example of the directory structure and the function that renames jpg files.
typical nikon jpg files look like this:
F1R_170801t132406_N049855_tt1-800_f080_L00500_i00100.JPG
F1R_170801t132406_N049855_tt1-800_f080_L00500_i00100.JPG.pp3
vivo@astro ~ $ tree -d Pictures/20170801-croazia
Pictures/20170801-croazia
├── Metadata
│ ├── jpg
│ └── raw
├── jpg
├── raw
├── thumbs
├── work
└── work_small
function rename_jpg_files() {
echo
echo "renaming jpeg"
echo
local tag_count=""
local maker=""
local i=""
for i in jpg/????????.JPG ; do
maker=$( ${EXIFTOOL} -s3 -f --fast -printFormat '${Make} ${Model}' "${i}" )
echo $i @@ $maker
case ${maker} in
*D800)
tag_count="ShutterCount"
maker="N"
;;
*X-T1)
tag_count="ImageCount"
maker="F"
;;
*)
echo "Unknow model: '${maker}'"
tag_count=""
esac
if [[ ${tag_count} != "" ]] ; then
${EXIFTOOL} \
-preserve \
-forcePrint \
-overwrite_original_in_place \
-artist='${AUTHOR}' \
-copyright='${COPYRIGHT}' \
-modifydate='now' \
-d '%y%m%dt%H%M%S' \
'-filename<'\
${PREFIX}\
'${CreateDate}'\
'_'${maker}\
'${'${tag_count}';$_=sprintf("%06d",$_)}'\
'_t${ShutterSpeed;$_=sprintf("%6s",$_);tr/\/\. /-st/}'\
'_f${Aperture#;$_=sprintf("%03d",$_*10+0.499)}'\
'_L${FocalLength#;$_=sprintf("%05d",$_*10+0.499)}'\
'_i${EXIF:ISO#;$_=sprintf("%05d",$_)}'\
'%-c.%e'\
\
"${i}"
fi
done
}
You make a very valid point and one which I hadn’t considered before.
Of course, I am guilty in that, being always broke, I came into some unexpected cash and bought three 2TB WD-Blues at the same time; I put one inside the machine as secondary pictures-only storage, and the other two in external cases as back-ups.
It had never before dawned on me that they are going to all be old at the same time.
Maybe I will find some money that someone lost in the grocery-store parking lot and be able to buy another HDD to replace one of these and stagger the life expectancy, then wait a year or so and get another.
Thanks for pointing it out.