Opened 13 years ago
Closed 12 years ago
#280 closed enhancement (fixed)
eum2ropp and eum2bufr tools
Reported by: | Ian Culverwell | Owned by: | Ian Culverwell |
---|---|---|---|
Priority: | normal | Milestone: | 6.1 |
Component: | ropp_io | Version: | 5.0 |
Keywords: | netcdf4, eum, bufr, rosa | Cc: |
Description
Axel is working on readers for EUM data in netcdf-4 format.
From: Axel Von Engeln [mailto:Axel.VonEngeln@eumetsat.int] Sent: 18 January 2012 09:57 To: kbl@dmi.dk; kmk@dmi.dk; Culverwell, Ian Cc: Yago Andres; Christian Marquardt; Riccardo Notarpietro Subject: RE: Rosa2ropp Hi Kent, Kjartan, Ian, I am currently updating my ROPP 5.1 version to be able to read netCDF4. I am half way through, so I can read it, but still have to get from the current EUMETSAT format to the internal ROPP format. We want to use this then to convert our format into BUFR, using the ECMWF BUFR library, thus allowing us to provide the offline data also in BUFR format. I am currently adding tools for eum2ropp and soon eum2bufr. I am only doing the basics and would like to leave the rest to the ROPP team, if you agree. If all goes according to plan then I'm able to check in my modified version later this week and provide you with a summary what I did and where work is still needed. Does that sound okay, or did you already start with a netCDF4 reader? Cheers, Axel
This ticket will hold further details.
Change history (7)
comment:1 by , 13 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:2 by , 13 years ago
Revision 3282:
Preparation for a central installation at EUMETSAT. In particular removed the compilation of ropp_utils/common/typeSizes.f90 since this module is also provided by netCDF and is different to the one used in netCDF 4.
comment:3 by , 12 years ago
Axel has made some further modifications, prompted in part by an observation by Harald Anlauf of DWD, reported as Helpdesk query 121
Here is Axel's commit message for Changeset 3323 for ropp_src/branches/dev/Share/AvE_ROPP51netCDF4:
r3323 | frae | 2012-05-31 14:19:27 +0000 (Thu, 31 May 2012) | 27 lines Updated in order to include some missing bufr data into the eum2bufr converter, as noted by H. Anlauf, DWD. While implementing, I noticed that the GNSS and LEO satellite position and velocities when using bufr are actually included in the usual level 1a dimension, however with this dimension set to 1. I am unsure how this works when more than 1 value is provided in the level 1a data, which one is picked for the bufr data? Suggest to avoid this in a next release and introduce a dimension in the netCDF 3 file that identifies reference data, e.g. lat, lon of location, position & velocities, azimuth angle at reference point. This new dimension would always be set to one and assures that the correct data is used for bufr encoding and not one from a full array of level 1a data. Otherwise introduced a -B or -b flag to eum2ropp tool to get around this problem. So it is now only possible to do the -b (results in dim_lev1a set to 1), or to set the -l (which results in the full filling up of level 1a data fields). Setting both will lead to an error. Also note that this includes the updates Kjartan did. These can do with some more modification to simplify them, which I did not do. Several more FIXMEs are included, some of which can only be properly sorted out once the EUMETSAT format has been adapted.
ROPP7.0 tasks building up ...
comment:4 by , 12 years ago
I checked in some further modifications. Now read-in of the 1a block is working and the eum2ropp tool therefore generates a ropp file with level 1a data included. I followed the old grasrs2ropp routine in that I combine the raw sampling and the closed loop recods into one record in the output file. There is a FIXME to suggest that ideally there should be a flag to decide which record(s) to read from input (closed loop, raw sampling or open loop / downsampled raw sampling)
comment:5 by , 12 years ago
No doubt my code can be simplified by some further modification as suggested by Axel above
comment:6 by , 12 years ago
Milestone: | 7.0 → 6.1 |
---|
comment:7 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
After quite a bit of effort, we have a set of files that work OK. Some points:
- Define HAVE_HDF5 during the configuration step, according to whether netcdf4 is defined or not. This is then used in the build steps to define which tools are built and tested.
- Need to introduce a netCDF-3 version of the modified ncdf_getgroupid.f90, which returns the groupid of a variable. (The netCDF-3 version returns the variable id.) The one to be used depends on the value of HAVE_HDF5.
- Need to add a dummy variable to ropp_io_read_ncdf_get_eumdata or some compilers can't
disambiguatetell the difference between it and ropp_io_read_ncdf_get_otherdata. - There's a nasty inconsistency between ifort12 and ifort11 in the output L1 phase. Finally traced to precision problems in subroutine accumulate_phase (which I don't like one bit). Solve by relaxing the test on the difference between test result and reference, but needs to be re-examined.
- Sundry minor complaints about non-standard fortran (like BYTE, WHERE, ISNAN etc) which trip up some compilers (notably nagfor), but all patched up OK.
Eventually driven through the test folder OK (I made new tests on eum2ropp and eum2bufr).
No further problems, so closing the ticket.
Taken directly from the svn commit message, revision 3281, branch as given below. Note the formatting might look a bit odd since it was ASCII in the svn commit:
This update of the ROPP 5.1 distribution allows to read EUMETSAT netCDF4 formats, as they are currently distributed. This format will be further refined in the coming weeks and I already posted several issues I found to Christian. Hence this should not be seen as a full fledged version, rather one that can be used by the GRAS SAF for further development.
It is available in repository:
Tools: ======
The following tools have been added:
Issues: =======
I identified the following issues:
Added / Modified Files: =======================
Tests: ======
I ran 2 simple tests, more a certainly required: