Skip to content

Commit

Permalink
Merge pull request #72 from kyleniemeyer/patch-2
Browse files Browse the repository at this point in the history
Additional fixes to citations in JOSS paper

Former-commit-id: 738d32d
Former-commit-id: 1094cc889dc48cd7845ae24a1be4644400d806db
  • Loading branch information
gaelforget authored Apr 15, 2021
2 parents 6fe6486 + 40866cc commit 7ceffc9
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions docs/joss/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ This Julia package is notably aimed at the analysis of numerical models that sim

`IndividualDisplacements.jl` is thus readily suited to exploit climate model output and other gridded data sets in research projects that involve, for example, tracking plankton communities, heat storage, or plastic garbage patches within the Ocean; or dust, water, or chemical compounds within the Atmosphere. To achieve generality and interpretability, `IndividualDisplacements.jl` first defines two data structures (`FlowFields` and `Individuals`) that allow for simple, flexible user specifications of flow fields, initial positions, etc. It then adds a high-level API such that integrating trajectories for individuals $\mathit{I}$ amounts to a single function call, $\int!\,(\,\mathit{I}\,)$.

Internally, the package currently employs `OrdinaryDiffEq.jl` to integrate particle motions over time (within the $\int!\,(\,\mathit{I}\,)$ function call), `NetCDF.jl` and `CSV.jl` for I/O, and `DataFrames.jl` for diagnostics computed along particle trajectories (within $\int!\,(\,\mathit{I}\,)$ or afterwards). The initial test suite [see @IndividualDisplacementsFeb2021] is based not only on idealized flow fields and toy-models, but also on data-constrained Ocean simulations from the OCCA/ECCO projects [@Forget2010, @gmd-8-3071-2015, @Forget2018setup], which are also used in marine ecosystem simulations in CBIOMES [@cbiomes2019]. The OCCA/ECCO gridded ocean circulation estimates are retrieved from a permanent dataverse archive [@OCCAdataverse,@Forget2016dataverse] automatically via the Julia Artifacts system.
Internally, the package currently employs `OrdinaryDiffEq.jl` to integrate particle motions over time (within the $\int!\,(\,\mathit{I}\,)$ function call), `NetCDF.jl` and `CSV.jl` for I/O, and `DataFrames.jl` for diagnostics computed along particle trajectories (within $\int!\,(\,\mathit{I}\,)$ or afterwards). The initial test suite [see @IndividualDisplacementsFeb2021] is based not only on idealized flow fields and toy-models, but also on data-constrained Ocean simulations from the OCCA/ECCO projects [@Forget2010; @gmd-8-3071-2015; @Forget2018setup], which are also used in marine ecosystem simulations in CBIOMES [@cbiomes2019]. The OCCA/ECCO gridded ocean circulation estimates are retrieved from a permanent dataverse archive [@OCCAdataverse; @Forget2016dataverse] automatically via the Julia Artifacts system.

`IndividualDisplacements.jl` is also intended to facilitate research involving model-data comparison, data assimilation, or machine learning by providing basic interfaces to other displacement data sets. To start the package provides some support for ingesting (1) data collected in the field by the Global Ocean Drifter Program and Argo array of drifting buoys, and (2) trajectories simulated internally, _online_, by the MIT general circulation model.

Expand All @@ -48,15 +48,15 @@ The examples folder, which is unit tested upon building the documentation hosted

# Statement of need

Lagrangian simulation and analysis frameworks such as `IndividualDisplacements.jl` have been widely used across scientific domains involved with geophysical fluids for decades; see [@FLEXPART, @VanSebille2018] for recent reviews in oceanography or atmospheric sciences. `IndividualDisplacements.jl` is most directly related to the `MITgcm/flt` Fortran package which the author also recently extended [@MITgcm2020]. This new Julia package was in fact partly motivated by a need to provide an easier and simpler alternative to using `MITgcm/flt` in its offline mode in order to handle global grids not readily supported by other packages [@gmd-8-3071-2015, @FltGlobalOceanWorkflow2020, @Rousselet2020].
Lagrangian simulation and analysis frameworks such as `IndividualDisplacements.jl` have been widely used across scientific domains involved with geophysical fluids for decades; see @FLEXPART or @VanSebille2018 for recent reviews in oceanography or atmospheric sciences. `IndividualDisplacements.jl` is most directly related to the `MITgcm/flt` Fortran package which the author also recently extended [@MITgcm2020]. This new Julia package was in fact partly motivated by a need to provide an easier and simpler alternative to using `MITgcm/flt` in its offline mode in order to handle global grids not readily supported by other packages [@gmd-8-3071-2015; @FltGlobalOceanWorkflow2020; @Rousselet2020].

`IndividualDisplacements.jl` notably aims to provide a bridge between the vast community of domain experts, who are typically used to older languages like Fortran, C, Matlab, or Python, and the rapidly growing Julia community and package ecosystem. Julia's native parallelism, GPU support, custom array types, differential programming tools, and plotting libraries indeed all offer great new opportunities for exploiting state of the art HPC climate model simulations and the large data sets that they routinely generate.

The development of `IndividualDisplacements.jl` was motivated not just by our scientific needs and ongoing research projects (see below) but also by the need for more effective tools for climate education, citizen science, and advocacy. In the documentation and examples folder, this is highlighted by the use of unicode in the API, `Pluto.jl` notebooks, and `Makie.jl` animations, which showcase Julia's expressivity and reactivity.

`IndividualDisplacements.jl` readily supports all common `MITgcm` grids and configurations via `MeshArrays.jl` and `MITgcmTools.jl` (incl. Ocean, Atmosphere, sea-ice, bio-geo-chemistry, and ecology). This, by itself, yields a large pool of potential scientific applications and expected users; including via the various ongoing research projects that rely on adjoint-optimized, data-constrained solutions from the OCCA/ECCO projects [@Forget2010, @gmd-8-3071-2015].
`IndividualDisplacements.jl` readily supports all common `MITgcm` grids and configurations via `MeshArrays.jl` and `MITgcmTools.jl` (incl. Ocean, Atmosphere, sea-ice, bio-geo-chemistry, and ecology). This, by itself, yields a large pool of potential scientific applications and expected users; including via the various ongoing research projects that rely on adjoint-optimized, data-constrained solutions from the OCCA/ECCO projects [@Forget2010; @gmd-8-3071-2015].

At this stage, `IndividualDisplacements.jl` is considered production-ready, such that we could immediately start transferring several ongoing research collaborations that use MITgcm and ECCO [@Rousselet2020, @Forget2019] from Fortran to Julia. Extension to other models may start with MERRA2 / MITgcm coupled model runs [@Strobach2020] and near-term applications could also include data assimilation to better simulate plastic garbage patches [@gmd-2020-385].
At this stage, `IndividualDisplacements.jl` is considered production-ready, such that we could immediately start transferring several ongoing research collaborations that use MITgcm and ECCO [@Rousselet2020; @Forget2019] from Fortran to Julia. Extension to other models may start with MERRA2 / MITgcm coupled model runs [@Strobach2020] and near-term applications could also include data assimilation to better simulate plastic garbage patches [@gmd-2020-385].

The documentation of `IndividualDisplacements.jl` is also now considered sufficient for welcoming additional contributors. Integration with Julia packages developed in `JuliaClimate`, `JuliaOcean`, `JuliaGeo`, `JuliaStats`, `JuliaDynamics`, and other relevant organizations is thus expected to intensify moving forward.

Expand Down

0 comments on commit 7ceffc9

Please sign in to comment.