{ "cells": [ { "cell_type": "markdown", "id": "588e2f45", "metadata": {}, "source": [ "\n", "# Getting Started: Wang (2006) Cross‑Wind Integrated Footprint\n", "This notebook shows how to use the `wang_footprint.py` module from the **fluxfootprints** library to compute the Wang et al. (2006) cross‑wind‑integrated footprint, and (optionally) reconstruct a 2‑D footprint by assuming a Gaussian lateral spread.\n", "\n", "**What you'll do**\n", "1. Import the Wang (2006) functions from your local `src` checkout.\n", "2. Compute the 1‑D cross‑wind integrated footprint \\(f_y(x)\\).\n", "3. (Optional) Reconstruct a 2‑D footprint \\(f(x, y)\\) and visualize it.\n", "4. Extract practical distances (e.g., x for 50%, 80%, 90% cumulative contribution).\n", "\n", "> **CBL validity:** The Wang (2006) parameterisation targets convective daytime conditions and requires **negative** Monin‑Obukhov length `L < 0`. Use with caution outside the published range.\n" ] }, { "cell_type": "code", "id": "c6a6c3fd", "metadata": { "ExecuteTime": { "end_time": "2025-08-31T01:06:32.200370Z", "start_time": "2025-08-31T01:06:30.513769Z" } }, "source": [ "\n", "# --- Setup & Imports ----------------------------------------------------------\n", "import os, sys, math, numpy as np\n", "\n", "# Use your local project layout: notebook in e.g. `notebooks/`, package in `src/`\n", "# The user requested: use sys.path.append(\"../../src\")\n", "sys.path.append(\"../../src\")\n", "\n", "# Now import from the package/module\n", "from fluxfootprints.wang_footprint import wang2006_fy, reconstruct_gaussian_2d\n", "print(\"Imports OK. Using fluxfootprints from:\", [p for p in sys.path if p.endswith(\"/src\")])\n" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Imports OK. Using fluxfootprints from: ['../../src']\n" ] } ], "execution_count": 1 }, { "cell_type": "code", "id": "c5e2210b", "metadata": { "ExecuteTime": { "end_time": "2025-08-31T01:06:34.810036Z", "start_time": "2025-08-31T01:06:34.804525Z" } }, "source": [ "\n", "# --- Quick environment check --------------------------------------------------\n", "import numpy as np, matplotlib\n", "print(\"NumPy:\", np.__version__)\n", "print(\"Matplotlib:\", matplotlib.__version__)\n", "\n", "# Optional: show docstring summaries\n", "print(\"\\nwang2006_fy:\", wang2006_fy.__doc__.splitlines()[0])\n", "print(\"reconstruct_gaussian_2d:\", reconstruct_gaussian_2d.__doc__.splitlines()[0])\n" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "NumPy: 2.2.2\n", "Matplotlib: 3.10.0\n", "\n", "wang2006_fy: Cross‑wind integrated footprint ``f_y(x)`` (m⁻¹).\n", "reconstruct_gaussian_2d: Reconstruct a 2‑D footprint ``f(x,y)`` from a 1‑D ``f_y(x)``.\n" ] } ], "execution_count": 2 }, { "cell_type": "markdown", "id": "e2fe6d0e", "metadata": {}, "source": [ "\n", "## 1) Provide inputs\n", "You need:\n", "- `zm` — measurement height above ground (m)\n", "- `h` — convective boundary‑layer height (m)\n", "- `L` — Monin‑Obukhov length (**negative** for convective)\n", "- Optional: `U` (mean wind speed, m s⁻¹) and `sigma_v` (lateral velocity std, m s⁻¹) to define the lateral spread for the 2‑D reconstruction.\n", "\n", "Below, the cell will try to discover any example CSV/JSON in a nearby `examples/` or `data/` folder.\n", "If none is found, it will fall back to a synthetic convective case that produces a reasonable footprint.\n" ] }, { "cell_type": "code", "id": "328c0962", "metadata": { "ExecuteTime": { "end_time": "2025-08-31T01:06:41.031124Z", "start_time": "2025-08-31T01:06:41.017447Z" } }, "source": [ "\n", "# --- Try to auto‑discover example inputs -------------------------------------\n", "from pathlib import Path\n", "import json, csv\n", "\n", "def try_load_examples():\n", " candidates = [\n", " Path(\"../examples\"), Path(\"../../examples\"),\n", " Path(\"./examples\"), Path(\"../data\"), Path(\"../../data\")\n", " ]\n", " # Simple heuristics: look for small CSV/JSON that might contain zm,h,L,U,sigma_v\n", " for base in candidates:\n", " if not base.exists(): \n", " continue\n", " for ext in (\"*.csv\", \"*.json\"):\n", " for f in base.glob(ext):\n", " try:\n", " if f.suffix.lower() == \".json\":\n", " with open(f, \"r\", encoding=\"utf-8\") as fp:\n", " data = json.load(fp)\n", " keys = {k.lower() for k in data.keys()}\n", " if {\"zm\",\"h\",\"l\"}.issubset(keys):\n", " return dict(zm=float(data[\"zm\"]), h=float(data[\"h\"]), L=float(data[\"l\"]),\n", " U=float(data.get(\"U\", 3.5)), sigma_v=float(data.get(\"sigma_v\", 0.6))), f\n", " else: # CSV\n", " with open(f, \"r\", encoding=\"utf-8\") as fp:\n", " reader = csv.DictReader(fp)\n", " for row in reader:\n", " keys = {k.lower() for k in row.keys()}\n", " if {\"zm\",\"h\",\"l\"}.issubset(keys):\n", " return dict(zm=float(row[\"zm\"]), h=float(row[\"h\"]), L=float(row[\"L\"]),\n", " U=float(row.get(\"U\", 3.5)), sigma_v=float(row.get(\"sigma_v\", 0.6))), f\n", " except Exception:\n", " # Not an expected format; keep scanning\n", " pass\n", " return None, None\n", "\n", "params, src_file = try_load_examples()\n", "\n", "if params is None:\n", " # Fallback: synthetic daytime convective case\n", " params = dict(\n", " zm=3.0, # m\n", " h=800.0, # m\n", " L=-120.0, # m (must be negative for convective)\n", " U=3.5, # m/s\n", " sigma_v=0.6 # m/s\n", " )\n", " print(\"No example file found. Using synthetic parameters:\", params)\n", "else:\n", " print(f\"Loaded example parameters from {src_file}: {params}\")\n", "\n", "zm, h, L, U, sigma_v = params[\"zm\"], params[\"h\"], params[\"L\"], params[\"U\"], params[\"sigma_v\"]\n", "assert L < 0.0, \"Wang (2006) requires convective conditions (L < 0).\"\n" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "No example file found. Using synthetic parameters: {'zm': 3.0, 'h': 800.0, 'L': -120.0, 'U': 3.5, 'sigma_v': 0.6}\n" ] } ], "execution_count": 3 }, { "cell_type": "markdown", "id": "ca47eaad", "metadata": {}, "source": [ "\n", "## 2) Compute the 1‑D cross‑wind‑integrated footprint \\(f_y(x)\\)\n", "We'll evaluate \\(f_y(x)\\) along a stream‑wise distance vector `x` (positive upwind).\n" ] }, { "cell_type": "code", "id": "a471ecd9", "metadata": { "ExecuteTime": { "end_time": "2025-08-31T01:07:11.427432Z", "start_time": "2025-08-31T01:07:11.422780Z" } }, "source": [ "\n", "import numpy as np\n", "\n", "# Stream‑wise grid (m); extend far enough upwind for the tail to decay\n", "x = np.linspace(0.0, 6000.0, 601) # 10 m spacing\n", "fy = wang2006_fy(x, zm=zm, h=h, L=L)\n", "\n", "# Basic checks\n", "dx = x[1] - x[0]\n", "mass = np.trapezoid(fy, x)\n", "print(f\"Integral ∫ f_y dx ≈ {mass:.6f} (should be ~1.0)\")\n", "print(f\"Max f_y at x ≈ {x[np.argmax(fy)]:.1f} m\")\n" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Integral ∫ f_y dx ≈ 1.000000 (should be ~1.0)\n", "Max f_y at x ≈ 10.0 m\n" ] } ], "execution_count": 5 }, { "cell_type": "code", "id": "ef3414cc", "metadata": { "ExecuteTime": { "end_time": "2025-08-31T01:07:16.674621Z", "start_time": "2025-08-31T01:07:16.411634Z" } }, "source": [ "\n", "# --- Plot f_y(x) --------------------------------------------------------------\n", "import matplotlib.pyplot as plt\n", "\n", "plt.figure()\n", "plt.plot(x, fy, lw=2)\n", "plt.xlabel(\"Upwind distance x (m)\")\n", "plt.ylabel(\"Cross-wind integrated footprint f_y(x) (m$^{-1}$)\")\n", "plt.title(\"Wang (2006) CWI footprint\")\n", "plt.grid(True)\n", "plt.show()\n" ], "outputs": [ { "data": { "text/plain": [ "
" ], "image/png": "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/iHnXyDdlPXP4U3CWumOtdIda6U71qp0DF2v0oxlkhuyra2t4efnp3VKLSYmBi1bttR73ICAAK0xo6OjJY1JREREbxaTPHMEAGFhYQgODoa/vz8CAgKwfPlypKamYsSIEQBeLHfdvn0ba9euVb8nOTkZAPD48WPcuXMHycnJsLa2hre3NwBg7NixaNu2LX788Ud0794d//nPf7B3714cOnTolX8/IiIiMk0mG4769u2Lu3fvYvr06UhPT4ePjw+ioqLg6ekJ4MVNHwvf86hJkybq3ycmJmLjxo3w9PTE9evXAQAtW7bE5s2bMXnyZHz77beoVasWtmzZgubNm7+y70VERESmzWTDEQCEhIQgJCSkyGNr1qzRahNCvHTMPn36oE+fPlKnRkRERG8ok9xzRERERGQsDEdEREREBTAcERERERXAcERERERUAMMRERERUQEMR0REREQFMBwRERERFcBwRERERFQAwxERERFRAQxHRERERAUY5PEhSqUSGRkZePLkCZydnVGpUiVDDEtERET0yul95ujx48dYtmwZ2rVrBwcHB9SoUQPe3t5wdnaGp6cnhg0bhuPHjxtyrkRERERlTq9wNH/+fNSoUQMrVqzAO++8g+3btyM5ORkXLlxAQkICpkyZgtzcXHTs2BGdO3fGpUuXDD1vIiIiojKh17LakSNHEBsbi4YNGxZ5vFmzZhg8eDAiIiIQGRmJ+Ph4vPXWW5ImSkRERPQq6BWOfvvtN5362djYICQkRJ+PICIiIjIKXq1GREREVIDBwlFiYqKhhiIiIiIyGoOFo549expqKCIiIiKjKdWeo48++qjIdiEE7t27Z5AJERERERlTqcLR3r17sW7dOpQvX16jXQiBAwcOGHRiRERERMZQqnDUrl07lC9fHoGBgVrHmjRpYrBJERERERlLqcLR9u3biz22e/duyZMhIiIiMjZJG7IzMjIMNQ+zJ4Qw9hSIiIgIEsNRUFCQoeZBREREZBIkhSOe7TAclpKIiMg0SApHMpnMUPMgIiIiMgl8fIiJ4IkjIiIi08BwZCK4RElERGQaJIUja2trQ82DiIiIyCRICkcnTpww1DzMHs8bERERmQYuqxEREREVUKo7ZBfn2bNnOH36NDIzM5GXl6dx7IMPPjDER7zxuOWIiIjINEgOR7t378bAgQORlZWldUwmk0GlUkn9CCIi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" }, "metadata": {}, "output_type": "display_data" } ], "execution_count": 6 }, { "cell_type": "markdown", "id": "6a8bf4bb", "metadata": {}, "source": [ "\n", "## 3) Practical distances by cumulative contribution\n", "You can extract distances that capture a chosen fraction of the source area (e.g., 50%, 80%, 90%) by integrating \\(f_y(x)\\).\n" ] }, { "cell_type": "code", "id": "a32528e7", "metadata": { "ExecuteTime": { "end_time": "2025-08-31T01:07:20.131642Z", "start_time": "2025-08-31T01:07:20.127200Z" } }, "source": [ "\n", "cum = np.cumsum(fy) * (x[1] - x[0])\n", "\n", "def x_at_fraction(frac):\n", " idx = np.searchsorted(cum, frac)\n", " return float(x[min(idx, len(x)-1)])\n", "\n", "x50, x80, x90 = x_at_fraction(0.50), x_at_fraction(0.80), x_at_fraction(0.90)\n", "print(f\"x_50% ≈ {x50:.1f} m, x_80% ≈ {x80:.1f} m, x_90% ≈ {x90:.1f} m\")\n" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "x_50% ≈ 10.0 m, x_80% ≈ 10.0 m, x_90% ≈ 10.0 m\n" ] } ], "execution_count": 7 }, { "cell_type": "code", "id": "ec95bb48", "metadata": { "ExecuteTime": { "end_time": "2025-08-31T01:07:23.914267Z", "start_time": "2025-08-31T01:07:23.794783Z" } }, "source": [ "\n", "# Re-plot with markers for 50/80/90%\n", "import matplotlib.pyplot as plt\n", "\n", "plt.figure()\n", "plt.plot(x, fy, lw=2)\n", "for xv, label in [(x50, \"50%\"), (x80, \"80%\"), (x90, \"90%\")]:\n", " plt.axvline(x=xv, ls=\"--\")\n", " plt.text(xv, max(fy)*0.6, label, rotation=90, va=\"center\", ha=\"right\")\n", "plt.xlabel(\"Upwind distance x (m)\")\n", "plt.ylabel(\"f_y(x) (m$^{-1}$)\")\n", "plt.title(\"Cumulative contribution distances\")\n", "plt.grid(True)\n", "plt.show()\n" ], "outputs": [ { "data": { "text/plain": [ "
" ], "image/png": "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" }, "metadata": {}, "output_type": "display_data" } ], "execution_count": 8 }, { "cell_type": "markdown", "id": "955d41a4", "metadata": {}, "source": [ "\n", "## 4) (Optional) Reconstruct a 2‑D footprint \\(f(x, y)\\)\n", "Use a Gaussian lateral distribution with width \\(\\sigma_y(x)\\). By default,\n", "\\(\\sigma_y = \\alpha x\\) with \\(\\alpha \\approx 0.3\\). If you have turbulence stats,\n", "you can pass `sigma_v` and `U` to use \\(\\sigma_y = (\\sigma_v/U)\\,x\\).\n" ] }, { "cell_type": "code", "id": "22d53667", "metadata": { "ExecuteTime": { "end_time": "2025-08-31T01:07:27.827655Z", "start_time": "2025-08-31T01:07:27.816831Z" } }, "source": [ "\n", "# Compute the 2-D reconstruction using turbulence-based sigma_y\n", "X, Y, F = reconstruct_gaussian_2d(x, fy, sigma_v=sigma_v, U=U, ny=241)\n", "\n", "# Sanity check: F integrates to ~1 over the domain\n", "dx = x[1] - x[0]\n", "dy = Y[1,0] - Y[0,0]\n", "mass2d = np.sum(F * dx * dy)\n", "print(f\"Double integral ∬ F dx dy ≈ {mass2d:.6f}\")\n" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Double integral ∬ F dx dy ≈ 1.000000\n" ] } ], "execution_count": 9 }, { "cell_type": "code", "id": "8ec6a2b9", "metadata": { "ExecuteTime": { "end_time": "2025-08-31T01:07:30.987340Z", "start_time": "2025-08-31T01:07:30.783775Z" } }, "source": [ "\n", "# --- Visualize the 2-D footprint ---------------------------------------------\n", "import matplotlib.pyplot as plt\n", "extent = [x.min(), x.max(), Y.min(), Y.max()]\n", "\n", "plt.figure()\n", "plt.imshow(F.T, origin=\"lower\", aspect=\"auto\", extent=extent)\n", "plt.colorbar(label=\"f(x,y) (m$^{-2}$)\")\n", "plt.xlabel(\"Upwind distance x (m)\")\n", "plt.ylabel(\"Cross-wind distance y (m)\")\n", "plt.title(\"2-D Footprint (Gaussian reconstruction)\")\n", "plt.show()\n" ], "outputs": [ { "data": { "text/plain": [ "
" ], "image/png": "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Nm3awNnZGc2bN4ejoyMCAwORmJiotfOpnbjZ2Njgt99+q1R++vRpWFlZaaVRREREpAMVEww02UjyxRdfoE2bNvj666/Rt29f7Nq1C6mpqbh06RKUSiXmzZuHkpIS9O/fH76+vrhy5YrG51R7csKbb76JKVOmwNzcHL179wYAJCQkYOrUqXjzzTc1bhARERHphqbPqfEZN1XHjx/H4cOH0bVr1yr3v/TSSxg/fjzWrVuHjRs3IiEhAe3bt9fonGonbgsWLMD169fRr18/GBqWH15WVoa3336bz7gRERFRg1HVZM2qyOVyTJw4USvnVDtxMzY2xo4dO/DZZ5/h9OnTMDU1RdeuXeHo6KiVBhEREZGOcAFerXnw4AFu376NFi1aqJSfO3cOXbp00dl567SOGwB06NABHTp00GZbiIiISIc0nRnKWaXlfvzxR0ybNg3NmjWDEAJff/013N3dAQABAQH49ddfdXZutRO30tJSbN68GQcPHkR2djbKyspU9h86dEhrjSMiIiJ61ixYsAC//vormjdvjqSkJIwdOxazZ8/G6NGjIXT8IKDaidvUqVOxefNmDBo0CC4uLpDJmH0TERHpDQ53aqy4uBjNmzcHALi5ueHIkSMYMWIErl69qvO8SO3ELTIyEt9//z0GDhyoi/YQERGRjnCoVDsqlkbr1q0bAMDKygpxcXEYO3ZslUumaZPa67gZGxvjueee00VbiIiISJeEFjbCf//7X9jY2KiUGRsbY/v27UhISNDpudVO3KZPn46vvvpK52O4RERERM+ili1bws7OTvqclZUl/fnll1/W6bnVHio9duwYDh8+jP3796NLly4wMjJS2b9r1y6tNY6IiIi0SfZ/mybH0+N8fHx0PkRaQe3ErWnTpnjttdd00RYiIiLSJa7jphNPcxRS7cRt06ZNumgHERERkV56mits1HkBXiIiItIz7HHTe3VK3H788Ud8//33SE9PR1FRkco+Xa4WTERERBoQsvJNk+OpXqk9q3TFihV45513YGNjg5SUFLz00kuwsrLCH3/8AT8/P120kYiIiOiZZWxs/NTOpXbitmbNGmzYsAGrVq2CsbExPvroI8TFxWHKlCnIz8/XRRuJiIhIC4TQfKPKkpKSntq51E7c0tPT4enpCQAwNTXF3bt3AZS/VHX79u3abR0RERFpDxfg1XtqP+NmZ2eH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" }, "metadata": {}, "output_type": "display_data" } ], "execution_count": 10 }, { "cell_type": "markdown", "id": "18461f2f", "metadata": {}, "source": [ "\n", "## 5) Save results\n", "These examples show how to export the computed arrays to common formats.\n" ] }, { "cell_type": "code", "id": "ae75143a", "metadata": { "ExecuteTime": { "end_time": "2025-08-31T01:07:37.043570Z", "start_time": "2025-08-31T01:07:37.010406Z" } }, "source": [ "\n", "# Save 1-D footprint to CSV\n", "import pandas as pd\n", "one_d = pd.DataFrame({\"x_m\": x, \"f_y_per_m\": fy, \"cum_frac\": np.cumsum(fy)*(x[1]-x[0])})\n", "one_d.to_csv(\"wang2006_fy_example.csv\", index=False)\n", "print(\"Wrote: wang2006_fy_example.csv\")\n", "\n", "# Save 2-D footprint as NumPy .npz\n", "np.savez_compressed(\"wang2006_2d_example.npz\", X=X, Y=Y, F=F)\n", "print(\"Wrote: wang2006_2d_example.npz\")\n" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Wrote: wang2006_fy_example.csv\n", "Wrote: wang2006_2d_example.npz\n" ] } ], "execution_count": 11 }, { "cell_type": "markdown", "id": "b12e28b5", "metadata": {}, "source": [ "\n", "## Troubleshooting\n", "- **`ValueError: L must be negative`** — The Wang (2006) scheme is for convective conditions; ensure your `L` is negative.\n", "- **`x must be non‑negative`** — The model expects positive upwind distances (start at `x=0` and move upstream).\n", "- If your `∫ f_y dx` or `∬ F dx dy` is not close to 1, ensure your `x` range is sufficiently long so the tail has decayed.\n", "- If you don't have `sigma_v` and `U`, omit them; the model will use a simple \\(\\sigma_y = \\alpha x\\) with `alpha=0.3` by default.\n" ] }, { "cell_type": "markdown", "id": "449b9c59", "metadata": {}, "source": [ "\n", "## Next steps\n", "- Combine the 2‑D footprint with gridded surface properties (land cover, LAI, NDVI) to compute weighted footprints.\n", "- Convert the 2‑D grid to geospatial rasters (GeoTIFF) or vector contours (GeoPackage) using your GIS stack.\n", "- Batch‑process multiple time periods and summarise daily or monthly contributions using your preferred data pipeline.\n" ] } ], "metadata": {}, "nbformat": 4, "nbformat_minor": 5 }