diff --git a/.gitignore b/.gitignore index 3d2a76b..96b1378 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ .ipynb_checkpoints .mypy_cache .ruff_cache -.venv +.venv* build dist @@ -20,10 +20,11 @@ coverage.xml docs/_build docs/generated -# ide +# ide / agent tooling .idea .eclipse .vscode +.claude # Mac .DS_Store diff --git a/CHANGELOG.md b/CHANGELOG.md index 149c3a2..bdf3cf4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/). +## Unreleased + +Added: + - `conservative_2d` regridding for grids that aren't 1D-separable: curvilinear (2D `lat`/`lon`) grids, unstructured meshes (`ConservativeRegridder.from_polygons`), and grid-to-polygon aggregation (e.g. gridded data → region shapes). Built on shapely 2 polygon intersection with optional `sparse` weight storage, an analytic cylindrical-equal-area `manifold="cea"` option for spherical areas on lat/lon grids, antimeridian handling, and netCDF weight-matrix caching. Exposed via the `.regrid.conservative_2d` accessor and the reusable `ConservativeRegridder` class; install with the `conservative-2d` extra ([#70](https://github.com/xarray-contrib/xarray-regrid/pull/70)). + ## 0.4.2 (2026-01-28) New contributors: diff --git a/README.md b/README.md index 08e752b..1075c42 100644 --- a/README.md +++ b/README.md @@ -3,10 +3,11 @@ Logo -With xarray-regrid it is possible to regrid between two rectilinear grids. The following methods are supported: +With xarray-regrid you can regrid between rectilinear grids, and conservatively onto curvilinear grids, unstructured meshes, or arbitrary polygons (e.g. country shapes). The following methods are supported: - Linear - Nearest-neighbor - Conservative + - Conservative 2D: conservative regridding for grids that aren't 1D-separable — curvilinear coordinates, unstructured meshes, and grid-to-polygon aggregation - Cubic - "Most common value", as well as other zonal statistics (e.g., variance or median). @@ -44,6 +45,12 @@ which includes optional extras such as: Benchmarking varies across different hardware specifications, but the inclusion of these extras can often provide significant speedups. +For conservative regridding onto curvilinear grids, unstructured meshes, or polygons (the `conservative_2d` method), install the `conservative-2d` extra: +```console +pip install xarray-regrid[conservative-2d] +``` +which adds `shapely`, `sparse`, and `h5netcdf` (the last for caching weight matrices to netCDF). + ## Usage The xarray-regrid routines are accessed using the "regrid" accessor on an xarray Dataset: ```py diff --git a/docs/getting_started.rst b/docs/getting_started.rst index 8af1130..8a49cc7 100644 --- a/docs/getting_started.rst +++ b/docs/getting_started.rst @@ -29,9 +29,10 @@ Next load in the data you want to regrid, and the data with a grid you want to r Multiple regridding methods are available: * `linear interpolation `_ (``.regrid.linear``) -* `nearest-neighbor `_ (``.regrid.nearest``) +* `nearest-neighbor `_ (``.regrid.nearest``) * `cubic interpolation `_ (``.regrid.cubic``) * `conservative regridding `_ (``.regrid.conservative``) +* `conservative 2D regridding `_ (``.regrid.conservative_2d``) for curvilinear grids, unstructured meshes, and grid-to-polygon aggregation * `zonal statistics `_ (``.regrid.stat``) is available to compute statistics such as the maximum value, or variance. Additionally, there are separate methods available to compute the diff --git a/docs/index.rst b/docs/index.rst index 10bf3bc..03245d7 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -29,13 +29,14 @@ xarray-regrid: Regridding utilities for xarray Overview ======== -``xarray-regrid`` extends xarray with regridding methods, making it possibly to easily and effiently regrid between two rectilinear grids. +``xarray-regrid`` extends xarray with regridding methods, making it easy and efficient to regrid between rectilinear grids — and, with the conservative 2D method, onto curvilinear grids, unstructured meshes, or arbitrary polygons. The following methods are supported: * `Linear `_ * `Nearest-neighbor `_ * `Conservative `_ +* `Conservative 2D (curvilinear / unstructured / polygon aggregation) `_ * `Cubic `_ * `Zonal statistics `_ * `"Most common value" (zonal statistics) `_ diff --git a/docs/notebooks/demos/demo_conservative_2d_curvilinear.ipynb b/docs/notebooks/demos/demo_conservative_2d_curvilinear.ipynb new file mode 100644 index 0000000..b78a29d --- /dev/null +++ b/docs/notebooks/demos/demo_conservative_2d_curvilinear.ipynb @@ -0,0 +1,296 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0", + "metadata": {}, + "source": [ + "# Conservative 2D regrid — curvilinear target\n", + "\n", + "**Conservative regridding** resamples a gridded field while preserving its\n", + "area-weighted integral: each output cell is the area-weighted average of\n", + "the source cells it overlaps. It's the right tool for fluxes and intensive\n", + "quantities — precipitation, sea-surface temperature, mass-balance budgets —\n", + "where bilinear or nearest-neighbor interpolation would bias the total.\n", + "\n", + "The fast `.regrid.conservative` accessor only works on **1D-separable**\n", + "grids: plain rectilinear lat/lon, where lat depends only on `y` and lon\n", + "only on `x`. **Curvilinear** grids store coordinates as 2D arrays\n", + "`lat(y, x)` / `lon(y, x)` and are common in ocean models (ORCA, tripolar)\n", + "or any rotated/projected setup. Their cells aren't axis-aligned, so we\n", + "drop to `.regrid.conservative_2d`, which builds the full 2D polygon\n", + "intersection.\n", + "\n", + "**In this notebook.** We regrid a smooth analytic two-bump field from a\n", + "regular lat/lon grid onto a 30°-rotated curvilinear target — a minimal\n", + "stand-in for any curvilinear ocean grid — and verify that the\n", + "area-weighted integral is preserved to machine precision." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "1", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:06.360118Z", + "iopub.status.busy": "2026-05-29T13:27:06.359974Z", + "iopub.status.idle": "2026-05-29T13:27:07.447877Z", + "shell.execute_reply": "2026-05-29T13:27:07.447311Z" + } + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import xarray as xr\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import xarray_regrid # noqa: F401\n", + "from xarray_regrid import ConservativeRegridder" + ] + }, + { + "cell_type": "markdown", + "id": "2", + "metadata": {}, + "source": [ + "## Source — regular 1° lat/lon, analytic two-bump field\n", + "\n", + "A simple synthetic field — one positive Gaussian bump in the northern\n", + "hemisphere, one negative in the southern — gives us something we can\n", + "visually track from source to target." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "3", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:07.449773Z", + "iopub.status.busy": "2026-05-29T13:27:07.449278Z", + "iopub.status.idle": "2026-05-29T13:27:07.587128Z", + "shell.execute_reply": "2026-05-29T13:27:07.586648Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAuwAAAFUCAYAAAB/UWl5AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAj61JREFUeJztnQe4E1X6xr8kt1GkSRcUsGBFWFgQrKusWHbXtio2EF1cCzZUyioC6ooV26JYVtS1rr0h6toLiwp2hb/YYJViA6Tee5P5P9/JnMk5MyeTmdzkJrl5f88Tkpw5M3NmJuGevPOe90Qsy7IIAAAAAAAAUJREC90AAAAAAAAAQHrQYQcAAAAAAKCIQYcdAAAAAACAIgYddgAAAAAAAIoYdNgBAAAAAAAoYtBhBwAAAAAAoIhBhx0AAAAAAIAiBh12AAAAAAAAihh02AEAAAAAAChi0GEHAJQtd911F0UiEfrmm2+KepvFAh8TH9s111xDTYm1a9fSX/7yF+rcubM4vnPOOcc5Vr6eYXn11VfFuvyciX322Uc8AADAD3TYAQAgCy6//HJ64okn8nru3n77bZoyZQqtWrUqr/spd/hacsf8tNNOo3/96190wgknFLpJAACgUaG/BQAAELST9+c//5kOPfRQrZw7e8OHD6fq6uqcdNinTp1KJ554IrVp0wYXJk+8/PLLtNtuu9HkyZOdMsuyaMOGDVRZWYnzDgAoOFDYAShz6uvrqba2ttDNaDLEYjGqqakRlghQGqxcudLzg4ivH19Hvp4AAFBo0GEHoED8+uuvwivbo0cPocZ27NiRfv/739OCBQu0eg8//DD179+fmjVrRu3bt6fjjz+evvvuu0A+WFZmefsmD/L1119PW2+9tdj3Z599JpYvXLiQjjrqKOrQoYPYX+/evenCCy/Utsn7Pumkk6hTp05i3Z122onuvPNOz76XLFkitpcJ/rFw8cUXi2Ns3bo1tWjRgvbcc0965ZVXtHpq22+77Tan7b/97W/p3Xff1ep+9NFH4th79eolOl3sTeY2//TTT75tGTlypDjHdXV1nmX777+/OB8Mt2PdunV09913i9f84P35edife+452nvvvWmzzTajVq1aiXbff//9advCVpgLLrhAvO7Zs6ezH97u4YcfTr/5zW+0+n/84x/F8qeeesopmzdvnijjfUu++uorOvLII6ldu3bUvHlzoSw/++yzFJbrrruOttpqK/E54eP65JNPGvyZnDFjhrhm3C4+30uXLhVK96WXXkrdunUT+zrkkEPo559/1rbJ2/vDH/5AL7zwAvXt21dc8x133JEee+yxQF7zr7/+WpwD9Ryn87DzZ5rvrPD54/0MGDBAO+d+yM8tH8fAgQPpjTfeCLQeAADAEgNAgTj11FPpkUceoTFjxojOBXcm33zzTfr888+dzhh3FkaNGiU6d9OmTaMVK1bQDTfcQG+99Ra9//77WdskZs2aRRs3bqRTTjlFdHq588GdXO4oswWAy7kT9OWXX9LTTz9Nf//738V6vH/u4HFHhtvNHXvuDJ588sm0Zs0a8QNEMmLECHrttddEh8sPXu+OO+6gY445hkaPHi1+yPzzn/+kYcOG0TvvvCM6YCrcyeU6f/3rX0U7rrrqKtGB5Y6otC+8+OKL4j2fO+6sf/rpp6KzxM///e9/06rfbGe555576PnnnxcdQMny5cuFbUJaJtjnzIMUudPF54rhjlg6+DryDwb+cTNx4kRx3fj6zZkzh4499ljjOnxM//d//0cPPPCA6BzzDwmGzzlfpyeffFKcO+788znmz0Q0GhWdwD/96U+iLr/mst133925fkOGDKH169fTWWedRZtvvrn40cH1+bN42GGHURD4HPE1OOOMM8TniD+T++67L3388cfih1w23HfffeLH25lnnik65Hxd+ccjb5c71uPHj6fFixfTTTfdROeff77nR+IXX3xBRx99tPhe8Q8v/ozzDxM+x/xD2MQOO+wgruW5554rfhCcd955zjn+4YcfPPX588PncosttqAJEyaIH5f//ve/hS3q0Ucf9T1//Jnmzyyff/6e8OeTzzt/97p3757VOQMAlBEWAKAgtG7d2jrjjDPSLq+trbU6duxo7bzzztaGDRuc8meeeYZ7wNbFF1/slO29997i4WbkyJHWVltt5bz/+uuvxbqtWrWyVq5cqdXda6+9rM0228z69ttvtfJEIuG8Pvnkk60uXbpYP/74o1Zn+PDh4njWr1+vtSnIfzH19fXWpk2btLJffvnF6tSpk3XSSSd52r755ptbP//8s1P+5JNPivKnn37aKVPbIXnggQdEvddff90pmzVrlijjbTPxeNzq1q2bdfTRR2vrTp8+3YpEItZXX33llLVo0UKcXzfuba5a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P2bQZBHhWMBJlcL42g3KvKPkU0h8YiC1bRlUd2c9g+fdrdL6TiSVC6U9W4XZL/IxWzXduP0MkY1p14eqDooHKOw5tsSMHTs2aFWaPn164LoAAAAAAKA8wUynOe6wv//++4HqyclSQG7Jt28r37Ywv+mE3ctMarBRTbdfW0qZVHNlWUJd5tT3quJSPZfKucmvria8SDXc5EmXZU7aC6WUciuqb19OpKS2IWZon5WoSH88rmNWz437/JmWZXudck2pWBPzmhbTgEmV8pEg41bate2H9SS7fe6q193Udh/1XbbVqHJn2z4/fNX0kCq6JKya7lMGvzooZfhmsRKAlrFuuRK4w/7KK6/ktyUAAAAAAKCsKBaF/eeff6YzzzyTnn76aRFZfsQRR9ANN9xALVu2TFufx3G+8MILtGTJEurQoQMdeuihdOmll1Lr1q19hewHHniAhg8fHqp9uZu7GTQJL3q+kaJutl86oypsKEup6UoCio/CnlrPWyaTYExpL36pL6Ztym2lAi3St0Ffz3A3wXXcpvNgOl9B0JNjstoEaOSM9kC+dl9FOn2CjFbd1ETKEtfm/dR38dIT+K6uLJf55LDngjC+dpOK7redgGWBfOoh7wA0OAkGKTAgS/jvTZAUsnx32I877jgRqPLiiy9SXV0djRo1ik455RS6//77jfW///578bjmmmtoxx13FOM5Tz31VFH2yCOPaHVnzZolAlokbdq0Cd0+dNgBAAAAAEBBSOarB+2wU174/PPPac6cOfTuu++KSUGZm266iQ466CDRIe/atatnnZ133pkeffRR5/3WW29Nf//730UwS319PVVUVGgd9M6dOzeojTk0+YFyJJcTGbBCbFKJpVKcrVqcDlaw3Q/TMr+ysPtxl/m1J5fI85fuDoXfuQ9DLie34DtB8gEUFTOEkskKaUaV1LRNVmXVh6m+8pD7cfYX9BGtSD6My7wPK1aRfBj2aUUrMj782hJkffFw71e2KVbhbXPYYw5wbo3nN+y1C/CZCayuh/xMApDOwx70waxZs0Z7bNq0iRrC3LlzRadadtaZoUOHCmvMvHnzAm9n9erV1KpVK62zzpxxxhkiRXHgwIF05513ZvV3DQo7AAAAAAAoGQ979+7dtXL2kk+ZMiXrNixfvpw6duyolXGnu127dmJZEH788UfhX2cbjcoll1xC++67LzVv3lz43U8//XRau3YtnXXWWaHaiA47aBBy5kk1tzvrbflMYxnLwxSXMsXF/dr03l0WRgHPtC13mWlZQ/E7f37nPSy5vExInMp9goy2CT9/u98MqU6dYKkyTpVALQ14jDEfL74Pmkc+W4KoyUEy2rPNdtfKApzVAIp6VkBVBzkiHsLDHrfrLV26VCjZkurqamP9CRMm0JVXXpnRDtNQWOU/+OCDhZfd/cNh0qRJzut+/frRunXr6Oqrr0aHHQAAAAAAlAb8UzuojTJhP3NnXe2wp+O8886jE0880bdOr169hL985cqVWjn70DkJJpP3/NdffxUDSjfbbDN6/PHHqbKy0rf+oEGDhBLPNp50PzRMQGEvQ1TlsrH9wVKBjWaZ129Sik0KccQuk89qPT8l21QWdc1cmq5eum2pdeW2/LZjXs97POprtU4u7kyo1ycPNzeaBDKPvVEy2XOUIBM6t91v2wFTZZwqPm2JFOCuQ1bbzkH90Cq6sV52M5UGaoPvfuFVB7knzBi1eMgBUhy1yI9MDB48mFatWkXz58+n/v37i7KXX36ZEomE6GD7KevDhg0THe+nnnqKampqMu7rgw8+oLZt24bqrDPosAMAAAAAgIJghfCwW3kSR3bYYQehko8ePZpmzpwpYh3HjBkjstJlQsx3331H++23H91zzz1i8Ch31vfff39av3493Xvvvc4AWIZ/JMRiMZHpvmLFCtptt91EZ54jIy+//HI6//zzQ7cRHfYSwSRm5XT7lF/8FHX3MlUVlq8r7GfTMk11juhlquqcUt29CnbMnnFUzmAaraj0zlwaUxRve/ZSU2a6e/vqes7sp/b21WWyDab2+R6P65jVc+M+f6Zl2V6nXAMhvzAKs6/S7t62tqI6K6nP1fNT3308786m0285/0p7lopyIAU7Y3pPw/3pbqCsg2KEx8AFHQcXz+PNzPvuu0900rlTLidOuvHGG53l3IlftGiR6KAzCxYscBJkttlmG21bX3/9NfXo0UPYY2bMmEHnnnuu+LHB9aZPny5+GDTJDvs333wj/D58e4JH6/KvHc65vPDCC6mqKjW1+0cffSSiczhHk3/d8IxV48aNK2jbAQAAAABAcc902q5du7STJDHcAVcV/n322Sej4s+qvTphUkMoiQ77woULhY/o1ltvFb9OPvnkE/HrhEfacqA9I29NcG4m3874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9lhneTweF5312tpaevvtt+nuu++mu+66iy6++OKCthsAAAAAAJix4gmyOIs90CORt9P497//nYYMGSJE3zZt2gRax7Is0c/s0qWLEJOHDh1KX3zxhVbn559/puOOO45atWoltnvyySfT2rVrm2aHnVXys88+m66++mo69dRTabvttqMdd9yRjjrqKKfOCy+8QJ999hnde++91LdvXzrwwAPp0ksvpRkzZohOPACqvaShj2LeHwAAAFBKOexyttOMDyt/Cjv3FY888kg67bTTAq9z1VVX0Y033kgzZ86kefPmUYsWLWjYsGG0ceNGpw531j/99FN68cUX6ZlnnqHXX3+dTjnllKbZYV+wYAF99913FI1GqV+/fuKXDHfIP/nkE6fO3LlzaZdddqFOnTo5ZXzS1qxZI04UAAAAAAAoLgJ31hPJR76YOnUqnXvuuaIvGajdlkXXX389XXTRRXTIIYdQnz596J577qHvv/+ennjiCVHn888/pzlz5tAdd9whLN177LEH3XTTTfTggw+Kek2uw/7VV1+J5ylTpogTw79Q2MO+zz77iFsNzPLly7XOOiPf87J0bNq0SXTq1QcAmYA6DhoLKxJxHgAA0NQolg57WL7++mvRv2QbjKR169aiY84iMsPPbIMZMGCAU4frswDNinzJpMRMmDCBrrzySt86/OskYeduXnjhhXTEEUeI17NmzaJu3brRww8/TH/961+zbsO0adPEryo3v/76a9bbBACAfBApxYgjAEDRIPs2rA4XC1bdxuAd8XideHKLq9XV1eLRmEgx2CQWy2X8zCEoKhUVFdSuXTtfMbnoOuznnXcenXjiib51evXqRcuWLROv2bcu4QvDyzgZhuncuTO988472rorVqxwlqVj4sSJNHbsWOc9W294P9tus02WRwUAAAAAUNwdd1aDC0lVVZXony3/7N+h1mvZsiV1795dK5s8ebJwYWQrDG+//fZU7BS0w96hQwfxyET//v1FB33RokXC/8PU1dXRN998Q1tttZV4P3jwYDHCd+XKlc6vGTb486hctaPvxv2rjD8IS5cupc0224wiJXgLmn918geZj4GPHTQNcF2bJriuTRNc16ZJU7iurKxzZ71r166FbgrV1NQIW0nYYBDLsjz9s3TqelBhOBukGMziMI+tlPB7Dj+Rdbhf6g5SYTu3n5hcshMn8ReD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6iurefPm1gUXXCDSC2bMmGHFYjFRFxQHb7/9tkiI4Wv45ZdfWvfee6+4jiNGjNASCzp16mSdcMIJ1ieffGI9+OCD4rreeuutBW078IevEydN3HXXXSJl4pRTTrHatGmjJTuB4ua8886zXn31Vevrr7+23nrrLWvo0KFW+/btrZUrV4rlp556qrXllltaL7/8svXee+9ZgwcPFg9QXPDfTfk3lLtF06dPF6/57yxzxRVXiO/mk08+aX300UfWIYccYvXs2dPasGGDs40DDjjA6tevnzVv3jzrzTfftLbddlvrmGOOKeBRgaYGOuwlysiRI8V/LO7HK6+84tT55ptvrAMPPNBq1qyZ+CPCf1zq6uq07XD9vn37WlVVVVavXr1ETCQoHubPn28NGjRIRHfW1NRYO+ywg3X55ZdbGzdu1Op9+OGH1h577CE6gFtssYX4AwOKn5tuukl06Pj7xzGP//3vfwvdJBACjsHt0qWLuH78veP3ixcvdpZzh+70008Xsav8I/qwww6zli1bhnNcZPDfQdPfU/47K6MdJ02aJIQR/j92v/32sxYtWqRt46effhIddBbQOD551KhRjoAGQC6I8D+50eoBAAAAAAAAuQY57AAAAAAAABQx6LADAAAAAABQxKDDDgAAAAAAQBGDDjsAAAAAAABFDDrsAAAAAAAAFDHosAMAAAAAAFDEoMMOAAAAAABAEYMOOwAAAAAAAEUMOuwAgLJnn332oXPOOafJ7PPEE0+kQw89NC/bBgAA0PhUFGCfAABQ9jz22GNUWVnpnIcePXqIDnxj/3AAAABQ/KDDDgAABaBdu3Y47wAAAAIBSwwAACj88ssvNGLECGrbti01b96cDjzwQPriiy+c5XfddRe1adOGnn/+edphhx2oZcuWdMABB9CyZcucOvX19XTWWWeJeptvvjmNHz+eRo4cqdlUVEsMv/7222/p3HPPpUgkIh7MlClTqG/fvtr1uf7664UaL4nH4zR27FhnX+PGjSPLsrR1EokETZs2jXr27EnNmjWjXXfdlR555BFcdwAAKBHQYQcAAJf/+7333qOnnnqK5s6dKzq/Bx10ENXV1Tl11q9fT9dccw3961//otdff52WLFlC559/vrP8yiuvpPvuu49mzZpFb731Fq1Zs4aeeOIJX3tMt27d6JJLLhEdf7Xzn4lrr71W/Ii488476c0336Sff/6ZHn/8ca0Od9bvuecemjlzJn366afih8Hxxx9Pr732Gq49AACUALDEAACADSvp3FHnTvaQIUNEGXe8u3fvLjrcRx55pCjjzjt3frfeemvxfsyYMaKzLbnpppto4sSJdNhhh4n3//jHP2j27Nm+9phYLEabbbYZde7cOdT1YMWd93X44YeL99wuVv8lmzZtossvv5z+85//0ODBg0VZr169ROf+1ltvpb333hvXHwAAihx02AEAwObzzz+niooKGjRokHNO2GbSu3dvsUzCVhnZWWe6dOlCK1euFK9Xr15NK1asoIEDBzrLuTPev39/YU3JJbwvVuPV9nL7BwwY4NhiFi9eLO4I/P73v9fWra2tpX79+uHaAwBACYAOOwAAhERNd2HYc+72jeeCaDTq2a5qzQnC2rVrxfOzzz5LW2yxhbasuro6B60EAACQb+BhBwAAGx5EygNG582b55yTn376iRYtWkQ77rhjoPPUunVr6tSpE7377rvawNAFCxb4rldVVSXqqXTo0IGWL1+uddo/+OADbV+s7qvt5fbPnz/fec/t5o45++y32WYb7cFWHwAAAMUPFHYAALDZdttt6ZBDDqHRo0cLfzd7yidMmCCUaS4PyplnnikGenKnePvttxeedk6fkekvJjj5hQewDh8+XHSw27dvL9JjfvjhB7rqqqvoz3/+M82ZM4eee+45atWqlbPe2WefTVdccYVoO+9r+vTptGrVKmc5HwMPiOWBpmzJ2WOPPYSVhn36vB1OrwEAAFDcQGEHAAAFTnZhv/kf/vAHMUiT1W0eMOq2wfjBMY7HHHOMiIfkbXD047Bhw6impibtOjxo9ZtvvhHeeFbWpeJ/880304wZM0QU4zvvvKOl0TDnnXcenXDCCaLjzfviDroc7Cq59NJLadKkSeJHBG+TYyjZIsMxjwAAAIqfiJUP4yUAAAAHVra5o3zUUUeJzjMAAAAQBlhiAAAgx/AkSC+88IKITORYRY51/Prrr+nYY4/FuQYAABAaWGIAACAP6S48mdFvf/tb2n333enjjz8WOeissgMAAABhgSUGAAAAAACAIgYKOwAAAAAAAEUMOuwAAAAAAAAUMeiwAwAAAAAAUMSgww4AAAAAAEARgw47AAAAAAAARQw67AAAAAAAABQx6LADAAAAAABQxKDDDgAAAAAAQBGDDjsAAAAAAABUvPw/LLBvQ+g8d4wAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "lat = np.linspace(-60, 60, 121)\n", + "lon = np.linspace(-120, 120, 241)\n", + "Lo, La = np.meshgrid(lon, lat)\n", + "field = (\n", + " np.exp(-((Lo - 40) ** 2 + (La - 20) ** 2) / 500)\n", + " - np.exp(-((Lo + 60) ** 2 + (La + 15) ** 2) / 400)\n", + ")\n", + "src = xr.DataArray(\n", + " field,\n", + " dims=(\"latitude\", \"longitude\"),\n", + " coords={\"latitude\": lat, \"longitude\": lon},\n", + ")\n", + "src.plot(figsize=(8, 3.5), cmap=\"RdBu_r\", center=0)\n", + "plt.title(\"source: analytic two-bump field\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "4", + "metadata": {}, + "source": [ + "## Target — rotated curvilinear grid\n", + "\n", + "To break 1D-separability we take a regular `(ny, nx)` mesh and rotate it\n", + "30° in the lat/lon plane. The result has the same kind of 2D coordinate\n", + "variables you'd find in an ORCA or rotated-pole grid: `longitude(ny, nx)`\n", + "and `latitude(ny, nx)` riding on a non-axis-aligned mesh." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "5", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:07.588525Z", + "iopub.status.busy": "2026-05-29T13:27:07.588433Z", + "iopub.status.idle": "2026-05-29T13:27:07.643663Z", + "shell.execute_reply": "2026-05-29T13:27:07.643350Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdkAAAGJCAYAAADGyUn1AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAA/KpJREFUeJzs3QeYbWV1N/BjBTtSBEVFjYJoTOxKLDGxfYZYklgxKCIi2Oi9CSpdsIMoTUEENMbeEQuggh17wy5qVLDX8z2/HddkzZp3z70Xb5k78/6fZ7jMnHP2Xvvd+7yr/9fVptPpdNLR0dHR0dGx0nH1lX/Ijo6Ojo6Ojq5kOzo6Ojo6ViG6J9vR0dHR0bGK0JVsR0dHR0fHKkJXsh0dHR0dHasIXcl2dHR0dHSsInQl29HR0dHRsYrQlWxHR0dHR8cqQleyHR0dHR0dqwhdyXas9bja1a42ee5znzvz+2mnnTb87bLLLpv52wMe8IDhp2Ph4uijj57c/va3n/z5z39eLef73e9+N1ks8Px75lcl3vWud02uf/3rT3784x+v0vMsNnQl29GxwPH9739/2EQ//elPTxarvFdeeeXkqKOOmuyzzz6Tq1/9/7al3XbbbXLXu951sv7660+ue93rTrbccsvh2L/85S+bStPnb3azm02uc53rTO51r3tN3vve98553//8z/9MHvrQhw7Hu/Wtbz05//zzJ6sDr3vd6yYvetGLrvLnf/3rXw/Xvrrkrfh//+//TW5729tOjjjiiDVy/rUWuIs7OtZm/OY3v5n+4Q9/mPn91FNPxcc9/eY3vznzt9/97nfDz9qIiy++eLge17VY5T3++OOnN7zhDYd7mXGf+9xn+pznPGf6kpe8ZHrSSSdNd9555+k666wz/P1Pf/rTrPc+/vGPn17zmtec7rnnntNXvvKV06222mr4/cMf/vCs9+2www7T+9///tM3velN0wMOOGC60UYbTX/5y19OVzW23nrr6WabbXaVP//jH/94WNdDDjlkzmue/7p2qwKveMUrpte97nWnV1555So/12LBNde0ku/oyDCv4re//e3giSwv1l133WW+59rXvvaCXuhf/epXk+td73qL/pxjOPXUUyePeMQj5tzLj3zkI3Pe+zd/8zeTPffcc/Lxj398cu9733v4m/9//etfPznmmGOG1+BJT3rS5G//9m8ne++99+TCCy+c+fxFF100OfPMMyd///d/P3nUox41efvb3z750pe+NLnb3e621q7fNa95zeFnVeM//uM/Js9+9rMn55577mT77bdf5edbFFjTWr5j7cN3v/vd6fbbbz+96U1vOr32ta89vdWtbjXdaaedZjxFlnbr0Wp5mCx7Fv673vWu6d3udrfBS+HV3PGOd5w+4AEPmHMM3svNbnaz6X/8x3/M/K1a963z/OM//uPwE/jABz4wvOfss8+ePv/5z59uuummw7n/+Z//efrVr351znk/+tGPTh/60IcO3tZ1rnOdwRP6yEc+Mus9l1122eBpbb755tN11113uv76608f/ehHz5Ijy3f++ecP7+dJrbfees21DjnrT3iJH/rQh4Zz3OIWtxjuxc1vfvPprrvuOv31r3896zhPfvKTp9e73vWmX/va16YPe9jDpte//vWnj3zkI4fXvPfZz372dIMNNhj+/vCHP3y4xy2vyd+f8pSnTG9yk5sM57vDHe4wPfnkk5db3ha+8Y1vDO857bTTpsuDN7zhDcP73/nOd878ba+99ppe4xrXmF5xxRWz3nv44YcP7/32t7898zfX5/m1Fuecc85wzbzE+bCse/byl798WAtr4nvxjGc8Y/qzn/1s5nXPXl2T8Gp9bw466KDpXe961+H54ine9773nZ533nkzn/cMtdY17k/rO8e7Peyww6a3uc1tBrmcb7/99pv+9re/nfW++A7y+O9xj3sM34Nb3/rW09NPP725Fne5y12mj3jEI+Zdr47/Q/dkO1Y433bPe95z8vOf/3yy4447DoUq3/ve9yZveMMbhpzRVfEYv/zlL0+e8IQnTJ7+9KdPnva0p0222GKLyeMe97gh//TDH/5wsskmm8zybMjw+Mc/fqXcuSOPPHLIAfJ+rrjiiqH45olPfOLkYx/72Mx7zjvvvMnDHvawwdM55JBDhvfzvP75n/958uEPf3hYD7j44osHj4lsN7/5zYfCqxNOOGEouPrCF74w5AAznvGMZ0w22mijycEHHzx4RS3IQR522GHDe6z3/e53v+Hv//AP/zD8y6Ow7jvvvPNkgw02GDy6l770pZPvfve7w2sZf/zjH4dc5H3ve9/JscceOyPPdtttNznnnHMm22677eAZfvCDH5xsvfXWc2S5/PLLh9cV2DzrWc8aZH/nO985eepTnzrkVHfddddlyttCeJlyry2Q2/P2+9//fnLppZdODjzwwMkNbnCDmXWHT33qU5PNN998csMb3nDWZ+M98sO3uMUthv8//PDDh3U45ZRTBu9PnnTDDTecLA9a98xzeuihh04e9KAHDffB8+y+ex4uuOCCybWuda3JAQccMDxf7svxxx8/fE4REVi7V7/61cN3wPP/i1/8YnLyyScPMrqfd77znYdzOqbj/9u//dvk3//934fP/t3f/d2orDvssMPk9NNPnzz60Y+e7LHHHsMzLZ/6xS9+cfKmN71p1nu/9rWvDe9zL5/85CcPa+O58Mzf8Y53nPVef/vv//7v5Vqvju7JdqwgnvSkJ02vfvWrD3m3ij//+c9XyZP1N55sxpe//OXh7y996Utn/Z2HwPPIntpf48luueWWs3K1L37xi4e/f+5zn5u5ptvd7naDFxvXB87P2n/wgx88628VF1100XC817zmNXPk46388Y9/nP41Oc7WOY844ojp1a52tem3vvWtWZ6sY+y7776z3vuJT3xi+DvvN2O77babs65PfepTBy/tJz/5yZxc6I1udKMZWVY0J3vggQcO7//FL37RfD3WMH622GKL4f5liHyIQlR8/vOfHz5z4oknzvr7r371q+nHPvax6Q9+8IPlknHsnv3oRz8avMSHPOQhs3LEL3vZy4b3n3LKKcvMyTperRfgBW+88caDx708Odn6nfv0pz89/C7/nCFf7e/ZS47voKhIvi4e7R577DHnXBEduPzyy+dZsY5Ary7uWG5orWDBPvzhD5/c/e53n/P6VW0hUOHJas/glbDgzz777Jm//elPfxo8ZudfkZztfHjKU54yy/sOz+sb3/jGjAf01a9+dbLNNtsMVak/+clPhh9ezAMf+MDJhz70oZmWkyzTH/7wh+H9qjHXW2+9ySc/+ck55+a1XOMa1/ir5M/nJBPZeI1sD95dBU+otmWEh5Yh75bheG984xuHtff/sQ5+3DteWusalwfWiUcZnl3FHe5wh6FK2LMnvyoPWquLf/Ob30zWWWedOZ+NHK/XM3jxvNwcJVke1Hv2vve9b/CwefG5Ktr7eNXyvcuC48Uz6Fn66U9/OnjvvmNXdU3f8Y53DP/uvvvus/7Oo4UqlzWOZx94ziJK8T3IuPGNbzz86953LBs9XNyx3NAfJ7SlmGRlgpJtQch4//33H8LR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Zl7/zW9+M33GM54xXX/99afXu971pv/+7/8+/eEPf7hC57jiiiuG4/q3o2Op4lvf+tb0JS95yfRDH/rQ9M9//vP05z//+fSkk06a9R7fkVNOOWV67rnnTi+88MLpBz7wgTnH+f3vfz/97//+7+luu+02/fKXv9w81x/+8IfpAQccMD3++OOnX/nKV+a8/r3vfW965plnTi+77LJBpo985CODTIF3v/vd08985jPD/5OTTG94wxumv/vd74a/veIVr5j+8pe/nCPTq171qul3v/vd6ctf/vI553T8j370o9NDDz10euqpp46u04knnjg9/PDDpxdccMEsmeIYL3rRi6Y//vGPpyeffPL0jW9843DuwE9+8pNB1pDpTW960/TVr3719Kc//enwN9dpXfPxLrroouGYX/va12a9N+Mb3/jGsJb777//9E9/+lNT7s997nPTvffee/pf//Vfs2QKvOUtbxne43Wy/+xnP5v1+ktf+tLpr3/960EmMr74xS8ezgu/+MUvpieccMJ0bcaK6IFFNyCA1SnEE8j5DtyirDI5IlYIlhLWp1BIR0fHssG7E4KUbxSGDVJ53ydVq3Ksejxbk3T0iCr2iXxcJroX7lWIVMO6MbXG3xUkxXSbjKALVGSTZQo4No+T96roqE7SUZilqpa32pqkoy9VfjgKgchkDVTUHnTQQUMhUp2fGpN0rAu5hJyrx8mjI7se1L322mtOcRgZhZp5gDEIPU/SERUwk1aBlLW2TmSMIQWOF21SwOsKmeSSrZm9L7fVxKg+0QLerdeqB8/TJRtvl9yt6UY8Vd70H/7wh0G+PAvYNfP+tWxlUotFi+ki82T//u//vvkaC/Za17rWYFUHvvjFLw7WCOtvedE92Y6liD/+8Y/Tt73tbdPdd999Xo/zoIMOGrwk362K73znO9Ozzjpr+Jenw7PNntTb3/726aWXXjrj7Zx22mnT17/+9dPf/va3w994lL/61a9mne+tb33r9JWvfOX029/+dtPjhEsuuWTYG5blcR555JHT888/f47HSUbeIa+QTGefffaMTMAT9fcsE6+eJwof/OAHpx//+MdnHfPiiy8ejskz5zFXTzCiBd6z3377jXqcn/3sZ4fXzznnnFkyBXi/7sWb3/zmWTKB6+T5+5z/J2PIFHudta0y+cyHP/zhYV3PO++8OeeMCAZP+dvf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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ny, nx = 30, 50\n", + "xi, yi = np.meshgrid(\n", + " np.linspace(-110, 110, nx),\n", + " np.linspace(-45, 45, ny),\n", + " indexing=\"xy\",\n", + ")\n", + "th = np.deg2rad(30)\n", + "lon2d = xi * np.cos(th) - yi * np.sin(th)\n", + "lat2d = xi * np.sin(th) + yi * np.cos(th)\n", + "target = xr.Dataset(coords={\n", + " \"longitude\": ((\"ny\", \"nx\"), lon2d),\n", + " \"latitude\": ((\"ny\", \"nx\"), lat2d),\n", + "})\n", + "\n", + "fig, ax = plt.subplots(figsize=(8, 4))\n", + "ax.plot(lon2d, lat2d, color=\"0.3\", lw=0.4)\n", + "ax.plot(lon2d.T, lat2d.T, color=\"0.3\", lw=0.4)\n", + "ax.set_title(\"curvilinear target (30° rotation)\")\n", + "ax.set_xlabel(\"longitude\"); ax.set_ylabel(\"latitude\")\n", + "ax.set_aspect(\"equal\")" + ] + }, + { + "cell_type": "markdown", + "id": "6", + "metadata": {}, + "source": [ + "## Regrid and plot\n", + "\n", + "`ConservativeRegridder` builds the weight matrix once — that's the\n", + "expensive step, since it computes the area of every source/target polygon\n", + "intersection — and lets us reuse it for the apply step and for the\n", + "diagnostic in the next cell. The one-shot equivalent is\n", + "`src.regrid.conservative_2d(target, ...)`. Either way, output is on the\n", + "curvilinear `(ny, nx)` mesh, with NaN where target cells fall outside the\n", + "source domain." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "7", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:07.644998Z", + "iopub.status.busy": "2026-05-29T13:27:07.644928Z", + "iopub.status.idle": "2026-05-29T13:27:08.514098Z", + "shell.execute_reply": "2026-05-29T13:27:08.513640Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAGJCAYAAACtu7gUAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAmS9JREFUeJztnQeYG9XVv4+0vdjrsu69gAvggo2N6QSDKQkQCKHGQCihJvTy/UMPvXwEYkIIYCDAhyEBQoCYXgIYA6aD7eBu3NvuenvR/J/ftUceXc3ce2clrTTSeZ9nwJLujkZ1Xp17zrkhy7IsYhiGYRiGCQDhdB8AwzAMwzCMKSwuDMMwDMMEBhYXhmEYhmECA4sLwzAMwzCBgcWFYRiGYZjAwOLCMAzDMExgYHFhGIZhGCYwsLgwDMMwDBMYWFwYhmEYhgkMLC6MknfffZdCoZD4v44DDjhAbMncpynXX3+92CcTDFLxHugocNx4v9k89thj4rply5b5/ixkM+n8PmCyGxYXhkmA+vp6cRLLxC/dV199NeYE2x5uueUWevHFF5N2TAzDMImSn/AemKxmv/32o4aGBiosLEz3oWSsuNxwww3i35n2CxviMmPGjITkBeLyi1/8go4++uikHluQwechP1/91fn6669TrsPPAZMqOOISIOrq6jrsvhobGykSiVA4HKbi4mLxfya92K8JkzywxixExA/4POjEBaKfybKfyu8SyHwQngMmuPDZKEOxcza+//57Oumkk6hr1660zz77RG9/8sknacKECVRSUkLdunWjE044gVauXBm3H/ziHjp0qBg3adIk+s9//hM392zPMT/zzDP0+9//nvr160elpaVUU1PjOf/80EMP0bBhw2L268aPP/4ofq2XlZVRz5496eKLL6ampibXsXPnzqVDDz2UKioqxP3vv//+9OGHH8aN++CDD2iPPfYQJxAcw1/+8hdfz+1zzz0Xfe4qKyvplFNOoVWrVsWMOe2006i8vFxcj+PHv3v06EGXXXYZtbW1iTHIacB1AFEXPE9y/sPbb79N++67r3j8Xbp0oaOOOormz5+vPUbVa2LyGHD8eO2BfVzOHKC77rqL9tprL+revbvYB/b197//PeYYMB4nuMcffzz699ivDe7v17/+NfXq1YuKiopol112oUcffTSh94AbuJ8zzjiD+vbtK+5nyJAhdO6551Jzc7Myv8kt92Tw4MH005/+lF577TWaOHGieOx4/+y666504IEHxu0DoojnHlEn5/Oii2J5fcaeffZZuvnmm6l///7i/XvQQQfRokWL2vVZWL58OZ133nk0YsQI8TjwWh533HExj9f5PLz33ntiPF4D3L8K7PvII4+Mec3wnMnfBXiMeO7mzZsnorM41v/5n/9xfQ6S8V5gGMBTRRkOvoh22mknEbLHr0OAL75rrrmGfvnLX9KZZ55JGzZsoPvvv198cXzxxRfiBAn+/Oc/0wUXXCBOnPiCwBcavjQgQW5fXDfddJP4hYSTM75MvH4tPfLII/Sb3/xGnPguuugiWrJkifiSg0ANGDAgOg6/ZPHFvGLFCvrtb38rTjx/+9vfxMlcBtcddthh4gR63XXXiQjPzJkz6Sc/+YmQIsgR+Oabb+iQQw4RwoCTR2trqxiPk6cJ+BI//fTThfjceuuttG7dOvrjH/8oTgrO5w5AUKZNm0aTJ08WJ/o333yT7r77biFLOHHiGPAc498///nP6ZhjjhF/N2bMGPF/jMdjgjjiWPF84HXae++96fPPPxcnUR1ur4nJY8Drs3r1anrjjTfEcy6D8XjNTj75ZCEAECS8115++WU64ogjxBj8Hd5feO7PPvtscR0eO8B97rnnnuJEhvcYnot///vfQjAgV3hf+H0PuIHHgPuvqqoSxzBy5EghMpAs/LJvzy/6hQsX0oknniieo7POOkuc+I8//njxGq1du5Z69+4dI8k4BvwwSAa33XabeG/j9ayurqY77rhDvAYQFb+fhU8//ZQ++ugjcWz4POPzjfcjZAE/eCARTiAteJ2uvfZaZcQFt+G+1qxZQ7/73e/E8/H000/TO++84zp+06ZN4nhxHBBor89iou8FholiMRnJddddB0uxTjzxxJjrly1bZuXl5Vk333xzzPXffPONlZ+fH72+qanJ6t69u7XHHntYLS0t0XGPPfaY2O/+++8fve6dd94R1w0dOtSqr6+P2a99G/4PmpubrZ49e1rjxo0T92Hz0EMPxe333nvvFdc9++yz0evq6uqs4cOHx+wzEolYO+20kzVt2jTxbxscy5AhQ6yDDz44et3RRx9tFRcXW8uXL49e9/3334vnRPd2to991113tRoaGqLXv/zyy+Jvr7322uh1p556qrjuxhtvjNnH+PHjrQkT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7uPQQw+1xo8fb82dO9f64IMPrJ122sk68cQT0/iomHTC4pJGTj31VPFBlrd33nknOmbZsmXWYYcdZpWUlIgvR3xptrS0xOwH48eNG2cVFhZaQ4cOFeXVuca8efOsyZMni7Ly4uJia9SoUdYtt9xiNTY2xoz76quvrH322UecpPv16ye+NJlt3H///eKEi/cRyqM//vhjfmpcQLuBPn36iOcJ7yFcXrRoUfR2nHDPO+88UXoPMf75z39urVmzJmefS3w/uX3P4fvPLom+5pprxI8KfC4POugga+HChTH72LRpkxAV/MBDO4jTTz89+gOPyT1C+E+6oz4MwzAMwzAmcB8XhmEYhmECA4sLwzAMwzCBgcWFYRiGYZjAwOLCMAzDMExgYHFhGIZhGCYwsLgwDMMwDBMYWFwYhmEYhgkMLC4MwzAMwwQGFheGyTAOOOAAuuiii7LmPrFIpr0GEsMwTKLwIosMw9Dzzz8fXXgSDB48WIhMRwsUwzCMDhYXhmGoW7du/CwwDBMIeKqIYTKYLVu20PTp06lr165UWlpKhx12GP3www/R2x977DHq0qULvfbaazRq1CgqLy+nQw89lNasWRMd09raSr/97W/FuO7du9OVV15Jp556asz0jXOqCP9evnw5XXzxxRQKhcQGrr/+eho3blzM8d17770iOmPT1tZGl1xySfS+rrjiCizkGvM3kUiEbr31VhoyZAiVlJTQ2LFj6e9//3sKnj2GYbIRFheGyWCQH/LZZ5/RSy+9RHPmzBEScPjhh1NLS0t0TH19Pd111130t7/9jd5//31asWIFXXbZZdHbb7/9dnrqqado5syZ9OGHH1JNTQ29+OKLymmj/v3704033igEyClBOu6++24hU48++ih98MEHtHnzZnrhhRdixkBannjiCXrwwQfpu+++E4J0yimn0Hvvvef7+WEYJvfgqSKGyVAQWYGwQDb22msvcR0EZMCAAUI8jjvuOHEdJAYSMGzYMHH5ggsuENJhc//999PVV19NP//5z8XlP/3pT/Tqq68qp43y8vKoU6dO1Lt3b1/HjAgM7uuYY44Rl3FciAbZNDU10S233EJvvvkmTZkyRVw3dOhQITl/+ctfaP/99/d1fwzD5B4sLgyTocyfP5/y8/Np8uTJ0esw/TJixAhxmw2mkGxpAX369KH169eLf1dXV9O6deto0qRJ0dshJRMmTBBTNskE94XojPN4cfwTJ06MThctWrRIRIgOPvjgmL9tbm6m8ePHJ/V4GIbJTlhcGCbgOKuBAHJS5LySZBAOh+P265yyMqG2tlb8/5VXXqF+/frF3FZUVJSEo2QYJtvhHBeGyVCQbIvE2rlz50av27RpEy1cuJBGjx5ttI+Kigrq1asXffrppzEJtJ9//rny7woLC8U4Jz169KC1a9fGyMuXX34Zc1+I9jiPF8c/b9686GUcNwQFeTjDhw+P2TAFxjAMo4MjLgyToey000501FFH0VlnnSXyP5BzctVVV4lIBa435cILLxQJsZCDkSNHipwXVCvZ1UJuoFIIib4nnHCCEI3KykpRbbRhwwa644476Be/+AXNnj2b/v3vf1Pnzp2jf/e73/2ObrvtNnHsuK977rmHqqqqorfjMSBxGAm5mKraZ599xBQT8niwH1Q7MQzDqOCIC8NkMKgEQj7KT3/6U5HMimgHEmvl6SEVKH8+8cQTRVk19oGS6WnTplFxcbHn3yC5d9myZSJ3BpEWOwL0wAMP0IwZM0QJ8yeffBJTvQQuvfRS+tWvfiUEBPcFUbGTgm1uuukmuuaaa4RMYZ8o38bUEcqjGYZhdISsVEyGMwyTsSDSAWH45S9/KSSCYRgmSPBUEcNkOWgm9/rrr4tSY5Qjoxx66dKldNJJJ6X70BiGYXzDU0UMk+WgGghN4fbYYw/ae++96ZtvvhF9VBB1YRiGCRo8VcQwDMMwTGDgiAvDMAzDMIGBxYVhGIZhmMDA4sIwDMMwTGBgcWEYhmEYJjCwuDAMwzAMExhYXBiGYRiGCQwsLgzDMAzDBAYWF4ZhGIZhKCj8f7CRRwnXiXnMAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "rgr = ConservativeRegridder(\n", + " src, target, x_coord=\"longitude\", y_coord=\"latitude\",\n", + ")\n", + "regridded = rgr.regrid(src)\n", + "\n", + "fig, ax = plt.subplots(figsize=(8, 4))\n", + "pc = ax.pcolormesh(lon2d, lat2d, regridded.values, cmap=\"RdBu_r\",\n", + " shading=\"auto\", vmin=-1, vmax=1)\n", + "fig.colorbar(pc, ax=ax, shrink=0.8)\n", + "ax.set_title(\"regridded onto rotated curvilinear grid\")\n", + "ax.set_xlabel(\"longitude\"); ax.set_ylabel(\"latitude\")\n", + "ax.set_aspect(\"equal\")" + ] + }, + { + "cell_type": "markdown", + "id": "8", + "metadata": {}, + "source": [ + "## Conservation check\n", + "\n", + "The regridder exposes its cell-overlap areas as `source_coverage_areas`\n", + "(area of each source cell covered by the target) and `target_areas` (area\n", + "of each target cell covered by the source), both derived from the internal\n", + "matrix `A[i, j] = area(target_i ∩ source_j)`. For target cells fully inside\n", + "the source domain, the area-weighted sum of outputs equals the direct A·s\n", + "integral to machine precision — the defining property of *conservative*\n", + "regridding." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "9", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:08.515454Z", + "iopub.status.busy": "2026-05-29T13:27:08.515345Z", + "iopub.status.idle": "2026-05-29T13:27:08.608383Z", + "shell.execute_reply": "2026-05-29T13:27:08.607923Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "direct : 325.275958\n", + "via regrid : 325.275958\n", + "relative err : 0.00e+00\n", + "coverage : 87.60% of target cells inside source\n" + ] + } + ], + "source": [ + "src_cover = rgr.source_coverage_areas # area of each source cell covered by target\n", + "tgt_cover = rgr.target_areas.reshape(regridded.shape) # per target cell, covered by source\n", + "valid = np.isfinite(regridded.values)\n", + "\n", + "direct = float((src.values.ravel() * src_cover).sum())\n", + "via_regrid = float((regridded.values[valid] * tgt_cover[valid]).sum())\n", + "print(f\"direct : {direct:.6f}\")\n", + "print(f\"via regrid : {via_regrid:.6f}\")\n", + "print(f\"relative err : {abs(direct - via_regrid) / max(abs(direct), 1e-12):.2e}\")\n", + "print(f\"coverage : {valid.mean():.2%} of target cells inside source\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.12.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/notebooks/demos/demo_conservative_2d_regions.ipynb b/docs/notebooks/demos/demo_conservative_2d_regions.ipynb new file mode 100644 index 0000000..57d28fd --- /dev/null +++ b/docs/notebooks/demos/demo_conservative_2d_regions.ipynb @@ -0,0 +1,1168 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e5c70992", + "metadata": {}, + "source": [ + "# Conservative 2D regrid — regions (grid → country/state polygons)\n", + "\n", + "A common analysis question is: *given a gridded variable, what's its\n", + "area-weighted mean over each of these regions?* — countries, states,\n", + "watersheds, ocean basins, exclusive economic zones. This is the canonical\n", + "[xagg](https://github.com/ks905383/xagg)-style workflow and a natural fit\n", + "for **conservative regridding**: each region's output value is the\n", + "area-weighted average of the source cells it overlaps, which is exactly\n", + "what you want for fluxes and intensive quantities (precipitation,\n", + "temperature, mass-balance budgets) where bilinear or nearest-neighbor\n", + "interpolation would bias the total.\n", + "\n", + "Because the targets are arbitrary polygons rather than a grid, the fast\n", + "`.regrid.conservative` accessor doesn't apply. We use\n", + "`ConservativeRegridder.from_polygons`, which takes a 1D array of shapely\n", + "polygons as source and target.\n", + "\n", + "**In this notebook.**\n", + "\n", + "1. Aggregate xarray's air-temperature tutorial dataset (NMC reanalysis,\n", + " ~daily 2.5° lat/lon over North America) onto US states built by\n", + " dissolving county boundaries from `geodatasets`.\n", + "2. Visualize the per-state means against the source grid.\n", + "3. Verify conservation directly from the internal weight matrix.\n", + "4. Save the regridder, reload it, and reuse it on JJA vs. DJF subsets to\n", + " get per-state seasonal swings — showing the weight matrix is reusable\n", + " across any source field on the same grid." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "b28b1f2e", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:30.587981Z", + "iopub.status.busy": "2026-05-29T13:27:30.587773Z", + "iopub.status.idle": "2026-05-29T13:27:31.713553Z", + "shell.execute_reply": "2026-05-29T13:27:31.713090Z" + } + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import xarray as xr\n", + "import matplotlib.pyplot as plt\n", + "import geopandas as gpd\n", + "import geodatasets\n", + "\n", + "import xarray_regrid # noqa: F401\n", + "from xarray_regrid import ConservativeRegridder, polygons_from_coords" + ] + }, + { + "cell_type": "markdown", + "id": "537c0ed3", + "metadata": {}, + "source": [ + "## Source — NCEP reanalysis surface air temperature\n", + "\n", + "`xr.tutorial.open_dataset(\"air_temperature\")` is a small (~3 MB) NMC\n", + "reanalysis subset: 4×daily surface air temperature over North America on\n", + "a 2.5° lat/lon grid. We reduce it to a long-term mean, convert from\n", + "Kelvin to °C, and align with the state polygons' CRS:\n", + "\n", + "- Native longitudes are on `[0, 360)`; states are on `[-180, 180)`, so\n", + " we wrap.\n", + "- Native latitudes are descending; we sort to ascending so xarray's\n", + " `pcolormesh` doesn't flip the image." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "721e935c", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:31.715075Z", + "iopub.status.busy": "2026-05-29T13:27:31.714888Z", + "iopub.status.idle": "2026-05-29T13:27:31.786099Z", + "shell.execute_reply": "2026-05-29T13:27:31.785705Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.DataArray 'mean_air_temperature' (lat: 25, lon: 53)> Size: 11kB\n",
+       "array([[ 25.21615068,  25.23573973,  24.96414384, ...,  24.18820548,\n",
+       "         24.13144521,  24.15510274],\n",
+       "       [ 24.97920205,  24.78700685,  24.32039384, ...,  23.70954795,\n",
+       "         23.6270274 ,  23.29383562],\n",
+       "       [ 24.49986301,  23.80333219,  23.47931507, ...,  23.66092466,\n",
+       "         23.13796233,  22.66645548],\n",
+       "       ...,\n",
+       "       [ -8.3812363 ,  -8.82269178,  -9.08830479, ..., -22.54210959,\n",
+       "        -19.56648973, -15.43440068],\n",
+       "       [-10.41560616, -10.35602397, -10.40066096, ..., -23.39409589,\n",
+       "        -21.56424315, -18.79073973],\n",
+       "       [-12.77355822, -12.96694863, -13.26337329, ..., -22.33409932,\n",
+       "        -21.21188356, -19.71195205]], shape=(25, 53))\n",
+       "Coordinates:\n",
+       "  * lat      (lat) float32 100B 15.0 17.5 20.0 22.5 25.0 ... 67.5 70.0 72.5 75.0\n",
+       "  * lon      (lon) float32 212B -160.0 -157.5 -155.0 ... -35.0 -32.5 -30.0\n",
+       "Attributes:\n",
+       "    long_name:     4xDaily Air temperature at sigma level 995\n",
+       "    units:         degC\n",
+       "    precision:     2\n",
+       "    GRIB_id:       11\n",
+       "    GRIB_name:     TMP\n",
+       "    var_desc:      Air temperature\n",
+       "    dataset:       NMC Reanalysis\n",
+       "    level_desc:    Surface\n",
+       "    statistic:     Individual Obs\n",
+       "    parent_stat:   Other\n",
+       "    actual_range:  [185.16 322.1 ]
" + ], + "text/plain": [ + " Size: 11kB\n", + "array([[ 25.21615068, 25.23573973, 24.96414384, ..., 24.18820548,\n", + " 24.13144521, 24.15510274],\n", + " [ 24.97920205, 24.78700685, 24.32039384, ..., 23.70954795,\n", + " 23.6270274 , 23.29383562],\n", + " [ 24.49986301, 23.80333219, 23.47931507, ..., 23.66092466,\n", + " 23.13796233, 22.66645548],\n", + " ...,\n", + " [ -8.3812363 , -8.82269178, -9.08830479, ..., -22.54210959,\n", + " -19.56648973, -15.43440068],\n", + " [-10.41560616, -10.35602397, -10.40066096, ..., -23.39409589,\n", + " -21.56424315, -18.79073973],\n", + " [-12.77355822, -12.96694863, -13.26337329, ..., -22.33409932,\n", + " -21.21188356, -19.71195205]], shape=(25, 53))\n", + "Coordinates:\n", + " * lat (lat) float32 100B 15.0 17.5 20.0 22.5 25.0 ... 67.5 70.0 72.5 75.0\n", + " * lon (lon) float32 212B -160.0 -157.5 -155.0 ... -35.0 -32.5 -30.0\n", + "Attributes:\n", + " long_name: 4xDaily Air temperature at sigma level 995\n", + " units: degC\n", + " precision: 2\n", + " GRIB_id: 11\n", + " GRIB_name: TMP\n", + " var_desc: Air temperature\n", + " dataset: NMC Reanalysis\n", + " level_desc: Surface\n", + " statistic: Individual Obs\n", + " parent_stat: Other\n", + " actual_range: [185.16 322.1 ]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds = xr.tutorial.open_dataset(\"air_temperature\")\n", + "air = (ds[\"air\"].mean(\"time\") - 273.15).sortby(\"lat\")\n", + "air = air.assign_coords(lon=(((air.lon + 180) % 360) - 180)).sortby(\"lon\")\n", + "air.attrs[\"units\"] = \"degC\"\n", + "air.name = \"mean_air_temperature\"\n", + "air" + ] + }, + { + "cell_type": "markdown", + "id": "434441b2", + "metadata": {}, + "source": [ + "## Regions — US states from `geodatasets`\n", + "\n", + "`geodatasets.get_path(\"geoda.ncovr\")` returns a GeoPackage of the 49\n", + "contiguous-US counties (+ DC). We **dissolve** on `STATE_NAME` —\n", + "geopandas' equivalent of a `groupby` for geometries — to combine each\n", + "state's counties into one (Multi)Polygon. The result is exactly what\n", + "`ConservativeRegridder.from_polygons` wants: one shapely (Multi)Polygon\n", + "per region. The air-temperature grid doesn't cover Alaska or Hawaii,\n", + "which is why ncovr (contiguous-US only) is a natural fit." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "8c6437b2", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:31.787271Z", + "iopub.status.busy": "2026-05-29T13:27:31.787193Z", + "iopub.status.idle": "2026-05-29T13:27:32.106364Z", + "shell.execute_reply": "2026-05-29T13:27:32.105963Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "49 states/DC, CRS=EPSG:4326, bounds=[-124.7, 25.0, -67.0, 49.4]\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
STATE_NAMEgeometry
0AlabamaPOLYGON ((-87.62572 30.87672, -87.61593 30.848...
1ArizonaPOLYGON ((-113.32838 32.04356, -114.82097 32.4...
2ArkansasPOLYGON ((-93.4789 33.02139, -93.51174 33.0211...
\n", + "
" + ], + "text/plain": [ + " STATE_NAME geometry\n", + "0 Alabama POLYGON ((-87.62572 30.87672, -87.61593 30.848...\n", + "1 Arizona POLYGON ((-113.32838 32.04356, -114.82097 32.4...\n", + "2 Arkansas POLYGON ((-93.4789 33.02139, -93.51174 33.0211..." + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "counties = gpd.read_file(geodatasets.get_path(\"geoda.ncovr\"))\n", + "states = (\n", + " counties.dissolve(by=\"STATE_NAME\", aggfunc=\"first\")\n", + " .reset_index()[[\"STATE_NAME\", \"geometry\"]]\n", + " .sort_values(\"STATE_NAME\")\n", + " .reset_index(drop=True)\n", + ")\n", + "print(f\"{len(states)} states/DC, CRS={states.crs}, \"\n", + " f\"bounds={states.total_bounds.round(1).tolist()}\")\n", + "states.head(3)" + ] + }, + { + "cell_type": "markdown", + "id": "3a3b8ac5", + "metadata": {}, + "source": [ + "## Build the regridder and apply\n", + "\n", + "`from_polygons` takes flat 1D arrays of source and target polygons:\n", + "\n", + "- **Source polygons** come from the 1D grid coords via\n", + " `polygons_from_coords`, which builds a rectangle per cell from the\n", + " coordinate midpoints (so a 25×53 grid → 1325 source polygons).\n", + "- **Target polygons** are just the states' `geometry` column.\n", + "\n", + "Source data has to be flattened to a single `src_cell` dimension to match\n", + "the flat polygon array. Constructing the regridder is the expensive step\n", + "— it computes the area of every source/target polygon intersection.\n", + "Once built, `rgr.regrid(...)` is a sparse matrix-vector product against\n", + "the precomputed weights and is essentially instant." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "da3e70c8", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:32.107649Z", + "iopub.status.busy": "2026-05-29T13:27:32.107569Z", + "iopub.status.idle": "2026-05-29T13:27:32.823406Z", + "shell.execute_reply": "2026-05-29T13:27:32.823072Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "state\n", + "Minnesota 4.30\n", + "North Dakota 4.65\n", + "Maine 5.08\n", + "Wyoming 5.53\n", + "Montana 5.78\n", + "Vermont 6.02\n", + "Wisconsin 6.06\n", + "Idaho 6.43\n", + "Michigan 6.75\n", + "South Dakota 7.12\n", + "New Hampshire 7.17\n", + "New York 7.28\n", + "Colorado 7.48\n", + "Iowa 8.46\n", + "Rhode Island 8.50\n", + "Connecticut 8.72\n", + "Washington 8.83\n", + "Massachusetts 8.84\n", + "Oregon 8.99\n", + "Pennsylvania 9.25\n", + "Utah 9.38\n", + "Nebraska 9.57\n", + "Ohio 9.64\n", + "District of Columbia 9.97\n", + "Nevada 10.17\n", + "Illinois 10.24\n", + "West Virginia 10.26\n", + "Indiana 10.47\n", + "New Jersey 11.43\n", + "Maryland 11.47\n", + "Virginia 11.94\n", + "Missouri 12.05\n", + "Kentucky 12.20\n", + "Kansas 12.61\n", + "Delaware 12.77\n", + "New Mexico 12.90\n", + "Tennessee 13.74\n", + "California 14.46\n", + "North Carolina 14.90\n", + "Arkansas 15.33\n", + "Oklahoma 15.34\n", + "South Carolina 15.91\n", + "Arizona 16.53\n", + "Georgia 16.54\n", + "Alabama 16.61\n", + "Mississippi 17.10\n", + "Texas 18.35\n", + "Louisiana 18.85\n", + "Florida 21.93\n", + "dtype: float64" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "src_polys = polygons_from_coords(air.lon.values, air.lat.values)\n", + "tgt_polys = states.geometry.to_numpy()\n", + "\n", + "rgr = ConservativeRegridder.from_polygons(\n", + " source_polygons=src_polys,\n", + " target_polygons=tgt_polys,\n", + " source_dim=\"src_cell\",\n", + " target_dim=\"state\",\n", + " target_coords=xr.Dataset(coords={\"state\": states.STATE_NAME.values}),\n", + ")\n", + "\n", + "src_flat = xr.DataArray(air.values.ravel(), dims=(\"src_cell\",))\n", + "state_mean = rgr.regrid(src_flat)\n", + "state_mean.attrs[\"units\"] = \"degC\"\n", + "state_mean.to_series().sort_values().round(2)" + ] + }, + { + "cell_type": "markdown", + "id": "3542f836", + "metadata": {}, + "source": [ + "## Map + ranked bar chart\n", + "\n", + "States filled by area-weighted mean temperature, with the source grid\n", + "shown underneath for reference. Both panels share the same `vmin`/`vmax`\n", + "so a state's color on the bar chart matches its color on the map. A\n", + "sanity check: the warm/cool gradient should track latitude (Florida and\n", + "the Gulf states warmest, the Upper Midwest and Northeast coolest)." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "bb8d0dda", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:32.824903Z", + "iopub.status.busy": "2026-05-29T13:27:32.824825Z", + "iopub.status.idle": "2026-05-29T13:27:33.062202Z", + "shell.execute_reply": "2026-05-29T13:27:33.061788Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAJOCAYAAADMCCWlAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3QV4FOcWBuAvShJCCCQEDVrcXYp7izsUd3cvTqG4u7UUKa5Feila3LW4uwRLQlzuc/6wYROSsJGVJN/bO5fN7uzM7MzqmfOfYxYcHBwMIiIiIiIiIiIiIjIJ5sbeACIiIiIiIiIiIiL6gkFbIiIiIiIiIiIiIhPCoC0RERERERERERGRCWHQloiIiIiIiIiIiMiEMGhLREREREREREREZEIYtCUiIiIiIiIiIiIyIQzaEhEREREREREREZkQBm2JiIiIiIiIiIiITIilsTeAiIiIiIiITFtQUBCeP3+OZMmSwczMzNibQ0REFG8FBwfDw8MD6dKlg7l55Pm0DNoSERERERFRlCRg6+rqyr1EREQUR548eYIMGTJEejuDtkRERERERBQlybAVjx49gqOjI/eWCWVAv3nzBqlSpYoyW4sMi8fFNPG4mJ7Eekzc3d3ViVDNZ2tkGLQlIiIiIiKiKGlKIjg4OKiJTCfg4ePjo45JYgp4mDoeF9PE42J6EvsxMftGuaHEt0eIiIiIiIiIiIiITBiDtkREREREREREREQmhEFbIiIiIiIiIiIiIhPCoC0RERERERERERGRCWHQloiIiIiIiIiIiMiEMGhLREREREREREREZEIYtCUiIiIiIiIiIiIyIQzaEhEREREREREREZkQBm2JiIiIiIiIiIiITAiDtkREREREREREREQmhEFbIiIiIiIiIiIiIhPCoC0RERERERERERGRCWHQloiIiIiIiIiIiMiEMGhLREREREREREREZEIYtCUiIiIiIiIiIiIyIQzaEhEREREREREREZkQBm2JiIiIiIiIiIiITAiDtkREREREREREREQmhEFbIiIiIiIiIiIiIhPCoC0RERERERERERGRCWHQloiIiIiIiIiIiMiEWBp7A4iIiIiIiBIzS0tL5MuXL/TvkydPYsqUKXB2dkavXr10Xs6PP/6ILVu2wNbWNsz17dq1Q+PGjVG7du1Yb+vDns3hYMWfkaYi2MwMHqld8enV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u1xd8c6YMc73g31o5nfgtWvi7etrgvkAgJTDJTyFvzLVF2B66s/FRTPFO306cUgudh7fzkfY7k8hO4//8EH0p7UlVLC//cZW7mn/6XRsL2l9vO06vmsq+35u9ND/n6aG9hB421/sKfThf6de2oOLnf/uhIXa9/c2LCQs2c6NuNp78u0893YeP9y+T31xseP72eS873HlFxAgpfr1N70JNGPPkV7zTZlzQtKl84r3OA8e+MlrHQs71M8GONLvmGYfa2YvHCdoe+3aNZMFTtDWcXBcHBPHxfE46zG59+//1Ce93iTTFgAAACmHftibkA98U3Y+AxKRi4uLyXadNGmSuX758mXJnTu3vPfeezJixAh5//33TR1dLbsQFd1Ga+xqJnBEO3bsMI2bR48eLUnh7t614uLlmSSPjceFhYfL/cBQuXvRTVzt/slz7GSoGHVNaABA3BC0BQAAQMqRwJitvc9QgvPw8fGRLVu2mAZk2ojsl19+kVKlSllvHzlyZLzGrVy5slkAAEDK5jy5xwAAAHCeTNuELICNMm01i3bdunXm+qJFi6R169bW27t16yZLly41l7du3SrVqlUzdWzr1Klj3WbPnj2mrm7BggXl559/NuvWrl0rbdu2NZevXr1q6tWWLl1ahg0bZjJzlTZX08fWOrzaVE3HUVr3tl27dibDt3DhwvLFF19wrAEAcFBk2gIAAACAHWiAdObMmabxlzYO06DqjRs3Im0THBwsL730kixevNgEX2/dumW9TYOvq1atknPnzpmGYx06dIh03w8++EBatGgh/fv3N83MLHLkyCErV640Dc327dsngwYNkhUrVpjb9LqWWAgJCZFixYqZxmu6b48KCgoyi4WlWRsAAEgcZNoCAAAgxQi3wRdgKzVq1JBt27aZLFlLduyjjhw5Ivnz5zcBW0tZBYumTZuKh4eHFCpUSO7cufPYfTdt2iTt27c3ly3flQZbX375ZSlTpox06dJFDh06ZL1Ns2w9PT1NM7GcOXOabN2ojBo1yjRJsSx58uRJwEwAAIC4ImgLAACAFIPqCHC0Egla3uDTTz+VVq1axfn+mikbk/BoynmMHz/eBII1q3bjxo2RMmYjjqm1drXmblS03IJ2tbYs58+fj/P+AwCA+HOa8ghhoWFmiZdkXtssuhdzNhs/JNS+44fZef7tOLy9nzoPbgbYdXxX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ly5daq2Rr1m5ejZPlSpVrB8EX79+3Yylr120MVpCM28BAIB9ELQFgCgcPnxY3N3d5amn/jvNLHPmzFKsWDFzm0W6dOmkUKFC1utaFuHatWvmspZAuHr1qnlTZaEB2UqVKtl8zvWx9M1YxP3V/dc3ZBYnTpwwmcF62qSnp6d10czbkydP2nyfAABA/LVr107mzZsnly5dklSpUkmWLFmst2nJpq1bt5qAq34Q+/XXX0c5hp69o6WVnn32WfNBtNKSTvohr55NpK8BXn/99Sjvqx/26hlCERcAAJB4qGkLAAkQseOzJTPm0TqytqDdgB8dN2KZhtjw9/c333///XfJlSvXY12uAQCA46hRo4b07dtXfv75Z1N7PjAw0HqblmN64YUXzIfDAQEBkT60jUjP9FH6gbGeQaRWrlxpSiRFrOEfFS2p9MEHH9j4pwIAALFFpi0AREHLC2gTMc1isbh586YcPXpUSpYsGas509IE2bJlk+3bt1vXaW26Xbt2xXg/zaax1LCzyJo1q2kcFjFwG7EpmT6WZvlG3F/d/507d1qv635rcFbf6BUuXDjSkidPHp4HAAA4EP0guHbt2vLpp59ag68Wb7zxhgwZMkT2799vyiNpVmxULB/K6pk+EV9baJatvo7QRRugRkWzcfVMHsuiDVcBAEDiIdMWAKJQpEgRadGihfTo0cPUe9Uas0OHDjUZqro+tjRDRjNVNDCqNW21xq1mtOgbsehoDTptatahQwfzZktPh6xTp46pQff555+bbJs///xT/vjjD/H29rber1+/fuaNne67PtbYsWOtNe6U/gzaJE2bj4WFhUnNmjXNmzBtkKbjdO3alecCAAAOpHfv3qauvpZoikhLFehrEv0wV0scxEXdunXlm2++Ma9R1N69e81jPEpfg3AmDgAASYdMWwCIxrRp08zphE2bNjWNOvSN0bJlyx4riRCTt956Szp27ChdunQxY2gNWa09lyZNmhg7P585c8bUytUMW0vm76RJk0zNOn1jtW3bNhOAjWjQoEHSuXNnE3zVx9Ig7aOZOR9++KG89957JpCsYzZp0sSUSyhQoADPAwAAHIx+ENu9e/fH1g8fPlyaNWtmGozF9WwZ/QB57dq15vWEvhaYPXu2DfcYAADYiku4PYovAgCipBmu+gZJm4toABUAACA50OxeLcekZwxlzJgxqXcH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qWVxc3MzQdiI6+Li9u3bZv900f23lJAIDw83c67HZcOGDeZ4FipUSMqXLy/Dhw83PzeQWAjaAgAAAAAAm7t//74MHDjQZC6uWrXKBEk1WPnoqehDhw6Vfv36yeHDh6Vx48YmcPv+++/Lxx9/bNZ98sknJij7448/Wu+jATsN/GkW5IQJE+S7776TcePGRbsvpUqVMoHjdevWmesakIt4XellDVQqDeLVq1dPKlSoYPZfA9BXr16Vdu3aRfsYXbp0kUuXLpkSBwsWLJApU6bItWvXHttOA5w6zr59++S5556Tl156yQSRNbip91NHjx41AUz92ZQGbGfMmCHffvutHDx4UAYMGCCdOnWy7v/58+eldevW0qxZM9mzZ4+8+uqrZl5jQ8sG6L7r/TRA/uKLL8r//vc/GTZsmPnZNZCpJQQsdO50ez1mOv8a9NVjocfLQo/1l19+afZVj9vq1atlyJAhkR73wYMHMmbMGJk5c6asX79ezp07ZzJqE4POTd++fU3pg127dpmfR+kc6D5rRq3+DI+ifi0SVTgAAAAAAICdXb9+PVzDEPv37zfXT58+ba6PHz8+0naFChUKnz17dqR1H374YXj16tWjHXv06NHhlSpVivHxW7duHd67d29zuX///uFvvvlmeKZMmcIPHz4cHhwcHJ4uXbrw5cuXWx+vUaNGke5//vx5s79Hjx4115955pnwfv36mcs6ht62fft26/bHjx8368aNG2ddp9ffffdd63V/f3+z7o8//jDX16xZY67fvn3buk1gYKDZt02bNkXan1deeSW8Y8eO5vKwYcPCS5YsGen2t95667GxHvXo/mzevNms+/77763r5syZE54mTRrr9fr164d/8sknkcaZOXNmeI4cOaJ9nPnz54dnzpzZen3atGnmcU6cOGFd9/XXX4dny5YtPDby5csXaV6jo4+TIUOGKG97+PBh+OXLlyOtmzt3rtmvXbt2xWo/YhofSCj3xA0RAwAAAAAAZ3D8+HGTMbt161ZTEsCSYasZlaVLl7Zup7VFI2bn6qn4r7zyivTo0cO6Xk+9j1g/VEsqaCanbqun3evt2nDKMn7JkiWt27799ttm0RIMmv2qNENVM3i1bqlmxmqmq5ZXePrpp83te/fulTVr1pjT8h+lj6llCCLSzFh3d3dTMsCicOHCpszBo8qWLWu9rOUDdL+jysi10FIFmpXasGHDSOuDg4NNJrDSjOSnnnoq0u3Vq1ePdszo9kfLQCgtGxBxXWBgoNy7d8/sq87N33//HSmzNjQ01Gyj+6llFlauXGmyg48cOWLup8cn4u1Kv2vpAYscOXLEOA+2psfr0bIK/8SxAcdA0BYAAAAAANicnqqfL18+U7ogZ86cJmirwVoNNkakgUsLS91Tvc+jQUitY6q05qqWFNAyA1pOQYO52kjqiy++MLfrY+lp7hEbhkWsQavBZD2tX+vXalBRg7Za41SDx5aAou6H7v9nn3322M+lwcWE8PDweKyu7KMlIyKyzMnvv/8uuXLlinSbnt6fUBH3R/clunWWfdT90bnXcgyP0hq3WktXa+T27NnTBHZ1/jdu3GgC8XrsLXMc1TwkddDUEozX54UlIA4kFYK2AAAAAADApm7evGmyTzX4WqtWLbNOA3dPolmdGnQ9deqUCcxGZdOmTSYY/M4771jXnT17NlIGpWa5PkqzRzXzVRuOaWMpzaLVQK4GZjVoa6lnqzRjVuvLaiMxHe9JihUrZrJJd+/eLZUqVbJmyOq4cZEqVSpr5qqFZg1rcFYziDVbOCrazMvS0Mxiy5YtYg86N3pso5pjtXPnThPg1SC6pS7svHnzJDnQ54XOt+57+/btH6trq7WOqWuLxEIjMgAAAAAAYFMaHNVGX1qOQIOX2ohKm5LFhmZx6qn1Wv5Ayxfs379fpk2bJmPHjjW3FylSxAQwNbtWSxXodosWLXriuJrJWbt2bdPozBKg1dIAQUFBplFaxIBo7969TcmEjh07yvbt283j/PXXX9K9e/dIAVULbeDVoEEDee2112Tbtm0meKuX06ZNa81UjQ0NRuv2S5culevXr5usVm26pg26tPmYNvXSfdHmWRMnTrQ2Z3v99ddNBvGbb75pAqqzZ882zcHsQUteaFM0PU7atEtLM+ixePfdd83tGszVUhO6fxp810Zj2kAtOdC51+eaPu/0w4Zly5aZn0GbxmnWcIsWLZJ6F+FECNoCAAAAAADbBhtcXU0gT7MutSSCBhxHjx4dq/u++uqrMnXqVBM80+xYDaZqALJAgQLm9ubNm5vx+vTpYzIjNfP2vffei9XYOpYGXS1BW91PDeRqsM5Sz1Zptq/WbdVtGzVqZPZDSytoluWj2ZcWGsjUTGEdr1WrVqYmrwZctWRAbGn5Aw2GDh061IylP6P68MMPzc+owWzNqm3SpIkpl2CZk7x585rM4MWLF0u5cuVMkFRr9tqDlqTQoPLy5culSpUqUq1aNRk3bpwJOCt9fA2wawazHnsNkut+JxdVq1aVHTt2mOCzHkOdb33OaYB6/PjxSb17cCIu2o0sqXcCAAAAAAAgJblw4YLkyZPHNOWqX79+Uu+OU9JgvwbbtaxBchwfzo2atgAAAAAAAAmkJSC0nIFm5V6+fFmGDBliauJq5i2Szt27d039Yi15EVVjufjSMbWOcVwyqYG4IGgLAAAAAACQQFrH9e233zY1ULUsQo0aNUxpAA8PD+Y2ibRp00Zq1qxpLtu6gdiePXvMdzc3N5uOC1hQHgEAAAAAAAAAHAiNyAAAAAAAAADAgRC0BQAAAAAAAAAHQtAWAAAAAAAAABwIQVsAAAAAAAAAcCAEbQEAAAAAAADAgRC0BQAAAAAAAAAHQtAWAAAAAAAAABwIQVsAAAAAAAAAcCAEbQEAAAAAAABAHMf/Af2cSW9gsJiFAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, (ax_map, ax_bar) = plt.subplots(\n", + " 1, 2, figsize=(14, 6), gridspec_kw={\"width_ratios\": [1.6, 1]},\n", + ")\n", + "\n", + "air.plot(ax=ax_map, cmap=\"coolwarm\", alpha=0.5,\n", + " cbar_kwargs={\"shrink\": 0.65, \"label\": \"grid mean T [°C]\"})\n", + "\n", + "vmin, vmax = float(air.min()), float(air.max())\n", + "states_plot = states.assign(mean_T=state_mean.values)\n", + "states_plot.plot(\n", + " column=\"mean_T\", cmap=\"coolwarm\", ax=ax_map,\n", + " edgecolor=\"black\", linewidth=0.4,\n", + " vmin=vmin, vmax=vmax,\n", + ")\n", + "ax_map.set_xlim(-128, -65); ax_map.set_ylim(22, 52)\n", + "ax_map.set_title(\"Annual mean surface T — states vs. source grid\")\n", + "ax_map.set_xlabel(\"longitude\"); ax_map.set_ylabel(\"latitude\")\n", + "\n", + "ordered = state_mean.to_series().sort_values()\n", + "colors = plt.cm.coolwarm((ordered.values - vmin) / (vmax - vmin))\n", + "ax_bar.barh(ordered.index, ordered.values, color=colors)\n", + "ax_bar.set_xlabel(\"area-weighted mean T [°C]\")\n", + "ax_bar.tick_params(axis=\"y\", labelsize=7)\n", + "ax_bar.grid(axis=\"x\", alpha=0.3)\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "803247d2", + "metadata": {}, + "source": [ + "## Conservation check\n", + "\n", + "The internal area matrix `A[i, j] = area(state_i ∩ src_cell_j)` lets us\n", + "verify conservation directly: integrating the source field weighted by\n", + "source-cell coverage should equal integrating the regridded field\n", + "weighted by target-cell area. Equality to machine precision is the\n", + "defining property of *conservative* regridding." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "041a51f3", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:33.063398Z", + "iopub.status.busy": "2026-05-29T13:27:33.063310Z", + "iopub.status.idle": "2026-05-29T13:27:33.156601Z", + "shell.execute_reply": "2026-05-29T13:27:33.156122Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "direct A·s : 9037.413298\n", + "Σ state_mean · a_state : 9037.413298\n", + "relative error : 0.00e+00\n" + ] + } + ], + "source": [ + "A = rgr.areas # (n_states, n_src)\n", + "tgt_area = rgr.target_areas\n", + "src_cover = rgr.source_coverage_areas\n", + "\n", + "direct = float((air.values.ravel() * src_cover).sum())\n", + "via_regrid = float((state_mean.values * tgt_area).sum())\n", + "print(f\"direct A·s : {direct:.6f}\")\n", + "print(f\"Σ state_mean · a_state : {via_regrid:.6f}\")\n", + "print(f\"relative error : {abs(direct - via_regrid) / abs(direct):.2e}\")" + ] + }, + { + "cell_type": "markdown", + "id": "ff49d6b7", + "metadata": {}, + "source": [ + "## Reuse: persist the regridder, apply to summer vs. winter\n", + "\n", + "The weight matrix depends only on the source/target geometry, not on the\n", + "data. Save once with `to_netcdf`, reload with `from_netcdf`, and apply\n", + "to any field on the same source grid — no need to rebuild the (expensive)\n", + "polygon intersection. Below we use one saved regridder on JJA and DJF\n", + "subsets to compute per-state seasonal amplitude. Continental interior\n", + "states show the largest swing; Florida and California — moderated by\n", + "ocean and latitude — show the smallest." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "8fa88419", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:33.157852Z", + "iopub.status.busy": "2026-05-29T13:27:33.157783Z", + "iopub.status.idle": "2026-05-29T13:27:33.428075Z", + "shell.execute_reply": "2026-05-29T13:27:33.427561Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "wrote states_regridder.nc (38.0 KB)\n", + "largest seasonal swing:\n", + "state\n", + "Minnesota 30.9\n", + "North Dakota 30.0\n", + "Wisconsin 28.4\n", + "Iowa 27.8\n", + "South Dakota 27.4\n", + "Name: JJA − DJF [°C], dtype: float64\n", + "\n", + "smallest seasonal swing (maritime / subtropical):\n", + "state\n", + "Florida 10.1\n", + "California 14.1\n", + "Georgia 16.1\n", + "South Carolina 16.6\n", + "Louisiana 16.6\n", + "Name: JJA − DJF [°C], dtype: float64\n" + ] + } + ], + "source": [ + "import tempfile\n", + "from pathlib import Path\n", + "path = Path(tempfile.gettempdir()) / \"states_regridder.nc\"\n", + "rgr.to_netcdf(path)\n", + "print(f\"wrote {path.name} ({path.stat().st_size / 1024:.1f} KB)\")\n", + "\n", + "rgr2 = ConservativeRegridder.from_netcdf(path)\n", + "\n", + "def seasonal_mean(months):\n", + " sub = ds[\"air\"].sel(time=ds[\"time.month\"].isin(months)).mean(\"time\") - 273.15\n", + " sub = sub.sortby(\"lat\")\n", + " sub = sub.assign_coords(lon=(((sub.lon + 180) % 360) - 180)).sortby(\"lon\")\n", + " flat = xr.DataArray(sub.values.ravel(), dims=(\"src_cell\",))\n", + " return rgr2.regrid(flat)\n", + "\n", + "summer = seasonal_mean([6, 7, 8])\n", + "winter = seasonal_mean([12, 1, 2])\n", + "amplitude = (summer - winter).to_series().rename(\"JJA − DJF [°C]\").round(1)\n", + "print(\"largest seasonal swing:\")\n", + "print(amplitude.sort_values(ascending=False).head(5))\n", + "print(\"\\nsmallest seasonal swing (maritime / subtropical):\")\n", + "print(amplitude.sort_values().head(5))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.12.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/notebooks/demos/demo_conservative_2d_unstructured.ipynb b/docs/notebooks/demos/demo_conservative_2d_unstructured.ipynb new file mode 100644 index 0000000..09f387a --- /dev/null +++ b/docs/notebooks/demos/demo_conservative_2d_unstructured.ipynb @@ -0,0 +1,337 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0", + "metadata": {}, + "source": [ + "# Conservative 2D regrid — unstructured mesh + save/load\n", + "\n", + "**Conservative regridding** resamples a gridded field while preserving its\n", + "area-weighted integral — the right tool for fluxes and intensive\n", + "quantities, where bilinear or nearest-neighbor interpolation would bias\n", + "the total.\n", + "\n", + "**Unstructured meshes** — ICON triangles, MPAS hexagons, finite-element\n", + "models, generic Voronoi tessellations — are the natural geometry for\n", + "simulations that need adaptive resolution (denser cells over land, coarser\n", + "over open ocean). They have no `(y, x)` index structure: every cell is\n", + "just an arbitrary polygon. So they're never 1D-separable, and the fast\n", + "`.regrid.conservative` accessor doesn't apply.\n", + "\n", + "`ConservativeRegridder.from_polygons` takes a flat 1D array of shapely\n", + "polygons as source and/or target. The same machinery handles\n", + "structured→unstructured, unstructured→structured, and unstructured→\n", + "unstructured.\n", + "\n", + "**In this notebook.**\n", + "\n", + "1. Build a synthetic Voronoi mesh as a stand-in for a real ICON/MPAS dataset.\n", + "2. Regrid a smooth analytic field from a structured lat/lon source onto\n", + " the mesh.\n", + "3. **Persist the regridder to disk** — for a fixed source/target pair the\n", + " weight matrix is the same forever, so saving it lets a long-running\n", + " pipeline (or a follow-up notebook) skip the polygon-intersection build\n", + " on restart." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "1", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:25.418264Z", + "iopub.status.busy": "2026-05-29T13:27:25.418017Z", + "iopub.status.idle": "2026-05-29T13:27:26.673193Z", + "shell.execute_reply": "2026-05-29T13:27:26.672719Z" + } + }, + "outputs": [], + "source": [ + "import tempfile\n", + "from pathlib import Path\n", + "\n", + "import numpy as np\n", + "import xarray as xr\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib.collections import PolyCollection\n", + "from scipy.spatial import Voronoi\n", + "import shapely\n", + "\n", + "import xarray_regrid # noqa: F401\n", + "from xarray_regrid import ConservativeRegridder, polygons_from_coords" + ] + }, + { + "cell_type": "markdown", + "id": "2", + "metadata": {}, + "source": [ + "## Build a Voronoi mesh\n", + "\n", + "Real pipelines load a pre-built mesh (UGRID, ICON, MPAS); for a\n", + "self-contained demo we synthesize one — jitter a regular grid of generator\n", + "points, take the Voronoi tessellation, and clip to the bounding box. The\n", + "construction details aren't the point: `from_polygons` only needs a 1D\n", + "array of shapely polygons however we get them." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "3", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:26.675191Z", + "iopub.status.busy": "2026-05-29T13:27:26.675033Z", + "iopub.status.idle": "2026-05-29T13:27:26.689933Z", + "shell.execute_reply": "2026-05-29T13:27:26.689581Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "398 mesh cells\n" + ] + } + ], + "source": [ + "def voronoi_mesh(n_points, bbox, seed=0):\n", + " rng = np.random.default_rng(seed)\n", + " x0, y0, x1, y1 = bbox\n", + " side = int(np.sqrt(n_points))\n", + " xs, ys = np.linspace(x0, x1, side), np.linspace(y0, y1, side)\n", + " pts = np.column_stack([np.repeat(xs, side), np.tile(ys, side)])\n", + " pts += rng.normal(scale=(x1 - x0) / side * 0.25, size=pts.shape)\n", + " halo = np.array([\n", + " [2*x0 - x1, 2*y0 - y1], [2*x1 - x0, 2*y0 - y1],\n", + " [2*x0 - x1, 2*y1 - y0], [2*x1 - x0, 2*y1 - y0],\n", + " ])\n", + " vor = Voronoi(np.concatenate([pts, halo]))\n", + " clip = shapely.box(x0, y0, x1, y1)\n", + " polys = []\n", + " for i in range(len(pts)):\n", + " r = vor.regions[vor.point_region[i]]\n", + " if not r or -1 in r:\n", + " continue\n", + " p = shapely.intersection(shapely.Polygon(vor.vertices[r]), clip)\n", + " if p.is_empty or p.geom_type != \"Polygon\":\n", + " continue\n", + " polys.append(p)\n", + " return np.array(polys, dtype=object)\n", + "\n", + "bbox = (-120, -50, 120, 50)\n", + "mesh_polys = voronoi_mesh(n_points=400, bbox=bbox)\n", + "print(f\"{len(mesh_polys)} mesh cells\")" + ] + }, + { + "cell_type": "markdown", + "id": "4", + "metadata": {}, + "source": [ + "## Structured lat/lon source\n", + "\n", + "A smooth `sin(2λ)·cos(3φ)` field on a 1° rectilinear grid — wavy enough\n", + "that the regridded mesh values are visually distinct, smooth enough that\n", + "no individual mesh cell aliases the pattern." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "5", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:26.691245Z", + "iopub.status.busy": "2026-05-29T13:27:26.691164Z", + "iopub.status.idle": "2026-05-29T13:27:26.694539Z", + "shell.execute_reply": "2026-05-29T13:27:26.694114Z" + } + }, + "outputs": [], + "source": [ + "lat_s = np.linspace(-50, 50, 100, endpoint=False) + 0.5\n", + "lon_s = np.linspace(-120, 120, 240, endpoint=False) + 0.5\n", + "Lo, La = np.meshgrid(lon_s, lat_s)\n", + "src = xr.DataArray(\n", + " np.sin(np.deg2rad(Lo) * 2) * np.cos(np.deg2rad(La) * 3),\n", + " dims=(\"latitude\", \"longitude\"),\n", + " coords={\"latitude\": lat_s, \"longitude\": lon_s},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "6", + "metadata": {}, + "source": [ + "## Regrid onto the mesh\n", + "\n", + "`from_polygons` takes flat 1D arrays of source and target polygons. Source\n", + "polygons come from the 1D grid coords via `polygons_from_coords` (one\n", + "rectangle per cell, built from coordinate midpoints); target polygons are\n", + "the Voronoi mesh cells. Source data has to be flattened to a single\n", + "`src_cell` dimension to match the flat polygon array." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "7", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:26.695935Z", + "iopub.status.busy": "2026-05-29T13:27:26.695850Z", + "iopub.status.idle": "2026-05-29T13:27:27.456738Z", + "shell.execute_reply": "2026-05-29T13:27:27.456264Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ConservativeRegridder(src_dims=('src_cell',), dst_dims=('cell',), 398x24000, nnz=31875)\n" + ] + } + ], + "source": [ + "rgr = ConservativeRegridder.from_polygons(\n", + " source_polygons=polygons_from_coords(lon_s, lat_s),\n", + " target_polygons=mesh_polys,\n", + " source_dim=\"src_cell\",\n", + " target_dim=\"cell\",\n", + ")\n", + "print(rgr)\n", + "\n", + "src_flat = xr.DataArray(src.values.ravel(), dims=(\"src_cell\",))\n", + "mesh_vals = rgr.regrid(src_flat)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "8", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:27.458386Z", + "iopub.status.busy": "2026-05-29T13:27:27.458292Z", + "iopub.status.idle": "2026-05-29T13:27:27.538742Z", + "shell.execute_reply": "2026-05-29T13:27:27.538305Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'regridded onto 398-cell Voronoi mesh')" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAooAAAEYCAYAAADbMtdZAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzsvQdcXNl5Nv5MZSpD772DBAgQSKj33vvu2ms7iZMvif3F9vclsfNP7Nhx4rTPdoodO467t2i16r13oYqEaEKA6L3OAMP0+f/egwYBmmHuFLRF8/z2Lpo7d24995znvOV5eVar1QoffPDBBx988MEHH3yYAv7UFT744IMPPvjggw8++OAjij744IMPPvjggw8+OITPouiDDz744IMPPvjgg134iKIPPvjggw8++OCDD3bhI4o++OCDDz744IMPPtiFjyj64IMPPvjggw8++GAXPqLogw8++OCDDz744INd+IiiDz744IMPPvjggw924SOKPvjggw8++OCDDz7YhY8o+uCDDz744IMPPvhgFz6i6IMPPvjggw8++OBFXLt2DZs3b0ZUVBR4PB6OHDni9DdXrlxBfn4+/Pz8kJKSgl/96lcvbfOjH/0ICQkJkEgkmDdvHu7evTvjz81HFH3wwQcffPDBBx+8iJGREeTm5jJixwUNDQ3YuHEjli9fjkePHuErX/kK/uAP/gBnz54d32b//v342te+hm9961soLS1l+1+7di26u7tn9Nn5iKIPn1jQ7ItmavTXGZYtW8YWb+6TK/72b/+W7dOHTw7stYPPf/7zbCbvw8y8J6/qnD/88MOP+lR8eA2wfv16fPe738X27ds5bf+Tn/wEiYmJ+H//7/8hMzMTX/rSl7Br1y784Ac/GN/m+9//Pr74xS/iC1/4ArKysthvZDIZfvGLX8zglfiIog8+fGqh1WoZSfX2YD46Oorf//3fx+zZs6FSqaBQKNjM9t/+7d9gNBpf2v78+fNYtGgR69ACAwNZ59fY2PjSdjqdDt/73vdYB0jbRkdHY/fu3aisrMQnATSrFwqF+MxnPuNwm6GhIUilUuzYseOVnpsPPvgAu32ORqPhvKjV6pfW6fV6r9zakpISrFq1atI6shbSeoLBYMCDBw8mbcPn89ln2zYzBeGM7t0HH2YQS5YsYaRFLBb77rMDovjtb3+b/ZuLNZUr6J4Teduw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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(figsize=(8, 4))\n", + "patches = [np.asarray(p.exterior.coords) for p in mesh_polys]\n", + "pc = PolyCollection(patches, array=mesh_vals.values, cmap=\"RdBu_r\",\n", + " edgecolor=\"0.4\", lw=0.3, clim=(-1, 1))\n", + "ax.add_collection(pc)\n", + "ax.set_xlim(bbox[0], bbox[2]); ax.set_ylim(bbox[1], bbox[3])\n", + "ax.set_aspect(\"equal\")\n", + "fig.colorbar(pc, ax=ax, shrink=0.8)\n", + "ax.set_title(f\"regridded onto {len(mesh_polys)}-cell Voronoi mesh\")" + ] + }, + { + "cell_type": "markdown", + "id": "9", + "metadata": {}, + "source": [ + "## Persist the regridder\n", + "\n", + "The weight matrix is purely a function of source and target geometry —\n", + "not of the data — so for a fixed source/target pair it never needs to\n", + "change. `to_netcdf` writes it (along with shape and version metadata) to\n", + "a small NetCDF; `from_netcdf` rebuilds the regridder. A reload-then-apply\n", + "gives bit-identical output to the original, so a long-running pipeline\n", + "can skip the (expensive) polygon-intersection build on restart." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "10", + "metadata": { + "execution": { + "iopub.execute_input": "2026-05-29T13:27:27.539955Z", + "iopub.status.busy": "2026-05-29T13:27:27.539884Z", + "iopub.status.idle": "2026-05-29T13:27:27.834293Z", + "shell.execute_reply": "2026-05-29T13:27:27.833852Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " xarray_regrid_version: 0.4.2\n", + " created: 2026-05-29T13:27:27.541727+00:00\n", + " src_shape: 24000\n", + " dst_shape: 398\n", + "\n", + "reload bit-identical: True\n" + ] + } + ], + "source": [ + "path = Path(tempfile.gettempdir()) / \"mesh_regridder.nc\"\n", + "rgr.to_netcdf(path)\n", + "\n", + "with xr.open_dataset(path) as weights:\n", + " for k in (\"xarray_regrid_version\", \"created\", \"src_shape\", \"dst_shape\"):\n", + " print(f\" {k}: {weights.attrs[k]}\")\n", + "\n", + "rgr2 = ConservativeRegridder.from_netcdf(path)\n", + "same = np.array_equal(rgr.regrid(src_flat).values, rgr2.regrid(src_flat).values)\n", + "print(f\"\\nreload bit-identical: {same}\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.12.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/notebooks/index.rst b/docs/notebooks/index.rst index c923b05..fdedc84 100644 --- a/docs/notebooks/index.rst +++ b/docs/notebooks/index.rst @@ -22,3 +22,11 @@ Most notebooks compare the methods implemented in xarray-regrid against more sta demos/demo_most_common.ipynb demos/demo_variance.ipynb demos/demo_conservative_nan_threshold.ipynb + +.. toctree:: + :maxdepth: 1 + :caption: Conservative 2D (curvilinear / unstructured / regions) + + demos/demo_conservative_2d_curvilinear.ipynb + demos/demo_conservative_2d_unstructured.ipynb + demos/demo_conservative_2d_regions.ipynb diff --git a/pyproject.toml b/pyproject.toml index 50ecd81..8fa6839 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,6 +44,16 @@ accel = [ "opt-einsum", "dask[distributed]", ] +conservative-2d = [ + # For conservative regridding on grids that aren't 1D-separable + # (curvilinear, unstructured). Uses shapely for 2D polygon intersection. + "shapely>=2.0", + # Sparse weight storage. Without it the (n_dst, n_src) area matrix falls + # back to dense, which is infeasible for mesh/region problems of any size. + "sparse", + # Needed by ConservativeRegridder.to_netcdf / from_netcdf (group support). + "h5netcdf", +] benchmarking = [ "matplotlib", "zarr", @@ -53,6 +63,15 @@ benchmarking = [ "pooch", "cftime", # required for decode time of test netCDF files ] +notebooks = [ + # Extra dependencies needed to run docs/notebooks/demos/*.ipynb. + # Combine with [conservative-2d] and [accel] for the full demo set, + # e.g.: pip install "xarray-regrid[notebooks,conservative-2d,accel]" + "matplotlib", + "pooch", # xr.tutorial.open_dataset backend + "geopandas", # polygon regions demo + "geodatasets", # ships the ncovr US county boundaries +] dev = [ "hatch", "ruff", @@ -74,7 +93,7 @@ docs = [ # Required for ReadTheDocs path = "src/xarray_regrid/__init__.py" [tool.hatch.envs.default] -features = ["accel", "dev", "benchmarking"] +features = ["accel", "dev", "benchmarking", "conservative-2d"] [tool.hatch.envs.default.scripts] lint = [ @@ -185,3 +204,17 @@ warn_return_any = true warn_unused_ignores = true show_error_codes = true exclude = ["tests/*", "docs"] + +# shapely and sparse are untyped; the conservative_2d module bridges to them, +# so treating every signature that mentions sparse.COO as an error is noise. +[[tool.mypy.overrides]] +module = [ + "xarray_regrid.methods.conservative_2d", + "xarray_regrid.methods._conservative_2d_serialization", +] +disallow_any_unimported = false +warn_return_any = false + +[[tool.mypy.overrides]] +module = ["shapely", "shapely.*", "sparse", "scipy", "scipy.*"] +ignore_missing_imports = true diff --git a/src/xarray_regrid/__init__.py b/src/xarray_regrid/__init__.py index 0dcaaec..61d94c0 100644 --- a/src/xarray_regrid/__init__.py +++ b/src/xarray_regrid/__init__.py @@ -1,12 +1,18 @@ from xarray_regrid import methods +from xarray_regrid.methods.conservative_2d import ( + ConservativeRegridder, + polygons_from_coords, +) from xarray_regrid.regrid import Regridder from xarray_regrid.utils import Grid, create_regridding_dataset __all__ = [ + "ConservativeRegridder", "Grid", "Regridder", "create_regridding_dataset", "methods", + "polygons_from_coords", ] __version__ = "0.4.2" diff --git a/src/xarray_regrid/methods/_conservative_2d_serialization.py b/src/xarray_regrid/methods/_conservative_2d_serialization.py new file mode 100644 index 0000000..6bdb9a6 --- /dev/null +++ b/src/xarray_regrid/methods/_conservative_2d_serialization.py @@ -0,0 +1,116 @@ +from datetime import datetime, timezone +from importlib.metadata import PackageNotFoundError, version +from pathlib import Path +from typing import Any + +import numpy as np +import xarray as xr + +from xarray_regrid.methods._conservative_2d_spec import RegridSpec + +try: + import sparse + + _HAS_SPARSE = True +except ImportError: # pragma: no cover + sparse = None + _HAS_SPARSE = False + +# Bump on breaking change to the on-disk format in ConservativeRegridder.to_netcdf. +_SCHEMA_VERSION = 1 + + +def _package_version() -> str: + try: + return version("xarray-regrid") + except PackageNotFoundError: + return "unknown" + + +def _coo_components( + weights: "sparse.COO | np.ndarray", +) -> tuple[np.ndarray, np.ndarray, np.ndarray, tuple[int, int]]: + if _HAS_SPARSE and isinstance(weights, sparse.COO): + coords = np.asarray(weights.coords) + return ( + coords[0].astype(np.int64, copy=False), + coords[1].astype(np.int64, copy=False), + np.asarray(weights.data), + weights.shape, + ) + arr = np.asarray(weights) + rows, cols = np.nonzero(arr) + return ( + rows.astype(np.int64, copy=False), + cols.astype(np.int64, copy=False), + arr[rows, cols], + arr.shape, + ) + + +def _coo_from_components( + row: np.ndarray, + col: np.ndarray, + data: np.ndarray, + shape: tuple[int, int], +) -> "sparse.COO | np.ndarray": + if _HAS_SPARSE: + return sparse.COO( + coords=np.stack([row, col]), + data=data, + shape=shape, + has_duplicates=False, + sorted=False, + ) + dense = np.zeros(shape, dtype=data.dtype if data.size else np.float64) + dense[row, col] = data + return dense + + +def _metadata_attrs( + spec: RegridSpec, source_coords: xr.Dataset, target_coords: xr.Dataset +) -> dict[str, Any]: + attrs: dict[str, Any] = { + "x_coord": spec.x_coord, + "y_coord": spec.y_coord, + "manifold": spec.manifold, + "src_dims": [str(d) for d in spec.src_dims], + "dst_dims": [str(d) for d in spec.dst_dims], + "src_shape": list(spec.src_shape), + "dst_shape": list(spec.dst_shape), + "xarray_regrid_version": _package_version(), + "created": datetime.now(tz=timezone.utc).isoformat(), + "schema_version": _SCHEMA_VERSION, + } + for prefix, ds, coord in [ + ("source_x", source_coords, spec.x_coord), + ("source_y", source_coords, spec.y_coord), + ("target_x", target_coords, spec.x_coord), + ("target_y", target_coords, spec.y_coord), + ]: + if coord and coord in ds.coords and ds[coord].size: + attrs[f"{prefix}_range"] = [float(ds[coord].min()), float(ds[coord].max())] + return attrs + + +def _metadata_from_attrs(attrs: dict[str, Any], path: Path) -> RegridSpec: + """Parse and validate regridding spec metadata from netCDF attrs.""" + schema_version = int(attrs.get("schema_version", 0)) + if schema_version != _SCHEMA_VERSION: + msg = ( + f"regridder file at {path} uses schema version {schema_version}; " + f"this xarray-regrid understands {_SCHEMA_VERSION}. " + "Upgrade xarray-regrid or re-save." + ) + raise ValueError(msg) + + manifold = str(attrs["manifold"]) + return RegridSpec( + x_coord=str(attrs["x_coord"]), + y_coord=str(attrs["y_coord"]), + manifold=manifold, # type: ignore[arg-type] + src_dims=tuple(str(d) for d in np.atleast_1d(attrs["src_dims"])), + dst_dims=tuple(str(d) for d in np.atleast_1d(attrs["dst_dims"])), + src_shape=tuple(int(s) for s in np.atleast_1d(attrs["src_shape"])), + dst_shape=tuple(int(s) for s in np.atleast_1d(attrs["dst_shape"])), + ) diff --git a/src/xarray_regrid/methods/_conservative_2d_spec.py b/src/xarray_regrid/methods/_conservative_2d_spec.py new file mode 100644 index 0000000..2920162 --- /dev/null +++ b/src/xarray_regrid/methods/_conservative_2d_spec.py @@ -0,0 +1,33 @@ +from collections.abc import Hashable +from dataclasses import dataclass, replace +from typing import Literal + +# Geometry backend used to build cell polygons and compute their intersections. +# - "planar": raw shapely on the user's coords +# - "cea": Lambert cylindrical equal-area projection of 1D lat/lon (degrees) +# — analytic spherical areas at planar cost +# Future backends (e.g. true great-circle "s2") plug in via _GRID_BUILDERS. +Manifold = Literal["planar", "cea"] + + +@dataclass(frozen=True) +class RegridSpec: + """Canonical metadata describing a source->target regridding layout.""" + + src_dims: tuple[Hashable, ...] + dst_dims: tuple[Hashable, ...] + src_shape: tuple[int, ...] + dst_shape: tuple[int, ...] + x_coord: str + y_coord: str + manifold: Manifold + + def transposed(self) -> "RegridSpec": + """Swap source and target — same layout, opposite direction.""" + return replace( + self, + src_dims=self.dst_dims, + dst_dims=self.src_dims, + src_shape=self.dst_shape, + dst_shape=self.src_shape, + ) diff --git a/src/xarray_regrid/methods/conservative.py b/src/xarray_regrid/methods/conservative.py index 2ab67d9..c055928 100644 --- a/src/xarray_regrid/methods/conservative.py +++ b/src/xarray_regrid/methods/conservative.py @@ -7,7 +7,7 @@ import xarray as xr try: - import sparse # type: ignore + import sparse except ImportError: sparse = None @@ -277,8 +277,7 @@ def format_weights( 3. Weights are converted to a sparse representation (on a per chunk basis) if the `sparse` package is available. """ - # Use single precision weights at minimum, double if input is double - weights_dtype = np.result_type(np.float32, input_dtype) + weights_dtype = utils.min_weight_dtype(input_dtype) new_weights = weights.copy().astype(weights_dtype) chunks: dict[Hashable, tuple[int, ...] | int] = {} diff --git a/src/xarray_regrid/methods/conservative_2d.py b/src/xarray_regrid/methods/conservative_2d.py new file mode 100644 index 0000000..b873c44 --- /dev/null +++ b/src/xarray_regrid/methods/conservative_2d.py @@ -0,0 +1,1218 @@ +"""Conservative regridding for grids that aren't 1D-separable. + +The existing ``conservative`` method uses axis-factored 1D overlap — fast and +elegant but strictly rectilinear. This module computes the full 2D cell +intersection via shapely, so it handles: + +- curvilinear grids (2D ``lat[i, j]`` / ``lon[i, j]`` coordinate variables) +- unstructured meshes (arbitrary polygon cells, via + :meth:`ConservativeRegridder.from_polygons`) +- grid-to-polygon aggregation (e.g. gridded data → country shapes) + +For rectilinear grids a cheap analytic fast-path is used, but this module is +still slower and more memory-intensive than ``conservative``; prefer the +axis-factored path when your grid is 1D-separable. + +Requires ``shapely >= 2.0``. If ``sparse`` is available, the weight matrix is +stored as ``sparse.COO``; otherwise a dense numpy matrix is used. +""" + +import math +import os +import warnings +from collections.abc import Callable, Hashable +from concurrent.futures import ThreadPoolExecutor +from dataclasses import dataclass +from functools import cached_property +from pathlib import Path +from typing import Any, Literal, cast + +import numpy as np +import scipy.sparse as sp +import xarray as xr + +from xarray_regrid import utils +from xarray_regrid.methods._conservative_2d_serialization import ( + _coo_components, + _coo_from_components, + _metadata_attrs, + _metadata_from_attrs, +) +from xarray_regrid.methods._conservative_2d_spec import Manifold, RegridSpec +from xarray_regrid.methods.conservative import get_valid_threshold + +NetcdfEngine = Literal["netcdf4", "scipy", "h5netcdf"] | None + + +try: + import shapely + from shapely import affinity + from shapely.strtree import STRtree + + _HAS_SHAPELY = True +except ImportError: # pragma: no cover + shapely = None + affinity = None + STRtree = None + _HAS_SHAPELY = False + +try: + import sparse + + _HAS_SPARSE = True +except ImportError: # pragma: no cover + sparse = None + _HAS_SPARSE = False + + +# We fill NaNs with 0 ourselves before matmul (see `_apply_core`), so sparse's +# "NaN will not be propagated" warning is spurious. A module-level filter +# avoids `warnings.catch_warnings` inside the hot matmul path, which is not +# thread-safe — dask threads would race on the global `warnings.filters` list. +warnings.filterwarnings( + "ignore", + message="Nan will not be propagated in matrix multiplication", + category=RuntimeWarning, +) + + +SHAPELY_IMPORT_ERROR = ( + "polygon conservative regridding requires shapely >= 2.0; " + "install with `pip install shapely`." +) + + +def _check_shapely() -> None: + if not _HAS_SHAPELY: + raise ImportError(SHAPELY_IMPORT_ERROR) + + +class _Direction: + """Lazy weights, apply matrix, and coverage mask for one regrid direction. + + Holds the raw ``(n_dst, n_src)`` area matrix in this direction's orientation + and derives, on first access: + + - ``weights``: row-normalized weight matrix + - ``apply_matrix``: the weights as a scipy CSR matrix, used by + ``_apply_core``'s ``(W @ data.T).T`` matmul (see :func:`_to_csr`) + - ``coverage``: which output cells have any source overlap + + A regridder holds two of these (forward, backward); transposing the + regridder swaps them with no recomputation. + """ + + def __init__(self, areas: "sparse.COO | np.ndarray") -> None: + self.areas = areas + + @cached_property + def weights(self) -> "sparse.COO | np.ndarray": + return _row_normalize(self.areas) + + @cached_property + def apply_matrix(self) -> "sp.csr_matrix": + return _to_csr(self.weights) + + @cached_property + def coverage(self) -> np.ndarray: + return _coverage_mask(self.areas) + + +class ConservativeRegridder: + """Reusable conservative regridder for grids that aren't 1D-separable: + curvilinear (2D ``lat``/``lon``), unstructured (via :meth:`from_polygons`), + or arbitrary polygon-to-polygon aggregation. For purely 1D-separable + rectilinear grids, the ``.regrid.conservative`` accessor is faster. + + Build once, apply to many fields via :meth:`regrid` (or by calling the + regridder); ``.T`` gives the backward regridder. Forward and backward + weight matrices are cached lazily. Requires ``shapely >= 2.0``. + + The unnormalized cell-intersection area matrix + ``A[i, j] = area(target_i ∩ source_j)`` is exposed as ``self.areas`` + (sparse ``(n_dst, n_src)`` if the ``sparse`` package is available, dense + otherwise) — useful for conservation diagnostics and per-cell coverage + analysis. + """ + + def __init__( + self, + source: xr.DataArray | xr.Dataset, + target: xr.Dataset, + x_coord: str = "longitude", + y_coord: str = "latitude", + manifold: Manifold = "planar", + n_threads: int | None = None, + ) -> None: + _check_shapely() + _check_manifold(manifold) + source_grid, target_grid, src_x_sort_idx = _normalize_longitude_coords( + source, target, x_coord + ) + src_dims = _spatial_dims(source_grid, x_coord, y_coord) + dst_dims = _spatial_dims(target_grid, x_coord, y_coord) + if not src_dims: + msg = f"source has no dims for coords {x_coord!r}, {y_coord!r}" + raise ValueError(msg) + if not dst_dims: + msg = f"target has no dims for coords {x_coord!r}, {y_coord!r}" + raise ValueError(msg) + spec = RegridSpec( + src_dims=src_dims, + dst_dims=dst_dims, + src_shape=tuple(int(source.sizes[d]) for d in src_dims), + dst_shape=tuple(int(target.sizes[d]) for d in dst_dims), + x_coord=x_coord, + y_coord=y_coord, + manifold=manifold, + ) + src_grid = _grid_from_coords(source_grid, x_coord, y_coord, src_dims, manifold) + dst_grid = _grid_from_coords(target_grid, x_coord, y_coord, dst_dims, manifold) + areas = _build_intersection_areas(src_grid, dst_grid, n_threads=n_threads) + if src_x_sort_idx is not None: + x_dim_index = src_dims.index(source[x_coord].dims[0]) + areas = _remap_columns_for_axis_sort( + areas, src_x_sort_idx, spec.src_shape, x_dim_index + ) + self._init_state( + areas=areas, + source_coords=source.coords.to_dataset(), + target_coords=target.coords.to_dataset(), + spec=spec, + ) + + def _init_state( + self, + *, + areas: "sparse.COO | np.ndarray", + source_coords: xr.Dataset, + target_coords: xr.Dataset, + spec: RegridSpec, + ) -> None: + self.areas = areas + self._source_coords = source_coords + self._target_coords = target_coords + self._spec = spec + + @property + def spec(self) -> RegridSpec: + """Canonical metadata describing this regridder's layout.""" + return self._spec + + @property + def x_coord(self) -> str: + return self._spec.x_coord + + @property + def y_coord(self) -> str: + return self._spec.y_coord + + @property + def manifold(self) -> Manifold: + return self._spec.manifold + + @cached_property + def _forward(self) -> _Direction: + return _Direction(self.areas) + + @cached_property + def _backward(self) -> _Direction: + return _Direction(_transpose_weights(self.areas)) + + @property + def forward_weights(self) -> "sparse.COO | np.ndarray": + """The row-normalized forward weight matrix (source → target).""" + return self._forward.weights + + @property + def backward_weights(self) -> "sparse.COO | np.ndarray": + """The row-normalized backward weight matrix (target → source).""" + return self._backward.weights + + @property + def target_areas(self) -> np.ndarray: + """Area of each target cell overlapped by the source domain.""" + return _sum_matrix_axis_1d(self.areas, axis=1) + + @property + def source_coverage_areas(self) -> np.ndarray: + """Area of each source cell covered by target cells.""" + return _sum_matrix_axis_1d(self.areas, axis=0) + + def regrid( + self, + data: xr.DataArray | xr.Dataset, + skipna: bool = True, + nan_threshold: float = 1.0, + ) -> xr.DataArray | xr.Dataset: + """Regrid ``data`` forward (source → target).""" + return _apply_stored_weights( + data, + direction=self._forward, + spec=self.spec, + target_coords=self._target_coords, + skipna=skipna, + nan_threshold=nan_threshold, + ) + + def __call__( + self, + data: xr.DataArray | xr.Dataset, + skipna: bool = True, + nan_threshold: float = 1.0, + ) -> xr.DataArray | xr.Dataset: + return self.regrid(data, skipna=skipna, nan_threshold=nan_threshold) + + def transpose(self) -> "ConservativeRegridder": + """Return the backward regridder (target → source). The original's + forward Direction becomes the new's backward (and vice versa), so any + already-computed weight matrices are reused, not recomputed.""" + new = type(self)._from_state( + areas=_transpose_weights(self.areas), + source_coords=self._target_coords, + target_coords=self._source_coords, + spec=self._spec.transposed(), + ) + if "_forward" in self.__dict__: + new.__dict__["_backward"] = self.__dict__["_forward"] + if "_backward" in self.__dict__: + new.__dict__["_forward"] = self.__dict__["_backward"] + return new + + @property + def T(self) -> "ConservativeRegridder": # noqa: N802 + """Alias for :meth:`transpose` (numpy-style transpose).""" + return self.transpose() + + def __repr__(self) -> str: + nnz = getattr(self.areas, "nnz", None) + shape = getattr(self.areas, "shape", (None, None)) + nnz_str = f"nnz={nnz}" if nnz is not None else "dense" + return ( + f"ConservativeRegridder(src_dims={self._spec.src_dims}, " + f"dst_dims={self._spec.dst_dims}, {shape[0]}x{shape[1]}, {nnz_str})" + ) + + def to_netcdf(self, path: str | Path, engine: NetcdfEngine = None) -> None: + """Save the regridder — its area-intersection matrix (:attr:`areas`) + plus reproducibility metadata — to a netCDF file. Requires a + group-aware engine (``netcdf4`` or ``h5netcdf``); ``engine`` is + forwarded to :func:`xarray.Dataset.to_netcdf`.""" + path = Path(path) + row, col, data, shape = _coo_components(self.areas) + ds_weights = xr.Dataset( + { + "_coo_row": (("nnz",), row), + "_coo_col": (("nnz",), col), + "_coo_data": (("nnz",), data), + }, + attrs={ + **_metadata_attrs(self.spec, self._source_coords, self._target_coords), + "n_dst": int(shape[0]), + "n_src": int(shape[1]), + }, + ) + ds_weights.to_netcdf(path, mode="w", engine=engine) + self._source_coords.to_netcdf( + path, mode="a", group="source_coords", engine=engine + ) + self._target_coords.to_netcdf( + path, mode="a", group="target_coords", engine=engine + ) + + @classmethod + def from_netcdf( + cls, path: str | Path, engine: NetcdfEngine = None + ) -> "ConservativeRegridder": + """Reload a regridder previously written with :meth:`to_netcdf`. + + Validates ``schema_version``; raises :class:`ValueError` if the file + was written by an incompatible version. + """ + path = Path(path) + with xr.open_dataset(path, engine=engine) as ds_weights: + attrs = dict(ds_weights.attrs) + n_dst = int(attrs.pop("n_dst")) + n_src = int(attrs.pop("n_src")) + row = np.asarray(ds_weights["_coo_row"].values) + col = np.asarray(ds_weights["_coo_col"].values) + data = np.asarray(ds_weights["_coo_data"].values) + meta = _metadata_from_attrs(attrs, path) + + with xr.open_dataset(path, group="source_coords", engine=engine) as g: + source_coords = g.load() + with xr.open_dataset(path, group="target_coords", engine=engine) as g: + target_coords = g.load() + + return cls._from_state( + areas=_coo_from_components(row, col, data, (n_dst, n_src)), + source_coords=source_coords, + target_coords=target_coords, + spec=meta, + ) + + @classmethod + def _from_state( + cls, + *, + areas: "sparse.COO | np.ndarray", + source_coords: xr.Dataset, + target_coords: xr.Dataset, + spec: RegridSpec, + ) -> "ConservativeRegridder": + """Construct a regridder directly from its canonical state. Shared + bypass of ``__init__`` used by :meth:`from_netcdf` and + :meth:`from_polygons`.""" + instance = object.__new__(cls) + instance._init_state( + areas=areas, + source_coords=source_coords, + target_coords=target_coords, + spec=spec, + ) + return instance + + @classmethod + def from_polygons( + cls, + source_polygons: np.ndarray, + target_polygons: np.ndarray, + source_dim: str = "cell", + target_dim: str = "cell", + target_coords: xr.Dataset | None = None, + periodic: bool = False, + n_threads: int | None = None, + predicate_filter: bool = True, + ) -> "ConservativeRegridder": + """Build a regridder from explicit shapely polygon arrays — for + unstructured meshes (MPAS, ICON), arbitrary polygon targets (countries, + watersheds), or any non-rectilinear combination. + + Args: + source_polygons, target_polygons: 1D arrays of shapely Polygons. + source_dim, target_dim: Dim names for source/target cells on the + input and output arrays. + target_coords: Optional Dataset of coord variables along + ``target_dim`` to reattach on the output (else: integer index). + periodic: Unwrap polygons that cross the antimeridian (treats x + as longitude on a 360-degree periodic axis). + n_threads: Thread count for parallel GEOS intersection. + predicate_filter: If True, filter STRtree candidates with GEOS + ``intersects``. Set False for tight-bbox grid cells to skip + the predicate (faster on that case, pathological otherwise). + + The regridder applies along ``source_dim``: input data must be 1D + along that dim with element order matching ``source_polygons`` (output + is along ``target_dim``, matching ``target_polygons``). When source + polygons come from a structured grid via :func:`polygons_from_coords`, + flatten the data to match — those polygons are row-major in ``(y, x)``, + so transpose to ``(y, x)`` before ``.values.ravel()``. + + Geometry is planar in the polygons' own coordinate space. For lat/lon + cells, project into an equal-area CRS first or use the structured + path with ``manifold="cea"``. + """ + _check_shapely() + src_polys = np.asarray(source_polygons) + dst_polys = np.asarray(target_polygons) + if src_polys.ndim != 1 or dst_polys.ndim != 1: + msg = "source_polygons and target_polygons must be 1D arrays" + raise ValueError(msg) + if periodic: + src_polys = _normalize_periodic_polygons(src_polys) + dst_polys = _normalize_periodic_polygons( + dst_polys, reference=_polygon_reference_x(src_polys) + ) + + src_grid = _Grid(polys=src_polys, bounds=None, rectilinear=False) + dst_grid = _Grid(polys=dst_polys, bounds=None, rectilinear=False) + n_src = int(src_polys.size) + n_dst = int(dst_polys.size) + tgt_ds = ( + target_coords + if target_coords is not None + else xr.Dataset(coords={target_dim: np.arange(n_dst)}) + ) + return cls._from_state( + areas=_build_intersection_areas( + src_grid, + dst_grid, + n_threads=n_threads, + predicate_filter=predicate_filter, + ), + source_coords=xr.Dataset(coords={source_dim: np.arange(n_src)}), + target_coords=tgt_ds, + spec=RegridSpec( + src_dims=(source_dim,), + dst_dims=(target_dim,), + src_shape=(n_src,), + dst_shape=(n_dst,), + x_coord="", + y_coord="", + manifold="planar", + ), + ) + + +def polygons_from_coords( + x: np.ndarray, + y: np.ndarray, + manifold: Manifold = "planar", + periodic: bool = False, +) -> np.ndarray: + """Build a 1D row-major (y, x) array of shapely cell polygons from 1D or + 2D center coords. Convenience for mixing structured and unstructured paths + via :meth:`ConservativeRegridder.from_polygons`. ``manifold="cea"`` + projects 1D lat/lon (degrees) into Lambert cylindrical equal-area space; + ``periodic=True`` unwraps antimeridian-crossing cells.""" + _check_shapely() + _check_manifold(manifold) + x = np.asarray(x) + y = np.asarray(y) + if periodic: + x = _unwrap_longitude(x) + if manifold == "cea": + if x.ndim != 1 or y.ndim != 1: + msg = 'manifold="cea" requires 1D lat/lon arrays' + raise ValueError(msg) + return _build_cea_grid(x, y).polys + return _build_grid(x, y).polys + + +def _apply_stored_weights( + data: xr.DataArray | xr.Dataset, + direction: _Direction, + spec: RegridSpec, + target_coords: xr.Dataset, + skipna: bool, + nan_threshold: float, +) -> xr.DataArray | xr.Dataset: + """Apply ``direction``'s cached weight matrix to ``data`` via + ``xr.apply_ufunc``. + + The apply matrix is a scipy CSR of shape ``(n_dst, n_src)``; ``_apply_core`` + evaluates ``(W @ flat.T).T`` (CSR · dense), which is markedly faster than a + ``sparse.COO`` dense matmul (see :func:`_to_csr`). + """ + actual_src_shape = tuple( + int(data.sizes[d]) for d in spec.src_dims if d in data.sizes + ) + if actual_src_shape != spec.src_shape: + msg = ( + f"source spatial shape {actual_src_shape} on dims {spec.src_dims} does " + f"not match the regridder's expected shape {spec.src_shape}" + ) + raise ValueError(msg) + + src_tokens = tuple(f"__src_{d}" for d in spec.src_dims) + data_renamed = data.rename(dict(zip(spec.src_dims, src_tokens, strict=True))) + + output_dtype = _result_dtype(data) + coverage = direction.coverage + result = xr.apply_ufunc( + _apply_core, + data_renamed, + kwargs={ + "apply_weights": direction.apply_matrix, + "coverage": coverage, + "coverage_all": bool(coverage.all()), + "src_shape": spec.src_shape, + "dst_shape": spec.dst_shape, + "skipna": skipna, + "nan_threshold": nan_threshold, + "output_dtype": output_dtype, + }, + input_core_dims=[list(src_tokens)], + output_core_dims=[list(spec.dst_dims)], + exclude_dims=set(src_tokens), + dask="parallelized", + output_dtypes=[output_dtype], + dask_gufunc_kwargs={ + "output_sizes": {d: int(target_coords.sizes[d]) for d in spec.dst_dims}, + "allow_rechunk": True, + }, + keep_attrs=True, + ) + + return _assign_target_coords(result, target_coords, spec) + + +def _coverage_mask(areas: "sparse.COO | np.ndarray") -> np.ndarray: + """Return a boolean ``(n_dst,)`` mask of target cells with any source + overlap, derived from the raw area matrix.""" + if _HAS_SPARSE and isinstance(areas, sparse.COO): + # COO sparse: row_sum is 0 iff row has no nonzero entries. + n_dst = int(areas.shape[0]) + mask = np.zeros(n_dst, dtype=bool) + mask[areas.coords[0]] = True + return mask + arr = np.asarray(areas) + return np.asarray((arr > 0).any(axis=1)) + + +def _sum_matrix_axis_1d(areas: "sparse.COO | np.ndarray", axis: int) -> np.ndarray: + summed = areas.sum(axis=axis) + if hasattr(summed, "todense"): + summed = summed.todense() + return np.asarray(summed, dtype=np.float64).reshape(-1) + + +def _normalize_longitude_coords( + source: xr.DataArray | xr.Dataset, + target: xr.Dataset, + x_coord: str, +) -> tuple[xr.DataArray | xr.Dataset, xr.Dataset, np.ndarray | None]: + """Unwrap x coordinates across the antimeridian so source and target share + a contiguous longitude frame. No-op when the coord isn't present on both + objects or doesn't look like a longitude. + + For 1D rectilinear longitudes on both sides this mirrors the per-value + wrap done by :func:`xarray_regrid.utils.format_lon` for the axis-factored + path, which is what makes a source on ``[0, 360]`` align with a target on + ``[-180, 180]`` (and vice versa). If wrapping breaks source monotonicity + the source coord is sorted in place; the caller is expected to remap the + area-matrix columns by the returned ``src_x_sort_idx`` so the final matrix + columns line up with the user's original data layout. For 2D / curvilinear + coords the existing uniform-shift fallback is kept. + """ + if x_coord not in source.coords or x_coord not in target.coords: + return source, target, None + + source_x = np.asarray(source[x_coord].values) + target_x = np.asarray(target[x_coord].values) + if not _looks_like_longitude(source_x) and not _looks_like_longitude(target_x): + return source, target, None + + source_x = _unwrap_longitude(source_x) + target_x = _unwrap_longitude(target_x) + src_finite = source_x[np.isfinite(source_x)] + tgt_finite = target_x[np.isfinite(target_x)] + + src_x_sort_idx: np.ndarray | None = None + if ( + source_x.ndim == 1 + and target_x.ndim == 1 + and src_finite.size + and tgt_finite.size + ): + # Per-value wrap source into target's 360° window — mirrors format_lon + # so source [0, 360] vs target [-180, 180] (and either reversed) + # aligns. A uniform offset can't reconcile cross-convention grids + # (mean diff is exactly 180° and round() is banker's-rounded to 0). + source_x = utils.wrap_longitudes_to_target_window( + source_x, float(tgt_finite[0]), float(tgt_finite[-1]) + ) + diffs = np.diff(source_x) + if not (np.all(diffs > 0) or np.all(diffs < 0)): + src_x_sort_idx = np.argsort(source_x, kind="stable") + source_x = source_x[src_x_sort_idx] + elif src_finite.size and tgt_finite.size: + # 2D / curvilinear: fall back to uniform shift of target into source's + # window. Doesn't handle cross-convention but preserves the existing + # antimeridian-crossing behavior for 2D coords. + target_x = target_x + _periodic_offset( + float(src_finite.mean()), float(tgt_finite.mean()) + ) + return ( + utils.update_coord(source, x_coord, source_x), + cast(xr.Dataset, utils.update_coord(target, x_coord, target_x)), + src_x_sort_idx, + ) + + +def _looks_like_longitude(values: np.ndarray) -> bool: + finite = values[np.isfinite(values)] + return bool(finite.size and finite.min() >= -360.0 and finite.max() <= 360.0) + + +def _unwrap_longitude(values: np.ndarray) -> np.ndarray: + """Unwrap longitudes along the trailing axis (CF convention). For 2D + coords, latitude doesn't wrap mod 360°, so unwrapping it is incorrect.""" + radians = np.deg2rad(np.asarray(values, dtype=float)) + return np.rad2deg(np.unwrap(radians, axis=-1)) + + +def _normalize_periodic_polygons( + polygons: np.ndarray, reference: float | None = None +) -> np.ndarray: + """Unwrap each polygon across the antimeridian, then shift each into the + same 360-degree window as ``reference`` (or as the first finite center if + ``reference`` is None).""" + unwrapped = [_unwrap_polygon(p) for p in polygons] + if reference is None: + for poly in unwrapped: + center = _polygon_center_x(poly) + if np.isfinite(center): + reference = center + break + if reference is None: + return np.array(unwrapped, dtype=object) + + out = [] + for poly in unwrapped: + offset = _periodic_offset(reference, _polygon_center_x(poly)) + out.append(affinity.translate(poly, xoff=offset) if offset != 0.0 else poly) + return np.array(out, dtype=object) + + +def _polygon_reference_x(polygons: np.ndarray) -> float | None: + """Mean polygon-center x across an array of polygons, or None if all + polygons have non-finite centers.""" + bounds = shapely.bounds(polygons) + centers = 0.5 * (bounds[:, 0] + bounds[:, 2]) + finite = centers[np.isfinite(centers)] + return float(finite.mean()) if finite.size else None + + +def _polygon_center_x(polygon: Any) -> float: + minx, _, maxx, _ = polygon.bounds + return 0.5 * (float(minx) + float(maxx)) + + +def _periodic_offset(reference: float, value: float) -> float: + """Smallest multiple of 360° that brings ``value`` close to ``reference``. + + Half-up symmetric rounding (not Python's banker's ``round()``): for + antipodal pairs (``reference - value`` exactly ±180°) we always shift by + ±360° rather than tying to zero, so the polygon ends up adjacent to + ``reference`` instead of being silently left antipodal. + """ + if not np.isfinite(reference) or not np.isfinite(value): + return 0.0 + diff = (reference - value) / 360.0 + return 360.0 * math.copysign(math.floor(abs(diff) + 0.5), diff) + + +def _unwrap_polygon(polygon: Any) -> Any: + if polygon.is_empty: + return polygon + if polygon.geom_type == "Polygon": + exterior = _unwrap_ring(np.asarray(polygon.exterior.coords)) + holes = [_unwrap_ring(np.asarray(ring.coords)) for ring in polygon.interiors] + return shapely.Polygon(exterior, holes) + if polygon.geom_type == "MultiPolygon": + return shapely.MultiPolygon([_unwrap_polygon(part) for part in polygon.geoms]) + return polygon + + +def _unwrap_ring(ring: np.ndarray) -> np.ndarray: + new_ring = np.asarray(ring, dtype=float).copy() + new_ring[:, 0] = np.unwrap(new_ring[:, 0], period=360.0) + return new_ring + + +def _remap_columns_for_axis_sort( + areas: "sparse.COO | np.ndarray", + sort_idx: np.ndarray, + src_shape: tuple[int, ...], + axis_index: int, +) -> "sparse.COO | np.ndarray": + """Relabel the column indices of an ``(n_dst, prod(src_shape))`` area + matrix so that columns appear in the user's original source-data order + after ``sort_idx`` was applied along ``axis_index`` of ``src_shape``. + + For sparse, we permute the existing ``coords[1]`` column indices forward + via ``sort_idx``. For dense, we fancy-index columns by the inverse + permutation. Both express the same unravel/permute/ravel operation. + """ + sort_idx = np.asarray(sort_idx, dtype=np.int64) + permute = _axis_index_permuter(src_shape, axis_index) + + if _HAS_SPARSE and isinstance(areas, sparse.COO): + new_col = permute(np.asarray(areas.coords[1], dtype=np.int64), sort_idx) + return sparse.COO( + coords=np.stack([np.asarray(areas.coords[0], dtype=np.int64), new_col]), + data=np.asarray(areas.data), + shape=areas.shape, + has_duplicates=False, + sorted=False, + ) + + arr = np.asarray(areas) + inv_sort = np.empty_like(sort_idx) + inv_sort[sort_idx] = np.arange(sort_idx.size, dtype=sort_idx.dtype) + inv_perm = permute(np.arange(arr.shape[1], dtype=np.int64), inv_sort) + return arr[:, inv_perm] + + +def _axis_index_permuter( + src_shape: tuple[int, ...], axis_index: int +) -> "Callable[[np.ndarray, np.ndarray], np.ndarray]": + """Return ``permute(flat_indices, lookup)`` that permutes the + ``axis_index`` component of each row-major flat index via ``lookup``, + leaving all other components untouched.""" + nx = int(src_shape[axis_index]) + inner = int(np.prod(src_shape[axis_index + 1 :])) + stride = nx * inner + + def permute(flat: np.ndarray, lookup: np.ndarray) -> np.ndarray: + outer = (flat // stride) * stride + within = flat % stride + return outer + lookup[within // inner] * inner + within % inner + + return permute + + +def _transpose_weights( + w: "sparse.COO | np.ndarray", +) -> "sparse.COO | np.ndarray": + """Materialize a transposed weight matrix. + + ``sparse.COO.T`` is a lazy view, so callers relying on ``.coords[0]`` + being row indices (e.g. the backward direction's area matrix) should + materialize once here. + """ + if _HAS_SPARSE and isinstance(w, sparse.COO): + t = w.T + return sparse.COO( + coords=np.asarray(t.coords), + data=np.asarray(t.data), + shape=t.shape, + has_duplicates=False, + sorted=False, + ) + return np.asarray(w).T.copy() + + +def _to_csr(weights: "sparse.COO | np.ndarray") -> "sp.csr_matrix": + """Convert row-normalized weights to a scipy CSR matrix for the apply path. + + scipy's C SpMM (CSR · dense) is markedly faster than ``sparse.COO @ + ndarray``, whose numba kernel never converts COO to CSR (unlike sparse's + own ``COO @ COO`` and ``GCXS @ ndarray`` paths). scipy is a hard + dependency, so this is available regardless of whether ``sparse`` is + installed (and also speeds up the dense fallback). + """ + if _HAS_SPARSE and isinstance(weights, sparse.COO): + return sp.csr_matrix( + (weights.data, (weights.coords[0], weights.coords[1])), + shape=weights.shape, + ) + return sp.csr_matrix(np.asarray(weights)) + + +def _is_rectilinear_pair(xc: xr.DataArray, yc: xr.DataArray) -> bool: + """True when x and y are 1D coords on distinct dims (axis-aligned + rectangles — the separable fast path); False for curvilinear 2D coords.""" + return bool(xc.ndim == 1 and yc.ndim == 1 and xc.dims[0] != yc.dims[0]) + + +def _spatial_dims( + obj: xr.DataArray | xr.Dataset, x_coord: str, y_coord: str +) -> tuple[Hashable, ...]: + """Return the spatial dim order to feed to apply_ufunc. + + For 1D rectilinear coords (x and y ride on separate dims), canonicalize to + ``(y_dim, x_dim)`` so the flattened cell order matches the polygon order + emitted by the fast-path in ``_build_grid``. For curvilinear (2D) coords, + preserve the dim order already present on ``obj``. + """ + if x_coord not in obj.coords or y_coord not in obj.coords: + return () + xc = obj[x_coord] + yc = obj[y_coord] + if _is_rectilinear_pair(xc, yc): + return (yc.dims[0], xc.dims[0]) + dims = set(xc.dims) | set(yc.dims) + return tuple(d for d in obj.dims if d in dims) + + +def _grid_from_coords( + obj: xr.DataArray | xr.Dataset, + x_coord: str, + y_coord: str, + dims: tuple[Hashable, ...], + manifold: Manifold = "planar", +) -> "_Grid": + """Build a :class:`_Grid` from the object's x/y coordinates, dispatched + by ``manifold`` via :data:`_GRID_BUILDERS`.""" + return _GRID_BUILDERS[manifold](obj, x_coord, y_coord, dims) + + +def _build_planar_from_coords( + obj: xr.DataArray | xr.Dataset, + x_coord: str, + y_coord: str, + dims: tuple[Hashable, ...], +) -> "_Grid": + """Planar shapely polygons. Rectilinear (both coords 1D on separate dims) + takes the fast path; curvilinear coords are broadcast to a common N-D + array in ``dims`` order.""" + xd = obj[x_coord] + yd = obj[y_coord] + if _is_rectilinear_pair(xd, yd): + return _build_grid(np.asarray(xd.values), np.asarray(yd.values)) + xc, yc = xr.broadcast(xd, yd) + return _build_grid( + np.asarray(xc.transpose(*dims).values), + np.asarray(yc.transpose(*dims).values), + ) + + +def _build_cea_from_coords( + obj: xr.DataArray | xr.Dataset, + x_coord: str, + y_coord: str, + dims: tuple[Hashable, ...], # noqa: ARG001 — dispatched signature +) -> "_Grid": + """Lambert cylindrical equal-area polygons from 1D rectilinear lat/lon + centers (degrees). Cells are projected (x' = lon_rad, y' = sin(lat_rad)) + before construction, giving mass-conservative weights on the sphere at + the same cost as the planar fast path. Rectilinear-only.""" + xd = obj[x_coord] + yd = obj[y_coord] + if not _is_rectilinear_pair(xd, yd): + msg = 'manifold="cea" is only supported for rectilinear (1D lat/lon) coords' + raise NotImplementedError(msg) + return _build_cea_grid(np.asarray(xd.values), np.asarray(yd.values)) + + +# Registry of geometry backends. Each builder takes the same +# ``(obj, x_coord, y_coord, dims)`` and returns a ``_Grid``. New manifolds +# (e.g. true great-circle ``"s2"``) plug in via a single insert. +_GRID_BUILDERS: dict[str, Callable[..., "_Grid"]] = { + "planar": _build_planar_from_coords, + "cea": _build_cea_from_coords, +} + + +def _check_manifold(manifold: str) -> None: + if manifold not in _GRID_BUILDERS: + valid = ", ".join(repr(m) for m in sorted(_GRID_BUILDERS)) + msg = f"manifold must be one of {{{valid}}}; got {manifold!r}" + raise ValueError(msg) + + +def _build_cea_grid(lon_centers: np.ndarray, lat_centers: np.ndarray) -> "_Grid": + """Build a rectilinear :class:`_Grid` whose cell polygons are in Lambert + cylindrical equal-area coordinates (x' = lon_rad, y' = sin(lat_rad)). + + Projecting *edges* analytically — rather than projecting centers and then + re-midpointing — is required because ``sin()`` is nonlinear: the projected + midpoint of two lat centers is not the same as the midpoint of two + projected lat edges. + """ + _check_shapely() + if lon_centers.size < 2 or lat_centers.size < 2: + msg = 'manifold="cea" requires at least two cells per dimension' + raise ValueError(msg) + lat_edges_deg = np.clip(utils.infer_1d_edges(lat_centers), -90.0, 90.0) + lon_edges_deg = utils.infer_1d_edges(lon_centers) + return _rect_grid_from_edges( + np.deg2rad(lon_edges_deg), + np.sin(np.deg2rad(lat_edges_deg)), + ) + + +def _infer_2d_corners(a: np.ndarray) -> np.ndarray: + """Infer (ny+1, nx+1) cell corners from a 2D cell-center array. Interior + corners are the mean of the 4 surrounding centers; boundary corners are + reflected from the adjacent interior row/column.""" + a = np.asarray(a, dtype=float) + ny, nx = a.shape + pad = np.empty((ny + 2, nx + 2), dtype=a.dtype) + pad[1:-1, 1:-1] = a + pad[0, 1:-1] = 2 * a[0, :] - a[1, :] + pad[-1, 1:-1] = 2 * a[-1, :] - a[-2, :] + pad[1:-1, 0] = 2 * a[:, 0] - a[:, 1] + pad[1:-1, -1] = 2 * a[:, -1] - a[:, -2] + pad[0, 0] = 2 * pad[0, 1] - pad[0, 2] + pad[0, -1] = 2 * pad[0, -2] - pad[0, -3] + pad[-1, 0] = 2 * pad[-1, 1] - pad[-1, 2] + pad[-1, -1] = 2 * pad[-1, -2] - pad[-1, -3] + return 0.25 * (pad[:-1, :-1] + pad[1:, :-1] + pad[:-1, 1:] + pad[1:, 1:]) + + +@dataclass +class _Grid: + """Cached cell geometry for a structured grid. + + ``polys`` is a flat (n_cells,) object array of shapely Polygons. + ``bounds`` is a (n_cells, 4) ``(minx, miny, maxx, maxy)`` array used only by + the rectilinear analytic fast-path. It is ``None`` for non-rectilinear grids, + where the area builder reads ``polys`` (via GEOS/STRtree) and never the + bounds — so computing them there would be wasted work. ``rectilinear`` is + True when both the source x and y were 1D coordinate arrays (axis-aligned + rectangles) — the weight builder uses this to skip GEOS polygon clipping and + compute intersection areas analytically from the bounds. + """ + + polys: np.ndarray + bounds: np.ndarray | None + rectilinear: bool + + +def _rect_grid_from_edges(xe: np.ndarray, ye: np.ndarray) -> _Grid: + """Build a rectilinear :class:`_Grid` from already-prepared edge arrays. + + Shared by the raw-planar (:func:`_build_grid` 1D branch) and the analytic + equal-area (:func:`_build_cea_grid`) paths. + """ + x0, y0 = np.meshgrid(xe[:-1], ye[:-1], indexing="xy") + x1, y1 = np.meshgrid(xe[1:], ye[1:], indexing="xy") + x0f, y0f, x1f, y1f = x0.ravel(), y0.ravel(), x1.ravel(), y1.ravel() + polys = shapely.box(x0f, y0f, x1f, y1f) + bounds = np.stack([x0f, y0f, x1f, y1f], axis=1) + return _Grid(polys=polys, bounds=bounds, rectilinear=True) + + +def _build_grid(xc: np.ndarray, yc: np.ndarray) -> _Grid: + """Return a _Grid of cell geometry for a structured grid. + + Accepts 1D (rectilinear, separate x and y vectors) or 2D (curvilinear, + co-shaped center arrays) inputs. Output order is row-major in the input dim + order: for 2D inputs of shape (ny, nx) the polygons correspond to cells + reshaped as ``(ny, nx)``. + """ + _check_shapely() + if xc.ndim == 1 and yc.ndim == 1: + xe = utils.infer_1d_edges(xc.astype(float)) + ye = utils.infer_1d_edges(yc.astype(float)) + return _rect_grid_from_edges(xe, ye) + if xc.ndim == 2 and yc.ndim == 2 and xc.shape == yc.shape: + xcorn = _infer_2d_corners(xc) + ycorn = _infer_2d_corners(yc) + ny, nx = xc.shape + c00 = np.stack([xcorn[:-1, :-1], ycorn[:-1, :-1]], axis=-1) + c10 = np.stack([xcorn[:-1, 1:], ycorn[:-1, 1:]], axis=-1) + c11 = np.stack([xcorn[1:, 1:], ycorn[1:, 1:]], axis=-1) + c01 = np.stack([xcorn[1:, :-1], ycorn[1:, :-1]], axis=-1) + rings = np.stack([c00, c10, c11, c01, c00], axis=2).reshape(ny * nx, 5, 2) + polys = shapely.polygons(rings) + return _Grid(polys=polys, bounds=None, rectilinear=False) + msg = "x and y coordinate arrays must both be 1D or both 2D" + raise ValueError(msg) + + +def _build_intersection_areas( + src: _Grid, + dst: _Grid, + n_threads: int | None = None, + *, + predicate_filter: bool = False, +) -> "sparse.COO | np.ndarray": + """Build the (n_dst, n_src) raw area-intersection matrix ``A[i, j] = + area(dst_i ∩ src_j)``. + + This is the unnormalized matrix. Row-normalize via :func:`_row_normalize` + to get forward weights; transpose first for backward (target → source). + + When both grids are rectilinear (axis-aligned rectangles) intersection + areas are computed analytically from the bounds, skipping GEOS clipping. + + ``predicate_filter=False`` (default) uses a bbox-only STRtree query and + relies on the ``area > 0`` filter below to drop bbox-false-positives. + For structured cells whose bboxes are tight (quadrilaterals) this is a + large win — the GEOS ``intersects`` predicate inside STRtree is much + more expensive than the extra no-op intersections it avoids. Set + ``predicate_filter=True`` for user-supplied polygons with loose bboxes + (long, thin, diagonal shapes) where the predicate pays for itself. + """ + _check_shapely() + n_dst = len(dst.polys) + n_src = len(src.polys) + + tree = STRtree(src.polys) + if predicate_filter: + pairs = tree.query(dst.polys, predicate="intersects") + else: + pairs = tree.query(dst.polys) + dst_idx = np.asarray(pairs[0]) + src_idx = np.asarray(pairs[1]) + + if dst_idx.size == 0: + return _empty_weights(n_dst, n_src) + + if src.rectilinear and dst.rectilinear: + # Rectilinear grids always carry bounds (set in _rect_grid_from_edges); + # non-rectilinear grids leave them None and never reach this branch. + sb = cast("np.ndarray", src.bounds)[src_idx] + db = cast("np.ndarray", dst.bounds)[dst_idx] + dx = np.minimum(sb[:, 2], db[:, 2]) - np.maximum(sb[:, 0], db[:, 0]) + dy = np.minimum(sb[:, 3], db[:, 3]) - np.maximum(sb[:, 1], db[:, 1]) + areas = np.maximum(dx, 0.0) * np.maximum(dy, 0.0) + else: + areas = _intersection_areas_threaded( + dst.polys[dst_idx], src.polys[src_idx], n_threads=n_threads + ) + + keep = areas > 0 + dst_idx = dst_idx[keep] + src_idx = src_idx[keep] + areas = areas[keep] + + return _coo_or_dense(dst_idx, src_idx, areas.astype(np.float64), (n_dst, n_src)) + + +def _row_normalize( + areas: "sparse.COO | np.ndarray", +) -> "sparse.COO | np.ndarray": + """Normalize rows of an area matrix so each row sums to 1 (rows with no + overlap stay all-zero, which produces NaN output under the apply path).""" + if _HAS_SPARSE and isinstance(areas, sparse.COO): + n_dst = areas.shape[0] + dst_idx = areas.coords[0] + src_idx = areas.coords[1] + data = areas.data + if data.size == 0: + return areas + row_sum = np.bincount(dst_idx, weights=data, minlength=n_dst) + new_data = data / row_sum[dst_idx] + return sparse.COO( + coords=np.stack([dst_idx, src_idx]), + data=new_data, + shape=areas.shape, + has_duplicates=False, + sorted=False, + ) + row_sum = areas.sum(axis=1, keepdims=True) + row_sum = np.where(row_sum == 0, 1.0, row_sum) + return areas / row_sum + + +def _intersection_areas_threaded( + a: np.ndarray, b: np.ndarray, n_threads: int | None +) -> np.ndarray: + """Compute per-pair intersection areas ``area(a[i] & b[i])`` over numpy + arrays of shapely geometries, optionally parallelized via threads. + + Shapely 2.x releases the GIL for GEOS ops, so a ``ThreadPoolExecutor`` + gives near-linear speedup on multi-core machines without pickling data. + """ + _check_shapely() + n = len(a) + if n_threads is None: + # Below ~1k pairs the pool spin-up (~0.3 ms) dominates sub-ms work. + # Above that, scaling is near-linear with logical cores — shapely + # releases the GIL inside its GEOS ufuncs. Cap at 16 to avoid + # oversubscription on unusually wide machines. + n_threads = 1 if n < 1_000 else min(os.cpu_count() or 1, 16) + if n_threads <= 1 or n == 0: + return shapely.area(shapely.intersection(a, b)) + + splits = np.array_split(np.arange(n), n_threads) + + def _work(idx: np.ndarray) -> np.ndarray: + return shapely.area(shapely.intersection(a[idx], b[idx])) + + with ThreadPoolExecutor(max_workers=n_threads) as pool: + parts = list(pool.map(_work, splits)) + return np.concatenate(parts) + + +def _empty_weights(n_dst: int, n_src: int) -> "sparse.COO | np.ndarray": + empty = np.zeros(0, dtype=np.int64) + return _coo_or_dense(empty, empty, np.zeros(0, dtype=np.float64), (n_dst, n_src)) + + +def _coo_or_dense( + rows: np.ndarray, + cols: np.ndarray, + data: np.ndarray, + shape: tuple[int, int], +) -> "sparse.COO | np.ndarray": + """Build a ``sparse.COO`` if available, else a dense ndarray.""" + if _HAS_SPARSE: + return sparse.COO( + coords=np.stack([rows, cols]), + data=data, + shape=shape, + has_duplicates=False, + sorted=False, + ) + arr = np.zeros(shape, dtype=data.dtype if data.size else np.float64) + if data.size: + arr[rows, cols] = data + return arr + + +def _apply_core( + arr: np.ndarray, + apply_weights: Any, + coverage: np.ndarray, + coverage_all: bool, + src_shape: tuple[int, ...], + dst_shape: tuple[int, ...], + skipna: bool, + nan_threshold: float, + output_dtype: np.dtype, +) -> np.ndarray: + """Apply the CSR weight matrix along the trailing spatial dims. + + ``arr`` has shape ``(..., *src_shape)``; ``apply_weights`` is a scipy CSR + of shape ``(n_dst, n_src)`` and the matmul is ``(W @ flat.T).T`` — + returns ``(..., *dst_shape)``. + + ``coverage`` is a boolean ``(n_dst,)`` mask: target cells with any source + overlap. ``coverage_all`` is precomputed so every block skips the + ``coverage.all()`` scan. Uncovered cells are always masked to NaN in the + output, regardless of ``skipna`` — domain boundaries and polygon holes + produce NaN (matches the axis-factored ``conservative`` method). + """ + n_spatial = len(src_shape) + leading_shape = arr.shape[:-n_spatial] if n_spatial > 0 else arr.shape + n_src = int(np.prod(src_shape)) + flat = arr.reshape(-1, n_src) if leading_shape else arr.reshape(1, n_src) + + if skipna and np.issubdtype(flat.dtype, np.floating): + nan_mask = np.isnan(flat) + has_nan = nan_mask.any() + else: + has_nan = False + + if has_nan: + mask = (~nan_mask).astype(flat.dtype) + filled = np.where(nan_mask, flat.dtype.type(0.0), flat) + numerator = np.asarray((apply_weights @ filled.T).T) + fraction = np.asarray((apply_weights @ mask.T).T) + threshold = get_valid_threshold(nan_threshold) + with np.errstate(invalid="ignore", divide="ignore"): + result = numerator / fraction + valid = fraction >= threshold + else: + result = np.asarray((apply_weights @ flat.T).T) + valid = None + # Always mask domain-uncovered cells. With NaNs the uncovered rows already + # have fraction=0 (so the threshold check below catches them), but ANDing + # coverage in keeps the contract explicit and robust to threshold tweaks. + if not coverage_all: + cov = coverage[np.newaxis, :] + valid = cov if valid is None else (valid & cov) + if valid is not None: + result = np.where(valid, result, np.nan) + + # The CSR matmul promotes to float64 (weights are float64) regardless of + # the input dtype — cast back to the requested output dtype so float32-in + # really produces float32-out (halves memory for float32 pipelines). + # astype(copy=False) is a no-op when the dtype already matches. + result = result.astype(output_dtype, copy=False) + + out_shape = (*leading_shape, *dst_shape) if leading_shape else dst_shape + return result.reshape(out_shape) + + +def _result_dtype(obj: xr.DataArray | xr.Dataset) -> np.dtype: + if isinstance(obj, xr.DataArray): + return utils.min_weight_dtype(obj.dtype) + dtypes = [v.dtype for v in obj.data_vars.values()] + if not dtypes: + return np.dtype(np.float64) + return utils.min_weight_dtype(*dtypes) + + +def _assign_target_coords( + obj: xr.DataArray | xr.Dataset, + target_ds: xr.Dataset, + spec: RegridSpec, +) -> xr.DataArray | xr.Dataset: + """Attach target coordinates that name a spatial axis or live on the + output spatial dims. Scalar coords (``dims == ()``) ride along too, so + pinned target metadata (e.g. a fixed timestamp) is preserved.""" + dst_dim_set = set(spec.dst_dims) + spatial = (spec.x_coord, spec.y_coord) + new_coords = { + name: coord + for name, coord in target_ds.coords.items() + if name in spatial or set(coord.dims).issubset(dst_dim_set) + } + return obj.assign_coords(new_coords) if new_coords else obj diff --git a/src/xarray_regrid/regrid.py b/src/xarray_regrid/regrid.py index b2ed389..15bca5d 100644 --- a/src/xarray_regrid/regrid.py +++ b/src/xarray_regrid/regrid.py @@ -4,7 +4,12 @@ import numpy as np import xarray as xr -from xarray_regrid.methods import conservative, flox_reduce, interp +from xarray_regrid.methods import ( + conservative, + conservative_2d, + flox_reduce, + interp, +) from xarray_regrid.utils import format_for_regrid @@ -17,7 +22,11 @@ class Regridder: linear: linear, bilinear, or higher dimensional linear interpolation nearest: nearest-neighbor regridding cubic: cubic spline regridding - conservative: conservative regridding + conservative: axis-factored conservative regridding (rectilinear, + 1D-separable grids only) + conservative_2d: conservative regridding for grids that aren't + 1D-separable — curvilinear 2D coords, unstructured meshes, or + arbitrary polygon-to-polygon aggregation (requires shapely) most_common: most common value regridder stat: area statistics regridder """ @@ -82,6 +91,67 @@ def cubic( ds_formatted = format_for_regrid(self._obj, ds_target_grid) return interp.interp_regrid(ds_formatted, ds_target_grid, "cubic") + def conservative_2d( + self, + ds_target_grid: xr.Dataset, + x_coord: str = "longitude", + y_coord: str = "latitude", + manifold: conservative_2d.Manifold = "planar", + time_dim: str | None = "time", + skipna: bool = True, + nan_threshold: float = 1.0, + n_threads: int | None = None, + ) -> xr.DataArray | xr.Dataset: + """Conservative regrid for grids that aren't 1D-separable. + + Use this when ``.conservative`` can't express your grid: curvilinear + coordinates (2D ``lat``/``lon`` arrays), unstructured meshes, or any + arbitrary polygon target. Computes 2D cell-polygon intersections via + shapely. Defaults to planar geometry; set ``manifold="cea"`` for + lat/lon grids in degrees to get proper spherical area weights via an + analytic cylindrical equal-area projection. Requires ``shapely >= 2.0``. + + Args: + ds_target_grid: Dataset defining the target grid; must expose + ``x_coord`` and ``y_coord`` as coordinate variables. + x_coord: Name of the x (longitude-like) coordinate variable. + y_coord: Name of the y (latitude-like) coordinate variable. + manifold: Geometry backend. ``"planar"`` (default) intersects + shapely polygons in the user's coord space. ``"cea"`` projects + 1D rectilinear lat/lon (degrees) into Lambert cylindrical + equal-area space before intersecting — proper spherical + areas at planar cost. + time_dim: Name of a time coordinate to drop from ``ds_target_grid`` + before building the regridder (its first step is selected). + Source dims other than ``x_coord``/``y_coord`` — including + time — are broadcast over automatically. Defaults to ``"time"``; + pass ``None`` to skip the target-grid time handling. + skipna: If True, propagate NaNs into the weighted mean via a + two-pass sum. + nan_threshold: Keep output cells whose valid source fraction is at + least ``nan_threshold``. + n_threads: Thread count for parallel GEOS intersection. ``None`` + auto-selects; set to ``1`` to disable threading. + + Returns: + Data regridded to the target grid. + """ + if not 0.0 <= nan_threshold <= 1.0: + msg = "nan_threshold must be between [0, 1]" + raise ValueError(msg) + ds_target_grid = validate_input( + self._obj, ds_target_grid, time_dim, require_shared_dims=False + ) + regridder = conservative_2d.ConservativeRegridder( + self._obj, + ds_target_grid, + x_coord=x_coord, + y_coord=y_coord, + manifold=manifold, + n_threads=n_threads, + ) + return regridder.regrid(self._obj, skipna=skipna, nan_threshold=nan_threshold) + def conservative( self, ds_target_grid: xr.Dataset, @@ -116,7 +186,7 @@ def conservative( Data regridded to the target dataset coordinates. """ if not 0.0 <= nan_threshold <= 1.0: - msg = "nan_threshold must be between [0, 1]]" + msg = "nan_threshold must be between [0, 1]" raise ValueError(msg) ds_target_grid = validate_input(self._obj, ds_target_grid, time_dim) @@ -275,6 +345,7 @@ def validate_input( data: xr.Dataset, ds_target_grid: xr.Dataset, time_dim: str | None, + require_shared_dims: bool = ..., ) -> xr.Dataset: ... @@ -283,6 +354,7 @@ def validate_input( data: xr.DataArray, ds_target_grid: xr.Dataset, time_dim: str | None, + require_shared_dims: bool = ..., ) -> xr.Dataset: ... @@ -290,11 +362,14 @@ def validate_input( data: xr.DataArray | xr.Dataset, ds_target_grid: xr.Dataset, time_dim: str | None, + require_shared_dims: bool = True, ) -> xr.Dataset: if time_dim is not None and time_dim in ds_target_grid.coords: ds_target_grid = ds_target_grid.isel({time_dim: 0}).reset_coords() - if len(set(data.dims).intersection(set(ds_target_grid.dims))) == 0: + # Curvilinear regridders match source and target by coord values, not by + # dim name, so they opt out of the shared-dim requirement. + if require_shared_dims and not set(data.dims) & set(ds_target_grid.dims): msg = ( "None of the target dims are in the data:\n" " regridding is not possible.\n" @@ -303,7 +378,7 @@ def validate_input( ) raise ValueError(msg) - if len(set(data.coords).intersection(set(ds_target_grid.coords))) == 0: + if not set(data.coords) & set(ds_target_grid.coords): msg = ( "None of the target coords are in the data:\n" " regridding is not possible.\n" diff --git a/src/xarray_regrid/utils.py b/src/xarray_regrid/utils.py index 6979f84..2c9aaf7 100644 --- a/src/xarray_regrid/utils.py +++ b/src/xarray_regrid/utils.py @@ -80,7 +80,7 @@ def create_lat_lon_coords(grid: Grid) -> tuple[np.ndarray, np.ndarray]: grid.south, grid.north + grid.resolution_lat, grid.resolution_lat ) - if np.remainder((grid.east - grid.west), grid.resolution_lat) > 0: + if np.remainder((grid.east - grid.west), grid.resolution_lon) > 0: lon_coords = np.arange(grid.west, grid.east, grid.resolution_lon) else: lon_coords = np.arange( @@ -114,6 +114,41 @@ def create_regridding_dataset( ) +def wrap_longitudes_to_target_window( + values: np.ndarray, target_first: float, target_last: float +) -> np.ndarray: + """Per-value wrap of ``values`` (degrees) into a single 360° window + centered between the target endpoints. Used to align cross-convention + longitudes (source on ``[0, 360]`` vs target on ``[-180, 180]`` and + vice versa). The wrap point is ``(first + last + 360) / 2``.""" + wrap_point = float(target_first + target_last + 360.0) / 2.0 + values = np.where(values < wrap_point - 360.0, values + 360.0, values) + values = np.where(values > wrap_point, values - 360.0, values) + return values + + +def infer_1d_edges(centers: np.ndarray) -> np.ndarray: + """Return cell edges from 1D centers: midpoints between consecutive + centers, with symmetric reflection for the two outer bounds. + + Requires at least two centers. + """ + c = np.asarray(centers, dtype=float) + if c.size < 2: + msg = "need at least two centers to infer cell edges" + raise ValueError(msg) + mids = 0.5 * (c[:-1] + c[1:]) + left = 2 * c[0] - mids[0] + right = 2 * c[-1] - mids[-1] + return np.concatenate([[left], mids, [right]]) + + +def min_weight_dtype(*dtypes: np.dtype) -> np.dtype: + """Regrid-weight dtype policy: single precision at minimum, double if any + input is double. Shared by the conservative weight builders.""" + return np.result_type(np.float32, *dtypes) + + def to_intervalindex(coords: np.ndarray) -> pd.IntervalIndex: """Convert a 1-d coordinate array to a pandas IntervalIndex. Take the midpoints between the coordinates as the interval boundaries. @@ -126,20 +161,9 @@ def to_intervalindex(coords: np.ndarray) -> pd.IntervalIndex: coordinates. """ if len(coords) > 1: - midpoints = (coords[:-1] + coords[1:]) / 2 - - # Extrapolate outer bounds beyond the first and last coordinates - left_bound = 2 * coords[0] - midpoints[0] - right_bound = 2 * coords[-1] - midpoints[-1] - - breaks = np.concatenate([[left_bound], midpoints, [right_bound]]) - intervals = pd.IntervalIndex.from_breaks(breaks) - - else: - # If the target grid has a single point, set search interval to span all space - intervals = pd.IntervalIndex.from_breaks([-np.inf, np.inf]) - - return intervals + return pd.IntervalIndex.from_breaks(infer_1d_edges(coords)) + # If the target grid has a single point, set search interval to span all space + return pd.IntervalIndex.from_breaks([-np.inf, np.inf]) def overlap(a: pd.IntervalIndex, b: pd.IntervalIndex) -> np.ndarray: @@ -357,11 +381,9 @@ def format_lon( # This ensures we have coverage on the target and handles global > regional source_vals = obj.coords[lon_coord].values target_vals = target.coords[lon_coord].values - wrap_point = (target_vals[-1] + target_vals[0] + 360) / 2 - source_vals = np.where( - source_vals < wrap_point - 360, source_vals + 360, source_vals + source_vals = wrap_longitudes_to_target_window( + source_vals, float(target_vals[0]), float(target_vals[-1]) ) - source_vals = np.where(source_vals > wrap_point, source_vals - 360, source_vals) obj = update_coord(obj, lon_coord, source_vals) obj = ensure_monotonic(obj, lon_coord) @@ -436,8 +458,8 @@ def update_coord( def update_coord( obj: xr.DataArray | xr.Dataset, coord: Hashable, coord_vals: np.ndarray ) -> xr.DataArray | xr.Dataset: - """Update the values of a coordinate, ensuring indexes stay in sync.""" - attrs = obj.coords[coord].attrs - obj = obj.assign_coords({coord: coord_vals}) - obj.coords[coord].attrs = attrs - return obj + """Update the values of a coordinate, ensuring indexes stay in sync. + Preserves the coord's existing dims and attrs (so multi-dim coords work).""" + original = obj.coords[coord] + new_coord = xr.DataArray(coord_vals, dims=original.dims, attrs=original.attrs) + return obj.assign_coords({coord: new_coord}) diff --git a/tests/test_conservative_2d.py b/tests/test_conservative_2d.py new file mode 100644 index 0000000..4cc5900 --- /dev/null +++ b/tests/test_conservative_2d.py @@ -0,0 +1,754 @@ +"""Tests for conservative_2d.""" + +import numpy as np +import pytest +import xarray as xr + +import xarray_regrid # noqa: F401 (registers the accessor) +from xarray_regrid import ConservativeRegridder, polygons_from_coords + +shapely = pytest.importorskip("shapely") + + +def _rect_da(ny=60, nx=120, nt=2, seed=0): + x = np.linspace(-180, 180, nx, endpoint=False) + 180 / nx + y = np.linspace(-90, 90, ny, endpoint=False) + 90 / ny + rng = np.random.default_rng(seed) + return xr.DataArray( + rng.normal(size=(nt, ny, nx)).astype(np.float64), + dims=("time", "y", "x"), + coords={"time": np.arange(nt), "y": y, "x": x}, + name="var", + ) + + +def _rect_target(ny=24, nx=47): + x = np.linspace(-180, 180, nx, endpoint=False) + 180 / nx + y = np.linspace(-90, 90, ny, endpoint=False) + 90 / ny + return xr.Dataset(coords={"y": y, "x": x}) + + +def test_polygon_matches_factored_planar(): + """On a rectilinear grid with no spherical correction, the polygon path + should reproduce the axis-factored path to machine precision.""" + da = _rect_da() + target = _rect_target() + ref = da.regrid.conservative(target, latitude_coord=None) + got = da.regrid.conservative_2d(target, x_coord="x", y_coord="y") + got = got.transpose(*ref.dims) + np.testing.assert_allclose(got.values, ref.values, atol=1e-12) + + +def test_polygon_dask_time_chunks(): + da = _rect_da(nt=4).chunk({"time": 2}) + target = _rect_target() + got = da.regrid.conservative_2d(target, x_coord="x", y_coord="y") + assert got.chunks is not None + got = got.compute() + ref = _rect_da(nt=4).regrid.conservative(target, latitude_coord=None) + np.testing.assert_allclose(got.transpose(*ref.dims).values, ref.values, atol=1e-12) + + +def test_polygon_rechunks_spatial(): + """Spatially-chunked input should be accepted (rechunked internally).""" + da = _rect_da().chunk({"time": 1, "y": 30, "x": 40}) + target = _rect_target() + out = da.regrid.conservative_2d(target, x_coord="x", y_coord="y") + out.compute() + + +def test_polygon_nan_threshold(): + """Stricter nan_threshold produces more NaN output cells when partial + overlaps exist.""" + da = _rect_da() + da.values[:, 21:29, :] = np.nan + target = _rect_target(ny=23, nx=47) + out1 = da.regrid.conservative_2d( + target, x_coord="x", y_coord="y", skipna=True, nan_threshold=1.0 + ) + out0 = da.regrid.conservative_2d( + target, x_coord="x", y_coord="y", skipna=True, nan_threshold=0.0 + ) + assert int(np.isnan(out0.values).sum()) > int(np.isnan(out1.values).sum()) + + +def test_polygon_curvilinear_target(): + """Curvilinear target (2D lat/lon corners) returns finite values.""" + da = _rect_da() + ny_t, nx_t = 20, 30 + xi, yi = np.meshgrid( + np.linspace(-120, 120, nx_t), + np.linspace(-60, 60, ny_t), + indexing="xy", + ) + th = np.deg2rad(30) + x2d = xi * np.cos(th) - yi * np.sin(th) + y2d = xi * np.sin(th) + yi * np.cos(th) + target = xr.Dataset(coords={"x": (("ny", "nx"), x2d), "y": (("ny", "nx"), y2d)}) + out = da.regrid.conservative_2d(target, x_coord="x", y_coord="y") + assert out.shape == (2, 20, 30) + assert np.isfinite(out.values).mean() > 0.9 + + +def test_antimeridian_rectilinear_constant(): + da = xr.DataArray( + np.full((2, 4), 2.5), + dims=("latitude", "longitude"), + coords={ + "latitude": np.array([-2.5, 2.5]), + "longitude": np.array([167.5, 172.5, -177.5, -172.5]), + }, + ) + target = xr.Dataset( + coords={ + "latitude": np.array([-2.5, 2.5]), + "longitude": np.array([170.0, -170.0]), + } + ) + + out = da.regrid.conservative_2d(target, x_coord="longitude", y_coord="latitude") + np.testing.assert_allclose(out.values, 2.5, atol=1e-12) + + +def test_cross_convention_longitude_alignment(): + """Source on [0, 360] with target on [-180, 180] (and vice versa) must + align — a uniform shift can't reconcile the two conventions, so per-value + wrap of source longitudes is required. Regression: previously yielded + NaN on half the target cells because banker's rounding on the exact-180° + mean diff produced a zero offset.""" + src_vals = np.array([1.0, 2.0, 3.0, 4.0]) + tgt_vals_neg = np.array([-135.0, -45.0, 45.0, 135.0]) + src_vals_neg_x = np.array([45.0, 135.0, 225.0, 315.0]) + da = xr.DataArray( + np.broadcast_to(src_vals, (2, 4)).copy(), + dims=("latitude", "longitude"), + coords={"latitude": [-30.0, 30.0], "longitude": src_vals_neg_x}, + ) + target = xr.Dataset(coords={"latitude": [-30.0, 30.0], "longitude": tgt_vals_neg}) + expected = da.regrid.conservative(target).transpose("latitude", "longitude") + out_planar = da.regrid.conservative_2d( + target, x_coord="longitude", y_coord="latitude" + ).transpose("latitude", "longitude") + out_cea = da.regrid.conservative_2d( + target, x_coord="longitude", y_coord="latitude", manifold="cea" + ).transpose("latitude", "longitude") + np.testing.assert_allclose(out_planar.values, expected.values, atol=1e-12) + np.testing.assert_allclose(out_cea.values, expected.values, atol=1e-12) + + # Reverse: source on [-180, 180], target on [0, 360]. + da_rev = xr.DataArray( + np.broadcast_to(src_vals, (2, 4)).copy(), + dims=("latitude", "longitude"), + coords={"latitude": [-30.0, 30.0], "longitude": tgt_vals_neg}, + ) + target_rev = xr.Dataset( + coords={"latitude": [-30.0, 30.0], "longitude": src_vals_neg_x} + ) + expected_rev = da_rev.regrid.conservative(target_rev).transpose( + "latitude", "longitude" + ) + out_rev = da_rev.regrid.conservative_2d( + target_rev, x_coord="longitude", y_coord="latitude" + ).transpose("latitude", "longitude") + np.testing.assert_allclose(out_rev.values, expected_rev.values, atol=1e-12) + + +def test_polygon_nan_threshold_invalid(): + da = _rect_da() + with pytest.raises(ValueError): + da.regrid.conservative_2d( + _rect_target(), x_coord="x", y_coord="y", nan_threshold=1.5 + ) + + +def test_invalid_manifold_raises(): + da = _rect_da() + with pytest.raises(ValueError, match="manifold must be one of"): + da.regrid.conservative_2d( + _rect_target(), x_coord="x", y_coord="y", manifold="bogus" + ) + + +def test_polygon_dataset_input(): + """A Dataset input with multiple variables should regrid all of them.""" + da = _rect_da() + ds = xr.Dataset({"a": da, "b": da * 2.0}) + target = _rect_target() + out = ds.regrid.conservative_2d(target, x_coord="x", y_coord="y") + assert set(out.data_vars) == {"a", "b"} + np.testing.assert_allclose( + out["b"].transpose(*out["a"].dims).values, + out["a"].transpose(*out["a"].dims).values * 2.0, + atol=1e-12, + ) + + +# --- ConservativeRegridder (reusable) ------------------------------------------ + + +def test_regridder_reusable_matches_oneshot(): + """Reusing a single ConservativeRegridder on multiple fields matches the + one-shot `conservative_2d_regrid` call.""" + da1 = _rect_da(seed=1) + da2 = _rect_da(seed=2) + target = _rect_target() + regridder = ConservativeRegridder(da1, target, x_coord="x", y_coord="y") + ref1 = da1.regrid.conservative_2d(target, x_coord="x", y_coord="y") + ref2 = da2.regrid.conservative_2d(target, x_coord="x", y_coord="y") + out1 = regridder.regrid(da1) + out2 = regridder(da2) # __call__ alias + np.testing.assert_allclose(out1.values, ref1.values, atol=1e-12) + np.testing.assert_allclose(out2.values, ref2.values, atol=1e-12) + + +def test_regridder_weight_cache(): + """Forward weight matrix is built lazily and then reused across calls.""" + da = _rect_da() + target = _rect_target() + regridder = ConservativeRegridder(da, target, x_coord="x", y_coord="y") + # _forward is a cached_property; not yet materialized before first regrid. + assert "_forward" not in regridder.__dict__ + regridder.regrid(da) + assert "_forward" in regridder.__dict__ + w1 = regridder.forward_weights + regridder.regrid(da) + assert regridder.forward_weights is w1 # same object, not rebuilt + + +def test_regridder_transpose_roundtrip_rectilinear_aligned(): + """If target cells are aligned unions of source cells, forward followed by + backward reproduces a constant field exactly.""" + # 120 source cells along each axis, target is a 4x coarsening (exact union + # of source cells). A constant source field survives the roundtrip to + # itself because every source cell is fully covered. + ns = 120 + nt = 30 # exactly ns / 4 + x_s = np.linspace(-180, 180, ns, endpoint=False) + 180 / ns + y_s = np.linspace(-90, 90, ns, endpoint=False) + 90 / ns + x_t = np.linspace(-180, 180, nt, endpoint=False) + 180 / nt + y_t = np.linspace(-90, 90, nt, endpoint=False) + 90 / nt + da = xr.DataArray( + np.full((ns, ns), 3.5, dtype=np.float64), + dims=("y", "x"), + coords={"y": y_s, "x": x_s}, + ) + target = xr.Dataset(coords={"y": y_t, "x": x_t}) + regridder = ConservativeRegridder(da, target, x_coord="x", y_coord="y") + coarse = regridder.regrid(da) + back = regridder.T.regrid(coarse) + # Every value should match the original constant. + np.testing.assert_allclose(back.values, 3.5, atol=1e-12) + + +def test_regridder_T_preserves_weights(): # noqa: N802 + """regridder.T.T should share the raw area matrix with the original.""" + da = _rect_da() + target = _rect_target() + r = ConservativeRegridder(da, target, x_coord="x", y_coord="y") + rr = r.T.T + # Same shape, same coords, same data. + assert r.areas.shape == rr.areas.shape + if hasattr(r.areas, "data"): + np.testing.assert_array_equal(r.areas.data, rr.areas.data) + + +def test_regridder_shape_mismatch_raises(): + """Applying the regridder to data whose spatial shape differs from the + source it was built for should raise.""" + da = _rect_da() + target = _rect_target() + regridder = ConservativeRegridder(da, target, x_coord="x", y_coord="y") + smaller = _rect_da(ny=30, nx=60) + with pytest.raises(ValueError, match="spatial shape"): + regridder.regrid(smaller) + + +def test_cea_manifold_matches_factored(): + """Polygon path with ``manifold="cea"`` should match the axis-factored + sin-weighted conservative path to within a tight tolerance on lat/lon + grids (both are analytically equivalent for cylindrical equal-area).""" + lon_s = np.linspace(-180, 180, 180, endpoint=False) + 1.0 + lat_s = np.linspace(-90, 90, 90, endpoint=False) + 1.0 + lon_t = np.linspace(-180, 180, 60, endpoint=False) + 3.0 + lat_t = np.linspace(-90, 90, 30, endpoint=False) + 3.0 + vals = np.cos(np.deg2rad(lat_s))[:, None] ** 2 * np.sin(np.deg2rad(lon_s))[None, :] + da = xr.DataArray( + vals, + dims=("latitude", "longitude"), + coords={"latitude": lat_s, "longitude": lon_s}, + ) + target = xr.Dataset(coords={"latitude": lat_t, "longitude": lon_t}) + + factored = da.regrid.conservative(target, latitude_coord="latitude") + polygon = da.regrid.conservative_2d( + target, x_coord="longitude", y_coord="latitude", manifold="cea" + ) + # Both methods should agree to the grid's own quadrature accuracy. Near the + # poles the factored path's median-dlat approximation introduces a small + # discrepancy; 1e-3 absolute is well below the planar raw error floor + # (~1e-2 at this resolution, tested separately). + np.testing.assert_allclose( + polygon.transpose(*factored.dims).values, + factored.values, + atol=1e-3, + ) + + +def test_cea_conserves_integral(): + """Mass conservation check on the sphere. For cos^2(lat), true integral is + 8*pi/3; the regridder on a 2-to-6-degree grid should keep the + spherical-area-weighted sum within the grid quadrature floor when + manifold="cea", and miss it by ~17x more with planar.""" + lon_s = np.linspace(-180, 180, 180, endpoint=False) + 1.0 + lat_s = np.linspace(-90, 90, 90, endpoint=False) + 1.0 + lon_t = np.linspace(-180, 180, 60, endpoint=False) + 3.0 + lat_t = np.linspace(-90, 90, 30, endpoint=False) + 3.0 + da = xr.DataArray( + np.cos(np.deg2rad(lat_s))[:, None] ** 2 * np.ones(lon_s.size)[None, :], + dims=("latitude", "longitude"), + coords={"latitude": lat_s, "longitude": lon_s}, + ) + target = xr.Dataset(coords={"latitude": lat_t, "longitude": lon_t}) + + out_cea = da.regrid.conservative_2d( + target, x_coord="longitude", y_coord="latitude", manifold="cea" + ) + out_planar = da.regrid.conservative_2d( + target, x_coord="longitude", y_coord="latitude", manifold="planar" + ) + + # True target spherical cell areas + dlon_arr = np.full(lon_t.size, np.deg2rad(np.mean(np.diff(lon_t)))) + lat_r = np.deg2rad(lat_t) + dlat_r = np.gradient(lat_r) + dlat_bands = np.sin(lat_r + dlat_r / 2) - np.sin(lat_r - dlat_r / 2) + a_tgt = dlat_bands[:, None] * dlon_arr[None, :] + + true_val = 8 * np.pi / 3 + cea_vals = out_cea.transpose("latitude", "longitude").values + planar_vals = out_planar.transpose("latitude", "longitude").values + err_cea = abs(float((cea_vals * a_tgt).sum()) - true_val) + err_planar = abs(float((planar_vals * a_tgt).sum()) - true_val) + # CEA should be at least 10x more accurate than raw planar here. + assert err_cea < 0.1 * err_planar, ( + f"err_cea={err_cea:.2e} err_planar={err_planar:.2e}" + ) + + +def test_cea_conserves_known_integral(): + """Gold-standard conservation: cos^2(lat) * (1.5 + sin(lon)) integrates to + 4*pi over the sphere. Regridded with manifold="cea" onto a co-extensive + global grid, mass is conserved to machine precision when measured with + INDEPENDENT analytic spherical cell areas (sin-latitude bands times dlon) — + not the regridder's own matrix — and the source integral approaches the + known value. + + Unlike a self-area check (a row-normalization identity that "conserves" any + matrix) or a constant field (which row-normalization reproduces regardless), + a spatially-varying field + independent areas + matched domains actually + exercises the geometry. cea cells ARE the sin-projected parallel-bounded + cells, so the analytic area is exact and conservation is machine-precise. + """ + + def glat(n): + return np.linspace(-90, 90, n, endpoint=False) + 90 / n # edges hit ±90 + + def glon(n): + return np.linspace(-180, 180, n, endpoint=False) + 180 / n + + def analytic_area(n_lon, n_lat): # independent of the regridder + lat_e = np.deg2rad(np.linspace(-90, 90, n_lat + 1)) + lon_e = np.deg2rad(np.linspace(-180, 180, n_lon + 1)) + return np.diff(np.sin(lat_e))[:, None] * np.diff(lon_e)[None, :] + + ns_lat, ns_lon, nt_lat, nt_lon = 120, 240, 40, 80 + lat_s, lon_s = glat(ns_lat), glon(ns_lon) + lat_t, lon_t = glat(nt_lat), glon(nt_lon) + grid_lat, grid_lon = np.meshgrid(lat_s, lon_s, indexing="ij") + field = np.cos(np.deg2rad(grid_lat)) ** 2 * (1.5 + np.sin(np.deg2rad(grid_lon))) + da = xr.DataArray( + field, + dims=("latitude", "longitude"), + coords={"latitude": lat_s, "longitude": lon_s}, + ) + target = xr.Dataset(coords={"latitude": lat_t, "longitude": lon_t}) + + out = ( + da.regrid.conservative_2d( + target, x_coord="longitude", y_coord="latitude", manifold="cea" + ) + .transpose("latitude", "longitude") + .values + ) + assert np.isfinite(out).all() # co-extensive global grids -> full coverage + + i_src = float((da.values * analytic_area(ns_lon, ns_lat)).sum()) + i_tgt = float((out * analytic_area(nt_lon, nt_lat)).sum()) + np.testing.assert_allclose(i_tgt, i_src, rtol=1e-12) # conserved (machine prec.) + np.testing.assert_allclose(i_src, 4 * np.pi, rtol=2e-3) # ~ the known value + + +# --- from_polygons (unstructured mesh) ---------------------------------------- + + +def _box_polygons(): + rng = np.random.default_rng(1) + n = 50 + cx = rng.uniform(-170, 170, n) + cy = rng.uniform(-80, 80, n) + return shapely.box(cx - 5, cy - 5, cx + 5, cy + 5) + + +def test_polygons_from_coords_periodic(): + polys = polygons_from_coords( + np.array([167.5, 172.5, -177.5, -172.5]), + np.array([-2.5, 2.5]), + periodic=True, + ) + bounds = shapely.bounds(polys) + widths = bounds[:, 2] - bounds[:, 0] + assert np.all(widths < 10.1) + + +def test_from_polygons_basic(): + src_polys = _box_polygons() + tgt_polys = polygons_from_coords( + np.linspace(-180, 180, 30, endpoint=False) + 6, + np.linspace(-90, 90, 15, endpoint=False) + 6, + ) + rgr = ConservativeRegridder.from_polygons( + src_polys, tgt_polys, source_dim="face", target_dim="cell" + ) + da = xr.DataArray( + np.arange(src_polys.size, dtype=np.float64), + dims=("face",), + ) + out = rgr.regrid(da) + assert out.dims == ("cell",) + assert out.sizes["cell"] == tgt_polys.size + + +def test_from_polygons_attaches_target_aux_coords(): + src_polys = _box_polygons() + tgt_polys = polygons_from_coords( + np.linspace(-180, 180, 12, endpoint=False) + 15, + np.linspace(-90, 90, 6, endpoint=False) + 15, + ) + region_id = np.arange(tgt_polys.size) + 100 + target_coords = xr.Dataset( + coords={ + "cell": np.arange(tgt_polys.size), + "region_id": ("cell", region_id), + } + ) + rgr = ConservativeRegridder.from_polygons( + src_polys, + tgt_polys, + source_dim="face", + target_dim="cell", + target_coords=target_coords, + ) + da = xr.DataArray(np.arange(src_polys.size, dtype=np.float64), dims=("face",)) + out = rgr.regrid(da) + assert "region_id" in out.coords + np.testing.assert_array_equal(out["region_id"].values, region_id) + + +def test_from_polygons_periodic_antimeridian(): + src_polys = np.array( + [shapely.Polygon([(175, -5), (-175, -5), (-175, 5), (175, 5)])], + dtype=object, + ) + tgt_polys = np.array( + [ + shapely.box(160, -5, 170, 5), + shapely.box(175, -5, 185, 5), + shapely.box(-170, -5, -160, 5), + ], + dtype=object, + ) + rgr = ConservativeRegridder.from_polygons( + src_polys, + tgt_polys, + source_dim="src", + target_dim="tgt", + periodic=True, + ) + out = rgr.regrid(xr.DataArray([7.0], dims=("src",))) + + assert np.isnan(out.values[0]) + assert out.values[1] == pytest.approx(7.0) + assert np.isnan(out.values[2]) + + +def test_from_polygons_mass_conservation(): + """Sum of intersected mass should match the direct A·s calculation to + machine precision for any source field.""" + + src_polys = _box_polygons() + tgt_polys = polygons_from_coords( + np.linspace(-180, 180, 36, endpoint=False) + 5, + np.linspace(-90, 90, 18, endpoint=False) + 5, + ) + rgr = ConservativeRegridder.from_polygons( + src_polys, tgt_polys, source_dim="face", target_dim="cell" + ) + rng = np.random.default_rng(3) + s = rng.normal(size=src_polys.size) + da = xr.DataArray(s, dims=("face",)) + out = rgr.regrid(da).values + # Direct mass = sum_i s_i * source_coverage_i. Matches output if we + # multiply output by target-covered area. + tgt_covered = rgr.target_areas + valid = tgt_covered > 0 + direct = float((s * rgr.source_coverage_areas).sum()) + via_regrid = float((out[valid] * tgt_covered[valid]).sum()) + rel = abs(direct - via_regrid) / max(abs(direct), 1e-12) + assert rel < 1e-12, f"rel err {rel:.2e}" + + +def test_from_polygons_transpose_roundtrip(): + """Roundtrip mesh ↔ mesh of a constant field returns the constant.""" + src_polys = polygons_from_coords( + np.linspace(-180, 180, 24, endpoint=False) + 7.5, + np.linspace(-90, 90, 12, endpoint=False) + 7.5, + ) + tgt_polys = polygons_from_coords( + np.linspace(-180, 180, 12, endpoint=False) + 15, + np.linspace(-90, 90, 6, endpoint=False) + 15, + ) + rgr = ConservativeRegridder.from_polygons( + src_polys, tgt_polys, source_dim="src", target_dim="tgt" + ) + da = xr.DataArray(np.full(src_polys.size, 3.5), dims=("src",)) + out = rgr.regrid(da) + back = rgr.T.regrid(out) + # Inner source cells (fully covered by target cells they map to) must be 3.5. + # Edge cells may be NaN if target domain doesn't cover them. + finite = np.isfinite(back.values) + np.testing.assert_allclose(back.values[finite], 3.5, atol=1e-12) + + +def test_from_polygons_nan_propagation(): + """NaN source cells propagate through skipna=True correctly.""" + src_polys = polygons_from_coords( + np.linspace(-180, 180, 24, endpoint=False) + 7.5, + np.linspace(-90, 90, 12, endpoint=False) + 7.5, + ) + tgt_polys = polygons_from_coords( + np.linspace(-180, 180, 12, endpoint=False) + 15, + np.linspace(-90, 90, 6, endpoint=False) + 15, + ) + rgr = ConservativeRegridder.from_polygons( + src_polys, tgt_polys, source_dim="src", target_dim="tgt" + ) + vals = np.full(src_polys.size, 1.0) + vals[:5] = np.nan + da = xr.DataArray(vals, dims=("src",)) + out_keep = rgr.regrid(da, nan_threshold=1.0) + out_strict = rgr.regrid(da, nan_threshold=0.0) + # Strict should have at least as many NaNs. + strict_nans = int(np.isnan(out_strict.values).sum()) + keep_nans = int(np.isnan(out_keep.values).sum()) + assert strict_nans >= keep_nans + + +def test_from_polygons_target_outside_source_is_nan(): + """Target cells entirely outside the source domain must be NaN regardless + of skipna (regression test for a bug where the "skip mask matmul when no + NaNs" optimization returned zeros for uncovered cells).""" + + src = np.array([shapely.box(0, 0, 1, 1)], dtype=object) + tgt = polygons_from_coords( + np.linspace(100, 110, 4, endpoint=False) + 1.25, + np.linspace(100, 110, 4, endpoint=False) + 1.25, + ) + rgr = ConservativeRegridder.from_polygons(src, tgt, source_dim="src") + # Source has no NaNs → used to wrongly return 0 here. + da = xr.DataArray(np.array([5.0]), dims=("src",)) + out = rgr.regrid(da, skipna=True) + assert np.isnan(out.values).all() + out_no = rgr.regrid(da, skipna=False) + assert np.isnan(out_no.values).all() + + +def test_from_polygons_hole_is_nan(): + """A target cell fully inside a source-polygon hole should be NaN, not 0.""" + + ring_with_hole = shapely.Polygon( + [(0, 0), (10, 0), (10, 10), (0, 10)], + [[(3, 3), (7, 3), (7, 7), (3, 7)]], + ) + src = np.array([ring_with_hole], dtype=object) + tgt = polygons_from_coords( + np.linspace(0, 10, 5, endpoint=False) + 1, + np.linspace(0, 10, 5, endpoint=False) + 1, + ) + rgr = ConservativeRegridder.from_polygons(src, tgt, source_dim="src") + out = rgr.regrid(xr.DataArray([7.0], dims=("src",))) + # The cell centered at (5,5), edges [4,6]x[4,6], lies entirely in the hole. + assert int(np.isnan(out.values).sum()) >= 1 + + +def test_from_polygons_input_validation(): + # 2D polygons array rejected + p = shapely.box(0, 0, 1, 1) + arr_2d = np.array([[p, p], [p, p]], dtype=object) + with pytest.raises(ValueError, match="1D"): + ConservativeRegridder.from_polygons(arr_2d, np.array([p])) + + +# --- netCDF save / load ------------------------------------------------------- + + +def test_regrid_preserves_input_dtype(): + """Float32 in → float32 out; float64 in → float64 out. Sparse promotes + to float64 internally, so we rely on an explicit cast at the end of + ``_apply_core``.""" + da = _rect_da() + target = _rect_target() + rgr = ConservativeRegridder(da, target, x_coord="x", y_coord="y") + assert rgr.regrid(da.astype(np.float32)).dtype == np.float32 + assert rgr.regrid(da.astype(np.float64)).dtype == np.float64 + # Integer inputs promote (float32 can't hold int32 without precision loss). + assert np.issubdtype(rgr.regrid((da * 10).astype(np.int32)).dtype, np.floating) + + +def test_to_netcdf_roundtrip_structured(tmp_path): + """Save, reload, regrid → identical output to the original regridder.""" + da = _rect_da() + target = _rect_target() + rgr = ConservativeRegridder(da, target, x_coord="x", y_coord="y") + out_before = rgr.regrid(da).values + + path = tmp_path / "regridder.nc" + rgr.to_netcdf(path) + rgr2 = ConservativeRegridder.from_netcdf(path) + + np.testing.assert_array_equal(rgr2.regrid(da).values, out_before) + assert rgr2.spec == rgr.spec + + +def test_to_netcdf_preserves_manifold(tmp_path): + lat_s = np.linspace(-90, 90, 30, endpoint=False) + 3 + lon_s = np.linspace(-180, 180, 60, endpoint=False) + 3 + lat_t = np.linspace(-90, 90, 15, endpoint=False) + 6 + lon_t = np.linspace(-180, 180, 30, endpoint=False) + 6 + da = xr.DataArray( + np.cos(np.deg2rad(lat_s))[:, None] ** 2 * np.ones(lon_s.size)[None, :], + dims=("latitude", "longitude"), + coords={"latitude": lat_s, "longitude": lon_s}, + ) + target = xr.Dataset(coords={"latitude": lat_t, "longitude": lon_t}) + + rgr = ConservativeRegridder( + da, target, x_coord="longitude", y_coord="latitude", manifold="cea" + ) + before = rgr.regrid(da).values + path = tmp_path / "r.nc" + rgr.to_netcdf(path) + rgr2 = ConservativeRegridder.from_netcdf(path) + assert rgr2.manifold == "cea" + np.testing.assert_allclose(rgr2.regrid(da).values, before, atol=1e-15) + + +def test_to_netcdf_transpose_works_after_reload(tmp_path): + """A reloaded regridder can still take .T for backward regridding.""" + da = _rect_da() + target = _rect_target() + rgr = ConservativeRegridder(da, target, x_coord="x", y_coord="y") + path = tmp_path / "r.nc" + rgr.to_netcdf(path) + rgr2 = ConservativeRegridder.from_netcdf(path) + + fwd = rgr.regrid(da) + back_original = rgr.T.regrid(fwd).values + back_reloaded = rgr2.T.regrid(fwd).values + np.testing.assert_array_equal(back_original, back_reloaded) + + +def test_to_netcdf_unstructured_roundtrip(tmp_path): + """from_polygons regridder roundtrips too (single spatial dim each side).""" + rng = np.random.default_rng(1) + cx = rng.uniform(-170, 170, 30) + cy = rng.uniform(-80, 80, 30) + src_polys = shapely.box(cx - 5, cy - 5, cx + 5, cy + 5) + tgt_polys = polygons_from_coords( + np.linspace(-180, 180, 24, endpoint=False) + 7.5, + np.linspace(-90, 90, 12, endpoint=False) + 7.5, + ) + rgr = ConservativeRegridder.from_polygons( + src_polys, tgt_polys, source_dim="face", target_dim="cell" + ) + da = xr.DataArray(rng.normal(size=30), dims=("face",)) + out_before = rgr.regrid(da).values + + path = tmp_path / "r.nc" + rgr.to_netcdf(path) + rgr2 = ConservativeRegridder.from_netcdf(path) + np.testing.assert_array_equal(rgr2.regrid(da).values, out_before) + + +def test_to_netcdf_metadata_fields(tmp_path): + """Metadata captures grid ranges, version, created timestamp.""" + da = _rect_da() + target = _rect_target() + rgr = ConservativeRegridder(da, target, x_coord="x", y_coord="y") + path = tmp_path / "r.nc" + rgr.to_netcdf(path) + + with xr.open_dataset(path) as ds: + attrs = dict(ds.attrs) + + assert attrs["x_coord"] == "x" + assert attrs["y_coord"] == "y" + assert str(attrs["manifold"]) == "planar" + assert tuple(int(size) for size in attrs["src_shape"]) == rgr.spec.src_shape + assert tuple(int(size) for size in attrs["dst_shape"]) == rgr.spec.dst_shape + # Grid ranges captured when the coord is present in source/target. + assert "source_x_range" in attrs + assert "target_x_range" in attrs + assert attrs["source_x_range"][0] <= attrs["source_x_range"][1] + assert attrs["created"] + assert int(attrs["schema_version"]) == 1 + + +def test_from_netcdf_rejects_unknown_schema(tmp_path): + """Loading a file written with a future schema version raises cleanly.""" + h5py = pytest.importorskip("h5py") + da = _rect_da() + target = _rect_target() + rgr = ConservativeRegridder(da, target, x_coord="x", y_coord="y") + path = tmp_path / "r.nc" + rgr.to_netcdf(path) + + # Bump the on-disk schema_version so the loader should reject it. + with h5py.File(path, "a") as f: + f.attrs["schema_version"] = 999 + + with pytest.raises(ValueError, match="schema version"): + ConservativeRegridder.from_netcdf(path) + + +def test_regridder_transpose_curvilinear(): + """Transpose works when the target is a curvilinear grid with different + dim names from the source.""" + da = _rect_da(ny=40, nx=80) + ny_t, nx_t = 20, 30 + xi, yi = np.meshgrid( + np.linspace(-120, 120, nx_t), + np.linspace(-60, 60, ny_t), + indexing="xy", + ) + th = np.deg2rad(15) + x2 = xi * np.cos(th) - yi * np.sin(th) + y2 = xi * np.sin(th) + yi * np.cos(th) + target = xr.Dataset(coords={"x": (("ny", "nx"), x2), "y": (("ny", "nx"), y2)}) + regridder = ConservativeRegridder(da, target, x_coord="x", y_coord="y") + fwd = regridder.regrid(da) + assert fwd.dims == ("time", "ny", "nx") + # Going backward we should land back on (time, y, x) + back = regridder.T.regrid(fwd) + assert "y" in back.dims and "x" in back.dims + assert back.sizes["y"] == da.sizes["y"] + assert back.sizes["x"] == da.sizes["x"]