[Geoserver-users] ImageMosaic and Time

Hello List,

I have been racking my brain trying to get TIME to work in Geoserver. I have tried using the 2.2.2 version and the current version from git and I have been getting the same results each time. I’m currently trying to use the ImageMosaic raster store to bring in a collection of worldfiles (PNG, PGW, and PRJ files) that were originally named as OWS_Graphics_sfc.sfc.2010082700.png, OWS_Graphics_sfc.sfc.2010082701.png, etc. If i bring them in without the timeregex.properties and indexer.properties files the store is created fine and I can create a layer with no time. Opening the layer in layer preview will bring in the first image in the group and the viewing works fine.

Now when I use the indexer.properties file and the regex.properties files and try and activate time it lets me create the layer, but then I get an unparseable date exception:
13 Feb 14:43:26 WARN [catalog.util] - Unparseable date: “”

java.text.ParseException: Unparseable date: “”

Debugging the code I get to org.geoserver.catalog.util.ReaderDimensionsAccessor.getTimeDomain() and find that reader.getMetadataValue(TIME_DOMAIN) is returning an empty string and therefore is blowing up capabilities creation because it’s not being handled. Now why I am stuck is why the ImageMosaicFormat is not setting the time dimension on the data. While debugging I have renamed my files to be “OWS_Graphics_20100801.png” and my .properties files are as follows:

timeregex.properties:

regex=[0-9]{8}

indexer.properties:

TimeAttribute=time

Schema= the_geom:Polygon,location:String,time:java.util.Date

PropertyCollectors=TimestampFileNameExtractorSPItimeregex

Also I have tried using gdal_translate to convert all the worldfiles to GeoTiffs as is shown in all the examples and I am running into the same issue. If there is someone out there using this successfully that I could send them a sample data set that would be great as I am currently stuck and am not having the most luck debugging the code.

I am attaching a stacktrace from the output that I get when I try and get a capabilities document but as I said earlier that is linked to returning an empty string on the reader.getMetatdataValue(TIME_DOMAIN) line.

v/r
Chris Gervais
Software Engineer
AER, Inc. (I fear not for long if I don't figure this out) 

CapabilitiesErrorOutput.txt (18.2 KB)

Ciao Chris,
please, find my answer inline below...

Regards,
Simone Giannecchini

Our support, Your Success! Visit http://opensdi.geo-solutions.it for
more information.

Ing. Simone Giannecchini
@simogeo
Founder/Director

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 333 8128928

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

On Wed, Feb 13, 2013 at 9:08 PM, Chris Gervais <chris.gervais@anonymised.com> wrote:

Hello List,

I have been racking my brain trying to get TIME to work in Geoserver. I have
tried using the 2.2.2 version and the current version from git and I have
been getting the same results each time. I'm currently trying to use the
ImageMosaic raster store to bring in a collection of worldfiles (PNG, PGW,
and PRJ files) that were originally named as
OWS_Graphics_sfc.sfc.2010082700.png, OWS_Graphics_sfc.sfc.2010082701.png,
etc.

I would go with geotiff rather than png, which is relatively bad as a
form for GIS image serving.
That said, this is not related to your problem.

If i bring them in without the timeregex.properties and
indexer.properties files the store is created fine and I can create a layer
with no time. Opening the layer in layer preview will bring in the first
image in the group and the viewing works fine.

Now when I use the indexer.properties file and the regex.properties files
and try and activate time it lets me create the layer, but then I get an
unparseable date exception:

13 Feb 14:43:26 WARN [catalog.util] - Unparseable date: ""

java.text.ParseException: Unparseable date: ""

Debugging the code I get to
org.geoserver.catalog.util.ReaderDimensionsAccessor.getTimeDomain() and find
that reader.getMetadataValue(TIME_DOMAIN) is returning an empty string and
therefore is blowing up capabilities creation because it's not being
handled. Now why I am stuck is why the ImageMosaicFormat is not setting the
time dimension on the data. While debugging I have renamed my files to be
"OWS_Graphics_20100801.png" and my .properties files are as follows:

timeregex.properties:

regex=[0-9]{8}

indexer.properties:

TimeAttribute=time

Schema= the_geom:Polygon,location:String,time:java.util.Date

PropertyCollectors=TimestampFileNameExtractorSPI[timeregex](time)

This looks good. I just did a quick test using this files on some
sample files with similar naming and things works as expected for me.
I am attaching the samples I used (side note, you might recognize some
meteosata date :slight_smile: ), noticed that I was using GeoServer 2.2.4. Also,
remember to activate the time dimension in the dimension tab for the
mosaic.
Notice that I just sent an email on how to place the index on a
Postgis db, once you get this worling I would conside that option,
especially since you might want to update this dataset over time I
believe.

Also I have tried using gdal_translate to convert all the worldfiles to
GeoTiffs as is shown in all the examples and I am running into the same
issue. If there is someone out there using this successfully that I could
send them a sample data set that would be great as I am currently stuck and
am not having the most luck debugging the code.

I am attaching a stacktrace from the output that I get when I try and get a
capabilities document but as I said earlier that is linked to returning an
empty string on the reader.getMetatdataValue(TIME_DOMAIN) line.

v/r
Chris Gervais
Software Engineer
AER, Inc. (I fear not for long if I don't figure this out)

------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

test.zip (64.8 KB)

Hello Simone,

First of all, thank you for your help. I’ve made the changes to my indexer.properties so they matched yours that you used in your test. It changed the error that I was receiving so I know i’m doing something wrong somewhere else. I have made a zip of my dataset (even though it’s just some crap data but it follows the pattern of what my system will be putting out.) https://docs.google.com/file/d/0B2sg9LbqPxttbXM3a2VPZFQ3dUU/edit?usp=sharing

I’m getting the same unparseable date error when I try and pull capablities and the error that I’m getting when I try to preview a layer is pasted below:

Request: getServiceInfo

13 Feb 19:44:36 ERROR [geoserver.ows] -

java.lang.IllegalStateException: Unable to compute extrema value:TIME_DOMAIN_MAXIMUM

at org.geotools.gce.imagemosaic.ImageMosaicReader$DomainDescriptor.getExtrema(ImageMosaicReader.java:188)

at org.geotools.gce.imagemosaic.ImageMosaicReader$DomainDescriptor.access$500(ImageMosaicReader.java:119)

at org.geotools.gce.imagemosaic.ImageMosaicReader$DomainManager.getMetadataValue(ImageMosaicReader.java:411)

at org.geotools.gce.imagemosaic.ImageMosaicReader.getMetadataValue(ImageMosaicReader.java:1136)

at org.geoserver.catalog.util.ReaderDimensionsAccessor.getMaxTime(ReaderDimensionsAccessor.java:80)

at org.geoserver.wms.WMS.getCurrentTime(WMS.java:1018)

at org.geoserver.wms.WMS.getWMSReadParameters(WMS.java:811)

at org.geoserver.wms.GetMap.executeInternal(GetMap.java:383)

at org.geoserver.wms.GetMap.run(GetMap.java:201)

at org.geoserver.wms.GetMap.run(GetMap.java:111)

at org.geoserver.wms.DefaultWebMapService.getMap(DefaultWebMapService.java:356)

at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)

at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.geoserver.gwc.wms.CacheSeedingWebMapService.invoke(CacheSeedingWebMapService.java:61)

at org.geoserver.gwc.wms.CacheSeedingWebMapService.invoke(CacheSeedingWebMapService.java:1)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.geoserver.gwc.wms.CachingWebMapService.invoke(CachingWebMapService.java:69)

at org.geoserver.gwc.wms.CachingWebMapService.invoke(CachingWebMapService.java:1)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.geoserver.ows.util.RequestObjectLogger.invoke(RequestObjectLogger.java:54)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

at $Proxy23.getMap(Unknown Source)

at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.geoserver.ows.Dispatcher.execute(Dispatcher.java:774)

at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:272)

at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)

at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)

at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)

at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:27)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:74)

at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:45)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:49)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)

at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:53)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)

at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)

at org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:82)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)

at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)

at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:46)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)

at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:101)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:75)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:47)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)

at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)

at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)

at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

at org.mortbay.jetty.Server.handle(Server.java:324)

at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)

at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)

at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)

at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)

at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)

at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)

at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

···

On Wed, Feb 13, 2013 at 6:46 PM, Simone Giannecchini <simone.giannecchini@anonymised.com> wrote:

Ciao Chris,
please, find my answer inline below…

Regards,
Simone Giannecchini

Our support, Your Success! Visit http://opensdi.geo-solutions.it for
more information.

Ing. Simone Giannecchini
@simogeo
Founder/Director

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 333 8128928

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


On Wed, Feb 13, 2013 at 9:08 PM, Chris Gervais <chris.gervais@anonymised.com> wrote:

Hello List,

I have been racking my brain trying to get TIME to work in Geoserver. I have
tried using the 2.2.2 version and the current version from git and I have
been getting the same results each time. I’m currently trying to use the
ImageMosaic raster store to bring in a collection of worldfiles (PNG, PGW,
and PRJ files) that were originally named as
OWS_Graphics_sfc.sfc.2010082700.png, OWS_Graphics_sfc.sfc.2010082701.png,
etc.

I would go with geotiff rather than png, which is relatively bad as a
form for GIS image serving.
That said, this is not related to your problem.

If i bring them in without the timeregex.properties and
indexer.properties files the store is created fine and I can create a layer
with no time. Opening the layer in layer preview will bring in the first
image in the group and the viewing works fine.

Now when I use the indexer.properties file and the regex.properties files
and try and activate time it lets me create the layer, but then I get an
unparseable date exception:

13 Feb 14:43:26 WARN [catalog.util] - Unparseable date: “”

java.text.ParseException: Unparseable date: “”

Debugging the code I get to
org.geoserver.catalog.util.ReaderDimensionsAccessor.getTimeDomain() and find
that reader.getMetadataValue(TIME_DOMAIN) is returning an empty string and
therefore is blowing up capabilities creation because it’s not being
handled. Now why I am stuck is why the ImageMosaicFormat is not setting the
time dimension on the data. While debugging I have renamed my files to be
“OWS_Graphics_20100801.png” and my .properties files are as follows:

timeregex.properties:

regex=[0-9]{8}

indexer.properties:

TimeAttribute=time

Schema= the_geom:Polygon,location:String,time:java.util.Date

PropertyCollectors=TimestampFileNameExtractorSPItimeregex

This looks good. I just did a quick test using this files on some
sample files with similar naming and things works as expected for me.
I am attaching the samples I used (side note, you might recognize some
meteosata date :slight_smile: ), noticed that I was using GeoServer 2.2.4. Also,
remember to activate the time dimension in the dimension tab for the
mosaic.
Notice that I just sent an email on how to place the index on a
Postgis db, once you get this worling I would conside that option,
especially since you might want to update this dataset over time I
believe.

Also I have tried using gdal_translate to convert all the worldfiles to
GeoTiffs as is shown in all the examples and I am running into the same
issue. If there is someone out there using this successfully that I could
send them a sample data set that would be great as I am currently stuck and
am not having the most luck debugging the code.

I am attaching a stacktrace from the output that I get when I try and get a
capabilities document but as I said earlier that is linked to returning an
empty string on the reader.getMetatdataValue(TIME_DOMAIN) line.

