fimex:start

This is an old revision of the document!


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.

  • 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
      • Pure north wind, rotated to lcc and back to latlon, scale up to -20% (brightviolet) / 20% (brightred) distortion Old fimex fimex⇐0.52 → fimex-0.53 fimex-0.53
    • 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
  • 2013-10-21 fimex-0.49
    • adding fortran90 interface
    • improved C interface
    • fix scaling of CDMReaderWriter
    • fix parsing of process.rotateVector.direction
    • using enums instead of #define for several constants
    • exposing getSimpleAxes in CoordSysUtils
    • adding getPreferredVerticalType
    • better API for fimex-versions (see CDMconstants.h)
  • 2013-10-03 fimex-0.48
    • vector-autorotation from command-line
    • printSize estimates
    • improved error-messages
    • scalar values allowed from ncml
  • 2013-08-30 fimex-0.47.2
    • fixed grib-file overruling of earth radius
  • 2013-08-26 fimex-0.47.1
    • allowing to extract only first dimension element (start=end=0)
    • fixing lambert-projection parameters in felt
    • fixing typo's in VerticalTransformation API
    • fixing time-interpolation when units-change
    • makeing Logger thread-safe
  • 2013-08-12 fimex-0.47
    • adding vertical cross-section interpolation
    • exposing vertical-transformations
    • (re-)adding SliceBuilder interface to NcML aggregation (reduce memory-consumption)
      • was dropped in 0.45
    • allow ncml to add values to unlimited dimensions
    • grib-reader allows time-unit change
    • documentation-improvements
  • 2013-06-12 fimex-0.46.1
    • warning, not failing with old grib-config files
  • 2013-06-12 fimex-0.46
    • grib-reading automatically adds unknown levels
    • grib-reading by timeRangeIndicator
    • grib-reading allows adding of ensemble dimension (glameps) (E. de Vreede)
    • grib-reading using globs or regexp
    • grib-reading read hybrid-values
    • configurable shuffling in netcdf4 (default on)
    • creepfillval to certain value instead of average
    • fixing vector reprojection together with preprocessing
    • fixing threading bug in forward-interpolation
  • 2013-05-20 fimex-0.45
    • adding ncml-aggregation, union and joinExisting
    • allow reading of other filetypes than netcdf in ncml
    • auto-detection of vectors by CF standard_names
    • vector-reprojection when selecting lat/lon-points
    • improved vector-rotation algorithm
    • lambert-projection for grib-writer
    • small improvements in example-input files
  • 2013-04-11 fimex-0.44.2
    • fix bug with netcdf-CDMReaderWriter and empty variables
    • fix direction of vertical axes for pressure, sigma and sigma-hybrid in config-files
  • 2013-04-08 fimex-0.44.1
    • allow file-generation from pure ncml
    • process.accumulate option to accumulate data along unlim (time)-dimension
    • automatically create chunks 1-10MB for compressed netcdf-files
  • 2013-03-25 fimex-0.43
    • new FillWriter, allowing netcdf-files to be filled slice by slice
    • change longitude to be within -180/180 from grib-files
    • enable creation of new variable in ncml
    • enable logical variable-shape changes in ncml
    • adding sync to CDMReaderWriter
  • 2013-03-04 fimex-0.42
    • add API for CDMReaderWriter
    • implement read-writing to netcdf-files
    • finding example-configuration directory for xml-files as first-guess
  • 2013-02-14 fimex-0.41.2
    • fix for interpolation to values, if axes in km instead of m
  • 2013-02-08 fimex-0.41.1
    • default log-level changed back to WARN
    • remove sigma-levels for clouds and dummy levels in felt-files
    • remove some openmp-flags for intel-compilers (segfault)
  • 2012-12-17 fimex-0.41
    • R interface to fimex for reading fields
    • log4cpp support
    • auxiliary variable support in extract.selectVariables
  • 2012-11-27 fimex-0.40.1
    • read multiple grib-files
    • allow writing of latlon grib-files from north to south
    • allow duplicated coordinates
    • remove duplicated coordinates for felt-files in latlon
    • allow different names for latlong (e.g. longlat) projections
    • remove long deprecated FeltCDMReader2.h
    • allow change of dimensions without variables in ncml
    • allow variable name-change and attribute-change in one step in ncml
  • 2012-11-07 fimex-0.40
    • splitting of vertical axes in grib-files
    • support for ensemble products in grib-files
  • 2012-10-30 fimex-0.39.2
    • vertical-interpolation invalidating data below ocean floor
    • vertical interpolation fixing axis (positive down) of depth
  • 2012-10-15 fimex-0.39.1
    • backport to boost-1.32
    • avoid problems with older gcc or icc when using constant class members
    • improve performance of scaling (use nan-macro rather than function)
  • 2012-09-08 fimex-0.39
    • merging of grids with different resolution (A. Bürger)
    • allow quality-flags and land-masks from external sources (A. Bürger)
    • successfully build on MacOS X/gcc
    • successfully tested with felt-archive files
  • 2012-08-11 fimex-0.38.1
    • compatibility with boost filesystem V3 / boost 1.50
    • adapting to gcc-4.6 / Ubuntu 12.04
  • 2012-07-19 fimex-0.38
    • 2x improved output-performance to netcdf3 files
    • support for ocean_s_coordinate_g1 and *_g2
    • adding IndexedData for convenience
    • introducing DataPtr typedef instead of boost::shared_ptr<Data>
    • adding fiConfigOverview.pl script to simplify configuration
  • 2012-07-05 fimex-0.37.4
    • fixing netcdf-files with 0-terminated strings
    • felt: using undefined-values for undefined levels
    • build on Ubuntu 12.04
  • 2012-05-09 fimex-0.37.3
    • enabling build with nc-config and netcdf-4.1.2 to 4.2 without hdf5
    • enabling build with proj-4.8
    • adding latlon projection in gribwriter
    • fixing bug in gribreader with special options
    • enabling name and standard_name selection of variables in grib_writer
    • fixing WRF earth radius
  • 2012-04-11 fimex-0.37.2
    • using towgs84 parameter of CF-1.7-proposal
    • setting felt earth-figure to simple earth
    • allow overruling of felt-earth-figure in config
  • 2012-03-29 fimex-0.37.1
    • preliminary WRF convention support
  • 2012-03-27 fimex-0.37
    • fix colon-separated variable-indicators for felt
    • fix axes in vector-interpolation (deg2rad)
    • disabling colon delimiter in wdb-sourcestrings
    • performance-improvements/memory reduction in NcmlCDMReader
    • adding de-accumulation processor
    • synchronize default fill-value with netcdf
    • fine-tuning usage of surface-variables from felt
    • allowing to force earth-figure in grib-files
    • template interpolation supports several coordinate systems
    • adding alpha-version of vector to latlon rotation
  • 2012-03-02 fimex-0.36
    • interpolation to simple list of lat/lon values (e.g. multiple profiles)
    • avoid numerical effect in linear interpolation
    • fix race-condition in timeInterpolator
    • fix axes of lambert felt-files
    • update of examples
  • 2012-02-20 fimex-0.35.2
    • allow to read ASIMOF-grib files
    • allow writing grib-data without time
    • fix forward/coordinate interpolation bug from latlon-projection
  • 2012-02-14 Fimex Workshop at met.no
  • 2012-02-07 fimex-0.35.1
    • enable reading of felt-files in lambert-projection
    • improving performance: vectorization of vector-interpolation
    • deprecating IOCDMReader in favour of CDMReaderFactory
  • 2012-01-04 fimex-0.35
    • grib-reader
      • supporting several types of levels for same parameter
      • supporting several horizontal CS for different parameters
    • grib-writer
      • fixing date-settings
      • using second-order packing if possible
    • interpolation
      • support for several horizontal CS (e.g. staggered grids)
      • using nanoflann instead of kdtree++, 4*speedup
      • supporting degree-based projections in coord_kdtree
      • configurable radius for coord_kdtree
      • improved index-access, 1.1*speedup
      • bilinear: better border handling, 1.3*speedup
      • vertical: support for depth
    • using WGS84 coordinates of latitude/longitude instead of spherical
    • extract-reduceToBoundigBox supporting bb around -180
    • parallelization
      • nn, bilinear, cubic and vector interpolation
      • make get*Data* operations thread-safe
      • make (Time-)Units thread-safe
      • parallelization of NetCDF-writer and NullCDMWriter
      • upgrade to libtool 2.4.2 (including openmp support)
      • adding ThreadPool.h for runtime configuration of threads
    • forcing boost-filesystem api to be compatible with newer boost-versions
    • remove isinf - not part of C++03

Older news can be found in the News Archive.

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • fimex/start.1421766764.txt.gz
  • Last modified: 2022-05-31 09:23:16
  • (external edit)