23

I'm doing some time-intensive projecting of aerial photos, and I'm curious - what resampling technique is best to use on aerial photos? In ArcMap, my options are NEAREST, BILINEAR, CUBIC, and MAJORITY.

Nearest Neighbor and Majority are recommended for categorical data, whereas Cubic Convolution and Bilinear Interpolation are for continuous data.

I'm curious to know if there's any commonly-used algorithm for projecting aerial photos. I've just finished projecting one image using Nearest Neighbor and it seems to look good, but an aerial photo is not categorical data, so I'm going to try Bilinear next.

EDIT
I wasn't thinking of aerial photos as the same kind of continuous data as DEMs or precipitation data, but whuber pointed out that they are continuous and should be handled as such. Thanks again.

  • 1
    You might also be interested in the closely related thread at gis.stackexchange.com/questions/2587/… . – whuber Nov 29 '11 at 3:50
  • Could someone, please, provide any scientific paper comparing the different resampling methods for both continouous and categorical data? – NikosGr Apr 29 '18 at 12:34
25

Aerial photos are continuous data. Each pixel represents the response of a region of a sensor to light directed at it and as that light varies, the response varies continuously. The result is usually discretized (often into 255 or 256) categories, but that doesn't change the nature of the data. Therefore you want to interpolate rather than using categorical algorithms like nearest neighbor or majority. Bilinear interpolation is usually just fine; at some cost in execution time, cubic convolution will retain local contrast a tiny bit better. A small amount of additional blurriness is unavoidable, but that's almost impossible to notice until the image has undergone many such transformations. The errors made with nearest neighbor are much worse in comparison.

  • 7
    This is a great answer. I would add that occasionally cubic convolution introduces unusual banding; especially if the photo has previously been resampled or pansharpened. I generally go with cubic convolution unless I see these distortions, then I switch down to bilinear interpolation. The real question for me is always what histogram to use for the color resampling. I prefer a linear min-max histogram, but sometimes a 2 standard deviation based histogram highlights key features better. – blord-castillo Nov 29 '11 at 0:49
5

I lack the "reputation" to Comment so...

If radiometric analysis is going to be performed on the aerial photos then it should be done prior to resampling/projecting. Otherwise you will almost certainly introduce unintended bias into the final product. As per blord-castillo's helpful comment above.

If the proximate and final uses of the aerials are for visual appeal or background mapping, then I would go with the fastest method that gives you a usable product.

  • If the cell size of the new aerial is the same as the original, then NEAREST works best IMHO.

  • If the cell size of the new aerial is larger than the original, then BILINEAR works best.

  • If (for some crazy reason) the cell size of the new aerial is smaller than the original, then I would go back to using NEAREST.

The other options, CUBIC and MAJORITY, will produce artifacts in the resampled product, take longer to process, and otherwise don't seem to apply to what you're trying to do.

As a final point: While it's true the process of sampling light emanating/reflecting from the surface of the Earth is conceptually continuous, it is also true that the Earth's surface exhibits both continuous and discrete phenomenon.

  • In general, human activity tends to produce discrete transitions and

  • "Natural" features are often (but not always) continuously varying or at least have fuzzy edges.

So, as indicated in my first portion above, how you manipulate the aerials will depend on how you expect to use them.

4

I know that this question is rather old, but I wanted to add my 2 cents, in case others come across this thread trying to answer the same question...

The previous answers are correct when you truly wish to RESAMPLE your data, such as if you are aggregating your data from a 30 m pixel size to a 90m pixel size. In this case you are attempting to create a new value for each individual pixel, based on a collection of nearby pixels. So yes, here for discrete data sets you would select Nearest Neighbor, while for continuous data, you would choose either Bilinear or Cubic Convolution.

In this question however, the goal is NOT actually to resample the data, but simply to convert the existing data to a new projection - you want the same values, just in a new projection. In this case, you DO want to use Nearest Neighbor resampling for discrete as well as continuous datasets, to maintain the integrity of your original data values. I know this statement goes against everything you read about "resampling", but really think critically about what you want to achieve, and what you are doing to the data. Also, I don't make this recommendation on a whim...I've spent 5 years working on a PhD specializing in GIS/Remote Sensing, as well as teaching GIS/remote sensing undergrad courses.

Another note, the original poster asked about zero and/or negative values... If these values are true data values (ie the altitude can actually be 0 or -34.5), then you want to include these values. However if the value(s) in question are not true data, and instead used to represent NoDATA (say 0 or -9999), then you need to mask these pixels out of your raster (remove) prior to resampling via bilinear or cubic convolution. Otherwise, those -9999 pixels will be included in the resampling calculation, as if that pixel had a real altitude of -9999 and you will end up with invalid data values. As a VERY simplified example in cubic convolution, if your 4 nearest cell values are 4, 5, 16, -9999, including the -9999 could result in a new pixel value of -9974, which is not valid data.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.