Hurricane Milton Wind and SSH Figure

Hurricane Milton Wind and SSH Figure#

This notebook loads L4 wind, L3 along-track SSH, and L3 SWOT over the Gulf of Mexico for selected dates during Hurricane Miltion, then generates the multi-panel figure with the hurricane track and eye markers.

# Verify ocean_taco is installed.
# Uncomment one line to install inside this notebook:
%pip install "ocean_taco[hf] @ git+https://github.com/nilsleh/oceanTACO.git@main"
# %pip install ocean-taco[hf]
import ocean_taco
print(f"ocean_taco {ocean_taco.__version__} ready")
Collecting ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main (from ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main)
  Cloning https://github.com/nilsleh/oceanTACO.git (to revision main) to /tmp/pip-install-q76trngb/ocean-taco_4d5fd80f298c4a3389f1fde8cdc6eadc
  Running command git clone --filter=blob:none --quiet https://github.com/nilsleh/oceanTACO.git /tmp/pip-install-q76trngb/ocean-taco_4d5fd80f298c4a3389f1fde8cdc6eadc
  Resolved https://github.com/nilsleh/oceanTACO.git to commit 0ef0983b4a9735c2229bd34f90f847c4c303bd34
  Installing build dependencies ... ?25l?25hdone
  Getting requirements to build wheel ... ?25l?25hdone
  Preparing metadata (pyproject.toml) ... ?25l?25hdone
