Skip to content

Commit 830772b

Browse files
reint-fischerreint-fischer
authored andcommitted
update explanation
1 parent f915d4d commit 830772b

8 files changed

Lines changed: 2217 additions & 45 deletions

File tree

docs/getting_started/explanation_concepts.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ kernelspec:
88
Parcels is a set of Python classes and methods to create particle tracking simulations. Here, we will explain the basic concepts defined by the most important classes and functions. This overview can be useful to start understanding the names for different components we use in Parcels, and to structure and make appropriate use of the code in a simulation script.
99

1010
A Parcels simulation is generally built up from four different components:
11-
1. [**FieldSet**](#1.-FieldSet). The input dataset of gridded fields (e.g. ocean current velocity, temperature) in which virtual particles are defined.
12-
2. [**ParticleSet**](#2.-ParticleSet). The dataset of virtual particles. These always contain time, z, lat, and lon, for which initial values must be defined, and may contain other variables.
13-
3. [**Kernels**](#3.-Kernels). Kernels perform some specific operation on the particles every time step (e.g. interpolate the temperature from the temperature field to the particle location).
14-
4. [**Execute**](#4.-Execution). Execute the simulation. The core method which integrates the operations defined in Kernels for a given time and timestep, and writes output to a ParticleFile.
11+
1. [**FieldSet**](#1-fieldset). The input dataset of gridded fields (e.g. ocean current velocity, temperature) in which virtual particles are defined.
12+
2. [**ParticleSet**](#2-particleset). The dataset of virtual particles. These always contain time, z, lat, and lon, for which initial values must be defined, and may contain other variables.
13+
3. [**Kernels**](#3-kernels). Kernels perform some specific operation on the particles every time step (e.g. interpolate the temperature from the temperature field to the particle location).
14+
4. [**Execute**](#4-execution). Execute the simulation. The core method which integrates the operations defined in Kernels for a given time and timestep, and writes output to a ParticleFile.
1515

1616
We discuss each component in more detail below and link to more detailed [how-to guides](../user_guide/index.md) and the full list of classes and methods in the [API reference](../reference.md). If you want to learn by doing, check out the [quickstart tutorial](./tutorial_quickstart.md) to start creating your first Parcels simulation.
1717

18-
![png](images/parcels_user_diagram.png)
18+
![png](../user_guide/explanations/images/parcels_user_diagram.png)
1919

2020
## 1. FieldSet
2121

docs/getting_started/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ Getting started with parcels is easy; here you will find:
66
:maxdepth: 1
77
Installation guide <installation.md>
88
Quickstart tutorial <tutorial_quickstart.md>
9-
Parcels concepts explainer <concepts_overview.md>
109
Simple output tutorial <tutorial_output.ipynb>
10+
Parcels concepts explanation <explanation_concepts.md>
1111
1212
```
1313

docs/user_guide/examples_v3/tutorial_parcels_structure.ipynb

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,7 @@
2323
"cell_type": "markdown",
2424
"metadata": {},
2525
"source": [
26-
"1. [**FieldSet**](#1.-FieldSet). Load and set up the fields. These can be velocity fields that are used to advect the particles, but it can also be e.g. temperature.\n",
27-
"2. [**ParticleSet**](#2.-ParticleSet). Define the type of particles. Also additional `Variables` can be added to the particles (e.g. temperature, to keep track of the temperature that particles experience).\n",
28-
"3. [**Kernels**](#3.-Kernels). Kernels perform some specific operation on the particles every time step (e.g. interpolate the temperature from the temperature field to the particle location).\n",
29-
"4. [**Execution and output**](#4.-Execution-and-Output). Execute the simulation and write and store the output in a Zarr file.\n",
26+
"\n",
3027
"5. [**Optimising and parallelising**](#5.-Optimising-and-parallelising). Optimise and parallelise the code to run faster.\n",
3128
"\n",
3229
"We discuss each component in more detail below.\n",
@@ -47,7 +44,7 @@
4744
"cell_type": "markdown",
4845
"metadata": {},
4946
"source": [
50-
"Parcels provides a framework to simulate the movement of particles **within an existing flow field environment**. To start a parcels simulation we must define this environment with the `FieldSet` class. The minimal requirements for this Fieldset are that it must contain the `'U'` and `'V'` fields: the 2D hydrodynamic data that will move the particles in a horizontal direction. Additionally, it can contain e.g. a temperature or vertical flow field.\n"
47+
"Parcels provides a framework to simulate the movement of particles **within an existing flow field environment**. To start a parcels simulation we must define this environment with the `FieldSet` class. The minimal requirements for this Fieldset are that it must contain the `'U'` and `'V'` fields: the 2D hydrodynamic data that will move the particles in a horizontal direction. Additionally, it can contain e.g. a temperature or vertical flow field."
5148
]
5249
},
5350
{
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Grids
2+
3+
Parcels `Field` objects exist on a (structured) `parcels.XGrid` or (unstructured) `parcels.UXgrid`. Here we describe these grids on a conceptual level.
4+
5+
```{note}
6+
The contents for this page are still under development in v4.
7+
TODO
8+
- link to xgcm.Grid documentation
9+
- adapt from v3 grid indexing tutorial (../examples_v3/documentation_indexing.ipynb)
10+
```

docs/user_guide/explanations/explanation_interpolation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Interpolator explanation
1+
# Interpolators
22

33
Interpolation is an important functionality of Parcels. On this page we will discuss the way it is
44
implemented in **Parcels** and how to write a custom interpolator function.
-28.6 KB
Loading

docs/user_guide/how-to-guides/images/parcels_user_diagram.svg

Lines changed: 2170 additions & 3 deletions
Loading

docs/user_guide/index.md

Lines changed: 28 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ The tutorials written for Parcels v3 are currently being updated for Parcels v4.
1111

1212
- [Quickstart Tutorial](../getting_started/tutorial_quickstart.md)
1313
- [Output Tutorial](../getting_started/tutorial_output.ipynb)
14-
- [Concepts Overview](../getting_started/concepts_overview.md)
14+
- [Concepts Explanation](../getting_started/explanation_concepts.md)
1515

1616
## How to
1717

@@ -22,67 +22,65 @@ The tutorials written for Parcels v3 are currently being updated for Parcels v4.
2222
```{toctree}
2323
:caption: Set up FieldSets
2424
:titlesonly:
25-
26-
examples/tutorial_nemo_curvilinear.ipynb
27-
examples/tutorial_unitconverters.ipynb
25+
how-to-guides/tutorial_nemo_curvilinear.ipynb
26+
how-to-guides/tutorial_unitconverters.ipynb
27+
explanations/explanation_grids.md
2828
```
2929

30-
<!-- examples/documentation_indexing.ipynb -->
31-
<!-- examples/tutorial_nemo_3D.ipynb -->
32-
<!-- examples/tutorial_croco_3D.ipynb -->
33-
<!-- examples/tutorial_timevaryingdepthdimensions.ipynb -->
34-
<!-- examples/tutorial_periodic_boundaries.ipynb -->
35-
<!-- examples/tutorial_interpolation.ipynb -->
30+
<!-- how-to-guides/documentation_indexing.ipynb -->
31+
<!-- how-to-guides/tutorial_nemo_3D.ipynb -->
32+
<!-- how-to-guides/tutorial_croco_3D.ipynb -->
33+
<!-- how-to-guides/tutorial_timevaryingdepthdimensions.ipynb -->
3634

3735
```{toctree}
3836
:caption: Create ParticleSets
3937
:titlesonly:
40-
examples/tutorial_delaystart.ipynb
38+
how-to-guides/tutorial_delaystart.ipynb
4139
```
4240

4341
```{toctree}
4442
:caption: Write Kernels
4543
:titlesonly:
4644
47-
examples/explanation_kernelloop.md
48-
examples/tutorial_sampling.ipynb
49-
examples/tutorial_statuscodes.ipynb
50-
examples/tutorial_gsw_density.ipynb
51-
examples/tutorial_Argofloats.ipynb
45+
explanations/explanation_kernelloop.md
46+
how-to-guides/tutorial_sampling.ipynb
47+
how-to-guides/tutorial_statuscodes.ipynb
48+
how-to-guides/tutorial_gsw_density.ipynb
49+
how-to-guides/tutorial_Argofloats.ipynb
5250
```
5351

5452
```{toctree}
5553
:caption: Set interpolation method
5654
:titlesonly:
5755
58-
examples/explanation_interpolation.md
59-
examples/tutorial_interpolation.ipynb
56+
explanations/explanation_interpolation.md
57+
how-to-guides/tutorial_interpolation.ipynb
6058
```
6159

62-
<!-- examples/tutorial_diffusion.ipynb -->
63-
<!-- examples/tutorial_particle_field_interaction.ipynb -->
64-
<!-- examples/tutorial_interaction.ipynb -->
65-
<!-- examples/tutorial_analyticaladvection.ipynb -->
66-
<!-- examples/tutorial_kernelloop.ipynb -->
60+
<!-- how-to-guides/tutorial_diffusion.ipynb -->
61+
<!-- how-to-guides/tutorial_particle_field_interaction.ipynb -->
62+
<!-- how-to-guides/tutorial_interaction.ipynb -->
63+
<!-- how-to-guides/tutorial_analyticaladvection.ipynb -->
64+
<!-- how-to-guides/tutorial_kernelloop.ipynb -->
6765

6866
```{toctree}
6967
:caption: Other tutorials
7068
:name: tutorial-other
7169
7270
```
7371

74-
<!-- examples/tutorial_peninsula_AvsCgrid.ipynb -->
75-
<!-- examples/documentation_stuck_particles.ipynb -->
76-
<!-- examples/documentation_unstuck_Agrid.ipynb -->
77-
<!-- examples/documentation_LargeRunsOutput.ipynb -->
78-
<!-- examples/documentation_geospatial.ipynb -->
79-
<!-- examples/documentation_advanced_zarr.ipynb -->
72+
<!-- how-to-guides/tutorial_peninsula_AvsCgrid.ipynb -->
73+
<!-- how-to-guides/documentation_stuck_particles.ipynb -->
74+
<!-- how-to-guides/documentation_unstuck_Agrid.ipynb -->
75+
<!-- how-to-guides/documentation_LargeRunsOutput.ipynb -->
76+
<!-- how-to-guides/documentation_geospatial.ipynb -->
77+
<!-- how-to-guides/documentation_advanced_zarr.ipynb -->
8078

8179
```{toctree}
8280
:caption: Worked examples
8381
```
8482

85-
<!-- examples/documentation_homepage_animation.ipynb -->
83+
<!-- how-to-guides/documentation_homepage_animation.ipynb -->
8684

8785
```{toctree}
8886
:hidden:

0 commit comments

Comments
 (0)