Speeding-up data analysis: DIVAnd interpolation tool in the Virtual Research Environment
Authors: Troupin Charles , Barth Alexander , Buurman Merret , Mieruch Sebastian , Bruvry Lagadec Léo , Zamani Themis , Thijsse Peter 
Published: March 2020

&lt;p&gt;A typical hurdle faced by scientists when it comes to process data is the installation and maintenance of software tools: the installation procedures are sometimes poorly documented, while there is often several dependencies that may create incompatibilities issues. In order to make easier the life of scientists and experts, a &lt;em&gt;Virtual Research Environment&lt;/em&gt; (VRE) is being developed in the frame of SeaDataCloud project.&lt;/p&gt;&lt;p&gt;The goal is to provide them with a computing environment where the tools are already deployed and datasets are available for direct processing. In the context of SeaDataCloud, the tools are:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;WebODV, able to perform data reading, quality check, subsetting, among many other possibilities.&lt;/li&gt;
&lt;li&gt;DIVAnd, for the spatial interpolation of in situ measurements.&lt;/li&gt;
&lt;li&gt;A visualisation toolbox for both the input data and the output, gridded fields.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;DIVAnd&amp;#160;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;DIVAnd (Data-Interpolating Variational Analysis in n dimensions) is a software tool designed to&amp;#160; generate a set of gridded fields from in situ observations. The code is written in Julia a high-performance programming language (https://julialang.org/), particularly suitable for the processing of large matrices.&amp;#160;&lt;/p&gt;&lt;p&gt;The code, developed and improved on a regular basis, is distributed via the hosting platform GitHub: https://github.com/gher-ulg/DIVAnd.jl. It supports Julia-1.0 since its version 2.1.0 (September 2018).&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Notebooks&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Along with the source code, a set of jupyter-notebooks describing the different steps for the production of a climatology are provided, with an increasing level of complexity: https://github.com/gher-ulg/Diva-Workshops/tree/master/notebooks.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Deployment in the VRE&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;JupyterHub (https://jupyter.org/hub), is a multiple-user instance of jupyter notebooks. It has proven an adequate solution to allow several users to work simultaneously with the DIVAnd tool and it offers different ways to isolate the users. The approach selected in the frame of this project is the Docker containers, in which the software tools, as well as their dependencies, are stored. This solution allows multiple copies of a container to be run efficiently in a system and also makes it easier to perform the deployment in the VRE. The authentication step is also managed by JupyterHub.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Docker container&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The Docker container is distributed via Docker Hub (https://hub.docker.com/r/abarth/divand-jupyterhub) and includes the installation of:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The Julia language (currently version 1.3.1);&lt;/li&gt;
&lt;li&gt;Libraries and tools such as netCDF, unzip, git;&lt;/li&gt;
&lt;li&gt;Various Julia packages such as PyPlot (plotting library), NCDatasets (manipulation of netCDF files) and DIVAnd.jl.&lt;/li&gt;
&lt;li&gt;The most recent version of the DIVAnd notebooks.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;All in all, Docker allows one to provide a standardized computing environment to all users and helped significantly the development of the VRE.&lt;/p&gt;