<div dir="ltr">Steve,<div>   You can think of this very much <b>as a hack</b> but I had some success. I was also testing how to colorize a DEM (or 32bit floating point image) outside of gdaldem. You would need a script to configure the "lut" line for each file min/max range though. It does seem to work and you can convert to other colorized graphical formats (e.g. PNG) using gdal_translate.</div>

<div><br></div><div>example:</div><div>(1) create a 3 band VRT of your original file.<br></div><div><div style="font-size:13px"><font face="courier new, monospace">> ls dem.tif > mylist</font></div><div style="font-size:13px">

<font face="courier new, monospace">> ls dem.tif >> mylist</font></div><div style="font-size:13px"><font face="courier new, monospace">> ls dem.tif >> mylist</font></div><div style="font-size:13px"><font face="courier new, monospace">> gdalbuildvrt -separate -input_file_list mylist DEM_3bands.vrt</font></div>

</div><div><br></div><div>(2) now manually add or script a <LUT> section for each band (see below for color mapping or [dest value]. Original DEM range was from -8.296 to 4.022)<br></div><div><div style="font-family:arial,sans-serif;font-size:13px">

<pre style="white-space:pre-wrap;font-size:9pt;border:1px solid rgb(196,207,229);background-color:rgb(251,252,253);padding:4px 6px;margin:4px 8px 4px 2px;overflow:auto;word-wrap:break-word;line-height:15px;color:rgb(0,0,0)">

<font face="arial, helvetica, sans-serif"><LUT>[src value 1]:[dest value 1],[src value 2]:[dest value 2],...</LUT></font></pre></div><div style><font face="arial, helvetica, sans-serif" style="font-family:arial,sans-serif;font-size:13px"><font color="#000000">example: </font></font><font color="#000000" face="arial, helvetica, sans-serif"><span style="font-size:12px;line-height:15px;background-color:rgb(251,252,253)"><LUT>-8.296:75,-7:0,-3:0,-1.5:204,2:255,3.5:255,3.9:150,4.022:255</LUT></span></font></div>

</div><div><font face="arial, helvetica, sans-serif"><span style="background-color:rgb(251,252,253);color:rgb(0,0,0);font-size:9pt;line-height:15px">from: </span></font><a href="http://www.gdal.org/gdal_vrttut.html" target="_blank" style="font-size:13px;font-family:arial,helvetica,sans-serif">http://www.gdal.org/gdal_vrttut.html</a></div>

<div><br></div><div><br></div><div>kind of crazy and really not tested much... Shows how convenient VRTs continue to be.</div><div><br></div><div>Good luck,<br></div><div>Trent</div><div><br></div><div><br></div><div>example VRT and tiny DEM (1 MB, odd blip on the right):</div>

<div><a href="https://www.dropbox.com/s/kb8x2vlzmwtl52v/ColorMapping_DEM_toRainbow-BrownWhite_test.zip" target="_blank">https://www.dropbox.com/s/kb8x2vlzmwtl52v/ColorMapping_DEM_toRainbow-BrownWhite_test.zip</a><br>
</div><div><br></div><div>screenshot of DEM as converted to PNG:</div><div><font face="courier new, monospace">> gdal_translate -ot byte -of PNG <span style="font-size:13px">DEM_3bands.vrt </span><span style="font-size:13px">DEM_3bands.png</span></font></div>

<div><a href="https://www.dropbox.com/s/i1kldn7th7w5910/1MM3298IOLBYDEM08P2905_colorize.png">https://www.dropbox.com/s/i1kldn7th7w5910/1MM3298IOLBYDEM08P2905_colorize.png</a><br></div><div><br></div><div><br></div><div>-------------------</div>

<div><br></div><div>The above "rainbow to brown to white" color-ramp in percent would be mapped at: </div><div><font face="courier new, monospace"><span style="font-size:13px"># Red stretch pairs. The pattern is percentage:DN</span><br style="font-size:13px">

<span style="font-size:13px">0:75 10:0 40:0 55:204 70:255 85:255 99:150 100:255</span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px"># Green stretch pairs. The pattern is percentage:DN</span><br style="font-size:13px">

<span style="font-size:13px">0:0 10:0 30:151 40:204 55:204 70:102 85:0 99:75 100:255</span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px"># Blue stretch pairs. The pattern is percentage:DN</span><br style="font-size:13px">

<span style="font-size:13px">0:102 10:204 25:151 40:0 99:0 100:255</span><br></font></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">------------------</span></div>

<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div>Example VRT:</div><div><div><font face="courier new, monospace"><VRTDataset rasterXSize="373" rasterYSize="625"></font></div>

<div><font face="courier new, monospace">  <GeoTransform>-5.0000000000000000e-001, 1.0000000000000000e+000, 0.0000000000000000e+000, 5.0000000000000000e-001, 0.0000000000000000e+000,-1.0000000000000000e+000</GeoTransform></font></div>

<div><font face="courier new, monospace">  <VRTRasterBand dataType="Float32" band="1"></font></div><div><font face="courier new, monospace">    <NoDataValue>-3.40282265508890E+038</NoDataValue></font></div>

<div><font face="courier new, monospace">    <ColorInterp>Red</ColorInterp></font></div><div><font face="courier new, monospace">    <ComplexSource></font></div><div><font face="courier new, monospace">      <SourceFilename relativeToVRT="1">1MM3298IOLBYDEM08P2905.tif</SourceFilename></font></div>

<div><font face="courier new, monospace">      <SourceBand>1</SourceBand></font></div><div><font face="courier new, monospace">      <SourceProperties RasterXSize="373" RasterYSize="625" DataType="Float32" BlockXSize="373" BlockYSize="5" /></font></div>

<div><font face="courier new, monospace">      <SrcRect xOff="0" yOff="0" xSize="373" ySize="625" /></font></div><div><font face="courier new, monospace">      <DstRect xOff="0" yOff="0" xSize="373" ySize="625" /></font></div>

<div><font face="courier new, monospace">      <LUT>-8.296:75,-7:0,-3:0,-1.5:204,2:255,3.5:255,3.9:150,4.022:255</LUT></font></div><div><font face="courier new, monospace">    </ComplexSource></font></div>

<div><font face="courier new, monospace">  </VRTRasterBand></font></div><div><font face="courier new, monospace">  <VRTRasterBand dataType="Float32" band="2"></font></div><div><font face="courier new, monospace">    <NoDataValue>-3.40282265508890E+038</NoDataValue></font></div>

<div><font face="courier new, monospace">    <ColorInterp>Green</ColorInterp></font></div><div><font face="courier new, monospace">    <ComplexSource></font></div><div><font face="courier new, monospace">      <SourceFilename relativeToVRT="1">1MM3298IOLBYDEM08P2905.tif</SourceFilename></font></div>

<div><font face="courier new, monospace">      <SourceBand>1</SourceBand></font></div><div><font face="courier new, monospace">      <SourceProperties RasterXSize="373" RasterYSize="625" DataType="Float32" BlockXSize="373" BlockYSize="5" /></font></div>

<div><font face="courier new, monospace">      <SrcRect xOff="0" yOff="0" xSize="373" ySize="625" /></font></div><div><font face="courier new, monospace">      <DstRect xOff="0" yOff="0" xSize="373" ySize="625" /></font></div>

<div><font face="courier new, monospace">      <LUT>-8.296:0,-7:0,-5:151,-3:204,-1.5:204,2:102,3.5:0,3.9:75,4.022:255</LUT></font></div><div><font face="courier new, monospace">    </ComplexSource></font></div>

<div><font face="courier new, monospace">  </VRTRasterBand></font></div><div><font face="courier new, monospace">  <VRTRasterBand dataType="Float32" band="3"></font></div><div><font face="courier new, monospace">    <NoDataValue>-3.40282265508890E+038</NoDataValue></font></div>

<div><font face="courier new, monospace">    <ColorInterp>Blue</ColorInterp></font></div><div><font face="courier new, monospace">    <ComplexSource></font></div><div><font face="courier new, monospace">      <SourceFilename relativeToVRT="1">1MM3298IOLBYDEM08P2905.tif</SourceFilename></font></div>

<div><font face="courier new, monospace">      <SourceBand>1</SourceBand></font></div><div><font face="courier new, monospace">      <SourceProperties RasterXSize="373" RasterYSize="625" DataType="Float32" BlockXSize="373" BlockYSize="5" /></font></div>

