<div dir="ltr">Hi Even,<div>thanks for the feedback.<br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Nov 6, 2016 at 5:33 PM, Even Rouault <span dir="ltr"><<a href="mailto:even.rouault@spatialys.com" target="_blank">even.rouault@spatialys.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Le jeudi 03 novembre 2016 18:19:36, Daniele Romagnoli a écrit :<br>
> Hi List,<br>
> I was checking a gdalwarp (GDAL 2.1.2) invokation with a colleague and I<br>
> have a question.<br>
><br>
> I know that when warping a geotiff with internal NODATA_VALUES=0 0 0<br>
> metadata, only RGB pixels = 0 0 0 are handled as nodata whilst pixels like<br>
> "0 2 4", "50 0 0" will not right?<br>
><br>
> In the past, I had issues using -scrnodata 0 instead of embedded<br>
> NODATA_VALUES=0 0 0, getting results with sparse nodata around due to<br>
> band_i = 0 being interpreted as a nodata pixels. This is why I usually<br>
> suggest to define the NODATA_VALUES metadata to make sure only the exact<br>
> triplet is handled as nodata.<br>
><br>
> However, today we have processed a simple UTM RGB dataset (without<br>
> NODATA_VALUES metadata defined) using this command:<br>
> gdalwarp -t_srs EPSG:4326 -srcnodata 0 -dstnodata None -dstalpha<br>
><br>
> And the result is properly rendered: the alpha mask is zero only where the<br>
> input pixels are "0 0 0" which is exactly what we needed.<br>
> Do something has been changed in the latest versions? Is the alpha band<br>
> mask being set to zero only when all input pixels are zero?<br>
<br>
</span>Hi Daniele,<br>
<br>
This is a good question, and I would have thought the same as you. But when<br>
digging further, the nodata values must be indeed fully matched for all<br>
components to consider a pixel as transparent. And this has been the case for<br>
the last 11 years :-)) : <a href="https://trac.osgeo.org/gdal/changeset/8286" rel="noreferrer" target="_blank">https://trac.osgeo.org/gdal/<wbr>changeset/8286</a><br>
<br>
My confusion came from the fact that the default behaviour of the warping<br>
engine used by gdalwarp is not that one (see UNIFIED_SRC_NODATA option in<br>
<a href="http://www.gdal.org/structGDALWarpOptions.html#a0ed77f9917bb96c7a9aabd73d4d06e08" rel="noreferrer" target="_blank">http://www.gdal.org/<wbr>structGDALWarpOptions.html#<wbr>a0ed77f9917bb96c7a9aabd73d4d06<wbr>e08</a>),<br>
but gdalwarp override it to have the UNIFIED_SRC_NODATA=YES behaviour.<br></blockquote><div><br></div><div>Thanks for the investigation.</div><div><br></div><div>At this point, if this behavior is there since 11 years, I guess that the cause of the issues I had in the past was probably involving a gdaladdo after a gdalwarp in my processing. So that gdalwarp was internally considering nodata a fully matching 0 triplets to produce the high res output whilst gdaladdo was considering nodata on band basis, separately, producing scattered no data.</div><div><br></div><div>Cheers,</div><div>Daniele</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I've also just added support in trunk to be able to specify<br>
UNIFIED_SRC_NODATA=NO explicitly if wished.<br>
<br>
See :<br>
<br>
Let create a dataset with a single pixel R,G,B=10,20,30 with<br>
gdal_translate byte.tif rgb.tif -b 1 -b 1 -b 1 -scale_1 0 255 10 10 \<br>
    -scale_2 0 255 20 20  -scale_3 0 255 30 30 -srcwin 0 0 1 1<br>
<br>
By default:<br>
gdalwarp rgb.tif out.tif -overwrite  -srcnodata 10 -dstnodata None -dstalpha<br>
lead to (R,G,B,A)=(10,20,30,255)<br>
<br>
And (in trunk):<br>
gdalwarp rgb.tif out.tif -overwrite  -srcnodata 10 -dstnodata None -dstalpha \<br>
                 -wo UNIFIED_SRC_NODATA=NO -wo INIT_DEST=127<br>
lead to (R,G,B,A)=(127,20,30,255)<br>
<br>
==> Nodata is applied band per band, and alpha is considered to be 255 as soon<br>
as at least one band is valid.<br>
<span class="HOEnZb"><font color="#888888"><br>
Even<br>
<br>
--<br>
Spatialys - Geospatial professional services<br>
<a href="http://www.spatialys.com" rel="noreferrer" target="_blank">http://www.spatialys.com</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span style="font-size:12.8px">==</span><br></div><div dir="ltr"><span style="font-size:12.8000001907349px">GeoServer Professional Services from the experts! Visit</span><br style="font-size:12.8000001907349px"><a href="http://goo.gl/it488V" style="color:rgb(17,85,204);font-size:12.8000001907349px" target="_blank">http://goo.gl/it488V</a><span style="font-size:12.8000001907349px"> for more information.</span><br>
==<br>
<br>Ing. Daniele Romagnoli<br>Senior Software Engineer<br><br>GeoSolutions S.A.S.<br><span style="font-size:12.8px">Via di Montramito 3/A</span><br>55054  Massarosa (LU)<br>Italy<br>phone: +39 0584 962313<br>fax:      +39 0584 1660272<br><br><a href="http://www.geo-solutions.it" target="_blank">http://www.geo-solutions.it</a><br><a href="http://twitter.com/geosolutions_it" target="_blank">http://twitter.com/geosolutions_it</a><br><br>-------------------------------------------------------<br><p><span lang="IT"><font size="1"><b>AVVERTENZE AI SENSI DEL D.Lgs. 196/2003</b></font></span></p><p><span lang="IT"><font size="1">Le
 informazioni contenute in questo messaggio di posta elettronica e/o 
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il 
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
 per le finalità indicate nel messaggio stesso. Qualora riceviate questo
 messaggio senza esserne il destinatario, Vi preghiamo cortesemente di 
darcene notizia via e-mail e di procedere alla distruzione del messaggio
 stesso, cancellandolo dal Vostro sistema. Conservare il messaggio 
stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, 
copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento
 contrario ai principi dettati dal D.Lgs. 196/2003.</font></span></p><p><span lang="IT"><font size="1"> </font></span></p><p><font size="1">The
 information in this message and/or attachments, is intended solely for 
the attention and use of the named addressee(s) and may be confidential 
or proprietary in nature or covered by the provisions of privacy act 
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection 
Code).Any use not in accord with its purpose, any disclosure, 
reproduction, copying, distribution, or either dissemination, either 
whole or partial, is strictly forbidden except previous formal approval 
of the named addressee(s). If you are not the intended recipient, please
 contact immediately the sender by telephone, fax or e-mail and delete 
the information in this message that has been received in error. The 
sender does not give any warranty or accept liability as the content, 
accuracy or completeness of sent messages and accepts no responsibility 
 for changes made after they were sent or for other risks which arise as
 a result of e-mail transmission, viruses, etc.</font></p><br></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
</div></div></div>