<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;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 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;}
span.Shkpostityyli18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.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">The WMS GetFeatureInfo should work and the answer in gis.stackexhange seems to contain all the details that you need for making it to work.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">With WCS what you did is probably the best you can do with Mapserver. With some other servers you may get a single pixel output by using WCS slicing (subset=Long(-100)&subset=Lat(22))
 or trimming with lowerlimit=upperlimit (subset=Long(-100,-100)&subset=Lat(22,22)) but Mapserver does not support either. See
<a href="https://osgeo-org.atlassian.net/browse/GEOS-9553">https://osgeo-org.atlassian.net/browse/GEOS-9553</a>.<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">I could not find a link to an answer by Stefan Meissl about why Mapserver does not support slicing but it was about dimensions. A raster image can be considered to be two dimensional
 even when it has only one pixel, but by the WCS standard each trim is removing one dimension. Slicing DEM with two axes must return a zero dimensional result and raster formats do not support that. I still think that subsets with lower=upper limits should
 works and return a single pixel output but that does not work with either Mapserver or Geoserver. See also
<a href="https://www.mail-archive.com/search?l=mapserver-users%40lists.osgeo.org&q=subject:%22%5C%5Bmapserver%5C-users%5C%5D+WCS+GetCoverage+request+one++by+one+pixel%22&o=newest&f=1">
https://www.mail-archive.com/search?l=mapserver-users%40lists.osgeo.org&q=subject:%22%5C%5Bmapserver%5C-users%5C%5D+WCS+GetCoverage+request+one++by+one+pixel%22&o=newest&f=1</a><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"><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>
<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> MapServer-users <mapserver-users-bounces@lists.osgeo.org>
<b>Puolesta </b>Carl Godkin<br>
<b>Lähetetty:</b> lauantai 30. lokakuuta 2021 2.10<br>
<b>Vastaanottaja:</b> mapserver-users@lists.osgeo.org<br>
<b>Aihe:</b> [mapserver-users] Point query from Mapserver raster<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Hi,<o:p></o:p></p>
<div>
<p class="MsoNormal">Now that I have my WMS and WCS servers working well (thanks, list!!), I have one more thing I would like to figure out how to do.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I want to do point queries on [Lat,Lon] points for their elevation from the terrain layer I have.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I have done some searching and come across various ideas such as Raster Query (<a href="https://mapserver.org/input/raster.html#raster-query">https://mapserver.org/input/raster.html#raster-query</a>) and a query template  (<a href="https://gis.stackexchange.com/questions/167239/mapserver-raster-picking-elevation-data">https://gis.stackexchange.com/questions/167239/mapserver-raster-picking-elevation-data</a>)
 but haven't found enough information for either to implement it.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I came up with a solution that works fine, but might be considered as going "All Around the Barn"   What works is to add an ASCII output format to my map file that serves terrain like this:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="font-size:10.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:10.5pt;font-family:Consolas;color:#795E26">OUTPUTFORMAT</span><span style="font-size:10.5pt;font-family:Consolas;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="font-size:10.5pt;font-family:Consolas;color:black">     
</span><span style="font-size:10.5pt;font-family:Consolas;color:blue">NAME</span><span style="font-size:10.5pt;font-family:Consolas;color:black"> XYZ<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="font-size:10.5pt;font-family:Consolas;color:black">     
</span><span style="font-size:10.5pt;font-family:Consolas;color:blue">DRIVER</span><span style="font-size:10.5pt;font-family:Consolas;color:black"> "GDAL/XYZ"<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="font-size:10.5pt;font-family:Consolas;color:black">     
</span><span style="font-size:10.5pt;font-family:Consolas;color:blue">MIMETYPE</span><span style="font-size:10.5pt;font-family:Consolas;color:black"> "text/plain"<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="font-size:10.5pt;font-family:Consolas;color:black">     
</span><span style="font-size:10.5pt;font-family:Consolas;color:blue">IMAGEMODE</span><span style="font-size:10.5pt;font-family:Consolas;color:black">
</span><span style="font-size:10.5pt;font-family:Consolas;color:#001080">FLOAT32</span><span style="font-size:10.5pt;font-family:Consolas;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="font-size:10.5pt;font-family:Consolas;color:black">     
</span><span style="font-size:10.5pt;font-family:Consolas;color:blue">EXTENSION</span><span style="font-size:10.5pt;font-family:Consolas;color:black"> "txt"<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="font-size:10.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:10.5pt;font-family:Consolas;color:#795E26">END</span><span style="font-size:10.5pt;font-family:Consolas;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="font-size:10.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#795E26">and then use GetCoverage on a small rectangle whose lower-left corner
</span><span style="font-size:10.5pt;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#795E26">is the point whose elevation I want:</span><span style="font-size:10.5pt;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="font-size:10.5pt;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="font-size:9.0pt;font-family:"Courier New";color:#212121"><a href="http://localhost:8080/wcs?SERVICE=WCS&VERSION=2.0.1&REQUEST=GetCoverage&coverageid=SRTM_3_arc-second_grid&format=XYZ&subset=Lat(42.948,42.958)&subset=Lon(-122.086,-122.076)">http://localhost:8080/wcs?SERVICE=WCS&VERSION=2.0.1&REQUEST=GetCoverage&coverageid=SRTM_3_arc-second_grid&format=XYZ&subset=Lat(42.948,42.958)&subset=Lon(-122.086,-122.076)</a></span><span style="font-size:10.5pt;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="font-size:10.5pt;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="font-family:"Arial",sans-serif;color:#212121">and then take the first line of the returned output file.</span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="font-family:"Arial",sans-serif;color:#212121">What would Mapserver best practice be for a problem like this?</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="font-family:"Arial",sans-serif;color:#212121">Thanks very much,</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="font-family:"Arial",sans-serif;color:#212121">carl</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:14.25pt"><span style="color:black"><o:p> </o:p></span></p>
</div>
</div>
</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"><o:p> </o:p></p>
</div>
</div>
</div>
</body>
</html>