Requirement already satisfied: matplotlib>=3.10 in /usr/local/lib/python3.12/dist-packages (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (3.10.0)
Requirement already satisfied: numpy<2.1,>=1.26 in /usr/local/lib/python3.12/dist-packages (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (2.0.2)
Requirement already satisfied: pandas>=2.2 in /usr/local/lib/python3.12/dist-packages (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (2.2.2)
Requirement already satisfied: requests>=2.31 in /usr/local/lib/python3.12/dist-packages (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (2.32.4)
Requirement already satisfied: torch>=2.2 in /usr/local/lib/python3.12/dist-packages (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (2.10.0+cpu)
Requirement already satisfied: tqdm>=4.66 in /usr/local/lib/python3.12/dist-packages (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (4.67.3)
Requirement already satisfied: xarray>=2025.11.0 in /usr/local/lib/python3.12/dist-packages (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (2025.12.0)
Collecting cartopy>=0.23.0 (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main)
  Downloading cartopy-0.25.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (6.1 kB)
Collecting tacoreader>=2.4.20 (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main)
  Downloading tacoreader-2.4.20-py3-none-any.whl.metadata (3.0 kB)
Requirement already satisfied: shapely>=2.0 in /usr/local/lib/python3.12/dist-packages (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (2.1.2)
Requirement already satisfied: omegaconf>=2.3 in /usr/local/lib/python3.12/dist-packages (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (2.3.0)
Collecting pydantic>=2.12.5 (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main)
  Downloading pydantic-2.12.5-py3-none-any.whl.metadata (90 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 90.6/90.6 kB 7.4 MB/s eta 0:00:00
?25hRequirement already satisfied: typer>=0.12 in /usr/local/lib/python3.12/dist-packages (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (0.24.1)
Requirement already satisfied: rich>=13.0 in /usr/local/lib/python3.12/dist-packages (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (13.9.4)
Requirement already satisfied: geopandas>=1.0 in /usr/local/lib/python3.12/dist-packages (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (1.1.3)
Requirement already satisfied: rasterio>=1.3 in /usr/local/lib/python3.12/dist-packages (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (1.5.0)
Requirement already satisfied: datasets>=2.19 in /usr/local/lib/python3.12/dist-packages (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (4.0.0)
Requirement already satisfied: huggingface_hub>=0.24 in /usr/local/lib/python3.12/dist-packages (from ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (1.7.1)
Requirement already satisfied: packaging>=21 in /usr/local/lib/python3.12/dist-packages (from cartopy>=0.23.0->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (26.0)
Requirement already satisfied: pyshp>=2.3 in /usr/local/lib/python3.12/dist-packages (from cartopy>=0.23.0->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (3.0.3)
Requirement already satisfied: pyproj>=3.3.1 in /usr/local/lib/python3.12/dist-packages (from cartopy>=0.23.0->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (3.7.2)
Requirement already satisfied: filelock in /usr/local/lib/python3.12/dist-packages (from datasets>=2.19->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (3.25.2)
Requirement already satisfied: pyarrow>=15.0.0 in /usr/local/lib/python3.12/dist-packages (from datasets>=2.19->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (18.1.0)
Requirement already satisfied: dill<0.3.9,>=0.3.0 in /usr/local/lib/python3.12/dist-packages (from datasets>=2.19->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (0.3.8)
Requirement already satisfied: xxhash in /usr/local/lib/python3.12/dist-packages (from datasets>=2.19->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (3.6.0)
Requirement already satisfied: multiprocess<0.70.17 in /usr/local/lib/python3.12/dist-packages (from datasets>=2.19->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (0.70.16)
Requirement already satisfied: fsspec<=2025.3.0,>=2023.1.0 in /usr/local/lib/python3.12/dist-packages (from fsspec[http]<=2025.3.0,>=2023.1.0->datasets>=2.19->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (2025.3.0)
Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.12/dist-packages (from datasets>=2.19->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (6.0.3)
Requirement already satisfied: pyogrio>=0.7.2 in /usr/local/lib/python3.12/dist-packages (from geopandas>=1.0->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (0.12.1)
Requirement already satisfied: hf-xet<2.0.0,>=1.4.2 in /usr/local/lib/python3.12/dist-packages (from huggingface_hub>=0.24->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (1.4.2)
Requirement already satisfied: httpx<1,>=0.23.0 in /usr/local/lib/python3.12/dist-packages (from huggingface_hub>=0.24->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (0.28.1)
Requirement already satisfied: typing-extensions>=4.1.0 in /usr/local/lib/python3.12/dist-packages (from huggingface_hub>=0.24->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (4.15.0)
Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=3.10->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (1.3.3)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=3.10->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=3.10->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (4.62.1)
Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=3.10->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (1.5.0)
Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=3.10->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (11.3.0)
Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=3.10->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (3.3.2)
Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=3.10->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (2.9.0.post0)
Requirement already satisfied: antlr4-python3-runtime==4.9.* in /usr/local/lib/python3.12/dist-packages (from omegaconf>=2.3->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (4.9.3)
Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.12/dist-packages (from pandas>=2.2->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (2025.2)
Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.12/dist-packages (from pandas>=2.2->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (2025.3)
Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.12/dist-packages (from pydantic>=2.12.5->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (0.7.0)
Collecting pydantic-core==2.41.5 (from pydantic>=2.12.5->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main)
  Downloading pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.3 kB)
Requirement already satisfied: typing-inspection>=0.4.2 in /usr/local/lib/python3.12/dist-packages (from pydantic>=2.12.5->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (0.4.2)
Requirement already satisfied: affine in /usr/local/lib/python3.12/dist-packages (from rasterio>=1.3->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (2.4.0)
Requirement already satisfied: attrs in /usr/local/lib/python3.12/dist-packages (from rasterio>=1.3->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (25.4.0)
Requirement already satisfied: certifi in /usr/local/lib/python3.12/dist-packages (from rasterio>=1.3->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (2026.2.25)
Requirement already satisfied: click!=8.2.*,>=4.0 in /usr/local/lib/python3.12/dist-packages (from rasterio>=1.3->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (8.3.1)
Requirement already satisfied: cligj>=0.5 in /usr/local/lib/python3.12/dist-packages (from rasterio>=1.3->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (0.7.2)
Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.12/dist-packages (from requests>=2.31->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (3.4.6)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.12/dist-packages (from requests>=2.31->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (3.11)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.12/dist-packages (from requests>=2.31->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (2.5.0)
Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.12/dist-packages (from rich>=13.0->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (4.0.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.12/dist-packages (from rich>=13.0->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (2.19.2)
Requirement already satisfied: duckdb>=1.3.2 in /usr/local/lib/python3.12/dist-packages (from tacoreader>=2.4.20->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (1.3.2)
Collecting obstore>=0.8.1 (from tacoreader>=2.4.20->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main)
  Downloading obstore-0.9.2-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.9 kB)
Requirement already satisfied: platformdirs<5.0.0,>=4.5.1 in /usr/local/lib/python3.12/dist-packages (from tacoreader>=2.4.20->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (4.9.4)
Collecting pyarrow>=15.0.0 (from datasets>=2.19->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main)
  Downloading pyarrow-23.0.1-cp312-cp312-manylinux_2_28_x86_64.whl.metadata (3.1 kB)
Collecting tacozip>=0.11.4 (from tacoreader>=2.4.20->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main)
  Downloading tacozip-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.4 kB)
Requirement already satisfied: setuptools in /usr/local/lib/python3.12/dist-packages (from torch>=2.2->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (75.2.0)
Requirement already satisfied: sympy>=1.13.3 in /usr/local/lib/python3.12/dist-packages (from torch>=2.2->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (1.14.0)
Requirement already satisfied: networkx>=2.5.1 in /usr/local/lib/python3.12/dist-packages (from torch>=2.2->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (3.6.1)
Requirement already satisfied: jinja2 in /usr/local/lib/python3.12/dist-packages (from torch>=2.2->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (3.1.6)
Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.12/dist-packages (from typer>=0.12->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (1.5.4)
Requirement already satisfied: annotated-doc>=0.0.2 in /usr/local/lib/python3.12/dist-packages (from typer>=0.12->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (0.0.4)
Requirement already satisfied: aiohttp!=4.0.0a0,!=4.0.0a1 in /usr/local/lib/python3.12/dist-packages (from fsspec[http]<=2025.3.0,>=2023.1.0->datasets>=2.19->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (3.13.3)
Requirement already satisfied: anyio in /usr/local/lib/python3.12/dist-packages (from httpx<1,>=0.23.0->huggingface_hub>=0.24->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (4.12.1)
Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.12/dist-packages (from httpx<1,>=0.23.0->huggingface_hub>=0.24->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (1.0.9)
Requirement already satisfied: h11>=0.16 in /usr/local/lib/python3.12/dist-packages (from httpcore==1.*->httpx<1,>=0.23.0->huggingface_hub>=0.24->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (0.16.0)
Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.12/dist-packages (from markdown-it-py>=2.2.0->rich>=13.0->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (0.1.2)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.12/dist-packages (from python-dateutil>=2.7->matplotlib>=3.10->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (1.17.0)
Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.12/dist-packages (from sympy>=1.13.3->torch>=2.2->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (1.3.0)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.12/dist-packages (from jinja2->torch>=2.2->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (3.0.3)
Requirement already satisfied: aiohappyeyeballs>=2.5.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.3.0,>=2023.1.0->datasets>=2.19->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (2.6.1)
Requirement already satisfied: aiosignal>=1.4.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.3.0,>=2023.1.0->datasets>=2.19->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (1.4.0)
Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.12/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.3.0,>=2023.1.0->datasets>=2.19->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (1.8.0)
Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.12/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.3.0,>=2023.1.0->datasets>=2.19->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (6.7.1)
Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.3.0,>=2023.1.0->datasets>=2.19->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (0.4.1)
Requirement already satisfied: yarl<2.0,>=1.17.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.3.0,>=2023.1.0->datasets>=2.19->ocean_taco@ git+https://github.com/nilsleh/oceanTACO.git@main->ocean_taco[hf]@ git+https://github.com/nilsleh/oceanTACO.git@main) (1.23.0)
Downloading cartopy-0.25.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (11.8 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.8/11.8 MB 57.3 MB/s eta 0:00:00
?25hDownloading pydantic-2.12.5-py3-none-any.whl (463 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 463.6/463.6 kB 33.1 MB/s eta 0:00:00
?25hDownloading pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 78.1 MB/s eta 0:00:00
?25hDownloading tacoreader-2.4.20-py3-none-any.whl (98 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 98.9/98.9 kB 8.3 MB/s eta 0:00:00
?25hDownloading obstore-0.9.2-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.2/4.2 MB 56.4 MB/s eta 0:00:00
?25hDownloading pyarrow-23.0.1-cp312-cp312-manylinux_2_28_x86_64.whl (47.6 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.6/47.6 MB 11.3 MB/s eta 0:00:00
?25hDownloading tacozip-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (78 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 78.6/78.6 kB 6.7 MB/s eta 0:00:00
?25hBuilding wheels for collected packages: ocean_taco
  Building wheel for ocean_taco (pyproject.toml) ... ?25l?25hdone
  Created wheel for ocean_taco: filename=ocean_taco-0.1.0-py3-none-any.whl size=244295 sha256=8203e222310983a9aa385ae8403d095ac29d08a5fba7fda79953a4d3cdc8203d
  Stored in directory: /tmp/pip-ephem-wheel-cache-yo4yabpf/wheels/d8/34/2b/2c84305c60134843b3e06b465d3f03c97f3873f80607119cc0
Successfully built ocean_taco
Installing collected packages: tacozip, pydantic-core, pyarrow, obstore, pydantic, tacoreader, cartopy, ocean_taco
  Attempting uninstall: pydantic-core
    Found existing installation: pydantic_core 2.41.4
    Uninstalling pydantic_core-2.41.4:
      Successfully uninstalled pydantic_core-2.41.4
  Attempting uninstall: pyarrow
    Found existing installation: pyarrow 18.1.0
    Uninstalling pyarrow-18.1.0:
      Successfully uninstalled pyarrow-18.1.0
  Attempting uninstall: pydantic
    Found existing installation: pydantic 2.12.3
    Uninstalling pydantic-2.12.3:
      Successfully uninstalled pydantic-2.12.3
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
gradio 5.50.0 requires pydantic<=2.12.3,>=2.0, but you have pydantic 2.12.5 which is incompatible.
Successfully installed cartopy-0.25.0 obstore-0.9.2 ocean_taco-0.1.0 pyarrow-23.0.1 pydantic-2.12.5 pydantic-core-2.41.5 tacoreader-2.4.20 tacozip-0.12.0
ocean_taco 0.1.0 ready
%matplotlib inline
import warnings
from IPython.display import Image, display

from ocean_taco.viz.paper.plot_hurricane_milton import (
    DEFAULT_DATES,
    HF_DEFAULT_URL,
    LAT_MAX,
    LAT_MIN,
    LON_MAX,
    LON_MIN,
    load_date,
    load_hf_dataset,
    make_figure,
)

warnings.filterwarnings("ignore", category=RuntimeWarning)
# -- Configuration --
HF_URL = HF_DEFAULT_URL
CACHE_DIR = None  # set to a local path to cache downloaded tiles
OUTPUT = "plot_hurricane_milton.png"  # e.g. docs/tutorials/plot_hurricane_milton.png
DATES = list(DEFAULT_DATES)  # e.g. ["2024-10-05", "2024-10-07", "2024-10-09"]
print("=" * 55)
print("  OceanTACO - Hurricane Milton Wind and SSH Figure")
print(f"  Dates   : {', '.join(DATES)}")
print(f"  Region  : Gulf of Mexico ({LON_MIN} to {LON_MAX} deg lon, {LAT_MIN} to {LAT_MAX} deg lat)")
print("=" * 55)

dataset_hf = load_hf_dataset(HF_URL)

all_data = {}
valid_dates = []

for date_str in DATES:
    print(f"\n  Loading {date_str} ...")
    data = load_date(dataset_hf, date_str, cache_dir=CACHE_DIR)
    if data:
        all_data[date_str] = data
        valid_dates.append(date_str)
    else:
        print(f"  Skipping {date_str} - no data found.")

if not valid_dates:
    raise RuntimeError("No data found for any selected date.")

print(f"\n  Generating figure for {len(valid_dates)} date(s) ...")
make_figure(all_data, valid_dates, output_path=OUTPUT)
display(Image(filename=OUTPUT))
=======================================================
  OceanTACO - Hurricane Milton Wind and SSH Figure
  Dates   : 2024-10-05, 2024-10-07, 2024-10-09, 2024-10-10
  Region  : Gulf of Mexico (-100 to -75 deg lon, 15 to 32 deg lat)
=======================================================

  Loading 2024-10-05 ...
    L4 Wind (0.125°)              : loaded
/usr/local/lib/python3.12/dist-packages/ocean_taco/dataset/retrieve.py:357: FutureWarning: In a future version of xarray the default value for data_vars will change from data_vars='all' to data_vars=None. This is likely to lead to different results when multiple datasets have matching variables with overlapping values. To opt in to new defaults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set data_vars explicitly.
  return xr.combine_by_coords(tile_datasets, combine_attrs="override")
    L3 along-track (7 km)         : loaded
    L3 SWOT (2 km)                : loaded

  Loading 2024-10-07 ...
    L4 Wind (0.125°)              : loaded
/usr/local/lib/python3.12/dist-packages/ocean_taco/dataset/retrieve.py:357: FutureWarning: In a future version of xarray the default value for data_vars will change from data_vars='all' to data_vars=None. This is likely to lead to different results when multiple datasets have matching variables with overlapping values. To opt in to new defaults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set data_vars explicitly.
  return xr.combine_by_coords(tile_datasets, combine_attrs="override")
    L3 along-track (7 km)         : loaded
    L3 SWOT (2 km)                : loaded

  Loading 2024-10-09 ...
    L4 Wind (0.125°)              : loaded
/usr/local/lib/python3.12/dist-packages/ocean_taco/dataset/retrieve.py:357: FutureWarning: In a future version of xarray the default value for data_vars will change from data_vars='all' to data_vars=None. This is likely to lead to different results when multiple datasets have matching variables with overlapping values. To opt in to new defaults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set data_vars explicitly.
  return xr.combine_by_coords(tile_datasets, combine_attrs="override")
    L3 along-track (7 km)         : loaded
    L3 SWOT (2 km)                : loaded

  Loading 2024-10-10 ...
    L4 Wind (0.125°)              : loaded
/usr/local/lib/python3.12/dist-packages/ocean_taco/dataset/retrieve.py:357: FutureWarning: In a future version of xarray the default value for data_vars will change from data_vars='all' to data_vars=None. This is likely to lead to different results when multiple datasets have matching variables with overlapping values. To opt in to new defaults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set data_vars explicitly.
  return xr.combine_by_coords(tile_datasets, combine_attrs="override")
    L3 along-track (7 km)         : loaded
    L3 SWOT (2 km)                : loaded

  Generating figure for 4 date(s) ...
/usr/local/lib/python3.12/dist-packages/cartopy/io/__init__.py:242: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/50m_physical/ne_50m_coastline.zip
  warnings.warn(f'Downloading: {url}', DownloadWarning)
/usr/local/lib/python3.12/dist-packages/cartopy/io/__init__.py:242: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/50m_physical/ne_50m_land.zip
  warnings.warn(f'Downloading: {url}', DownloadWarning)
  Figure saved to plot_hurricane_milton.png
../_images/f94a46da590a429815bfa263f5c28a25ffe774380de1817e4b92599b188b028b.png ../_images/a303335d5e2380f56da7336737e315eb9af881347e9e3d13c2336d1937aaf56d.png