The MeteoIO Open Source library aims at making data access easy and safe for applications in environmental sciences requiring general meteorological data. Since real world, measured data are often far from perfect and suffer from various issues (missing data, invalid data, measurement errors or innaccuracies), it is necessary to correct the data before using it into a numerical model or any other kind of application. This is where MeteoIO steps in by offering a tool that can take in the raw data and make it suitable to be used by a model.
MeteoIO is aimed at researchers working with meteorological data, software developers and numerical models developers.
MeteoIO has been designed to be model and application independent, robust, easy to integrate and easy to use. MeteoIO's main design goals are:
- providing data format/protocol independent data access
- providing safe and robust I/O
- making I/O code as unobtrusive and simple as possible for the user
- providing ready to use data to the user, which means transparent caching, filtering, resampling, spatial interpolation.
- enabling unattended use from an IO point of view
- offering high modularity so that individual elements of the library can easily be replaced/expanded/added
- by its modularity, help interdisciplinary development, each module being targeted at a specific developer profile
MeteoIO is a C++ library provided free of charge with complete documentation (tutorials, code examples, API's documentation) under the LPGL version 3 open source licence. As such, feel free to contribute (The development takes place on GitLab)! You are also encouraged to drop us a line if you use MeteoIO, this is a great way to support us! It is recommended to rely on the Inishell Graphical User Interface to configure MeteoIO. When using Inishell, you get the best of both worlds: a user friendly GUI while still keeping the possibility to run the generated ini configuration file in batch mode.
Detailed software description
A large number of the problems encountered by users of numerical models working on large meteorological data sets can be traced back to the Input/Output functionality. This comes from the focus of the model developers on the core modeling issues at the expanse of the I/O routines that are costly to properly implement. Therefore the I/O routines often lack flexibility and robustness. When using numerical models in operational applications, this becomes a major drawback and a regular source of problems.
The MeteoIO library has been designed to address this issue. It is an additional layer between the data and the numerical model, handling the retrieval of data from various data sources as well as the data pre-processing.
The online documentation provides an overview of the general structure of MeteoIO and the description of a typical setup.
Here below is a list of some published works that describe various aspects of MeteoIO.
- a complete description of MeteoIO in Bavay, M. and Egger, T., "MeteoIO 2.4.2: a preprocessing library for meteorological data", Geosci. Model Dev., 7, 3135-3151, doi:10.5194/gmd-7-3135-2014, ;
- some example applications in Bavay, M., Fiddes, J., Fierz, C., Lehning, M., Monti, F. and Egger, T., "The METEOIO pre-processing library for operational applications", In International Snow Science Workshop ISSW, Innsbruck, Austria, ;
- a data standardization system based on MeteoIO is decsribed in in Bavay, M., Fiddes, J. and Godøy, Ø., "Automatic Data Standardization for the Global Cryosphere Watch Data Portal" Data Science Journal, 19(1), p.6. DOI: http://doi.org/10.5334/dsj-2020-006, ;
- a similar data standardization architecture has been presented at EGU2022, the slides are found at DOI: 10.5281/zenodo.6647316.