Hi Steve, Anything in the MapServer logs? And what is the actual network request to MapServer? You do have a "visible: false" set in your OpenLayers code - I presume this gets changed by a legend at some point.
Seth -- mastodon: @geographika@mastodon.social On Mon, May 26, 2025, at 10:28 PM, Stephen Woodbridge via gdal-dev wrote: > Hi all, > > I'm being pulled out of retirement to fix something I created years ago. I'm > probably doing something stupid but I haven't been able to sort it out, so > ask for some help. > > System: Ubuntu-22.04 > GDAL 3.4.1, released 2021/12/27 > OpenLayers 5.3.3 > MapServer version 7.6.4 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ > SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS > SUPPORTS=RSVG SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER > SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT > SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS > SUPPORTS=GEOS SUPPORTS=POINT_Z_M SUPPORTS=PBF INPUT=JPEG INPUT=POSTGIS > INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE > > Right some of this is pretty old, but I suspect that is not the current issue. > > 1. I extract some data from HYCOM and generate a GTiff > 2. Manually generate a VRT to add a color table > 3. Have a mapserver mapfile to display it > > Step 1. seems to work fine, but when I do a mapserver query I get no results > Step 2. seems to look good and if a gdal_translate -of PNG -outsize 1% 1% > source target the image displays > Step 3. just gives me empty transparent tiles in OpenLayers > > Here is the gdalinfo results for the GTif: > > $ gdalinfo -stats -hist HYCOM_tomorrow_mld.tif > Driver: GTiff/GeoTIFF > Files: HYCOM_tomorrow_mld.tif > Size is 4500, 4251 > Coordinate System is: > GEOGCRS["WGS 84", > DATUM["World Geodetic System 1984", > ELLIPSOID["WGS 84",6378137,298.257223563, > LENGTHUNIT["metre",1]]], > PRIMEM["Greenwich",0, > ANGLEUNIT["degree",0.0174532925199433]], > CS[ellipsoidal,2], > AXIS["geodetic latitude (Lat)",north, > ORDER[1], > ANGLEUNIT["degree",0.0174532925199433]], > AXIS["geodetic longitude (Lon)",east, > ORDER[2], > ANGLEUNIT["degree",0.0174532925199433]], > ID["EPSG",4326]] > Data axis to CRS axis mapping: 2,1 > Origin = (-180.000000000000000,90.000000000000000) > Pixel Size = (0.080000000000000,-0.040000000000000) > Metadata: > AREA_OR_POINT=Area > Image Structure Metadata: > INTERLEAVE=BAND > Corner Coordinates: > Upper Left (-180.0000000, 90.0000000) (180d 0' 0.00"W, 90d 0' 0.00"N) > Lower Left (-180.0000000, -80.0400000) (180d 0' 0.00"W, 80d 2'24.00"S) > Upper Right ( 180.0000000, 90.0000000) (180d 0' 0.00"E, 90d 0' 0.00"N) > Lower Right ( 180.0000000, -80.0400000) (180d 0' 0.00"E, 80d 2'24.00"S) > Center ( 0.0000000, 4.9800000) ( 0d 0' 0.01"E, 4d58'48.00"N) > Band 1 Block=4500x1 Type=Float32, ColorInterp=Gray > Minimum=2.000, Maximum=5000.000, Mean=96.114, StdDev=346.786 > 0...10...20...30...40...50...60...70...80...90...100 - done. > 256 buckets from -7.8 to 5009.8: > 1489490 2306537 1907189 2028756 996825 306674 493493 0 196427 0 94515 0 0 > 33174 0 22423 0 0 11571 0 5892 0 0 0 0 8326 0 0 0 0 0 8045 0 0 0 0 7615 0 0 0 > 0 6418 0 0 0 0 5695 0 0 0 0 4944 0 0 0 0 0 0 0 0 0 0 0 0 13673 0 0 0 0 0 0 0 > 0 0 0 0 17543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31132 0 0 0 0 > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > 0 0 0 0 0 0 0 0 0 40660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 28594 0 0 0 0 0 0 0 0 0 0 0 0 0 > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1702 > NoData Value=-30000 > Overviews: 2250x2126, 1125x1063, 563x532, 282x266, 141x133, 71x67 > Metadata: > STATISTICS_MAXIMUM=5000 > STATISTICS_MEAN=96.114400289494 > STATISTICS_MINIMUM=2 > STATISTICS_STDDEV=346.78571541402 > STATISTICS_VALID_PERCENT=52.78 > > My assumption based on this is that I want to scale the 5000 to 250 in the > VRT which will be Type=Byte, So here is the VRT file. > > $ cat HYCOM_tomorrow_mld.vrt <VRTDataset rasterXSize="72000" > rasterYSize="68016"> > <SRS>GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS > 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4326"]]</SRS> > <GeoTransform> -180.0 ,0.005 , 0 , 90.0 , 0 , -0.0025 </GeoTransform> > <Metadata> > </Metadata> > <VRTRasterBand dataType="Byte" band="1"> > <ColorInterp>Palette</ColorInterp> > <ColorTable> > <Entry c1="0" c2="0" c3="0" c4="255"/> > > [Snip lots of entries] > > <Entry c1="255" c2="255" c3="255" c4="255"/> > </ColorTable> > <ComplexSource resampling="bilinear"> > <SourceFilename > relativeToVRT="1">HYCOM_tomorrow_mld.tif</SourceFilename> > <SourceBand>1</SourceBand> > <SrcRect xOff="0" yOff="0" xSize="4500" ySize="4251"/> > <DstRect xOff="0" yOff="0" xSize="72000" ySize="68016"/> > <ScaleRatio>1</ScaleRatio> > <NODATA>0</NODATA> > </ComplexSource> > </VRTRasterBand> > </VRTDataset> > > So to scale the data I set ScaleRatio to 0.05, but the PNG image doesn't look > right and setting it to "1" does look correct. I'm also confused as to what > to set NODATA value to. One source said/implied that the NoData of the source > file would get set to NODATA value in the VRT, but seem to be countered by > the GDAL online docs. > > Here is the gdalinfo for the VRT: > > $ gdalinfo -stats -hist HYCOM_tomorrow_mld.vrt > Driver: VRT/Virtual Raster > Files: HYCOM_tomorrow_mld.vrt > HYCOM_tomorrow_mld.tif > Size is 72000, 68016 > Coordinate System is: > GEOGCRS["WGS 84", > DATUM["World Geodetic System 1984", > ELLIPSOID["WGS 84",6378137,298.257223563, > LENGTHUNIT["metre",1]]], > PRIMEM["Greenwich",0, > ANGLEUNIT["degree",0.0174532925199433]], > CS[ellipsoidal,2], > AXIS["geodetic latitude (Lat)",north, > ORDER[1], > ANGLEUNIT["degree",0.0174532925199433]], > AXIS["geodetic longitude (Lon)",east, > ORDER[2], > ANGLEUNIT["degree",0.0174532925199433]], > ID["EPSG",4326]] > Data axis to CRS axis mapping: 2,1 > Origin = (-180.000000000000000,90.000000000000000) > Pixel Size = (0.005000000000000,-0.002500000000000) > Corner Coordinates: > Upper Left (-180.0000000, 90.0000000) (180d 0' 0.00"W, 90d 0' 0.00"N) > Lower Left (-180.0000000, -80.0400000) (180d 0' 0.00"W, 80d 2'24.00"S) > Upper Right ( 180.0000000, 90.0000000) (180d 0' 0.00"E, 90d 0' 0.00"N) > Lower Right ( 180.0000000, -80.0400000) (180d 0' 0.00"E, 80d 2'24.00"S) > Center ( 0.0000000, 4.9800000) ( 0d 0' 0.01"E, 4d58'48.00"N) > Band 1 Block=128x128 Type=Byte, ColorInterp=Palette > Minimum=2.000, Maximum=5000.000, Mean=96.114, StdDev=346.786 > 0...10...20...30...40...50...60...70...80...90...100 - done. > 256 buckets from -0.5 to 255.5: > 0 0 534720 0 330663 0 149196 0 241797 0 233114 0 285113 0 0 385666 0 0 0 0 > 574491 0 0 0 0 517919 0 0 0 0 543348 0 0 0 0 455442 0 0 0 0 487763 0 0 0 0 > 530058 0 0 0 0 433926 0 0 0 0 0 0 0 0 0 1117668 0 0 0 0 0 0 0 0 0 911088 0 0 > 0 0 0 0 0 0 0 602087 0 0 0 0 0 0 0 0 0 394738 0 0 0 0 0 0 0 0 0 306674 0 0 0 > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 493493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > 0 0 0 0 0 0 0 0 0 0 196427 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 94515 0 0 0 0 0 0 0 0 0 0 0 0 > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > 33174 0 0 0 0 244342 > Overviews: 36000x34016, 18000x17008, 9008x8512, 4512x4256, 2256x2128, > 1136x1072 > Metadata: > STATISTICS_MAXIMUM=5000 > STATISTICS_MEAN=96.114400289494 > STATISTICS_MINIMUM=2 > STATISTICS_STDDEV=346.78571541402 > Color Table (RGB with 256 entries) > 0: 0,0,0,255 > [snip additional entries] > > And finally the mapfile that is getting used via OpenLayers: > > MAP > NAME "HYCOM_2d_2" > STATUS ON > SIZE 950 600 > EXTENT -180 -90 180 90 > UNITS DD > IMAGECOLOR "#000000" > IMAGETYPE agg_qn > MAXSIZE 4096 > > CONFIG ON_MISSING_DATA "IGNORE" > # CONFIG MS_ERRORFILE "stderr" > # DEBUG 10 > > OUTPUTFORMAT > NAME "agg_qn" > DRIVER "AGG/PNG" > EXTENSION "png" > MIMETYPE "image/png" > IMAGEMODE RGBA > FORMATOPTION "INTERLACE=false" > FORMATOPTION "QUANTIZE_NEW=ON" > FORMATOPTION "QUANTIZE_FORCE=ON" > FORMATOPTION "QUANTIZE_DITHER=OFF" > FORMATOPTION "QUANTIZE_COLORS=256" > TRANSPARENT ON > FORMATOPTION "TRANSPARENT=ON" > END > > OUTPUTFORMAT > NAME aggpng24 > DRIVER AGG/PNG > MIMETYPE "image/png" > IMAGEMODE RGB > EXTENSION "png" > END > > OUTPUTFORMAT > NAME jpeg > DRIVER AGG/JPEG > MIMETYPE "image/jpeg" > IMAGEMODE RGB > EXTENSION "jpg" > FORMATOPTION "GAMMA=0.75" > FORMATOPTION "QUALITY=75" > END > > WEB > METADATA > labelcache_map_edge_buffer "-20" > "ows_title" "iMaptools - HYCOM data" > "ows_onlineresource" > "http://map01.saltwatercentral.com/cgi-bin/mapserv?MAP=/maps/wms/hycom_2d_2.map" > "ows_srs" "EPSG:4326 EPSG:900913 EPSG:3857" > "ows_contactperson" "Stephen Woodbridge" > "ows_contactorganization" "iMaptools.com" > "ows_contactposition" "Owner" > "ows_contactelectronicmailaddress" "i...@imaptools.com" > "ows_enable_request" "GetMap" > "ows_http_max_age" "3200" > END > END > > PROJECTION "init=epsg:4326" END > > LAYER > NAME "ssh" > STATUS ON > TYPE RASTER > PROJECTION "init=epsg:4326" END > DATA "/maps/wms/data/HYCOM/HYCOM_tomorrow_ssh.vrt" > PROCESSING "NODATA=-30000" > PROCESSING "SCALE=-1.0,1.0" > END > > LAYER > NAME "mlt" > STATUS ON > TYPE RASTER > PROJECTION "init=epsg:4326" END > DATA "/maps/wms/data/HYCOM/HYCOM_tomorrow_mlt.vrt" > #PROCESSING "NODATA=1.2676506002282294e+30" > PROCESSING "NODATA=-30000" > PROCESSING "SCALE=0,250" > END > > LAYER > NAME "query" > STATUS ON > TYPE raster > PROJECTION "init=epsg:4326" END > VALIDATION 'type' '.' END > TOLERANCE 0 > TOLERANCEUNITS pixels > DATA "/maps/wms/data/HYCOM/HYCOM_tomorrow_%type%.tif" > PROCESSING "NODATA=-30000" > TEMPLATE "/maps/wms/pixel.value.html" > END > > END > > I've tried various options of including PROCESSING "NODATA=' and PROCESSING > "SCALE=" to no success. And the "ssh" layer which is nearly identical seems > to would fine. > > It get displayed via OpenLayers using a layer definition like: > > hycom_mlt_2: new TileLayer({ > title: 'Mixed Layer Depth (0.3degC chg)', > clickable: 'hycom_mlt_2', > type: 'overlay', > visible: false, > source: new TileWMS({ > projection: 'EPSG:3857', > urls: getMapUrls('//', map_hosts, > '/cgi-bin/mapserv?map=/maps/wms/hycom_2d_2.map'), > params: { > 'LAYERS': 'mlt', > 'format': 'image/png', > 'version': '1.3.0' > } > }) > }), > > > I would appreciate any assistance in figuring out what I'm doing wrong. > > Thanks, > Steve > <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> > Virus-free.www.avast.com > <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> > _______________________________________________ > gdal-dev mailing list > gdal-dev@lists.osgeo.org > https://lists.osgeo.org/mailman/listinfo/gdal-dev >
_______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/gdal-dev