Timeline View Revisited

Started by Darius1968, April 29, 2016, 03:18:31 AM

Previous topic - Next topic

Darius1968

I've posted about this before.  It is only the {File.Created} (the date that my storage device received a given file) I'm interested in. 
As of now, it seems there is no way to configure Timeline View to accommodate my wish.  (Correct  me, if I'm wrong)  My attempt is to use Data Driven Categories.  So far, I've used the {File.Created} variable, setting parameters as such to restrict to entries containing only "2015" and to output categories with only the 1st 8 characters, which leaves a category of, for instance, "1/7/2015", January 7, 2015.  This takes a lot of time! 
Is there a tag I can use instead of a variable to speed things up?  If so, what is the tag to use?  Finally, how could I replace an output of "1/7/2015" with a category "2015", then a sub-category of "1"?  The exact day I don't really care much about. 

Mario

The Timeline View uses the "File DateTime" produced by IMatch from various sources. Not all files have a created date and time, so IMatch uses up to 20 sources to produce the timestamp it uses for the timeline. This date is also used for the default file date & time variables, file window layouts etc. See the IMatch help on Date, then Timeline for more info.

The request to make the date source for the timeline configurable comes up once in a while, but by far not often enough to make it worth the development effort. I don't think there is even a feature request for that. Maybe development I plan to introduce shortly will handling this much easier...
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Darius1968

#2
What you say about the Timeline View, I already know.  Let me see if rephrasing my question helps.  Let's say someone has images shot with a Canon EOS 6D, on September 14, 2015, but I get the image onto my hard drive on April 26, 2016.  That timeline view will file those images under September 14, 2015, but I wish to use the proper Tag or Variable that will display those images under April 26, 2016.  As of yet, I know that I can't do it in Timeline view, so what are my other options? 

Mario

Quotebut I get the image onto my hard drive on April 26, 2016.

The only place where this is recorded is inside the Windows file system, in the file creation / last modification timestamp.
It depends on how you receive the file, if Windows copies the original timestamps or updates the data and time in the file system. Check in Windows Explorer.
Copying a file or downloading it will not change the metadata in the file, unless you use software which explicitly does so.

IMatch returns the Windows file timestamps in the File.Created and File.Modified variables. If you want to arrange by the date and time they were created on disk or last modified on disk, use one of these variables for a data-driven category. If you want  to use this in the Timeline, you will have to copy the timestamp into the EXIF timestamps using a metadata template, but that's not advised.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Darius1968

This File.Created variable seems to be indeed what I am after.  I'm trying to use it in a data driven category, which is proving to be painfully slow!  If I see that it does work out in the end, however, is there an equivalent tag I can use to speed things up.  Or, can I map this variable into an attribute that could speed things up? 

Mario

This of course depends on how many files you process. As outlined in the help for data-driven categories, using variables is a last resort, must have this way to do things. You can achieve amazing things with data-driven categories and using variables as sources, but it cannot be as fast as using existing metadata in the your database.

On my system it takes 10 (initially) and then ~6 seconds to built a data-driven category with two levels (year and month) for a 60,000 files database. I think this is actually quite fast, for the massive amount of work to do. I use a 12 core i7 system with the database on a SSD. Your mileage may vary.

If you use a metadata template to copy the file created time into an XMP tag of your choice, you can use that instead. This would avoid using the variable in the data-driven category. You only need to remember to run the template on new files.

Grouping files by the file system creation time is truly something that's not required often in a DAM. Impressive to see that IMatch has still efficient ways to do this.

-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Darius1968

#6
Thanks for the info.  I may try the metadata template route. 
As of now, I do have a problem I've encountered in trying to use a data driven category to display the contents of the File.Created variable.  There are clearly files for which there is a file created date (when I use the Var Toy App to display the contents of the file's File.Created variable), but some of those same files aren't enumerated in the data driven category I set up to display that File.Created variable.  What is wrong here?  The only stipulation I made was to restrict the scope to files having "2015" by entering "2015" into the filter pattern, but I know it's not getting all files from 2015. 

UPDATE: 
Okay, so, I'm trying to map the File.Created variable into the XMP:xmp\CreateDate tag, and all the XMP tag ends up with every time is September 21, 2016, and we haven't even reached that date yet!  What gives? 

Mario

XMP date and time variables require a specific format, as explained in the IMatch help and the ExifTool documentation. Did you ensure that you format the File.Created variable accordingly? IMatch by default formats date/time variables according to your local time format (as set in Windows) but that is not the right format for XMP date and time variables.

XMP / ExifTool uses the ISO format like:

YYYY:MM:DD HH:MM:SS+HH:MM

and if you fill the date and time in a MD template you are responsible to use the right format. If you just copied the the File.Created variable, you did it wrong.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Darius1968

So, I am using the Metadata Template in the IMatch preferences.  Here, there doesn't appear to be anything for the user to use to change / ensure the format.  So, how do I do that? 

Mario

#9
To change the output format of date and time variables, use the format formatting function. See the IMatch help on Variables for details about this function and examples on how to produce different date and time formats. Just open the Variables help topic and search for YYYY.

For ExifTools-Format, use

{File.DateTime|format:YYYY:MM:DD hh:mm:ss+00:00}

where the +00:00 must be corrected to match the time zone offset for the images. Exif has no time zone but XMP has. When you copy Exif timestamps into XMP you need to specify the time zone of the EXIF. ΓΌ00:00 means UTC, +01:00 means UTC+1 hour etc.

Check some of your images with proper XMP data to see the time zone offset, then use it.

Copy/Paste the variable above into the Var Toy in the App Panel and see if the output is correct.
Then apply it to your metadata template.
Run it for one file to see if the results are correct.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook