RAW development rubs me Raw

I’m exhausted. For the last four nights I’ve been up late Lightroom’ing the pictures I took on my little Arizona annular eclipse trip. I’m a new Lightroom user and I’m not entirely impressed with the program. It’s a first class general RAW developer but I don’t think it’s as good as Capture NX when working with Nikon NEF files. For the nonce I will keep Lightroom’ing away; you have to master something before you can have a valid opinion about it!

lake powell boat at dusk

Lonely Lake Powell boat at dusk

As annoyed as I am about Lightroom I know, from bitter experience, that when I first process images I only see problems. The composition sucks. The colors are off. Things are too dark or to light. After a few dozen disappointments the mood darkens and I wonder just who the fuck took all this shit? But I solider on, waging relentless pixel warfare, because in few years, when I’ve forgotten about light curves, sharpening parameters, edge masks, color spaces and all the technical hoo-hah that goes into digital image making, I start seeing the pictures not the flaws. I sometimes catch myself looking at my old pictures and wondering just who took all these great shots. You change your mind about pictures!

This is why I don’t use “star” ratings. Most image management systems have ratings. Lightroom has a five-star system, Thumbsplus does something similar and every image management tool I’ve looked at has a comparable feature. Obviously the masses expect and demand ratings. Too bad the masses are wrong. In the long run ratings are meaningless. You really see this with restoration projects. I’ve spent days restoring pictures that what I would rate as total crap if I had just shot them. Yet here I am spending long hours on yesterday’s crap.

Restoration work also changes your attitude about duds. In my film days I ruthlessly pruned my slides and negatives trashing exposures that didn’t meet my standards of the time. Now I curse that delusional jackass for throwing away my precious originals. It’s surprising how useful duds are; they fill in missing details and remind you of your ever-changing opinions.  Save your duds I guarantee you will feel differently about them in a few years and, of course, others will have completely different takes.

eclipse fans

Annular eclipse fans

The Wahweap Wow

Glen Canyon dam

Glen Canyon dam

Last weekend I was in Page Arizona to visit my parents and catch the May 20th 2012 annular solar eclipse. Page is a little town that owes its existence to the construction of the Glen Canyon dam in the early 1960’s. The reservoir behind the dam, Lake Powell, has appeared in so many movies that it should collect royalties. Charlton Heston crashed his spaceship here in the first and only good Planet of the Apes movie.  John Travolta nuked the place in Broken Arrow. Even Jesus Christ used Lake Powell as a Dead Sea ringer in The Greatest Story Ever Told.

Page, the dam and Lake Powell did not disappoint. I had a great time toodling around shooting pictures. I only had one day which was partly devoted to the eclipse but I saw enough to give Glen Canyon an unqualified thumbs up. If you’re into rocks, desert and water this place is bucket list material. Like MacArthur I will return.

Wahweap Overlook eclipse fans

Wahweap Overlook eclipse fans

While pleased with Glen Canyon I was surprised by the large number of people who turned out for the annular eclipse. The US park service in conjunction with local amateur astronomers set up viewing grounds on Wahweap Overlook and ran full size shuttle buses from the nearby Carl Hayden dam visitor center. At least four busloads of eclipse fans were carried to the overlook where they joined more amateur astronomers and serious eclipse photographers that had set up dozens of telescopes and cameras for the big show. There must have been at least four hundred people on Wahweap Overlook and Wahweap was only one of many sites where people set up to watch the eclipse. It’s gratifying to see that when a real star puts on a show the audience is huge.

Before the eclipse started, and during the early phases when the Moon was creeping on the Sun’s disk, I walked around looking through telescopes. Two scopes stood out. One expensive large aperture Hydrogen Alpha scope served up gorgeous high-resolution views of the Sun. In Hydrogen Alpha light solar prominences , filaments  and photosphere mottles are clearly visible. The big Hydrogen Alpha scope put on a good show but bang for the buck went to a 15 dollar light funnel that a 14-year-old made by hand and attached to a small refractor. His makeshift funnel projected the brightest and clearest white light image of the Sun. I told him his projection was the best; he was happy to hear it.

iPhone image captured by holding eclipse shades over the lens.

