FIMEX
Fimex is a the File Interpolation, Manipulation and EXtraction library for gridded geospatial data, written in C/C++. It converts between different, extensible dataformats (currently netcdf, NcML, grib1/2 and felt). It enables you to change the projection and interpolation of scalar and vector grids. It makes it possible to subset the gridded data and to extract only parts of the files.
For simple usage, Fimex comes also with the command line program fimex
.
Fimex is build around the Unidata Common Data Model version 1.
News
Please see NEWS.
The following NEWS are not updated any more since May 2019:
- 2019-05-08 fimex-1.0.0
- please see NEWS
- 2018-11-01 fimex-0.67.0
- please see NEWS
- 2018-02-07 fimex-0.66.0
- please see NEWS
- 2017-10-25 fimex-0.65.0
- please see NEWS
- 2017-09-05 fimex-0.64.0
- vertical transformation / interpolation supports ensemble dimensions
- function to convert specific humidity to relative humidity
- support for oblique mercator and geostationary projections (contributed by SMHI)
- cmake build, support for building with eccodes
- 2017-05-12 fimex-0.63.7 github
- more bugfixes logging
- 2017-04-05 fimex-0.63.6 github
- bugfix logging
- 2017-03-20 fimex-0.63.5 github
- bugfix of bugfix in fortran interface
- 2017-03-20 fimex-0.63.4 github
- bugfix in fortran interface
- bugfixes elsewhere
- logging reorganization
- faster implementation of extractor
- 2016-11-25 fimex-0.63.3 github
fimex-0.63.3.tar.gz
does not contain test/cdmGribWriterConfig_append.xml, please fetch this file from github- new data type CDM_STRINGS corresponding to NetCDF NC_STRING
- added grib2 codes to config
- grib output append
- 2016-09-27 fimex-0.63.2 github
- bugfixes in CDMPressureConversions
- bugfixes in CDMInterpolator / CDMVerticalInterpolator
- 2016-06-16 fimex-0.63.1
- no code changes
- bugfixes for parallel build
- 2016-05-23 fimex-0.63
- bugfixes:
- CDMInterpolator→getDataSlice(slicebuilder)
- problems with get_var_longitude/latitude in c_fimex (api change)
- 2016-04-28 fimex-0.62.1
- performance improvements:
- implement CDMInterpolator→getDataSlice(slicebuilder)
- vectorize mifi_nanf2bad
- 2016-04-19 fimex-0.62
- new high-level fortran90 fimex2d API
- supporting grib-files > 2GB on 32bit platforms
- enabling parallel grib reading when grib_api build with –enable-pthreads
- parallelizing FillWriter/fillFile
- lazy error-handling in FillWriter/fillFile, writing more data even when errors are found
- supporting WRF-output without Times-axis
- 2016-02-15
- Repository changed to github: https://github.com/metno/fimex
- 2016-01-19 fimex-0.61.1
- bugfix: extraction of unlimited dimension ignores all offsets
- 2015-12-21 fimex-0.61
- improved merge options
- both inputs fully configurable
- outer variables may be kept even when no inner exist
- improved documentation with real world example
- adding extract.pickDimension for striding
- support for ensembles/realization axes
- improve performance of grib-reading with SliceBuilder
- fix bug when reading grib-files with <ensemble no=“0” total=“220” />
- no longer reading repeatedly level-data
- fiGrbmlCat: Fast merger of grbml-files, parallel grbml-file generation possible
- packages with debug-symbols
- avoid too small chunks in netcdf4
- micro-performance optimization (vectorization mostly for interpolation)
- 2015-10-26 fimex-0.60
- grib-indexing with explicit ensemble data and earth figure
- using etmerc instead of tmerc for transverse mercator, with proj 4.8.0
- better check for simpleSpatial data
- fixing missing value handling for grib-precision scaling
- improve MPI-handling
- output.config for fillWriter, allowing special selection of slices
- ignore unused dimensions/coordinates inf fillWriter
- detecting axes mismatch for vector-reprojections
- 2015-08-28 fimex-0.59.1
- fixing bug sometimes no data when interpolating to many lat/lon points
- 2015-08-25 fimex-0.59
- autoremoving unused dimensions when writing netcdf-files1)
- require '-c fimex.cfg' to read fimex.cfg files
- avoid double points on cross-sections corners
- precision-scaling on grib-data to float-format uses rounding at 1/scale_factor instead of adding scale_factor/add_offset
- allow pressure and air_pressure as standard_name
- use subsetting of input data when interpolating to lon-lat points
- giving about 20x faster response on cached local data
- reducing data-transmission to <0.1% on opendap sources
- enabling extractor to propagate subsetting
- adding FIMEX_CHUNK_CACHE_SLOTS env-variable for better cache-control
- 2015-05-11 fimex-0.58.1
- fixing problems with metgm-files
- fix bug when changing both scaling and varName in NcML
- avoid fetching multiple levels in fiXYcontents
- 2015-04-23 fimex-0.58
- adding fiXYcontents script, listing content as horizontal 2d-fields
- new vertical interpolation methods (different extrapolations)
- linear_const_extra, linear_weak_extra, linear_no_extra
- using linear_weak_extra for time-interpolation (only 1 timestep extrapolation)
- adding FIMEX_CHUNK_CACHE_SIZE to remove chunk-cache in constraint environments (e.g. webservers)
- increase precision of units-conversion (<1e-14)
- fix debian-packages for fortran-dev
- grib: fix stepUnits when different from h
- grib: handling clusters as ensembles
- changing loop-order when writing netcdf (time,variable) to avoid performance problems with filesystems with large blocksize (lustre)
- 2015-02-27 fimex-0.57
- convert pressure to altitude using hypsometric formula
- compressed grbml.gz files with fiIndexGribs
- fix limited resolution problems with grib1 files (dx-min = 0.001degree)
- configurable chunkSize of NetCDF4 output
- bugfix in RFimex-0.05: closing filehandles in gc()
- bugfix in interpolator: interpolation to singularities (poles) results now in undefined values
- 2015-01-20 fimex-0.56
- making getDataSlice calls fork-safe
- adding example on how to efficiently parallelize multi-field reading with fork
- possibility to parallelize fimex with MPI and MPI-IO
- adding forward_undef_* interpolations, i.e. forward_* interpolation with different interpretation of undefined values
- improving performance by a factor 8 when reading large grbml files
- avoid segfault when grbml points to non-existing grb-file
- fix height/altitude conversion (gave no results before)
- 2014-12-16 fimex-0.55.1
- fix correction of earthfigure for grb-files
- 2014-12-11 fimex-0.55
- creation of one grib-index file for many grib-files
- new filetype grbml (grib-index file) as reader
- translation of grib-messages to netcdf-variables without time-axes possible
- read grib-asimov (hirlam) header
- interpolation with forward_* method now possible if only projection, but not coordinates present
- fix relative interpolation axis for lat-lon input
- height above ground and height above mean-sea level now clearly distinct, use 'height' for above ground, and altitude for height above msl
- post-processor for interpolation, e.g. for extrapolation similar to pre-processor
- process: addVerticalVelocity, calculated from continuity equation for hydrostatic models
- fixing standard_name of cloud-water
- glob: notation to join several netcdf-files along the unlimited dimension
- fix vertical levels for grib 'extraHalvLevels' (+1 onffest)
- monotonous longitude axis, even when outside -180:180
- fix geographical extraction when multiple coordinate-systems exist in one file
- improvements in error messages, filenames on missing/wrong files, ticks around wrong units/variables
- 2014-10-07 fimex-0.54
- fix grib-missing-long on 64bit platforms for asimov-files
- more tests on vector-rotation, using defaults around singularities
- fix name of atmosphere_sigma_coordinate
- allow record-dimensions to switch to normal dimensions and vv in NcML
- avoid crashes when data missing
- 2014-08-26 fimex-0.53.2
- ncml-fixes: allow record-dims to change to normal dimensions
- interpolator: avoid crash when no data
- 2014-07-07 fimex-0.53.1
- many tests for vector-rotation
- fix bug for flipping vector with some special projections
- remove some llvm-warnings
- allow scalar felt-axes
- 2014-06-24 fimex-0.53
- improved accuracy of vector-rotation to latlon
- updating build to multi-arch environments (ubuntu 14.04, debian 7)
- extraKey-selection of grib-files
- allow absolute/relative GRIB_INDEX_PATH
- use packingType from gribWriterConfig.xml
- fix extract.reduceTime for several time-axes
- avoid uninitialized ptr in fortran / icc
- fix cross-sections with more than 2 points
- 2014-05-13 fimex-0.52
- join several levelNo in grib-files
- rotation of directions (angles)
- performance improvements of process.accumulate
- fixes when reading prorad
- performance and accuracy-improvements in interpolation
- circular handling of longitude-axes in interpolation
- fixing interpolation exceptions when coordinates axes are not correctly defined
- 2014-02-11 fimex-0.51
- adding support for Prorad xml-files
- avoiding singularities in interpolation
- adding variable_type and dimension_size in Fortran
- improving WRF-convention support (rot lat/lon, auxiliary axes)
- using CF after horizontal transformation of WRF-files
- bugfixes in merge (still in beta)
- fixing grib-reader for mercator-files
- adding qualityExtract2 command-line option, convenient for land-masking after interpolation
- 2013-12-16 fimex-0.50
- extending f90-interface, including –enable-fortran target
- extending c-interface
- slightly improving parallelization
- fix setting of netcdf-compression per variable
- improve scanning of grib-files
- re-implement merging of files to allow for new target-grid
- improve reading of WRF-files; better coordinate-support and vector-detection
- fix latlon-interpolation with staggered grids
- add support for logarithmic units
- fix mercator-axes from grib-files
Older news can be found in the News Archive.
1)
This change is not backward-compatible and might break commands used after fimex relying on all dimensions to be there. To regain the old behaviour, use a cdmWriterConfig.xml with autoRemoveUnusedDimension=“false”, e.g. –output.config=cdmWriterConfig.xml or see https://svn.met.no/viewvc/fimex/trunk/share/etc/cdmWriterConfig.xml?revision=1904&view=markup