Kirk,
appreciate the investigation. If you'd like them, I've got a set of 300+ small jpeg test images I can send your way.
Thanks,
-a
----------
Luiz,
While working to define my overall naming convention, I examined the sequence number, but it didn't work for me. This is probably way more than you were looking for, but here's my thinking behind using the conflict resolution number.
For a little background, let me start off by defining my goals:
1) I want to create a id/filename for each image that can generally be considered unique while still being relative friendly for people/clients.
2) The id/filename should be generated when the images are first ingested and never change from that point forward. (I realize this is not how most folks work. I work with data sets where static, unique IDs are critical. This makes it really tough for me to even think about a workflow where image id/filenames change after they are in they are defined.)
-----
So, with that background, I'll walk through why I decided on using the conflict resolution numbers instead of the sequence variable. Let's take a hypothetical shoot with the following:
- two cameras.
- cards from each camera downloaded at separate times.
- first camera shoots 1,500 images
- second camera shoots 400 images.
Downloading the first card using the sequence number would get us something like the following for the first few and last few image filenames:
2011-03-20-photo-1300-1.jpg
2011-03-20-photo-1300-2.jpg
2011-03-20-photo-1301-3.jpg
2011-03-20-photo-1305-4.jpg
...
2011-03-20-photo-1530-1497.jpg
2011-03-20-photo-1532-1498.jpg
2011-03-20-photo-1532-1499.jpg
2011-03-20-photo-1532-1500.jpg
If that was all there was to it, there wouldn't be much of an issue. One minor problem is that there may have been images somewhere in the middle that aren't part of the primary shoot. If I took those out, there would be a big gap in the sequence numbers. No big deal. However, the conflict number doesn't suffer from that as much.
Assuming the exact same raw image set above, but naming the files with the conflict resolution number, we'd get something like:
2011-03-20-photo-1300-1.jpg
2011-03-20-photo-1300-2.jpg
2011-03-20-photo-1301-1.jpg
2011-03-20-photo-1305-1.jpg
...
2011-03-20-photo-1530-1.jpg
2011-03-20-photo-1532-1.jpg
2011-03-20-photo-1532-2.jpg
2011-03-20-photo-1532-3.jpg
I find that a much cleaner presentation. If I have to pull out some chuck of images in the middle, it basically doesn't change the surrounding names. Another minor win here is that since the main id part of the string is rarely a direct sequential number, it helps avoid questions like, "What happend to photo 135?, I see 130-134 and 136-150, but not 135. Why am I missing 135?" Granted, this can be avoided by re-sequencing, but my goal is to avoid that.
The real trick comes when pulling images from the second camera. Restarting the sequence number, the last few files would end up with something like:
2011-03-20-photo-1530-398.jpg
2011-03-20-photo-1530-399.jpg
2011-03-20-photo-1530-1497.jpg
2011-03-20-photo-1532-300.jpg
2011-03-20-photo-1532-1498.jpg
2011-03-20-photo-1532-1499.jpg
2011-03-20-photo-1532-1500.jpg
Or, if you didn't restart the sequence number, you would end up with:
2011-03-20-photo-1530-1898.jpg
2011-03-20-photo-1530-1899.jpg
2011-03-20-photo-1530-1497.jpg
2011-03-20-photo-1532-1900.jpg
2011-03-20-photo-1532-1498.jpg
2011-03-20-photo-1532-1499.jpg
2011-03-20-photo-1532-1500.jpg
Either way, it's confusing. There are effectively two independent counters. The first one, with the hour and minute, always moves up. The second one, generated by the sequence number, moves either up and down depending on which camera it's from and what camera the image before/after it came from.
If we used the conflict resolution number, we would get this instead:
2011-03-20-photo-1530-1.jpg
2011-03-20-photo-1530-2.jpg
2011-03-20-photo-1530-3.jpg
2011-03-20-photo-1532-1.jpg
2011-03-20-photo-1532-2.jpg
2011-03-20-photo-1532-3.jpg
2011-03-20-photo-1532-4.jpg
I think that format strikes a nice combination between creating a individual, archival and relatively future proof id/filename while still being readable/usable by us humans.
Cheers,
-Alan
----------
P.S. Yes. In terms of a fully unique id/filename, there are potential issues with this format. Like:
1) You can't safely ingest two cards on separate machines and then combine the directories manually. Each machine might have a '2011-03-20-photo-1532-1.jpg' file.
2) Even on the same machine, it's possible to end up with duplicate names if you ingest cards to different folders. If Photo Mechanic doesn't know that you already have a '2011-03-20-photo-1532-1.jpg' in a different directory, it won't know to increment the conflict counter.
etc...
There are other naming conventions that would help avoid or even eliminate those issues and virtually guarantee a unique filename. For example, I experimented using the full time stamp, including seconds and sub seconds, along with a unique ID for each camera. The filenames would looks something like:
2011-03-20-photo-15300232-1-camera6.jpg
2011-03-20-photo-15302742-1-camera6.jpg
2011-03-20-photo-15305512-1-camera7.jpg
2011-03-20-photo-15320346-1-camera6.jpg
2011-03-20-photo-15320302-1-camera6.jpg
2011-03-20-photo-15323107-1-camera6.jpg
2011-03-20-photo-15323939-1-camera7.jpg
Compared to the previous:
2011-03-20-photo-1530-1.jpg
2011-03-20-photo-1530-2.jpg
2011-03-20-photo-1530-3.jpg
2011-03-20-photo-1532-1.jpg
2011-03-20-photo-1532-2.jpg
2011-03-20-photo-1532-3.jpg
2011-03-20-photo-1532-4.jpg
For me, I'm willing to trade off those occasional issues for the overall ease of use in working with relatively unique, but much simpler names.