Dear Steve,
How did you set the indexer?
Looking at your logs it seems to me like you have specified a wrong schema
for the index.
Basically, you should setup a different schema for each NetCDF variable,
depending on which dimensions are available for that variable. (It seems to
me that you have setup a single schema containing all the variables in the
same type).
About the 2 warnings, you can ignore it. Long story short, your variables
are in Lambert Conformal projection so they are referred by X,Y
dimensions/axis. However they also contain a reference to latitude and
longitude 2D matrixes which aren't handled.
(See
http://docs.geoserver.org/latest/en/user/extensions/netcdf/netcdf.html#notes-on-supported-netcdfs
).

Some months ago, we have setup a tool which allows to build the indexer.xml
for a sample dataset and related netcdf low level index.
It is still experimental but it can be a good starting point:
http://geoserver.geo-solutions.it/downloads/releases/2.8.x-netcdf/CreateIndexer.jar

You can use it to create an indexer.xml to be tuned depending on your needs.
java -jar CreateIndexer.jar c:\data\wff\wff_153080300.nc -p
 c:\data\GEOSERVER_DATA_DIR\user_projections\
netcdf.projections.properties

The result, once customized, could be something like the one in attachment.
(Make sure to update the indexer.xml final parameter depending on your
folders/paths). I have also added a simple datastore.properties to put the
mosaic index into a postgis db.
I have finally configured a mosaic on top of your dataset and it worked.

Hope this helps.
Daniele


On Thu, Nov 19, 2015 at 2:36 AM, Ferguson, Steve -FS <[email protected]>
wrote:

> 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.<init>(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.<init>(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.<init>(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.<init>(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*
>
>
>
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Geoserver-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geoserver-users
>
>


-- 
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==

Ing. Daniele Romagnoli
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054  Massarosa (LU)
Italy
phone: +39 0584 962313
fax:      +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.



The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility  for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.
<?xml version="1.0" encoding="UTF-8"?><Indexer>
  <coverages>
    <coverage>
      <schema name="surface_wind_speed">
        <attributes>the_geom:Polygon,imageindex:Integer,time:java.util.Date</attributes>
      </schema>
      <origName>surface_wind_speed</origName>
      <name>surface_wind_speed</name>
    </coverage>
    <coverage>
      <schema name="mixing_height">
        <attributes>the_geom:Polygon,imageindex:Integer,time:java.util.Date</attributes>
      </schema>
      <origName>mixing_height</origName>
      <name>mixing_height</name>
    </coverage>
    <coverage>
      <schema name="surface_rh">
        <attributes>the_geom:Polygon,imageindex:Integer,time:java.util.Date</attributes>
      </schema>
      <origName>surface_rh</origName>
      <name>surface_rh</name>
    </coverage>
    <coverage>
      <schema name="ventilation_index">
        <attributes>the_geom:Polygon,imageindex:Integer,time:java.util.Date</attributes>
      </schema>
      <origName>ventilation_index</origName>
      <name>ventilation_index</name>
    </coverage>
    <coverage>
      <schema name="wind_direction">
        <attributes>the_geom:Polygon,imageindex:Integer,z:java.lang.Float,time:java.util.Date</attributes>
      </schema>
      <origName>wind_direction</origName>
      <name>wind_direction</name>
    </coverage>
    <coverage>
      <schema name="lon">
        <attributes>the_geom:Polygon,imageindex:Integer</attributes>
      </schema>
      <origName>lon</origName>
      <name>lon</name>
    </coverage>
    <coverage>
      <schema name="surface_dewpoint">
        <attributes>the_geom:Polygon,imageindex:Integer,time:java.util.Date</attributes>
      </schema>
      <origName>surface_dewpoint</origName>
      <name>surface_dewpoint</name>
    </coverage>
    <coverage>
      <schema name="surface_temperature">
        <attributes>the_geom:Polygon,imageindex:Integer,time:java.util.Date</attributes>
      </schema>
      <origName>surface_temperature</origName>
      <name>surface_temperature</name>
    </coverage>
    <coverage>
      <schema name="cloud">
        <attributes>the_geom:Polygon,imageindex:Integer,time:java.util.Date</attributes>
      </schema>
      <origName>cloud</origName>
      <name>cloud</name>
    </coverage>
    <coverage>
      <schema name="precipitation">
        <attributes>the_geom:Polygon,imageindex:Integer,time:java.util.Date</attributes>
      </schema>
      <origName>precipitation</origName>
      <name>precipitation</name>
    </coverage>
    <coverage>
      <schema name="surface_wind_direction">
        <attributes>the_geom:Polygon,imageindex:Integer,time:java.util.Date</attributes>
      </schema>
      <origName>surface_wind_direction</origName>
      <name>surface_wind_direction</name>
    </coverage>
    <coverage>
      <schema name="haines_high">
        <attributes>the_geom:Polygon,imageindex:Integer,time:java.util.Date</attributes>
      </schema>
      <origName>haines_high</origName>
      <name>haines_high</name>
    </coverage>
    <coverage>
      <schema name="temperature">
        <attributes>the_geom:Polygon,imageindex:Integer,z:java.lang.Float,time:java.util.Date</attributes>
      </schema>
      <origName>temperature</origName>
      <name>temperature</name>
    </coverage>
    <coverage>
      <schema name="wind_speed">
        <attributes>the_geom:Polygon,imageindex:Integer,z:java.lang.Float,time:java.util.Date</attributes>
      </schema>
      <origName>wind_speed</origName>
      <name>wind_speed</name>
    </coverage>
    <coverage>
      <schema name="lifted_index">
        <attributes>the_geom:Polygon,imageindex:Integer,time:java.util.Date</attributes>
      </schema>
      <origName>lifted_index</origName>
      <name>lifted_index</name>
    </coverage>
    <coverage>
      <schema name="haines_middle">
        <attributes>the_geom:Polygon,imageindex:Integer,time:java.util.Date</attributes>
      </schema>
      <origName>haines_middle</origName>
      <name>haines_middle</name>
    </coverage>
    <coverage>
      <schema name="relative_humidity">
        <attributes>the_geom:Polygon,imageindex:Integer,z:java.lang.Float,time:java.util.Date</attributes>
      </schema>
      <origName>relative_humidity</origName>
      <name>relative_humidity</name>
    </coverage>
    <coverage>
      <schema name="lat">
        <attributes>the_geom:Polygon,imageindex:Integer</attributes>
      </schema>
      <origName>lat</origName>
      <name>lat</name>
    </coverage>
    <coverage>
      <schema name="height">
        <attributes>the_geom:Polygon,imageindex:Integer,z:java.lang.Float,time:java.util.Date</attributes>
      </schema>
      <origName>height</origName>
      <name>height</name>
    </coverage>
  </coverages>
</Indexer>

Attachment: datastore.properties
Description: Binary data

<?xml version="1.0" encoding="UTF-8"?><Indexer>
  <domains>
    <domain name="time">
      <attributes><attribute>time</attribute></attributes>
    </domain>
    <domain name="elevation">
      <attributes><attribute>z</attribute></attributes>
    </domain>
  </domains>
  <coverages>
    <coverage>
      <name>surface_wind_speed</name>
      <schema name="surface_wind_speed" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String,time:java.util.Date</attributes>
      </schema>
      <domains>
        <domain ref="time" />
      </domains>
    </coverage>
    <coverage>
      <name>mixing_height</name>
      <schema name="mixing_height" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String,time:java.util.Date</attributes>
      </schema>
      <domains>
        <domain ref="time" />
      </domains>
    </coverage>
    <coverage>
      <name>surface_rh</name>
      <schema name="surface_rh" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String,time:java.util.Date</attributes>
      </schema>
      <domains>
        <domain ref="time" />
      </domains>
    </coverage>
    <coverage>
      <name>ventilation_index</name>
      <schema name="ventilation_index" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String,time:java.util.Date</attributes>
      </schema>
      <domains>
        <domain ref="time" />
      </domains>
    </coverage>
    <coverage>
      <name>wind_direction</name>
      <schema name="wind_direction" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String,z:java.lang.Float,time:java.util.Date</attributes>
      </schema>
      <domains>
        <domain ref="elevation" />
        <domain ref="time" />
      </domains>
    </coverage>
    <coverage>
      <name>lon</name>
      <schema name="lon" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String</attributes>
      </schema>
    </coverage>
    <coverage>
      <name>surface_dewpoint</name>
      <schema name="surface_dewpoint" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String,time:java.util.Date</attributes>
      </schema>
      <domains>
        <domain ref="time" />
      </domains>
    </coverage>
    <coverage>
      <name>surface_temperature</name>
      <schema name="surface_temperature" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String,time:java.util.Date</attributes>
      </schema>
      <domains>
        <domain ref="time" />
      </domains>
    </coverage>
    <coverage>
      <name>cloud</name>
      <schema name="cloud" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String,time:java.util.Date</attributes>
      </schema>
      <domains>
        <domain ref="time" />
      </domains>
    </coverage>
    <coverage>
      <name>precipitation</name>
      <schema name="precipitation" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String,time:java.util.Date</attributes>
      </schema>
      <domains>
        <domain ref="time" />
      </domains>
    </coverage>
    <coverage>
      <name>surface_wind_direction</name>
      <schema name="surface_wind_direction" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String,time:java.util.Date</attributes>
      </schema>
      <domains>
        <domain ref="time" />
      </domains>
    </coverage>
    <coverage>
      <name>haines_high</name>
      <schema name="haines_high" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String,time:java.util.Date</attributes>
      </schema>
      <domains>
        <domain ref="time" />
      </domains>
    </coverage>
    <coverage>
      <name>temperature</name>
      <schema name="temperature" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String,z:java.lang.Float,time:java.util.Date</attributes>
      </schema>
      <domains>
        <domain ref="elevation" />
        <domain ref="time" />
      </domains>
    </coverage>
    <coverage>
      <name>wind_speed</name>
      <schema name="wind_speed" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String,z:java.lang.Float,time:java.util.Date</attributes>
      </schema>
      <domains>
        <domain ref="elevation" />
        <domain ref="time" />
      </domains>
    </coverage>
    <coverage>
      <name>lifted_index</name>
      <schema name="lifted_index" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String,time:java.util.Date</attributes>
      </schema>
      <domains>
        <domain ref="time" />
      </domains>
    </coverage>
    <coverage>
      <name>haines_middle</name>
      <schema name="haines_middle" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String,time:java.util.Date</attributes>
      </schema>
      <domains>
        <domain ref="time" />
      </domains>
    </coverage>
    <coverage>
      <name>relative_humidity</name>
      <schema name="relative_humidity" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String,z:java.lang.Float,time:java.util.Date</attributes>
      </schema>
      <domains>
        <domain ref="elevation" />
        <domain ref="time" />
      </domains>
    </coverage>
    <coverage>
      <name>lat</name>
      <schema name="lat" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String</attributes>
      </schema>
    </coverage>
    <coverage>
      <name>height</name>
      <schema name="height" >
        <attributes>the_geom:Polygon,imageindex:Integer,location:String,z:java.lang.Float,time:java.util.Date</attributes>
      </schema>
      <domains>
        <domain ref="elevation" />
        <domain ref="time" />
      </domains>
    </coverage>
  </coverages>
  <parameters>
    <parameter name="AuxiliaryFile" value="c:\data\wff\_auxiliary.xml" />
    <parameter name="AbsolutePath" value="true" />
  </parameters>
</Indexer>

------------------------------------------------------------------------------
_______________________________________________
Geoserver-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to