<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 2.0cm 70.85pt 2.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="FI" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">I do not want your customers data but something that is similar. With overlaps and mask and what ever is essential. The actual pixels are not essential nor the real location. Have a
 look at the gdal_create utility <a href="https://gdal.org/programs/gdal_create.html">
https://gdal.org/programs/gdal_create.html</a>. Perhaps you can create a minimal dataset for testing with it. The smaller the better.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">-Jukka Rahkonen-<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b>Lähettäjä:</b> Daniele Romagnoli <daniele.romagnoli@geo-solutions.it>
<br>
<b>Lähetetty:</b> torstai 11. helmikuuta 2021 16.57<br>
<b>Vastaanottaja:</b> Rahkonen Jukka (MML) <jukka.rahkonen@maanmittauslaitos.fi><br>
<b>Kopio:</b> gdal-dev@lists.osgeo.org<br>
<b>Aihe:</b> Re: [gdal-dev] mosaicking files with partial overlap and binary mask<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Hi Jukka,<o:p></o:p></p>
<div>
<p class="MsoNormal">sorry but I can't share the data. Is owned by a customer :(<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Long story short: <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I have several raster tiles (with size around 5000x5000) and a shapefile containing edges defining valid area of each tile.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I have used gdalrasterize to extract the needed crop for each tile to setup a binary mask.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Then, I have combined the binary mask with the original tile and rewritten as a new TIFF file with internal masks.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Then, I'm composing all the TIFF files to a VRT.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">When rewriting that VRT to a mosaic TIFF, everything looks good. I see the binary mask is used to properly compose/overlap/mask the pieces of the mosaic and the output contains the mask too. This is an example of gdalinfo on one of the
 mosaicked tiff:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Driver: GTiff/GeoTIFF<br>
Files: out.tif<br>
Size is 45842, 42506<br>
Coordinate System is:<br>
[... OMITTED... ]<br>
<br>
Metadata:<br>
  AREA_OR_POINT=Area<br>
Image Structure Metadata:<br>
  COMPRESSION=YCbCr JPEG<br>
  INTERLEAVE=PIXEL<br>
  JPEGTABLESMODE=1<br>
  JPEG_QUALITY=75<br>
  SOURCE_COLOR_SPACE=YCbCr<br>
Corner Coordinates:<br>
  [... OMITTED... ]  <br>
Band 1 Block=256x256 Type=Byte, ColorInterp=Red<br>
  Mask Flags: PER_DATASET<br>
Band 2 Block=256x256 Type=Byte, ColorInterp=Green<br>
  Mask Flags: PER_DATASET<br>
Band 3 Block=256x256 Type=Byte, ColorInterp=Blue<br>
  Mask Flags: PER_DATASET<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">So, as you can see the masks are added to the mosaicked dataset.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">However, when running <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">gdalwarp -t_srs EPSG:NEWCODE out.tif warped.tif<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">the binary mask is lost from the output file.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I have also tried using -dstalpha but it complains that "Destination dataset has 3 bands, but at least 4 are needed" which makes sense.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">So I was just wondering if there is anything I should be aware of when warping a masked TIFF.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I would probably try to transform the binary mask to an alpha band, do the warp and then convert back the alpha to a binary mask....<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks for any feedback in advance.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Regards,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Daniele<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Thu, Feb 11, 2021 at 3:27 PM jratike80 <<a href="mailto:jukka.rahkonen@maanmittauslaitos.fi">jukka.rahkonen@maanmittauslaitos.fi</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<p class="MsoNormal">Hi Daniele,<br>
<br>
Test data, please.<br>
<br>
-Jukka Rahkonen-<br>
<br>
<br>
<br>
Daniele Romagnoli-3 wrote<br>
> Thanks for the feedback, Patrick.<br>
> I have downloaded the latest build from GisInternals and it worked as<br>
> expected.<br>
> I have another question.<br>
> It looks like warping an input file containing a binary mask isn't<br>
> preserving the binary mask on the output.<br>
> Should I specify any flag for that?<br>
> <br>
> Thanks for the help.<br>
> Regards,<br>
> Daniele<br>
> _______________________________________________<br>
> gdal-dev mailing list<br>
<br>
> <a href="mailto:gdal-dev@.osgeo">gdal-dev@.osgeo</a><br>
<br>
> <a href="https://lists.osgeo.org/mailman/listinfo/gdal-dev" target="_blank">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a><br>
<br>
<br>
<br>
<br>
<br>
--<br>
Sent from: <a href="http://osgeo-org.1560.x6.nabble.com/GDAL-Dev-f3742093.html" target="_blank">
http://osgeo-org.1560.x6.nabble.com/GDAL-Dev-f3742093.html</a><br>
_______________________________________________<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="https://lists.osgeo.org/mailman/listinfo/gdal-dev" target="_blank">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a><o:p></o:p></p>
</blockquote>
</div>
<p class="MsoNormal"><br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">-- <o:p></o:p></p>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal">Regards,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Daniele Romagnoli<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">==<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">GeoServer Professional Services from the experts! Visit <a href="http://goo.gl/it488V" target="_blank">
http://goo.gl/it488V</a> for more information.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">==<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Ing. Daniele Romagnoli<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Senior Software Engineer<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">GeoSolutions S.A.S.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Via di Montramito 3/A<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">55054  Massarosa (LU)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Italy<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">phone: +39 0584 962313<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">fax:      +39 0584 1660272<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="http://www.geo-solutions.it" target="_blank">http://www.geo-solutions.it</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="http://twitter.com/geosolutions_it" target="_blank">http://twitter.com/geosolutions_it</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt">-------------------------------------------------------</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt">Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il
 suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque
 grato se potesse darmene notizia.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt">This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided
 by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone
 or e-mail.</span><o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>