Hi! Finally able to throw some more resources at setting up our TDS
server. There are some interesting things going on that might be bugs or
might be some wet behind the ear struggling and would love guidance.
Queries:
1. Aggregation inside datasetFmrc
2. WMS GetLegendGraphic
----
1. Aggregation inside datasetFmrc
<datasetFmrc name="Collections" path="fmrc/ROMS">
<metadata inherited="true">
<dataFormat>NetCDF</dataFormat>
<documentation type="summary">JPL ROMS</documentation>
<serviceName>all_services</serviceName>
</metadata>
<netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2">
<aggregation dimName="time" type="forecastModelRunCollection"
recheckEvery="120 min">
<scan location="/dp2/space/data/forecasts/ROMS/PWS/2009/raw/"
suffix=".nc" dateFormatMark="pws_fcst_#yyyyMMddHH" />
</aggregation>
</netcdf>
</datasetFmrc>
Error seen (models.log):
[31/Jul/2009:19:16:32] ERROR thredds.catalog.InvDatasetFmrc : Error
making catalog for collections
java.lang.IllegalArgumentException: no grids
at ucar.nc2.dt.fmrc.FmrcImpl.init(FmrcImpl.java:123)
at ucar.nc2.dt.fmrc.FmrcImpl.<init>(FmrcImpl.java:85)
at thredds.catalog.InvDatasetFmrc.makeFmrc(InvDatasetFmrc.java:469)
at
thredds.catalog.InvDatasetFmrc.makeCatalog(InvDatasetFmrc.java:307)
at
thredds.catalog.InvDatasetFmrc.makeCatalog(InvDatasetFmrc.java:171)
at
thredds.servlet.DataRootHandler.makeDynamicCatalog(DataRootHandler.java:1247)
at
thredds.servlet.DataRootHandler.getCatalog(DataRootHandler.java:1219)
at
thredds.server.catalogservice.LocalCatalogServiceController.handleRequestInternal(LocalCatalogServiceController.java:191)
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:875)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
thredds.servlet.filter.CatalogServiceFilter.doFilter(CatalogServiceFilter.java:107)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
thredds.servlet.filter.RequestQueryFilter.doFilter(RequestQueryFilter.java:121)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
thredds.servlet.filter.RequestPathFilter.doFilter(RequestPathFilter.java:105)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
at
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:619)
Using the CDM validation service, it says we have grids:
http://motherlode.ucar.edu:8080/cdmvalidator/validate?URL=http%3A%2F%2F137.229.40.88%2Fopendap%2FdodsC%2Fdp2%2Fdata%2Fforecasts%2FROMS%2FPWS%2F2009%2Fraw%2Fpws_fcst_2009071306.nc
There is one more odd bit.
Going to the Opendap form and clicking on temp checkbox:
http://137.229.40.88/thredds/dodsC/dp2/data/forecasts/ROMS/PWS/2009/raw/pws_fcst_2009071306.nc.html
It does seem the grid is not recognized as the text boxes get filled in
with:
time: 0:1:0 depth: 0:1:0 lat: 0:1:0 lon: 0:1:0
The same file via Hyrax 1.4.0:
http://penguin.sfos.uaf.edu/opendap/forecasts/ROMS/PWS/2009/raw/pws_fcst_2009071306.nc.html
will yield the proper dimension values for time, depth, lat, lon:
time: 0:1:48 depth: 0:1:15 lat: 0:1:152 lon: 0:1:346
I'd love some help on what I can do to get you some more information or
ways I can tweak the above to work a bit better.
2. WMS GetLegendGraphic, two items:
(a) packed vs unpacked data
For the above dataset, I have a packed and unpacked version (raw). The
GetLegendGraphic is different between the two.
Packed:
http://137.229.40.88/opendap/wms/dp2/data/forecasts/ROMS/PWS/2009/07/pws_fcst_2009073106.nc.bz2?REQUEST=GetLegendGraphic&LAYERS=temp&LAYER=temp&PALETTE=redblue
Unpacked(raw):
http://137.229.40.88/opendap/wms/dp2/data/forecasts/ROMS/PWS/2009/raw/pws_fcst_2009073106.nc?REQUEST=GetLegendGraphic&LAYERS=temp&LAYER=temp&PALETTE=redblue
Are the scale and add offset attributes used?
(b)
What is advertised in GetCapabilities is incorrect for GetLegendGraphic,
well maybe not incorrect, but using the advertised link generates an
error:
http://137.229.40.88/opendap/wms/dp2/data/forecasts/ROMS/PWS/2009/07/pws_fcst_2009073106.nc.bz2?REQUEST=GetLegendGraphic&LAYERS=temp&LAYER=temp&PALETTE=redblue
complains that LAYERS is not set. If you add an S to LAYER, then you
generate a complaint that LAYER is not set. Turns out you need both.
Thanks!
Rob Cermak
Alaska Ocean Observing System