tileindexes, time and raster inputs

Frank Warmerdam warmerdam at POBOX.COM
Thu Jun 22 14:20:56 EDT 2006


I have been trying to work with Denis Nadeau (NASA) on setting up a
mapserver instance with temporal support.  He has provided me a small
test setup showing what they want to do, but has been having a lot of
trouble getting proper functioning.

The basic setup is a common one.  A bunch of images for the same region
with different times.  Denis has setup a tileindex properly with a TIME
column with the dates for each image (daily).

We have the following stuff set on the layer:

     TILEINDEX 'data/AIRS/testindex.shp'
     TILEITEM  'location'
       wms_title        "Aqua AIRS Visible/NIR False Color Composite, 10 km 
resolution, registered"   ##required
       wms_timeextent  "2006-06-10/2006-06-18"
       wms_timeitem    "TIME"
       wms_timedefault "2006-06-10"

I found this was not working when I made a request with a time set.
Internally the msLayerMakePlainTimeFilter() was being used which generated
filter expressions like "TIME = '2006-03-10'".  To get things working I
have modified rasters layers to default to using the
msLayerMakeBackticsTimeFilter() which is what is used for in-mapserver
filter expression evaluation with times for formats like shapefiles.  Since
direct tileindexes in raster layers need to be shapefiles, this seems like
the most appropriate default.

OK, one problem solved.  Perhaps I should move the fix into 4.8.x as well?


The next problem is that if I don't include &TIME=something in the request
url, the default time is not used.  Shouldn't it be?  It seems I have to
add "&TIME=" (that is an empty time request) in order to get the default
time to kick in.  Is that the desired behavior?  This is annoying in this
application context since we end up rendering all the time images (quick
slow) if a WMS request is made without an explicit time.  Denis and I had
assumed the default time would be used any time the user did not supply
a time.


The next problem I encountered was when trying to use a distinct tileindex
layer.  This did not seem to work for me, and generally resulted in
everything being selected.  I tried copying the time metadata to the
tileindex layer in the hopes it would then get the time filter assigned
to it, but that did not seem to occur.  The raster layer's filter was
set (with backtics) but this filter is not propagated on to the tileindex
layer in mapraster.c.

How should this work?  How do others handle it?  It also seems that
direct propogation from the raster layer to the tileindex layer isn't
safe since the tileindex layer may use a different time query format,
so the time query needs to be generated directly on the tileindex layer.

As an aside, I was also frustrated trying to hide the tileindex layer
(TYPE TILEINDEX) from showing up in the capabilities.  Is there a simple
way of ensuring some layers don't appear there?

Best regards,
I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam at pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | President OSGF, http://osgeo.org

More information about the mapserver-dev mailing list