As the eclipse approached the annular phase I set up my camera. I didn’t have the right filter, only a 4D neutral density, but I thought I’d give it a try. When the light ring formed I fired off a few shots. The filter didn’t cut enough light so I immediately gave up and went to plan B. Plan B consisted of covering the lens of my  iPhone with eclipse shades and Phd’ing it.  I took a few frames and managed to catch the ring. It was a minor triumph of iPhoneography.  After that I just gawked through my eclipse shades while the Sun and Moon wowed the masses with their dance. The crowd burst into applause when the ring broke but, sadly, the performers declined an encore.

Lake Powell houseboats

Lake Powell houseboats

As I have already said, annulars are not in the same awe-inspiring class as totals but this annular, falling where it did, was special. From the overlook you could see the lake, the dam, towering red rock formations and of course the sky. The perfect ring of light was just the icing on the cake of a Wahweap wow!

The Joys of Photographic Waybacking

Remember Mr. Peabody’s Wayback Machine. Mr Peabody was dog, with a pet boy Sherman, that used his Wayback time travel machine to visit the past. I’m not sure if he ever visited the future; that’s a question best left to Rocky and Bullwinkle historians. Well, I have Wayback machines; they’re called film and flatbed scanners. I spend way to much time scanning and restoring old photographs. Over the years I’ve scanned thousands of images. It only takes a few minutes to get a high quality scan but it can take days of image editing to restore old damaged originals. Hence, I always have a backlog of scanned pictures to fix.

My enthusiasm for this endless task waxes and wanes with my general photographic energies. A few weeks ago I upgraded my arsenal of DLSR cameras and lenses. New lenses always give me boast. So lately I’ve been out pixel harvesting with a lovely little f2.8 macro lens.  I think she I will be an item for years to come — wide open her bokeh is beautiful. While I enjoy working with my spanking new crystal clear digital images I often find myself wandering in my vast image file directories and picking out old scans to work on. Today I whiled away a rainy afternoon restoring pictures I took over forty years ago. Here’s a shot from my ACS Beirut Lebanon boarding school days. This is from an old Instamatic camera. I believe it was my second camera. Over the years my cameras have gotten better and better but they still cannot go Wayback in time.

Me before and after ACS Beirut Lebanon 1968

Lying on my bed and trying to look tough for the camera. I don’t think the pajamas are helping. This image is from an old Kodacolor Instamatic slide taken in 1968. In the original scan fingerprints are visible. I take good care of originals but accidents happen. For more before-after diptychs click.

Revenge of the PhD Camera

Hipstamatic water meter

Hipstamatic water meter

Cameras come in two flavors. There are expensive serious cameras used by serious photographers to take serious photographs and then there are PhD, (Push here Dummy), cameras. Serious cameras meet the highest technical standards, lenses are diffraction limited, chromatic aberration approaches zero, pixel counts match Nyquist limits, ISO’s exceed retinal sensitivity, auto-focus is instantaneous, color spaces are wide, calibrated and range into the infra-red and ultra-violet. PhD cameras don’t go there! PhD cameras provide a button for dummies to push. Over the years I’ve ying’ed and yang’ed from serious to PhD cameras. It’s not that I cannot make up my mind. Camera choice is another eternal struggle sort of like that squabble between good and evil or light and regular beers.

When I’m on a serious photography kick I put time, expertise and money into my pictures. For me serious photography is exhausting. I  seek out worthy subjects, wait for the right light, agonize over composition, experiment with lenses, tweak f-stops, adjust shutter speeds and take as many exposures as light and time allow. Then the post shutter ordeal begins. Digital imaging processing makes anything possible. You can take your exposures and like some mad photo-shopping Rumpelstiltskin spin straw into gold.  But, as in the fairy tale, there is a high price, perfect images will suck years out of you. Photographers often talk about workflow and they aren’t kidding. When I start tweaking my workflow I know I’m reaching the end of my serious rope. Photography is one of my hobbies and I never ruin hobbies by turning them into jobs!

The World's largest Photo Libraries 2011  1000memories.com

Eventually I snap out of it and resume PhD’ing. Unlike serious photography PhD’ing is effortless and fun. It’s always been fun, remember Brownies and Instamatics, but this is the golden age of PhD photography! In the last decade PhD cameras have evolved and mutated from cheap plastic boxes filled with grainy high-speed ISO film to sophisticated little internet photo-shopping engines that ride around in our pockets as cell phones. I don’t even know why they are called cell phones. My iPhone takes hundreds of images for every phone call it processes. It’s really more of an iCamera+iBrowser that can, on rare occasions, be used as a phone. Based on surveys of web image sites I am not the only iCamera user. PhD photography is growing faster than the national debt.

