Opened 14 years ago
Last modified 14 years ago
#3230 new defect
SDE Raster - nodata handling — at Initial Version
Reported by: | amaul | Owned by: | warmerdam |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | GDAL Support | Version: | unspecified |
Severity: | normal | Keywords: | |
Cc: | hobu |
Description
Source: gdal library 1.6.3, module sderasterband.cpp, lines 420-421:
using the SDE raster layers we get trouble because of the handling of missing values(NODATA):
ArcSDE says the block has no data in it. Write 0's and be done with it
While working with classified rasters we are able to avoid a 0 (null) class. But more often we are processing signed float data with 0 as a valid value. Setting nodata values to 0 gives illegal values in the data stream.
It seems to me that there are two solutions:
- comprehensive solution:
Adding at least one bit to the data stream to store a probably given nodata bitmask (using the next bigger GDALDataType - if existing -) will solve the problem correctly, but will lead to a slower performance
- quick and dirty:
Saying the biggest value of the stream is nodata will work for the most float GDALDataTypes but can produce errors with little data types.
The following expression in a mapfile using raster data should then be interpreted correctly by gdal:
class
name "nodata" expression ([pixel]=[nodata]) color 255 255 255
end