v/r
Chris Gervais
Software Engineer
AER, Inc. (I fear not for long if I don’t figure this out)


Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb


Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Ciao Chris,
I checked the files and I found a little problem, you have trailing
spaces in your indexer.properties file.
Quick action is to remove the trailing spaces from the config files
manually, however I am making the parsing more resilient
(http://jira.codehaus.org/browse/GEOS-5647)

Removing the spaces should fix the problem.

Regards,
Simone Giannecchini

Our support, Your Success! Visit http://opensdi.geo-solutions.it for
more information.

Ing. Simone Giannecchini
@simogeo
Founder/Director

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 333 8128928

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

On Thu, Feb 14, 2013 at 1:50 AM, Chris Gervais <chris.gervais@anonymised.com> wrote:

Hello Simone,

First of all, thank you for your help. I've made the changes to my
indexer.properties so they matched yours that you used in your test. It
changed the error that I was receiving so I know i'm doing something wrong
somewhere else. I have made a zip of my dataset (even though it's just some
crap data but it follows the pattern of what my system will be putting out.)
https://docs.google.com/file/d/0B2sg9LbqPxttbXM3a2VPZFQ3dUU/edit?usp=sharing

I'm getting the same unparseable date error when I try and pull capablities
and the error that I'm getting when I try to preview a layer is pasted
below:

Request: getServiceInfo

13 Feb 19:44:36 ERROR [geoserver.ows] -

java.lang.IllegalStateException: Unable to compute extrema
value:TIME_DOMAIN_MAXIMUM

at
org.geotools.gce.imagemosaic.ImageMosaicReader$DomainDescriptor.getExtrema(ImageMosaicReader.java:188)

at
org.geotools.gce.imagemosaic.ImageMosaicReader$DomainDescriptor.access$500(ImageMosaicReader.java:119)

at
org.geotools.gce.imagemosaic.ImageMosaicReader$DomainManager.getMetadataValue(ImageMosaicReader.java:411)

at
org.geotools.gce.imagemosaic.ImageMosaicReader.getMetadataValue(ImageMosaicReader.java:1136)

at
org.geoserver.catalog.util.ReaderDimensionsAccessor.getMaxTime(ReaderDimensionsAccessor.java:80)

at org.geoserver.wms.WMS.getCurrentTime(WMS.java:1018)

at org.geoserver.wms.WMS.getWMSReadParameters(WMS.java:811)

at org.geoserver.wms.GetMap.executeInternal(GetMap.java:383)

at org.geoserver.wms.GetMap.run(GetMap.java:201)

at org.geoserver.wms.GetMap.run(GetMap.java:111)

at
org.geoserver.wms.DefaultWebMapService.getMap(DefaultWebMapService.java:356)

at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)

at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)

at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at
org.geoserver.gwc.wms.CacheSeedingWebMapService.invoke(CacheSeedingWebMapService.java:61)

at
org.geoserver.gwc.wms.CacheSeedingWebMapService.invoke(CacheSeedingWebMapService.java:1)

at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at
org.geoserver.gwc.wms.CachingWebMapService.invoke(CachingWebMapService.java:69)

at
org.geoserver.gwc.wms.CachingWebMapService.invoke(CachingWebMapService.java:1)

at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at
org.geoserver.ows.util.RequestObjectLogger.invoke(RequestObjectLogger.java:54)

at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

at $Proxy23.getMap(Unknown Source)

at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)

at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.geoserver.ows.Dispatcher.execute(Dispatcher.java:774)

at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:272)

at
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)

at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)

at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)

at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)

at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)

at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)

at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)

at
org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:27)

at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at
org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:74)

at
org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:45)

at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at
org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:49)

at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)

at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)

at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)

at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)

at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)

at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)

at
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)

at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)

at
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)

at
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)

at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at
org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:53)

at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)

at
org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)

at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)

at
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)

at
org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:82)

at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)

at
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)

at
org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:46)

at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)

at
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)

at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)

at
org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:101)

at
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

at
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)

at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:75)

at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)

at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at
org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:47)

at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)

at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)

at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)

at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

at org.mortbay.jetty.Server.handle(Server.java:324)

at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)

at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)

at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)

at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)

at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)

at
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)

at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

On Wed, Feb 13, 2013 at 6:46 PM, Simone Giannecchini
<simone.giannecchini@anonymised.com> wrote:

Ciao Chris,
please, find my answer inline below...

Regards,
Simone Giannecchini

Our support, Your Success! Visit http://opensdi.geo-solutions.it for
more information.

Ing. Simone Giannecchini
@simogeo
Founder/Director

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 333 8128928

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

