Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a good raster format for dealing with a large number of NoData cells?

I do a lot of flood modeling and mapping, and recently I've been using rasters to show predicted flood depth and/or elevation for large areas, often for an entire county.

I've just been using the default ESRI binary grid format, but I'm wondering if there might be something more appropriate. These rasters use a huge amount of space (especially at cell sizes of 5-10 ft), and the vast majority of the cells are NoData, so they're just going to waste.

share|improve this question

Use integer (categorical) rasters, because their datasets are natively compressed (using a lossless run-length encoding). Compression can often exceed 99%, depending on the complexity of the values: long horizontal strips of constant values compress very well. The extensive NoData cells in your grids are great examples of this.

The problem with this approach is that the values are thereby discretized into integer bins: you only get -2, -1, 0, 1, 2, ..., etc., and cannot represent (say) 3.1415927, as is possible with the single-precision ("binary") float format. A work-around is to use a finer unit of elevation measurement, such as 0.1 ft or 0.1 m or even smaller. The conversion amounts to multiplying the current values (e.g., multiply by 10 to convert from meters to decimeters) and rounding the results. Occasionally you have to convert back for analytical purposes, but often you can avoid conversion simply by changing legends on maps. E.g., when elevations are in decimeters, change a legend panel like "100 - 110" into "10.0 - 11.0" and you're all set.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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