Saturday, 21 September 2019

file management - How can I find all sets of photos taken on the same date across years


I want to create a memories album and for that wanted to find all groups of photos that are on the same date, so that I can see what trend I can show across the years. It's similar to "Today in the years past" ...etc. This is ideal for birthdays, anniversaries ...etc.



I have looked at How to find all photos taken in April - any April? but they work only on a selected date, it doesn't get a me a set of photos and dates.


see the script in my previous question, that could possibly work.


Given an input set of images from years 2004 - 2014


Ideally the output needs to be something like this:


April 01 - Found: [img1, img2, img3 ...] Missing: []
January 31 - Found: [img34, img342, img54...] Missing: [2009,2004]

Basically, i need to be able to sort by MISSING count as well, so that I can filter for MISSING = 0 (i.e. found images in all years), or MISSING < 2 (missing a couple of years) ...etc.


Maybe this can be done with existing software?



Answer




Based on Tfuto's answer, I was able to generate a CSV file with the datecreated for my 17000 images:


exiftool . -ext .jpg -r -csv -T -CreateDate -G -d %Y-%m-%d > test.csv

This took 22 mins to run. I measured it using the powershell measure-command {cmd above} Then I used excel to analyze the file to come up something like the following:


DayMonth    MonthDay    YearsMissing    YearCount
01-Jan 01-01 20 6
26-Feb 02-26 21 5
08-Apr 04-08 21 5
12-Jun 06-12 21 5
31-Dec 12-31 21 5

03-Feb 02-03 22 4
13-Feb 02-13 22 4

This clearly gives me what I want, and you can see the dates on which I've had photos consistently across many years.


I don't think I can attach the excel file here, so let me know if you need it and I can mail it to you. I solved the problem with brute-force, as we have 366 days at max (leap years) and X number of years covered. (since the invention of exif in '93, 21 years so far, or 80 years over a person's lifespan). I just created a table like that and in each I check if that date exists in our data set, if yes mark it, if not leave it blank. In the end I can count the marks for each date to get the chart above. I also create a Pivottable that shows the count of files for each day & year, allowing further analysis and plotting. This actually also answers my earlier question Excel Pivottable


This gets me the common dates, but not the images themselves, I have to then filter the data according to the MonthDay I'm interested in and can see the list of images. I also created hyperlinks in the excel for the images & folders so I can click to view them directly.


I would think this exercise would have been a lot easier, if I could've written a plugin for a catalog app (like picasa). That's why it's important to have open access to your databases (API's).


As it stands, this is not a good solution for a computer novice to use. I think there is still a scope for improvement to create a simple app/script that does this for the user. (Maybe Damnion or Picasa or something else can do this. ) see some mobile apps


No comments:

Post a Comment

Why is the front element of a telephoto lens larger than a wide angle lens?

A wide angle lens has a wide angle of view, therefore it would make sense that the front of the lens would also be wide. A telephoto lens ha...