Hi Carl,
Also, as you travel down this path, please aim to adding your upcoming
elevation WMS service into the MapServer Site Gallery :
https://github.com/MapServer/MapServer/wiki/MapServer-Site-Gallery
This really helps new users see the powers of MapServer.
Thanks!
-jeff
--
Jeff McKenna
GatewayGeo: Developers of MS4W, MapServer Consulting and Training
co-founder of FOSS4G
http://gatewaygeo.com/
On 2021-10-11 3:35 p.m., Jeff McKenna wrote:
Hi Carl,
First, welcome to the MapServer community!
Thanks for the detailed question, and pointing to the source data, this
always helps to give a proper answer.
You've done well and are very close. Here are some points to consider:
- the OGC specification for serving raw raster data is actually WCS
(which MapServer does well, see https://mapserver.org/ogc/wcs_server.html )
- but you're right that a cool trick is to use the (more) popular WMS
specification and set an OUTPUTFORMAT in your server's mapfile, to
generate a GeoTIFF through a WMS GetMap request.
- I see that you've already setup an OUTPUTFORMAT such as:
OUTPUTFORMAT
NAME "GEOTIFF_16"
DRIVER "GDAL/GTiff"
MIMETYPE "image/tiff"
IMAGEMODE INT16
EXTENSION "tif"
END
- now the trick is to call that specific outputformat. I recommend
always testing this at the commandline first, with shp2img (which will
be renamed to 'map2img' shortly, for the MapServer 8.0 release). It
takes a mapfile and generates an output (or gives exact error).
- since you are using MS4W, just open a CMD window and cd into /ms4w.
Then execute 'setenv.bat' to set necessary paths. Then, in that same
windows, cd to where your mapfile is, and execute the following (notice
the "-i" switch, which requests the named outputformat set in the
mapfile) :
shp2img -m local.map -o ttt16.tif -map_debug 3 -i GEOTIFF_16
- that command should return a draw speed for each layer, and generate
your 16-bit GeoTIFF. And look closely at that response, the first words
will be something like:
rendering using outputformat named GEOTIFF_16 (GDAL/GTiff)
Great! That's what we want.
- once you're satisfied, now we can turn to WMS requests. But always
first start with removing any "WARNING" messages in your GetCapabilities
request, and then also verifying that the <Format> section of that
response includes a listed "image/tiff" format option. (example
GetCapabilities request) :
http://127.0.0.1/cgi-bin/mapserv.exe?map=/ms4w/apps/ticket-wms-gebco-outputformat/local.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
- once you're happy with the GetCapabilities response, then you can try
a GetMap request, that includes "&FORMAT=image/tiff"
http://127.0.0.1/cgi-bin/mapserv.exe?map=/ms4w/apps/ticket-wms-gebco-outputformat/local.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=-90,-180,90,180&CRS=EPSG:4326&WIDTH=346&HEIGHT=173&LAYERS=gebco&STYLES=&FORMAT=image/tiff&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE
- or you can stay right there at your commandline, and make that GetMap
request there with the "mapserv -nh QUERY_STRING="" trick, and pipe that
to a new image file, such as:
mapserv -nh
QUERY_STRING="map=/ms4w/apps/ticket-wms-gebco-outputformat/local.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=-90,-180,90,180&CRS=EPSG:4326&WIDTH=346&HEIGHT=173&LAYERS=gebco&STYLES=&FORMAT=image/tiff&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE"
> getmap.tif
Hope that helps.
Also thanks for the positive feedback on MS4W, its goal is to serve big
data fast for organizations, on enterprise Windows servers, and it
sounds like it has met your needs well. Look for a big MS4W release
soon ;)
And a happy (Canadian) Thanksgiving holiday to you.
-jeff
_______________________________________________
MapServer-users mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/mapserver-users