From 21a88c6ba0d914ce2f95a50831818f25457d13ad Mon Sep 17 00:00:00 2001 From: Anna Petrasova Date: Wed, 1 Oct 2025 10:12:04 -0400 Subject: [PATCH 1/7] New tutorial on new NumPy integration in grass.tools --- .../numpy_integration/fractal_landlab.webp | Bin 0 -> 18206 bytes .../numpy_integration/fractal_numpy.webp | Bin 0 -> 14174 bytes .../numpy_integration/fractal_numpy_abs.webp | Bin 0 -> 17680 bytes .../grass_numpy_integration.qmd | 245 ++++++++++++++++++ .../tutorials/numpy_integration/logos.webp | Bin 0 -> 22720 bytes .../tutorials/numpy_integration/streams.webp | Bin 0 -> 27962 bytes .../numpy_integration/thumbnail.webp | Bin 0 -> 37450 bytes 7 files changed, 245 insertions(+) create mode 100644 content/tutorials/numpy_integration/fractal_landlab.webp create mode 100644 content/tutorials/numpy_integration/fractal_numpy.webp create mode 100644 content/tutorials/numpy_integration/fractal_numpy_abs.webp create mode 100644 content/tutorials/numpy_integration/grass_numpy_integration.qmd create mode 100644 content/tutorials/numpy_integration/logos.webp create mode 100644 content/tutorials/numpy_integration/streams.webp create mode 100644 content/tutorials/numpy_integration/thumbnail.webp diff --git a/content/tutorials/numpy_integration/fractal_landlab.webp b/content/tutorials/numpy_integration/fractal_landlab.webp new file mode 100644 index 0000000000000000000000000000000000000000..29512346d2c70015b304972898ce8d6907dc7343 GIT binary patch literal 18206 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 V?O{O7bgcjY0000000000002rhJU##b literal 0 HcmV?d00001 diff --git a/content/tutorials/numpy_integration/fractal_numpy.webp b/content/tutorials/numpy_integration/fractal_numpy.webp new file mode 100644 index 0000000000000000000000000000000000000000..1e602dc38e0200bb1b1256e6557ce8a42a6b3d12 GIT binary patch literal 14174 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 P)<6IN0000000000%};rr literal 0 HcmV?d00001 diff --git a/content/tutorials/numpy_integration/grass_numpy_integration.qmd b/content/tutorials/numpy_integration/grass_numpy_integration.qmd new file mode 100644 index 0000000..6e478e3 --- /dev/null +++ b/content/tutorials/numpy_integration/grass_numpy_integration.qmd @@ -0,0 +1,245 @@ +--- +title: "Using GRASS, NumPy, and Landlab for Scientific Modeling" +author: "Anna Petrasova" +date: 2025-10-01 +date-modified: today +categories: [NumPy, raster, terrain, intermediate, Landlab, Python, hydrology, matplotlib] +description: > + Learn how to integrate NumPy arrays with GRASS tools + on an example using Landlab modeling framework. +image: thumbnail.webp +format: + ipynb: default + html: + toc: true + code-tools: true + code-copy: true + code-fold: false +engine: jupyter +execute: + eval: false +jupyter: python3 +--- + +# Using GRASS, NumPy, and Landlab for Scientific Modeling + +This short tutorial shows how to integrate NumPy arrays with GRASS tools to create a smooth workflow for scientific modeling and analysis in Python. + +Specifically, it demonstrates a complete workflow: generating a terrain surface in GRASS, importing it into [Landlab](https://landlab.csdms.io/) (an open-source Python library for running numerical models of Earth-surface dynamics), running an erosion model, and then returning the results to GRASS for further hydrologic analysis. + +With the [grass.tools API](https://grass.osgeo.org/grass-devel/manuals/python_intro.html) (introduced in GRASS v8.5), tools can now accept and return NumPy arrays directly, rather than working only with GRASS rasters. While native rasters remain the most efficient option for large-scale processing, NumPy arrays make it easy to connect GRASS with the broader Python scientific ecosystem, enabling advanced analysis and seamless use of familiar libraries. + +::: {.callout-note title="How to run this tutorial?"} + +This tutorial is prepared to be run in a Jupyter notebook locally +or using services such as Google Colab. You can [download the notebook here](grass_numpy_integration.ipynb). + +If you are not sure how to get started with GRASS, checkout the tutorials [Get started with GRASS & Python in Jupyter Notebooks](../get_started/fast_track_grass_and_python.qmd) +and [Get started with GRASS in Google Colab](../get_started/grass_gis_in_google_colab.qmd). + +::: + +![](logos.webp) + +## Generating a fractal surface in GRASS + +First we will import GRASS packages: + + +```{python} +# import standard Python packages +import os +import sys +import subprocess + +sys.path.append( + subprocess.check_output(["grass", "--config", "python_path"], text=True).strip() +) + +# import GRASS python packages +import grass.script as gs +import grass.jupyter as gj +from grass.tools import Tools +``` + +Create a new GRASS project called "landlab". Since we will be working with artifical data, we don't need to +provide any coordinate reference system, resulting in a generic cartesian system. + + +```{python} +gs.create_project("landlab") +``` + +Initialize a session in this project and create a `Tools` object we will use for calling GRASS tools: + + +```{python} +session = gj.init("landlab") +tools = Tools() +``` + + +Since we are generating artificial data, we need to specify the dimensions (number of rows and columns). +We also need to let GRASS know the actual coordinates; we will do that by setting +the [computational region](https://grass.osgeo.org/grass-stable/manuals/g.region.html). Lower-left (south-west) corner of the data will be at the coordinates (0, 0), +the coordinates of the upper-right (nort-east) corner are number of rows times cell resolution and number of columns times cell resolution. + + +```{python} +rows = 200 +cols = 250 +resolution = 10 +tools.g_region(s=0, w=0, n=rows * resolution, e=cols * resolution, res=resolution) +``` + +### Creating a fractal surface as a NumPy array + +We will create a simple fractal surface with [r.surf.fractal](https://grass.osgeo.org/grass-stable/manuals/r.surf.fractal.html). + +{{< fa wand-magic-sparkles >}} The trick is to use the `output` parameter with the value `np.array` to request a NumPy array instead of a native GRASS raster. {{< fa wand-magic-sparkles >}} +This way GRASS provides the array as the result of the call: + + +```{python} +import numpy as np + +fractal = tools.r_surf_fractal(output=np.array, seed=6) +``` + +::: {.callout-note title="NumPy arrays in GRASS version < 8.5"} + +Directly passing NumPy arrays to GRASS tools and receiving them back is a new feature in GRASS v8.5. +If you work with older versions of GRASS, you can use +[grass.script.array](https://grass.osgeo.org/grass-stable/manuals/libpython/grass.script.html#script.array.array) and [grass.script.array3d](https://grass.osgeo.org/grass-stable/manuals/libpython/grass.script.html#script.array.array3d): + +```{python} +import grass.script as gs +import grass.script.array as ga + +gs.run_command("r.surf.fractal", seed=6, output="fractal") +fractal = ga.array("fractal") +``` + +::: + +Now we can display `fractal` array e.g., using matplotlib library: + + +```{python} +import matplotlib.pyplot as plt + +plt.figure() +plt.imshow(fractal, cmap='terrain') +plt.colorbar(label='Elevation') +plt.title('Topography from r.surf.fractal') +plt.xlabel('X-coordinate') +plt.ylabel('Y-coordinate') +plt.show() +``` + +![Fractal surface generated with r.surf.fractal displayed using matplotlib](fractal_numpy.webp) + +We can modify the array: + +```{python} +fractal *= 0.1 +fractal = np.abs(fractal) + +plt.figure() +plt.imshow(fractal, cmap='terrain') +plt.colorbar(label='Elevation') +plt.title('Modified topography from r.surf.fractal') +plt.xlabel('X-coordinate') +plt.ylabel('Y-coordinate') +plt.show() +``` + +![Modified fractal surface](fractal_numpy_abs.webp) + +## From GRASS to Landlab + +Now, let's use Landlab's modeling capabilities to burn in an initial drainage network using the +Landlab's [Fastscape Eroder](https://landlab.readthedocs.io/en/latest/generated/api/landlab.components.stream_power.fastscape_stream_power.html). + +Create the `RasterModelGrid` specifying the same dimensions we used for creating the fractal surface. +Add the terrain elevations as a 1D array (flattened with `ravel`) to the grid's nodes under the standard field name "topographic__elevation". + +```{python} +from landlab import RasterModelGrid + +grid = RasterModelGrid((rows, cols), xy_spacing=resolution) +grid.add_field("topographic__elevation", fractal.ravel(), at="node") +``` + +Run the erosion of the landscape, extract the resulting NumPy array and visualize it: + +```{python} +from landlab.components import LinearDiffuser +from landlab.components import FlowAccumulator, FastscapeEroder + +fa = FlowAccumulator(grid, flow_director="D8") +fsp = FastscapeEroder(grid, K_sp=0.01, m_sp=0.5, n_sp=1.0) +ld = LinearDiffuser(grid, linear_diffusivity=1) + +for i in range(100): + fa.run_one_step() + fsp.run_one_step(dt=1.0) + ld.run_one_step(dt=1.0) + +elevation = grid.at_node['topographic__elevation'].reshape(grid.shape) + +plt.figure() +plt.imshow(elevation, cmap='terrain', origin='upper') +plt.colorbar(label='Elevation') +plt.title('Topography after erosion') +plt.xlabel('X-coordinate') +plt.ylabel('Y-coordinate') +plt.show() +``` + +![Eroded fractal surface with Landlab](fractal_landlab.webp) + +## From Landlab to GRASS + +Now we will bring the eroded topography back to GRASS for additional hydrology modeling. +We will derive streams using the [r.watershed](https://grass.osgeo.org/grass-stable/manuals/r.watershed.html) and [r.stream.extract](https://grass.osgeo.org/grass-stable/manuals/r.stream.extract.html) tools. + +{{< fa wand-magic-sparkles >}} The `Tools` API allows us to directly plugin the NumPy `elevation` array into the tool call. {{< fa wand-magic-sparkles >}} + + +```{python} +tools.r_watershed(elevation=elevation, accumulation="accumulation") +tools.r_stream_extract(elevation=elevation, accumulation="accumulation", threshold=300, stream_vector="streams") +``` + +And visualize them using `gj.Map` on top of shaded relief: + + +```{python} +tools.r_relief(input=elevation, output="relief") + +m = gj.Map(width=400) +m.d_rast(map="relief") +m.d_vect(map="streams", type="line", color="blue", width=2) +m.show() +``` + +![Streams derived from eroded topography in GRASS](streams.webp) + +Now if we want to store the eroded topography as a native GRASS raster, we can use +[grass.script.array](https://grass.osgeo.org/grass-stable/manuals/libpython/grass.script.html#script.array.array) +to create a GRASS array object with the dimensions given by the current computational region. +Then we copy the NumPy array and write the raster map as GRASS native raster. + +```{python} +# Create a new grasss.script.array object +grass_elevation = ga.array() +# Copy values from elevation array +grass_elevation[...] = elevation +# Write new GRASS raster map 'elevation' +grass_elevation.write("elevation") +``` + +--- + +The development of this tutorial was supported by NSF Award #2322073, granted to Natrx, Inc. \ No newline at end of file diff --git a/content/tutorials/numpy_integration/logos.webp b/content/tutorials/numpy_integration/logos.webp new file mode 100644 index 0000000000000000000000000000000000000000..7e298f9b292639572d8078b8328a2b26886a920b GIT binary patch literal 22720 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 literal 0 HcmV?d00001 diff --git a/content/tutorials/numpy_integration/streams.webp b/content/tutorials/numpy_integration/streams.webp new file mode 100644 index 0000000000000000000000000000000000000000..cdc8b4050d613b00ec0bf00384ec46da3a81731b GIT binary patch literal 27962 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 Bn6dx> literal 0 HcmV?d00001 diff --git a/content/tutorials/numpy_integration/thumbnail.webp b/content/tutorials/numpy_integration/thumbnail.webp new file mode 100644 index 0000000000000000000000000000000000000000..d6de0bea098ed97285ec28a52a554f03c978da53 GIT binary patch literal 37450 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 Date: Wed, 1 Oct 2025 10:39:59 -0400 Subject: [PATCH 2/7] formatting --- .../grass_numpy_integration.qmd | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/content/tutorials/numpy_integration/grass_numpy_integration.qmd b/content/tutorials/numpy_integration/grass_numpy_integration.qmd index 6e478e3..3e735e4 100644 --- a/content/tutorials/numpy_integration/grass_numpy_integration.qmd +++ b/content/tutorials/numpy_integration/grass_numpy_integration.qmd @@ -45,7 +45,6 @@ and [Get started with GRASS in Google Colab](../get_started/grass_gis_in_google_ First we will import GRASS packages: - ```{python} # import standard Python packages import os @@ -65,26 +64,22 @@ from grass.tools import Tools Create a new GRASS project called "landlab". Since we will be working with artifical data, we don't need to provide any coordinate reference system, resulting in a generic cartesian system. - ```{python} gs.create_project("landlab") ``` Initialize a session in this project and create a `Tools` object we will use for calling GRASS tools: - ```{python} session = gj.init("landlab") tools = Tools() ``` - Since we are generating artificial data, we need to specify the dimensions (number of rows and columns). We also need to let GRASS know the actual coordinates; we will do that by setting the [computational region](https://grass.osgeo.org/grass-stable/manuals/g.region.html). Lower-left (south-west) corner of the data will be at the coordinates (0, 0), the coordinates of the upper-right (nort-east) corner are number of rows times cell resolution and number of columns times cell resolution. - ```{python} rows = 200 cols = 250 @@ -99,7 +94,6 @@ We will create a simple fractal surface with [r.surf.fractal](https://grass.osge {{< fa wand-magic-sparkles >}} The trick is to use the `output` parameter with the value `np.array` to request a NumPy array instead of a native GRASS raster. {{< fa wand-magic-sparkles >}} This way GRASS provides the array as the result of the call: - ```{python} import numpy as np @@ -109,7 +103,7 @@ fractal = tools.r_surf_fractal(output=np.array, seed=6) ::: {.callout-note title="NumPy arrays in GRASS version < 8.5"} Directly passing NumPy arrays to GRASS tools and receiving them back is a new feature in GRASS v8.5. -If you work with older versions of GRASS, you can use +If you work with older versions of GRASS, you can use [grass.script.array](https://grass.osgeo.org/grass-stable/manuals/libpython/grass.script.html#script.array.array) and [grass.script.array3d](https://grass.osgeo.org/grass-stable/manuals/libpython/grass.script.html#script.array.array3d): ```{python} @@ -124,7 +118,6 @@ fractal = ga.array("fractal") Now we can display `fractal` array e.g., using matplotlib library: - ```{python} import matplotlib.pyplot as plt @@ -155,7 +148,7 @@ plt.show() ``` ![Modified fractal surface](fractal_numpy_abs.webp) - + ## From GRASS to Landlab Now, let's use Landlab's modeling capabilities to burn in an initial drainage network using the @@ -196,9 +189,9 @@ plt.xlabel('X-coordinate') plt.ylabel('Y-coordinate') plt.show() ``` - + ![Eroded fractal surface with Landlab](fractal_landlab.webp) - + ## From Landlab to GRASS Now we will bring the eroded topography back to GRASS for additional hydrology modeling. @@ -206,15 +199,19 @@ We will derive streams using the [r.watershed](https://grass.osgeo.org/grass-sta {{< fa wand-magic-sparkles >}} The `Tools` API allows us to directly plugin the NumPy `elevation` array into the tool call. {{< fa wand-magic-sparkles >}} - ```{python} tools.r_watershed(elevation=elevation, accumulation="accumulation") -tools.r_stream_extract(elevation=elevation, accumulation="accumulation", threshold=300, stream_vector="streams") +tools.r_stream_extract( + elevation=elevation, + accumulation="accumulation", + threshold=300, + stream_vector="streams", +) + ``` And visualize them using `gj.Map` on top of shaded relief: - ```{python} tools.r_relief(input=elevation, output="relief") @@ -223,7 +220,7 @@ m.d_rast(map="relief") m.d_vect(map="streams", type="line", color="blue", width=2) m.show() ``` - + ![Streams derived from eroded topography in GRASS](streams.webp) Now if we want to store the eroded topography as a native GRASS raster, we can use @@ -242,4 +239,4 @@ grass_elevation.write("elevation") --- -The development of this tutorial was supported by NSF Award #2322073, granted to Natrx, Inc. \ No newline at end of file +The development of this tutorial was supported by NSF Award #2322073, granted to Natrx, Inc. From ab1110a0656c69083dd1c300a421fd7e0d791a42 Mon Sep 17 00:00:00 2001 From: Anna Petrasova Date: Wed, 1 Oct 2025 10:44:08 -0400 Subject: [PATCH 3/7] headers --- .../numpy_integration/grass_numpy_integration.qmd | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/tutorials/numpy_integration/grass_numpy_integration.qmd b/content/tutorials/numpy_integration/grass_numpy_integration.qmd index 3e735e4..aa5517f 100644 --- a/content/tutorials/numpy_integration/grass_numpy_integration.qmd +++ b/content/tutorials/numpy_integration/grass_numpy_integration.qmd @@ -21,7 +21,7 @@ execute: jupyter: python3 --- -# Using GRASS, NumPy, and Landlab for Scientific Modeling +# Introduction This short tutorial shows how to integrate NumPy arrays with GRASS tools to create a smooth workflow for scientific modeling and analysis in Python. @@ -41,7 +41,7 @@ and [Get started with GRASS in Google Colab](../get_started/grass_gis_in_google_ ![](logos.webp) -## Generating a fractal surface in GRASS +# Generating a fractal surface in GRASS First we will import GRASS packages: @@ -87,7 +87,7 @@ resolution = 10 tools.g_region(s=0, w=0, n=rows * resolution, e=cols * resolution, res=resolution) ``` -### Creating a fractal surface as a NumPy array +## Creating a fractal surface as a NumPy array We will create a simple fractal surface with [r.surf.fractal](https://grass.osgeo.org/grass-stable/manuals/r.surf.fractal.html). @@ -149,7 +149,7 @@ plt.show() ![Modified fractal surface](fractal_numpy_abs.webp) -## From GRASS to Landlab +# From GRASS to Landlab Now, let's use Landlab's modeling capabilities to burn in an initial drainage network using the Landlab's [Fastscape Eroder](https://landlab.readthedocs.io/en/latest/generated/api/landlab.components.stream_power.fastscape_stream_power.html). @@ -192,7 +192,7 @@ plt.show() ![Eroded fractal surface with Landlab](fractal_landlab.webp) -## From Landlab to GRASS +# From Landlab to GRASS Now we will bring the eroded topography back to GRASS for additional hydrology modeling. We will derive streams using the [r.watershed](https://grass.osgeo.org/grass-stable/manuals/r.watershed.html) and [r.stream.extract](https://grass.osgeo.org/grass-stable/manuals/r.stream.extract.html) tools. From cf61fb9d29d25e2b7fea57f0f997d9a4e6a3f19a Mon Sep 17 00:00:00 2001 From: Anna Petrasova Date: Wed, 1 Oct 2025 10:57:51 -0400 Subject: [PATCH 4/7] add note about xarray bridge --- .../numpy_integration/grass_numpy_integration.qmd | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/content/tutorials/numpy_integration/grass_numpy_integration.qmd b/content/tutorials/numpy_integration/grass_numpy_integration.qmd index aa5517f..21849b4 100644 --- a/content/tutorials/numpy_integration/grass_numpy_integration.qmd +++ b/content/tutorials/numpy_integration/grass_numpy_integration.qmd @@ -8,6 +8,10 @@ description: > Learn how to integrate NumPy arrays with GRASS tools on an example using Landlab modeling framework. image: thumbnail.webp +other-links: +- text: "Check out new xarray-grass interface" + href: "https://github.com/lrntct/xarray-grass" + icon: link format: ipynb: default html: @@ -237,6 +241,13 @@ grass_elevation[...] = elevation grass_elevation.write("elevation") ``` +::: {.callout-note title="What about N-dimensional arrays?"} + +For 3D arrays, you can use [grass.script.array3d](https://grass.osgeo.org/grass-stable/manuals/libpython/grass.script.html#script.array.array3d) package. + +For N-dimensional arrays, check out the new [xarray-grass](https://github.com/lrntct/xarray-grass) bridge developed by [Laurent Courty](https://github.com/lrntct) {{< fa rocket >}} +::: + --- The development of this tutorial was supported by NSF Award #2322073, granted to Natrx, Inc. From f81ba8ba4a1acc5e556de28e3af49a391710016a Mon Sep 17 00:00:00 2001 From: Anna Petrasova Date: Wed, 1 Oct 2025 11:03:54 -0400 Subject: [PATCH 5/7] better acknowledgement --- content/tutorials/numpy_integration/grass_numpy_integration.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/tutorials/numpy_integration/grass_numpy_integration.qmd b/content/tutorials/numpy_integration/grass_numpy_integration.qmd index 21849b4..3b1ee39 100644 --- a/content/tutorials/numpy_integration/grass_numpy_integration.qmd +++ b/content/tutorials/numpy_integration/grass_numpy_integration.qmd @@ -250,4 +250,4 @@ For N-dimensional arrays, check out the new [xarray-grass](https://github.com/lr --- -The development of this tutorial was supported by NSF Award #2322073, granted to Natrx, Inc. +The development of this tutorial and the `grass.tools` package (developed by Vaclav Petras) was supported by NSF Award #2322073, granted to Natrx, Inc. From 24b8be17d63e000143e84aececf85526470f73a1 Mon Sep 17 00:00:00 2001 From: Anna Petrasova Date: Fri, 3 Oct 2025 15:25:52 -0400 Subject: [PATCH 6/7] address review --- .../grass_numpy_integration.qmd | 42 +++++++++++++++++-- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/content/tutorials/numpy_integration/grass_numpy_integration.qmd b/content/tutorials/numpy_integration/grass_numpy_integration.qmd index 3b1ee39..87bf7f6 100644 --- a/content/tutorials/numpy_integration/grass_numpy_integration.qmd +++ b/content/tutorials/numpy_integration/grass_numpy_integration.qmd @@ -9,6 +9,9 @@ description: > on an example using Landlab modeling framework. image: thumbnail.webp other-links: +- text: "Intro to GRASS Python API" + href: "https://grass.osgeo.org/grass-devel/manuals/python_intro.html" + icon: link - text: "Check out new xarray-grass interface" href: "https://github.com/lrntct/xarray-grass" icon: link @@ -55,11 +58,12 @@ import os import sys import subprocess +# for some environments, this path setup can be skipped sys.path.append( subprocess.check_output(["grass", "--config", "python_path"], text=True).strip() ) -# import GRASS python packages +# import GRASS Python packages import grass.script as gs import grass.jupyter as gj from grass.tools import Tools @@ -80,9 +84,10 @@ tools = Tools() ``` Since we are generating artificial data, we need to specify the dimensions (number of rows and columns). -We also need to let GRASS know the actual coordinates; we will do that by setting +We also need to let GRASS know the actual coordinates we want to use; we will do all that by setting the [computational region](https://grass.osgeo.org/grass-stable/manuals/g.region.html). Lower-left (south-west) corner of the data will be at the coordinates (0, 0), the coordinates of the upper-right (nort-east) corner are number of rows times cell resolution and number of columns times cell resolution. +We chose a cell resolution of 10 horizontal units, which would impact certain terrain analyses, such as slope computation, and certain hydrology processes. ```{python} rows = 200 @@ -108,7 +113,7 @@ fractal = tools.r_surf_fractal(output=np.array, seed=6) Directly passing NumPy arrays to GRASS tools and receiving them back is a new feature in GRASS v8.5. If you work with older versions of GRASS, you can use -[grass.script.array](https://grass.osgeo.org/grass-stable/manuals/libpython/grass.script.html#script.array.array) and [grass.script.array3d](https://grass.osgeo.org/grass-stable/manuals/libpython/grass.script.html#script.array.array3d): +[grass.script.array](https://grass.osgeo.org/grass-stable/manuals/libpython/grass.script.html#script.array.array): ```{python} import grass.script as gs @@ -168,7 +173,7 @@ grid = RasterModelGrid((rows, cols), xy_spacing=resolution) grid.add_field("topographic__elevation", fractal.ravel(), at="node") ``` -Run the erosion of the landscape, extract the resulting NumPy array and visualize it: +Run the erosion of the landscape: ```{python} from landlab.components import LinearDiffuser @@ -182,7 +187,11 @@ for i in range(100): fa.run_one_step() fsp.run_one_step(dt=1.0) ld.run_one_step(dt=1.0) +``` + +Extract the resulting NumPy array and visualize it: +```{python} elevation = grid.at_node['topographic__elevation'].reshape(grid.shape) plt.figure() @@ -233,6 +242,8 @@ to create a GRASS array object with the dimensions given by the current computat Then we copy the NumPy array and write the raster map as GRASS native raster. ```{python} +import grass.script.array as ga + # Create a new grasss.script.array object grass_elevation = ga.array() # Copy values from elevation array @@ -241,6 +252,29 @@ grass_elevation[...] = elevation grass_elevation.write("elevation") ``` +Let's visualize the new GRASS elevation map with streams by setting its color +scheme to `srtm_percent` and rendering it in 3D using the +[grass.jupyter.Map3D](https://grass.osgeo.org/grass-stable/manuals/libpython/grass.jupyter.html?highlight=map3d#module-grass.jupyter.map3d) class: + +```{python} +tools.r_colors(map="elevation", color="srtm_percent") +elevation_3dmap = gj.Map3D() +elevation_3dmap.render( + elevation_map="elevation", + resolution_fine=1, + vline="streams", + vline_width=3, + vline_color="blue", + vline_height=3, + position=[0.50, 0.00], + height=5600, + perspective=10, +) +elevation_3dmap.show() +``` + +![Resulting elevation with streams in 3D](thumbnail.webp) + ::: {.callout-note title="What about N-dimensional arrays?"} For 3D arrays, you can use [grass.script.array3d](https://grass.osgeo.org/grass-stable/manuals/libpython/grass.script.html#script.array.array3d) package. From fd1fa4b7d6a983db0d19160f3b5429a0d17672d4 Mon Sep 17 00:00:00 2001 From: Anna Petrasova Date: Fri, 3 Oct 2025 17:07:51 -0400 Subject: [PATCH 7/7] cool image --- .../numpy_integration/elevation_3d.webp | Bin 0 -> 37450 bytes .../grass_numpy_integration.qmd | 16 ++++++++++------ .../numpy_integration/thumbnail.webp | Bin 37450 -> 61668 bytes 3 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 content/tutorials/numpy_integration/elevation_3d.webp diff --git a/content/tutorials/numpy_integration/elevation_3d.webp b/content/tutorials/numpy_integration/elevation_3d.webp new file mode 100644 index 0000000000000000000000000000000000000000..d6de0bea098ed97285ec28a52a554f03c978da53 GIT binary patch literal 37450 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 +::: + Let's visualize the new GRASS elevation map with streams by setting its color scheme to `srtm_percent` and rendering it in 3D using the [grass.jupyter.Map3D](https://grass.osgeo.org/grass-stable/manuals/libpython/grass.jupyter.html?highlight=map3d#module-grass.jupyter.map3d) class: @@ -273,14 +280,11 @@ elevation_3dmap.render( elevation_3dmap.show() ``` -![Resulting elevation with streams in 3D](thumbnail.webp) - -::: {.callout-note title="What about N-dimensional arrays?"} +![Resulting elevation with streams in 3D](elevation_3d.webp) -For 3D arrays, you can use [grass.script.array3d](https://grass.osgeo.org/grass-stable/manuals/libpython/grass.script.html#script.array.array3d) package. +And now let's augment it with [Nano Banana AI](https://nanobanana.ai/): -For N-dimensional arrays, check out the new [xarray-grass](https://github.com/lrntct/xarray-grass) bridge developed by [Laurent Courty](https://github.com/lrntct) {{< fa rocket >}} -::: +![AI edited landscape](thumbnail.webp) --- diff --git a/content/tutorials/numpy_integration/thumbnail.webp b/content/tutorials/numpy_integration/thumbnail.webp index d6de0bea098ed97285ec28a52a554f03c978da53..6869cfafc09e7e97c2ac28977a1f8f6bd0a58f4e 100644 GIT binary patch literal 61668 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

xKogVl;+4{*!)x>QC9erT0!d_7nVLOghp71 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