Hi,
Because no response on user list, I'm forwarding my (too long?) question
to here hoping to meet someone with deeper netcdf implementation knowledge.
tldr; Should it be able to server a netcdf with data with elevation AND
time in a normal/known epsg crs (non latlon, but like a national epsg).
I fail to load it in Geoserver. A 'simple' netcdf in epsg:xxxx without
time or elevation loads fine.
Regards,
Richard Duivenvoorde
PS Example data + python to create it here: http://duif.net/ncgeoserver.zip
-------- Forwarded Message --------
Subject: [Geoserver-users] netcdf in non latlon grid
Date: Wed, 9 Jan 2019 18:15:20 +0100
From: Richard Duivenvoorde <rdmailings@anonymised.com>
Reply-To: richard@anonymised.com
To: GeoServer Mailing List List <geoserver-users@lists.sourceforge.net>
Hi List,
I've succesfully created a simple minimal netcdf file (using Python)
with time-range-based data in a latlon grid:
like: float fakedata(time=3, z=3, lat=3, lon=4)
I can load the file (with several layers) both in QGIS (as mesh) and in
Geoserver (2.14.1 with netcdf extension) (with both time and elevation
dimensions): NICE!
BUT: we also want to project the data to our national grid: epsg:28992
If I understand docs correct, this should be possible (so: a known epsg,
no custom crs)?
Using gdal somebody provided me with a simple example in which instead
of lat lon the coordinates are x and y, and a CRS definition is defined:
"oblique_stereographic" and used as 'grid_mapping'.
But this is only 2D: (y=3, x=4)
With my python-netcdf-creation script I'm able to do that, and Geoserver
loads the data as one layer.
But trying to add time and/or z I fail:
Caused by: org.geotools.feature.IllegalAttributeException:Unknown
attribute time:null value:null
at
org.geotools.feature.simple.SimpleFeatureImpl.setAttribute(SimpleFeatureImpl.java:238)
at
org.geotools.imageio.netcdf.VariableAdapter.setFeatureTime(VariableAdapter.java:1327)
at
org.geotools.imageio.netcdf.VariableAdapter.createFeature(VariableAdapter.java:1280)
at
org.geotools.imageio.netcdf.VariableAdapter.getFeatures(VariableAdapter.java:1232)
at
org.geotools.imageio.netcdf.NetCDFImageReader.initIndex(NetCDFImageReader.java:363)
or other silent issues.
I tried to google and look into the code to find the magic combination
of attributes/variables needed to be defined, but after hours of
fiddling, I tend to give up and ask for help
So Question: should Geoserver be able to serve
fakedata(time=3, z=3, y=3, x=4)
with given crs, just as it is able to serve:
fakedata(time=3, z=3, lat=3, lon=4) ?
If anybody has a working example of such a grid I'm also happy, as that
proves that my feeling is right that it should be possible and I miss
something...
The python code and working latlon and not-working epsg28992 output
netcdf's are here http://duif.net/ncgeoserver.zip if somebody is willing
to have a look.
Regards,
Richard Duivenvoorde
_______________________________________________
Geoserver-users mailing list
Please make sure you read the following two resources before posting to
this list:
- Earning your support instead of buying it, but Ian Turton:
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines:
http://geoserver.org/comm/userlist-guidelines.html
If you want to request a feature or an improvement, also see this:
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users