On Wed, Feb 13, 2013 at 9:08 PM, Chris Gervais <chris.gervais@anonymised.com>
wrote:
> Hello List,
>
> I have been racking my brain trying to get TIME to work in Geoserver. I
> have
> tried using the 2.2.2 version and the current version from git and I
> have
> been getting the same results each time. I'm currently trying to use the
> ImageMosaic raster store to bring in a collection of worldfiles (PNG,
> PGW,
> and PRJ files) that were originally named as
> OWS_Graphics_sfc.sfc.2010082700.png,
> OWS_Graphics_sfc.sfc.2010082701.png,
> etc.

I would go with geotiff rather than png, which is relatively bad as a
form for GIS image serving.
That said, this is not related to your problem.

> If i bring them in without the timeregex.properties and
> indexer.properties files the store is created fine and I can create a
> layer
> with no time. Opening the layer in layer preview will bring in the first
> image in the group and the viewing works fine.
>
> Now when I use the indexer.properties file and the regex.properties
> files
> and try and activate time it lets me create the layer, but then I get an
> unparseable date exception:

> 13 Feb 14:43:26 WARN [catalog.util] - Unparseable date: ""
>
> java.text.ParseException: Unparseable date: ""
>
> Debugging the code I get to
> org.geoserver.catalog.util.ReaderDimensionsAccessor.getTimeDomain() and
> find
> that reader.getMetadataValue(TIME_DOMAIN) is returning an empty string
> and
> therefore is blowing up capabilities creation because it's not being
> handled. Now why I am stuck is why the ImageMosaicFormat is not setting
> the
> time dimension on the data. While debugging I have renamed my files to
> be
> "OWS_Graphics_20100801.png" and my .properties files are as follows:
>
> timeregex.properties:
>
> regex=[0-9]{8}
>
> indexer.properties:
>
> TimeAttribute=time
>
> Schema= the_geom:Polygon,location:String,time:java.util.Date
>
> PropertyCollectors=TimestampFileNameExtractorSPI[timeregex](time)
>
>

This looks good. I just did a quick test using this files on some
sample files with similar naming and things works as expected for me.
I am attaching the samples I used (side note, you might recognize some
meteosata date :slight_smile: ), noticed that I was using GeoServer 2.2.4. Also,
remember to activate the time dimension in the dimension tab for the
mosaic.
Notice that I just sent an email on how to place the index on a
Postgis db, once you get this worling I would conside that option,
especially since you might want to update this dataset over time I
believe.

