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.


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.

| improve this answer | |

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.