iView to Aperture Workflow -- Part 1: Preparation

I have been busy moving all my old photos that were cataloged with iView into Aperture. It has taken a while to work through all the issues and get the workflow straight, but the result is exactly what I wanted: all the images with their metadata transferred. To transfer the metadata I used Annoture, Adam Tow's utility. Special thanks go to Adam for modifying his utility to work around some of the problems I found with my old image files.

Since there is a lot of detail to this process I am presenting what I found as three separate articles covering the three distinct steps needed: preparation, importing, and clean up. This article covers preparation. There are three things that need preparation: the images, the iView catalog, and Aperture.

Prepare Images and Folders
The first step in preparation is to back up my old images. I use spare space on a Firewire drive for this. Backing everything up leaves me an escape route in case I run into a bug or problem I cannot fix, or simply mess everything up by making an error.

Next I make sure that all the images and folders are not write-protected. Write-protected images and folders will cause problems later when I want to remove them. By selecting the top-level folder and hitting command-I I can check the permissions:
iview101
That needs fixing. I click the pop-up, change it to Read and Write and then click the disclosure triangle to see the details:
iview102
Clicking on Apply to enclosed items will propagate the changes down to all the folders and files.

Importing files that have no extension into Aperture can cause problems, so the next exercise is to make sure every file has one. To do that I go through each folder in turn in list view, sorting by type, and dragging anything that either has no extension or a JPG extension to a folder on the desktop. Then I run this Automator action on that folder:
iview103
This adds .jpg to anything that does not already have it. Then I drag the renamed images back to the folder they came from. This breaks the link between iView and the renamed images, but that is OK. Annoture can be set up to deal with that.

Then I look for files with names containing forward slash (/) characters. These will cause problems with metadata transfer later on, so I rename them in iView (so that iView knows the new name -- Annoture will not help me here).

Finally I remove all foreign files from the folders I am going to import images from: sounds files, movies, text files, anything that might confuse or upset the process.

Prepare the iView Catalog
I will be using Annoture to move metadata from iView to Aperture. It works well, but it is not magic. There are some things it cannot do, and some things that it can do will make for extra work in Aperture that I can reduce by doing some of the work in iView.

The basic philosophy is to change all the metadata types that could have multiple entries for one image into multiple keywords and then move that metadata into Aperture.

First I make a back up my iView catalog. I can now fritz with the metadata as much as I like before moving it over to Aperture.

Then I add a new keyword iviewimport, select all the images in my iView catalog, and apply that keyword to them. This step will let me be assured that metadata for all images has been transferred. If any image in Aperture that came from my old images does not have the iviewimport keyword, then Annoture did not move the metadata for some reason (it could be missing from my iView catalog for instance).

In iVew I have all my people listed under the People category. In Aperture I use keywords. So the next step is to create a keyword for each person in iView. The keywords I create are all lower-case: bob, not Bob. I do this so that the new keywords will not get confused with the existing keywords in Aperture. I will convert all the bob keywords to Bob keywords later. To apply the new keywords, I select that person in the People list, select all of the images that include that person, and drag them to the new keyword.

Then I rename all my iView keywords so that they start with a lower-case letter. The reason for this is that I have several keywords in Aperture that are the same except for their hierarchy. I have Content > Water and also Blog > Water. Another more realistic example would be Color > Orange and Fruit > Orange. When the metadata is transferred from iView to Aperture, Aperture makes a random choice between the available keywords if there is more than one match. So anything tagged with Water in iView will end up either as Content > Water or Blog > Water and have to be sorted out manually. But if I change all the Water keywords to water in iView this will not occur and everything will get the naked water keyword.

Lastly I convert all my labels to keywords. Because hitting number keys is so convenient, I, like a lot of people, have used the labels for rating images instead of the Rating category. But since ratings don't transfer in Annoture I need to convert these to keywords and then deal with them in Aperture. It's the same system as for people. This time the keywords I create are onestar, twostars etc., all lower-case again.

Prepare my Aperture Library
First I make a back up of my Aperture library. A simple copy will work.

