Hello, apologies in advance if this turns out to be more an raster question than a geotools question. 

I am retooling an application that is using a home grown “map” interface, replacing the latter with geotools.
Some of the data comes as georeferenced images. These are created by helper tools from CSV files, ESRI bin files or NETCDF files.

All good so far. I can read these files no problem using the GridCoverageReader.

All the images produced this way are RGB PNG’s which come with an additional file with the extension “range" which gives
the range of the physical values represented by each pixel.  Without this information I cannot get pack the physical value at
each pixel (wind velocity, flood depth, that sort of thing)

Correct me if I am wrong, but I think this is part of the “home grown” solution. I have never seen anything like this before and 
google has no idea either.
I thought that I could get the range of values from getting  GridSampleDimension from GridCoverage2D, but they are not there.

Am I right to assume that the way the images  are being created basically omits this information from the PNG?

Going forward, I would like to correct this in our helper tools if possible. Additionally, I want to create grayscale rasters rather than
RGB  rasters, since want to leave the “styling” separate and user modifiable.

Tweaking the code to create grayscale raster is a piece of cake, but I still have to use the extra range file.

What am I missing?