Photo_organizer

Photo archive folder organization program.
Alternatives To Photo_organizer
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Phockup624120 days ago8September 06, 201615mitPython
Media sorting tool to organize photos and videos from your camera in folders by year, month and day.
Iosrepo37
6 years ago
A list of resources & libraries for iOS and Swift.
Pedx19
4 years ago1mitPython
Python tools for working with PedX dataset.
Exifdatetime17
2 months ago2mitPowerShell
Script to read/write/update EXIF date and time information in image files and photos
Adri14
5 months agomitRuby
Organize photos by date and location in a directory structure
Ipcam Timelapse5
4 years ago5Python
Timelapse generator for streaming IP cameras
Importphotos3
12 years agoPython
Python tool to use EXIF data to import photos from removable media (including cameras) into a shot-date folder
Photo_organizer3
5 years agomitPython
Photo archive folder organization program.
Image Sorter3
6 years agomitPython
A python script to sort (1) pictures into folders by date and (2) pictures of panoramas into subfolders
Photo Date Sync2
9 years agoJavaScript
Synchronize the dates of pictures taken with different cameras.
Alternatives To Photo_organizer
Select To Compare


Alternative Project Comparisons
Readme

photo_organizer

Basic python tools to organize large directories full of NIKON .NEF and JPEG images into folders organized by picture date. The date is extracted from EXIF metadata, in priority order as follows: CreateDate, DateTimeOriginal, ModifyDate tags, then as fallback filesystem created or last-modified attributes.

How To Use

Fast Start

  • Clone this repository
  • Install dependency libraries Pillow/PIL, datetime, dateutil
  • Run In The "Work In Progress" Directory e.g.
python ./organize.py /users/stephbu/pictures
  • Output directories created as children of current directory

Advanced

  • TBD

Intention

This code is intend to enable me to quickly manipulate flat folders full of files into a year/month/day encoded set of folders that I can merge into my long term storage.

Workflow

I take a lot of photos and sweep them off camera into "Work in Progress" folders until I have time to process them at a later date. It takes less than an hour to generate more photos than you can process in one day. When I process my photos I move them into date encoded set of folders for long term storage.

My workflow generates folder structure that look like this:

  photo_root/
             work_in_progress/
                              date1/
                              date2/
                              daten/
             year1/
                  month1-day1 meaningful label/
                  month2-day1 meaningful label/
             yearn/
                  month-day meaningful label/

NEF EXIF Data

Nikon's NEF format is an extension of the TIFF format. Metadata such as time, camera, lense etc. are encoded into the NEF file as EXIF data structures. I selected Python Pillow libraries to parse the TIFF EXIF metadata for two reasons:

  • Pillow is an active community-maintained EXIF library
  • These tools developed on OS/X

I use Tag #306 DateTimeOriginal to determine the camera source date taken. This encoded string omits timezone information and is formatted as:

YYYY:mm:dd HH:MM:SS

While developing the code, I discovered that the NEF tags don't appear to encode the Timezone information (Tag #34858 - TimezoneOffset) even though the camera is explicitly set for the timezone (determines it's Local TZ). Workarounds suggested parsing GPS data if it was available. I've not had a chance to try that out yet, so I ended up with an assumption that the NEF data is encoded in Local Timezone format.

Output Folder Structure

The code copies or moves the file without altering the original - for a source structure

  sourcefolder/
              DSC0001.NEF (taken in 1/1/2014)
              subfolder1/
                        DSC0002.NEF (taken in 1/1/2014)
              subfolder2/
                        DSC0003.NEF (taken in 31/1/2014)

The output would be:

  sourcefolder/
              2014/
                  01-01/
                    DSC0001.NEF
                    DSC0002.NEF
                  01-31/
                    DSC0003.NEF

External Linkage

Some useful further reading on the subject

Popular Camera Projects
Popular Date Projects
Popular Hardware Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Python
Camera
Date
Timezone