Hi Gordon. Thanks for your reply.
As I understand you use gdaltindex to create the tile index for each level. Further more you create the properties file at the root of the pyramid. This I can do, but it doesn't seem to change anything for Geoserver. When I try to add my pyramid root folder as an ImagePyramid store in Geoserver, it returns with this error: INFO | jvm 1 | 2012/06/20 14:10:24 | java.lang.RuntimeException: Could not list layers for this store, an error occurred retrieving them: Unable to acquire test coverage for format:ImagePyramid INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.web.data.layer.NewLayerPageProvider.getItems(NewLayerPageProvider.java:115) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.web.wicket.GeoServerDataProvider.fullSize(GeoServerDataProvider.java:225) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.web.wicket.GeoServerTablePanel$PagerDelegate.updateMatched(GeoServerTablePanel.java:509) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.web.wicket.GeoServerTablePanel$PagerDelegate.<init>(GeoServerTablePanel.java:502) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.web.wicket.GeoServerTablePanel.<init>(GeoServerTablePanel.java:200) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.web.wicket.GeoServerTablePanel.<init>(GeoServerTablePanel.java:91) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.web.data.layer.NewLayerPage$1.<init>(NewLayerPage.java:107) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.web.data.layer.NewLayerPage.<init>(NewLayerPage.java:104) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.web.data.store.CoverageStoreNewPage.onSave(CoverageStoreNewPage.java:71) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.web.data.store.AbstractCoverageStorePage$1.onSubmit(AbstractCoverageStorePage.java:114) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:68) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:143) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:177) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:300) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:119) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:484) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:160) INFO | jvm 1 | 2012/06/20 14:10:24 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) INFO | jvm 1 | 2012/06/20 14:10:24 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:158) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511) INFO | jvm 1 | 2012/06/20 14:10:24 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) INFO | jvm 1 | 2012/06/20 14:10:24 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:23) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:74) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:45) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:49) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:394) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:278) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:185) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:71) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:46) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.Server.handle(Server.java:324) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450) INFO | jvm 1 | 2012/06/20 14:10:24 | Caused by: java.lang.Exception: Unable to acquire test coverage for format:ImagePyramid INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.catalog.CatalogBuilder.buildCoverage(CatalogBuilder.java:908) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.catalog.CatalogBuilder.buildCoverage(CatalogBuilder.java:815) INFO | jvm 1 | 2012/06/20 14:10:24 | at org.geoserver.web.data.layer.NewLayerPageProvider.getItems(NewLayerPageProvider.java:82) INFO | jvm 1 | 2012/06/20 14:10:24 | ... 95 more If I try to update an existing ImagePyramid store, restart Geoserver, it seems like Geoserver is updating all the index files anyway. Regards, Casper Børgesen -----Original Message----- From: Gordon Keith [mailto:gordon.ke...@csiro.au] Sent: 19. juni 2012 00:50 To: geoserver-users@lists.sourceforge.net Cc: Casper Børgesen (CABO) Subject: Re: [Geoserver-users] How to build the indexes of an image-pyramid On Mon, 18 Jun 2012 05:56:11 PM Casper Børgesen wrote: > I have experimented with creating the data for an image pyramid. I > have created a set of files in a folder structure like in the following > example: > > Pyramid: > 0: > 12: > GeoTiffs > 13: > GeoTiffs > 14: > GeoTiffs > 1: > 6: > GeoTiffs > 7: > GeoTiffs > 2: > 3: > GeoTiffs > > If I try to create an image pyramid through Geoserver using the > ImagePyramid plugin, it creates a pyramid from level 0 only and returns > without errors. > The shape file from level 0 seems to include all the Geotiffs on that > level. I would expect however, that the pyramid included level 1 and 2 > also, but it doesn’t. > > It seems as it doesn’t see the two other levels, so is there a file > name convention for the Geotiffs when using Geoserver to build the pyramid? > Currently my naming scheme is <tilesize>_<northing>_<easting>.tif > > And is there another way to build the pyramid without using Geoserver > to build the index files? I have a rather large set of files and I > don’t want the geoserver to use resources on creating the indexes if I > can do it on a workstation instead. I've attached the script I use to build my image pyramids. The script is designed to update existing pyramids by copying any new geotiffs from the work area where I build them but it will also build the pyramid from scratch. My pyramids have a directory structure with the pyramid name as the base directory name then a bunch of subdirectories having geotiffs. There's lots of stuff you probably don't need but the core bits are there. Hope this helps Gordon ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Geoserver-users mailing list Geoserver-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-users