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:

  1. 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

  1. 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

Change History (0)

Note: See TracTickets for help on using tickets.