@article{Harris2020,
   abstract = {Array programming provides a powerful, compact and expressive syntax for accessing, manipulating and operating on data in vectors, matrices and higher-dimensional arrays. NumPy is the primary array programming library for the Python language. It has an essential role in research analysis pipelines in fields as diverse as physics, chemistry, astronomy, geoscience, biology, psychology, materials science, engineering, finance and economics. For example, in astronomy, NumPy was an important part of the software stack used in the discovery of gravitational waves1 and in the first imaging of a black hole2. Here we review how a few fundamental array concepts lead to a simple and powerful programming paradigm for organizing, exploring and analysing scientific data. NumPy is the foundation upon which the scientific Python ecosystem is constructed. It is so pervasive that several projects, targeting audiences with specialized needs, have developed their own NumPy-like interfaces and array objects. Owing to its central position in the ecosystem, NumPy increasingly acts as an interoperability layer between such array computation libraries and, together with its application programming interface (API), provides a flexible framework to support the next decade of scientific and industrial analysis. NumPy is the primary array programming library for Python; here its fundamental concepts are reviewed and its evolution into a flexible interoperability layer between increasingly specialized computational libraries is discussed.},
   author = {Charles R. Harris and K. Jarrod Millman and Stéfan J. van der Walt and Ralf Gommers and Pauli Virtanen and David Cournapeau and Eric Wieser and Julian Taylor and Sebastian Berg and Nathaniel J. Smith and Robert Kern and Matti Picus and Stephan Hoyer and Marten H. van Kerkwijk and Matthew Brett and Allan Haldane and Jaime Fernández del Río and Mark Wiebe and Pearu Peterson and Pierre Gérard-Marchant and Kevin Sheppard and Tyler Reddy and Warren Weckesser and Hameer Abbasi and Christoph Gohlke and Travis E. Oliphant},
   doi = {10.1038/s41586-020-2649-2},
   issn = {1476-4687},
   issue = {7825},
   journal = {Nature 2020 585:7825},
   keywords = {Computational neuroscience,Computational science,Computer science,Software,Solar physics},
   month = {9},
   pages = {357-362},
   pmid = {32939066},
   publisher = {Nature Publishing Group},
   title = {Array programming with NumPy},
   volume = {585},
   url = {https://www.nature.com/articles/s41586-020-2649-2},
   year = {2020},
}
@article{Almansi2019,
   author = {Mattia Almansi and Renske Gelderloos and Thomas W. N. Haine and Atousa Saberi and Ali H. Siddiqui},
   doi = {10.21105/JOSS.01506},
   issn = {2475-9066},
   issue = {39},
   journal = {Journal of Open Source Software},
   month = {7},
   pages = {1506},
   publisher = {The Open Journal},
   title = {OceanSpy: A {Python} package to facilitate ocean model data analysis and visualization},
   volume = {4},
   url = {https://joss.theoj.org/papers/10.21105/joss.01506},
   year = {2019},
}
@article{Forget2015,
   abstract = {This paper presents the ECCO v4 non-linear inverse modeling framework and its baseline solution for the evolving ocean state over the period 1992-2011. Both components are publicly available and subjected to regular, automated regression tests. The modeling framework includes sets of global conformal grids, a global model setup, implementations of data constraints and control parameters, an interface to algorithmic differentiation, as well as a grid-independent, fully capable Matlab toolbox. The baseline ECCO v4 solution is a dynamically consistent ocean state estimate without unidentified sources of heat and buoyancy, which any interested user will be able to reproduce accurately. The solution is an acceptable fit to most data and has been found to be physically plausible in many respects, as documented here and in related publications. Users are being provided with capabilities to assess model-data misfits for themselves. The synergy between modeling and data synthesis is asserted through the joint presentation of the modeling framework and the state estimate. In particular, the inverse estimate of parameterized physics was instrumental in improving the fit to the observed hydrography, and becomes an integral part of the ocean model setup available for general use. More generally, a first assessment of the relative importance of external, parametric and structural model errors is presented. Parametric and external model uncertainties appear to be of comparable importance and dominate over structural model uncertainty. The results generally underline the importance of including turbulent transport parameters in the inverse problem.},
   author = {G. Forget and J. M. Campin and P. Heimbach and C. N. Hill and R. M. Ponte and C. Wunsch},
   doi = {10.5194/GMD-8-3071-2015},
   issn = {19919603},
   issue = {10},
   journal = {Geoscientific Model Development},
   month = {10},
   pages = {3071-3104},
   publisher = {Copernicus GmbH},
   title = {ECCO version 4: An integrated framework for non-linear inverse modeling and global ocean state estimation},
   volume = {8},
   year = {2015},
}
@article{oceanparcel,
   abstract = {With the increasing number of data produced by numerical ocean models, so increases the need for efficient tools to analyse these data. One of these tools is Lagrangian ocean analysis, where a set of virtual particles is released and their dynamics are integrated in time based on fields defining the ocean state, including the hydrodynamics and biogeochemistry if available. This popular methodology needs to adapt to the large variety of models producing these fields at different formats. This is precisely the aim of Parcels, a Lagrangian ocean analysis framework designed to combine (1) a wide flexibility to model particles of different natures and (2) an efficient implementation in accordance with modern computing infrastructure. In the new Parcels v2.0, we implement a set of interpolation schemes to read various types of discretized fields, from rectilinear to curvilinear grids in the horizontal direction, from z to s levels in the vertical direction and using grid staggering with the Arakawa A, B and C grids. In particular, we develop a new interpolation scheme for a threedimensional curvilinear C grid and analyse its properties. Parcels v2.0 capabilities, including a suite of meta-field objects, are then illustrated in a brief study of the distribution of floating microplastic in the northwest European continental shelf and its sensitivity to various physical processes.},
   author = {Philippe Delandmeter and Erik Van Sebille},
   doi = {10.5194/GMD-12-3571-2019},
   issn = {19919603},
   issue = {8},
   journal = {Geoscientific Model Development},
   month = {8},
   pages = {3571-3584},
   publisher = {Copernicus GmbH},
   title = {The {Parcels} v2.0 {Lagrangian} framework: New field interpolation schemes},
   volume = {12},
   year = {2019},
}
@article{Hoyer2017,
   abstract = {xarray is an open source project and Python package that provides a toolkit and data structures for N-dimensional labeled arrays. Our approach combines an application programing interface (API) inspired by pandas with the Common Data Model for self-described scientific data. Key features of the xarray package include label-based indexing and arithmetic, interoperability with the core scientific Python packages (e.g., pandas, NumPy, Matplotlib), out-of-core computation on datasets that don’t fit into memory, a wide range of serialization and input/output (I/O) options, and advanced multi-dimensional data manipulation tools such as group-by and resampling. xarray, as a data model and analytics toolkit, has been widely adopted in the geoscience community but is also used more broadly for multi-dimensional data analysis in physics, machine learning and finance.},
   author = {Stephan Hoyer and Joseph J Hamman},
   doi = {10.5334/JORS.148},
   issn = {2049-9647},
   issue = {1},
   journal = {Journal of Open Research Software},
   keywords = {Python,data,data analysis,data handling,multidimensional,netCDF,pandas},
   month = {4},
   pages = {10},
   publisher = {Ubiquity Press},
   title = {xarray: N-D labeled {Arrays} and {Datasets} in {Python}},
   volume = {5},
   url = {https://openresearchsoftware.metajnl.com/articles/10.5334/jors.148},
   year = {2017},
}
@article{Virtanen2020,
   abstract = {SciPy is an open-source scientific computing library for the Python programming language. Since its initial release in 2001, SciPy has become a de facto standard for leveraging scientific algorithms in Python, with over 600 unique code contributors, thousands of dependent packages, over 100,000 dependent repositories and millions of downloads per year. In this work, we provide an overview of the capabilities and development practices of SciPy 1.0 and highlight some recent technical developments. This Perspective describes the development and capabilities of SciPy 1.0, an open source scientific computing library for the Python programming language.},
   author = {Pauli Virtanen and Ralf Gommers and Travis E. Oliphant and Matt Haberland and Tyler Reddy and David Cournapeau and Evgeni Burovski and Pearu Peterson and Warren Weckesser and Jonathan Bright and Stéfan J. van der Walt and Matthew Brett and Joshua Wilson and K. Jarrod Millman and Nikolay Mayorov and Andrew R.J. Nelson and Eric Jones and Robert Kern and Eric Larson and C. J. Carey and İlhan Polat and Yu Feng and Eric W. Moore and Jake VanderPlas and Denis Laxalde and Josef Perktold and Robert Cimrman and Ian Henriksen and E. A. Quintero and Charles R. Harris and Anne M. Archibald and Antônio H. Ribeiro and Fabian Pedregosa and Paul van Mulbregt and Aditya Vijaykumar and Alessandro Pietro Bardelli and Alex Rothberg and Andreas Hilboll and Andreas Kloeckner and Anthony Scopatz and Antony Lee and Ariel Rokem and C. Nathan Woods and Chad Fulton and Charles Masson and Christian Häggström and Clark Fitzgerald and David A. Nicholson and David R. Hagen and Dmitrii V. Pasechnik and Emanuele Olivetti and Eric Martin and Eric Wieser and Fabrice Silva and Felix Lenders and Florian Wilhelm and G. Young and Gavin A. Price and Gert Ludwig Ingold and Gregory E. Allen and Gregory R. Lee and Hervé Audren and Irvin Probst and Jörg P. Dietrich and Jacob Silterra and James T. Webber and Janko Slavič and Joel Nothman and Johannes Buchner and Johannes Kulick and Johannes L. Schönberger and José Vinícius de Miranda Cardoso and Joscha Reimer and Joseph Harrington and Juan Luis Cano Rodríguez and Juan Nunez-Iglesias and Justin Kuczynski and Kevin Tritz and Martin Thoma and Matthew Newville and Matthias Kümmerer and Maximilian Bolingbroke and Michael Tartre and Mikhail Pak and Nathaniel J. Smith and Nikolai Nowaczyk and Nikolay Shebanov and Oleksandr Pavlyk and Per A. Brodtkorb and Perry Lee and Robert T. McGibbon and Roman Feldbauer and Sam Lewis and Sam Tygier and Scott Sievert and Sebastiano Vigna and Stefan Peterson and Surhud More and Tadeusz Pudlik and Takuya Oshima and Thomas J. Pingel and Thomas P. Robitaille and Thomas Spura and Thouis R. Jones and Tim Cera and Tim Leslie and Tiziano Zito and Tom Krauss and Utkarsh Upadhyay and Yaroslav O. Halchenko and Yoshiki Vázquez-Baeza},
   doi = {10.1038/s41592-019-0686-2},
   issn = {1548-7105},
   issue = {3},
   journal = {Nature Methods 2020 17:3},
   keywords = {Biophysical chemistry,Computational biology and bioinformatics,Technology},
   month = {2},
   pages = {261-272},
   pmid = {32015543},
   publisher = {Nature Publishing Group},
   title = {SciPy 1.0: fundamental algorithms for scientific computing in {Python}},
   volume = {17},
   url = {https://www.nature.com/articles/s41592-019-0686-2},
   year = {2020},
}
@article{Lam2015,
   abstract = {Dynamic, interpreted languages, like Python, are attractive for domain-experts and scientists experimenting with new ideas. However, the performance of the interpreter is often a barrier when scaling to larger data sets. This paper presents a just-in-time compiler for Python that focuses in scientific and array-oriented computing. Starting with the simple syntax of Python, Numba compiles a subset of the language into efficient machine code that is comparable in performance to a traditional compiled language. In addition, we share our experience in building a JIT compiler using LLVM[1].},
   author = {Siu Kwan Lam and Antoine Pitrou and Stanley Seibert},
   doi = {10.1145/2833157.2833162},
   isbn = {9781450340052},
   journal = {Proceedings of LLVM-HPC 2015: 2nd Workshop on the LLVM Compiler Infrastructure in HPC - Held in conjunction with SC 2015: The International Conference for High Performance Computing, Networking, Storage and Analysis},
   keywords = {Compiler,LLVM,Performance Keywords LLVM,Python},
   month = {11},
   publisher = {Association for Computing Machinery},
   title = {Numba: A {L}{L}{V}{M}-based {Python} {J}{I}{T} {Compiler}},
   volume = {2015-January},
   url = {https://dl.acm.org/doi/10.1145/2833157.2833162},
   year = {2015},
}
@article{llc4320,
   abstract = {This study discusses the upper-ocean (0-200 m) horizontal wavenumber spectra in the Drake Passage from 13 yr of shipboard ADCP measurements, altimeter data, and a high-resolution numerical simulation. At scales between 10 and 200 km, the ADCP kinetic energy spectra approximately follow a k-3 power law. The observed flows are more energetic at the surface, but the shape of the kinetic energy spectra is independent of depth. These characteristics resemble predictions of isotropic interior quasigeostrophic turbulence. The ratio of across-track to along-track kinetic energy spectra, however, significantly departs from the expectation of isotropic interior quasigeostrophic turbulence. The inconsistency is dramatic at scales smaller than 40 km. A Helmholtz decomposition of the ADCP spectra and analyses of synthetic and numerical model data show that horizontally divergent, ageostrophic flows account for the discrepancy between the observed spectra and predictions of isotropic interior quasigeostrophic turbulence. In Drake Passage, ageostrophic motions appear to be dominated by inertia-gravity waves and account for about half of the near-surface kinetic energy at scales between 10 and 40 km. Model results indicate that ageostrophic flows imprint on the sea surface, accounting for about half of the sea surface height variance between 10 and 40 km.},
   author = {Cesar B. Rocha and Teresa K. Chereskin and Sarah T. Gille and Dimitris Menemenlis},
   doi = {10.1175/JPO-D-15-0087.1},
   issn = {0022-3670},
   issue = {2},
   journal = {Journal of Physical Oceanography},
   keywords = {Atm/Ocean Structure/Phenomena,Eddies,Observational techniques and algorithms,Oceanic mixed layer,Satellite observations,Ship observations,Tides},
   month = {2},
   pages = {601-620},
   publisher = {American Meteorological Society},
   title = {Mesoscale to {Submesoscale} {Wavenumber} {Spectra} in {Drake} {Passage}},
   volume = {46},
   url = {https://journals.ametsoc.org/view/journals/phoc/46/2/jpo-d-15-0087.1.xml},
   year = {2016},
}
@article{Fraser2018,
   abstract = {A realistic numerical model was constructed to simulate the oceanic conditions and circulation in a large southeast Greenland fjord (Kangerdlugssuaq) and the adjacent shelf sea region during winter 2007–2008. The major outlet glaciers in this region recently destabilized, contributing to sea level rise and ocean freshening, with increased oceanic heating a probable trigger. It is not apparent a priori whether the fjord dynamics will be influenced by rotational effects, as the fjord width is comparable to the internal Rossby radius. The modeled currents, however, describe a highly three-dimensional system, where rotational effects are of order-one importance. Along-shelf wind events drive a rapid baroclinic exchange, mediated by coastally trapped waves, which propagate from the shelf to the glacier terminus along the right-hand boundary of the fjord. The terminus was regularly exposed to around 0.5 TW of heating over the winter season. Wave energy dissipation provoked vertical mixing, generating a buoyancy flux which strengthened overturning. The coastally trapped waves also acted to strengthen the cyclonic mean flow via Stokes' drift. Although the outgoing wave was less energetic and located at the opposite sidewall, the fjord did exhibit a resonant response, suggesting that fjords of this scale can also exhibit two-dimensional dynamics. Long periods of moderate wind stress greatly enhanced the cross-shelf delivery of heat toward the fjord, in comparison to stronger events over short intervals. This suggests that the timescale over which the shelf wind field varies is a key parameter in dictating wintertime heat delivery from the ocean to the ice sheet.},
   author = {Neil J. Fraser and Mark E. Inall and Marcello G. Magaldi and Thomas W.N. Haine and Sam C. Jones},
   doi = {10.1029/2018JC014435},
   issn = {2169-9291},
   issue = {12},
   journal = {Journal of Geophysical Research: Oceans},
   keywords = {MITgcm,coastal trapped waves,fjords,internal waves,numerical modeling,ocean warming},
   month = {12},
   pages = {9156-9177},
   publisher = {John Wiley & Sons, Ltd},
   title = {Wintertime {Fjord}-{Shelf} {Interaction} and {Ice} {Sheet} {Melting} in {Southeast} {Greenland}},
   volume = {123},
   url = {https://onlinelibrary.wiley.com/doi/full/10.1029/2018JC014435 https://onlinelibrary.wiley.com/doi/abs/10.1029/2018JC014435 https://agupubs.onlinelibrary.wiley.com/doi/10.1029/2018JC014435},
   year = {2018},
}
@article{sciserver,
   abstract = {We present SciServer, a science platform built and supported by the Institute
for Data Intensive Engineering and Science at the Johns Hopkins University.
SciServer builds upon and extends the SkyServer system of server-side tools
that introduced the astronomical community to SQL (Structured Query Language)
and has been serving the Sloan Digital Sky Survey catalog data to the public.
SciServer uses a Docker/VM based architecture to provide interactive and batch
mode server-side analysis with scripting languages like Python and R in various
environments including Jupyter (notebooks), RStudio and command-line in
addition to traditional SQL-based data analysis. Users have access to private
file storage as well as personal SQL database space. A flexible resource access
control system allows users to share their resources with collaborators, a
feature that has also been very useful in classroom environments. All these
services, wrapped in a layer of REST APIs, constitute a scalable collaborative
data-driven science platform that is attractive to science disciplines beyond
astronomy.},
   author = {M. Taghizadeh-Popp and J. W. Kim and G. Lemson and D. Medvedev and M. J. Raddick and A. S. Szalay and A. R. Thakar and J. Booker and C. Chhetri and L. Dobos and M. Rippin},
   doi = {10.1016/j.ascom.2020.100412},
   issn = {22131337},
   journal = {Astronomy and Computing},
   keywords = {Computing,Data science,Databases,Education,Science platform,Server-side analytics},
   month = {1},
   publisher = {Elsevier B.V.},
   title = {SciServer: a {Science} {Platform} for {Astronomy} and {Beyond}},
   volume = {33},
   url = {https://arxiv.org/abs/2001.08619v2},
   year = {2020},
}
@article{individualdisplacement,
   abstract = {License Authors of papers retain copyright and release the work under a Creative Commons Attribution 4.0 International License (CC BY 4.0). Summary IndividualDisplacements.jl (Gaël Forget, 2021) is focused on computation and analysis of individual displacements across the global climate system. Individuals is used here as a generic term to represent points, particles, parcels, materials, etc that tend to be carried around the Earth by geophysical fluids (via oceanic currents or atmospheric flows for example). Their displacements, or trajectories, are computed by deriving pointwise velocities from flow fields provided by the user and integrating over time (e.g., Figure 1 and Figure 2). This Julia package is notably aimed at the analysis of numerical models that simulate Oceanic and / or Atmospheric transport processes on staggered C-grids-those most often used in both regional and global modeling. Inter-operability with global climate model grids like the cube-sphere and lat-lon-cap grid (e.g., G. Forget et al., 2015) is a key feature enabled by MeshArrays.jl (JuliaCon 2018 (video link), Gaël Forget et al., 2020). The chosen approach also readily supports simpler grids (cartesian, spherical, curvilinear grids) often used in process-oriented models, regional models, or satellite data products. 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 interpretabil-ity, 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},
   author = {Gael Forget},
   doi = {10.21105/JOSS.02813},
   issn = {2475-9066},
   issue = {60},
   journal = {Journal of Open Source Software},
   month = {4},
   pages = {2813},
   publisher = {The Open Journal},
   title = {IndividualDisplacements.jl: a {Julia} package to simulate and study particle displacements within the climate system},
   volume = {6},
   url = {https://joss.theoj.org/papers/10.21105/joss.02813},
   year = {2021},
}
@article{mitgcm,
   author = {John Marshall and Alistair Adcroft and Chris Hill and Lev Perelman and Curt Heisey},
   doi = {10.1029/96JC02775},
   issn = {01480227},
   issue = {C3},
   journal = {Journal of Geophysical Research: Oceans},
   month = {3},
   pages = {5753-5766},
   title = {A finite-volume, incompressible {Navier} {Stokes} model for studies of the ocean on parallel computers},
   volume = {102},
   year = {1997},
}
@software{xesmf,
  author       = {Jiawei Zhuang and
                  raphael dussin and
                  David Huard and
                  Pascal Bourgault and
                  Anderson Banihirwe and
                  Stephane Raynaud and
                  Brewster Malevich and
                  Martin Schupfner and
                  Filipe and
                  Sam Levang and
                  Charles Gauthier and
                  André Jüling and
                  Mattia Almansi and
                  RichardScottOZ and
                  RondeauG and
                  Stephan Rasp and
                  Trevor James Smith and
                  Jemma Stachelek and
                  Matthew Plough and
                  Pierre and
                  Ray Bell and
                  Romain Caneill and
                  Xianxiang Li},
  title        = {pangeo-data/xESMF: v0.8.2},
  month        = sep,
  year         = 2023,
  publisher    = {Zenodo},
  version      = {v0.8.2},
  doi          = {10.5281/zenodo.8356796},
  url          = {https://doi.org/10.5281/zenodo.8356796}
}
@software{tracmass,
  author       = {Aldama-Campino, Aitor and
                  Döös, Kristofer and
                  Kjellsson, Joakim and
                  Jönsson, Bror},
  title        = {TRACMASS: Formal release of version 7.0},
  month        = dec,
  year         = 2020,
  publisher    = {Zenodo},
  version      = {v7.0-beta},
  doi          = {10.5281/zenodo.4337926},
  url          = {https://doi.org/10.5281/zenodo.4337926}
}
