<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=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><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;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
span.Shkpostityyli21
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 3.0cm 70.85pt 3.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="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Hi,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">I do understand the use case and we use such nodata-Z in some of our datasets. For example, in our densified contour lines where the computed densification points get Z-value -9999. We prefer to use the nodata value because
 we cannot guarantee that the interpolated Z would match with the ground truth.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">However, none of the 3D programs that I know can handle such data correctly, despite the one that we have written ourselves.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I somehow think that I do not like the nodata values in Z at all. It is a misuse of XYZ coordinates which should define the location in 3D space. I think that nobody is planning to support nodata in X and Y. How is it
 possible to compute the volume of some 3D solid if Z-values are unknown? Z that may be unknown is rather a measure than a Z-coordinate.  Or maybe even an attribute instead of a coordinate. On the other hand, I recognize that nodata-Z can be useful because
 anything better and standardized exists yet. OGC to the rescue? <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">-Jukka Rahkonen-<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="mso-fareast-language:FI">Lähettäjä:</span></b><span style="mso-fareast-language:FI"> Abel Pau <a.pau@creaf.uab.cat>
<br>
<b>Lähetetty:</b> perjantai 26. tammikuuta 2024 11.59<br>
<b>Vastaanottaja:</b> Rahkonen Jukka <jukka.rahkonen@maanmittauslaitos.fi>; gdal-dev@lists.osgeo.org<br>
<b>Aihe:</b> RE: vector NODATA for Z values?<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">Hi again,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">I understand...<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">Perhaps an option could be using something like
<b>-lco Z_NODATA_VALUE_DST="X"</b> to translate NODATA  from origin to this value X (NaN, 0, or whatever it may be). The driver can offer this number instead of the own NODATA and the user can know that the X value in destination will mean NODATA.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">On the other hand, a user could also specify
<b>-lco Z_NODATA_VALUE_SRC="Y"</b> so that a driver can identify a value considered NODATA in the source and translate it to the own NODATA value (or the one specified by the first parameter (if it exists)).
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">Is this too complicated? Are there any repercussions that I'm not seeing?
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="SV" style="color:#1F497D">Thanks.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="SV" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="SV" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="SV" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES" style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="ES" style="mso-fareast-language:CA">De:</span></b><span lang="ES" style="mso-fareast-language:CA"> Rahkonen Jukka <</span><a href="mailto:jukka.rahkonen@maanmittauslaitos.fi"><span lang="ES" style="mso-fareast-language:CA">jukka.rahkonen@maanmittauslaitos.fi</span></a><span lang="ES" style="mso-fareast-language:CA">>
<br>
<b>Enviado el:</b> dijous, 25 de gener de 2024 18:27<br>
<b>Para:</b> Abel Pau <</span><a href="mailto:a.pau@creaf.uab.cat"><span lang="ES" style="mso-fareast-language:CA">a.pau@creaf.uab.cat</span></a><span lang="ES" style="mso-fareast-language:CA">>;
</span><a href="mailto:gdal-dev@lists.osgeo.org"><span lang="ES" style="mso-fareast-language:CA">gdal-dev@lists.osgeo.org</span></a><span lang="ES" style="mso-fareast-language:CA"><br>
<b>Asunto:</b> Re: vector NODATA for Z values?<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I think that it depends on the file format. Rather often it is set to zero but I have seen NaN in many places. However, shapefiles explicitly denies NaN<br>
<br>
“…Positive infinity, negative infinity, and Not-a-Number (NaN) values are not allowed in shapefiles. Nevertheless, shapefiles support the concept of "no data" values, but they are currently used only for measures. Any floating point number smaller than –1038
 is considered by a shapefile reader to represent a "no data" value.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">With the SQLite dialect it is possible to select the value but NaN is not accepted.<br>
Can be tested with<br>
ogrinfo -dialect SQLite -sql "select CastToXYZ(ST_GeomFromText('POINT (1 2)'),3)" point.json<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal">-Jukka Rahkonen-<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="mso-fareast-language:FI">Lähettäjä:</span></b><span style="mso-fareast-language:FI"> gdal-dev <</span><a href="mailto:gdal-dev-bounces@lists.osgeo.org"><span style="mso-fareast-language:FI">gdal-dev-bounces@lists.osgeo.org</span></a><span style="mso-fareast-language:FI">>
<b>Puolesta </b>Abel Pau via gdal-dev<br>
<b>Lähetetty:</b> torstai 25. tammikuuta 2024 19.07<br>
<b>Vastaanottaja:</b> </span><a href="mailto:gdal-dev@lists.osgeo.org"><span style="mso-fareast-language:FI">gdal-dev@lists.osgeo.org</span></a><span style="mso-fareast-language:FI"><br>
<b>Aihe:</b> [gdal-dev] vector NODATA for Z values?<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">there is any value in GDAL for VECTORS that indicates that a concrete value of a Z is not known (z nodata value)?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I couldn’t find it anywhere.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">In MiraMon format we use one concrete number documented in our format pdf (</span><span lang="CA" style="font-size:12.0pt;font-family:"Courier New"">-1.0E+300</span><span lang="EN-US">) an in the driver it’s planned to
 translate it to the same number. I could translate it to the one I am asking. And the same for detecting nodata Z and translate them to
