0

I deployed a GeoServer instance to serve layers from multitemporal netCDF mainly. I have always used WMS GetMap requests with the TIME parameter to specify the time layer to show. Now they require me to switch to WMTS but I realized the TIME in GetTile requests is not working. Is it possible to use the TIME parameter in WMTS in GeoServer?

I installed the plugin Multidimensional WMTS and in the WMTS GetCapabilities I see the time dimension:

<Dimension>
            <ows:Identifier>time</ows:Identifier>
            <Default>current</Default>
            <Value>2022-10-13T03:00:00.000Z</Value>
            <Value>2022-10-13T06:00:00.000Z</Value>
            <Value>2022-10-13T09:00:00.000Z</Value>
            <Value>2022-10-13T12:00:00.000Z</Value>
            <Value>2022-10-13T15:00:00.000Z</Value>
            <Value>2022-10-13T18:00:00.000Z</Value>
            <Value>2022-10-13T21:00:00.000Z</Value>
            <Value>2022-10-14T00:00:00.000Z</Value>
            <Value>2022-10-14T03:00:00.000Z</Value>
            <Value>2022-10-14T06:00:00.000Z</Value>
            <Value>2022-10-14T09:00:00.000Z</Value>
            <Value>2022-10-14T12:00:00.000Z</Value>
            <Value>2022-10-14T15:00:00.000Z</Value>
            <Value>2022-10-14T18:00:00.000Z</Value>
            <Value>2022-10-14T21:00:00.000Z</Value>
            <Value>2022-10-15T00:00:00.000Z</Value>
            <Value>2022-10-15T03:00:00.000Z</Value>
            <Value>2022-10-15T06:00:00.000Z</Value>
        </Dimension>

EDIT: as suggested by @Ian, I enabled the DEVELOPER MODE and here below the logs during a WMTS request:

