Sunday, May 31, 2009

Scanned Aerial Photo Pixel Size Determination

Many GIS people are collecting historical aerial photos to understand the changes in their areas of responsibility. I became interested in historical aerial photos when a student of Drs. John Jensen and Dave Cowan at the University of South Carolina (Dept. of Geography). One of Jensen’s graduate teaching assistants gave us a stereo pair of black and white aerial photos for us to use in our aerial photo interpretation lab. Among the tasks we had to perform was to decide what part of the US the photos covered. It was a trick question.

The stereo pairs were from the late 1930s, had smoothly rolling terrain, and were mostly covered by hay, corn and other crops. Trees were only located to provide shade for homes and along the larger streams. All but one student guessed Kansas was the area. The one who guessed differently said Nebraska (he was from Nebraska). We were all wrong. It was from Laurens County, South Carolina about 60 miles north of the university. Look on Google today.

We missed it because in 1989 (and today) when we drove through the area, there was little farming and the area was mostly covered by trees. But if we had looked carefully, we would have noticed that most of the trees were less than 50 years old.

So, thus began an interest in historical aerial imagery. The chart below was born at that time when I was a graduate student and working at South Carolina Department of Natural Resources.


1:40000

1:9600

1:4800

1:2400

1:1200

DPI

Microns

Feet

Meters

Feet

Meters

Feet

C'meters

Inches

C'meters

Inches

C'meters

508

50

6.56

2.00

1.57

0.48

0.79

24.00

4.72

12.00

2.36

6.00

635

40

5.25

1.60

1.26

0.38

0.63

19.20

3.78

9.60

1.89

4.80

847

30

3.94

1.20

0.94

0.29

0.47

14.40

2.83

7.20

1.42

3.60

1016

25

3.28

1.00

0.79

0.24

0.39

12.00

2.36

6.00

1.18

3.00

1270

20

2.62

0.80

0.63

0.19

0.31

9.60

1.89

4.80

0.94

2.40

1411

18

2.36

0.72

0.57

0.17

0.28

8.64

1.70

4.32

0.85

2.16

1814

14

1.84

0.56

0.44

0.13

0.22

6.72

1.32

3.36

0.66

1.68

2540

10

1.31

0.40

0.31

0.10

0.16

4.80

0.94

2.40

0.47

1.20

3629

7

0.92

0.28

0.22

0.07

0.11

3.36

0.66

1.68

0.33

0.84

  1. These are in photo scales; not in map scales.
  2. Diapositive or negative transparencies provide the best results. The original scan resolution should be at least 20% smaller than the final pixel size. Scanning images above 50 microns will make it difficult to measure fiducials correctly, and is discouraged when doing ortho-correction.
  3. The best available resolution is determined from the "Camera Calibration Report" in the "Lens Resolving Power" section. Depending on the quality of the camera, lens and film; resolution quality will vary across the image. 1000 / Tangential Line value will calculate the available resolution of the image in microns. As an example, cameras used to capture US Geological Survey (USGS) National Aerial Photography Program (NAPP) imagery typically had a maximum resolving ability from 8.85 to 15.38 microns. Using this information, the USGS typically scanned CIR NAPP imagery at 14 microns.
  4. Below is a graphic Spatial Model to convert scanned negatives to positives. It is simply each digital number minus 255 (if the data are 8-bit). You may wish to add another step to the model to the model eliminate all zero and 255 values. Remote sensing software (including ERDAS IMAGINE) like zero as the background values (black). ESRI's ArcGIS likes 255 as the background value (white). The difference comes from image analysts wanting a black background to ease eye strain, while GIS analysts wanting a white background for the map composition. Although the ArcGIS user could make the 255 values transparent, many are not familiar with this option. Thus ESRI made it simple for their customers.


PAGESIZE 6, 8 INCHES;
CELLSIZE MINIMUM;
PRINTERPAGESIZE 8.5, 11;
MARGINS 0.5, 0.5, 0.5, 0.5;
ORIENTATION PORTRAIT;
PRINTSCALE 100;
WINDOW UNION;
PROJECTION DEFAULT;
AOI NONE;
OPTIMIZE NO;
RASTER {
ID 1;
TITLE "n1_memory";
POSITION 0.833329, 0.666667;
TEMPFILE;
INTERPOLATION NEAREST;
ATHEMATIC;
DATATYPE FLOAT;
DECLARE "Integer";
COMPRESSION UNCOMPRESSED;
COORDINATES MAP;
RECODE NO;
CHILD 2;
}
FUNCTION {
ID 2;
TITLE "$n1_memory";
POSITION 1.68889, 1.91111;
VALUE "$n1_memory - 255";
AREA UNION;
CHILD 3;
}
RASTER {
ID 3;
TITLE "n3_memory";
POSITION 2.54444, 3.28889;
TEMPFILE;
NEWFILE;
INTERPOLATION NEAREST;
ATHEMATIC;
DATATYPE FLOAT;
DECLARE "Integer";
COMPRESSION UNCOMPRESSED;
COORDINATES MAP;
RECODE NO;
}

No comments: