<div dir="ltr">Hello,<div><br></div><div>I've run into a snag trying to assign a negative NoData value to a Signed Byte raster.  </div><div><br></div><div>Example:</div><div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div>gdal_translate -a_nodata -128 -ot Byte -co PIXELTYPE=SIGNEDBYTE signed8test.tif signed8testnew.tif</div></blockquote><div><br></div><div>produces this error:</div><div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div>for band 1, nodata value has been clamped to 0, the original value being out of range.</div></blockquote><div><br></div><div>Whereas gdal_calc.py does not throw the same error and assigns the value:</div><div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><br></div><div><div>gdal_calc.py -A signed16test.tif --outfile=signed8test.tif --NoDataValue=-128 --co=COMPRESS=LZW --co=TILED=yes --type=Byte --co=PIXELTYPE=SIGNEDBYTE --calc="A+(A<0)*256"</div></div><div><div>0 .. 10 .. 20 .. 30 .. 40 .. 50 .. 60 .. 70 .. 80 .. 90 .. 100 - Done</div></div></blockquote></div><div><br></div><div>It seems gdal_calc.py does not enforce any restriction on NoData, as it even allows values outside the valid range (e.g. -999).</div><div><br></div><div>There also appears to be some confusion in applications (e.g. ArcGIS) as to whether a NoData value between -127 to -1 should be expressed in that range explicitly or in the actual pixel value range of 128 - 255.  I could not find any documentation online describing the standard, so I suspect it may be up to each application to interpret it according to preference.</div><div><br></div><div>So, I suppose my questions are:</div><div><br></div><div>1) Are negative NoData values (-127 to -1) for the SIGNEDBYTE type supposed to be supported by GDAL?</div><div>2) Is there a convention which states that they must be expressed in the range -127 to -1 or 128 to 255?</div><div><br></div><div>Regards,</div><div>Jason Greenlaw</div><div><br>
</div></div>