Skip to content

V0p3p19c #172

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jan 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 6 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,12 @@ Please refer to the [Docs](https://juliaclimate.github.io/MeshArrays.jl/dev/), [

Some features and related packages:

- visualization : on the sphere, in geographic coordinates, geographic projections
- interaction and animation : via [Pluto.jl](https://plutojl.org) notebooks and [Makie.jl](https://docs.makie.org/dev/) recipes
- support for interpolation to arbitrary geographic coordinates, geospatial statistics, and mapping
- support for accurate derivations of oceanic and atmospheric transports on [climate model grids](https://en.wikipedia.org/wiki/Arakawa_grids)
- particle tracking : trajectories of materials over any supported grid via [IndividualDisplacements.jl](https://github.com/JuliaClimate/IndividualDisplacements.jl)
- handling of model output : read/write [NetCDF](https://en.wikipedia.org/wiki/NetCDF) files, and other formats used in climate sciences
- support for domain decomposition via [NCTiles.jl](https://gaelforget.github.io/NCTiles.jl/stable/) that
- support for [MITgcm](https://mitgcm.readthedocs.io/en/latest/) model ouput via [MITgcm.jl](https://github.com/gaelforget/MITgcm.jl)
- support for [ECCO](https://doi.org/10.5194/gmd-8-3071-2015) ocean estimates via [Climatology.jl](https://github.com/juliaocean/Climatology.jl) and [ECCO.jl](https://github.com/gaelforget/ECCO.jl)
- [interpolation](https://juliaclimate.github.io/MeshArrays.jl/dev/tutorials/geography.html) to arbitrary geographic coordinates, geospatial statistics, geographic projections, ...
- visualization, interaction, and animation via [Pluto.jl](https://plutojl.org) notebooks and [Makie.jl](https://docs.makie.org/dev/) recipes
- accurate derivations for e.g. oceanic currents and atmospheric transports, budgets, ... on global and regional [climate model grids](https://en.wikipedia.org/wiki/Arakawa_grids)
- particle tracking and trajectory computations for fluids and materials over all supported grid via [Drifters.jl](https://github.com/JuliaClimate/Drifters.jl)
- gridded domain decomposition (`Tiles`) and tiled [NetCDF](https://en.wikipedia.org/wiki/NetCDF) files via [NCTiles.jl](https://gaelforget.github.io/NCTiles.jl/stable/)
- support for [MITgcm](https://mitgcm.readthedocs.io/en/latest/) model ouput and [ECCO](https://doi.org/10.5194/gmd-8-3071-2015) ocean estimates via [MITgcm.jl](https://github.com/gaelforget/MITgcm.jl), [Climatology.jl](https://github.com/juliaocean/Climatology.jl), and [ECCO.jl](https://github.com/gaelforget/ECCO.jl)

`MeshArrays.jl` was first introduced in [this presentation](https://youtu.be/RDxAy_zSUvg) at JuliaCon 2018.

Expand Down
4 changes: 1 addition & 3 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,8 @@ makedocs(;
"Get Started" => "start.md",
"Main Features" => "main.md",
"Notebook Tutorials" => "tutorials.md",
"Developer Notebooks" => "dev.md",
"Video Examples" => "videos.md",
"API documentation" => "API.md",
"Miscellaneous" => "detail.md",
"Miscellaneous" => ["detail.md", "videos.md", "dev.md"],
],
authors="gaelforget <[email protected]>",
)
Expand Down
4 changes: 2 additions & 2 deletions docs/src/detail.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## Internal Details
# Internals

Functions like `GridSpec("LLC90")` return a `gcmgrid` struct that contains the basic specification of a global grid. This is not the grid itself -- just a few parameters, ranges, and possibly a path to grid files. A `gcmgrid` is embeded in each `MeshArray` instance for which it provides a blueprint. It specifies how an array collection forms a global mesh and allows e.g. the `exchange` function to dispatch to the appropriate method.

Expand All @@ -8,6 +8,6 @@ Within a `MeshArray`, a whole Earth System Model grid is represented as an array

The [basics tutorial](@ref id_Basics) illustrates how standard operations apply to `MeshArray` like as they do to common `Array`. More specialized functions and distinctive features, such as domain decomposition or plotting maps, are demo'ed in the [geography tutorial](@ref id_Geography) and [vector tutorial](@ref id_Vectors).

## Background
# Background

The origin of `MeshArrays.jl` is rooted in a [Matlab / Octave package](https://gcmfaces.readthedocs.io/en/latest/) called `gcmfaces`, which was introduced in [Forget et al., 2015](http://www.geosci-model-dev.net/8/3071/2015/) (`doi:10.5194/gmd-8-3071-2015`). `GCM` is an acronym for [General Circulation Model](https://en.wikipedia.org/wiki/General_circulation_model), or Global Climate Model, and `faces` can be equivalent to meshes, arrays, facets, or subdomains (these are the elements of `x.f` in a `MeshArray ` instance `x`).
2 changes: 1 addition & 1 deletion docs/src/dev.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

# Developer Notes
# Developer Notebooks

## [JuliaGeo](@id id_JuliaGeo)

Expand Down
4 changes: 2 additions & 2 deletions docs/src/main.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
- vector fields, transports, budgets
- interpolation, distances, collocation
- visualization (via [Makie](http://makie.org/) extension)
- particle tracking via [IndividualDisplacements.jl](https://github.com/JuliaClimate/IndividualDisplacements.jl#readme)
- particle tracking via [Drifters.jl](https://github.com/JuliaClimate/Drifters.jl#readme)

## Summary

Expand Down Expand Up @@ -100,7 +100,7 @@ A simple way to plot a `MeshArray` consists in using the `Makie` extension.

By default, for a `MeshArray` the `heatmap` command plots each elementary array separately. This is illustrated in [Grids](@ref) and in the [Tutorials](@ref). If an interpolation scheme is provided then `heatmap` produces a global map instead. See the [geography tutorial](../tutorials/geography.html) for examples. The [JuliaClimate Notebooks](https://juliaclimate.github.io/GlobalOceanNotebooks/) provide more examples

The [vectors tutorial](../tutorials/vectors.html) illustrates a common Earth System use case -- using gridded flow fields to integrate transports, streamfunctions, budgets, etc. Particle trajectories are readily computed with [IndividualDisplacements.jl](https://github.com/JuliaClimate/IndividualDisplacements.jl) when velocity fields are provided as `MeshArray`s.
The [vectors tutorial](../tutorials/vectors.html) illustrates a common Earth System use case -- using gridded flow fields to integrate transports, streamfunctions, budgets, etc. Particle trajectories are readily computed with [Drifters.jl](https://github.com/JuliaClimate/Drifters.jl) when velocity fields are provided as `MeshArray`s.

The [MITgcm.jl](https://github.com/gaelforget/MITgcm.jl) examples shows how `MeshArrays.jl` can ingest any standard grid from the [MIT general circulation model](https://mitgcm.readthedocs.io/en/latest/?badge=latest).

Expand Down
4 changes: 2 additions & 2 deletions docs/src/videos.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ Another method for interacting with data sets is to use `GLMakie.jl` or `WGLMaki

## Particle Tracking and Modeling

Here we visualize a simulation of particles moving at a fixed depth in the Ocean (300m depth). This uses [IndividualDisplacements.jl](https://github.com/JuliaClimate/IndividualDisplacements.jl), and `MeshArrays.jl` underneath, to simulate particle trajectories.
Here we visualize a simulation of particles moving at a fixed depth in the Ocean (300m depth). This uses [Drifters.jl](https://github.com/JuliaClimate/Drifters.jl), and `MeshArrays.jl` underneath, to simulate particle trajectories.

[![simulated particle movie (300m)](https://user-images.githubusercontent.com/20276764/84767001-b89a4400-af9f-11ea-956f-2e207f892c4f.png)](https://youtu.be/M6vAUtIsIIY)

More examples like this, using Julia to run models, and related work in [JuliaOcean](https://github.com/JuliaOcean) are available in the longer video below.

[![Modeling Marine Ecosystems](https://user-images.githubusercontent.com/20276764/132381907-1ab7d682-ea3d-4db7-b245-3cdb9dd2dcd3.png)](https://www.youtube.com/watch?v=UCIRrXz2ZS0)
[![Modeling Marine Ecosystems](https://user-images.githubusercontent.com/20276764/132381907-1ab7d682-ea3d-4db7-b245-3cdb9dd2dcd3.png)](https://www.youtube.com/watch?v=UCIRrXz2ZS0)
2 changes: 1 addition & 1 deletion examples/vectors.jl
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ md"""## Particle Tracking

Materials and particles that tend to follow ocean currents or atmospheric winds can be analyzed in terms of trajectories. These are simply computed by integrating velocities over time within a [Lagrangian framework](https://en.wikipedia.org/wiki/Lagrangian_and_Eulerian_specification_of_the_flow_field).

When vector fields are represented using [MeshArrays.jl](https://github.com/JuliaClimate/MeshArrays.jl), as done in this tutorial, this is easily done via the [IndividualDisplacements.jl](https://github.com/JuliaClimate/IndividualDisplacements.jl) package as shown in [these examples](https://juliaclimate.github.io/IndividualDisplacements.jl/dev/examples/).
When vector fields are represented using [MeshArrays.jl](https://github.com/JuliaClimate/MeshArrays.jl), as done in this tutorial, this is easily done via the [Drifters.jl](https://github.com/JuliaClimate/Drifters.jl) package as shown in [these examples](https://juliaclimate.github.io/Drifters.jl/dev/examples/).
"""

# ╔═╡ a8ebbe41-1ac8-44da-b8c4-cbfd4d422227
Expand Down
Loading