Mixing up cell phone color channels

Mixing up cell phone color channels

Explosive growth attracts armies of sinners and saints. Every two-bit whore chasing a buck is now writing image processing software for cell phones. In the last two years we’ve seen apps that stitch panoramas on the fly, apply cheesy photo-shop effects and automatically create HDR images by blending two or more exposures.  As Sturgeon’s law predicts most of these apps are crap but that’s not a problem for PhD photography. The goal is to offer a fun button for dummies. My favorite PhD app is a great little toy called Hipstamatic. Hipstamatic simulates crappy old PhD film cameras loaded with expired film. You can choose a lens, a film and a flash or you can just shake your iPhone and let it randomly select these parameters. Shake and shoot; it’s the revenge of the PhD camera.

Assigning SmugMug Print Size Keys

I believe that a picture’s aspect ratio,  its width divided by its height, should be tuned to its contents.  Consequently,  I am not a slave to standard aspect ratios and print sizes like the ones shown in the following table.

Aspect Ratio (Short/Long) Print Sizes (Inches)
0.5 4×8, 5×10, 8×16, 10×20
0.7 3.5×5, 7×10
0.666666667 4×6, 8×12, 10×15, 12×18
0.714285714 5×7
0.772727273 8.5×11

Over the years I have clipped and cropped my pictures producing a large number of nonstandard ratios. This is not a problem until I decide to order prints.

Pictures sites like SmugMug offer many standard sizes but they cannot accommodate every crank with an aspect to grind.  To print a strangely shaped picture on SmugMug you have to open up the website’s print selection tool and fit one side or your picture to a standard print size.  This leaves part of the print blank and is often called the letterbox method.  Letterboxing is not ideal but it gets the job done.

For standard print sizes there is a much better way.  The following J verb takes the pixel dimensions of my images and computes standard, 300 DPI, print size keys like: 4×6, 5×7 and 8×10. After assigning print size keys you can select and print all standard sizes with a few mouse clicks.

smugprintsizes=:3 : 0

NB.*smugprintsizes v-- compute largest print size for given dpi.
NB.
NB. Computes the  largest  print size  (relative  to  DPI x)  for
NB. SmugMug images. Only images that have aspect ratios  close to
NB. the ratios  on  (SMUGPRINTSIZES) are associated  with a print
NB. size.
NB.
NB. monad:  st=. smugprintsizes btclImages
NB.
NB.   'albums images'=. readsmugtables 0
NB.   smugprintsizes images
NB.
NB. dyad:  st=. iaDpi smugprintsizes btclImages
NB.
NB.   200 smugprintsizes images

SMUGPRINTDPI smugprintsizes y
:
nsym=.s:<''

