Dear All
Can anyone help me with trying to get a WCS 1.0.0 GetCoverage request to work
with THREDDS?
I'm using THREDDS 4.6.9 and ESGF-5.0.1 get expected XML responses when I attempt
WCS GetCapabilities and DescribeCoverage requests.
However, when I attempt a GetCoverage request, with format equal to GeoTIFF or
NetCDF3, I get a "This web page is not available ERR_INVALID_RESPONSE"
error and Http error code 400.
The form of the WCS requests I'm attempting are as follows:
http://localhost:15333/thredds/wcs/Taiwan/Floods/Mitigation/Taipei_79mm.nc?service=WCS&version=1.0.0&request=GetCoverage&coverage=depth_below_surface_simulated&format=GeoTIFF&time=2017-08-11T15:00:00Z
I have used ToolsUI 4.6.10 to check that the dummy netCDF file is OK and
I can successfully display the gridded data in a netCDF file using the
FeatureTypes | Grid tab. I can also display the dummy netCDF file in the
Godiva2 & Godiva3 viewer in the VM THREDDS instance.
The metadata header of the dummy netCDF file is as follows:
netcdf D:/WaitForWork/Taipei_79mm.nc {
dimensions:
time = 1;
analysis_time = 1;
y = 2205;
x = 1633;
variables:
double z(y=2205, x=1633);
:long_name = "height above mean sea level";
:units = "meters";
:axis = "Z";
:positive = "up";
:_FillValue = 9.96921E36; // double
int crs;
:long_name = "coordinate reference system";
:grid_mapping_name = "latitude_longitude";
:longitude_of_prime_meridian = 0.0; // double
:semi_major_axis = 6378137.0; // double
:inverse_flattening = 298.257223563; // double
:crs_wkt = "GEOGCS[\"WGS 84\",\nDATUM[\"WGS_1984\",SPHEROID[\"WGS
84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],\nPRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],\nUNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],\nAUTHORITY[\"EPSG\",\"4326\"]]";
:proj4_params = "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs";
:epsg_code = "EPSG:4326";
:_CoordinateTransformType = "Projection";
:_CoordinateAxisTypes = "GeoX GeoY";
float depth_below_surface_simulated(time=1, y=2205, x=1633);
:long_name = "depth_below_surface_simulated";
:units = "m";
:_FillValue = -999.0f; // float
:coordinates = "analysis_time";
:grid_mapping = "crs";
double time(time=1);
:standard_name = "time";
:long_name = "time";
:units = "minutes since 1970-01-01 08:00:00.0 +0800";
:axis = "T";
:calendar = "gregorian";
:_CoordinateAxisType = "Time";
double analysis_time(analysis_time=1);
:standard_name = "forecast_reference_time";
:long_name = "forecast_reference_time";
:units = "minutes since 1970-01-01 08:00:00.0 +0800";
:_CoordinateAxisType = "RunTime";
double y(y=2205);
:standard_name = "latitude";
:long_name = "y coordinate according to WGS 1984";
:units = "degrees_north";
:axis = "Y";
:_FillValue = 9.96921E36; // double
:_CoordinateAxisType = "Lat";
double x(x=1633);
:standard_name = "longitude";
:long_name = "x coordinate according to WGS 1984";
:units = "degrees_east";
:axis = "X";
:_FillValue = 9.96921E36; // double
:_CoordinateAxisType = "Lon";
// global attributes:
:Conventions = "CF-1.6,UGRID-0.9";
:title = "Data";
:Metadata_Conventions = "Unidata Dataset Discovery v1.0";
:date_created = "2017-09-07 13:44:47 GMT+8";
:_CoordSysBuilder = "ucar.nc2.dataset.conv.CF1Convention";
}
and Thredds threddsServlet.log Message is as follows:
2017-10-08T23:00:39.837 +0800 [ 1219535][ 29] INFO - threddsServlet -
Remote host: 0:0:0:0:0:0:0:1 - Request: "GET
/thredds/wcs/Taiwan/Floods/Mitigation/Taipei_79mm.nc?service=WCS&version=1.0.0&request=GetCoverage&coverage=depth_below_surface_simulated&format=GeoTIFF&time=2017-08-11T16:00:00Z
HTTP/1.1"
2017-10-08T23:00:39.858 +0800 [ 1219556][ 29] ERROR -
thredds.server.wcs.WcsHandler - Unknown problem.
java.lang.ArrayIndexOutOfBoundsException: -1
at
ucar.nc2.ft2.coverage.adapter.DtCoverage.readDataSection(DtCoverage.java:579)
~[cdm-ESGF-5.0.1.jar:ESGF-5.0.1]
at
ucar.nc2.ft2.coverage.adapter.DtCoverageAdapter.readData(DtCoverageAdapter.java:404)
~[cdm-ESGF-5.0.1.jar:ESGF-5.0.1]
at ucar.nc2.ft2.coverage.Coverage.readData(Coverage.java:190)
~[cdm-ESGF-5.0.1.jar:ESGF-5.0.1]
at
thredds.server.wcs.v1_0_0_1.WcsCoverage.writeCoverageDataToFile(WcsCoverage.java:201)
~[classes/:ESGF-5.0.1]
at
thredds.server.wcs.v1_0_0_1.GetCoverage.writeCoverageDataToFile(GetCoverage.java:155)
~[classes/:ESGF-5.0.1]
at thredds.server.wcs.WcsHandler.handleKVP(WcsHandler.java:110)
[classes/:ESGF-5.0.1]
at thredds.server.wcs.WCSController.doGet(WCSController.java:134)
[classes/:ESGF-5.0.1]
at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source) ~[?:?]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_112]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_112]
at
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
[spring-webmvc-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
[spring-webmvc-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
[spring-webmvc-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
[spring-webmvc-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
[spring-webmvc-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
[spring-webmvc-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
[spring-webmvc-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
[spring-webmvc-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
[servlet-api.jar:?]
Can anyone shed any light on what I might be doing wrong and why I
can't get a GetCoverage WCS request to work?
Many thanks, best wishes, Brad.