diff --git a/docs/user_guide/examples/tutorial_dt_integrators.ipynb b/docs/user_guide/examples/tutorial_dt_integrators.ipynb index 828ade76b..d6230ce12 100644 --- a/docs/user_guide/examples/tutorial_dt_integrators.ipynb +++ b/docs/user_guide/examples/tutorial_dt_integrators.ipynb @@ -154,7 +154,7 @@ "\n", "$$\n", "\\begin{aligned}\n", - "\\text{d}t < \\frac{1}{12 * 1.71e-5} = 4.9e3 \\text{ seconds}\n", + "\\text{d}t < \\frac{1}{12 * 1.71 * 10^{-5}} = 4.9* 10^{3} \\text{ seconds}\n", "\\end{aligned}\n", "$$\n", "\n", diff --git a/docs/user_guide/examples/tutorial_interpolation.ipynb b/docs/user_guide/examples/tutorial_interpolation.ipynb index 82f489c40..b64ed72c7 100644 --- a/docs/user_guide/examples/tutorial_interpolation.ipynb +++ b/docs/user_guide/examples/tutorial_interpolation.ipynb @@ -6,9 +6,7 @@ "metadata": {}, "source": [ "# 🖥️ Using `parcels.interpolators`\n", - "Parcels comes with a number of different interpolation methods for tracer fields, such as temperature. Here, we will look at a few common `parcels.interpolators` for structured (`X`) grids, and how to configure them in an idealised example. For more guidance on the sampling of such fields, check out the [sampling tutorial](./tutorial_sampling).\n", - "\n", - "We first import the relevant modules" + "Parcels comes with a number of different interpolation methods for fields on structured (`X`) and unstructured (`Ux`) grids. Here, we will look at a few common {py:obj}`parcels.interpolators` for tracer fiedls, and how to configure them in an idealised example. For more guidance on the sampling of such fields, check out the [sampling tutorial](./tutorial_sampling)." ] }, { @@ -24,6 +22,14 @@ "import parcels" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Interpolators on structured grids\n", + "We will first look at interpolation schemes which work on tracer fields defined on {py:obj}`parcels.XGrid` objects." + ] + }, { "attachments": {}, "cell_type": "markdown", @@ -53,7 +59,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "From this dataset we create a `parcels.FieldSet`. Parcels requires an interpolation method to be set for each `parcels.Field`, which we will later adapt to see the effects of the different interpolators. A common interpolator for fields on structured grids is (tri)linear, implemented in `parcels.interpolators.XLinear`." + "From this dataset we create a {py:obj}`parcels.FieldSet`. Parcels requires an interpolation method to be set for each {py:obj}`parcels.Field`, which we will later adapt to see the effects of the different interpolators. A common interpolator for fields on structured grids is (tri)linear, implemented in {py:obj}`parcels.interpolators.XLinear`." ] }, { @@ -230,15 +236,11 @@ "\n", "In the special case where a `parcels.Field` is constant in time and space, such as implementing constant diffusion on a spherical mesh, we can use:\n", "\n", - "5. `interp_method=parcels.interpolators.XConstantField`: return single value of a Constant Field" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "```{note}\n", - "TODO: link to reference API with all `parcels.interpolators`\n", + "5. `interp_method=parcels.interpolators.XConstantField`: return single value of a Constant Field\n", + "\n", + "```{admonition} [..] API reference\n", + ":class: seealso\n", + "All available interpolation methods are listed here: {py:obj}`parcels.interpolators`\n", "```" ] }, @@ -249,14 +251,14 @@ "### Interpolation at boundaries\n", "In some cases, we need to implement specific boundary conditions, for example to prevent particles from \n", "getting \"stuck\" near land. [This guide](../examples_v3/documentation_unstuck_Agrid.ipynb) describes \n", - "how to implement this in parcels using `parcels.interpolators.XFreeslip` and `parcels.interpolators.XPartialslip`." + "how to implement this in parcels using {py:obj}`parcels.interpolators.XFreeslip` and {py:obj}`parcels.interpolators.XPartialslip`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Interpolation on unstructured grids\n", + "## Interpolators on unstructured grids\n", "Parcels v4 supports the use of general circulation model output that is defined on unstructured grids. We include basic interpolators to help you get started, including\n", "- `UxPiecewiseConstantFace` - this interpolator implements piecewise constant interpolation and is appropriate for data that is registered to the face centers of the unstructured grid\n", "- `UxPiecewiseLinearNode` - this interpolator implements barycentric interpolation and is appropriate for data that is registered to the corner vertices of the unstructured grid faces\n", @@ -280,7 +282,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Next, we create the `Field` and `Fieldset` objects that will be used later in advancing particles. When creating a `Field` or `VectorField` object for unstructured grid data, we attach a `parcels.UxGrid` object and attach an `interp_method` to each object. For data that is defined on face centers, we use the `UxPiecewiseConstantFace` interpolator and for data that is defined on the face vertices, we use the `UxPiecewiseLinearNode` interpolator. In this example, we will look specifically at interpolating a tracer field that is defined by the same underlying analytical function, but is defined on both faces and vertices as separate fields." + "Next, we create the `Field` and `Fieldset` objects that will be used later in advancing particles. When creating a `Field` or `VectorField` object for unstructured grid data, we attach a {py:obj}`parcels.UxGrid` object and attach an `interp_method` to each object. For data that is defined on face centers, we use the `UxPiecewiseConstantFace` interpolator and for data that is defined on the face vertices, we use the `UxPiecewiseLinearNode` interpolator. In this example, we will look specifically at interpolating a tracer field that is defined by the same underlying analytical function, but is defined on both faces and vertices as separate fields." ] }, { @@ -494,7 +496,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "test-notebooks", "language": "python", "name": "python3" }, @@ -508,7 +510,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.11" + "version": "3.13.9" } }, "nbformat": 4,