> Also I have tried using gdal_translate to convert all the worldfiles to
> GeoTiffs as is shown in all the examples and I am running into the same
> issue. If there is someone out there using this successfully that I
> could
> send them a sample data set that would be great as I am currently stuck
> and
> am not having the most luck debugging the code.
>
> I am attaching a stacktrace from the output that I get when I try and
> get a
> capabilities document but as I said earlier that is linked to returning
> an
> empty string on the reader.getMetatdataValue(TIME_DOMAIN) line.
>
> v/r
> Chris Gervais
> Software Engineer
> AER, Inc. (I fear not for long if I don't figure this out)
>
>
>
>
> ------------------------------------------------------------------------------
> Free Next-Gen Firewall Hardware Offer
> Buy your Sophos next-gen firewall before the end March 2013
> and get the hardware for free! Learn more.
> http://p.sf.net/sfu/sophos-d2d-feb
> _______________________________________________
> Geoserver-users mailing list
> Geoserver-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geoserver-users
>

------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

List,

I’m so close and I hate to open up old wounds but there is one last part of the whole ‘TIME’ problem that I have not yet figured out. I’m successfully adding time series data to Geoserver via REST using external imagemosaics and if I go into the layer and click to enable the TIME dimension then my capabilities document is correct. Is there a way to set the time Dimension to be on programmatically when I add the layer to avoid having to go into the Layer’s dimension tab?

I thought I was onto something when I found http://geobatch.geo-solutions.it/download/all/1.3-BETA3/doc/actionImageMosaic.html#minimal-giode-to-using-the-datastore-properties-file but I can not figure out how to apply this information to what I’m currently doing with Geoserver.

v/r
Chris Gervais
Software Engineer
AER, Inc.
···

On Fri, Feb 15, 2013 at 2:15 PM, Simone Giannecchini <simone.giannecchini@…1107…> wrote:

Ciao Chris,
please find my answer inline below…

However, I would ask you to reply also on the public ML so that we can
close the loop for people that would read the post in the future.

Regards,
Simone Giannecchini

Our support, Your Success! Visit http://opensdi.geo-solutions.it for
more information.

Ing. Simone Giannecchini
@simogeo
Founder/Director

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 333 8128928

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


On Thu, Feb 14, 2013 at 8:43 PM, Chris Gervais <chris.gervais@anonymised.com> wrote:

Hello Simone,

Fixing the trailing spaces and changing from ingestion to time in the
indexer.properties yielded me a result that I could use. Thank you very much
for your assistance in this. next step is automating the process and
creating files with the correct date strings to handle resolution down to
the minute.

np.

For your reference I am attaching some sample files that we use to
read time instants down to milliseconds.
The file names are similar to Channel_11_20130118T104500000Z.

Something quick to note, In ReaderDimensionsAccessor.getTimeDomain() the
reader.getMetadataValue(TIME_DOMAIN) line can return an empty string which
will causes the next lines to error while trying to create capabilities
documents. Couldn’t hurt to either ensure that if
reader.getMetadataValue(TIME_DOMAIN) returns an empty string then then
various “hasTime()” methods should return false ensure you don’t have an
empty string before your domains.split call to avoid the NPE and your
capabilities document failing to build.

I would create a jira with a quick pull request for this so that as
soon as I have time we can work on it and integrate it.
THis is some new stuff hence it still needs love and care.

Just a thought, probably a bad one, just wanted to chime in since I’ve
unintentionally caused all kinds of errors the last few days.

np

v/r
Chris Gervais
Software Engineer
AER, Inc.

On Thu, Feb 14, 2013 at 7:27 AM, Simone Giannecchini
<simone.giannecchini@anonymised.com> wrote:

Ciao Chris,
I checked the files and I found a little problem, you have trailing
spaces in your indexer.properties file.
Quick action is to remove the trailing spaces from the config files
manually, however I am making the parsing more resilient
(http://jira.codehaus.org/browse/GEOS-5647)

Removing the spaces should fix the problem.

Regards,
Simone Giannecchini

Our support, Your Success! Visit http://opensdi.geo-solutions.it for
more information.

Ing. Simone Giannecchini
@simogeo
Founder/Director

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 333 8128928

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


On Thu, Feb 14, 2013 at 1:50 AM, Chris Gervais <chris.gervais@anonymised.com>
wrote:

Hello Simone,

First of all, thank you for your help. I’ve made the changes to my
indexer.properties so they matched yours that you used in your test. It
changed the error that I was receiving so I know i’m doing something
wrong
somewhere else. I have made a zip of my dataset (even though it’s just
some
crap data but it follows the pattern of what my system will be putting
out.)

https://docs.google.com/file/d/0B2sg9LbqPxttbXM3a2VPZFQ3dUU/edit?usp=sharing

I’m getting the same unparseable date error when I try and pull
capablities
and the error that I’m getting when I try to preview a layer is pasted
below:

Request: getServiceInfo

13 Feb 19:44:36 ERROR [geoserver.ows] -

java.lang.IllegalStateException: Unable to compute extrema
value:TIME_DOMAIN_MAXIMUM

at

org.geotools.gce.imagemosaic.ImageMosaicReader$DomainDescriptor.getExtrema(ImageMosaicReader.java:188)

at

org.geotools.gce.imagemosaic.ImageMosaicReader$DomainDescriptor.access$500(ImageMosaicReader.java:119)

at

org.geotools.gce.imagemosaic.ImageMosaicReader$DomainManager.getMetadataValue(ImageMosaicReader.java:411)

at

org.geotools.gce.imagemosaic.ImageMosaicReader.getMetadataValue(ImageMosaicReader.java:1136)

at

org.geoserver.catalog.util.ReaderDimensionsAccessor.getMaxTime(ReaderDimensionsAccessor.java:80)

at org.geoserver.wms.WMS.getCurrentTime(WMS.java:1018)

at org.geoserver.wms.WMS.getWMSReadParameters(WMS.java:811)

at org.geoserver.wms.GetMap.executeInternal(GetMap.java:383)

at org.geoserver.wms.GetMap.run(GetMap.java:201)

at org.geoserver.wms.GetMap.run(GetMap.java:111)

at

org.geoserver.wms.DefaultWebMapService.getMap(DefaultWebMapService.java:356)

at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)

at

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at

org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)

at

org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at

org.geoserver.gwc.wms.CacheSeedingWebMapService.invoke(CacheSeedingWebMapService.java:61)

at

org.geoserver.gwc.wms.CacheSeedingWebMapService.invoke(CacheSeedingWebMapService.java:1)

at

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at

org.geoserver.gwc.wms.CachingWebMapService.invoke(CachingWebMapService.java:69)

at

org.geoserver.gwc.wms.CachingWebMapService.invoke(CachingWebMapService.java:1)

at

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at

org.geoserver.ows.util.RequestObjectLogger.invoke(RequestObjectLogger.java:54)

at

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at

org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

at $Proxy23.getMap(Unknown Source)

at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)

at

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.geoserver.ows.Dispatcher.execute(Dispatcher.java:774)

at
org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:272)

at

org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)

at

org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)

at

org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)

at

org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)

at

org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)

at

org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)

at

org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)

at

org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:27)

at

org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at

org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:74)

at

org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:45)

at

org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at

org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:49)

at

org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at

org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)

at

org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)

at

org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)

at

org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)

at

org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)

at

org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)

at

org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)

at

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at

org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)

at

org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

at

org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)

at

org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)

at

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at

org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:53)

at

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at

org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)

at

org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)

at

org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)

at

org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)

at

org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:82)

at

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at

org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)

at

org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)

at

org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:46)

at

org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)

at

org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)

at

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at

org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)

at

org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:101)

at

org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

at

org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)

at

org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:75)

at

org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)

at

org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at

org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:47)

at

org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)

at

org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)

at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)

at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

at org.mortbay.jetty.Server.handle(Server.java:324)

at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)

at

org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)

at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)

at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)

at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)

at

org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)

at

org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

On Wed, Feb 13, 2013 at 6:46 PM, Simone Giannecchini
<simone.giannecchini@anonymised.com> wrote:

Ciao Chris,
please, find my answer inline below…

Regards,
Simone Giannecchini

Our support, Your Success! Visit http://opensdi.geo-solutions.it for
more information.

Ing. Simone Giannecchini
@simogeo
Founder/Director

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 333 8128928

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


On Wed, Feb 13, 2013 at 9:08 PM, Chris Gervais
<chris.gervais@anonymised.com>
wrote:

Hello List,

I have been racking my brain trying to get TIME to work in Geoserver.
I
have
tried using the 2.2.2 version and the current version from git and I
have
been getting the same results each time. I’m currently trying to use
the
ImageMosaic raster store to bring in a collection of worldfiles (PNG,
PGW,
and PRJ files) that were originally named as
OWS_Graphics_sfc.sfc.2010082700.png,
OWS_Graphics_sfc.sfc.2010082701.png,
etc.

I would go with geotiff rather than png, which is relatively bad as a
form for GIS image serving.
That said, this is not related to your problem.

If i bring them in without the timeregex.properties and
indexer.properties files the store is created fine and I can create a
layer
with no time. Opening the layer in layer preview will bring in the
first
image in the group and the viewing works fine.

Now when I use the indexer.properties file and the regex.properties
files
and try and activate time it lets me create the layer, but then I get
an
unparseable date exception:

13 Feb 14:43:26 WARN [catalog.util] - Unparseable date: “”

java.text.ParseException: Unparseable date: “”

Debugging the code I get to
org.geoserver.catalog.util.ReaderDimensionsAccessor.getTimeDomain()
and
find
that reader.getMetadataValue(TIME_DOMAIN) is returning an empty
string
and
therefore is blowing up capabilities creation because it’s not being
handled. Now why I am stuck is why the ImageMosaicFormat is not
setting
the
time dimension on the data. While debugging I have renamed my files
to
be
“OWS_Graphics_20100801.png” and my .properties files are as follows:

