FluxEngine
Open source atmosphere-ocean gas flux data processing tools. Example uses i) calculating global/regional gas fluxes and net integrated values using satellite Earth, model or in situ data (or any combination), ii) uncertainty analyses (eg ensemble runs, input data uncertainty, model uncertainty), iii) evaluating novel gas transfer parameterisations.
Install / Use
/learn @oceanflux-ghg/FluxEngineREADME
FluxEngine
Main contacts: Jamie D. Shutler (j.d.shutler@exeter.ac.uk) and Daniel J. Ford (d.ford@exeter.ac.uk)
The FluxEngine is an open source atmosphere-ocean gas flux data processing toolbox. The toolbox has so far contributed to 23 different journal publications, resulting in 6 press releases, has contributed to 3 completed PhDs, has been used within 7 UK and EU research projects, and 5 European Space Agency research projects, and it has been used in undergraduate and masters level teaching (in the UK and Europe) including ICOS and IOCCP training. This work collectively identifies and quantifies the importance of the oceans in regulating and storing carbon.
Known issues with v4.1.0
01 Sep 2022 - There is a known error with calculating fluxes using concentration data (thanks Silvie Lainela for finding this error and Tom Holding for identify the work around). With this option you have to set and use conca and concw as the main inputs. But the tools incorrectly request pgas_air and pgas_sw inputs (which are not used in the flux calculation when you use concentration data). To overcome this simply define and pass pgas_air and pgas_sw data as an additional input i.e. create a file containing NaN or 0s and add the information into the configuration file. This will allow the calculations to complete and the pgas data will not be used in the calculation. This error will be fixed in the next release of the fluxengine.
21 June 2024 - A known issue with the netCDF outputs of FluxEngine when running at daily resolution (identified by Daniel Ford). The issue is due to a netCDF global attribute being output incorrectly such that the append2insitu function is unable to correctly attach the output variables to the insitu text file. Currently the data can be extracted and appended manually and this error will be fixed shortly.
Version 4.
v4.1.0 released July 2025 - The SOCAT recalculation update + vectorisation. This release updates the recalculation of the SOCAT functions to be more flexible on the temperature datasets used, and the spatial and temporal resolution of the datasets (and incorporates changes made within the production of the recalculated SOCAT datasets). The approach also updates the temperature sensitivities that can be used to transform SOCAT fCO2sw to different temperature, and incorporates pyCO2sys. pyCO2sys in now a dependency of FluxEngine. Thanks to nguyen-vu-son (and the CO2COAST project), FluxEngine is now vectorised and uses netCDF4 for the saving. Verification runs were all successful, and the University of Exeter Global Carbon Budget submission (UExP-FNN-U) was recalculated with FE 4.1.0 finding differences in the 4-6 decimal place on individual fluxes, and when integrated differences around 0.001-0.01 Pg C yr-1 on the integrated ocean sink (compared to FE 4.0.9.1).
v4.0.9.1 released December 2024 - Update to apply additional fix to the atmospheric fCO2 error. This fix has now been verified against output from pyCO2sys v1.8.3.3, and confirms that FluxEngine is consistent (to 1e-6 uatm).
v4.0.9 released December 2024 - Update to fix a error with the calculation of atmospheric fCO2 when using fCO2sw. This error only affects code where fCO2atm is calculated, and does not affect FluxEngine runs using pCO2sw and pCO2atm.
v4.0.8 released November 2024 - Small update that fixes: 1) Fixes issues in newer version of Python and Numpy due to deprecated functions identified by Sylvain Herlédan (Python now must be 3.0 or greater; Numpy must be 1.20 or greater) 2) the 'settings.xml' file has been updated to be less restrictive of temperature, salinities and fCO2 (these can be edited through config files). 3) A bug identified by Daniel Ford, where the FluxEngine input NetCDF file would remain opened in FluxEngine, causing a HDF error if that file was then opened in a subsequent script in 'append' or 'write' mode, has been fixed. 4) Legacy hardcoded temperature limits have been removed and now respect the setting.xml file. 5) Fixed fe_verify_socat.py for the new setting.xml limits causing the verification to fail.
v4.0.7 released May 2022 - Small update adding flexibility to custom gas transfer velocity parameterisations.
v4.0.2 released July 2020 - released as major FluxEngine v4 release - Small updates for re-analysis tool compatbility with SOCATv2020 release.
v4.0.1 released May 2020.
Version 4.0.9 uses Python 3 (but still contains all of the functionality of FluxEngine v3.0). Version 4.0 is available to install from PyPi (https://pypi.org/project/fluxengine/) or GitHub (https://github.com/oceanflux-ghg/FluxEngine). This update means that the FluxEngine is now a standard Python package and this has simplified the installation process. For example, you can now install the FluxEngine by using the Python Package Installer, pip, using the command 'pip install fluxengine'. Whilst providing this update we also removed some functionality that was no longer needed which resulted in the FluxEngine configuration file format changing slightly and a new commandline tool is provided to update old configuration files (fe_update_config.py). Version 4.0 has been verified against reference runs using SOCATv4 pCO2 and Takahashi et al (2009) data sets, as described in Shutler et al. (2016) http://journals.ametsoc.org/doi/abs/10.1175/JTECH-D-14-00204.1. All results were consistent with those produced using v3.0. The description of all FluxEngine functionality can be found in Shutler et al., (2016) and Holding et al., (2019) https://doi.org/10.5194/os-15-1707-2019 and full documentation/usage instructions are included as a PDF documentation on the GitHub page.
Please reference these journal publications when using this toolbox and presenting its output in any publications.
Recalculated SOCAT datasets
Each year we used the FluxEngine to recalculate the latest version of the Surface Ocean CO2 Atlas (SOCAT) database (https://www.socat.info). We provide this service for free and typically provide links to the recalculated data a few weeks after the new release of the SOCAT database. The original SOCAT data are all sampled from different depths and each measurement is tied to a temperature values, but the sources of the temperature data varies. This makes these data less ideal for global air-sea flux analyses. To enable an accurate air-sea flux calculation they need to be reanalysed to a common depth and temperature dataset. The reanalysed SOCAT data that we provide are all referenced to a common sampling depth and temperature dataset and the pairing between CO2 data and temperature is retained. The tools and methods that perform the recalculation are detailed within the FluxEngine publications. The recaclculated datasets contain the individual cruise version of the SOCAT database and the gridded SOCAT data.
Please read the dataset metadata when using these data and please follow the guidelines in the metadata when referencing and acknowleging their use.
Ford, D. J., Shutler, J. D., Ashton, I., Sims, R. P., & Holding, T. (2025). Recalculated (depth and temperature consistent) surface ocean CO₂ atlas (SOCAT) version 2025 (v0-1) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.15656803
Daniel J. Ford, Jamie D. Shutler, Ian Ashton, Richard P. Sims, & Thomas Holding. (2024). Reanalysed (depth and temperature consistent) surface ocean CO₂ atlas (SOCAT) version 2024 (v1.1) (v1.1) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.13284017
Ford, D. J., Sims, R. P., Shutler, J. D., Ashton, I., & Holding, T. (2023). Reanalysed (depth and temperature consistent) surface ocean CO₂ atlas (SOCAT) version 2023 (Version 2023-0) [Data set]. Zenodo. https://doi.org/10.5281/ZENODO.8229316
Sims, R. P., Ford, D. J., Shutler, J. D., Ashton, I., & Holding, T. (2023). Reanalysed (depth and temperature consistent) surface ocean CO₂ atlas (SOCAT) version 2022 (Version v2022-0) [Data set]. Zenodo. https://doi.org/10.5281/ZENODO.8228586
Sims, R., Holding T, Ashton I, Shutler, J (2021) Reanalysed (depth and temperature consistent) surface ocean CO₂ atlas (SOCAT) version 2021, https://doi.org/10.1594/PANGAEA.939233
Holding T, Ashton I, Shutler, J (2020) Reanalysed (depth and temperature consistent) surface ocean CO₂ atlas (SOCAT) version 2020, ICOS carbon portal, https://doi.org/10.18160/vmt4-4563
Holding T, Ashton I, Shutler, J (2019). Reanalysed (depth and temperature consistent) surface ocean CO₂ atlas (SOCAT) version 2019, Pangaea, https://doi.pangaea.de/10.1594/PANGAEA.905316
Example news articles (resulting from research performed using the FluxEngine)
-
The Guardian (2024) 'Sliver of cool surface water 2mm deep helps oceans absorb CO2, say scientists' https://www.theguardian.com/environment/2024/oct/25/ocean-skin-cool-surface-water-deep-helps-absorb-co2
-
The Daily Mail (2020) 'World's oceans soak up 900 million tonnes of CO2 a year MORE than previously thought — the amount emitted by 2.2 billion petrol cars' https://www.dailymail.co.uk/sciencetech/article-8698067/Worlds-oceans-soak-carbon-previously-thought.html
-
Phys.org (2019) 'Satellites are key to monitoring ocean carbon' https://phys.org/news/2019-11-satellites-key-ocean-carbon.html
-
ESA news (2019), 'Can oceans turn the tide on the climate crisis' https://www.esa.int/Our_Activities/Observing_the_Earth/Can_oceans_turn_the_tide_on_the_climate_crisis
-
The Guardian (2018), 'Invisible scum on sea cuts CO2 exchange with air by up to 50%' https://www.theguardian.com/environment/2018/may/28/invisible-scum-on-sea-cuts-co2-exchange-with-air-by-up-to-50
-
BBC News (2016), 'How Northern European waters soak up carbon dioxide' https://www.bbc.co.uk/news/science-environment-35654938
Animation
A short animation explaining the concepts of atmosphere-ocean gas exchange, why this is important, and what the FluxEngine enables http://due.esrin.esa.int/stse/videos/page_video013.php
Acknowledgements and Funding
The FluxEngine softwar
Related Skills
node-connect
349.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
