{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Recommended order for Landlab tutorials\n", "\n", "Note, a paper has been written describing Landlab. It is Open Access, and a link to the PDF is [here](https://www.earth-surf-dynam.net/5/21/2017/esurf-5-21-2017.pdf) \n", "\n", "**We highly recommend reading it before starting on the steps below.**\n", "\n", "Before starting the syllabus, consider reading our very basic [introduction to Python](python_intro/python_intro.ipynb) if you think of yourself as a Python novice.", "\n", "## 1. Format and Outline\n", "You will alternate between reading documentation on the [User Guide](https://landlab.readthedocs.io/en/latest/user_guide/index.html), finding information in the [Reference Manual](https://landlab.readthedocs.io/en/latest/reference/index.html), and working through the tutorials.\n", "\n", "The tutorials are presented as Jupyter notebooks, which contain a mixture of text, images, and code blocks. When you look at the tutorials, don't just read them. Start by clearing the results by selecting \"Kernel ==> Restart & Clear Output,\" then go ahead and try running each code block as you come to it.\n", "\n", "### 1.1 A motivating example\n", "\n", "- [Notebook: Introduction to Landlab: example model of fault-scarp degradation](fault_scarp/landlab-fault-scarp.ipynb)\n", "\n", "### 1.2 Using the Documentation\n", "\n", "The Landlab Reference Manual contains documentation for most functions in the Landlab package. It is the comprehensive counterpart to the anecdotal tutorials.\n", "\n", "- [Notebook: Where to get info](where_to_get_info.ipynb) Then spend some time clicking around in the rest of the [User Guide](https://landlab.readthedocs.io/en/latest/user_guide/index.html) and [Reference Manual](https://landlab.readthedocs.io/en/latest/reference/index.html) to get a sense for what is there. Tip: to find a particular command, click on Index and use your browser's search function to search for a command by name or keyword. For example, look at the [documentation for the LinearDiffuser](https://landlab.readthedocs.io/en/latest/reference/components/diffusion.html) which you just used in the prior tutorial.\n", "\n", "### 1.3 Introduction to the Landlab Grid and Fields\n", "\n", "First, lets look at the [User Guide page on Landlab grids](https://landlab.readthedocs.io/en/latest/user_guide/grid.html). \n", "\n", "- [Notebook: Introduction to the model grid object](grid_object_demo/grid_object_demo.ipynb) Grid topology; how landlab represents data; connectivity of grid elements.\n", "- [Notebook: Introduction to Landlab data fields](fields/working_with_fields.ipynb) How Landlab stores spatial data on the grid; a little on naming conventions.\n", "\n", "Extra credit: Go back to the [Hobley et al. 2017 publication](https://www.earth-surf-dynam.net/5/21/2017/esurf-5-21-2017.html) and identify the ordering conventions of nodes, links, and other grid elements.\n", "\n", "### 1.4 Working with Digital Elevtion Models (DEMs)\n", "\n", "- [Notebook: Reading DEMs into Landlab](reading_dem_into_landlab/reading_dem_into_landlab.ipynb) Getting an ARC ESRI ASCII into Landlab; getting the boundary conditions set right.\n", "\n", "### 1.5 Plotting\n", "\n", "- [Notebook: Introduction to plotting output with Landlab](plotting/landlab-plotting.ipynb) The basics of plotting with Landlab; combining matplotlib and out plots; the all-powerful [``imshow_grid()``](https://landlab.readthedocs.io/en/latest/reference/plot/index.html#landlab.plot.imshow_grid) function.\n", "\n", "### 1.6 Boundary conditions\n", "\n", "- Setting boundary conditions on Landlab grids (several tutorials): How Landlab conceptualises boundary conditions; various ways to interact and work with them.\n", " - [Notebook: Raster perimeter](boundary_conds/set_BCs_on_raster_perimeter.ipynb)\n", " - [Notebook: Based on X-Y values](boundary_conds/set_BCs_from_xy.ipynb)\n", " - [Notebook: Watersheds](boundary_conds/set_watershed_BCs_raster.ipynb)\n", " - [Notebook: Voronoi](boundary_conds/set_BCs_on_voronoi.ipynb)\n", "\n", "### 1.7 Introduction to Components\n", "\n", "- Read the [Task: Component page in the User Guide](https://landlab.readthedocs.io/en/latest/user_guide/components.html)\n", "- [Notebook: Introduction to using the Landlab component library](component_tutorial/component_tutorial.ipynb) The basics of working with and coupling components, using *diffusion*, *stream power*, and a *storm generator* as examples.\n", "\n", "### 1.8 Advanced Grid and Fields: Gradients, Flux-Divergence, Mapping\n", "\n", "In addition to having lots of important information about adjacency of nodes, links, and other grid elements, the Landlab Grid object has a number of built-in functions for calculating quantities like gradients and flux-divergence, and for mapping quantities from nodes to links and so forth. Work through these tutorials to get a sense of this functionality:\n", "\n", "- [Notebook: Using the gradient and flux-divergence functions](gradient_and_divergence/gradient_and_divergence.ipynb) Landlab as solving environment for staggered grid finite difference differential approximations; functions available to help you do this.\n", "- [Notebook: Mapping values from nodes to links](mappers/mappers.ipynb) Options for getting data on links to nodes, nodes to links, etc.; min, max, and mean; upwinding and downwinding schemes; one-to-one, one-to-many, and many-to-one mappings.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }