Following in the modest two-year tradition I’ve established (see 2007 and 2008 posts), here is my 2009 photo data from my Lightroom catalog!
[ quick howto: Lightroom 1 & 2 (and 3) databases are in sqlite3 format, which means that freely-available tools can extract data from them. I use sqlite3, some shell scripting, and R (and occasionally excel) to produce summaries of that data. Why? Data offers some insight into the kinds of photos I take. Mostly, though, it’s fun. I’d be happy to expand on the actual code that goes into these plots, if there’s interest. ]
Below is a set of plots that summarize some of this year’s data. Click through to flickr to see the larger version.

What’s interesting this year? Well, crop ratios looked pretty similar to last year, so this year, for the first time (suggested in a post by Keitha, whose photos I admire tremendously, and whose Pentax lens set I envy with the fire of a million anti-glare-coated nine-aperture-bladed all-metal suns) I pulled out some information about aperture for each of the prime lenses that I shoot with. You can see these four frequency plots (for each of the Pentax DA 70mm F2.4 ltd, FA 50mm F1.4, FA 35mm F2.0 and DA 21mm F3.2 ltd lenses) in the left hand column of the image. Right off the bat you can see that I shot a lot with the FA 35mm this year (which is confirmed by the “overall lens use” plot on the right column). In fact, I took that lens along as my sole lens on a few long weekend trips to Ventura, CA, and the San Juan Islands, and really loved its performance. It does great at large apertures, but I also used it a lot for street shooting at f/8 and smaller apertures.
Runner-up in frequency this year is the FA 50mm F/1.4, which ordinarily I would say is my favorite lens (and it very much still is; it just wasn’t as convenient a focal length to take as my only lens on those vacations). Its sweet spot [where it’s sharpest but still has a nice narrow depth of field] is about F/4, which is where I primarily use it.
Neither the DA 70mm F/2.4 or the DA 21mm F/3.2 got as much use this year, but I really love some of the photos I took with those lenses. In fact, I carried these two lenses specifically for their light weight and trim size on the Flagstaff photowalk I organized in July.

How did 2009 stack up to 2008? In terms of absolute frequency, nearly identical! I kept 1308 frames last year, compared to keeping 1340 in 2008. Far fewer of those are picks, or posted to flickr — though a good number are waiting for me to come back to, to finish workup or to make a print.
And that’s it for the 2009 photo stats! I did re-work my keyword network code, so perhaps can follow up this post with a little more about keyword relationships.
If you’d like to know more about extracting and summarizing info from your own Lightroom catalog, please let me know (and check out my other lightroom-related posts)
And, as last year, I hope soon to follow up with a report on my 2009 photo goals, and to set a few for 2010.
- ()
- This article is dated Friday January 1, 2010 and is posted to photography, technology
, with tags adobe lightroom
data
lightroom
lightroom 2
nerdery
photography
tools
A great bunch of photo tips for developing technique and getting better in 2010
-
- This link is dated Thursday December 31, 2009 with keywords photography
tips
Selected again by capricious point and click, these are a few of my favorite photos from 2009.

Click over to flickr for the full set!
- ()
- This article is dated Thursday December 31, 2009 and is posted to photography, with tags flickr
photography
photos
A question recently came up over in the Flickr Lightroom group about generating a list of all filenames or selected filenames in a catalog. There’s a pretty nice straightforward bit of SQL that will produce just such a list.
My new favorite tool for poking around in the Lightroom database is the SQLite Manager extension for Firefox. It plugs seamlessly into Firefox and is a very good tool—faster than the old sqlite3 browser, and with the added bonus of not requiring Rosetta to be installed under Snow Leopard. Plug the following code into the “Execute SQL” box (or kick it old school via the command line sqlite3 tool):
SELECT pathFromRoot, baseName, extension
FROM AgLibraryFile
JOIN AgLibraryFolder
ON AgLibraryFile.folder = AgLibraryFolder.id_local
You can do even better by using the sqlite3 concatenate operate in the select statement:
SELECT pathFromRoot || baseName || '.' || extension
FROM AgLibraryFile
JOIN AgLibraryFolder
ON AgLibraryFile.folder = AgLibraryFolder.id_local
That will produce a nicely-formatted list of files:
2007-02-19/IMGP1609.PEF
2007-02-19/IMGP1610.PEF
2007-02-19/IMGP1611.PEF
2007-02-19/IMGP1612.PEF
2007-02-19/IMGP1613.PEF
2007-02-19/IMGP1614.PEF
Still building, we can add in the absolutePath field to get a complete path — very useful for when you have files stored in multiple locations, such as offline storage or backup locations.
SELECT absolutePath || pathFromRoot || baseName || '.' || extension
FROM AgLibraryFile
JOIN AgLibraryFolder
ON AgLibraryFile.folder = AgLibraryFolder.id_local
JOIN AgLibraryRootFolder
ON AgLibraryFolder.rootFolder = AgLibraryRootFolder.id_local
And, finally, because how often do you really need to see the paths for all of the files in your library, really?, we can limit the query to just files in a quick collection. This takes a couple of extra steps, because we can’t directly get to the keyword data from the path data:
SELECT absolutePath || pathFromRoot || baseName || '.' || extension
FROM AgLibraryFile
JOIN AgLibraryFolder
ON AgLibraryFile.folder = AgLibraryFolder.id_local
JOIN AgLibraryRootFolder
ON AgLibraryFolder.rootFolder = AgLibraryRootFolder.id_local
JOIN Adobe_images
ON AgLibraryFile.id_local = Adobe_images.rootFile
JOIN AgLibraryTagImage
ON AgLibraryTagImage.image = Adobe_images.id_local
WHERE tagKind like "AgQuickCollectionTagKind"
And there you have it. One more fun trick you can pull thanks to the sqlite3 database that underlies your Lightroom 2 catalog.
Check out the rest of my Lightroom posts for much, much more, including more database tinkering, keywording, and workflow.
- ( [2])
- This article is dated Wednesday October 14, 2009 and is posted to photography, technology
, with tags adobe lightroom
lightroom
photography
sqlite3
tools
The monsoons aren’t just an annual event for southern Arizona — they hit us up north, too, and after a couple of dry weeks we had a nice storm today.
Today was free admission day at the Grand Canyon, so after coffee and bagels downtown, we looked at one another, said, “What the hell?” and hit the road. The day started out hot, but the clouds moved in over the south rim and kept us cool. On the way home, the storm kicked properly into gear and we followed it most of the way back to Flagstaff.

Nice end to the weekend!
- ()
- This article is dated Sunday July 19, 2009 and is posted to flagstaff, photography
, with tags photography
rain
san francisco peaks
storm
I’ve been reading the comments thread of this great post at Scott Kelby’s Photoshop Insider blog. It’s absolutely chock full of concise tips for getting more out of Lightroom, and it drives home to me that there’s always lots, lots more to learn.
Here’s my favorite new-to-me tip (Thanks, Scott!): Did you know Lightroom 2 has a ‘solo mode’? It’s a really fantastic way to eliminate scrolling up and down through the set of side panels. Ctrl-click beside a panel’s name and select ‘solo mode’ to turn it on, and then only the currently-selected panel will be expanded. Select any other panel’s name to auto-expand it while collapsing the prior panel. In conjunction with using cmd-1 through cmd-7 to toggle panels, it’s (to me) a nearly unbeatable way to navigate the panels with minimal mousing. (Note this works in both Library and Develop modes.)
- ()
- This article is dated Thursday July 16, 2009 and is posted to photography, technology
, with tags adobe lightroom
lightroom
photography
tips
Hey Flagstaff-area readers: This year Flagstaff has a slot on the Worldwide Photo Walk. We’ll be strolling from downtown Flagstaff, toward the NAU campus and back again on the evening of July 18.
So come visit the photowalk site, sign up, and join us. No experience necessary — just a desire to meet some friendly neighbors, go for a walk, and take some pictures.
- ()
- This article is dated Saturday June 27, 2009 and is posted to photography, with tags events
flagstaff
photography
photo walk
scott kelby
A couple of years ago I came across Camiel Schoonen’s very well-done set of antique presets for Lightroom/Lightroom 2 (link to flickr discussion page for the presets). They achieve some nice effects, as in my example below from a ride on the Grand Canyon Railway. The modified photo is on top, original beneath:
(link is to flickr photo)
After a laptop transition gone awry, Camiel lost his copies of the presets, but I still have a copy. I’ve forwarded these back to Camiel so he can resume their distribution over at his own site.
Thanks for the great work, Camiel!
- ()
- This article is dated Saturday June 27, 2009 and is posted to photography, with tags adobe
lightroom
lightroom 2
photography
presets

via shooresh1917.blogspot.com
These are tremendously powerful photos of the Tehran riots.
(via kellysims via gtcaz)
Update: Commenter Roozbeh suggests that the protester is not, in fact, lending aid, but “taking” the officer, and points to another photo of the same scene. In this third photo, it appears that two protesters are leading the police officer out of the crowd.
There are plenty of fairly brutal photos in that same series — many cops have responded to the protests violently, to be sure, and that’s really important to recognize. Aside from awareness of the apparently stolen election that has mobilized protesters to the streets, I of course don’t know what’s in this particular protester’s mind, but it doesn’t appear to me in either photo that he’s trying to hurt the police officer. The only thing that would resolve that would be to find him and get his description of the scene — I hope that somebody does.
- ( [2])
- This article is dated Saturday June 13, 2009 and is posted to politics, with tags iran
photography
photos
protest
riots
Working on learning to play a little guitar.

Pentax K100D / Pentax SMC FA 35mm @ f/2.8
- ( [1])
- This article is dated Saturday May 9, 2009 and is posted to photography, with tags guitar
learning
photography
photos
From today’s hike on Sedona’s Wilson Mountain trail:

Pentax K100D / Pentax SMC FA 35mm @ f/11. Black and white conversion with Lightroom 2.
- ( [1])
- This article is dated Sunday April 5, 2009 and is posted to photography, outside
, with tags blackandwhite
hiking
lightroom
pentax
photography
photos
redrock
sedona
The MacHeist 3 bundle is only available through April 7th, so if you’ve thought about it and haven’t made up your mind — or are just now hearing about it for the first time — well it’s time to decide.
This year’s MacHeist currently includes, for the low-low-edge-of-your-seat price of $39, OS X applications like Acorn (lightweight complement to PhotoShop, scriptable with Python, cool) and World of Goo. Total bundle value according to MacHeist is over $600.
So amble on over and check it out.
- ()
- This article is dated Saturday April 4, 2009 and is posted to technology, with tags acorn
bundle
goo
mac
macheist
os x
photography
photoshop
software
I had read about rigging a macro lens by placing a fast prime lens, inverted, at the end of a first lens mounted on the camera, but I haven’t ever really been inspired to try it until I saw Robert’s tutorial. Turns out it’s easy and lots of fun to do with the K100D kit lens and the FA50mm.
Here’s a bottle cap from a fine Yeti Imperial Stout:

These are tiny screws (5mm to 7mm or so in length) from my coffee machine:

It’s not a substitute for a true macro lens with a close minimum focal distance (there’s so little depth of field that focus is shifty and hard to hold long enough for the shot, and the angle of view of very, very small) but it’s pretty cool all the same.
- ()
- This article is dated Sunday March 22, 2009 and is posted to , with tags diy
lens
macro
pentax
photography
The post-crop vignette function in Lightroom 2 has much more flexibility than the comparable tool in Lightroom 1 — it’s made to allow for creative use of vignette rather than simply correcting lens vignetting. And you can put it to use to create quick and easy curved frames without calling on any external tools or plugins like LR2/Mogrify.

The above image has a white curved border applied by using the following vignette settings:

The trick to the curve is the right combination of midpoint and roundness — adjust to taste. And the hard edge of the vignette comes from setting “feather” to zero. To make a black border? Just slide “amount” all the way to -100.
You can make a preset for both white and black versions: Click the big plus button in the preset pane, and select only the post-crop vignette setting to save. Do one for both black and white borders, and you’re good to go.
Quick and easy!
- ()
- This article is dated Monday February 9, 2009 and is posted to photography, with tags lightroom
lightroom 2
photography
tips
Using photo stitching to achieve narrow depth of field
-
- This link is dated Sunday January 4, 2009 with keywords photography
tips
tutorials
I really like this short set of new year Lightroom resolutions over at the O’Reilly Lightroom Blog. I have lots of room to improve my own use of Lightroom specifically, and my approach to my photography in general. I do think I have a good start at some of it, and I’ve really enjoyed writing about my experiences with Lightroom: Specifically apropos of Gene’s article, I’ve written a bit about my approaches to Lightroom file organization, cleaning up duplicate keywords, and adopting a backup routine. It has also been very rewarding to get nice feedback from other LR users on those articles. I’m looking forward to continuing my Lightroom writing projects in 2009.
Beyond the software/organizational side of things, I’ve been thinking the past few days about other elements of my photography that I want to develop [aargh] in the coming months. I’m hesitating to call these “resolutions,” but perhaps that’s what they are. In no particular order, here are a few of them.
- I’d like to take more photos of people. There’s a vibrance to portraits that I love to encounter in other peoples’ photostreams, and I don’t get much practice at it. H tolerates my saying “just a couple more” for only so long, after all.
- Related to the above, I would love to make my photography a more social endeavor. Flagsbürgtown should offer lots of possibilities for this, but I haven’t really taken advantage of them. My first attempt at generating some interest in a photowalk via the local flickr group garnered exactly zero responses, but I’ll try, try again.
- Seems like as good a year as any to start learning lighting and flash, doesn’t it?
- Creative vision, etc, etc.
I kind of yadda-d that last one, but it’s probably the most important one to me. I’d really like to start turn my photography into something more personally expressive. To tell the truth, I’m not sure what that means, but I do think it’s time. This may mean I shoot more but post fewer photos, or identify some projects to take on — who knows? I’ll keep you posted.
To closeout, here’s a set of a few of my own favorite photos from 2008. No particular criteria, just a couple (or so) per month that I particularly liked. Click through to the flickr page for the full sized version and links to the individual photos.

Happy new year!
- ()
- This article is dated Saturday January 3, 2009 and is posted to photography, with tags 2009
goals
lightroom
photography
I haven’t used Lightroom 2’s library filter extensively, but it’s really pretty powerful and I found a good use for it this morning. Having tagged a big batch of new images somewhat helter-skelterly, I found myself wondering if I could view just the images that I had not yet tagged, so that I could take care of them and be all done with this round of keywording. The library filter does this handily:

Open the filter pane (hit \ to activate and deactivate it), then select the “text” controller, and set it to “Keywords” “Are Empty”, and there you go: Lightroom 2 will display just the untagged images in the current view. Very handy, and the display will update as you proceed to tag, slipping newly-tagged images out of view.
I saved this library filter view as a preset using the dropdown controller available in the upper right of the pane, so I can quickly retrieve it any time I like.
Update: I see the following in a good post over at the O’Reilly Lightroom blog:
One of the example smart collections that is installed with Lightroom is Without Keywords. Take a look at the image count for this collection. If it’s anything other than 0 then get in there and add some keywords!
Nice! I haven’t much explored smart collections. That built-in collection is a great find.
- ()
- This article is dated Tuesday December 30, 2008 and is posted to photography, technology
, with tags adobe lightroom
lightroom
lightroom 2
photography
tips
tools
Last time in my ongoing ramblings on Lightroom 2 raw workflow, I focused on white balance. Today we move along a bit further with some elements of exposure.
A note about workflow seems pertinent: Lightroom’s preset abilities are pretty extensive, but I don’t make a whole lot of use of them, particularly for raw development (Though I do have lots of metadata presets that I apply at import to apply information about location). The develop presets make the most sense to me for repeated, reliable situations: Shooting in a studio, for example, where you know combinations of lens and light and in which case the effort to tune and save those presets will be rewarded. That’s my experience so far, so I’ve neglected to spend much time working with develop presets.
So let’s talk about exposure. Lightroom provides an exposure histogram in the upper right pane. The histogram quantifies the amount of light found between black, at the left end, and white, at the right side of the plot. A histogram with nothing but a steep peak at the right end will likely appear washed out or overexposed; likewise, a plot with nothing but a peak at the far left will be dark, lacking highlights.

Here’s what this particular histogram is telling us:
- In its histogram display, Lightroom provides some basic image information: ISO, focal length, aperture, and shutter speed.
- We have light basically all throughout the plot’s range, with a particular peak close to the bright end.
- Overall, the exposure of this image isn’t bad. We can adjust exposure either with the exposure slider or by grabbing and dragging the center portion of the histogram left or right to obtain the kind of effect we want to get. I tend to boost exposure a bit when working up my photos —- but be careful when sliding exposure rightward: too much will add speckly noise to the image.
- The filled triangles at the upper left and right corners are clipping indicators; since they’re filled, it means that this image has some amount of both cut off highlights (right end of histogram: “blown highlights”) and clipped darks (left end of histogram). That is, some detail is lost in the brightest and darkest areas of the photos. The more clipping, the brighter the fill of the triangles. You can see the clipping in the histogram as the blue peak pressed up against the left edge, and the grey/red smooshed into the right end. To see just what’s lost, hit J. The blue and red superimposed over the image represent lost darks and lights, respectively.
Here’s a sample image. On the right is an illustration of the highlight clipping revealed by hitting J in the develop module:

