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"]