Opened 5 years ago

Closed 4 years ago

Last modified 17 months ago

#40 closed New feature (fixed)

netCDF output

Reported by: pesei Owned by: hasod
Priority: major Milestone: FLEXPART 9.2
Component: FP post-processing Version:
Keywords: Cc:

Description

(from minutes of FpDev Workshop 2012)

The introduction of netCDF output (post-processing) was considered useful, post-processing software should be put on the FLEXPART home page; as a disadvantage, however, it needs to be stressed that output in netCDF format is much larger compared with standard FLEXPART output.

With the introduction of a FLEXPART netCDF output converter, a large variety of visualization software becomes available

I think implementation should be as a postprocessing tool. Binding in netCDF libs can create trouble as we see in ticket:14 and makes the code more dependent on other software, while not everyone would want to use the feature.

Change History (7)

comment:1 follow-up: Changed 5 years ago by jbrioude

Some precisions:

Using netcdf library version 4 makes the flexpart netcdf output of similar or smaller size than the binary format used so far.

The problem with ticket 14 is related to the reading of WRF netcdf output, not the FLEXPART netcdf output itself.

comment:2 in reply to: ↑ 1 ; follow-up: Changed 5 years ago by pesei

Replying to jbrioude:

Thanks for clarification!

Using netcdf library version 4 makes the flexpart netcdf output of similar or smaller size than the binary format used so far.

Very interesting. Does this hold for any degree of sparseness in the output field?

comment:3 in reply to: ↑ 2 Changed 5 years ago by sthen

Replying to pesei:

Replying to jbrioude:

Thanks for clarification!

Using netcdf library version 4 makes the flexpart netcdf output of similar or smaller size than the binary format used so far.

Very interesting. Does this hold for any degree of sparseness in the output field?

To be even more specific. You need netcdf4 with hdf5 and zlib (or similar) support. So in the end it comes down to a zip algorithm of the data that is integrated in the library (as far as I understand it). So the sparseness is "only" considered in that it is very efficient to compress a long series of zeros.
We had implemented a netcdf output for the FLEXPART COSMO version and I also put it into the ECMWF version that Harald is working on. The chosen format follows the CF conventions and can directly be visualised with standard netcdf tools like ncview. But it comes at the cost of correctly compliling a netcdf library with hdf5 support, which might be an additional hurdle for some users. On the other hand, doing so is not really more difficult than compiling the grib_api.

So I guess Harald will include the netcdf output (at least as an option) in the upcoming 9.1 release.

comment:4 Changed 5 years ago by hasod

  • Owner changed from somebody to hasod
  • Status changed from new to assigned

comment:5 Changed 5 years ago by hasod

  • Milestone set to FLEXPART 9.2

Netcdf output inside FP has been submitted to the 9.2 code base. An alternative makefile allows to opt in/out compiling that code and linking to netcdf library. Testing of the output compared to the standard output needs to be done. Will discuss with jbrioude about harmonization of output format compared to FP WRF.

comment:6 Changed 5 years ago by hasod

  • Status changed from assigned to accepted

comment:7 Changed 4 years ago by hasod

  • Resolution set to fixed
  • Status changed from accepted to closed

Optional netcdf output has been included with changeset:30 (Version 9.2beta, see FpRoadmap). Invokation from the namelist switch lnetcdf in the namelist COMMAND file, or by adding 8 to IOUT parameter in the standard text format COMMAND file (example: IOUT=9 corresponds to IOUT=2 with the standard output).

In the netcdf module netcdf_output_mod a parameter write_releases determines at compile time if the releases should also be written to the netcdf file.

One netcdf file is written for either global or nested output which contains all species and all time steps. Since the netcdf output is in CF format any standard software can be used for display (e.g. panoply).

Activating the netcdf option requires linking against the netcdf and hdf5 libraries (the latter for compression). The makefile.netcdf demonstrates the steps needed to activate the netcdf support:

  • add switches -cpp -DNETCDF_OUTPUT to the compiler options
  • add libraries -lnetcdf -lnetcdff -lhdf5 to the linker options
  • add path to netcdf and hdf5 libraries to the linker options
  • add netcdf_output_mod.o to the MODOBJS code list

Netcdf support is fully optional and the previous output format remains unchanged. Linking against the hdf5 and netcdf libraries is also fully optional.

Surface only output for the netcdf format as not yet been implemented

Last edited 17 months ago by pesei (previous) (diff)
Note: See TracTickets for help on using tickets.
hosted by ZAMG