<div><font face="courier new, monospace">      <SrcRect xOff="0" yOff="0" xSize="373" ySize="625" /></font></div><div><font face="courier new, monospace">      <DstRect xOff="0" yOff="0" xSize="373" ySize="625" /></font></div>

<div><font face="courier new, monospace">      <LUT>-8.296:102,-6.5:204,-4.5:151,-3:0,3.9:0,4.022:255</LUT></font></div><div><font face="courier new, monospace">    </ComplexSource></font></div><div><font face="courier new, monospace">  </VRTRasterBand></font></div>

<div><font face="courier new, monospace"></VRTDataset></font></div></div><div><font face="courier new, monospace"><br></font></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div></div>

<div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, May 15, 2014 at 12:08 PM, Stephen Woodbridge <span dir="ltr"><<a href="mailto:woodbri@swoodbridge.com" target="_blank">woodbri@swoodbridge.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On 5/15/2014 1:56 PM, Even Rouault wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Le jeudi 15 mai 2014 16:25:12, Stephen Woodbridge a écrit :<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi all,<br>
<br>
I'm trying to create a VRT file for a GTiff that is Int32 or Float32 to<br>
add a ColorTable but I seem to be missing a key piece of information.<br>
How are the pixel values mapped to the color table entries? via the<br>
histogram?<br>
<br>
My GTiff has noData=-32767 and good values the range from say -5 to 100.<br>
So do I create a color table that is based on the 256 buckets in the<br>
histogram?<br>
</blockquote>
<br>
No way you can use a GDAL color table to map negative values...<br>
Perhaps you should use gdaldem color-relief to generate a RGB output. Note<br>
that gdaldem color-relief is compatible with VRT output : it uses the LUT<br>
mechanism to do so.<br>
</blockquote>
<br></div>
OK, I will look at gdaldem, but not wanting to give up on this yet, is there a way to change the NoData pixels from -32767 to say -20 then scale 1.0 and offset the value by 10.<br>
<br>
This would make NoData=0<br>
<br>
old   => new<br>
 -5        5<br>
  0       10<br>
  1       11<br>
100      110<br>
<br>
then I would have all positive values and the range would be manageable?<br>
<br>
The scale and offset are already supported in VRT, but I'm not sure if it is possible to remap -32767 values to a new value.<br>
<br>
Thanks for your response.<br>
<br>
-Steve<div class="HOEnZb"><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
So for example I get:<br>
<br>
Band 1 Block=256x256 Type=Float32, ColorInterp=Gray<br>
    Min=-32767.000 Max=33.980   Computed Min/Max=-54.985,34.320<br>
    Minimum=-32767.000, Maximum=33.980, Mean=-15887.345, StdDev=16386.592<br>
    256 buckets from -32831.1 to 98.0444:<br>
    1545169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0<br>
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0<br>
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0<br>
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0<br>
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0<br>
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0<br>
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0<br>
0 0 0 0 0 0 27375 1924356<br>
    NoData Value=-32767<br>
    Metadata:<br>
      STATISTICS_MAXIMUM=33.<u></u>979999542236<br>
      STATISTICS_MEAN=-15887.<u></u>344614501<br>
      STATISTICS_MINIMUM=-32767<br>
      STATISTICS_STDDEV=16386.<u></u>59208246<br>
<br>
<br>
It seems that the NoData value is included in the stats which really<br>
skews the numbers compressing all my values into two buckets! How can I<br>
avoid that? I want to ignore the NoData values and spread my good values<br>
into the remaining buckets. How can I do this?<br>
</blockquote>
<br>
You can't. There's a ticket I think about the fact we should ignore nodata<br>
value in stats.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Thanks,<br>
    -Steve<br>
<br>
______________________________<u></u>_________________<br>
gdal-dev mailing list<br>
<a href="mailto:gdal-dev@lists.osgeo.org" target="_blank">gdal-dev@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/gdal-dev" target="_blank">http://lists.osgeo.org/<u></u>mailman/listinfo/gdal-dev</a><br>
</blockquote>
<br>
</blockquote>
<br>
______________________________<u></u>_________________<br>
gdal-dev mailing list<br>
<a href="mailto:gdal-dev@lists.osgeo.org" target="_blank">gdal-dev@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/gdal-dev" target="_blank">http://lists.osgeo.org/<u></u>mailman/listinfo/gdal-dev</a><br>
</div></div></blockquote></div><br></div>