[Paraview] trouble reading in netCDF file
Joel Culina
joel.culina at acadiau.ca
Mon Apr 19 21:56:30 EDT 2010
Well, typing ncdump -h file, I get (note last line):
// global attributes:
:title = "Scotia Fundy Maine (Tidal Power) case " ;
:institution = "School for Marine Science and Technology" ;
:source = "FVCOM_2.6" ;
:history = "model started at: 25/02/2010 18:29" ;
:references = "http://fvcom.smast.umassd.edu, http://codfish.smast.umassd.edu" ;
:Conventions = "CF-1.0" ;
Which file(s) do I edit to create my own reader? The new model I will be getting outputs netCDF-4 files. Can I import unstructured netCDF-4 files into paraview with an HDF5 reader?
thanks!
Joel
-----Original Message-----
From: Moreland, Kenneth [mailto:kmorel at sandia.gov]
Sent: Mon 4/19/2010 5:20 PM
To: Joel Culina; paraview at paraview.org
Subject: Re: [Paraview] trouble reading in netCDF file
I don't really understand this description, but I can say with confidence that the netCDF reader will not read this convention. The CF convention does not support unstructured triangular grids (or any unstructured grids, for that matter). The (general) netCDF reader knows how to read 1-, 2-, and 3-D arrays as regular grids with some conventions on setting coordinates to the points in the grid.
NetCDF is not a data format description. It is simply an I/O library that specifies how to read/write arrays with some annotation. Thus, if you have data in a netCDF file that has a structure more complicated than simple arrays, you will have to create a reader that understands how to construct the data format. From your description, it sounds like you will have to create your own reader.
-Ken
On 4/16/10 4:05 PM, "Joel Culina" <joel.culina at acadiau.ca> wrote:
Hi,
Thanks Ken.
I'm using 3.8 now, but am have some similar troubles. To recap: I'm using unstructured triangular grid. The 'dimensions' variables include integer identifiers for triangle nodes, but NOT lat,long and depth. Rather, these are included among the 'variables' variables (e.g. lat = lat(node)).
Paraview is reading in the data correctly. But I need it to use the 'variable' variables lat, long, and depth to serve as the coordinates of the grid. All other 'variables' variables are of course functions of the 'dimensions' variables only, but are to be plotted over the 3D space determined by lat, long and depth.
Can this be done in Paraview?
thanks
Joel
-----Original Message-----
From: Moreland, Kenneth [mailto:kmorel at sandia.gov]
Sent: Wed 4/7/2010 11:09 AM
To: Joel Culina; paraview at paraview.org
Subject: Re: [Paraview] trouble reading in netCDF file
The netCDF reader in version understands the COARDS convention (a common subset of CF). It sounds like the variable annotation you describe should be supported. However, one major limitation of the netCDF reader is that it only supports reading variables of the same dimensions because it puts them all on the same grid. So if you have selected to load variables with different dimensions, it will use the dimensions of the first variable and fail to load the rest. That would explain the behavior you are getting since most netCDF files I have run into seem to have variables with low dimension listed first. (There is no particular reason for this. It just seems to be what people/applications do.) If this is the case, you are probably also getting a lot of warnings from the netCDF reader about it and the Information panel will be missing many of your variables. Try turning off all variables in the Object Inspector and turning on only one variable you are interested in.
If this is the problem, it should go away in version 3.8. Realizing this the 3.6 interface to the netCDF reader really sucks, I changed it to select dimensions instead of variables. All variables conforming to the selected dimensions are loaded. It makes using the netCDF reader much easier and problems like the one I described go away. I also expanded the reader to understand most of the CF convention.
Unfortunately, don't use the CVS for this just yet. I have recently discovered that a new netCDF reader that was apparently built for a specific use case but seems to screw up on most data was added to ParaView and it is overriding the existing netCDF reader. We are trying to work on a resolution.
-Ken
On 4/6/10 6:02 PM, "Joel Culina" <joel.culina at acadiau.ca> wrote:
Hi,
Thank you Ken for responding.
I suspect that your diagnosis is correct; the root of the problem, I believe, is that I am reading in netCDF data that follows the CF convention. In particular, the grid is an unstructured triangular 2D grid ('poly data' grid in the venacular of paraview). The 'dimensions' variables include integer identifiers for triangle nodes, but NOT lat, long, x, y, time etc. Rather, these are included among the 'variables' variables (e.g. lat = lat(node)).
Is the problem indeed that the paraview netCDF reader cannot understand this particular netCDF-CF file? Is there a way around this, without having to change the way the data is outputted (from netCDF-CF to netCDF-COARDS convention)? Note that I can read into paraview certain variables by filtering out the 1-dimensional variables (lat, long etc.), but of course these variables do not have the correct dependencies (they should be dependent on the variables I filtered out - lat, long etc.)
thanks,
Joel
-----Original Message-----
From: Moreland, Kenneth [mailto:kmorel at sandia.gov]
Sent: Tue 4/6/2010 3:41 PM
To: Joel Culina; paraview at paraview.org
Subject: Re: [Paraview] trouble reading in netCDF file
It sounds like you are reading in an array with 0 or 1 dimensions (not including time). Although the reader should happily create an image data of that structure, the standard rendering views only understand image data of 2 or 3 dimensions. Hence you get the error.
If you want to see the data in a plot, try adding the "Plot Data" filter.
-Ken
On 4/6/10 11:36 AM, "Joel Culina" <joel.culina at acadiau.ca> wrote:
Hi,
I am trying to read in a netCDF file using Paraview 3.6.2. It can 'see' the netCDF file, but when I attempt to read in the file by pressing 'Apply', I get the following error message:
ERROR: In /home/kitware/ParaView3/Utilities/BuildScripts/ParaView-3.6/ParaView3/Servers/Filters/vtkTexturePainter.cxx, line 280
vtkTexturePainter (0xb8a0000): Incorrect dimensionality.
I'm not sure which netCDF release created the netCDF file. However, I read in a previous post that paraview 3.6.1 could handle netCDF 4, and since "all netCDF files ever written can always be read by the latest netCDF release. That is, we guarantee backward data compatibility" then 3.6.2 should be able to handle my netCDF file (which wasn't created too recently).
I can read the netCDF file into MATLAB, so it isn't corrupt.
So what's the problem?
thanks
Joel
**** Kenneth Moreland
*** Sandia National Laboratories
***********
*** *** *** email: kmorel at sandia.gov
** *** ** phone: (505) 844-8919
*** web: http://www.cs.unm.edu/~kmorel
**** Kenneth Moreland
*** Sandia National Laboratories
***********
*** *** *** email: kmorel at sandia.gov
** *** ** phone: (505) 844-8919
*** web: http://www.cs.unm.edu/~kmorel
**** Kenneth Moreland
*** Sandia National Laboratories
***********
*** *** *** email: kmorel at sandia.gov
** *** ** phone: (505) 844-8919
*** web: http://www.cs.unm.edu/~kmorel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20100419/54f54eac/attachment.htm>
More information about the ParaView
mailing list