Greetings,
I have been attempting to create an image mosaic for NETCDF files like this one (http://54.183.9.182/wff_153080300.nc) that I want to index by the time dimension in order to add additional forecast files as they become available. I am using the 2.9 SNAPSHOT version from 11/17 for all components.
I have tried to simply specify the directory within which this file sits as an image mosaic store, but this results in the following error :
19 Nov 01:01:54 WARN [netcdf.NetCDFGeoreferenceManager] - Unsupported axis: double lat(y=299, x=399);
:units = “degrees_north”;
:long_name = “latitude”;
:standard_name = “latitude”;
:_CoordinateAxisType = “Lat”;
in input: /gdata2/netcf/wff/wff_153080300.nc has been found
19 Nov 01:01:54 WARN [netcdf.NetCDFGeoreferenceManager] - Unsupported axis: double lon(y=299, x=399);
:units = “degrees_east”;
:long_name = “longitude”;
:standard_name = “longitude”;
:_CoordinateAxisType = “Lon”;
in input: /gdata2/netcf/wff/wff_153080300.nc has been found
19 Nov 01:03:28 ERROR [imagemosaic.Utils] -
java.lang.NullPointerException
19 Nov 01:03:28 WARN [gce.imagemosaic] - Failure occurred while collecting the granules
org.apache.commons.io.DirectoryWalker$CancelException: Operation Cancelled
at org.apache.commons.io.DirectoryWalker.checkIfCancelled(DirectoryWalker.java:395)
at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:368)
at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:335)
at org.geotools.gce.imagemosaic.ImageMosaicDirectoryWalker$MosaicDirectoryWalker.(ImageMosaicDirectoryWalker.java:114)
at org.geotools.gce.imagemosaic.ImageMosaicDirectoryWalker.run(ImageMosaicDirectoryWalker.java:196)
at org.geotools.gce.imagemosaic.Utils.createMosaic(Utils.java:360)
at org.geotools.gce.imagemosaic.Utils.checkSource(Utils.java:1250)
at org.geotools.gce.imagemosaic.ImageMosaicReader.initReaderFromURL(ImageMosaicReader.java:519)
at org.geotools.gce.imagemosaic.ImageMosaicReader.(ImageMosaicReader.java:471)
at org.geotools.gce.imagemosaic.ImageMosaicFormat.getReader(ImageMosaicFormat.java:483)
at org.geotools.gce.imagemosaic.ImageMosaicFormat.getReader(ImageMosaicFormat.java:103)
at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1441)
at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1369)
at org.geoserver.catalog.impl.CoverageStoreInfoImpl.getGridCoverageReader(CoverageStoreInfoImpl.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.geoserver.catalog.impl.ModificationProxy.invoke(ModificationProxy.java:146)
at com.sun.proxy.$Proxy53.getGridCoverageReader(Unknown Source)
at org.geoserver.web.data.layer.NewLayerPageProvider.getItemsInternal(NewLayerPageProvider.java:90)
at org.geoserver.web.data.layer.NewLayerPageProvider.getItems(NewLayerPageProvider.java:59)
at org.geoserver.web.wicket.GeoServerDataProvider.fullSize(GeoServerDataProvider.java:245)
I have tried to specify properties to the indexer in indexer.properties as outlined here (http://geoserver.geo-solutions.it/multidim/en/imagemosaic/index.html) but that produces the following error:
19 Nov 01:12:16 WARN [netcdf.NetCDFGeoreferenceManager] - Unsupported axis: double lat(y=299, x=399);
:units = “degrees_north”;
:long_name = “latitude”;
:standard_name = “latitude”;
:_CoordinateAxisType = “Lat”;
in input: /gdata2/netcf/wff/wff_153080300.nc has been found
19 Nov 01:12:16 WARN [netcdf.NetCDFGeoreferenceManager] - Unsupported axis: double lon(y=299, x=399);
:units = “degrees_east”;
:long_name = “longitude”;
:standard_name = “longitude”;
:_CoordinateAxisType = “Lon”;
in input: /gdata2/netcf/wff/wff_153080300.nc has been found
19 Nov 01:12:18 WARN [imagemosaic.catalog] - This granule catalog was not properly dispose as it still points to:ServiceInfo
description=Features from ShapefileDataStore
19 Nov 01:13:49 ERROR [imagemosaic.Utils] - Invalid mosaic schema SimpleFeatureTypeImpl cloud identified extends Feature(x:x,y:y,lat:lat,lon:lon,surface_temperature:surface_temperature,surface_dewpoint:surface_dewpoint,surface_rh:surface_rh,surface_wind_speed:surface_wind_speed,surface_wind_direction:surface_wind_direction,mixing_height:mixing_height,lifted_index:lifted_index,haines_middle:haines_middle,haines_high:haines_high,ventilation_index:ventilation_index,cloud:cloud,precipitation:precipitation,z:z,height:height,temperature:temperature,relative_humidity:relative_humidity,wind_speed:wind_speed,wind_direction:wind_direction,time:time), it should have a geometry and a location property of name location
java.lang.IllegalArgumentException: Invalid mosaic schema SimpleFeatureTypeImpl cloud identified extends Feature(x:x,y:y,lat:lat,lon:lon,surface_temperature:surface_temperature,surface_dewpoint:surface_dewpoint,surface_rh:surface_rh,surface_wind_speed:surface_wind_speed,surface_wind_direction:surface_wind_direction,mixing_height:mixing_height,lifted_index:lifted_index,haines_middle:haines_middle,haines_high:haines_high,ventilation_index:ventilation_index,cloud:cloud,precipitation:precipitation,z:z,height:height,temperature:temperature,relative_humidity:relative_humidity,wind_speed:wind_speed,wind_direction:wind_direction,time:time), it should have a geometry and a location property of name location
at org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog.checkMosaicSchema(GTDataStoreGranuleCatalog.java:296)
at org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog.createType(GTDataStoreGranuleCatalog.java:629)
at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.createType(CachingDataStoreGranuleCatalog.java:103)
at org.geotools.gce.imagemosaic.RasterManager.createStore(RasterManager.java:1283)
at org.geotools.gce.imagemosaic.ImageMosaicReader.createCoverage(ImageMosaicReader.java:1129)
at org.geotools.gce.imagemosaic.ImageMosaicConfigHandler.updateConfiguration(ImageMosaicConfigHandler.java:879)
at org.geotools.gce.imagemosaic.ImageMosaicWalker.handleFile(ImageMosaicWalker.java:210)
at org.geotools.gce.imagemosaic.ImageMosaicDirectoryWalker$MosaicDirectoryWalker.handleFile(ImageMosaicDirectoryWalker.java:98)
at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:367)
at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:335)
at org.geotools.gce.imagemosaic.ImageMosaicDirectoryWalker$MosaicDirectoryWalker.(ImageMosaicDirectoryWalker.java:114)
at org.geotools.gce.imagemosaic.ImageMosaicDirectoryWalker.run(ImageMosaicDirectoryWalker.java:196)
at org.geotools.gce.imagemosaic.Utils.createMosaic(Utils.java:360)
at org.geotools.gce.imagemosaic.Utils.checkSource(Utils.java:1250)
at org.geotools.gce.imagemosaic.ImageMosaicReader.initReaderFromURL(ImageMosaicReader.java:519)
at org.geotools.gce.imagemosaic.ImageMosaicReader.(ImageMosaicReader.java:471)
at org.geotools.gce.imagemosaic.ImageMosaicFormat.getReader(ImageMosaicFormat.java:483)
at org.geotools.gce.imagemosaic.ImageMosaicFormat.getReader(ImageMosaicFormat.java:103)
at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1441)
at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1369)
at org.geoserver.catalog.impl.CoverageStoreInfoImpl.getGridCoverageReader(CoverageStoreInfoImpl.java:59)
I have tried various versions of the indexer properties, all with no success in creating the data store. I am however able to make a simple NETCDF store of the mentioned file, and expose layers from it.
Any advice on how to proceed with successfully setting up an image mosaic for these NETCDF files would be greatly appreciated.
Steve Ferguson