18 019 10:19:39 TRACE  [geoserver.platform] - Found Property override: 'geoserver.xframe.shouldSetPolicy' to be unset
18 019 10:19:39 TRACE  [geoserver.platform] - Found Property override: 'geoserver.xframe.shouldSetPolicy' to be unset
18 019 10:19:39 TRACE  [geoserver.platform] - Found Property override: 'geoserver.xframe.policy' to be unset
18 019 10:19:39 TRACE  [geoserver.platform] - Found Java environment variable : 'geoserver.xframe.policy' to be unset
18 019 10:19:39 TRACE  [geoserver.platform] - Found Servlet context parameter : 'geoserver.xframe.policy' to be unset
18 019 10:19:39 TRACE  [geoserver.platform] - Found System environment variable : 'geoserver.xframe.policy' to be unset
18 019 10:19:39 DEBUG  [geoserver.security] - Checking match of request : 'Path: /gwc/service/wmts, QueryString: SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ermes:31209_cape_31010_d735be58-5d26-4c65-9778-de71b5bc02bd&STYLE=raster_cape&FORMAT=image/png&TILEMATRIXSET=EPSG:4326&TILEMATRIX=EPSG:4326:5&TILEROW=9&TILECOL=31&TIME=2022-09-27T15:00:00.000Z'; against '/web/**'
18 019 10:19:39 DEBUG  [geoserver.security] - Checking match of request : 'Path: /gwc/service/wmts, QueryString: SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ermes:31209_cape_31010_d735be58-5d26-4c65-9778-de71b5bc02bd&STYLE=raster_cape&FORMAT=image/png&TILEMATRIXSET=EPSG:4326&TILEMATRIX=EPSG:4326:5&TILEROW=9&TILECOL=31&TIME=2022-09-27T15:00:00.000Z'; against '/gwc/rest/web/**'
18 019 10:19:39 DEBUG  [geoserver.security] - Checking match of request : 'Path: /gwc/service/wmts, QueryString: SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ermes:31209_cape_31010_d735be58-5d26-4c65-9778-de71b5bc02bd&STYLE=raster_cape&FORMAT=image/png&TILEMATRIXSET=EPSG:4326&TILEMATRIX=EPSG:4326:5&TILEROW=9&TILECOL=31&TIME=2022-09-27T15:00:00.000Z'; against '/'
18 019 10:19:39 DEBUG  [geoserver.security] - Checking match of request : 'Path: /gwc/service/wmts, QueryString: SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ermes:31209_cape_31010_d735be58-5d26-4c65-9778-de71b5bc02bd&STYLE=raster_cape&FORMAT=image/png&TILEMATRIXSET=EPSG:4326&TILEMATRIX=EPSG:4326:5&TILEROW=9&TILECOL=31&TIME=2022-09-27T15:00:00.000Z'; against '/j_spring_security_check'
18 019 10:19:39 DEBUG  [geoserver.security] - Checking match of request : 'Path: /gwc/service/wmts, QueryString: SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ermes:31209_cape_31010_d735be58-5d26-4c65-9778-de71b5bc02bd&STYLE=raster_cape&FORMAT=image/png&TILEMATRIXSET=EPSG:4326&TILEMATRIX=EPSG:4326:5&TILEROW=9&TILECOL=31&TIME=2022-09-27T15:00:00.000Z'; against '/j_spring_security_check/'
18 019 10:19:39 DEBUG  [geoserver.security] - Checking match of request : 'Path: /gwc/service/wmts, QueryString: SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ermes:31209_cape_31010_d735be58-5d26-4c65-9778-de71b5bc02bd&STYLE=raster_cape&FORMAT=image/png&TILEMATRIXSET=EPSG:4326&TILEMATRIX=EPSG:4326:5&TILEROW=9&TILECOL=31&TIME=2022-09-27T15:00:00.000Z'; against '/login'
18 019 10:19:39 DEBUG  [geoserver.security] - Checking match of request : 'Path: /gwc/service/wmts, QueryString: SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ermes:31209_cape_31010_d735be58-5d26-4c65-9778-de71b5bc02bd&STYLE=raster_cape&FORMAT=image/png&TILEMATRIXSET=EPSG:4326&TILEMATRIX=EPSG:4326:5&TILEROW=9&TILECOL=31&TIME=2022-09-27T15:00:00.000Z'; against '/j_spring_security_logout'
18 019 10:19:39 DEBUG  [geoserver.security] - Checking match of request : 'Path: /gwc/service/wmts, QueryString: SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ermes:31209_cape_31010_d735be58-5d26-4c65-9778-de71b5bc02bd&STYLE=raster_cape&FORMAT=image/png&TILEMATRIXSET=EPSG:4326&TILEMATRIX=EPSG:4326:5&TILEROW=9&TILECOL=31&TIME=2022-09-27T15:00:00.000Z'; against '/j_spring_security_logout/'
18 019 10:19:39 DEBUG  [geoserver.security] - Checking match of request : 'Path: /gwc/service/wmts, QueryString: SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ermes:31209_cape_31010_d735be58-5d26-4c65-9778-de71b5bc02bd&STYLE=raster_cape&FORMAT=image/png&TILEMATRIXSET=EPSG:4326&TILEMATRIX=EPSG:4326:5&TILEROW=9&TILECOL=31&TIME=2022-09-27T15:00:00.000Z'; against '/logout'
18 019 10:19:39 DEBUG  [geoserver.security] - Checking match of request : 'Path: /gwc/service/wmts, QueryString: SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ermes:31209_cape_31010_d735be58-5d26-4c65-9778-de71b5bc02bd&STYLE=raster_cape&FORMAT=image/png&TILEMATRIXSET=EPSG:4326&TILEMATRIX=EPSG:4326:5&TILEROW=9&TILECOL=31&TIME=2022-09-27T15:00:00.000Z'; against '/rest/**'
18 019 10:19:39 DEBUG  [geoserver.security] - Checking match of request : 'Path: /gwc/service/wmts, QueryString: SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ermes:31209_cape_31010_d735be58-5d26-4c65-9778-de71b5bc02bd&STYLE=raster_cape&FORMAT=image/png&TILEMATRIXSET=EPSG:4326&TILEMATRIX=EPSG:4326:5&TILEROW=9&TILECOL=31&TIME=2022-09-27T15:00:00.000Z'; against '/gwc/rest/**'
18 019 10:19:39 DEBUG  [geoserver.security] - Checking match of request : 'Path: /gwc/service/wmts, QueryString: SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ermes:31209_cape_31010_d735be58-5d26-4c65-9778-de71b5bc02bd&STYLE=raster_cape&FORMAT=image/png&TILEMATRIXSET=EPSG:4326&TILEMATRIX=EPSG:4326:5&TILEROW=9&TILECOL=31&TIME=2022-09-27T15:00:00.000Z'; against '/**'
18 019 10:19:39 DEBUG  [geoserver.security] - Request matched by universal pattern '/**'
18 019 10:19:39 DEBUG  [geoserver.security] - Matched Path: /gwc/service/wmts, QueryString: SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ermes:31209_cape_31010_d735be58-5d26-4c65-9778-de71b5bc02bd&STYLE=raster_cape&FORMAT=image/png&TILEMATRIXSET=EPSG:4326&TILEMATRIX=EPSG:4326:5&TILEROW=9&TILECOL=31&TIME=2022-09-27T15:00:00.000Z with /**
18 019 10:19:39 DEBUG  [geoserver.security] - AuthenticationCache has no entry for basic, admin_g:***
18 019 10:19:39 DEBUG  [rememberme.GeoServerTokenBasedRememberMeServices] - Did not send remember-me cookie (principal did not set parameter '_spring_security_remember_me')
18 019 10:19:39 DEBUG  [rememberme.GeoServerTokenBasedRememberMeServices] - Remember-me login not requested.
18 019 10:19:39 DEBUG  [geoserver.security] - AuthenticationCache adding new entry for basic, admin_g:***
18 019 10:19:39 DEBUG  [geoserver.security] - Cache entries #: 0
18 019 10:19:39 DEBUG  [geoserver.security] - AuthenticationCache added new entry for basic, admin_g:***
18 019 10:19:39 DEBUG  [geoserver.security] - Cache entries #: 1
18 019 10:19:39 TRACE  [geoserver.monitor] - Testing /gwc/service/wmts for monitor filtering
18 019 10:19:39 DEBUG  [geoserver.ows] - Could not find a layer group named gwc
18 019 10:19:39 TRACE  [ows.OWSHandlerMapping] - Mapped to HandlerExecutionChain with [org.geoserver.ows.Dispatcher@65094d46] and 1 interceptors
18 019 10:19:39 DEBUG  [geoserver.ows] - Could not lookup context gwc as a workspace, trying as group
18 019 10:19:39 DEBUG  [geoserver.ows] - Could not lookup context gwc as a layer group either
18 019 10:19:39 INFO   [geoserver.flow] - Request [gwc 1.0.0 dispatch] starting, processing through flow controllers
18 019 10:19:39 DEBUG  [geoserver.flow] - Request [gwc 1.0.0 dispatch] checking flow controller BasicOWSController(wfs.getfeature.=application/msexcel,org.geoserver.flow.controller.SimpleThreadBlocker@d8b7c21)
18 019 10:19:39 DEBUG  [geoserver.flow] - Request [gwc 1.0.0 dispatch] passed flow controller BasicOWSController(wfs.getfeature.=application/msexcel,org.geoserver.flow.controller.SimpleThreadBlocker@d8b7c21)
18 019 10:19:39 DEBUG  [geoserver.flow] - Request [gwc 1.0.0 dispatch] checking flow controller org.geoserver.flow.controller.UserConcurrentFlowController@7515d347
18 019 10:19:39 DEBUG  [geoserver.flow] - UserFlowController(6,GS_CFLOW_-2716ae27:1837f0befe3:-7d62) queue size 1
18 019 10:19:39 DEBUG  [geoserver.flow] - UserFlowController(6,GS_CFLOW_-2716ae27:1837f0befe3:-7d62) total queues 1
18 019 10:19:39 DEBUG  [geoserver.flow] - UserFlowController(6) purged 0 stale queues
18 019 10:19:39 DEBUG  [geoserver.flow] - Request [gwc 1.0.0 dispatch] passed flow controller org.geoserver.flow.controller.UserConcurrentFlowController@7515d347
18 019 10:19:39 DEBUG  [geoserver.flow] - Request [gwc 1.0.0 dispatch] checking flow controller BasicOWSController(wms.getmap,org.geoserver.flow.controller.SimpleThreadBlocker@1f087843)
18 019 10:19:39 DEBUG  [geoserver.flow] - Request [gwc 1.0.0 dispatch] passed flow controller BasicOWSController(wms.getmap,org.geoserver.flow.controller.SimpleThreadBlocker@1f087843)
18 019 10:19:39 DEBUG  [geoserver.flow] - Request [gwc 1.0.0 dispatch] checking flow controller BasicOWSController(gwc,org.geoserver.flow.controller.SimpleThreadBlocker@30447599)
18 019 10:19:39 DEBUG  [geoserver.flow] - Request [gwc 1.0.0 dispatch] passed flow controller BasicOWSController(gwc,org.geoserver.flow.controller.SimpleThreadBlocker@30447599)
18 019 10:19:39 DEBUG  [geoserver.flow] - Request [gwc 1.0.0 dispatch] checking flow controller GlobalFlowController(org.geoserver.flow.controller.SimpleThreadBlocker@66f87dc4)
18 019 10:19:39 DEBUG  [geoserver.flow] - Request [gwc 1.0.0 dispatch] passed flow controller GlobalFlowController(org.geoserver.flow.controller.SimpleThreadBlocker@66f87dc4)
18 019 10:19:39 DEBUG  [geoserver.flow] - Request [gwc 1.0.0 dispatch] checking flow controller RateFlowController [wps.execute, action=Delay excess requests 30000ms]
18 019 10:19:39 DEBUG  [geoserver.flow] - Request [gwc 1.0.0 dispatch] passed flow controller RateFlowController [wps.execute, action=Delay excess requests 30000ms]
18 019 10:19:39 INFO   [geoserver.flow] - Request control-flow performed, running requests: 1, blocked requests: 0
18 019 10:19:39 DEBUG  [geoserver.gwc] - Using cacheAgeMax {0}
18 019 10:19:39 DEBUG  [geoserver.filters] - Not compressing output for mimetype: image/png
18 019 10:19:39 INFO   [geoserver.flow] - releasing flow controllers for [gwc 1.0.0 dispatch]
18 019 10:19:39 INFO   [geoserver.flow] - Request completed, running requests: 0, blocked requests: 0
18 019 10:19:39 DEBUG  [filter.GeoServerSecurityContextPersistenceFilter$1] - SecurityContextHolder now cleared, as request processing completed
18 019 10:19:41 TRACE  [platform.resource] - polling contents of /opt/geoserver/data_dir/gwc-layers
18 019 10:19:41 TRACE  [platform.resource] - delta computed in 345us for /opt/geoserver/data_dir/gwc-layers

Even changing the TIME parameter, the request returns the very same tile, it seems to be ignored.

3
  • how are you including the TIME in your requests?
    – Ian Turton
    Commented Oct 14, 2022 at 15:08
  • here an example of my WMTS request: <geoserver-url>/geoserver/gwc/service/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&FORMAT=image/png&TILEMATRIXSET=EPSG:4326&LAYER=ermes:ws10&TILEMATRIX=EPSG:4326:6&TILEROW=11&TILECOL=77&TIME=2022-10-13T06:00:00.000Z Commented Oct 14, 2022 at 15:29
  • You need to turn up the logging level to developer in the global settings page, and then make the request again. Then edit your question with the relevant part of the log file.
    – Ian Turton
    Commented Oct 14, 2022 at 15:36

1 Answer 1

1

Did you enable TIME as a parameter filter for that layer?

https://docs.geoserver.org/stable/en/user/geowebcache/using.html#supported-parameter-filters

2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.