To bring a bit more detail back into this image, especially some of the texture in that yukon gold, you use the “recover” slider in the develop pane, or simply drag the rightmost edge of the histogram back toward the left side: hover the mouse along different parts of the histogram to identify the various draggable regions. As you increase the “recovery” value or drag that right end leftward, you’ll see the red blown highlights indications start to fade, as in the image below where the recovery slider has been pegged all the way rightward:

Adjust per taste. See how much more gray the background of this image has become by pegging the recovery? Lightroom can often recover a ton of detail in highlights, but at the extreme end the cost will be a dimming of the overall image.
The same goes for darks: You can bring detail back out of a black swatch of image by reducing the “blacks” slider or by dragging the leftmost end of the histogram back to the right a bit. I often find it works nicely to drag that histogram until the leftmost slope of the dark end of the plot rests just at the edge of the display — that is, where you’ve just barely recovered all the clipped dark areas.
While measurements of light and dark can be quantified in the histogram, appreciation of light and dark are subjective. Leaving blown highlights (or intentionally blowing them by increasing the exposure — grab the middle of that histogram and pull it rightwards until you see something you like) and lost black regions of an image may help convey exactly what you want an image to do.
One more exposure-related tip: Fill light. Use this slider (or, as always, slide the histogram itself — the fill light region is just shy of the leftmost “darks” region of the plot) to bring up the light in the image’s shadowy regions without boosting the overall exposure. This can do wonders for errant shadows across a face.
Be watchful for new noise when you add fill light, and it’s a good idea to bump up the “clarity“ slider in conjunction with fill light, since fill light tends to take a bit of the punch out of the image.
So, there’s a quick take on adjusting exposure with Lightroom 2. Between white balance and exposure, you have the core set of adjustments to your raw images covered, but there’s more to come: Further tuning involves sharpening, noise reduction, and crops, as well as other adjustments we might make to color. Some discussion of those are coming up in my next installment of Lightroom for the Rest of Us (or whatever it is I’ll be calling this series by then).
- ()
- This article is dated Tuesday December 16, 2008 and is posted to photography, with tags lightroom
photography
raw
raw workflow
tutorials
workflow
Tolerance for Courageous Sucking is a great phrase. Merlin writes that "sticking with things that don't arrive with instant mastery does have its own reward -- even if you're the only one who ever collects it."
-
- This link is dated Friday December 5, 2008 with keywords creativity
habits
photography
I’ve noted recently how slick it is to be able to use nested keywords in Lightroom: It’s a piece of cake to select a set of photos, hit cmd-K, and enter “mount humphries > mountains” to assign the “mount humphries” as a child keyword of “mountains”.
However, as noted by a poster to a thread about keywording over on the Flickr Lightroom group, this creates a potential problem: If the child keyword is already used, Lightroom 2 will end up creating a duplicate keyword; you’ll end up with one “mount humphries” without a parent, and one “mount humphries” keyword with the parent of “mountains.” So, by trying to be hierarchical with your keywording, you’ve actually splintered your keywords. Not helpful!
Having already found a fun way to explore relationships between and frequencies of my keywords, it occurred to me that I might have some ready-made tools to help with this situation: The need to find and deal with duplicate keywords.
—
As this article became more popular, I worked through a couple of alternative methods and organized things a bit further. To date, I describe three methods of identifying duplicate keywords:
- Full auto: Requires some scripting but is the most expedient way to go about it (and my favorite).
- Semi-auto: Requires the awk tool to identify duplicates but doesn’t rely on any sqlite3 code to pull from the LR database.
- Full manual: Uses LR’s built-in export tool and MS Excel to get what you want. Lots of steps, but it works.
After finding your preferred method, read on to see what to do with all the duplicates you identify.
—
The full auto/scripted method
First I needed to find any duplicates created — potentially — by the ad-hoc nesting of keywords. A quick modification to my keyword frequency script produces a list of dupes:
cp ~/Pictures/Lightroom/Lightroom\ 2\ Catalog.lrcat ~/lightroom.lrdb
/usr/local/bin/sqlite3 -csv ~/lightroom.lrdb 'select ImageCountCache, name from AgLibraryKeyword;' > /Users/alan/lr-keywords.csv
awk -F , '{print $2}' lr-keywords.csv | sort -n | uniq -d
rm ~/lightroom.lrdb
rm ~/lr-keywords.csv
As with the frequencies, this short script makes a backup copy of my Lightroom 2 database, then calls on sqlite3 to extract the list of keywords; the difference is in the 4th line, where I use awk to pull out the tags and then pipe them through two built-in unix functions to print a list of any duplicates. In my case, it yielded the following:

Perfect! A list of keywords that appear to be duplicates.
Note: The script above works with OS X Tiger and requires an upgrade to the default version sqlite. It ought to work with Leopard as long as sqlite is present. Windows? Don’t know; either via cygwin or separate binaries, awk and uniq should be available for Windows, and there is a sqlite for Windows download at the above link.
Skipping the sqlite step
Update 17/Dec/2008: If you’re not eager to delve into sqlite, you can still make this work, but you’ll still need to have the awk tool. OS X users, you should be good to go, since awk comes with the OS; Windows users, you can download awk for Windows. First, manually export your keywords list from your catalog: Metadata > Export Keywords…, and save the file as lrkeywords.txt, and then run the following one-liner script from a shell/terminal:
awk 'BEGIN {FS = " "}; {$2 = $2; if (match($0, /{/)0) print}’ lrkeywords.txt | sort -n | uniq -d
Just as in the sqlite version, this one-liner parses your keywords file and returns the list of keywords that appear more than once and are not identified as synonyms. You can then reconcile the duplicates as described above. I prefer the single-step version that extracts directly from the database, but hope this is useful to a few folks.
The Full Manual Process
If you’re averse to both the sql steps and to using awk, you can use MS Excel to identify the duplicates. I think it’s far more cumbersome than either of the above processes, but it works. Here goes:
Manually export your keywords from Lightroom: Metadata > Export Keywords ….
Open that export file in Excel: Open as a text delimited file, but uncheck all the delimiters; you don’t want excel to parse along spaces or tabs, since both of those characters appear in the file but not as record separators.
You should see a single column of keywords something like this:

We need to slightly clean up that column to remove leading whitespace. We’ll use the CLEAN function to do that: In the column next to your keywords column, enter the formula =clean(a1), and then drag that formula all the way down the keywords column.

In col B, you now have a whitespace-trimmed set of keywords, but because of the clean() formula, you can’t manipulate it further. Select that entire column, copy it, and then use paste special to paste the column as values into column C.

Now we’re ready for the final steps: Sort, flag, and filter. Select column C, then go to Data > Sort, and sort ascending by column C. Now, in column D, drag the following formula from the first row to the last: =IF(C2=C1, "!", "").

That just fills the column with a flag if column C has a duplicate. It’s a low-budget search, but it works as long as the list of keywords is sorted. Finally, use Data > Filter > Autofilter, and click-select the ! in column D. You’ll now have a filtered list of duplicates from your original keyword list, which you can resolve as described above. Note that you’ll have a number of keywords surrounded by {} or [] brackets; these are keywords entered as synonyms or categories, and you should ignore them when you are addressing duplicates.

You can see from my current duplicate list that I’ve been working heavily on food-related keywords as we cruise through the holiday season.
All told, that whole manual process should just take a couple of minutes once you have the steps sorted out. Because the steps are manual, it’s not as easily-repeatable as the automated sqlite+awk approach, but it does work. I hope someone finds it useful!
Dealing with the duplicates
Whatever method you’ve employed, at this point you have a list now — let’s check out if it means what I think it means. Switching back over to Lightroom, I can filter for all photos with the “mount humphries” keyword:

Sure enough, I have 12 images tagged with “mount humphries”, and 11 images with the same tag set as a child of “mountains” (as an aside, I see that I have well over a hundred images with the “mountains” tag that could probably use some more granular tagging).
My first impulse was to try to just drag the non-child “mount humphries” into the “mountains” tag; this works, after all, with other keywords. But in this case, it won’t do the trick, presumably because there is already a “mount humphries” keyword there — Lightroom won’t let me add a same-named child.
To reassign the keyword to the parent, you need to take a few more steps: First, click the right-pointed arrow to the right side of the duplicate, non-child keyword; this will navigate to all images assigned that keyword. Then, in the grid view, simply select all (cmd-A), and then check the child keyword to add it to all of the selected images (the checkbox is to the left of the keyword, and appears when the mouse cursor hovers over the keyword), and you’ll see the count increase accordingly. Next, un-check the duplicate, non-child keyword in the keywords panel. You’ll see its count drop to 0. The order of those two check-uncheck steps is important: If you uncheck the non-child keyword first, you’ll end up with an empty selection and nothing to apply the proper keyword to.

There! My “mount humphries” keyword as a child of “mountains” is now assigned to all 23 original images, and I can delete the duplicate, non-child tag.
So, with an approach like this, ad-hoc keyword nesting shouldn’t be feared: We can identify duplicates created by nesting, and, in a matter of seconds, apply the same nesting to any previously-tagged images. And, once you’ve resolved the duplicate, any further assignment of the focal keyword will always assign it, appropriately, as a nested tag. Pretty slick, I do say.
- ()
- This article is dated Sunday October 12, 2008 and is posted to photography, technology
, with tags adobe lightroom
lightroom
lightroom 2
osx
photography
photos
tips
(Welcome to readers coming via the nice link from the Lightroom team at Facebook! Consider checking out the rest of my Lightroom writing.)
—-
While Lightroom gets a lot of love from professionals who take a thousand photos at an event and need to manage a paying production workflow, it’s also great for enthusiast-level users like me: I usually work on the scale of a weekend’s or a trip’s worth of photos that need organization, a place to live, some pruning and keywords, and whatever sorts of RAW workup that’s necessary. Last week I wrote up a few general Lightroom tips with some vague intention of documenting a practical workflow; here are two high-level elements of my workflow: Import/File structure and metadata/keywords.
Import and file structure: I shoot in RAW and use Lightroom to import photos directly from the SD card via USB card-reader. Lightroom presents a number of options for storing those imported files: In the past I put imported photos in by-day folders, meaning one directory for each file date. So, for a handful of days’ worth of photos I’d have a hierarchy of directories like 2008-09-01, 2008-09-02, and 2008-09-03. I’ve recently switched to a storage option that, so far, I really prefer: I import photos to a single directory based on import date rather than file date, with a descriptive suffix to that directory. The nice upside to this approach is that a weeks’ worth of photos — a five-day trip somewhere, for example — all end up in a single directory, and can all be viewed and processed as a set (without having to put them all into a collection). Since Lightroom is so handy with metadata, I don’t lose anything by stepping up in granularity from by-day storage to by-import storage. Additionally, having fewer directories hanging around makes it easier both to backup and to browse my photo file tree with other applications.
Below is a screenshot to illustrate the import and directory naming stage:

On import, I assign a metadata preset and whatever keywords are applicable to the entire import set of photos.
After import is a first pass to identify picks and rejects and assign keywords, which I described last time around: Set grid mode to a large-ish preview size, and use shift-P and shift-X in grid mode to mark any clear favorites and rejects. After that pass, it’s keywording/metadata time.
- Metadata: Lightroom has two-dozen or so non-keyword metadata fields that, frankly, I don’t have much use for. I tend to use only a few of them (in the “Image” metadata category) to assign geographic location of photos taken: I have metadata presets for common locations, and I assign the rest on an ad-hoc basis. At export time, some of this metadata is included as keywords, so my exported photos end up with, at least, city and state information attached.
- Keywords: You can keyword forever in Lightroom. I start keywording with a single keyword set that broadly covers my most common uses (The “edit keyword set” function is accessed in the Keyword Set menu in the right-hand Keywording panel): I call this one “Common/Home”, and it contains, among other keywords, “Heather”, “dogs”, “flickr”, and “food” tags. I know the order of these tags and can quickly make assignments with alt-num combinations. With my “Common/Home” set active, alt-7 tags a photo with flickr, alt-8 with Heather, for example. Wondering what your common keywords are? Try exploring your database for common lightroom keywords, and take advantage of nested keywords and keyword hierarchies for the greatest efficiency in assigning keywords.
- In Lightroom 2, the related keywords function adds a whole new dimension to commonly-used tags. Once you’ve assigned one or two from a preset menu (as above), you’ll get a set of keyword suggestions, as well. Lightroom 2 really does facilitate both identifying and applying keywords in a useful way.
- On applying keywords: As with metadata, I’ve found it most useful to reduce the size of previews in the grid window and apply keywords in groups to a selected set of images first (as many as possible; ctrl-click (shift-click for a range) or shift-arrow with keyboard to select multiples), and then step through photos one-by-one, adding additional keywords as needed.
- Lightroom lets you display keywords for a given image in a number of ways. I like to keep the keyword display set to “will export” — That’s generally the most complete display of the tags assigned to a given image, including synonyms and parents.
Possible items for next time? Super-basic RAW development, exporting, and collections: See my intro to RAW development!
- ( [12])
- This article is dated Saturday October 4, 2008 and is posted to photography, technology
, with tags adobe lightroom
lightroom
photography
tips
A nice, simple explanation: "So, what should you do? Well, if you are using lens and aperture combinations that give you a lot of depth of field to work with, focus and recompose can work out fairly well. On the other hand, if you’re working with wide apertures or long lenses, then you’ll need to be more careful. No matter what the situation, your best bet is to use the focus point that is closest to your subject if you can and avoid recomposing altogether."
-
- This link is dated Monday September 29, 2008 with keywords lenses
photography
tips
tutorials
I spend a lot of time in Lightroom 2 these days. I’m nobody’s pro, but I shoot a lot of photos, and after having used Lightroom (and now Lightroom 2) for a while now, I think I have a pretty good, simple, enthusiast-style workflow sorted out. I’ll summarize the workflow itself (importing through working up images) in follow-up post. Here are a few general tips that seem to work well for me:
Essentials, or Stuff I use constantly: I use Picks and keywords extensively. Reviewing newly-imported photos, I mark anything that I like right off the bat as a Pick by simply hitting shift-P as I scan through the gallery (and shift-X to immediately mark others as rejects; the shift modifier will mark the current photo and move on to the next shot). As I revisit a set of shots later, I find myself repeating this process; while those subsequent passes primarily identify further Rejects, I do occasionally find more Picks after starting to work up other photos. After each pass through a gallery, I use cmd-DELETE to remove (and delete) all the Rejects.
This has been a nice insight for my process: It means that I am fairly conservative when it comes to Rejects. That is, I don’t mark as Rejected 1) unless a photo is obviously bad (bad focus, blur, composition I really dislike, etc.) OR 2) until I’ve spent some time on photos in a set that I do like right from the get-go. This frequently helps give me a sense for appealing qualities of photos that I might not have noticed or thought of initially.
With a gallery through at least a first pass of identifying Picks and Rejects, I apply keywords. As with many aspects of processing photos, Lightroom has lots of ways to do this. There’s a jobber called Keyword Painting that I don’t use, because it’s always been much faster to simply select sets of photos and then apply keywords to the selection. In Lightroom 2, cmd-K focuses on the keyword entry box, which will auto-complete as you type. Lightroom 2 also has “recommended keywords” functionality, so that as keywords are assigned to a photo or set of photos, a new set of co-occurring keywords is identified and displayed for easy additional assignment.
Although I like to use a large-ish image preview (hit = to increase the size of preview images in the gallery grid) for screening for Picks and Rejects, for keywords I like to shrink the grid size (keyboard shortcut -). This fits more images into the grid and allows me to select larger sets for group assignment of keywords.
Lightroom allows for keywords to be nested, and there’s a great shortcut for accomplishing this: When entering keywords, separate child from parent keywords with a > sign: flickers > birds, for example, or burgers > food.
Simplifying, or Things I don’t use in Lightroom: Beyond keywording, Lightroom has at least a trio of way to identify and categorize photos: You can flag photos as Picks, label them with colors, and rate them with zero through five stars. I don’t use colors or stars at all. They may be highly useful for some situations, but they just clutter the cognitive space where I think about my photos: “Is this a three-star green photo, or a four-star blue one?” So except in the rarest circumstances, I haven’t yet found a use for ratings and color labels.
Indispensable keyboard shortcuts: There are grundles of these, but the shortcuts I use all the time are:
- G, E, D: Gallery, Editor, and Develop modes
- P: Mark as Pick (modify with shift)
- X: Mark as Reject (modify with shift)
- cmd-delete: Remove Rejects (optionally delete from disk)
- cmd-K: Assign keywords
- W: Jump to White Balance selector in Develop mode
- R: Crop tool in Develop mode
- J: Show clipped darks and highlights (Developer only; in gallery, changes display of thumbnails)
- L: Cycle the lights (view on black)
- tab/shift-tab: reveal/hide menu panels
Next time: The library filter, file organization, workflow, and Lightroom+Flickr?
- ()
- This article is dated Sunday September 28, 2008 and is posted to photography, technology
, with tags adobe lightroom
lightroom
mac
osx
photography
photos
software
tips
tools
Great tips from a wonderful food and photography blog.
-
- This link is dated Saturday September 20, 2008 with keywords food
photography
tips
tutorials
A DSLR Catechism:
What’s the meaning of it all?
Self-redemption through an endless stream of pouty self-portraits on Flickr. Also weddings.
- ()
- This article is dated Sunday August 31, 2008 and is posted to photography, with tags deanallen
photography
slogans
Update 7/26/2009: There are some fantastic new features of LR2/Mogrify to check out:
- Relative-sized borders (which I’ve written about before) are super.
- As is relative-sized annotation text. No more calculating your scaled text size to apply to an export, since you can set the size to a percentage of image width or height. Very cool. (This goes for watermarks, too)
- More border features! A checkbox for “identical borders” makes it much easier to set uniform borders. And inner borders are now supported for the creation of an inset frame with variable opacity.
- Setting compression by file size: Specify a file size and LR2/Mogrify will compress the image accordingly so as not to exceed that file size.
Give these a try and don’t forget to donate to Timothy’s work if you find it of use.
Also, note that you can use Lightroom’s post-crop vignette feature to generate curved borders (in black or white) with less flexibility but also without plugins.
—
Update 12/21/2008: Much of this writeup now has more historical than practical value, since Timothy Armes has updated LR2/Mogrify to support multiple border options within the plugin’s own control panel. You can specify different-sized frames & borders without any extra monkeying around. Nice work, Tim!
—
A question recently came up in one of the Lightroom groups over on flickr about creating images with large borders on just one side — space within a frame to place a title, for example, but just along a single edge of an image. The poster wanted to create images such as those found here, and wondered if it was doable without diving out to an external tool like Photoshop. The first working proposal was to use a graphical frame applied in the print module, but that isn’t an ideal solution for me; it still requires setting up that frame with something like Photoshop, and to apply it you have to switch modes. So I tinkered a while with a photo I took a couple of nights ago, and managed to get what I think is a nice solution via a direct export from Lightroom using the fantastic LR2/Mogrify plugin from Timothy Armes.
The out-of-the-box options for this plugin don’t provide a capability to create different-sized borders to an image, but the underlying engine for the plugin, Imagemagick’s mogrify tool, does — after a fashion. So, in a nutshell, the trick is to use the command line element of LR2/Mogrify in addition to its other features, to add to the picture’s canvas size before performing the other operations.

There are just a couple of tricks to get this to work smoothly using LR2/Mogrify. First is to add the extent command to the mogrify configuation, specifying the resulting size of the image you want to export:

I’ve specified the command -background white -extent 3008×2158 to be prepended to the mogrify command line that LR2/Mogrify will execute for me. I’m exporting an original image that’s 3008×2008, so I’ve specified 2008×2158 to the final image — adding 150 pixels, which will be filled with a white background. Next I use the built-in features of LR2/Mogrify to add the colored frames and the text overlay.

Because the extent command was applied to the beginning of the command line, the borders will be applied to the new image — the one with the bigger lower border created by extent.

The text overlay is just a bit strange. Note that instead of specifying the text to fall at the bottom, I’ve placed it at the top center of the image, with an offset of 2158 pixels. For some reason, directly placing it at the bottom center reverses the position of the new white border — it ends up at the top of the image, through some kink of mogrify that I can’t quite sort. It’s easy enough to compensate with the offset.
Export away, and that’s all it takes. You’ve built an image with a nice broad frame and caption, all right from Lightroom’s export panel. No Photoshop or print module necessary. Fun.
- ( [5])
- This article is dated Sunday August 17, 2008 and is posted to photography, with tags adobe lightroom
lightroom
photography
photos
tips
tools
[ Interested in my keywording workflow or duplicate keywords posts? ]
The last time I wrote about Lightroom, I was using sqlite to pull out frequencies of focal length. This time it’s keywords: Lightroom lets you build any number of custom keyword sets to apply to photos. It automatically builds a set of “recently used” keywords, but I thought it would also be handy to have a set of my most commonly-used keywords. While Lightroom has a command to export a list of keywords, that list doesn’t include frequencies. Keywords are stored in Lightroom in a table called AgLibraryTag (AgLibraryKeyword in Lightroom 2, see update below). Conveniently, Lightroom writes a count of each keyword to the same table, so it’s easy to get out all the information we need. (Note: The frequency in this table is a cached value and may not reflect the up-to-the-minute reality within your database. Rather than constantly update its databases Lightroom seems to update this count when you view the discrete keywords. I’m not sure how to force a library-wide update of all keyword counts. This is probably close enough, and is simpler/quicker than counting keywords image-by-image.)
Rather than run this data through R to build a histogram as I did with the focal length data, I just use awk this time to make a list with the most frequently-used tags at the bottom. With this list, you can easily build a corresponding tag set in Lightroom.
Remember to change paths to suit, and that (on OSX) you’ll probably need to upgrade your version of sqlite for all this to work. Also, always always work from a copy of your database as this script does.
cp ~/Pictures/Lightroom/Lightroom\ Catalog.lrcat ~/lightroom.lrdb
/usr/local/bin/sqlite3 -csv ~/lightroom.lrdb 'select ImageCountCache, name from AgLibraryTag where kindName="AgKeywordTagKind";' > /Users/alan/lr-keywords.csv
awk -F , '{print $1" "$2}' lr-keywords.csv | sort -n
rm ~/lightroom.lrdb
rm ~/lr-keywords.csv
Daydream: A map of how keywords relate to one another would be awesome.
Update: The above daydream is now possible with Lightroom 2’s related keywords functionality. Write-up here.
Update again (Oct 4 2008): The old code didn’t work with Lightroom 2 due to some things moving around in the database. The below seems to fix it and obtain keyword frequencies for LR2:
cp ~/Pictures/Lightroom/Lightroom\ 2\ Catalog.lrcat ~/lightroom.lrdb
/usr/local/bin/sqlite3 -csv ~/lightroom.lrdb 'select ImageCountCache, name from AgLibraryKeyword;' > /Users/alan/lr-keywords.csv
awk -F , '{print $1" "$2}' lr-keywords.csv | sort -n
rm ~/lightroom.lrdb
rm ~/lr-keywords.csv
- ( [2])
- This article is dated Monday July 30, 2007 and is posted to technology, photography
, with tags adobe
lightroom
photography
tools
Update 1/1/2009: I’ve built some much more sophisticated sets of stats from my Lightroom 2 catalog.
Update 6/27/2007: Lightroom v1.1 is out (it’s real, and it’s spectacular, see the O’Reilly Lightroom Blog for more), and it changes the database from a “library” to a “catalog.” In terms of this little tool, this change seems to only entail changing the filename referred to in the wrapper shell script — as I’ve done, below. Otherwise, generating a focal length histogram seems to work just as it did previously.

For fun: You can see that I use my fixed 50mm and 21mm lenses far more than anything else I’ve got. That’s because they’re so very pretty.
I use Adobe’s Lightroom to manage my RAW photos. It’s a wonderful, splendid tool. Among its features, it provides a handy metadata browser of your photo library, and includes the ability to browse by lens. Recently James Duncan Davidson mentioned being interested in plotting his use of various focal lengths, and commenters responded with a number of good solutions. Since Lightroom uses a SQLite database for its library, tools like SQLite Browser can be used to scan through the database file itself and export tables, at which point it’s straightforward to grep and find focal lengths. This is pretty slick all by itself, but I thought I’d put together a quick tool to automate the extraction and generation of this data. To do that, I use sqlite3 from the command line to dump the metadata table to a file, and then a short bit of R code finds the focal lengths and builds the histogram. The sqlite3 commands and the R code are invoked via a shell script that makes a copy of the main database to work with and cleans up the temp file when it’s all done.
Howto
If you made this this far, you might actually be interested in how it’s all done. After some tinkering, I found from Jeffrey Friedl’s Blog that Lightroom’s current database needs a newer version of sqlite3 than that which ships with OSX. With that update installed, sqlite3 will handle your Lightroom database without any problems.
Here’s the shell wrapper. Change paths to suit:
cp ~/Pictures/Lightroom/Lightroom\ Catalog.lrcat ~/lightroom.lrdb
/usr/local/bin/sqlite3 -csv ~/lightroom.lrdb 'select xmp from Adobe_AdditionalMetadata;' > /Users/alan/lr-metadata.csv
R CMD BATCH /Users/alan/bin/lr-getfocallengths.R
rm ~/lightroom.lrdb
rm ~/lr-metadata.csv
convert ~/lr-focallengths.pdf ~/lr-focallengths.jpg
And here’s the R code, which lives in lr-getfocallengths.R and is called by the shell script. Again, fix paths for your own circumstances:
lr <- file("/Users/alan/lr-metadata.csv", "r")
lrlines <- readLines(lr)
temp <- gsub("(/1)", "", lrlines[grep("exif:FocalLength>", lrlines)])
lengths <- as.numeric(gsub("([^[:digit:]])", "", temp))
lengths<-lengths[lengths<=1000]
pdf("/Users/alan/lr-focallengths.pdf")
hist(lengths, main="Histogram of Focal Length Use",
xlab="Focal length (mm)", ylab="Number", breaks=seq(0,200, by=4))
dev.off()
A few things to note:
- Depending on how your version of R is compiled, you can use jpeg(…) instead of pdf(…) to make the output file. My R isn’t currently compiled with jpg support, so I build a pdf file and then use convert on it.
- There’s some noise in the metadata that leads to the erroneous identification of focal lengths like 83456000. That’s not right at all. I skim off everything above 1000 in line 5 of the R code. (Which is still sort of silly. My longest lens is presently 200mm.)
- Relatedly, the x axis of the histogram only goes up to 200. To change that, modify the
seq(0,200, by=4) accordingly — you can change the upper bound as well as the width of the bins.
- A really slick way to do all this would be to properly parse the exported table in order to combine data, in order to limit the data to, for example, “favorites” by focal length. These aren’t in their own fields in the database, however, but rather all within a single column that holds all an image’s metadata, which makes it harder to select on multiple conditions. That’s a trick for another day.
- ( [2])
- This article is dated Monday May 21, 2007 and is posted to photography, technology
, with tags lightroom
photography
r-project
tools
About, the short version
I’m a sociologist-errant. This site is powered by Textpattern, TextDrive Joyent and the sociological imagination. For more about me and this site, see the long version.
Copyright and so forth: Commenters own their own posts, and linked or excerpted material is subject to whatever copyright covers the original. Everything else here is mine, rights reserved.
RSS feed