Thanks Frank,

That helps somewhat.

It's going to be a bit of a bear making a 256 color lookup
that way. I guess I can script the CLASS lookup sections of
the map file(s).

Peter


Frank Warmerdam wrote:
Peter Willis wrote:

Hello,

Is it possible to apply nonlinear scaling to classify
floating point tiff rasters.

All examples that I have seen appear to assume a linear
dataset.

If I wish to scale the data by the base 10 log
of the data and then scale the Red, Green and Blue values
of the classification, can I do it in the map file?

What are the available functions that may be used
in the mapfile 'PROCESSING' and 'EXPRESSION' items?

Peter,

The short answer is that you cannot, in general, do non-linear
scaling.  Depending on the dynamic range of your data, you could
use classes to do something approximating non-linear scaling but you
need to be aware that in the background there is still a linear scaling
being done before the classification is applied to the "scaled buckets".
But you can request as many as 64K buckets which would still give you
pretty good control over something like four orders of magnitude.

You might use something like:

  PROCESSING "SCALE=0,100000"
  PROCESSING "SCALE_BUCKETS=64000"

  CLASS
    EXPRESSION ([pixel] < 2.5)
    COLOR 255 0 0
  END
  CLASS
    EXPRESSION ([pixel] < 10)
    COLOR 235 20 20
  END
  CLASS
    EXPRESSION ([pixel] < 25)
    COLOR 215 40 40
  END
  CLASS
    EXPRESSION ([pixel] < 100)
    COLOR 195 60 60
  END
  CLASS
    EXPRESSION ([pixel] < 250)
    COLOR 175 80 80
  END
  CLASS
    EXPRESSION ([pixel] < 1000)
    COLOR 165 100 100
  END
  CLASS
    EXPRESSION ([pixel] < 2500)
    COLOR 145 120 120
  END
  CLASS
    EXPRESSION ([pixel] < 10000)
    COLOR 125 140 140
  END
  CLASS
    EXPRESSION ([pixel] < 25000)
    COLOR 105 160 160
  END
  CLASS
    EXPRESSION ([pixel] <= 100000)
    COLOR 85 180 180
  END

Note that because the values between 0 and 100000 are classified
into only 64000 buckets you don't really have very good precision
at the bottom end of the range.  So even though we specify
[pixel] < 2.5, each bucket is about 1.5625 wide so the first two
buckets will get put into the first class, including values
between 2.5 and 3.125.  This imprecision will become insignificant
to a log scale as you move up to larger values.

Good luck,


_______________________________________________
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to