Fourmilab home

Lignières and the Alps

Lignières: Then and Now

One-third scale panorama: Panel 1 of 6 One-third scale panorama: Panel 2 of 6 One-third scale panorama: Panel 3 of 6 One-third scale panorama: Panel 4 of 6 One-third scale panorama: Panel 5 of 6 One-third scale panorama: Panel 6 of 6

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).

Production Notes

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.

Capturing the Images

ALPA SWA 12 camera with Zeiss Biogon lens on Gitzo tripod 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.

Digital Post-Processing

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.

Full frame panorama as assembled by Hugin (reduced) 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.

Annotation and Web Image Extraction

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 ([1], [2]) 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!

Summary of Software Tools Used

This document and the images it includes, and all documents and images in its subdirectories, are in the public domain and may be used in any manner without permission, restriction, attribution, or compensation. Back links to this site are welcome, but are not a requirement for use of this material.