diff --git a/README.md b/README.md index 9600b62..c6d3d04 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/docs/make.jl b/docs/make.jl index ce736ef..c49d512 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -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 ", ) diff --git a/docs/src/detail.md b/docs/src/detail.md index d38a587..0532176 100644 --- a/docs/src/detail.md +++ b/docs/src/detail.md @@ -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. @@ -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`). diff --git a/docs/src/dev.md b/docs/src/dev.md index 522a6cb..ec04284 100644 --- a/docs/src/dev.md +++ b/docs/src/dev.md @@ -1,5 +1,5 @@ -# Developer Notes +# Developer Notebooks ## [JuliaGeo](@id id_JuliaGeo) diff --git a/docs/src/main.md b/docs/src/main.md index e048b4d..ea2dbed 100644 --- a/docs/src/main.md +++ b/docs/src/main.md @@ -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 @@ -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). diff --git a/docs/src/videos.md b/docs/src/videos.md index 5b147c0..32a563b 100644 --- a/docs/src/videos.md +++ b/docs/src/videos.md @@ -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) \ No newline at end of file +[![Modeling Marine Ecosystems](https://user-images.githubusercontent.com/20276764/132381907-1ab7d682-ea3d-4db7-b245-3cdb9dd2dcd3.png)](https://www.youtube.com/watch?v=UCIRrXz2ZS0) diff --git a/examples/vectors.jl b/examples/vectors.jl index bd81e41..34835a3 100644 --- a/examples/vectors.jl +++ b/examples/vectors.jl @@ -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