NB. reduce image table on PID
images=. }. y [ imhead=. 0 { y
pidpos=. imhead i. <'PID'
if. 0=#images=. images #~ ~:pidpos {"1 images do. 0 2$nsym return.end.

NB. compute print sizes table
pst=. printsizestable SMUGPRINTSIZES

NB. image dimensions short x long
idims=. _1&".&> (imhead i. ;:'WIDTH HEIGHT') {"1 images
'invalid image dimensions' assert -. _1 e. idims
idims=. (/:"1 idims) {"1 idims

NB. aspect ratio and print area (square inches)
ratios=. SMUGASPECTROUND round %/"1 idims
areas=.  SMUGAREAROUND round (*/"1 idims) % *: x

NB. mask table selecting images with ratio
masks=. (SMUGASPECTROUND round ;0 {"1 pst) =/ ratios
if. -.1 e. ,masks do. 0 2$nsym return.end.

masks=. <"1 masks
pids=.  s:&.> masks #&.> <pidpos {"1 images

NB. largest print area for selected images at current DPI
masks=. (1 {"1 pst) </&.> masks #&.> <areas
pids=.  (<"1&.> masks #"1 &.> pids) -. L: 0 nsym
sizes=.  <"0&.> 2 {"1 pst
; |:&.> ; pids ,: L: 0 (# L: 0 pids) # L: 0 sizes
)

Command Line C# SmugMug API Metadata Download

I have a skeleton in my photographic closet!  I enjoy hacking pictures as much as I enjoy shooting them.  Before digital photography I got my jollies the old fashioned way with chemicals:  dark room chemicals.  I still get all emotional when I remember the scent of a fixer.   Ahhh — those were the days.

Now,  instead of inhaling fumes in the dark, I hang out on picture sites:   SmugMug is my current favorite.   Over the last year I have uploaded thousands of carefully cataloged  images:  you can view them here.   I may not be much of photographer but when it comes to image metadata my anal analytic side shines.  I can EXIF, IPTC and GEOTAG with the best of them.

Because I tweak metadata online, and I suffer from a retentive character flaw,  it’s only natural that I would seek to download my sacred metadata.  This is what SmugMug’s API is for!  When I started experimenting with the SmugMug API I made the mistake of reading the documentation.  SmugMug documentation is,  at best,  a “work in progress.”  It may help but probably not!  I found trolling the web looking for code examples more productive.

To help the next SmugMug API geek I am posting a fragment of a simple command line C# metadata dump utility I put together.   The core of the program  is shown below and all the C# source is available here.  This program is to trivial to license so help yourself.

namespace SmugMugMDDumper
{
class Program
{
private const string xmlHeader = @"<?xml version=""1.0"" encoding=""UTF-8""?>";

// defaults - insert your own SmugMug apikey, password, email here
// defaults are used if corresponding command line arguments are missing
private const string apiKey = "<YOUR SMUGMUG APIKEY>";
private const string passWord = "<YOUR SMUGMUG PASSWORD";
private const string emailAddress = "<YOUR SMUGMUG EMAIL>";
private const string outFile = @"c:\temp\smugmugdata.xml";

static void Main(string[] args)
{
try
{
DataSet ds = new DataSet();
XmlDocument doc = new XmlDocument();
Arguments comline = new Arguments(args);
SmugmugMetaData smugmd = new SmugmugMetaData();

// parse and set any command line arguments
if (comline["help"] != null)
{
string __helpMsg = @"
Typical command line calls:

SmugMugMDDumper.exe -apikey:""xQDzWwLp2I1GUGli88g999VrQWN4Xz56"" -email:""youremail"" -password:""nimcompoop"" -output:""c:\test\smugdata.xml""
SmugMugMDDumper.exe -output:""d:\mystuff\smuggy.xml""
SmugMugMDDumper.exe -password:""newpassword"" -output:""c:\temp\out.xml""
SmugMugMDDumper.exe -help

";
Console.Write(__helpMsg);
return;
}

string __apiKey;
if (comline["apikey"] != null) __apiKey = comline["apikey"];
else __apiKey = apiKey;

string __emailAddress;
if (comline["email"] != null) __emailAddress = comline["email"];
else __emailAddress = emailAddress;

string __passWord;
if (comline["password"] != null) __passWord = comline["password"];
else __passWord = passWord;

string __outputFile;
if (comline["output"] != null) __outputFile = comline["output"];
else __outputFile = outFile;

// start output file
smugmd.WriteToFile(xmlHeader + "<SmugMugData>", __outputFile);

// open SmugMusg session - uses https
string __sessionID = smugmd.StartSMSession(__apiKey, __emailAddress, __passWord);

// collect all galleries
ds = smugmd.GetGalleries(__sessionID, __apiKey, __outputFile);
DataTable myTable = ds.Tables[0];
DataRow myRow;

// image metadata for each gallery
smugmd.AppendToFile("<GalleryImages>", __outputFile);
int rowcnt = myTable.Rows.Count;
string rowstr = "/" + rowcnt.ToString() + "]: ";
for (int i = 0; i < rowcnt; i++)
{
myRow = myTable.Rows[i];
Console.WriteLine("gallery [" + (i + 1).ToString() + rowstr + (string)myRow["Title"]);
doc = smugmd.GetGalleryImages(__sessionID, __apiKey, (int)myRow["id"], __outputFile);
}
smugmd.AppendToFile("</GalleryImages>", __outputFile);

// complete output file - end SmugMug session
smugmd.AppendToFile("</SmugMugData>", __outputFile);
smugmd.EndSMSession(__sessionID, __apiKey);

Console.WriteLine("[Complete] output file: " + __outputFile);
}
catch (Exception ex)
{
Console.WriteLine("[Fail] SmugMug Metadata Dumper Failure - error message: " + ex.Message);
}
}
}
}