Next I create new projects. I will work on one chunk of images at a time by creating projects in Aperture and filling each with images from my old folder hierarchy. A project will typically be a year or a month of images, depending on how many photos I was taking at the time. For some images, such as scans of old photos, I will have a different structure. I put all of those new, empty, projects into a hierarchy of blue folders with one at the top called iView.

I don't want my existing Aperture keywords to be modified, so I make sure the keyword HUD is locked. That is done by clicking the small lock on the keyword HUD (shift H).
iview104
This ensures that the keywords that come in with the imports are put into the Import Keywords part of the keyword HUD.

That's all the preparation done. Next is importing.

iView to Aperture Workflow -- Part 2: Importing

Following preparation, the next step in moving my old photos from iView to Aperture is importing. There are two things to import: the images and the metadata.

Import Images
At the end of this process my Aperture library will contain managed images. But initially I import all of them by reference into the projects I prepared. The reason for this will become clear. I import entire folder hierarchies at once by using File > Import > Folders Into A Project. This puts all of the images from the folder hierarchy into a project and creates a hierarchy of brown folders and albums that matches the folder organization. In this way I still have my old hierarchy represented but can archive it without manual blue folder work and lots of separate imports. Of course I can throw away the albums if I wish: I may not want to have any remnants of my old folder structure remain in Aperture.

When importing I use a rename setting called Version Dash Date. That takes the version name and adds the image date. I leave the images in their current location. So on the import dialog, the settings look like this:
iview201
I don't have to wait for the imports to complete. Aperture will queue imports and automatically go through all of the ones I have set up:
import1
Then when my imports are all complete, I wait for all the thumbnails to build -- just to be sure nothing odd happens -- and check the projects over to make sure they look right.

All of the images so for imported have been referenced, but the next step changes that. For each project in the blue folder I created (called iView) I consolidate the masters with the Move option selected. File > Consolidate Masters for Project brings up this dialog that confirms my selection:
iview202
This step moves the referenced masters into my Aperture library, so leaving the original folders empty. But are they empty? If they are not then there has been a problem and I need to go sort it out. Possible reasons for the folders not being empty include bad image files, images files in formats that Aperture will not import, text and other foreign files, and permissions problems.

Any easy way to do this check is to display the top-level folder in list view in the Finder, select everything with command A, and then press option command right-arrow. That opens all the folders recursively and shows their contents. Close them all up again with option command left-arrow.

I deal with anything that has not been consolidated, and get all the remaining images into the library or trash them if they are corrupt.

Once consolidated, I mark all the images with a new keyword notreviewed using the keyword HUD. I'm not sure I will need it, but this is the last opportunity to have a way of automatically tying together all of the images I have removed from my old folder structure.

Import Metadata
Now I break out Annoture. The version I am using is 1.0.2. Annoture processes all of the metadata for the images in a project by scanning the iView catalog for the file names of those images, retrieving the metadata, and adding it to the Aperture database.

Here are the preferences I use for Annoture:
iview203
By ignoring file extensions I can have Annoture copy metadata from old files that had no extension but were corrected to have an extension before they were added to Aperture. Comparing capture dates allows images in the iView catalog that have the same name to be distinguished. Without that metadata from the first image found rather than the correct image will be transferred.

I set up the main window like this:
iview204
Each time I run Annoture I select the appropriate project in the pop-up. I have to make sure that all of my projects have different names, because it is not possible to distinguish identically-named projects here.

Important: Annoture transfers metadata for each image in the selected Aperture project by examining the current selection displayed by iView. It is important to know this, because if I have a subset of my thumbnails displayed in iView when I run Annoture two things will happen: 1) it will run faster because it has fewer images to scan, and 2) there will be some images that do not have their metadata transferred.

I can use this behavior to my advantage. Since my old images are organized into folders by year or month, I set up the Aperture projects that way. By filtering the iView display by using the Catalog Folder pane:
iview205
I can limit the number of images that Annoture has to search and speed it up dramatically. Instead of searching 10,000 images, iView will only search a few hundred. That drops the processing time from 15 seconds per image down to less than one.

Since I tagged all of the images in my iView catalog with iviewimport, any of the imported images in my Aperture that were not successfully processed by Annoture lack the iviewimport keyword. So after copying the metadata for each project I run a filter that looks for all images without iviewimport in the IPTC keyword field:
iview206
Now I can examine those images and figure out why they could not be found in the iView catalog. The usual reason is that the image was never put into the iView catalog and hence has no metadata. In other cases the iView thumbnail was incorrect and somehow had become attached to a different image.

Import is now done. Next is the final step: reorganization.

iView to Aperture Workflow -- Part 3: Clean-up

Now that all of my old images and their metadata have been prepared and transferred from iView to Aperture, one step remains: clean up. Cleaning up comprises applying ratings, merging keywords, and converting data in other fields to keywords.

Before describing this process, some advice on performance. I discovered that by doing the right thing I could speed up some operations with Aperture up by a factor of more than a thousand. Yes really. The key advice is this:

If at all possible, don't have any images or thumbnails visible when you change metadata!

I found that doing some things like changing and editing keywords in the keyword HUD with a filter active that used that metadata took an hour rather than a second (I have 20,000 images in my library). Aperture was going through serious contortions with SQL and string handling during this time and eating real memory at a rate of about 50k a second (a memory leak?). Once I figured what was going on, I created an empty project and selected that each time I wanted to make changes to the keyword hierarchy.

Of course it is not always possible to have images not showing or filtered, but whenever messing with keywords, it is worth remembering.

Apply Ratings
To apply ratings (these were brought over as keywords from iView) I filter on the blue folder called iView that contains all of my projects with the imported images. Since all of my one star images have the keyword onestar, I filter on onestar, select all the images in the browser with command A and press the + key to give them a rating of one star. This takes a while because there are many one star images. Then (bearing in mind the performance tip above) I delete the onestar keyword from the Imported Keyword section of the keyword HUD.

I repeat this for the twostar and threestar keywords and the ratings are now done.

Convert People Keywords
Next I convert my people keywords. I have imported name keywords from iView that all start with a lower-case letter so I can distinguish them from the existing ones. To convert these is easy. After selecting my empty project and unlocking the keyword HUD I double-click on "steve" in the keyword list and change it to "Steve". That elicits this warning:
iview302
Once done, I drag the Steve keyword onto its containing keyword in my "master" hierarchy. In this case that keyword is Family under People:
iview303
I get another warning and then this warning:
iview304
Accepting the offer to merge the keywords leaves my imported images with the same keyword as those already in my library and ensures that they have the same hierarchy too.

I repeat this for each person until I am done.

Convert All Other Metadata
There is still more metadata to convert. Annoture maps iView metadata fields to IPTC fields. For instance Location in iView becomes Sub-location in Aperture. So I have to work through each IPTC field, identify all the possible values, filter by each of those values, select the images, and add or apply keywords appropriately.

This is not as hard as it seems. By adding the appropriate fields to the List - Expanded metadata view and browsing my images in list view I can sort them by these fields:
iview309
For Albuquerque I create a new keyword United States > New Mexico > Albuquerque, select all of the images with Albuquerque in the Sub-location field (in the list view with click at the top and shift click at the bottom of the range), and then apply the new Albuquerque keyword. See Metadata Views for more information on setting this display up.

Once I have worked all the way down the Sub-location column and repeated this for each different word used in that field I can clear the field. The easiest way to do this is to select all of the images I have imported (and processed), press shift command B to bring up the batch change dialog and set it up like this:
iview310
By selecting Replace and checking the box next to Sub-location I choose to clear that field on all selected images. I press OK and then move to the next field.

Delete The Old Folder Hierarchy
Finally I am done, and all that remains is to delete my old folder hierarchy. It is now empty of course. I left it in place because in the second step (importing) iView still needs the hierarchy in place to allow filtering by folder. Now it is no longer needed.

That's It
I am sure that others will have a different story to tell about moving from iView to Aperture. Please let me know your own experience so I can improve this article.
The Bagelturf site welcomes Donations of any size