For future reference, here are the config files that demonstrate the
problem I encountered. They are from the GeoSolutions multidimension
training. First I have included the original versions, which function fine.
They are followed by the versions where I changed the schema for elevation
to match the datatype in the NetCDF files. The second version fails to
return NetCDF files when I make a WCS request like the one included in my
previous mail. The resulting error is also in my previous mail.
-Paddy McCarthy.
*Header from one of the polyphemus NetCDF files:*
netcdf polyphemus_20130301 {
dimensions:
time = UNLIMITED ; // (24 currently)
z = 14 ;
lat = 96 ;
lon = 80 ;
variables:
float time(time) ;
time:units = "hours since 2013-03-01 0:00:00" ;
float z(z) ;
z:long_name = "height" ;
z:units = "meters" ;
float lat(lat) ;
lat:long_name = "latitudes" ;
lat:units = "degrees_north" ;
float lon(lon) ;
lon:long_name = "longitudes" ;
lon:units = "degrees_east" ;
float O3(time, z, lat, lon) ;
O3:long_name = "Ozone concentration" ;
O3:standard_name = "mass_concentration_of_ozone_in_air" ;
O3:unit = "microgram/m3" ;
O3:missing_value = NaN ;
float NO2(time, z, lat, lon) ;
NO2:long_name = "NO2 concentration" ;
NO2:standard_name = "mass_concentration_of_nitrogen_dioxide_in_air" ;
NO2:unit = "microgram/m3" ;
NO2:missing_value = NaN ;
float V(time, z, lat, lon) ;
V:long_name = "Meridional wind" ;
V:unit = "m/s" ;
V:missing_value = NaN ;
}
*indexer.xml - Original Version:*
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Indexer>
<domains>
<domain name="time">
<attributes><attribute>time</attribute></attributes>
</domain>
<domain name="elevation">
<attributes><attribute>elevation</attribute></attributes>
</domain>
<domain name="fileDate">
<attributes><attribute
ref="fileDateCollector">fileDate</attribute></attributes>
</domain>
<domain name="updated">
<attributes><attribute
ref="updatedCollector">updated</attribute></attributes>
</domain>
</domains>
<schemas>
<schema name="default" >
<attributes>the_geom:Polygon,location:String,imageindex:Integer,time:java.util.Date,elevation:Double,fileDate:java.util.Date,updated:java.util.Date</attributes>
</schema>
</schemas>
<coverages>
<coverage>
<name>NO2</name>
<schema ref="default" />
<domains>
<domain ref="time" />
<domain ref="elevation" />
<domain ref="fileDate" />
<domain ref="updated" />
</domains>
</coverage>
</coverages>
<collectors>
<collector name="fileDateCollector">
<value>[0-9]{8}</value>
<spi>TimestampFileNameExtractorSPI</spi>
<mapped>fileDate</mapped>
</collector>
<collector name="updatedCollector">
<value>MODIFY_TIME</value>
<spi>RuntimeExtractorSPI</spi>
<mapped>updated</mapped>
</collector>
</collectors>
<parameters>
<parameter name="AuxiliaryFile" value="polyphemus-test.xml" />
<parameter name="AbsolutePath" value="true" />
<parameter name="IndexingDirectories"
value="/d1/nnew/GeoServer/8089_server/polyphemus_data/" />
</parameters>
</Indexer>
*polyphemus-test.xml - Original Version:*
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Indexer>
<schemas>
<schema name="default" >
<attributes>the_geom:Polygon,imageindex:Integer,time:java.util.Date,elevation:Double</attributes>
</schema>
</schemas>
<coverages>
<coverage>
<name>NO2</name>
<schema ref="default"></schema>
</coverage>
</coverages>
</Indexer>
*indexer.xml - Modified Version (yields "**illegal dataType: String not
supported in netcdf-3" exception on WCS request):*
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Indexer>
<domains>
<domain name="time">
<attributes><attribute>time</attribute></attributes>
</domain>
<domain name="elevation">
<attributes><attribute>elevation</attribute></attributes>
</domain>
<domain name="fileDate">
<attributes><attribute
ref="fileDateCollector">fileDate</attribute></attributes>
</domain>
<domain name="updated">
<attributes><attribute
ref="updatedCollector">updated</attribute></attributes>
</domain>
</domains>
<schemas>
<schema name="default" >
<attributes>the_geom:Polygon,location:String,imageindex:Integer,time:java.util.Date,elevation:Float,fileDate:java.util.Date,updated:java.util.Date</attributes>
</schema>
</schemas>
<coverages>
<coverage>
<origName>NO2</origName>
<name>NO22</name>
<schema ref="default" />
<domains>
<domain ref="time" />
<domain ref="elevation" />
<domain ref="fileDate" />
<domain ref="updated" />
</domains>
</coverage>
</coverages>
<collectors>
<collector name="fileDateCollector">
<value>[0-9]{8}</value>
<spi>TimestampFileNameExtractorSPI</spi>
<mapped>fileDate</mapped>
</collector>
<collector name="updatedCollector">
<value>MODIFY_TIME</value>
<spi>RuntimeExtractorSPI</spi>
<mapped>updated</mapped>
</collector>
</collectors>
<parameters>
<parameter name="AuxiliaryFile" value="polyphemus-test.xml" />
<parameter name="AbsolutePath" value="true" />
</parameters>
</Indexer>
*polyphemus-test.xml - **Modified Version (yields "**illegal dataType:
String not supported in netcdf-3" exception on WCS request):*
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Indexer>
<schemas>
<schema name="default" >
<attributes>the_geom:Polygon,imageindex:Integer,time:java.util.Date,elevation:Float</attributes>
</schema>
</schemas>
<coverages>
<coverage>
<origName>NO2</origName>
<name>NO22</name>
<schema ref="default"></schema>
</coverage>
</coverages>
</Indexer>
On Mon, Apr 18, 2016 at 12:26 PM, Padhrig Mccarthy <pa...@ucar.edu> wrote:
> Hi Daniele-
>
> Will do.
>
> I followed the polyphemus example from the multidim training, which also
> uses a Double in the config. The only difference is that I had to name my
> attribute "z" in the indexer.xml for some reason, where the polyphemus
> multidim training somehow uses "elevation". I could not get that to work
> with my dataset.
>
> I just changed indexer.xml and polyphemus-test.xml Double to Float in the
> polyphemus multidim training and it produces the same error when I try to
> access netcdf and netcdf4. WMS works fine. This is a well-known example and
> might simplify replicating the problem.
>
> Here is my request url:
>
> http://nnew-vm9:8089/geoserver/RAL_WCS/wcs?service=WCS&version=2.0.0&request=GetCoverage&coverageId=RAL_WCS:NO2&subset=time(
> "2013-03-02T13:00:00.000Z")&subset=elevation("10")&format=application/x-netcdf4
> Simpler requests cause the same response, but take a lot longer.
>
> And response:
> This XML file does not appear to have any style information associated
> with it. The document tree is shown below.
> <ows:ExceptionReport xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ows
> ="http://www.opengis.net/ows/2.0" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance" version="2.0.0"
> xsi:schemaLocation="http://www.opengis.net/ows/2.0
> http://schemas.opengis.net/ows/2.0/owsExceptionReport.xsd">
> <script id="tinyhippos-injected"/>
> <ows:Exception exceptionCode="NoApplicableCode">
> <ows:ExceptionText>
> java.lang.IllegalArgumentException: illegal dataType: String not supported
> in netcdf-3 illegal dataType: String not supported in netcdf-3 []
> </ows:ExceptionText>
> </ows:Exception>
> </ows:ExceptionReport>
>
> -Paddy.
>
> On Fri, Apr 15, 2016 at 11:44 AM, Daniele Romagnoli <
> daniele.romagn...@geo-solutions.it> wrote:
>
>> Hi Paddy,
>> if you can open a JIRA containing sample data, config files and requests
>> needed to replicate the issue, we could investigate on that and check the
>> problem through a debug session.
>>
>> I'm wondering if the z dimension has been configured/recognized as
>> elevation / custom dimension.
>>
>> Please, let us know.
>> Cheers,
>> Daniele
>>
>> On Fri, Apr 15, 2016 at 5:19 PM, Padhrig Mccarthy <pa...@ucar.edu> wrote:
>>
>>> Hi-
>>>
>>> This is report of a recent discovery I made after repeatedly banging my
>>> head against the wall, so I thought I should write it up here to help
>>> future users. Basically, you MUST define your elevation dimension as a
>>> Double in your schema (using ImageMosaic indexer.xml), even if your NetCDF
>>> files define the z dimension as a float. Otherwise you get exceptions when
>>> making WCS requests that say "illegal dataType: String not supported in
>>> netcdf-3"
>>>
>>> I was getting the following error when accessing my NetCDF-based
>>> ImageMosaic with a request (to a private host) such as this:
>>>
>>> http://nnew-vm9:8089/geoserver/RAL_WCS/wcs?service=WCS&version=2.0.0&request=GetCoverage&coverageId=RAL_WCS:CAT_GPML_GTG&subset=time(
>>> "2016-04-14T02:00:00.000Z")&subset=elevation("13.411")&subset=LEADSECONDS("0")&format=application/x-netcdf4
>>> (LEADSECONDS is a custom variable I've defined for our ImageMosaic)
>>>
>>> Error returned in browser (similar in GeoServer logs):
>>> <ows:Exception exceptionCode="NoApplicableCode">
>>> <ows:ExceptionText>
>>> java.lang.IllegalArgumentException: illegal dataType: String not
>>> supported in netcdf-3 illegal dataType: String not supported in netcdf-3 []
>>> </ows:ExceptionText>
>>> </ows:Exception>
>>>
>>> FYI, a the equivalent WMS request worked fine:
>>>
>>> http://nnew-vm9:8089/geoserver/RAL_WCS/wms?service=WMS&version=1.1.0&request=GetMap&layers=RAL_WCS:CAT_GPML_GTG&styles=gtg&bbox=-120.0,22.0,-60.0,50.0&width=768&height=573&srs=EPSG:4326&format=image/png&time=2016-04-14T02:00:00.000Z&elevation=13.411&DIM_LEADSECONDS=0
>>>
>>> When I changed the schema config from this:
>>> <schema name="default" >
>>>
>>> <attributes>the_geom:Polygon,location:String,imageindex:Integer,time:java.util.Date,z:Float,fileDate:java.util.Date,leadSeconds:Integer</attributes>
>>> </schema>
>>>
>>> to this:
>>> <schema name="default" >
>>>
>>> <attributes>the_geom:Polygon,location:String,imageindex:Integer,time:java.util.Date,z:Double,fileDate:java.util.Date,leadSeconds:Integer</attributes>
>>> </schema>
>>> the request started to work, returning a NetCDF file, instead of the
>>> misleading exception text.
>>>
>>> Also FYI, the NetCDF file headers look like this (note the float data
>>> type for dimension z):
>>> /d1/nnew/GeoServer/8089_server/GTG_index: ncdump -h
>>> ../GTG_granules/lambert_sample_20160414T020000000Z_l_0000000.nc
>>>
>>> netcdf lambert_sample_20160414T020000000Z_l_0000000 {
>>>
>>> dimensions:
>>>
>>> time = 1 ;
>>>
>>> x = 451 ;
>>>
>>> y = 337 ;
>>>
>>> z = 46 ;
>>>
>>> variables:
>>>
>>> double time(time) ;
>>>
>>> time:standard_name = "time" ;
>>>
>>> time:long_name = "data valid time" ;
>>>
>>> time:units = "seconds since 1970-01-01T00:00:00Z" ;
>>>
>>> time:calendar = "gregorian" ;
>>>
>>> time:axis = "T" ;
>>>
>>> time:reference_date = "2016-04-14T02:00:00Z" ;
>>>
>>> float x(x) ;
>>>
>>> x:standard_name = "projection_x_coordinate" ;
>>>
>>> x:units = "km" ;
>>>
>>> x:axis = "X" ;
>>>
>>> float y(y) ;
>>>
>>> y:standard_name = "projection_y_coordinate" ;
>>>
>>> y:units = "km" ;
>>>
>>> y:axis = "Y" ;
>>>
>>> float lat(y, x) ;
>>>
>>> lat:standard_name = "latitude" ;
>>>
>>> lat:units = "degrees_north" ;
>>>
>>> float lon(y, x) ;
>>>
>>> lon:standard_name = "longitude" ;
>>>
>>> lon:units = "degrees_east" ;
>>>
>>> float z(z) ;
>>>
>>> z:standard_name = "altitude" ;
>>>
>>> z:long_name = "Specific altitude above mean sea level" ;
>>>
>>> z:units = "km" ;
>>>
>>> z:positive = "up" ;
>>>
>>> z:axis = "Z" ;
>>>
>>> int grid_mapping ;
>>>
>>> grid_mapping:grid_mapping_name = "lambert_conformal_conic" ;
>>>
>>> grid_mapping:longitude_of_central_meridian = -95.f ;
>>>
>>> grid_mapping:latitude_of_projection_origin = 25.f ;
>>>
>>> grid_mapping:standard_parallel = 25.f ;
>>>
>>> float CAT_GPML(time, z, y, x) ;
>>>
>>> CAT_GPML:valid_min = 0.f ;
>>>
>>> CAT_GPML:valid_max = 0.5949897f ;
>>>
>>> CAT_GPML:_FillValue = -9999.f ;
>>>
>>> CAT_GPML:long_name = "Clear Air Turbulence (CAT)" ;
>>>
>>> CAT_GPML:units = "%" ;
>>>
>>> CAT_GPML:coordinates = "lon lat" ;
>>>
>>> CAT_GPML:grid_mapping = "grid_mapping" ;
>>>
>>>
>>> // global attributes:
>>>
>>> :Conventions = "CF-1.6" ;
>>>
>>> :source = "US NWS - NCEP - Aviation Weather Center" ;
>>>
>>> :title = "Rapid Refresh (RAP)" ;
>>>
>>> :history = "Converted to NetCDF from Grib2 with Grib2toNc from
>>> NCAR-RAL." ;
>>>
>>> }
>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Find and fix application performance issues faster with Applications
>>> Manager
>>> Applications Manager provides deep performance insights into multiple
>>> tiers of
>>> your business applications. It resolves application problems quickly and
>>> reduces your MTTR. Get your free trial!
>>> https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
>>> _______________________________________________
>>> Geoserver-users mailing list
>>> Geoserver-users@lists.sourceforge.net
>>> 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 di Montramito 3/A
>> 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.
>>
>>
>
------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users