{"id":22756488,"url":"https://github.com/gher-uliege/diva","last_synced_at":"2026-01-08T15:05:15.846Z","repository":{"id":84768444,"uuid":"80114691","full_name":"gher-uliege/DIVA","owner":"gher-uliege","description":"DIVA (Data-Interpolating Variational Analysis) is a software tool dedicated to the spatial interpolation of in situ data in oceanography.","archived":false,"fork":false,"pushed_at":"2025-01-14T09:59:36.000Z","size":39229,"stargazers_count":40,"open_issues_count":0,"forks_count":9,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-02-05T10:12:40.609Z","etag":null,"topics":["analysis","dataanalysis","emodnet","interpolation","ocean-data","ocean-sciences","oceanography","odv","seadatacloud","seadatanet"],"latest_commit_sha":null,"homepage":"","language":"Fortran","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gher-uliege.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-01-26T12:59:30.000Z","updated_at":"2025-01-14T09:59:40.000Z","dependencies_parsed_at":"2025-01-14T10:47:11.570Z","dependency_job_id":"12c04546-1b5d-4009-a49e-5a3d6542ff21","html_url":"https://github.com/gher-uliege/DIVA","commit_stats":{"total_commits":813,"total_committers":10,"mean_commits":81.3,"dds":0.7318573185731858,"last_synced_commit":"6ab274d0a1a419a6cbc40e5b3b183a49c2df15ef"},"previous_names":["gher-ulg/diva"],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gher-uliege%2FDIVA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gher-uliege%2FDIVA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gher-uliege%2FDIVA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gher-uliege%2FDIVA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gher-uliege","download_url":"https://codeload.github.com/gher-uliege/DIVA/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246290570,"owners_count":20753724,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analysis","dataanalysis","emodnet","interpolation","ocean-data","ocean-sciences","oceanography","odv","seadatacloud","seadatanet"],"created_at":"2024-12-11T07:13:55.400Z","updated_at":"2026-01-08T15:05:15.821Z","avatar_url":"https://github.com/gher-uliege.png","language":"Fortran","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Project Status: Inactive – The project has reached a stable, usable state but is no longer being actively developed; support/maintenance will be provided as time allows.](https://www.repostatus.org/badges/latest/inactive.svg)](https://www.repostatus.org/#inactive)\n[![Build Status](https://travis-ci.org/gher-uliege/DIVA.svg?branch=master)](https://travis-ci.org/gher-uliege/DIVA)\n[![DOI](https://zenodo.org/badge/80114691.svg)](https://zenodo.org/badge/latestdoi/80114691)\n\n![made-with-bash](https://img.shields.io/badge/Made%20with-Bash-1f425f.svg) \n\n\n⚠️⚠️ this original `DIVA` tool will remain available, but will not be further developped. For new features, users are invited to switch to the generalization in N-dimensions [`DIVAnd`](https://github.com/gher-uliege/DIVAnd.jl) using the [`Julia`](julialang.org/) programming language.\n\n# DIVA (Data-Interpolating Variational Analysis)\n\nDIVA allows the spatial interpolation of data (*analysis*) in an optimal way, comparable to *optimal interpolation* (OI). In comparison to OI, it takes into account coastlines, sub-basins and advection. Calculations are highly optimized and rely on a [*finite element*](https://en.wikipedia.org/wiki/Finite_element_method) resolution. \n\nTools to generate the finite element mesh are provided as well as tools to optimize the parameters of the analysis. Quality control of data can be performed and error fields can be calculated. In addition, *detrending* of data is possible. Finally 3D and 4D extensions are included with emphasis on direct computations of climatologies from [Ocean Data View](https://odv.awi.de/) (ODV) spreadsheet files.\n\n![Diva logo](https://cloud.githubusercontent.com/assets/11868914/24106959/c6d8fb44-0d89-11e7-921b-a36fcccf5a21.png)\n\n## Getting started\n\n### Prerequisites\n\n✅ A fortran compiler: [gfortran](https://gcc.gnu.org/wiki/GFortran), [ifort](https://www.intel.com/content/www/us/en/developer/tools/oneapi/fortran-compiler.html), pgf, ...          \n✅ The [NetCDF](https://www.unidata.ucar.edu/software/netcdf/netcdf-4/newdocs/netcdf-f90.html) library for Fortran, needed for the writing of output files.           \n✅ [gnuplot](http://www.gnuplot.info/)[optional] for the creation of graphics.\n\nFor Debian architectures, you can run:\n```bash\nsudo apt-get install -y software-properties-common\t# needed to use add-apt-repository\nsudo add-apt-repository universe  \t                # needed to get netCDF\nsudo apt-get install -y git make                   # needed for the compilation\nsudo apt-get install -y gfortran netcdf-bin libnetcdf-dev libnetcdff-dev\n```\n\n### Installing\n\n1. Download the latest stable [release](https://github.com/gher-ulg/DIVA/releases) and extract the archive:\n```bash\ntar xvf DIVA-4.7.2.tar.gz\n```\nor clone the project and checkout the last version:\n```bash\ngit clone git@github.com:gher-uliege/DIVA.git\ngit checkout v4.7.2\n```\n\n2. Go in the source directory\n```bash\ncd DIVA3D/src/Fortran/\n```\n3. Run the compilation script:\n```bash\nmake\n```\n#### Notes\n- the compiler (by default `gfortran`) and its flags can be modified by editing `Makefile`\n- the netCDF _library_ and _include_ flags are deduced from `nf-config` command, which provides the options with which netCDF was build.     \nThe values can be specified differently (if for example you use a non-standard path) by editing the lines\n```bash\nexport nclib=$(shell nf-config --flibs)\nexport ncinc=$(shell nf-config --fflags)\n```\n\n### Testing\n\nGo in the main execution directory (*divastripped*) and run the tests:\n```bash\ncd ../../divastripped/\ndivatest\ndivatest0\n...\n```\n## How does it work?\n\nDIVA is a software tool developed for gridding in situ data.\nIt uses a _finite-element_ method to solve a variational principle which takes into account:\n 1. the distance between analysis and data (observation constraint),\n 2. the regularity of the analysis (*smoothness* constraint),\n 3. physical laws (behaviour constraint). \n \n ![800px-diva_gridding_canary](https://cloud.githubusercontent.com/assets/11868914/24946939/09c918fc-1f65-11e7-9974-06264c70ec1e.png)\n\nThe advantage of the method over classic interpolation methods is multiple:\n* the coastline are taken into account during the analysis, since the variational principle is solved only in the region covered by the sea. This prevents the information from traveling across boundaries (e.g., peninsula, islands, etc) and then produce artificial mixing between water masses.\n* the numerical cost is not dependent on the number of data, but on the number of degrees of freedom, itself related to the size of the finite-element mesh. \n\n##  How to try DIVA without installing?\n\nIf you are familiar with Ocean Data View [ODV](http://odv.awi.de/) software tool, you can perfom `DIVA` gridding when plotting vertical or horizontal sections, as the other 25000 scientists using ODV.\n\nYou can also use basic DIVA features in a web application [Diva on Web](https://ec.oceanbrowser.net/emodnet/diva.html) if you have your data ready in a simple three-column ascii file or ODV ascii spreadsheet format. \n\n![divaonweb](https://cloud.githubusercontent.com/assets/11868914/24947093/a980dd26-1f65-11e7-8715-f1e50bd69a83.png)\n\n## Related tools \n\n* [`DIVAnd.jl`](https://github.com/gher-uliege/DIVAnd.jl): n-dimensional variational analysis of arbitrarily located observations (written in Julia).\n* [`DIVAndNN.jl`](https://github.com/gher-uliege/DIVAndNN.jl): multivariate DIVAnd using a neural network.\n* [`DIVAnd.py`](https://github.com/gher-uliege/DIVAnd.py) (not developed anymore): the Python interface to `DIVAnd.jl`.\n* [`DivaPythonTools`](https://github.com/gher-uliege/DivaPythonTools): a set of utilies to read, write and plot the content of input or output files used in DIVA.\n\n## Publications \u0026 documents \n\nCheck the [GHER publications](https://orbi.uliege.be/reports?action=1\u0026conjunction_1=AND\u0026field_1=affil\u0026value_1_authority=\u0026value_1=GHER\u0026type=DSO%2FA01\u0026type=DSO%2FA02\u0026type=DSO%2FA03\u0026type=DSO%2FA04\u0026type=DSO%2FA05\u0026type=DSO%2FA99\u0026type=DSO%2FB01\u0026type=DSO%2FB02\u0026year_start=\u0026year_end=\u0026references=\u0026model=none\u0026format=apa\u0026abstract_length=\u0026sort_1=issued_dt%3Adesc\u0026sort_1=author_sort%3Aasc\u0026sort_1=title_sort%3Aasc\u0026output=html\u0026lang_report=en\u0026title=GHER+Publications+) for the most recent updates.\n\n### Articles\n\n#### Theory\n\nBarth, A., Beckers, J.-M., Troupin, C., Alvera-Azcárate, A., and Vandenbulcke, L.: divand-1.0: n-dimensional variational data analysis for ocean observations, Geosci. Model Dev., 7, 225-241, [doi:10.5194/gmd-7-225-2014](https://doi.org/10.5194/gmd-7-225-2014), 2014.\n\nTroupin, C.; Sirjacobs, D.; Rixen, M.; Brasseur, P.; Brankart, J.-M.; Barth, A.; Alvera-Azcárate, A.; Capet, A.; Ouberdous, M.; Lenartz, F.; Toussaint, M.-E. \u0026 Beckers, J.-M. (2012) Generation of analysis and consistent error fields using the Data Interpolating Variational Analysis (Diva). *Ocean Modelling*, **52-53**: 90-101. doi:[10.1016/j.ocemod.2012.05.002](https://doi.org/10.1016/j.ocemod.2012.05.002)\n\nBeckers, J.-M.; Barth, A.; Troupin, C. \u0026 Alvera-Azcárate, A. Some approximate and efficient methods to assess error fields in spatial gridding with DIVA (Data Interpolating Variational Analysis) (2014). *Journal of Atmospheric and Oceanic Technology*,  **31**: 515-530. doi:[10.1175/JTECH-D-13-00130.1](https://doi.org/10.1175/JTECH-D-13-00130.1)\n\n#### Applications \n\nCapet, A.; Troupin, C.; Carstensen, J.; Grégoire, M. \u0026 Beckers, J.-M. Untangling spatial and temporal trends in the variability of the Black Sea Cold Intermediate Layer and mixed Layer Depth using the DIVA detrending procedure (2014). *Ocean Dynamics*, **64**: 315-324. doi:[10.1007/s10236-013-0683-4](https://doi.org/10.1007/s10236-013-0683-4)\n\nTroupin, C.; Machín, F.; Ouberdous, M.; Sirjacobs, D.; Barth, A. \u0026 Beckers, J.-M. High-resolution Climatology of the North-East Atlantic using Data-Interpolating Variational Analysis (Diva) (2010). *Journal of Geophysical Research*, **115**: C08005. doi:[10.1029/2009JC005512](https://doi.org/10.1029/2009JC005512)\n\n### User guide\n\nThe most recent version is available in [PDF](https://github.com/gher-ulg/Diva-User-Guide/raw/master/DivaUserGuide.pdf).\n\n### Posters and presentations\n\nCheck the complete list of documents hosted through the [ULiege Orbi catalogue](http://orbi.ulg.ac.be/orbi-report?query=%28%28affil%3A%22GeoHydrodynamics+and+Environment+Research%22%29+OR+%28affil%3A%22Oc%C3%A9anographie+physique%22%29%29\u0026model=a\u0026format=apa\u0026sort_by0=1\u0026order0=DESC\u0026sort_by1=3\u0026order1=ASC\u0026sort_by2=2\u0026order2=ASC\u0026output=html\u0026language=en\u0026title=GHER+publications).\n\n## Acknowledgments\n\nThe DIVA development has received funding from:\n- the European Union Sixth Framework Programme (FP6/2002-2006) under grant agreement n° 026212, [SeaDataNet](http://www.seadatanet.org/), \n- the Seventh Framework Programme (FP7/2007-2013) under grant agreement n° 283607, SeaDataNet II, \n- SeaDataCloud and \n- [EMODNet](http://www.emodnet.eu/) (MARE/2008/03 - Lot 3 Chemistry - SI2.531432) from the [Directorate-General for Maritime Affairs and Fisheries](http://ec.europa.eu/dgs/maritimeaffairs_fisheries/index_en.htm).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgher-uliege%2Fdiva","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgher-uliege%2Fdiva","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgher-uliege%2Fdiva/lists"}