</span><span lang="CA" style="font-size:12.0pt;font-family:"Courier New"">-1.0E+300
</span><span lang="EN-US">when reading another format.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Thanks!<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:CA"> </span><span lang="CA" style="mso-fareast-language:CA"><o:p></o:p></span></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="500" style="width:375.0pt">
<tbody>
<tr>
<td width="310" style="width:232.5pt;padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.5pt;font-family:"Arial",sans-serif;color:#003300;mso-fareast-language:CA">Abel Pau Garcia</span></b><span lang="EN-US" style="font-size:12.0pt;mso-fareast-language:CA">
</span><span lang="EN-US" style="mso-fareast-language:CA"><o:p></o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial",sans-serif;color:#669900;mso-fareast-language:CA">GIS developer</span></b><span lang="EN-US" style="mso-fareast-language:CA"><o:p></o:p></span></p>
</td>
<td width="190" valign="top" style="width:142.5pt;padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal" align="right" style="text-align:right"><span style="font-size:12.0pt;mso-fareast-language:CA"><img border="0" width="134" height="50" style="width:1.3958in;height:.5208in" id="Imagen_x0020_8" src="cid:image001.png@01DA5053.8C8BA2C0" alt="https://www.creaf.cat/sites/default/files/creaf-signature.png"></span><span style="mso-fareast-language:CA"><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><a href="mailto:a.pau@creaf.uab.cat"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif;color:blue;mso-fareast-language:CA">a.pau@creaf.uab.cat</span></b></a><span lang="EN-US" style="mso-fareast-language:CA"><o:p></o:p></span></p>
<p class="MsoNormal"><a href="https://teams.microsoft.com/l/chat/0/0?users=a.pau@creaf.uab.cat"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif;color:blue;mso-fareast-language:CA">Let's chat on Teams!</span></b></a><span lang="EN-US" style="mso-fareast-language:CA"><o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#003300;mso-fareast-language:CA">Tel. +34 934814277</span></b><span style="mso-fareast-language:CA"><o:p></o:p></span></p>
</td>
<td width="142" valign="top" style="width:106.5pt;padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal" align="right" style="text-align:right"><span style="font-size:12.0pt;mso-fareast-language:CA"><img border="0" width="105" height="50" style="width:1.0972in;height:.5208in" id="Imagen_x0020_7" src="cid:image002.png@01DA5053.8C8BA2C0" alt="https://www.creaf.cat/sites/default/files/so-en-signature.png"></span><span style="mso-fareast-language:CA"><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><a href="https://twitter.com/CREAF_ecologia" target="_blank"><span style="font-size:12.0pt;mso-fareast-language:CA;text-decoration:none"><img border="0" width="17" height="17" style="width:.1736in;height:.1736in" id="Imagen_x0020_6" src="cid:image003.png@01DA5053.8C8BA2C0" alt="https://www.creaf.cat/sites/default/files/twitter-icon-signature.png"></span></a><a href="https://www.linkedin.com/company/1363052?trk=tyah&trkInfo=clickedVertical:company,clickedEntityId:1363052,idx:2-1-2,tarId:1465807877789,tas:creaf" target="_blank"><span style="font-size:12.0pt;mso-fareast-language:CA;text-decoration:none"><img border="0" width="17" height="17" style="width:.1736in;height:.1736in" id="Imagen_x0020_5" src="cid:image004.png@01DA5053.8C8BA2C0" alt="https://www.creaf.cat/sites/default/files/linkedin-icon-signature.png"></span></a><a href="https://www.youtube.com/c/creafecologia" target="_blank"><span style="font-size:12.0pt;mso-fareast-language:CA;text-decoration:none"><img border="0" width="17" height="17" style="width:.1736in;height:.1736in" id="Imagen_x0020_4" src="cid:image005.png@01DA5053.8C8BA2C0" alt="https://www.creaf.cat/sites/default/files/youtube-icon-signature.png"></span></a><a href="https://www.instagram.com/CREAF_ecologia/" target="_blank"><span style="font-size:12.0pt;mso-fareast-language:CA;text-decoration:none"><img border="0" width="17" height="17" style="width:.1736in;height:.1736in" id="Imagen_x0020_3" src="cid:image006.png@01DA5053.8C8BA2C0" alt="https://www.creaf.cat/sites/default/files/instagram-icon-signature.png"></span></a><span style="mso-fareast-language:CA"><o:p></o:p></span></p>
<p class="MsoNormal"><a href="http://www.creaf.cat/" target="_blank"><b><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#003300;mso-fareast-language:CA">www.creaf.cat</span></b></a><b><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#003300;mso-fareast-language:CA">
 | </span></b><a href="http://blog.creaf.cat/" target="_blank"><b><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#003300;mso-fareast-language:CA">http://blog.creaf.cat</span></b></a><span style="mso-fareast-language:CA"><o:p></o:p></span></p>
</td>
<td valign="top" style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal" align="right" style="text-align:right"><span style="font-size:12.0pt;mso-fareast-language:CA"><img border="0" width="105" height="50" style="width:1.0972in;height:.5208in" id="Imagen_x0020_2" src="cid:image007.jpg@01DA5053.8C8BA2C0" alt="https://www.creaf.cat/sites/default/files/uab_logo_signatura.png"></span><span style="mso-fareast-language:CA"><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td colspan="2" style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#003300;mso-fareast-language:CA">CREAF. Campus UAB. Edifici C. 08193 Bellaterra (Barcelona)</span><span lang="EN-US" style="mso-fareast-language:CA"><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td colspan="2" style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Arial",sans-serif;color:#999999;mso-fareast-language:CA"><br>
Before printing this electronic message, think about the environment.</span><span lang="EN-US" style="mso-fareast-language:CA"><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td colspan="2" style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><span style="font-size:12.0pt;mso-fareast-language:CA"><img border="0" width="500" height="6" style="width:5.2083in;height:.0625in" id="Imagen_x0020_1" src="cid:image008.jpg@01DA5053.8C8BA2C0" alt="http://www.creaf.uab.cat/_signatura/line.gif"></span><span style="mso-fareast-language:CA"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="CA" style="mso-fareast-language:CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
</div>
</body>
</html>