timeregex.properties:

regex=[0-9]{8}

indexer.properties:

TimeAttribute=time

Schema= the_geom:Polygon,location:String,time:java.util.Date

PropertyCollectors=TimestampFileNameExtractorSPItimeregex

This looks good. I just did a quick test using this files on some
sample files with similar naming and things works as expected for me.
I am attaching the samples I used (side note, you might recognize some
meteosata date :slight_smile: ), noticed that I was using GeoServer 2.2.4. Also,
remember to activate the time dimension in the dimension tab for the
mosaic.
Notice that I just sent an email on how to place the index on a
Postgis db, once you get this worling I would conside that option,
especially since you might want to update this dataset over time I
believe.

Also I have tried using gdal_translate to convert all the worldfiles
to
GeoTiffs as is shown in all the examples and I am running into the
same
issue. If there is someone out there using this successfully that I
could
send them a sample data set that would be great as I am currently
stuck
and
am not having the most luck debugging the code.

I am attaching a stacktrace from the output that I get when I try and
get a
capabilities document but as I said earlier that is linked to
returning
an
empty string on the reader.getMetatdataValue(TIME_DOMAIN) line.

v/r
Chris Gervais
Software Engineer
AER, Inc. (I fear not for long if I don’t figure this out)


Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb


Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users


Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb


Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

On Wed, Feb 27, 2013 at 7:03 PM, Chris Gervais <chris.gervais@anonymised.com.> wrote:

List,

I’m so close and I hate to open up old wounds but there is one last part of the whole ‘TIME’ problem that I have not yet figured out. I’m successfully adding time series data to Geoserver via REST using external imagemosaics and if I go into the layer and click to enable the TIME dimension then my capabilities document is correct. Is there a way to set the time Dimension to be on programmatically when I add the layer to avoid having to go into the Layer’s dimension tab?

Yes, you can. Just to it once manually, look how the feature type/coverage xml has been modified,
and then you can mimick it by a PUT REST call

This is actually something general, data configuration there is nothing you can do via the UI
that you cannot do via REST, just do it once via the UI, inspect the modified object via
REST, and you’ll learn how to do the same via a PUT call.

Cheers
Andrea

==
Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


HI Simone,

you mentioned here again to rather use a time index in postgis, you
suggested this to me before.
I actually got a Geoserver admin to try that, but he failed. Could you
please point me to somewhere where that is documented - explicitly, as we
are in the same position again?

Also, Chris - The rest interfacedidn't quite do what i wanted so I wrote a
tiny java class which does it using the geotools libs to rebuild the shape
file and index, available if you want it.

Cheers
Uwe

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/ImageMosaic-and-Time-tp5034057p5130217.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

Ciao Uwe,
check these tutorials:

http://docs.geoserver.org/latest/en/user/tutorials/imagemosaic_timeseries/imagemosaic_timeseries.html
http://docs.geoserver.org/latest/en/user/tutorials/imagemosaic_timeseries/imagemosaic_time-elevationseries.html

They contain the basics steps.

Regards,
Simone Giannecchini

Meet us at GEO Business 2014! in London! Visit http://goo.gl/fES3aK
for more information.

Ing. Simone Giannecchini
@simogeo
Founder/Director

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 333 8128928

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

On Thu, Mar 20, 2014 at 11:51 PM, uwe <Uwe.Rosebrock@anonymised.com> wrote:

HI Simone,

you mentioned here again to rather use a time index in postgis, you
suggested this to me before.
I actually got a Geoserver admin to try that, but he failed. Could you
please point me to somewhere where that is documented - explicitly, as we
are in the same position again?

Also, Chris - The rest interfacedidn't quite do what i wanted so I wrote a
tiny java class which does it using the geotools libs to rebuild the shape
file and index, available if you want it.

Cheers
Uwe

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/ImageMosaic-and-Time-tp5034057p5130217.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users