Lignières and the Alps
When the weather is clear, the hills that rise behind Fourmilab's home village of Lignières afford magnificent views of the village in the foreground with the Alps stretching out along the distant horizon. The 4807 metre summit of Mont Blanc, the highest point in Western Europe, is visible more than 135 km to the south. I have long wanted to make a panoramic photograph of this spectacle, but opportunities are relatively rare since the Alps are frequently shrouded in clouds, and when they aren't summer haze and winter ground fog often interfere with visibility—and that's when it's not bucketing down rain or blowing up a blizzard! On February 16th, 2007, toward the end of the afternoon, a “pretty good” opportunity presented itself; the day had started out socked in with fog, but by mid-afternoon the wan winter sun managed to burn it off at the 806 metre altitude of Fourmilab, and the Alps were clearly visible and free of clouds. The sky was milky with thin clouds rather than an ideal deep blue and the plain between the Jura mountains and the Alps was still somewhat obscured by fog, but this was the clearest day I recalled since last Fall. In photography, as in astronomy, you have to work with the sky you've got, so I decided to give it a try. At the least it would provide a real world test of the tools and techniques for photographing and assembling a panoramic image.
This page presents the results, which you can examine in various formats by clicking one of the links below, or by choosing one of the six panels of the one-third scale panorama by clicking in the image above. The full scale image, at 14104×1760 pixels, is a tad too large for most people's screens, even the fabled WHUXGA, so it will open in a new window within which you can scroll around to explore the image. Ideally, panoramas should be “immersive”—you don't stand back and look at them from a distance, but rather view them close-up, as if you were on the spot and looking around; scrolling a huge image on a computer screen may not be as satisfying as viewing a print on a gallery wall, but it's the best we can manage on the Web.
The one-third scale panorama includes legends identifying the major Alpine peaks visible on the horizon; the full scale scrollable image may be viewed with or without the legends. The name of each peak is followed by its summit height in metres above sea level. Various references differ by a few metres on the height of these mountains; for consistency I have used the altitudes given in the Carte générale de la Suisse 1:300000 (1989 edition) published by the Office fédéral de topographie (swisstopo).
The panorama image was assembled from eight overlapping images taken between 17:03 and 17:06 local time (UTC+1) on Friday, February 16th, 2007. The camera was located at 47°5'4.38" N, 7°3'10.24" E.
The photos were taken with an ALPA SWA 12 camera with a Zeiss Biogon T* f/4.5 38 mm lens and Leaf Aptus 75 digital back. Exposure for all of the images was 1/60 second at f/16 with ISO 100 sensitivity. No centre filter was used on the lens, as the Biogon is admirably free of vignetting, especially with the 48×36 mm sensor size of the digital back. All images were stored in Leaf “MOS” format, at the full resolution of 4992×6666 pixels (33 megapixels) with 16 bit colour depth in each channel. The grey balance was set by photographing a neutral grey card under ambient light and using the Leaf back's grey calibration facility.
The camera was mounted on a Gitzo G1228 tripod with a G1270M panoramic
head. I took these pictures from the edge of a road which wasn't
level and I made no effort to precisely level the tripod head,
although it was pretty close. I used the built-in spirit levels
of the ALPA camera (it has three of them) to level the
camera before each shot. Although the tripod has a calibrated yaw
scale, I simply eyeballed the overlap of the successive frames,
looking for prominent features I could use to align each
adjacent pair, and taking care that they were not too close to the
edges where distortion increases. The lens was scale focused to
infinity, and the exposure determined with a light meter and
confirmed by viewing the image histogram on the digital back's LCD
display. All of the images to be assembled into
a panorama should be taken with the same exposure; otherwise it is
very difficult to avoid visible seams where the images join. In the
present case, this resulted in the sky at the very right of the panorama being
overexposed and featureless because it was near the Sun, then
approaching the horizon in the west. Trying to compensate would
make the sky look better but the ground below it much too
dark. Besides, the western sky was filled with milky clouds and
wouldn't have looked much better even if properly exposed.
All processing of the images from the camera into the final panorama presented here was done on a Dell Inspiron 9100 (3.4 GHz Pentium 4) “laptop” running the Fedora Core 6 distribution of the GNU/Linux operating system. The large files created in the production process were stored on the Fourmilab in-house server and accessed via NFS over the Fourmilab local network. All of the software tools used in the production process are free, open source software.
The raw images from the camera were converted into PPM files with the Dcraw utility and gamma corrected with the pnmgamma component of the Netpbm image processing toolkit, then output as TIFF files with its pamtotiff utility. This process preserved the 16 bit colour depth of the original images from the camera.
The eight resulting TIFF images (each 191 Mb in size) were then loaded into the Hugin panorama compositing tool, an interactive front-end to the Panorama Tools library. The image containing the centre of the panorama was chosen as the anchor, and control points representing objects which appear in adjacent frames were identified (between four and six per pair of frames). In addition, horizontal reference lines were defined in the leftmost and rightmost images to constrain curvature of the horizon. After an initial set of control points had been defined, an optimisation was run and the preview examined, then additional control points were specified as necessary to add constraints to pull together features which did not align in the preview. After the preview appeared satisfactory, the “stitcher” was used to generate the actual blended panorama, using equirectangular projection, the Nona stitcher, and “soft blending”, which invokes the Enblend package to assemble the final seamless mosaic. The result was a 14450×4738 pixel TIFF file with 16 bit colour depth occupying 523 Mb of disc space. The process of assembling the panorama ran for almost exactly an hour. (Blending the panorama uses many large intermediate files which were accessed on the server across the network; generation would probably have taken less time if these files were on the local hard drive, but as it lacked sufficient free space, this was not an option.)
The assembled panorama contains black space at the edges where the process of deforming the individual images shrunk them from their original boundaries, so a rectangular “full-frame crop” was extracted which eliminated the black borders, reduced the image size to a mere 14104×4080 pixels (57 megapixels), and shrunk the TIFF file to 330 Mb.
Since a 38 mm lens is a very wide angle for this format
(equivalent to a 27 mm lens on a 24×36 mm film
camera), this panorama included a great deal of sky and uninteresting
material in the near field. Since I was aiming for a very wide
panoramic format, I cropped the image to 14104×1760 (almost
precisely an 8:1 aspect ratio). The image at the right illustrates
how the panorama was cropped from the full frame mosaic. If I had
wanted a larger-scale image, I could have used a longer focal length
lens and assembled the mosaic from more individual shots, but since
the goal of this project was to produce a Web page, for which an image
1760 pixels in height is already uncomfortably large, I decided to use
the 38 mm Biogon, whose sharpness is legendary, and wide field of
view allowed capturing the scene in a modest number of exposures. The
final cropped image was saved as a master 143 Mb TIFF file with
16 bit colour depth.
I had decided to use The GIMP for final image processing and production of the images for Web publication. That program, though versatile and easy to use, is, regrettably, limited to processing images with a maximum of 8 bit colour depth, which loses detail in an image with as wide a dynamic range and subtle gradations as this one. Before transferring the image to The GIMP, therefore, I used its relative Cinepaint (which you can think of as a version of The GIMP with less editing functionality but capable of handling images with colour depth all the way up to 32 bits) for the final tweaking of the appearance of the image before reducing it to 8 bits per colour channel, which would necessarily occur when I compressed the image with JPEG for the Web.
During the earlier stages of processing, I routinely used Cinepaint to view images and experiment with colour rendering and processing options, but I never saved the output. I tried to use it to crop the full frame panorama from the mosaic generated by Hugin, but its memory requirements drove my 2 Gb RAM development machine into hopeless page thrashing, so I ended up cropping with the Netpbm pamcut command line utility. The cropped panorama was sufficiently small that Cinepaint had no memory problems processing it in the following steps.
To make the most of the limited colour depth of JPEG, I used Cinepaint's “Curves” tool to apply a brightness transformation which brightened the foreground without losing too much detail in the sky and snowy Alps. I arrived at the transform by trial and error, adjusting the curve and looking at the result on the screen. The best compromise seemed to be a curve convex from above with a single control point about 2/3 of the way toward the right side of the box and 80% of the way to the top. This is a purely æsthetic judgement which has to be made based on the content of a specific image, and shouldn't be used as a general guideline. There is no way an image displayed on a computer screen or printed on paper can encompass the intensity range the human eye can perceive, so it's up to the photographer to decide what is important in the image and what must be sacrificed.
Next, I used the “Unsharp mask” filter in Cinepaint to modestly sharpen the image. As a long-time film photographer, I find the extreme sharpening some people apply to their images just screams “digital” and the perceived improvement illusory because it comes at the cost of noise which obscures fine detail. Apparently the developers of Cinepaint agree with me, because the default settings it proposed: radius 30, amount 0.5, and threshold 0 produced just the degree of sharpening I desired; whenever I varied the settings in either direction, I judged the result to be either too fuzzy or too sharp.
I saved the final tweaked 16 bit colour TIFF in case I decided to return to it later for further work, then loaded it into The GIMP, which reduced the colour depth to 8 bits per channel. Then I set about adding the text annotation for the mountains. I consulted two references available on the Web (, ) which show annotated panoramas from the Chasseral. Since that vantage point is at twice the altitude of Lignières and somewhat to the north, the perspective is a bit different, which occasioned some head scratching and careful examination of details of the peaks, but I think I got it mostly right. If I did goof, it will be easy enough to fix since I used The GIMP default of placing the legend for each peak on its own independently editable text layer.
All that remained was to extract compressed JPEG files for inclusion in these pages in the various resolutions, with and without legends. Since the full resolution and scrollable one-third panoramas are large files, I saved them in “progressive” format, which allows them to be displayed quickly in a coarse form with additional detail filled in as the balance of the file arrives. I applied a modest further brightness curve correction to the thumbnail and one-third scale images before saving them as JPEG—this brightens the foreground and renders detail there easier to see at the expense of fine gradations of tone in the distant mountains, which are difficult to see in any case at reduced scale. No further colour correction was applied to the full scale extracted images, so the foreground in them will appear more subdued but detail in the Alps is easier to pick out. Since somebody scrolling through the image will probably be concentrating on either the foreground or the Alps, but not both at the same time, the eye's automatic setting of mean intensity will compensate for most of the darker tones in the foreground. Besides, they aren't unrealistic: this is a picture taken in mid-February at an altitude of 806 metres at 47° north latitude with the Sun less than eight degrees above the horizon; that doesn't make for a brilliant, vividly-coloured landscape!
by John Walker