diff --git a/myst.yml b/myst.yml
index 8728e144b..c2cbda3cd 100644
--- a/myst.yml
+++ b/myst.yml
@@ -16,7 +16,6 @@ project:
children:
- file: notebooks/software_environment_docker.ipynb
- file: notebooks/set_up_Earthdata_Login.md
- - file: notebooks/NISAR_data_access.ipynb
- title: GCOV
children:
- file: notebooks/GCOV_intro.md
@@ -27,6 +26,7 @@ project:
- file: notebooks/search_download_NISAR_GCOV_asf_search.ipynb
- file: notebooks/search_stream_NISAR_GCOV_asf_search.ipynb
- file: notebooks/search_NISAR_GCOV_earthaccess.ipynb
+ - file: notebooks/NISAR_data_access.ipynb
- title: GCOV Data Loading, Manipulation, and Visualization
children:
- file: notebooks/Opening_HDF5_Python.ipynb
@@ -38,6 +38,8 @@ project:
- title: GCOV PolSAR Tutorials
- title: RSLC
- title: GSLC
+ children:
+ - file: notebooks/GSLC_Faraday_Rotation_Estimation.ipynb
- title: GUNW
- title: Additional NISAR Resources
children:
@@ -70,4 +72,4 @@ execute:
site:
template: book-theme
options:
- favicon: favicon.ico
+ favicon: favicon.ico
\ No newline at end of file
diff --git a/notebooks/GSLC_Faraday_Rotation_Estimation.ipynb b/notebooks/GSLC_Faraday_Rotation_Estimation.ipynb
new file mode 100644
index 000000000..2e46a0e9f
--- /dev/null
+++ b/notebooks/GSLC_Faraday_Rotation_Estimation.ipynb
@@ -0,0 +1,542 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "c18a53c5-5e25-4cc2-a075-694cd7314456",
+ "metadata": {},
+ "source": [
+ "# Estimate the Faraday Rotation of a GSLC\n",
+ "\n",
+ "
\n",
+ "\n",
+ "Faraday rotation in the ionosphere scales with the square of a SAR signal's wavelength ($\\lambda^2$). Therefore, ionospheric impacts to polarization rotation are much more pronounced in NISAR's ~25cm L-band data than in Sentinel-1's ~5cm C-band data.\n",
+ "\n",
+ "This notebook loads NISAR L-band GSLC data and performs a Faraday rotation estimation using the circular-basis method described in equation 14 of [F. J. Meyer and J. B. Nicoll's, “Prediction, detection, and correction of Faraday rotation in full-polarimetric\n",
+ " L-band SAR data”](https://topex.ucsd.edu/pub/sandwell/Venus_InSAR/atmosphere/meyer_nicoll_TGRS46_10_ionosphere_Polarimetry.pdf).\n",
+ "\n",
+ "
\n",
+ "\n",
+ "## Overview\n",
+ "\n",
+ "1. [Prerequisites](faraday-prereqs)\n",
+ "1. [Search for data](faraday-search)\n",
+ "1. [Load a single GSLC with HTTPS](faraday-https)\n",
+ "1. [Define functions to perform a Faraday rotation estimation over an optionally multilooked GSLC](faraday-functions)\n",
+ "1. [Estimate Faraday rotation on the multi-looked subset GSLC](faraday-estimate)\n",
+ "1. [Plot the Faraday rotation over a basemap](faraday-plot)\n",
+ "1. [Summary](faraday-summary)\n",
+ "1. [Resources and references](faraday-resources)\n",
+ "\n",
+ "
\n",
+ "\n",
+ "(faraday-prereqs)=\n",
+ "## 1. Prerequisites\n",
+ "| Prerequisite | Importance | Notes |\n",
+ "| --- | --- | --- |\n",
+ "| [The software environment for this cookbook must be installed](https://github.com/ASFOpenSARlab/NISAR_GCOV_Cookbook/blob/main/notebooks/create_software_environment.ipynb) | Necessary | |\n",
+ "\n",
+ "- **Rough Notebook Time Estimate**: 10 minutes\n",
+ "\n",
+ "
\n",
+ "\n",
+ "(faraday-search)=\n",
+ "## 2. Search for data\n",
+ "\n",
+ "Use `asf_search` to find GCOV data.\n",
+ "\n",
+ "### 2a. Perform an `asf_search.search()` to identify your desired product URLs\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "3726320b-acff-456e-892b-30488288d5a0",
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [],
+ "source": [
+ "import os\n",
+ "import asf_search as asf\n",
+ "from datetime import datetime\n",
+ "from getpass import getpass\n",
+ "\n",
+ "import warnings\n",
+ "warnings.filterwarnings(\n",
+ " \"ignore\",\n",
+ " message=\"Parsing dates involving a day of month without a year specified\",\n",
+ ")\n",
+ "\n",
+ "session = asf.ASFSession()\n",
+ "\n",
+ "start_date = datetime(2026, 1, 16)\n",
+ "end_date = datetime(2026, 1, 18)\n",
+ "area_of_interest = \"POINT(447.0504 24.5906)\" # POINT or POLYGON as WKT (well-known-text)\n",
+ "pattern = r'^(?!.*QA_STATS).*'\n",
+ "\n",
+ "opts=asf.ASFSearchOptions(**{\n",
+ " \"maxResults\": 250,\n",
+ " \"intersectsWith\": area_of_interest,\n",
+ " \"flightDirection\": \"DESCENDING\",\n",
+ " \"start\": start_date,\n",
+ " \"end\": end_date,\n",
+ " \"processingLevel\": [\n",
+ " \"GSLC\"\n",
+ " ],\n",
+ " \"dataset\": [\n",
+ " \"NISAR\"\n",
+ " ],\n",
+ " \"productionConfiguration\": [\n",
+ " \"PR\"\n",
+ " ],\n",
+ " 'session': session,\n",
+ "})\n",
+ "\n",
+ "response = asf.search(opts=opts)\n",
+ "hdf5_urls = response.find_urls(extension='.h5', pattern=pattern, directAccess=False)\n",
+ "print(f\"Found {len(hdf5_urls)} GSLC products:\")\n",
+ "hdf5_urls"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "14aa1ab0-3f07-4a27-8178-49bbc2bb67ec",
+ "metadata": {},
+ "source": [
+ "### 2c. Provide your Earthdata Login (EDL) Bearer Token\n",
+ "\n",
+ "Both HTTPS and S3 access require an EDL Bearer Token\n",
+ "\n",
+ ":::{figure} ../assets/edl_token.png\n",
+ ":alt: Image of the Earthdata Login Generate Token web page\n",
+ ":width: 75%\n",
+ ":align: left\n",
+ "\n",
+ "View or generate a Bearer Token in \"Generate Token\" tab of the Profile page in your Earthdata Login account: https://urs.earthdata.nasa.gov/profile\n",
+ ":::\n",
+ "\n",
+ ":::{note} Temporary S3 credentials\n",
+ "\n",
+ "The S3 credentials acquired below expire after 1 hour.\n",
+ ":::"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "81f710e3-d010-4da4-b05f-75e02d2889ab",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from getpass import getpass\n",
+ "\n",
+ "token = getpass(\"Enter your EDL Bearer Token\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5596d0b1-3168-42ab-9100-72a1ea50285c",
+ "metadata": {},
+ "source": [
+ "
\n",
+ "\n",
+ "(faraday-https)=\n",
+ "## 3. Load a single GSLC with HTTPS\n",
+ "\n",
+ "### 3a. Lazily load a GSLC dataset with `xarray`"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "69cc7b1f-b27d-40ff-88c4-601f4f16ac26",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%%time\n",
+ "import asf_search as asf\n",
+ "import fsspec\n",
+ "import rioxarray\n",
+ "import xarray as xr\n",
+ "\n",
+ "group_path = \"/science/LSAR/GSLC/grids/frequencyA\"\n",
+ "\n",
+ "fs = fsspec.filesystem(\n",
+ " \"http\",\n",
+ " headers = {\"Authorization\": f\"Bearer {token}\"},\n",
+ " block_size = 16 * 512 * 512,\n",
+ ")\n",
+ "\n",
+ "f = fs.open(hdf5_urls[0], \"rb\")\n",
+ "\n",
+ "dt = xr.open_datatree(\n",
+ " f,\n",
+ " engine=\"h5netcdf\",\n",
+ " decode_timedelta=False,\n",
+ " phony_dims=\"access\",\n",
+ " chunks=\"auto\",\n",
+ " group=group_path\n",
+ ")\n",
+ "\n",
+ "display(dt)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "fde1d715-e87c-4bd2-95e1-18b542826bdd",
+ "metadata": {},
+ "source": [
+ "### 3b. Create a spatial subset "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "d4a3ad57-950b-4c15-8225-79d8ee2e81ab",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import rioxarray\n",
+ "\n",
+ "ds = dt.to_dataset()\n",
+ "projection = ds.projection.attrs['epsg_code'].item()\n",
+ "ds = ds.rio.write_crs(projection) # write the project to the HHHH data for easy lat/lon subsetting\n",
+ "\n",
+ "# subset the data\n",
+ "subset_ds = ds.rio.clip_box(\n",
+ " minx=446.5857, miny=24.7935,\n",
+ " maxx=446.7342, maxy=24.9244, \n",
+ " crs=\"EPSG:4326\"\n",
+ ")\n",
+ "subset_ds"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5bff5ee1-9021-4393-8e60-8faa19725420",
+ "metadata": {},
+ "source": [
+ "(faraday-functions)=\n",
+ "## 4. Define functions to perform a Faraday rotation estimation over an optionally multilooked GSLC\n",
+ "\n",
+ "Uses the circular-basis method for Faraday rotation estimation described in equation 14 of [F. J. Meyer and J. B. Nicoll's, “Prediction, detection, and correction of Faraday rotation in full-polarimetric\n",
+ " L-band SAR data”](https://topex.ucsd.edu/pub/sandwell/Venus_InSAR/atmosphere/meyer_nicoll_TGRS46_10_ionosphere_Polarimetry.pdf)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "b40bc52f-6813-4bc0-abf7-c06abab29bfb",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import xarray as xr\n",
+ "\n",
+ "def multilook_mean(da, ly=1, lx=1, x_coord=\"xCoordinates\", y_coord=\"yCoordinates\"):\n",
+ " \"\"\"\n",
+ " Spatially multilook an `xarray.DataArray` by taking the mean over\n",
+ " pixel windows (ly x lx).\n",
+ "\n",
+ " da : (xarray.Dataset or xarray.DataArray) 2D DataArray to multilook\n",
+ " ly : (int) Number of pixels to average together in the y direction\n",
+ " lx : (int) Number of pixels to average together in the x direction\n",
+ "\n",
+ " returns: Multilooked xarray.DataArray\n",
+ " \"\"\"\n",
+ " return da.coarsen(\n",
+ " {y_coord: ly, x_coord: lx},\n",
+ " boundary=\"trim\"\n",
+ " ).mean()\n",
+ "\n",
+ "def faraday_rotation_circular_basis(hh, hv, vh, vv, \n",
+ " ly=10, lx=10, # multilook window\n",
+ " x_coord=\"xCoordinates\", y_coord=\"yCoordinates\"):\n",
+ " \"\"\"\n",
+ " Estimate Faraday rotation angle using the circular-basis method:\n",
+ "\n",
+ " [Z11 Z12] [1 j] [M'hh M'vh] [1 j]\n",
+ " [Z21 Z22] = [j 1] [M'hv M'vv] [j 1]\n",
+ "\n",
+ " from which we derive:\n",
+ "\n",
+ " Ω_hat = 1/4 * arg(Z12 * conj(Z21))\n",
+ "\n",
+ " M′: measured scattering matrices (linear basis)\n",
+ " Ω_hat: Faraday Rotation angle estimate\n",
+ " Z: circular basis (Z12: RL, Z21: LR)\n",
+ " arg: argument of complex number (phase in the complex plane)\n",
+ "\n",
+ " References: \n",
+ " - F. J. Meyer and J. B. Nicoll, “Prediction, detection, and correction of Faraday rotation in full-polarimetric\n",
+ " L-band SAR data,” IEEE Trans. Geosci. Remote Sens., vol. 46, no. 10, pp. 3076–3086, Oct. 2008.\n",
+ " https://topex.ucsd.edu/pub/sandwell/Venus_InSAR/atmosphere/meyer_nicoll_TGRS46_10_ionosphere_Polarimetry.pdf\n",
+ " - S. H. Bickel and R. H. T. Bates, “Effects of magneto-ionic propagation on the\n",
+ " polarization scattering matrix,” Proc. IEEE, vol. 53, no. 8, pp. 1089–1091, Aug. 1965\n",
+ "\n",
+ " hh, hv, vh, vv : (xarray.Dataset or xarray.DataArray) Complex-valued, linearly polarized image DataArrays\n",
+ " ly : (int) Number of looks in y for multilooking\n",
+ " lx : (int) Number of looks in x for multilooking\n",
+ " x_coord: (string) DataArrays' x coordinate variable name\n",
+ " y_coord: (sring) DataArrays' y coordinate variable name\n",
+ "\n",
+ " Returns: omega (xarray.DataArray) Estimated Faraday rotation angle in radians\n",
+ " \"\"\"\n",
+ " \n",
+ " # Z = T * M' * T\n",
+ " #\n",
+ " # T = [[1, j],\n",
+ " # [j, 1]]\n",
+ " #\n",
+ " # [[Z11 Z12], = [[1, j], [[hh, vh], [[1, j],\n",
+ " # [Z21 Z22]] = [j, 1]] * [hv, vv]] * [j, 1]]\n",
+ " \n",
+ " T = 1j\n",
+ " # calculate the circular-basis off-diagonal terms \n",
+ " z12 = (T * hh) - vh + hv + (T * vv)\n",
+ " z21 = (T * hh) + vh - hv + (T * vv)\n",
+ "\n",
+ " # multilook the cross-product of the off-diagonal terms\n",
+ " phase_product = z12 * np.conj(z21)\n",
+ "\n",
+ " # multilook the cross-product\n",
+ " phase_product_ml = multilook_mean(\n",
+ " phase_product,\n",
+ " ly=ly, lx=lx,\n",
+ " x_coord=x_coord, y_coord=y_coord\n",
+ " )\n",
+ "\n",
+ " # P = Z12 * conj(Z21)\n",
+ " # Ω_hat = 1/4 * arg(P)\n",
+ " # and\n",
+ " # Z=x+iy\n",
+ " # cosθ = x/hyp, sinθ = y/hyp\n",
+ " # θ = arctan(y/x)\n",
+ " # ∴\n",
+ " # arg(P)=atan2(ℑ(P),ℜ(P))\n",
+ " # Ω_hat = 1/4 * atan2(ℑ(P),ℜ(P))\n",
+ " omega_rad = 0.25 * xr.apply_ufunc(\n",
+ " np.arctan2, # np.arctan2 avoids quadrant ambiguity\n",
+ " phase_product_ml.imag, # y-coord\n",
+ " phase_product_ml.real, # x-coord\n",
+ " dask=\"parallelized\",\n",
+ " output_dtypes=[np.float64],\n",
+ " )\n",
+ " omega_rad.name = \"faraday_rotation_rad\"\n",
+ " omega_rad.attrs[\"units\"] = \"radian\"\n",
+ "\n",
+ " # Coherence-based quality metric\n",
+ " # P = Z12 * conj(Z21)\n",
+ " # quality = |P| / sqrt(|Z12|^2 * |Z21|^2)\n",
+ " #\n",
+ " # quality ≈ 1: stable phase difference, reliable FR estimate\n",
+ " # quality ≈ 0: random/noisy phase difference, unreliable FR estimate\n",
+ " z12_pow_ml = multilook_mean(\n",
+ " np.abs(z12) ** 2,\n",
+ " ly=ly, lx=lx,\n",
+ " x_coord=x_coord, y_coord=y_coord\n",
+ " )\n",
+ "\n",
+ " z21_pow_ml = multilook_mean(\n",
+ " np.abs(z21) ** 2,\n",
+ " ly=ly, lx=lx,\n",
+ " x_coord=x_coord, y_coord=y_coord\n",
+ " )\n",
+ "\n",
+ " quality = np.abs(phase_product_ml) / np.sqrt(z12_pow_ml * z21_pow_ml)\n",
+ " quality = quality.clip(0, 1)\n",
+ " quality.name = \"faraday_rotation_quality\"\n",
+ " quality.attrs[\"units\"] = \"unitless\"\n",
+ "\n",
+ " if hasattr(hh, \"rio\") and hh.rio.crs is not None:\n",
+ " omega_rad = omega_rad.rio.write_crs(hh.rio.crs, inplace=False)\n",
+ " quality = quality.rio.write_crs(hh.rio.crs, inplace=False)\n",
+ "\n",
+ " return omega_rad, quality"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "7a192d1c-1e4f-4b1d-9dfd-00f9da2cec8b",
+ "metadata": {},
+ "source": [
+ "(faraday-plot)=\n",
+ "## 6. Plot the Faraday rotation over a basemap\n",
+ "\n",
+ ">\"Faraday rotation (FR) angles of less than $5^\\circ$ are generally considered acceptable for many commonly used SAR parameter extraction methods. Higher levels of FR can introduce significant errors in SAR image interpretation and analysis, particularly for polarimetric decompositions that rely on channel ratios.\"\n",
+ ">\n",
+ ">\n",
+ ">*[Meyer, F. J., and J. B. Nicoll (2008), “Prediction, detection, and correction of Faraday rotation in full-polarimetric L-band SAR data,” IEEE Transactions on Geoscience and Remote Sensing, 46(10), 3076–3086](https://topex.ucsd.edu/pub/sandwell/Venus_InSAR/atmosphere/meyer_nicoll_TGRS46_10_ionosphere_Polarimetry.pdf)*"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "2bd7c8f8-eae7-460d-a7ee-88a86717dc85",
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [],
+ "source": [
+ "%%time\n",
+ "\n",
+ "import numpy as np\n",
+ "import panel as pn\n",
+ "import holoviews as hv\n",
+ "import hvplot.xarray # noqa\n",
+ "\n",
+ "hv.extension(\"bokeh\")\n",
+ "pn.extension()\n",
+ "\n",
+ "omega_rad, quality = faraday_rotation_circular_basis(\n",
+ " subset_ds.HH,\n",
+ " subset_ds.HV,\n",
+ " subset_ds.VH,\n",
+ " subset_ds.VV,\n",
+ " ly=10, # adjust multilooking window height\n",
+ " lx=10, # adjust multilooking window width\n",
+ ")\n",
+ "\n",
+ "omega_deg = np.degrees(omega_rad)\n",
+ "omega_deg.name = \"faraday_rotation_deg\"\n",
+ "omega_deg.attrs[\"units\"] = \"degree\"\n",
+ "\n",
+ "quality_thresh = 0.3 # Set quality threshold for masking \n",
+ "omega_deg_masked = omega_deg.where(quality >= quality_thresh)\n",
+ "omega_deg_masked.name = \"faraday_rotation_deg_quality_masked\"\n",
+ "omega_deg_masked.attrs[\"units\"] = \"degree\"\n",
+ "omega_deg_masked.attrs[\"quality_threshold\"] = quality_thresh\n",
+ "omega_deg_masked\n",
+ "\n",
+ "omega_web = omega_deg_masked.rio.reproject(\"EPSG:3857\")\n",
+ "quality_web = quality.rio.reproject_match(omega_web)\n",
+ "omega_web = omega_web.compute()\n",
+ "quality_web = quality_web.compute()\n",
+ "\n",
+ "print(f\"FR min/max: {float(omega_web.min())}, {float(omega_web.max())}\")\n",
+ "mean_abs_deg = float(np.abs(omega_deg_masked).mean(skipna=True))\n",
+ "print(f\"Mean abs FR: {mean_abs_deg}\")\n",
+ "median_abs_deg = float(np.nanmedian(np.abs(omega_deg_masked).compute()))\n",
+ "print(f\"Median abs FR: {median_abs_deg}\")\n",
+ "std_deg = float(omega_deg_masked.std(skipna=True))\n",
+ "print(f\"Std FR: {std_deg}\")\n",
+ "print(f\"Quality min/max: {float(quality_web.min())}, {float(quality_web.max())}\")\n",
+ "print(f\"Quality valid pixels: {int(quality_web.count())}\")\n",
+ "\n",
+ "xmin = float(omega_web.x.min())\n",
+ "xmax = float(omega_web.x.max())\n",
+ "ymin = float(omega_web.y.min())\n",
+ "ymax = float(omega_web.y.max())\n",
+ "\n",
+ "alpha = pn.widgets.FloatSlider(name=\"FR alpha\", start=0.0, end=1.0, step=0.05, value=1.0)\n",
+ "show_fr = pn.widgets.Toggle(name=\"Show Faraday rotation\", value=True)\n",
+ "show_quality = pn.widgets.Toggle(name=\"Show quality\", value=False)\n",
+ "\n",
+ "tiles = hv.element.tiles.EsriImagery().opts(\n",
+ " xlim=(xmin, xmax),\n",
+ " ylim=(ymin, ymax),\n",
+ " frame_width=700,\n",
+ " frame_height=500,\n",
+ " active_tools=[\"wheel_zoom\"],\n",
+ ")\n",
+ "\n",
+ "@pn.depends(alpha, show_fr, show_quality)\n",
+ "def view(alpha, show_fr, show_quality):\n",
+ " layers = tiles\n",
+ "\n",
+ " if show_fr:\n",
+ " fr = omega_web.hvplot.image(\n",
+ " x=\"x\",\n",
+ " y=\"y\",\n",
+ " cmap=\"RdBu_r\",\n",
+ " clim=(-5, 5),\n",
+ " frame_width=700,\n",
+ " frame_height=500,\n",
+ " title=\"Faraday Rotation\",\n",
+ " ).opts(\n",
+ " alpha=alpha,\n",
+ " xlim=(xmin, xmax),\n",
+ " ylim=(ymin, ymax),\n",
+ " )\n",
+ " layers = layers * fr\n",
+ "\n",
+ " if show_quality:\n",
+ " q = quality_web.hvplot.image(\n",
+ " x=\"x\",\n",
+ " y=\"y\",\n",
+ " cmap=\"viridis\",\n",
+ " clim=(0, 1),\n",
+ " colorbar=True, \n",
+ " frame_width=700,\n",
+ " frame_height=500,\n",
+ " title=\"Faraday Rotation Quality\",\n",
+ " ).opts(\n",
+ " alpha=1.0,\n",
+ " xlim=(xmin, xmax),\n",
+ " ylim=(ymin, ymax),\n",
+ " )\n",
+ " layers = layers * q\n",
+ "\n",
+ " return layers\n",
+ "\n",
+ "pn.Column(show_fr, alpha, show_quality, view)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "966cd2e9-d728-422c-858b-7d1f6cf01b79",
+ "metadata": {},
+ "source": [
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d25ac9f4-eb54-471d-9538-913c23f795a7",
+ "metadata": {},
+ "source": [
+ "(faraday-summary)=\n",
+ "## 7. Summary\n",
+ "You now have the tools and knowledge that you need to search GSLC data with asf_search, stream it with ffspec and xarray, and estimate Faraday rotation caused by passage of the signal through the ionosphere. \n",
+ "\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1f208102-d013-4732-8e11-31f45fbdf935",
+ "metadata": {},
+ "source": [
+ "(faraday-resources)=\n",
+ "## 8. Resources and references\n",
+ " - [asf_search](https://github.com/asfadmin/Discovery-asf_search)\n",
+ " - [NISAR Data User Guide](https://nisar-docs.asf.alaska.edu/aws-s3-access/)\n",
+ " - [F. J. Meyer and J. B. Nicoll's, “Prediction, detection, and correction of Faraday rotation in full-polarimetric\n",
+ " L-band SAR data”](https://topex.ucsd.edu/pub/sandwell/Venus_InSAR/atmosphere/meyer_nicoll_TGRS46_10_ionosphere_Polarimetry.pdf)\n",
+ " \n",
+ "**Author:** Alex Lewandowski"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "isce3 (Python)",
+ "language": "python",
+ "name": "isce3"
+ },
+ "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.13.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/pixi.lock b/pixi.lock
index f2d4d44e6..d3ef3569f 100644
--- a/pixi.lock
+++ b/pixi.lock
@@ -483,6 +483,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/asf_search-base-12.0.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.2.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/attr-2.5.2-hb03c661_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.9.6-hb9c0fe4_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.9.13-h2c9d079_1.conda
@@ -524,12 +525,14 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/linux-64/cartopy-0.25.0-py313h08cd8bf_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.2.25-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py313hf46b229_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.5-py313h29aa505_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/ciso8601-2.3.3-py313h54dd161_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/cligj-0.7.2-pyhd8ed1ab_2.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/colorcet-3.1.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.3-pyhe01879c_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/contextily-1.7.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py313hc8edb43_4.conda
@@ -538,6 +541,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-1.1.0-py313h07c4f96_2.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/datashader-0.19.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/dateparser-1.3.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.20-py313h5d5ffb9_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda
@@ -558,8 +562,11 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.2.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/gdal-3.11.5-py313h60f829d_5.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.1.3-pyha770c72_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/geopy-2.4.1-pyhd8ed1ab_2.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/geos-3.14.1-h480dda7_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/geoviews-1.15.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/geoviews-core-1.15.1-pyha770c72_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-h5888daf_1005.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hbabe93e_0.conda
@@ -569,10 +576,13 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.1-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.15.1-nompi_py313h253c126_101.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h2a13503_7.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h19486de_106.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/holoviews-1.22.1-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hvplot-0.12.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda
@@ -622,6 +632,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-compute-23.0.1-h53684a4_2_cpu.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-23.0.1-h635bf11_2_cpu.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-23.0.1-hb4dd7c2_2_cpu.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libattr-2.5.2-hb03c661_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-5_h4a7cf45_openblas.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.2.0-hb03c661_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.2.0-hb03c661_1.conda
@@ -655,6 +666,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.2-hb03c661_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.10.0-nompi_hbf2fc22_100.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hb9d3cd8_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_4.conda
@@ -681,20 +693,28 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-hca6bf5a_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-he237659_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-devel-2.15.1-he237659_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.11.2-h6991a6a_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/linkify-it-py-2.1.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.46.0-py313hdd307be_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2
- conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.4.5-py313h28739b2_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.10.0-h5888daf_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-h280c20c_1002.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-3.10.2-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.3-py313h3dea7bd_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.8-py313h683a580_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mdit-py-plugins-0.5.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mercantile-1.2.1-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/minizip-4.0.10-h05a5f5f_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.2.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.2-py313h7037e92_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/multidict-6.7.1-py313h3dea7bd_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-2.0.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/multipledispatch-0.6.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/muparser-2.3.5-h5888daf_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mystmd-1.8.1-pyhcf101f3_0.conda
@@ -704,9 +724,11 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.4-nompi_py311ha0596eb_105.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.12.0-h54a6638_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-25.6.1-he4ff34a_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.64.0-py313h5dce7c4_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.15.1-py313h08cd8bf_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.2-py313hf6604e3_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.4-h55fea9a_0.conda
@@ -716,6 +738,8 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.3.3-py313h08cd8bf_2.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/panel-1.8.10-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/param-2.3.3-pyhc455866_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.6-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.47-haa7fec5_0.conda
@@ -736,6 +760,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-23.0.1-py313h78bf25f_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-23.0.1-py313h98bfbea_0_cpu.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyct-0.6.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.7.2-py313h77f6078_2.conda
@@ -752,6 +777,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.3-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyviz_comms-3.0.6-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py313h3dea7bd_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-27.1.0-py312hda471dd_2.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/qhull-2020.2-h434a139_5.conda
@@ -799,6 +825,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/tzlocal-5.3.1-pyh8f84b5b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/uc-micro-py-2.0.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/uriparser-0.9.8-hac33072_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda
@@ -885,12 +912,14 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/osx-64/cartopy-0.25.0-py313h2f264a9_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.2.25-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-2.0.0-py313hf57695f_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.5-py313hceb611b_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/ciso8601-2.3.3-py313h6865ccc_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/cligj-0.7.2-pyhd8ed1ab_2.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/colorcet-3.1.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.3-pyhe01879c_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/contextily-1.7.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.3.3-py313h98b818e_4.conda
@@ -899,6 +928,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/osx-64/cytoolz-1.1.0-py313h36bb7f5_2.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/datashader-0.19.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/dateparser-1.3.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.20-py313h8b5a893_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda
@@ -919,8 +949,11 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.2.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/gdal-3.11.5-py313h5e27e46_5.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.1.3-pyha770c72_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/geopy-2.4.1-pyhd8ed1ab_2.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/geos-3.14.1-he483b9e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/geoviews-1.15.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/geoviews-core-1.15.1-pyha770c72_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/gflags-2.2.2-hac325c4_1005.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/giflib-5.2.2-h10d778d_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/glog-0.7.1-h2790a97_0.conda
@@ -930,10 +963,13 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.1-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/h5py-3.15.1-nompi_py313h2a429bc_101.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf4-4.2.15-h8138101_7.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_hf563b80_106.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/holoviews-1.22.1-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hvplot-0.12.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.2-h14c5de8_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda
@@ -1013,6 +1049,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-devel-5.8.2-h11316ed_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/libmpdec-4.0.0-hf3981d6_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libnetcdf-4.10.0-nompi_h2d2ed95_100.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.67.0-h3338091_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_h6006d49_4.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/libopentelemetry-cpp-1.21.0-h7a0a166_2.conda
@@ -1035,21 +1072,29 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-16-2.15.1-he456531_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.15.1-h24ca049_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-devel-2.15.1-h24ca049_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libzip-1.11.2-h31df5bb_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/linkify-it-py-2.1.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-22.1.0-h0d3cbff_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/llvmlite-0.46.0-py313h590e1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2
- conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-4.4.5-py313hab77a93_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-c-1.10.0-h240833e_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/lzo-2.10-h4132b18_1002.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-3.10.2-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-3.0.3-py313h0f4d31d_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-base-3.10.8-py313h4ad75b8_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mdit-py-plugins-0.5.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mercantile-1.2.1-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/minizip-4.0.10-hfb7a1ec_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.2.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/msgpack-python-1.1.2-py313h5eff275_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/multidict-6.7.1-py313h84cef87_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-2.0.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/multipledispatch-0.6.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/muparser-2.3.5-hb996559_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mystmd-1.8.1-pyhcf101f3_0.conda
@@ -1059,9 +1104,11 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.4-nompi_py311hd72b3df_105.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.12.0-h06076ce_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/nodejs-25.6.1-hf3170e9_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.64.0-py313h4fc6aae_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/numcodecs-0.15.1-py313h2f264a9_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.4.2-py313hf1665ba_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.4-h87e8dc5_0.conda
@@ -1071,6 +1118,8 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.3.3-py313h2f264a9_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/panel-1.8.10-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/param-2.3.3-pyhc455866_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.6-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.47-h13923f0_0.conda
@@ -1091,6 +1140,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-23.0.1-py313habf4b1d_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-23.0.1-py313h345cca6_0_cpu.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyct-0.6.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-core-12.1-py313h07bcf3a_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-framework-cocoa-12.1-py313hf669bc3_0.conda
@@ -1109,6 +1159,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.3-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyviz_comms-3.0.6-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.3-py313h7c6a591_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/pyzmq-27.1.0-py312h2ac7433_2.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/qhull-2020.2-h3c5361c_5.conda
@@ -1155,6 +1206,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/tzlocal-5.3.1-pyh8f84b5b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/uc-micro-py-2.0.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/uriparser-0.9.8-h6aefe2f_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda
@@ -1241,12 +1293,14 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cartopy-0.25.0-py313h7d16b84_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.2.25-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-2.0.0-py313h224173a_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.5-py313hf5115c3_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ciso8601-2.3.3-py313h5b5ffa7_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/cligj-0.7.2-pyhd8ed1ab_2.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/colorcet-3.1.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.3-pyhe01879c_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/contextily-1.7.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.3-py313h2af2deb_4.conda
@@ -1255,6 +1309,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-1.1.0-py313h0997733_2.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/datashader-0.19.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/dateparser-1.3.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.20-py313h1188861_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda
@@ -1275,8 +1330,11 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.2.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/gdal-3.11.5-py313h83041ef_5.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.1.3-pyha770c72_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/geopy-2.4.1-pyhd8ed1ab_2.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/geos-3.14.1-h5afe852_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/geoviews-1.15.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/geoviews-core-1.15.1-pyha770c72_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/gflags-2.2.2-hf9b8971_1005.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/giflib-5.2.2-h93a5062_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/glog-0.7.1-heb240a5_0.conda
@@ -1286,10 +1344,13 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.1-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/h5py-3.15.1-nompi_py313h7aa1c8b_101.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf4-4.2.15-h2ee6834_7.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.6-nompi_had3affe_106.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/holoviews-1.22.1-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hvplot-0.12.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-h38cb7af_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda
@@ -1369,6 +1430,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-devel-5.8.2-h8088a28_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h84a0fba_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.10.0-nompi_h7a8d41e_100.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.67.0-hc438710_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopentelemetry-cpp-1.21.0-h08d5cc3_2.conda
@@ -1391,21 +1453,29 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.1-h5ef1a60_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.1-h8d039ee_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-devel-2.15.1-h8d039ee_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.11.2-h1336266_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/linkify-it-py-2.1.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-22.1.0-hc7d1edf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.46.0-py313he297ed2_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.4.5-py313hd065f0a_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-c-1.10.0-h286801f_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/lzo-2.10-h925e9cb_1002.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-3.10.2-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.3-py313h7d74516_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.10.8-py313h58042b9_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mdit-py-plugins-0.5.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mercantile-1.2.1-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/minizip-4.0.10-hff1a8ea_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.2.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.1.2-py313ha61f8ec_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/multidict-6.7.1-py313haf6918d_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-2.0.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/multipledispatch-0.6.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/muparser-2.3.5-h11e0b38_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mystmd-1.8.1-pyhcf101f3_0.conda
@@ -1415,9 +1485,11 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.4-nompi_py311h8d5b1ca_105.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlohmann_json-3.12.0-h784d473_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-25.6.1-h7039424_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.64.0-py313h3ca053b_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/numcodecs-0.15.1-py313h7d16b84_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.4.2-py313h16eae64_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.4-hbfb3c88_0.conda
@@ -1427,6 +1499,8 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.3.3-py313h7d16b84_2.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/panel-1.8.10-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/param-2.3.3-pyhc455866_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.6-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.47-h30297fc_0.conda
@@ -1447,6 +1521,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-23.0.1-py313h39782a4_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-23.0.1-py313h23b330d_0_cpu.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyct-0.6.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-core-12.1-py313h40b429f_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-framework-cocoa-12.1-py313hcc5defa_0.conda
@@ -1465,6 +1540,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.3-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyviz_comms-3.0.6-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.3-py313h65a2061_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-27.1.0-py312h022ad19_2.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/qhull-2020.2-h420ef59_5.conda
@@ -1511,6 +1587,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/tzlocal-5.3.1-pyh8f84b5b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/uc-micro-py-2.0.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/uriparser-0.9.8-h00cdb27_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda
@@ -1867,6 +1944,17 @@ packages:
license_family: MIT
size: 21470
timestamp: 1771623881915
+- conda: https://conda.anaconda.org/conda-forge/linux-64/attr-2.5.2-hb03c661_1.conda
+ sha256: 78c516af87437f52d883193cf167378f592ad445294c69f7c69f56059087c40d
+ md5: 9bb149f49de3f322fca007283eaa2725
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libattr 2.5.2 hb03c661_1
+ - libgcc >=14
+ license: GPL-2.0-or-later
+ license_family: GPL
+ size: 31386
+ timestamp: 1773595914754
- conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda
sha256: c13d5e42d187b1d0255f591b7ce91201d4ed8a5370f0d986707a802c20c9d32f
md5: 537296d57ea995666c68c821b00e360b
@@ -3173,6 +3261,47 @@ packages:
license_family: MIT
size: 291376
timestamp: 1761203583358
+- conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.5-py313h29aa505_1.conda
+ sha256: 61400ff89fe435868a68a0e49ab24ec68fe0e8f7e10c52b947e7753994aa797f
+ md5: c63d5f9d63fe2f48b0ad75005fcae7ba
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=14
+ - numpy >=1.21.2
+ - numpy >=1.23,<3
+ - python >=3.13,<3.14.0a0
+ - python_abi 3.13.* *_cp313
+ license: MIT
+ license_family: MIT
+ size: 430983
+ timestamp: 1768510941102
+- conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.5-py313hceb611b_1.conda
+ sha256: 4a2ecb26da383b4b0d45dfc09e0142c409911875178254790510c7b14557a90a
+ md5: 089a4c77defcfd3f240391864da647c9
+ depends:
+ - __osx >=10.13
+ - numpy >=1.21.2
+ - numpy >=1.23,<3
+ - python >=3.13,<3.14.0a0
+ - python_abi 3.13.* *_cp313
+ license: MIT
+ license_family: MIT
+ size: 395392
+ timestamp: 1768511253893
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.5-py313hf5115c3_1.conda
+ sha256: 6fec83f36746b5977283d0433224fe50a9fa85dac81036912dba3ceef36cf834
+ md5: 1e6565956ac1d659613807c28e103350
+ depends:
+ - __osx >=11.0
+ - numpy >=1.21.2
+ - numpy >=1.23,<3
+ - python >=3.13,<3.14.0a0
+ - python >=3.13,<3.14.0a0 *_cp313
+ - python_abi 3.13.* *_cp313
+ license: MIT
+ license_family: MIT
+ size: 388560
+ timestamp: 1768511482468
- conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda
sha256: b32f8362e885f1b8417bac2b3da4db7323faa12d5db62b7fd6691c02d60d6f59
md5: a22d1fd9bf98827e280a02875d9a007a
@@ -3258,6 +3387,14 @@ packages:
license_family: BSD
size: 27353
timestamp: 1765303462831
+- conda: https://conda.anaconda.org/conda-forge/noarch/colorcet-3.1.0-pyhd8ed1ab_1.conda
+ sha256: 46055a0524ed3a48b23cd27a52246c89ac059ccce90a50b2eeb84d2f833ae827
+ md5: 91d7152c744dc0f18ef8beb3cbc9980a
+ depends:
+ - python >=3.9
+ license: CC-BY-4.0
+ size: 173950
+ timestamp: 1734007415513
- conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.3-pyhe01879c_0.conda
sha256: 576a44729314ad9e4e5ebe055fbf48beb8116b60e58f9070278985b2b634f212
md5: 2da13f2b299d8e1995bafbbe9689a2f7
@@ -3423,6 +3560,27 @@ packages:
license_family: BSD
size: 1062442
timestamp: 1765558272352
+- conda: https://conda.anaconda.org/conda-forge/noarch/datashader-0.19.0-pyhd8ed1ab_0.conda
+ sha256: cfecc3dad48250f530ebd16f52061cb37bc9fdbdfec25098bf2de8424996b0bc
+ md5: 7718b2244ac8f3b4188ed4a06d49faf5
+ depends:
+ - colorcet
+ - multipledispatch
+ - numba
+ - numpy
+ - packaging
+ - pandas
+ - param
+ - pyct
+ - python >=3.10
+ - requests
+ - scipy
+ - toolz
+ - xarray
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 9618951
+ timestamp: 1774010655548
- conda: https://conda.anaconda.org/conda-forge/noarch/dateparser-1.3.0-pyhd8ed1ab_0.conda
sha256: b63361ea4bf1f960ebd562f719e8970491b30bb2c9101c216240a03b01081c8d
md5: c6b52555e1c8976713d1bc46d18bb52c
@@ -3884,6 +4042,19 @@ packages:
license_family: MIT
size: 40836
timestamp: 1755865181359
+- conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.1.3-pyha770c72_0.conda
+ sha256: b07fc3edb5cb86df52081e5cb120a03a178767ed079b5d2cd313212351460620
+ md5: 18789a85c307970ae1786dfc6dfd234f
+ depends:
+ - numpy >=1.24
+ - packaging
+ - pandas >=2.0.0
+ - python >=3.10
+ - shapely >=2.0.0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 254983
+ timestamp: 1773131233972
- conda: https://conda.anaconda.org/conda-forge/noarch/geopy-2.4.1-pyhd8ed1ab_2.conda
sha256: ac453c9558c48febe452c79281c632b3749baef7c04ed4b62f871709aee2aa03
md5: 40182a8d62a61d147ec7d3e4c5c36ac2
@@ -3922,6 +4093,43 @@ packages:
license: LGPL-2.1-only
size: 1530844
timestamp: 1761594597236
+- conda: https://conda.anaconda.org/conda-forge/noarch/geoviews-1.15.1-pyhd8ed1ab_0.conda
+ sha256: 97bb6e9fb7e0c546b09c418a783c383f45524c872182729fca2fa7548c6eb2c3
+ md5: bb92eaf3d9b30b2f04f65686b4e1d11f
+ depends:
+ - datashader
+ - geopandas-base
+ - geoviews-core 1.15.1 pyha770c72_0
+ - netcdf4
+ - pandas
+ - pyct
+ - python >=3.10
+ - xarray
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 8875
+ timestamp: 1768375468696
+- conda: https://conda.anaconda.org/conda-forge/noarch/geoviews-core-1.15.1-pyha770c72_0.conda
+ sha256: f02b166089a5fbb11d81db73ac8150835e1c10e9f8d2ec3c0e503656c12325b4
+ md5: 44d1dcb11f7136ddb356b4b9eb0f6a6d
+ depends:
+ - bokeh >=3.8.0
+ - cartopy >=0.18.0
+ - holoviews >=1.16.0
+ - numpy >=1.0
+ - packaging
+ - panel >=1.0.0
+ - param >=1.9.3,<3.0
+ - pyproj
+ - python >=3.10
+ - shapely >=1.8.0
+ - xyzservices
+ constrains:
+ - geoviews 1.15.1
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 418482
+ timestamp: 1768375420333
- conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-h5888daf_1005.conda
sha256: 6c33bf0c4d8f418546ba9c250db4e4221040936aef8956353bc764d4877bc39a
md5: d411fc29e338efb48c5fd4576d71d881
@@ -4163,6 +4371,40 @@ packages:
license_family: BSD
size: 1149087
timestamp: 1764018311867
+- conda: https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h2a13503_7.conda
+ sha256: 0d09b6dc1ce5c4005ae1c6a19dc10767932ef9a5e9c755cfdbb5189ac8fb0684
+ md5: bd77f8da987968ec3927990495dc22e4
+ depends:
+ - libgcc-ng >=12
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - libstdcxx-ng >=12
+ - libzlib >=1.2.13,<2.0.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 756742
+ timestamp: 1695661547874
+- conda: https://conda.anaconda.org/conda-forge/osx-64/hdf4-4.2.15-h8138101_7.conda
+ sha256: 8c767cc71226e9eb62649c903c68ba73c5f5e7e3696ec0319d1f90586cebec7d
+ md5: 7ce543bf38dbfae0de9af112ee178af2
+ depends:
+ - libcxx >=15.0.7
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - libzlib >=1.2.13,<2.0.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 724103
+ timestamp: 1695661907511
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf4-4.2.15-h2ee6834_7.conda
+ sha256: c3b01e3c3fe4ca1c4d28c287eaa5168a4f2fd3ffd76690082ac919244c22fa90
+ md5: ff5d749fd711dc7759e127db38005924
+ depends:
+ - libcxx >=15.0.7
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - libzlib >=1.2.13,<2.0.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 762257
+ timestamp: 1695661864625
- conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h19486de_106.conda
sha256: 1fc50ce3b86710fba3ec9c5714f1612b5ffa4230d70bfe43e2a1436eacba1621
md5: c223ee1429ba538f3e48cfb4a0b97357
@@ -4212,6 +4454,26 @@ packages:
license_family: BSD
size: 3299759
timestamp: 1770390513189
+- conda: https://conda.anaconda.org/conda-forge/noarch/holoviews-1.22.1-pyhd8ed1ab_0.conda
+ sha256: 598c989ceb11bba5c0c142b8394016ddb26153a02e8275eb045985913c72beaf
+ md5: 32bc3daa3fa9619d84e634b4515f564a
+ depends:
+ - bokeh >=3.1
+ - colorcet
+ - matplotlib-base >=3.0
+ - narwhals >=2
+ - numpy >=1.21
+ - packaging
+ - pandas >=1.3
+ - panel >=1.0
+ - param >=2.0,<3.0
+ - python >=3.10
+ - python-dateutil >=2.8.2
+ - pyviz_comms >=2.1
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 4889477
+ timestamp: 1764957187208
- conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda
sha256: 6ad78a180576c706aabeb5b4c8ceb97c0cb25f1e112d76495bff23e3779948ba
md5: 0a802cb9888dd14eeefc611f05c40b6e
@@ -4249,6 +4511,23 @@ packages:
license_family: BSD
size: 63082
timestamp: 1733663449209
+- conda: https://conda.anaconda.org/conda-forge/noarch/hvplot-0.12.2-pyhd8ed1ab_0.conda
+ sha256: 2b1b67462c87b1252733b8d45d88a68de513ba9852d210c77f64f0d20a558603
+ md5: a3ebf00cb037e464061fcf68a5a75d83
+ depends:
+ - bokeh >=3.1
+ - colorcet >=2
+ - holoviews >=1.19.0
+ - numpy >=1.21
+ - packaging
+ - pandas >=1.3
+ - panel >=1.0
+ - param >=1.12.0,<3.0
+ - python >=3.10
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 275723
+ timestamp: 1766071789882
- conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda
sha256: 77af6f5fe8b62ca07d09ac60127a30d9069fdc3c68d6b256754d0ffb1f7779f8
md5: 8e6923fc12f1fe8f8c4e5c9f343256ac
@@ -5502,6 +5781,16 @@ packages:
license_family: APACHE
size: 471642
timestamp: 1771617864680
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libattr-2.5.2-hb03c661_1.conda
+ sha256: 0cef37eb013dc7091f17161c357afbdef9a9bc79ef6462508face6db3f37db77
+ md5: 7e7f0a692eb62b95d3010563e7f963b6
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=14
+ license: LGPL-2.1-or-later
+ license_family: LGPL
+ size: 53316
+ timestamp: 1773595896163
- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-5_h4a7cf45_openblas.conda
build_number: 5
sha256: 18c72545080b86739352482ba14ba2c4815e19e26a7417ca21a95b76ec8da24c
@@ -6714,6 +7003,74 @@ packages:
license_family: BSD
size: 73690
timestamp: 1769482560514
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.10.0-nompi_hbf2fc22_100.conda
+ sha256: f38b00b29c9495b71c12465397c735224ebaef71ad01278c3b9cb69dac685b65
+ md5: 0eb36a09dad274e750d60b49aaec0af7
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - attr >=2.5.2,<2.6.0a0
+ - blosc >=1.21.6,<2.0a0
+ - bzip2 >=1.0.8,<2.0a0
+ - hdf4 >=4.2.15,<4.2.16.0a0
+ - hdf5 >=1.14.6,<1.14.7.0a0
+ - libaec >=1.1.5,<2.0a0
+ - libcurl >=8.18.0,<9.0a0
+ - libgcc >=14
+ - libstdcxx >=14
+ - libxml2
+ - libxml2-16 >=2.14.6
+ - libzip >=1.11.2,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.5.5,<4.0a0
+ - zstd >=1.5.7,<1.6.0a0
+ license: MIT
+ license_family: MIT
+ size: 862222
+ timestamp: 1772190364667
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libnetcdf-4.10.0-nompi_h2d2ed95_100.conda
+ sha256: 9a0f90d7b785c1af5836f339579a7106f1c8f1af7bc2b74a555f387153efee9d
+ md5: 239332ad5f360c9692e90d34f916cd97
+ depends:
+ - __osx >=11.0
+ - blosc >=1.21.6,<2.0a0
+ - bzip2 >=1.0.8,<2.0a0
+ - hdf4 >=4.2.15,<4.2.16.0a0
+ - hdf5 >=1.14.6,<1.14.7.0a0
+ - libaec >=1.1.5,<2.0a0
+ - libcurl >=8.18.0,<9.0a0
+ - libcxx >=19
+ - libxml2
+ - libxml2-16 >=2.14.6
+ - libzip >=1.11.2,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.5.5,<4.0a0
+ - zstd >=1.5.7,<1.6.0a0
+ license: MIT
+ license_family: MIT
+ size: 725520
+ timestamp: 1772191252343
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.10.0-nompi_h7a8d41e_100.conda
+ sha256: 328c5e6f41846093d377f348d921d3a8f27694df48a992ab0f116d900d34afb2
+ md5: 4e7bf56a1474c3e0718588c63e8485ed
+ depends:
+ - __osx >=11.0
+ - blosc >=1.21.6,<2.0a0
+ - bzip2 >=1.0.8,<2.0a0
+ - hdf4 >=4.2.15,<4.2.16.0a0
+ - hdf5 >=1.14.6,<1.14.7.0a0
+ - libaec >=1.1.5,<2.0a0
+ - libcurl >=8.18.0,<9.0a0
+ - libcxx >=19
+ - libxml2
+ - libxml2-16 >=2.14.6
+ - libzip >=1.11.2,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.5.5,<4.0a0
+ - zstd >=1.5.7,<1.6.0a0
+ license: MIT
+ license_family: MIT
+ size: 679826
+ timestamp: 1772190939047
- conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda
sha256: a4a7dab8db4dc81c736e9a9b42bdfd97b087816e029e221380511960ac46c690
md5: b499ce4b026493a13774bcf0f4c33849
@@ -7652,6 +8009,43 @@ packages:
license_family: MIT
size: 79725
timestamp: 1766327519923
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.11.2-h6991a6a_0.conda
+ sha256: 991e7348b0f650d495fb6d8aa9f8c727bdf52dabf5853c0cc671439b160dce48
+ md5: a7b27c075c9b7f459f1c022090697cba
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - bzip2 >=1.0.8,<2.0a0
+ - libgcc >=13
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.3.2,<4.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 109043
+ timestamp: 1730442108429
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libzip-1.11.2-h31df5bb_0.conda
+ sha256: 434a4d1ad23c1c8deb7ec2da94aca05e22bc29dee445b4f7642e1c2f20fc0b0b
+ md5: 3cf12c97a18312c9243a895580bf5be6
+ depends:
+ - __osx >=10.13
+ - bzip2 >=1.0.8,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.3.2,<4.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 129542
+ timestamp: 1730442392952
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.11.2-h1336266_0.conda
+ sha256: 507599a77c1ce823c2d3acaefaae4ead0686f183f3980467a4c4b8ba209eff40
+ md5: 7177414f275db66735a17d316b0a81d6
+ depends:
+ - __osx >=11.0
+ - bzip2 >=1.0.8,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.3.2,<4.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 125507
+ timestamp: 1730442214849
- conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda
sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4
md5: edb0dca6bc32e4f4789199455a1dbeb8
@@ -7686,6 +8080,16 @@ packages:
license_family: Other
size: 46438
timestamp: 1727963202283
+- conda: https://conda.anaconda.org/conda-forge/noarch/linkify-it-py-2.1.0-pyhcf101f3_0.conda
+ sha256: 991a82fbb64aba6d10719a017ce354e28df02ea5df1d9c7b0221da573c168d27
+ md5: 1005e1f39083adad2384772e8e384e43
+ depends:
+ - python >=3.10
+ - uc-micro-py
+ license: MIT
+ license_family: MIT
+ size: 26062
+ timestamp: 1772476821244
- conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-22.1.0-h0d3cbff_0.conda
sha256: b63df4e592b3362e7d13e3d1cf8e55ce932ff4f17611c8514b5d36368ec2094c
md5: 3921780bab286f2439ba483c22b90345
@@ -7708,6 +8112,50 @@ packages:
license: Apache-2.0 WITH LLVM-exception
size: 285558
timestamp: 1772028716784
+- conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.46.0-py313hdd307be_0.conda
+ sha256: 0e1bc6ee1c7885cc26c37fcd1a2095169a4e4e148860c600d3f685b6a4f32322
+ md5: d99ac09b331711fd12e16323ca8d96e4
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=14
+ - libstdcxx >=14
+ - libzlib >=1.3.1,<2.0a0
+ - python >=3.13,<3.14.0a0
+ - python_abi 3.13.* *_cp313
+ - zstd >=1.5.7,<1.6.0a0
+ license: BSD-2-Clause
+ license_family: BSD
+ size: 34130706
+ timestamp: 1765280056189
+- conda: https://conda.anaconda.org/conda-forge/osx-64/llvmlite-0.46.0-py313h590e1ab_0.conda
+ sha256: f1549261f0f2f24c2dd2c7a613b465c0c3e4e1158c43a72224c228aa0b5cb76f
+ md5: ab9fe8b3937e90b22a18554c3d961e97
+ depends:
+ - __osx >=10.13
+ - libcxx >=19
+ - libzlib >=1.3.1,<2.0a0
+ - python >=3.13,<3.14.0a0
+ - python_abi 3.13.* *_cp313
+ - zstd >=1.5.7,<1.6.0a0
+ license: BSD-2-Clause
+ license_family: BSD
+ size: 26010458
+ timestamp: 1765280511277
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.46.0-py313he297ed2_0.conda
+ sha256: d59fdc5a5682e3f6c17f1c8dc73019afaf6724f4ecd10878515438ca35683269
+ md5: 81f05ab2abc842253505133ffa652bf5
+ depends:
+ - __osx >=11.0
+ - libcxx >=19
+ - libzlib >=1.3.1,<2.0a0
+ - python >=3.13,<3.14.0a0
+ - python >=3.13,<3.14.0a0 *_cp313
+ - python_abi 3.13.* *_cp313
+ - zstd >=1.5.7,<1.6.0a0
+ license: BSD-2-Clause
+ license_family: BSD
+ size: 24338921
+ timestamp: 1765280468997
- conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2
sha256: 9afe0b5cfa418e8bdb30d8917c5a6cec10372b037924916f1f85b9f4899a67a6
md5: 91e27ef3d05cc772ce627e51cff111c4
@@ -7817,6 +8265,27 @@ packages:
license_family: GPL
size: 152755
timestamp: 1753889267953
+- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-3.10.2-pyhcf101f3_0.conda
+ sha256: 20e0892592a3e7c683e3d66df704a9425d731486a97c34fc56af4da1106b2b6b
+ md5: ba0a9221ce1063f31692c07370d062f3
+ depends:
+ - importlib-metadata >=4.4
+ - python >=3.10
+ - python
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 85893
+ timestamp: 1770694658918
+- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda
+ sha256: 7b1da4b5c40385791dbc3cc85ceea9fad5da680a27d5d3cb8bfaa185e304a89e
+ md5: 5b5203189eb668f042ac2b0826244964
+ depends:
+ - mdurl >=0.1,<1
+ - python >=3.10
+ license: MIT
+ license_family: MIT
+ size: 64736
+ timestamp: 1754951288511
- conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.3-py311h3778330_0.conda
sha256: 66c072c37aefa046f3fd4ca69978429421ef9e8a8572e19de534272a6482e997
md5: 0954f1a6a26df4a510b54f73b2a0345c
@@ -7990,6 +8459,25 @@ packages:
license_family: BSD
size: 15175
timestamp: 1761214578417
+- conda: https://conda.anaconda.org/conda-forge/noarch/mdit-py-plugins-0.5.0-pyhd8ed1ab_0.conda
+ sha256: 123cc004e2946879708cdb6a9eff24acbbb054990d6131bb94bca7a374ebebfc
+ md5: 1997a083ef0b4c9331f9191564be275e
+ depends:
+ - markdown-it-py >=2.0.0,<5.0.0
+ - python >=3.10
+ license: MIT
+ license_family: MIT
+ size: 43805
+ timestamp: 1754946862113
+- conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda
+ sha256: 78c1bbe1723449c52b7a9df1af2ee5f005209f67e40b6e1d3c7619127c43b1c7
+ md5: 592132998493b3ff25fd7479396e8351
+ depends:
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ size: 14465
+ timestamp: 1733255681319
- conda: https://conda.anaconda.org/conda-forge/noarch/mercantile-1.2.1-pyhd8ed1ab_1.conda
sha256: 42ab9a82c4e4686d7c2a2d511877895bfe946ec2c2ec66e4e1593006fa32445f
md5: 9820756deea38bd213240fd0556d44b8
@@ -8143,6 +8631,16 @@ packages:
license_family: APACHE
size: 15524
timestamp: 1763458529306
+- conda: https://conda.anaconda.org/conda-forge/noarch/multipledispatch-0.6.0-pyhd8ed1ab_1.conda
+ sha256: c6216a21154373b340c64f321f22fec51db4ee6156c2e642fa58368103ac5d09
+ md5: 121a57fce7fff0857ec70fa03200962f
+ depends:
+ - python >=3.6
+ - six
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 17254
+ timestamp: 1721907640382
- conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda
sha256: d09c47c2cf456de5c09fa66d2c3c5035aa1fa228a1983a433c47b876aa16ce90
md5: 37293a85a0f4f77bbd9cf7aaefc62609
@@ -8294,6 +8792,76 @@ packages:
license_family: BSD
size: 11543
timestamp: 1733325673691
+- conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.4-nompi_py311ha0596eb_105.conda
+ noarch: python
+ sha256: ec2dc3171649378d1602bfd361f00a158f800d32e4092749740c4c6d288746b1
+ md5: 71b833f92f41ab92b16ca9f87e8735fe
+ depends:
+ - python
+ - certifi
+ - cftime
+ - numpy
+ - packaging
+ - hdf5
+ - libnetcdf
+ - libgcc >=14
+ - __glibc >=2.17,<3.0.a0
+ - hdf5 >=1.14.6,<1.14.7.0a0
+ - libnetcdf >=4.10.0,<4.10.1.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - numpy >=1.23,<3
+ - _python_abi3_support 1.*
+ - cpython >=3.11
+ license: MIT
+ license_family: MIT
+ size: 1094040
+ timestamp: 1772794140711
+- conda: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.4-nompi_py311hd72b3df_105.conda
+ noarch: python
+ sha256: f15cf978836e7547a9ca398f2c60ea28c8c3ef74ef6407661893a2f6856c5c97
+ md5: 1e30b7c517b3f56aee8d42b4aea14754
+ depends:
+ - python
+ - certifi
+ - cftime
+ - numpy
+ - packaging
+ - hdf5
+ - libnetcdf
+ - __osx >=11.0
+ - _python_abi3_support 1.*
+ - cpython >=3.11
+ - hdf5 >=1.14.6,<1.14.7.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - libnetcdf >=4.10.0,<4.10.1.0a0
+ - numpy >=1.23,<3
+ license: MIT
+ license_family: MIT
+ size: 1020105
+ timestamp: 1772794188379
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.4-nompi_py311h8d5b1ca_105.conda
+ noarch: python
+ sha256: 4920ceaec87518dfb8f715fe60f112b12d0edf694d011cc117e03765477e5342
+ md5: 0dcfff6e238b5a8c5cc0ee5e2ab40d1f
+ depends:
+ - python
+ - certifi
+ - cftime
+ - numpy
+ - packaging
+ - hdf5
+ - libnetcdf
+ - __osx >=11.0
+ - hdf5 >=1.14.6,<1.14.7.0a0
+ - _python_abi3_support 1.*
+ - cpython >=3.11
+ - numpy >=1.23,<3
+ - libnetcdf >=4.10.0,<4.10.1.0a0
+ - libzlib >=1.3.1,<2.0a0
+ license: MIT
+ license_family: MIT
+ size: 996513
+ timestamp: 1772794220033
- conda: https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.12.0-h54a6638_1.conda
sha256: fd2cbd8dfc006c72f45843672664a8e4b99b2f8137654eaae8c3d46dca776f63
md5: 16c2a0e9c4a166e53632cfca4f68d020
@@ -8401,6 +8969,79 @@ packages:
license_family: BSD
size: 16817
timestamp: 1733408419340
+- conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.64.0-py313h5dce7c4_0.conda
+ sha256: 3c6e9f28b5d1d987041011c0b5a1052e730df6c682b47e8a7fd7b6f00040d562
+ md5: 90caff1954fb5cacc0b3e75f5066ae7c
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - _openmp_mutex >=4.5
+ - libgcc >=14
+ - libstdcxx >=14
+ - llvmlite >=0.46.0,<0.47.0a0
+ - numpy >=1.22.3,<2.5
+ - numpy >=1.23,<3
+ - python >=3.13,<3.14.0a0
+ - python_abi 3.13.* *_cp313
+ constrains:
+ - cuda-version >=11.2
+ - scipy >=1.0
+ - libopenblas !=0.3.6
+ - cudatoolkit >=11.2
+ - tbb >=2021.6.0
+ - cuda-python >=11.6
+ license: BSD-2-Clause
+ license_family: BSD
+ size: 5764718
+ timestamp: 1772481814929
+- conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.64.0-py313h4fc6aae_0.conda
+ sha256: 05cf14b53d85c7bec07beeb644ff73ad53088c61d5b83fd4d2c9f5d0697d892e
+ md5: cf7b4f0e369bd47903c552a22a390955
+ depends:
+ - __osx >=11.0
+ - libcxx >=19
+ - llvm-openmp >=19.1.7
+ - llvm-openmp >=22.1.0
+ - llvmlite >=0.46.0,<0.47.0a0
+ - numpy >=1.22.3,<2.5
+ - numpy >=1.23,<3
+ - python >=3.13,<3.14.0a0
+ - python_abi 3.13.* *_cp313
+ constrains:
+ - cuda-version >=11.2
+ - libopenblas !=0.3.6
+ - cuda-python >=11.6
+ - cudatoolkit >=11.2
+ - scipy >=1.0
+ - tbb >=2021.6.0
+ license: BSD-2-Clause
+ license_family: BSD
+ size: 5730801
+ timestamp: 1772482474350
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.64.0-py313h3ca053b_0.conda
+ sha256: a7d1456b321218d532d73a0d47ef97f42f8729b09d579ae1bed3a9645f5deb38
+ md5: 8c539246e98c032220a3e7c0f48f04b8
+ depends:
+ - __osx >=11.0
+ - libcxx >=19
+ - llvm-openmp >=19.1.7
+ - llvm-openmp >=22.1.0
+ - llvmlite >=0.46.0,<0.47.0a0
+ - numpy >=1.22.3,<2.5
+ - numpy >=1.23,<3
+ - python >=3.13,<3.14.0a0
+ - python >=3.13,<3.14.0a0 *_cp313
+ - python_abi 3.13.* *_cp313
+ constrains:
+ - libopenblas >=0.3.18,!=0.3.20
+ - cuda-python >=11.6
+ - scipy >=1.0
+ - cudatoolkit >=11.2
+ - cuda-version >=11.2
+ - tbb >=2021.6.0
+ license: BSD-2-Clause
+ license_family: BSD
+ size: 5739127
+ timestamp: 1772482294462
- conda: https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.15.1-py313h08cd8bf_1.conda
sha256: 208df0f2b426937cd94179d8d6ba7b0ca9d532f09bb478180aa45681c9acdd44
md5: a7a7ffe26b48c1b20ff0e304f5ea51d3
@@ -8805,6 +9446,40 @@ packages:
license_family: BSD
size: 11627
timestamp: 1631603397334
+- conda: https://conda.anaconda.org/conda-forge/noarch/panel-1.8.10-pyhd8ed1ab_0.conda
+ sha256: 81e26bd12f9b1244d3ce249765aeefacda63e7a2e37c4f740491352ac4355bfc
+ md5: d44afaf70929d526f3eb4f8a25cf2953
+ depends:
+ - bleach
+ - bokeh >=3.7.0,<3.10.0
+ - linkify-it-py
+ - markdown
+ - markdown-it-py
+ - mdit-py-plugins
+ - narwhals >=2
+ - packaging
+ - pandas >=1.2
+ - param >=2.1.0,<3.0
+ - python >=3.10
+ - pyviz_comms >=2.0.0
+ - requests
+ - tqdm
+ - typing_extensions
+ constrains:
+ - holoviews >=1.18.0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 23227506
+ timestamp: 1773735459759
+- conda: https://conda.anaconda.org/conda-forge/noarch/param-2.3.3-pyhc455866_0.conda
+ sha256: 7b5cbfbfeca555e69ec89d74e62b18c3cc5a301529ab395f6cd8f7a9454b7b1c
+ md5: 13d9aaa9ed7c9a4ca3bbecbee88eab21
+ depends:
+ - python >=3.10
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 180946
+ timestamp: 1775721079068
- conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.6-pyhcf101f3_0.conda
sha256: 42b2d77ccea60752f3aa929a6413a7835aaacdbbde679f2f5870a744fa836b94
md5: 97c1ce2fffa1209e7afb432810ec6e12
@@ -9350,6 +10025,20 @@ packages:
license_family: BSD
size: 110100
timestamp: 1733195786147
+- conda: https://conda.anaconda.org/conda-forge/noarch/pyct-0.6.0-pyhd8ed1ab_0.conda
+ sha256: 2857170af7e0a0604bbaa305caaedf117ff59a5aa88553530544e1374509be93
+ md5: 9d19c7ea78d067fbbaa2317a85f844e7
+ depends:
+ - param >=1.7.0
+ - python >=3.8
+ - pyyaml
+ - requests
+ constrains:
+ - pyct-core <0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 22142
+ timestamp: 1759062813077
- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
sha256: 5577623b9f6685ece2697c6eb7511b4c9ac5fb607c9babc2646c811b428fd46a
md5: 6b6ece66ebcae2d5f326c77ef2c5a066
@@ -9857,6 +10546,18 @@ packages:
license_family: MIT
size: 189015
timestamp: 1742920947249
+- conda: https://conda.anaconda.org/conda-forge/noarch/pyviz_comms-3.0.6-pyhd8ed1ab_0.conda
+ sha256: 4095768d06ffbe31aa98f1d4a982c1f483de088749f30e990673fcae94f1d8d1
+ md5: e0f2c3ecb4dc40d031bbe88869a2a7a1
+ depends:
+ - param
+ - python >=3.9
+ constrains:
+ - jupyterlab >=4.0,<5
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 49425
+ timestamp: 1750669964512
- conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py311h3778330_1.conda
sha256: c9a6cd2c290d7c3d2b30ea34a0ccda30f770e8ddb2937871f2c404faf60d0050
md5: a24add9a3bababee946f3bc1c829acfe
@@ -10950,6 +11651,15 @@ packages:
license_family: MIT
size: 23880
timestamp: 1756227235167
+- conda: https://conda.anaconda.org/conda-forge/noarch/uc-micro-py-2.0.0-pyhcf101f3_0.conda
+ sha256: 9e5a0e70e876fca50de075b1cc6641cdc009a16c18f4d52ab03edb777729a1bc
+ md5: 4fdd327852ffefc83173a7c029690d0c
+ depends:
+ - python >=3.10
+ license: MIT
+ license_family: MIT
+ size: 13378
+ timestamp: 1772479008776
- conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda
sha256: e0eb6c8daf892b3056f08416a96d68b0a358b7c46b99c8a50481b22631a4dfc0
md5: e7cb0f5745e4c5035a460248334af7eb
diff --git a/pixi.toml b/pixi.toml
index 882abdb02..9e616f8cc 100644
--- a/pixi.toml
+++ b/pixi.toml
@@ -36,6 +36,8 @@ python = "==3.13"
h5netcdf = ">=1.8.1,<2"
zarr = ">=3.1.5,<4"
folium = ">=0.20.0,<0.21"
+hvplot = ">=0.12.2,<0.13"
+geoviews = ">=1.15.1,<2"
[environments]
default = ["base"]