Upon closer look I believe the ticket that introduced my error is GEOT-5392. Lots of changes under that ticket, but the addition in GranuleDescriptor L356 which calls gcReader.getOriginalEnvelope() Seems to be culprit. When called without a coverageName NetCDFReader dips into the checkUnspecifiedCoverage method with the "UN$PECIFIED" coverage name which will throw an IllegalArgumentException if the gridCoverageCount > 1.
As best as I can tell, this is a bug and would prevent any multi-coverage netcdf files from being used within an ImageMosaic. Unless anyone has an idea of how to work around this issue I'll submit a ticket to the GeoTools jira. Thanks, Kevin M. Weiss Software Engineer CRITICAL NETWORKS / HARRIS CORPORATION harris.comĀ / [email protected] -----Original Message----- From: [email protected] [mailto:[email protected]] Sent: Wednesday, January 04, 2017 8:57 AM To: [email protected] <[email protected]> Subject: [Geoserver-users] Multi-parameter NetCDF values in 2.10.x Hello again list, I noticed an issue with our NetCDF ImageMosaic coverages after upgrading from 2.9.0 to 2.10.0 The issue only seems to affect multi-parameter netcdf source files and seems to fail silently unless in verbose logging mode. After the upgrade, any data stored in a netCDF with multiple parameters returned zeros for any data request. WMS requests resulted in a black box spanning the dataset and WCS responses were valid containers, but all zeroed data. When I switch to verbose logging I see a DEBUG statement that contains a stacktrace with the following: DEBUG [imagemosaic.catalog] - Skipping invalid granule java.lang.IllegalArgumentException: Need to specify the coverageName for a reader related to multiple coverages at org.geotools.coverage.io.netcdf.NetCDFReader.checkUnspecifiedCoverage(NetCDFReader.java:732) at org.geotools.coverage.io.netcdf.NetCDFReader.getOriginalEnvelope(NetCDFReader.java:753) at org.geotools.coverage.io.netcdf.NetCDFReader.getOriginalEnvelope(NetCDFReader.java:748) at org.geotools.gce.imagemosaic.GranuleDescriptor.init(GranuleDescriptor.java:365) . I see that some work was done under GEOT-5518 to add support for multiple bands in NetCDF coverages and I suspect these are related. Is there a way to update existing layers to handle the new multiple bands support without redeploying everything? Perhaps a modification to the coverage.xml or properties file for the affected coverages? For clarity, my netcdf file contains the following parameters CAT_GPML(time, z, y, x) lat(y, x) lon(y, x) We don't expose the lat & lon parameters as they are only provided as a cross check for the projection handling (and unfortunately we don't control the source). Thanks, Kevin M. Weiss Software Engineer CRITICAL NETWORKS / HARRIS CORPORATION harris.comĀ / [email protected] ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Geoserver-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geoserver-users ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Geoserver-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geoserver-users
