8

There are several GeoTIFF files (size ~7000x7000 px) which I try to open in ArcGIS Desktop 10.0. I have already created raster pyramids for them (.ovr files) using geoprocessing tool but their quality is rather bad (0.25 resize):

small example

Each GeoTIFF file has many thin details - actualy it is CAD drawing saved to raster. I have tried to do manual resize for GeoTIFF in free image viewer and used resample + anti-aliasing. Result looks great (0.25 resize):

small example

Standard resample methods (in ArcGIS 10.0) which I have used for pyramid creation didn't give me any good result. I also tried to view image without pyramids - same thing.

Then I have tried to create that pyramid file (.ovr) using GDAL library (GDALDataset.BuildOverview). But GDAL also is not capable of using anti-aliasing when generating OVR files.

Another way is to generate OVR file manually. I have tried to find any library to create OVR file. Nothing. Soon, I have realized that OVR actually is a multipage TIFF file. When I have created OVR file manually in image editor (as multipage TIFF), renamed and tried to use it in ArcGIS - I saw black screen with some distorsion. Some problem with color palette may be. I also have not found any OVR specification.

Does anybody know is there any possibility to generate such pyramid files using anti-aliasing to improve image quality? May be any links to OVR specification or libs?

EDIT1:

Here is part of raster which can be used as an example (try to build pyramids in ArcGIS).

EDIT2:

In order to completely answer to a comments concerning changing resampling method when building pyramids I have tried all methods in ArcGIS. Then I have opened each ovr file as multipage tiff and took one pyramid level and saved it to a separate file. Then I have resampled same source image in freeware viewer (IrfanViewer) to the same size (pyramid level). Source image has size 5001 x 3361 px. Pyramid level has size 313 x 210 px. So, image was reduced in 16 times. Here is my results:

  • Nearest resampling method (from pyramid file):

example nearest

  • Bilinear resampling method (from pyramid file):

example bilinear

  • Cubic resampling method (from pyramid file):

example cubic

  • Resample with anti-aliasing in IrfanViewer to the same size:

example anti-aliasing

EDIT3:

I am providing one of my source georeferenced rasters and its resampled example to show the quality which I am trying to achieve in pyramids.

8
  • Can you post the image so other can experiment with it? Mar 5, 2012 at 22:12
  • I can't post entire image but I have added link to some part of it. I hope it will be enough. Try to resize it x0.25 with and without anti-aliasing in any image viewer and you will see the difference and what result I am trying to achieve for pyramids. Mar 6, 2012 at 12:14
  • I think you will have to repost the image or part of it in its original format as a non-geoferenced JPG file is not going to work the same as a georeferenced TIFF file. Can you clip and zip the original TIF file?
    – blah238
    Mar 6, 2012 at 20:34
  • Silly question: do you have the original CAD drawings? If so, in what format?
    – Mike T
    Mar 6, 2012 at 20:52
  • These files are not georeferenced yet. How georeference information can affect process of building pyramids? It looks like each pyramid level is simply resize x0.5 of previous level (or source image for the first level). But I am not 100% sure. Do you have any link for more detailed description? I will try to find georeferenced raster... Mar 6, 2012 at 21:06

3 Answers 3

3
+50

I dealt with this long ago, the only workaround I ever found used more space but looked good. Try this:

  1. Convert from 8 bit to 24 bit: gdal_translate -expand rgb
  2. Add overlays: gdaladdo -r average_magphase -clean -ro FR_102-132.tif 2 4 6 8 16

There should be toolboxes to get the same results in the ESRI world.

1
  • Thanks Greg! This is the best result I have got using gis tools. Looks much more better than my previous results. I will further experiment with different methods. Mar 7, 2012 at 8:59
2

Try explicitly setting your pyramid resampling method to bilinear interpolation or cubic convolution.

5
  • I have already tried all availiable resample methods for building pyramids - result is very close to the first picture. Feb 21, 2012 at 10:20
  • Perhaps it's not a problem with pyramids at all -- try setting the layer's resampling method to bilinear or cubic on the Display tab of the properties for it.
    – blah238
    Mar 6, 2012 at 18:12
  • I have tried setting the layer's resampling method to bilinear and cubic on the Display tab. The best results among it gives bilinear, but anti-aliasing provide much more better result especially when source image have width/height >4000px. I have added more comparison examples to my question. Mar 6, 2012 at 20:13
  • What happens if you don't create pyramids and specify bilinear resampling on the layer's display properties?
    – blah238
    Mar 6, 2012 at 21:03
  • Same thing. It looks slightly better but far from the last example in my question (anti-aliasing in IrfanViewer). I have tried all possible combinations: with/without pyramids + different resampling methods. Mar 6, 2012 at 21:20
1

I have dealt with this same problem in ArcGIS for months and I think I have finally figured it out: ArcGIS will allow you select a certain resampling method, but it might ignore it!

Testing with the sample you provided, I found the same ugly pyramid creation you found early one. I chose bilinear pyramid creation, but when I opened the properties for the image in ArcCatalog, I discovered that the pyramids were actually created as nearest-neighbor against my wishes.

ArcGIS created these pyramids despite selecting bilinear resampling

Using this discussion, I was trying to create good-looking pyramids through GDAL, but I was having problems getting the file formats to correctly transfer between GDAL and ArcGIS. In this process, I discovered something. I will explain with the step-by-step process...

  1. Import the raster to a file (instead of into a geodatabase) and allow ArcGIS to create the pyramids. It will probably use nearest-neighbor regardless of your selection (tested through the toolbox and arcpy).
  2. In the folder where the raster is stored, delete the .ovr and the .aux files. These are the actual pyramid files.
  3. Open ArcMap and add the raster to your DataFrame. It prompts with a different dialog, requesting to generate pyramids. Creating the pyramids through this dialog honors the resampling method selection.

enter image description here

After deleting the .ova and .aux files, ArcGIS properly created these pyramids

Doing some testing, I realize this is slightly different than the problem you are having, but maybe you are experiencing this without realizing it. I could't find any other discussions online about the poor raster pyramid quality, and I have definitely experienced and resolved some of those issues. FWIW, I have had much better quality on aerial image with bilinear resampling than with cubic resampling.

Here is the GIMP-resized copy of that same sample image, resized with Linear resmapling: GIMP still outdoes ArcGIS on image quality

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.