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

Reply via email to