[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

回覆: [THREDDS #IQM-984529]: Can't get THREDDS WCS GetCoverage to work

Dear Sean,

No, it's my pleasure to help improve THREDDS, so please feel relieved to use the file.



寄件者: Unidata THREDDS Support <address@hidden>
寄件日期: 2017年10月13日 上午 02:02
address@hidden address@hidden
主旨: [THREDDS #IQM-984529]: Can't get THREDDS WCS GetCoverage to work
Greetings Brad,

This WCS issue will be fixed before 5.0 officially goes into beta status. Would you mind if I opened a github issue using the example dataset you sent (Taipei_79mm.nc)? If not, I can try to mock up a fake file to trigger the issue.

As for the Godiva3 error, it looks like the error message in the catalina log file points to the ESGF authentication code not understanding the requests being generated by Godiva3 to the TDS WMS server. This might be an issue if the ESGF authorization code is looking for certain parameters to be passed along with the URL.

Also, I am going to push our conversation into our support system, just in case others on the team have some input.



On Wed, Oct 11, 2017 at 3:39 AM, \u3042\u3093\u3053\u304f AF2 <address@hidden> wrote:
Dear Sean,

I have sucessfully make a WCS download GeoTIFF on THREDDS 4.6.9 unsing your example.
But if i have a plan to upgrade the THREDDS 4.6.X to 5+ at future, it's possible will fix handling GRID data problem, or i need change my NetCDF file format?

This example NetCDF file is generated export from Delft-FEWS, i think deltares has modify NetCDF-Java themselves to handle this for  UGRID conventions.

by the way, i still have a some questions as following:

I have test the NetCDF  attachment file with THREDDS  4.6.9 WMS, it's perfectly work with godiva2, when i change select time options, it's will to appear correct WMS image.
But is not correct work on ESGF-5.0.1 godiva3, when  i change select time options, it's always freeze WMS image at default time, and the log message is as follows mail attachment file.
Its cause new class for handling GRID data?

Thanks for the help!


\u5bc4\u4ef6\u8005: Sean Arms <address@hidden>
\u5bc4\u4ef6\u65e5\u671f: 2017\u5e7410\u670810\u65e5 \u4e0b\u5348 11:54
\u6536\u4ef6\u8005: \u3042\u3093\u3053\u304f AF2

\u4e3b\u65e8: Re: [thredds] Can't get THREDDS WCS GetCoverage to work
Greetings Brad,

I can confirm that WCS isn't working on v5.0 (which is what ESGF-5.0.1 is using). This is likely due to the use of a new class for handling GRID data (we moved from GridDataset to a new class called Coverage) However, I am able to sucessfully make a request on 4.6.9 and 4.6.10 using the following:


In your example, you have the time as 2017-08-11T15:00:00Z, so perhaps this is why your request failed in 4.6.x?

Unrelated to the error, is this file actually following the UGRID conventions? I ask because it is listed in the global conventions attribute, and netCDF-Java should not be able to handle this fully yet.



On Mon, Oct 9, 2017 at 11:12 AM, \u3042\u3093\u3053\u304f AF2 <address@hidden> wrote:
Dear Sean:

Here is my test NetCDF file as an attachment.

Thanks for the help!

\u5bc4\u4ef6\u8005: Sean Arms <address@hidden>
\u5bc4\u4ef6\u65e5\u671f: 2017\u5e7410\u670810\u65e5 \u4e0a\u5348 01:02
\u6536\u4ef6\u8005: ???? AF2
\u526f\u672c: address@hidden
\u4e3b\u65e8: Re: [thredds] Can't get THREDDS WCS GetCoverage to work

Greetings Brad!

Is there any way you could share the netCDF file you are working with?



On Sun, Oct 8, 2017 at 9:37 AM, ???? AF2 <address@hidden> wrote:
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:

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 {
    time = 1;
    analysis_time = 1;
    y = 2205;
    x = 1633;
    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.

NOTE: All exchanges posted to Unidata maintained email lists are
recorded in the Unidata inquiry tracking system and made publicly
available through the web.  Users who post to any of the lists we
maintain are reminded to remove any personal information that they
do not want to be made public.

thredds mailing list
For list information or to unsubscribe,  visit: http://www.unidata.ucar.edu/mailing_lists/

NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.