From ad85d43453bc5d882bb3b0153cf692b29a69f490 Mon Sep 17 00:00:00 2001 From: Andrew Blackford <62357205+acblackford@users.noreply.github.com> Date: Tue, 12 Aug 2025 13:10:07 -0500 Subject: [PATCH 1/5] initial draft of blizzards data story notebook --- .../stories/blizzards_notebook.ipynb | 6018 +++++++++++++++++ 1 file changed, 6018 insertions(+) create mode 100644 user-guide/notebooks/stories/blizzards_notebook.ipynb diff --git a/user-guide/notebooks/stories/blizzards_notebook.ipynb b/user-guide/notebooks/stories/blizzards_notebook.ipynb new file mode 100644 index 00000000..df551d13 --- /dev/null +++ b/user-guide/notebooks/stories/blizzards_notebook.ipynb @@ -0,0 +1,6018 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "56c2b671-23c6-4668-b250-1aca9cac9c71", + "metadata": {}, + "source": [ + "---\n", + "title: When Winter Rages\n", + "description: Exploring the Power and Impact of Blizzards\n", + "\n", + " - Andrew Blackford[1]\n", + "\n", + "[1] The University of Alabama in Huntsville (UAH)\n", + "\n", + " - Andrew Blackford (editor)\n", + "date: August 7, 2025\n", + "execute:\n", + " freeze: true\n", + "---" + ] + }, + { + "cell_type": "markdown", + "id": "f27a0f12-73d7-4ea6-bbc5-ef9000474c1f", + "metadata": {}, + "source": [ + "# Run This Notebook" + ] + }, + { + "cell_type": "markdown", + "id": "99a99fa8-5923-48d2-bdfd-720af5aca241", + "metadata": {}, + "source": [ + "

πŸš€ Launch in VEDA JupyterHub (requires access)

\n", + "\n", + "

To obtain credentials to VEDA Hub, follow this link for more information.

" + ] + }, + { + "cell_type": "markdown", + "id": "a2979dad-dfa7-4f5c-a617-9e3c51af01aa", + "metadata": {}, + "source": [ + "
\n", + "Disclaimer: it is highly recommended to run a tutorial within NASA VEDA JupyterHub, which already includes functions for processing and visualizing data specific to VEDA stories. Running the tutorial outside of the VEDA JupyterHub may lead to errors, specifically related to EarthData authentication. Additionally, it is recommended to use the Pangeo workspace within the VEDA JupyterHub, since certain packages relevant to this tutorial are already installed.
\n", + "\n", + "

If you do not have a VEDA Jupyterhub Account you can launch this notebook on your local environment using MyBinder by clicking the icon below.

\n", + "
\n", + "\n", + "\"Binder\" " + ] + }, + { + "cell_type": "markdown", + "id": "a5bc145b-9ad8-4427-a52e-d65dd73ce1a4", + "metadata": {}, + "source": [ + "## Environment Setup" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "e660b9c1-96de-4c42-ae48-d908293b54bb", + "metadata": {}, + "outputs": [], + "source": [ + "# Load libraries\n", + "#!pip install -q earthaccess pandas xarray fsspec requests pystac_client\n", + "\n", + "import datetime\n", + "import glob\n", + "import os\n", + "\n", + "import earthaccess\n", + "import pandas as pd\n", + "import plotutils as putils\n", + "import requests\n", + "import xarray as xr\n", + "from earthaccess import Store\n", + "from pystac_client import Client" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "2e690482-48a3-440e-bfd6-ab99d097ea8b", + "metadata": {}, + "outputs": [], + "source": [ + "# For retrieving data already catalogued in VEDA STAC\n", + "STAC_API_URL = \"https://openveda.cloud/api/stac\"\n", + "RASTER_API_URL = \"https://openveda.cloud/api/raster\"" + ] + }, + { + "cell_type": "markdown", + "id": "90a19a27-5c9e-403a-954d-ef8569146032", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "## Overview\n", + "\n", + "Blizzards are extreme winter weather events defined by the National Weather Service (NWS) as a combination of heavy falling or blowing snow, strong winds sustained at 35 mph or higher, and reduced visibility (less than a quarter of a mile) lasting for at least three contiguous hours. These powerful storms can bring everyday life to a standstill by disrupting travel, damaging infrastructure, and exposing people and animals to dangerous elements.\n", + "\n", + "In the United States, blizzards occur most frequently in the northern Great Plains, but they have been reported in every state except Hawaii. While blizzards are traditionally associated with winter, records show they can happen any time between October and June. Advances in weather monitoring and forecasting have improved our ability to detect and report these events, which has led to an increase in reported blizzard activity over the past several decades. On average, 13 blizzards occur annually across CONUS, but the past few decades have seen this number inflate to 19. The geographic spread of these storms has also widened, with more blizzards occurring outside their historical hotspots. Although the intensity of impact by individual storms has generally decreased due to better forecasting, their economic and societal impacts have risen, with associated losses now exceeding $1 billion per year. Understanding blizzards and preparing for their impacts is critical for communities in regions prone to extreme winter weather.\n" + ] + }, + { + "cell_type": "markdown", + "id": "5398ed01-4fc9-41aa-bf48-a81cb5c0b510", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "## Climatology of Blizzards\n", + "\n", + "In the United States, blizzards predominantly affect a region often referred to as \"Blizzard Alley”, encompassing parts of North Dakota, South Dakota, Minnesota, Iowa, Nebraska, southeastern Wyoming, and eastern Colorado. The flat terrain and scarcity of natural windbreaks, such as forests or mountains, allow cold Arctic air masses to sweep down from Canada unimpeded, leading to frequent blizzard conditions, far more than any other region in the country.\n", + "\n", + "Several key factors contribute to the high frequency of blizzards in this region:\n", + "\n", + "* Flat Topography: The expansive Great Plains offer little resistance to wind, enabling strong gusts to develop and sustain.\n", + "* Lack of Vegetation: The absence of significant tree cover means there are few obstacles to slow down or block wind flow.\n", + "* Proximity to Arctic Air Masses: The region's location allows cold air from the Arctic to move southward easily, interacting with moist air masses to produce snow.\n", + "* Frequent Storm Systems: Low-pressure systems often develop east of the Rocky Mountains, intensifying as they move into the Plains, bringing heavy snowfall and high winds.\n", + "\n", + "While Blizzard Alley is the most blizzard-prone area, other parts of the United States also experience these severe storms: The Northeastern U.S. is known as a secondary Blizzard Alley, as this region frequently experiences nor'eastersβ€”powerful storms that can produce blizzard conditions. Additionally, the Front Range of the Rocky Mountains is susceptible to blizzards due to storm systems intensifying as they descend from higher elevations.\n" + ] + }, + { + "cell_type": "markdown", + "id": "d465df96-8a8c-455c-bdf1-132a829d56d6", + "metadata": {}, + "source": [ + "# Example: Blizzard Count (1950-2021)\n", + "\n", + "Pull the blizzard climatology data from from the VEDA STAC catalog and visualize\n" + ] + }, + { + "cell_type": "markdown", + "id": "b3556d74-8b24-4327-878d-cb11a39e784a", + "metadata": {}, + "source": [ + "## Processing steps:\n", + "1.) Choose STAC catalog ID and date
\n", + "2.) Retrieve collection information and items from VEDA STAC catalog
\n", + "3.) Retrieve item statistics and tiling information
\n", + "4.) Plot data
" + ] + }, + { + "cell_type": "markdown", + "id": "b9964579-daf7-4ea5-94db-65442aef5547", + "metadata": {}, + "source": [ + "Nearest neighbor interpolation of NCEI Storm Events Database confirmed blizzard reports from 1950-2021 in the United States, clipped to the Northern Plains, Midwest, and Northeast.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "94e17401-99ec-4ed3-ae7b-1c5014d5931a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + " \n", + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# TODO: Change collection_ID and date\n", + "client_STAC = Client.open(STAC_API_URL)\n", + "\n", + "collection_id = \"blizzard-count\"\n", + "date = \"2021-12-31\"\n", + "\n", + "results = client_STAC.search(collections=[collection_id], datetime=date)\n", + "\n", + "# ── VEDA Collection Request ─────────────────────────────────────────────────────────────────────────────────────\n", + "\n", + "items = list(results.items())\n", + "assert len(items) != 0, \"No items found\"\n", + "item = items[0]\n", + "collection = item.get_collection()\n", + "\n", + "# grab the dashboard render block\n", + "dashboard_render = collection.extra_fields[\"renders\"][\"dashboard\"]\n", + "\n", + "assets = dashboard_render[\"assets\"][0]\n", + "((vmin, vmax),) = dashboard_render[\"rescale\"]\n", + "\n", + "collection" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "fa60566e-b3c6-4d58-84fe-8589a54056df", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'tilejson': '2.2.0', 'version': '1.0.0', 'scheme': 'xyz', 'tiles': ['https://openveda.cloud/api/raster/collections/blizzard-count/items/StormEvents_Blizzards_cog_2021-12-31/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=cog_default&color_formula=gamma+r+1.05&colormap_name=turbo&rescale=1%2C50'], 'minzoom': 0, 'maxzoom': 24, 'bounds': [-110.62272262199996, 34.803751156000025, -66.21095309899994, 51.52535394900008], 'center': [-88.41683786049995, 43.164552552500055, 0]}\n" + ] + } + ], + "source": [ + "# ── VEDA Tile Request ─────────────────────────────────────────────────────────────────────────────────────\n", + "colormap_name = \"turbo\"\n", + "\n", + "# Build endpoint URL without worrying about trailing slashes\n", + "response = requests.get(\n", + " f\"{RASTER_API_URL.rstrip('/')}/collections/{collection_id}\"\n", + " f\"/items/{item.id}/WebMercatorQuad/tilejson.json?\"\n", + " f\"&assets={assets}\"\n", + " f\"&color_formula=gamma+r+1.05&colormap_name={colormap_name}\"\n", + " f\"&rescale={vmin},{vmax}\",\n", + ")\n", + "\n", + "response.raise_for_status()\n", + "\n", + "tiles = response.json()\n", + "print(tiles)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "80a6afa4-7d1d-4c13-877d-bad844012e08", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Use the new plot_folium_from_VEDA_STAC function\n", + "m = putils.plot_folium_from_VEDA_STAC(\n", + " tiles_url_template=tiles[\"tiles\"][0],\n", + " center_coords=[43, -92],\n", + " zoom_level=6,\n", + " rescale=(vmin, vmax),\n", + " colormap_name=colormap_name,\n", + " capitalize_cmap=False, # to better match VEDA colors and matplotlib colors\n", + " layer_name=\"Blizzard Count\",\n", + " date=\"(1950-2021)\",\n", + " colorbar_caption=\"count\",\n", + " attribution=\"NCEI Blizzard Count (1950-2021)\",\n", + " tile_name=\"NCEI Blizzard Count (1950-2021)\",\n", + " opacity=0.8,\n", + " height=\"800px\",\n", + ")\n", + "\n", + "# Display the map\n", + "m" + ] + }, + { + "cell_type": "markdown", + "id": "35aaa435-c8bb-4912-b644-81b2a522b8df", + "metadata": {}, + "source": [ + "## Bomb Cyclogenesis\n", + "\n", + "A defining feature of many nor’easters is bomb cyclogenesis, or \"bombogenesis\", which occurs when a storm's central low pressure drops by at least 24 millibars in 24 hours, signifying rapid intensification of the system. The process is driven by the clash of cold air from the north and warm, humid air over the Atlantic. As the storm deepens, powerful winds spiral inward towards the central low pressure, enhancing snowfall rates and creating whiteout conditions. Bomb cyclogenesis often results in some of the most impactful nor’easters, which have been historically responsible for bringing record-breaking snowfall and hurricane-force winds to parts of the Northeast. The map shows GOES satellite imagery of one example of a Nor'easter undergoing bomb cyclogenesis off the East Coast of the USA on January 4, 2018." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "9693e891-2cfe-4aa2-8465-6a4d3b3566f6", + "metadata": {}, + "outputs": [], + "source": [ + "### MAKE VIS EXAMPLE OF GOES IMAGERY" + ] + }, + { + "cell_type": "markdown", + "id": "5175b007-b727-411a-a825-98639399523b", + "metadata": {}, + "source": [ + "## DCVZ\n", + "\n", + "A critical factor in the formation of Denver cyclones is the Denver Convergence Vorticity Zone (DCVZ)β€”a mesoscale atmospheric feature unique to the area. The DCVZ forms due to easterly upslope winds interacting with the Rocky Mountains, creating a zone of cyclonic rotation just east of Denver. This zone can serve as a focal point for the development or intensification of low pressure systems, often enhancing snowfall near Denver and the eastern Colorado Plains. This enhancement of snowfall often carries eastward as the storm moves into the Great Plains, but typically weakens by the time it reaches the Midwest (though there have been a few notable blizzards in the Midwest that can be attributed to Denver Cyclones)." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "1d44a2bb-d651-43db-a7e2-2c78a26b51ab", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# TODO: Change collection_ID and date\n", + "client_STAC = Client.open(STAC_API_URL)\n", + "\n", + "collection_id = \"blizzard-count\"\n", + "date = \"2021-12-31\"\n", + "\n", + "results = client_STAC.search(collections=[collection_id], datetime=date)\n", + "\n", + "# ── VEDA Collection Request ─────────────────────────────────────────────────────────────────────────────────────\n", + "\n", + "items = list(results.items())\n", + "assert len(items) != 0, \"No items found\"\n", + "item = items[0]\n", + "collection = item.get_collection()\n", + "\n", + "# grab the dashboard render block\n", + "dashboard_render = collection.extra_fields[\"renders\"][\"dashboard\"]\n", + "\n", + "assets = dashboard_render[\"assets\"][0]\n", + "((vmin, vmax),) = dashboard_render[\"rescale\"]\n", + "\n", + "# ── VEDA Tile Request ─────────────────────────────────────────────────────────────────────────────────────\n", + "colormap_name = \"turbo\"\n", + "\n", + "# Build endpoint URL without worrying about trailing slashes\n", + "response = requests.get(\n", + " f\"{RASTER_API_URL.rstrip('/')}/collections/{collection_id}\"\n", + " f\"/items/{item.id}/WebMercatorQuad/tilejson.json?\"\n", + " f\"&assets={assets}\"\n", + " f\"&color_formula=gamma+r+1.05&colormap_name={colormap_name}\"\n", + " f\"&rescale={vmin},{vmax}\",\n", + ")\n", + "\n", + "response.raise_for_status()\n", + "\n", + "tiles = response.json()\n", + "\n", + "# Use the new plot_folium_from_VEDA_STAC function\n", + "m = putils.plot_folium_from_VEDA_STAC(\n", + " tiles_url_template=tiles[\"tiles\"][0],\n", + " center_coords=[40.5, -103],\n", + " zoom_level=7,\n", + " rescale=(vmin, vmax),\n", + " colormap_name=colormap_name,\n", + " capitalize_cmap=False, # to better match VEDA colors and matplotlib colors\n", + " layer_name=\"DCVZ Blizzard Count\",\n", + " date=\"(1950-2021)\",\n", + " colorbar_caption=\"count\",\n", + " attribution=\"NCEI Blizzard Count (1950-2021)\",\n", + " tile_name=\"NCEI Blizzard Count (1950-2021)\",\n", + " opacity=0.8,\n", + " height=\"800px\",\n", + ")\n", + "\n", + "# Display the map\n", + "m" + ] + }, + { + "cell_type": "markdown", + "id": "9fd7cbd6-f988-4a49-a618-f43604719953", + "metadata": {}, + "source": [ + "## Historic Blizzards\n", + "\n", + "### The Great Appalachian Storm of 1950 (Snow Bowl Blizzard)\n", + "\n", + "The Great Appalachian Blizzard of 1950 is remembered as one of the most extraordinary and impactful winter storms in U.S. history. Occurring over Thanksgiving weekend, from November 24 to 30, the storm wreaked havoc across 22 states, bringing record snowfall, hurricane-force winds, and freezing temperatures. Snowfall totals reached unprecedented levels, with Coburn Creek, West Virginia, reporting 62 inches, and widespread accumulations exceeding 30 inches across parts of Ohio, Pennsylvania, and West Virginia. Accompanying winds gusted up to 110 mph in Concord, New Hampshire, and 160 mph at Mount Washington, causing severe damage and widespread power outages. In total, the storm claimed 353 lives and caused an estimated $66.7 million in damages (equivalent to about $845 million today)." + ] + }, + { + "cell_type": "markdown", + "id": "98af5a75-28d1-4f3c-bc45-dc7ac5b09168", + "metadata": {}, + "source": [ + "# Example: Total Snowfall (1950 Blizzard)\n", + "\n", + "Pull the blizzard total snowfall data from from the VEDA STAC catalog and visualize\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "25ebdc80-cf61-4fbd-9152-e014912a64fa", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "
    \n", + " \n", + " \n", + " \n", + "
  • \n", + " type\n", + " \"Collection\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " id\n", + " \"blizzard-snowfall\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " stac_version\n", + " \"1.1.0\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " description\n", + " \"Regional Snowfall Index (RSI) accumulated snowfall reports interpolated for five select blizzard events.\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " links[] 5 items\n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"items\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac/collections/blizzard-snowfall/items\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/geo+json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 1\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"parent\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac/\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 2\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"root\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"VEDA (Visualization, Exploration, and Data Analysis) STAC API\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 3\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"http://www.opengis.net/def/rel/ogc/1.0/queryables\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac/collections/blizzard-snowfall/queryables\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/schema+json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"Queryables\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 4\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"self\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac/collections/blizzard-snowfall\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + "
  • \n", + " stac_extensions[] 1 items\n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + " \"https://stac-extensions.github.io/render/v1.0.0/schema.json\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " renders\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " dashboard\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"VEDA Dashboard Render Parameters\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " assets[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"cog_default\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " colormap\n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 6[] 4 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " 30\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " 144\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 2\n", + " 201\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 3\n", + " 255\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + " \n", + "
        • \n", + " 12[] 4 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " 171\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " 148\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 2\n", + " 214\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 3\n", + " 255\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + " \n", + "
        • \n", + " 18[] 4 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " 90\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " 22\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 2\n", + " 128\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 3\n", + " 255\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + " \n", + "
        • \n", + " 24[] 4 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " 217\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " 67\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 2\n", + " 212\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 3\n", + " 255\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " item_assets\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " cog_default\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"image/tiff; application=geotiff; profile=cloud-optimized\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " roles[] 2 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"data\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 1\n", + " \"layer\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"Default COG Layer\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " description\n", + " \"Cloud optimized default layer to display on map\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " datetime_range\n", + " \"day\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " dashboard:is_periodic\n", + " False\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " dashboard:time_density\n", + " \"day\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " title\n", + " \"Regional Snowfall Index Accumulated Snowfall (Select Events)\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " extent\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " spatial\n", + "
        \n", + " \n", + " \n", + "
      • \n", + " bbox[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 0[] 4 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " -107.29333595599996\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " 31.513608703000045\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 2\n", + " -66.10449058451998\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 3\n", + " 49.76503418500006\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " temporal\n", + "
        \n", + " \n", + " \n", + "
      • \n", + " interval[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 0[] 2 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " \"1950-11-26T00:00:00Z\"\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " \"2016-01-23T23:59:59Z\"\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " license\n", + " \"CC0-1.0\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " providers[] 1 items\n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " name\n", + " \"NASA VEDA\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " roles[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"host\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " url\n", + " \"https://www.earthdata.nasa.gov/dashboard/\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " summaries\n", + "
      \n", + " \n", + " \n", + "
    • \n", + " datetime[] 5 items\n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"1950-11-26T00:00:00Z\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 1\n", + " \"1978-01-26T00:00:00Z\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 2\n", + " \"1991-11-01T00:00:00Z\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 3\n", + " \"1993-03-14T00:00:00Z\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 4\n", + " \"2016-01-23T00:00:00Z\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " assets\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " thumbnail\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://thumbnails.openveda.cloud/blizzards-cover.png\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"image/png\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"Thumbnail\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " description\n", + " \"Photo by Andrew Blackford (Near-blizzard conditions in Maria Stein, Ohio on December 23, 2022)\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " roles[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"thumbnail\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + "
\n", + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client_STAC = Client.open(STAC_API_URL)\n", + "\n", + "collection_id = \"blizzard-snowfall\"\n", + "date = \"1950-11-26\"\n", + "\n", + "results = client_STAC.search(collections=[collection_id], datetime=date)\n", + "\n", + "# ── VEDA Collection Request ─────────────────────────────────────────────────────────────────────────────────────\n", + "\n", + "items = list(results.items())\n", + "assert len(items) != 0, \"No items found\"\n", + "item = items[0]\n", + "collection = item.get_collection()\n", + "\n", + "# grab the dashboard render block\n", + "dashboard_render = collection.extra_fields[\"renders\"][\"dashboard\"]\n", + "\n", + "assets = dashboard_render[\"assets\"][0]\n", + "((vmin, vmax),) = ((6,24),)\n", + "\n", + "collection" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "02b3e40f-9870-4358-80fb-ff54da52c1e3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'tilejson': '2.2.0', 'version': '1.0.0', 'scheme': 'xyz', 'tiles': ['https://openveda.cloud/api/raster/collections/blizzard-snowfall/items/RSI_Snowfall_cog_1950-11-26/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=cog_default&color_formula=gamma+r+1.05&colormap_name=magma&rescale=6%2C24'], 'minzoom': 0, 'maxzoom': 24, 'bounds': [-90.93914952199998, 35.37851607400006, -74.21937348903998, 47.56494175400006], 'center': [-82.57926150551998, 41.47172891400006, 0]}\n" + ] + } + ], + "source": [ + "# ── VEDA Tile Request ─────────────────────────────────────────────────────────────────────────────────────\n", + "colormap_name = \"magma\"\n", + "\n", + "# Build endpoint URL without worrying about trailing slashes\n", + "response = requests.get(\n", + " f\"{RASTER_API_URL.rstrip('/')}/collections/{collection_id}\"\n", + " f\"/items/{item.id}/WebMercatorQuad/tilejson.json?\"\n", + " f\"&assets={assets}\"\n", + " f\"&color_formula=gamma+r+1.05&colormap_name={colormap_name}\"\n", + " f\"&rescale={vmin},{vmax}\",\n", + ")\n", + "\n", + "response.raise_for_status()\n", + "\n", + "tiles = response.json()\n", + "print(tiles)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "066acb2b-873c-4811-bddf-324d6b3cb6d0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Use the new plot_folium_from_VEDA_STAC function\n", + "m = putils.plot_folium_from_VEDA_STAC(\n", + " tiles_url_template=tiles[\"tiles\"][0],\n", + " center_coords=[41, -85],\n", + " zoom_level=5.5,\n", + " rescale=(vmin, vmax),\n", + " colormap_name=colormap_name,\n", + " capitalize_cmap=False, # to better match VEDA colors and matplotlib colors\n", + " layer_name=\"Regional Snowfall Index (RSI) Accumulated Snowfall\",\n", + " date=f\"{date}T00:00:00Z\",\n", + " colorbar_caption=\"count\",\n", + " attribution=\"Regional Snowfall Index (RSI) Accumulated Snowfall\",\n", + " tile_name=\"Regional Snowfall Index (RSI) Accumulated Snowfall\",\n", + " opacity=0.8,\n", + " height=\"800px\",\n", + ")\n", + "\n", + "# Display the map\n", + "m" + ] + }, + { + "cell_type": "markdown", + "id": "20a62724-f52b-4e01-8e78-131cdab448e0", + "metadata": {}, + "source": [ + "## Historic Blizzards\n", + "\n", + "### The Great Blizzard of β€˜78 (Cleveland Superbomb)\n", + "\n", + "The Great Blizzard of β€˜78, also known as the \"Cleveland Superbomb,\" remains one of the most catastrophic winter storms in U.S. history, and is one of the worst natural disasters to ever impact Ohio, Indiana, and Michigan. Occurring from January 25 to 27, the storm developed as an intense low-pressure system surged northward from the Gulf of America, colliding with Arctic air on the heels of a small clipper system. This convergence created a rapid drop in atmospheric pressure, with Cleveland recording a barometric pressure of 28.28 inches (958 millibars)β€”one of the lowest ever observed in the continental United States. The rapid intensification, known as bomb cyclogenesis, led to blizzard conditions of unprecedented severity." + ] + }, + { + "cell_type": "markdown", + "id": "589d8016-4154-4afe-ae75-ac1aa102a53f", + "metadata": {}, + "source": [ + "# Example: ERA5 Data (1978 Blizzard)\n", + "\n", + "Pull the ERA5 MSLP data from from the VEDA STAC catalog and visualize\n" + ] + }, + { + "cell_type": "markdown", + "id": "fa0b890c-98af-4e9d-a16b-79f5f94b5825", + "metadata": {}, + "source": [ + "ERA5 reanalysis, produced by the European Centre for Medium-Range Weather Forecasts (ECMWF), is a high-resolution global atmospheric dataset that provides historical climate and weather information from 1940 to the present. It combines observations from satellites, weather stations, and other sources with advanced numerical weather prediction models to generate a consistent, spatially complete representation of past atmospheric conditions. ERA5 offers hourly data at a 0.25 degree spatial resolution with multiple atmospheric variables, including temperature, wind speed, cloud coverage, and pressure, along with uncertainty estimates. It is widely used in climate research, meteorology, and environmental studies.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "17a063c4-4e34-4d28-af61-7a5f69e822d4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "
    \n", + " \n", + " \n", + " \n", + "
  • \n", + " type\n", + " \"Collection\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " id\n", + " \"blizzard-era5-mslp\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " stac_version\n", + " \"1.1.0\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " description\n", + " \"ERA5 mean sea level pressure (MSLP) global reanalysis for three select blizzard events.\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " links[] 5 items\n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"items\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac/collections/blizzard-era5-mslp/items\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/geo+json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 1\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"parent\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac/\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 2\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"root\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"VEDA (Visualization, Exploration, and Data Analysis) STAC API\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 3\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"http://www.opengis.net/def/rel/ogc/1.0/queryables\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac/collections/blizzard-era5-mslp/queryables\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/schema+json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"Queryables\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 4\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"self\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac/collections/blizzard-era5-mslp\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + "
  • \n", + " stac_extensions[] 1 items\n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + " \"https://stac-extensions.github.io/render/v1.0.0/schema.json\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " renders\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " dashboard\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"VEDA Dashboard Render Parameters\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " assets[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"cog_default\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      • \n", + " rescale[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 0[] 2 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " 972\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " 1040\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " colormap_name\n", + " \"nipy_spectral\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " item_assets\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " cog_default\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"image/tiff; application=geotiff; profile=cloud-optimized\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " roles[] 2 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"data\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 1\n", + " \"layer\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"Default COG Layer\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " description\n", + " \"Cloud optimized default layer to display on map\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " datetime_range\n", + " \"day\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " dashboard:is_periodic\n", + " False\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " dashboard:time_density\n", + " \"day\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " title\n", + " \"ERA5 Reanalysis – Mean Sea Level Pressure (Select Events)\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " extent\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " spatial\n", + "
        \n", + " \n", + " \n", + "
      • \n", + " bbox[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 0[] 4 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " -180\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " -90\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 2\n", + " 180\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 3\n", + " 90\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " temporal\n", + "
        \n", + " \n", + " \n", + "
      • \n", + " interval[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 0[] 2 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " \"1950-11-26T00:00:00Z\"\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " \"1978-01-26T23:59:59Z\"\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " license\n", + " \"CC0-1.0\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " providers[] 1 items\n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " name\n", + " \"NASA VEDA\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " roles[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"host\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " url\n", + " \"https://www.earthdata.nasa.gov/dashboard/\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " summaries\n", + "
      \n", + " \n", + " \n", + "
    • \n", + " datetime[] 2 items\n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"1950-11-26T00:00:00Z\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 1\n", + " \"1978-01-26T09:00:00Z\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " assets\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " thumbnail\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://thumbnails.openveda.cloud/blizzards-cover.png\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"image/png\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"Thumbnail\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " description\n", + " \"Photo by Andrew Blackford (Near-blizzard conditions in Maria Stein, Ohio on December 23, 2022)\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " roles[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"thumbnail\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + "
\n", + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client_STAC = Client.open(STAC_API_URL)\n", + "\n", + "collection_id = \"blizzard-era5-mslp\"\n", + "date = \"1978-01-26\"\n", + "\n", + "results = client_STAC.search(collections=[collection_id], datetime=date)\n", + "\n", + "# ── VEDA Collection Request ─────────────────────────────────────────────────────────────────────────────────────\n", + "\n", + "items = list(results.items())\n", + "assert len(items) != 0, \"No items found\"\n", + "item = items[0]\n", + "collection = item.get_collection()\n", + "\n", + "# grab the dashboard render block\n", + "dashboard_render = collection.extra_fields[\"renders\"][\"dashboard\"]\n", + "\n", + "assets = dashboard_render[\"assets\"][0]\n", + "((vmin, vmax),) = dashboard_render[\"rescale\"]\n", + "\n", + "collection" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "9f41df64-4ff4-4de4-800c-b27b0452480f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'tilejson': '2.2.0', 'version': '1.0.0', 'scheme': 'xyz', 'tiles': ['https://openveda.cloud/api/raster/collections/blizzard-era5-mslp/items/ERA5_MSLP_cog_1978-01-26T09:00:00Z/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=cog_default&color_formula=gamma+r+1.05&colormap_name=nipy_spectral&rescale=972%2C1040'], 'minzoom': 0, 'maxzoom': 24, 'bounds': [-180.0, -90.0, 180.0, 90.0], 'center': [0.0, 0.0, 0]}\n" + ] + } + ], + "source": [ + "# ── VEDA Tile Request ─────────────────────────────────────────────────────────────────────────────────────\n", + "colormap_name = \"nipy_spectral\"\n", + "\n", + "# Build endpoint URL without worrying about trailing slashes\n", + "response = requests.get(\n", + " f\"{RASTER_API_URL.rstrip('/')}/collections/{collection_id}\"\n", + " f\"/items/{item.id}/WebMercatorQuad/tilejson.json?\"\n", + " f\"&assets={assets}\"\n", + " f\"&color_formula=gamma+r+1.05&colormap_name={colormap_name}\"\n", + " f\"&rescale={vmin},{vmax}\",\n", + ")\n", + "\n", + "response.raise_for_status()\n", + "\n", + "tiles = response.json()\n", + "print(tiles)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "2ddf9c74-d2aa-4774-b1d6-3c1034325c11", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Use the new plot_folium_from_VEDA_STAC function\n", + "m = putils.plot_folium_from_VEDA_STAC(\n", + " tiles_url_template=tiles[\"tiles\"][0],\n", + " center_coords=[40, -80],\n", + " zoom_level=4.5,\n", + " rescale=(vmin, vmax),\n", + " colormap_name=colormap_name,\n", + " capitalize_cmap=False, # to better match VEDA colors and matplotlib colors\n", + " layer_name=\"ERA5 Mean Sea Level Pressure\",\n", + " date=f\"{date}T00:00:00Z\",\n", + " colorbar_caption=\"hPa\",\n", + " attribution=\"ERA5 Mean Sea Level Pressure\",\n", + " tile_name=\"ERA5 Mean Sea Level Pressure\",\n", + " opacity=0.8,\n", + " height=\"800px\",\n", + ")\n", + "\n", + "# Display the map\n", + "m" + ] + }, + { + "cell_type": "markdown", + "id": "ccb4cd83-7530-4335-914d-97dee3e99b49", + "metadata": {}, + "source": [ + "## Historic Blizzards\n", + "\n", + "### 1991 Halloween Blizzard / The Perfect Storm\n", + "\n", + "The 1991 Halloween Blizzard struck the Upper Midwest from October 31 to November 3, and brought unprecedented snowfall and ice accumulation - particularly affecting Minnesota, Iowa, and Wisconsin. In Minnesota, snowfall began on Halloween morning and intensified over the following days, resulting in record-breaking accumulations. The Twin Cities (Minneapolis-St. Paul) experienced 8.2 inches of snow on October 31, with a storm total of 28.4 inches, marking it as the largest single snowstorm in the city's history. Duluth, Minnesota recorded an astonishing 36.9 inches, and nearby areas along the coast of Lake Superior saw up to 45 inches.\n", + "\n", + "The blizzard's impact was compounded by strong winds, creating snowdrifts up to 10 feet high, which paralyzed transportation and led to widespread power outages. In Iowa, the storm began with a mix of snow, sleet, and freezing rain, resulting in significant ice accumulation that downed power lines and trees, leaving thousands without electricity. The hazardous conditions caused numerous traffic accidents and at least 20 fatalities across the affected regions.\n" + ] + }, + { + "cell_type": "markdown", + "id": "272364c1-e8fd-4eb7-93d6-78dba3c0e4b3", + "metadata": {}, + "source": [ + "# Example: MERRA-2 Data (1991 Blizzard)\n", + "\n", + "Pull the MERRA-2 10-meter wind gust data from from the VEDA STAC catalog and visualize\n" + ] + }, + { + "cell_type": "markdown", + "id": "ee940f37-eb43-4fed-8597-be50b615bde1", + "metadata": {}, + "source": [ + "The Modern-Era Retrospective Analysis for Research and Applications, Version 2 (MERRA-2) is NASA’s atmospheric reanalysis dataset that spans from 1980 to the present. Produced by the *lobal Modeling and Assimilation Office (GMAO), MERRA-2 improves upon its predecessor by incorporating aerosol interactions, bias corrections for satellite radiances, and observed precipitation to improve the representation of the hydrological cycle within the dataset. It provides global atmospheric, land surface, and oceanic variables such as temperature, wind speed, cloud cover, and pressure at 0.5Β° x 0.625Β° spatial resolution with hourly to monthly temporal coverage. MERRA-2 is widely used for climate studies, weather analysis, and Earth system research, particularly for investigating long-term atmospheric trends and variability.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "fc3cf599-c9ce-46c6-a5e0-bdf1092e4823", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "
    \n", + " \n", + " \n", + " \n", + "
  • \n", + " type\n", + " \"Collection\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " id\n", + " \"blizzard-merra2-10m-wind\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " stac_version\n", + " \"1.1.0\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " description\n", + " \"MERRA2 10-meter wind speeds global reanalysis for three select blizzard events.\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " links[] 5 items\n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"items\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac/collections/blizzard-merra2-10m-wind/items\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/geo+json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 1\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"parent\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac/\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 2\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"root\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"VEDA (Visualization, Exploration, and Data Analysis) STAC API\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 3\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"http://www.opengis.net/def/rel/ogc/1.0/queryables\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac/collections/blizzard-merra2-10m-wind/queryables\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/schema+json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"Queryables\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 4\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"self\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac/collections/blizzard-merra2-10m-wind\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + "
  • \n", + " stac_extensions[] 1 items\n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + " \"https://stac-extensions.github.io/render/v1.0.0/schema.json\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " renders\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " dashboard\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"VEDA Dashboard Render Parameters\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " assets[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"cog_default\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      • \n", + " rescale[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 0[] 2 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " 0\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " 25\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " colormap_name\n", + " \"ylorrd\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " item_assets\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " cog_default\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"image/tiff; application=geotiff; profile=cloud-optimized\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " roles[] 2 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"data\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 1\n", + " \"layer\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"Default COG Layer\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " description\n", + " \"Cloud optimized default layer to display on map\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " datetime_range\n", + " \"day\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " dashboard:is_periodic\n", + " False\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " dashboard:time_density\n", + " \"day\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " title\n", + " \"MERRA2 Reanalysis – 10 Meter Wind (Select Events)\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " extent\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " spatial\n", + "
        \n", + " \n", + " \n", + "
      • \n", + " bbox[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 0[] 4 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " -180.3125\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " -90.43922186252138\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 2\n", + " 179.88109636856717\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 3\n", + " 90.25\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " temporal\n", + "
        \n", + " \n", + " \n", + "
      • \n", + " interval[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 0[] 2 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " \"1991-11-01T21:00:00Z\"\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " \"2016-01-23T23:59:59Z\"\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " license\n", + " \"CC0-1.0\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " providers[] 1 items\n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " name\n", + " \"NASA VEDA\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " roles[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"host\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " url\n", + " \"https://www.earthdata.nasa.gov/dashboard/\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " summaries\n", + "
      \n", + " \n", + " \n", + "
    • \n", + " datetime[] 3 items\n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"1991-11-01T21:00:00Z\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 1\n", + " \"1993-03-14T00:00:00Z\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 2\n", + " \"2016-01-23T12:00:00Z\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " assets\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " thumbnail\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://thumbnails.openveda.cloud/blizzards-cover.png\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"image/png\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"Thumbnail\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " description\n", + " \"Photo by Andrew Blackford (Near-blizzard conditions in Maria Stein, Ohio on December 23, 2022)\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " roles[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"thumbnail\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + "
\n", + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client_STAC = Client.open(STAC_API_URL)\n", + "\n", + "collection_id = \"blizzard-merra2-10m-wind\"\n", + "date = \"1991-11-01\"\n", + "\n", + "results = client_STAC.search(collections=[collection_id], datetime=date)\n", + "\n", + "# ── VEDA Collection Request ─────────────────────────────────────────────────────────────────────────────────────\n", + "\n", + "items = list(results.items())\n", + "assert len(items) != 0, \"No items found\"\n", + "item = items[0]\n", + "collection = item.get_collection()\n", + "\n", + "# grab the dashboard render block\n", + "dashboard_render = collection.extra_fields[\"renders\"][\"dashboard\"]\n", + "\n", + "assets = dashboard_render[\"assets\"][0]\n", + "((vmin, vmax),) = dashboard_render[\"rescale\"]\n", + "\n", + "collection" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "e52f5701-ba7a-47ea-9b98-8ec38552d5a6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'tilejson': '2.2.0', 'version': '1.0.0', 'scheme': 'xyz', 'tiles': ['https://openveda.cloud/api/raster/collections/blizzard-merra2-10m-wind/items/MERRA2_10m_Wind_cog_1991-11-01T21:00:00Z/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=cog_default&color_formula=gamma+r+1.05&colormap_name=ylorrd&rescale=0%2C25'], 'minzoom': 0, 'maxzoom': 24, 'bounds': [-180.3125, -90.43922186252138, 179.88109636856717, 90.25], 'center': [-0.21570181571641456, -0.09461093126068931, 0]}\n" + ] + } + ], + "source": [ + "# ── VEDA Tile Request ─────────────────────────────────────────────────────────────────────────────────────\n", + "\n", + "# Build endpoint URL without worrying about trailing slashes\n", + "response = requests.get(\n", + " f\"{RASTER_API_URL.rstrip('/')}/collections/{collection_id}\"\n", + " f\"/items/{item.id}/WebMercatorQuad/tilejson.json?\"\n", + " f\"&assets={assets}\"\n", + " f\"&color_formula=gamma+r+1.05&colormap_name={colormap_name}\"\n", + " f\"&rescale={vmin},{vmax}\",\n", + ")\n", + "\n", + "response.raise_for_status()\n", + "\n", + "tiles = response.json()\n", + "print(tiles)" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "7bf00831-1788-477b-8104-7f959bc781c0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Use the new plot_folium_from_VEDA_STAC function\n", + "m = putils.plot_folium_from_VEDA_STAC(\n", + " tiles_url_template=tiles[\"tiles\"][0],\n", + " center_coords=[40, -90],\n", + " zoom_level=4.5,\n", + " rescale=(vmin, vmax),\n", + " colormap_name=\"YlOrRd\",\n", + " capitalize_cmap=False, # to better match VEDA colors and matplotlib colors\n", + " layer_name=\"MERRA-2 10-Meter Wind Gusts\",\n", + " date=f\"{date}T00:00:00Z\",\n", + " colorbar_caption=\"m/s\",\n", + " attribution=\"MERRA-2 10-Meter Wind Gusts\",\n", + " tile_name=\"MERRA-2 10-Meter Wind Gusts\",\n", + " opacity=0.8,\n", + " height=\"800px\",\n", + ")\n", + "\n", + "# Display the map\n", + "m" + ] + }, + { + "cell_type": "markdown", + "id": "d158ae94-fa4d-4fc5-9810-db36f194efa6", + "metadata": {}, + "source": [ + "## Historic Blizzards\n", + "\n", + "### 1993 Storm of the Century\n", + "\n", + "The 1993 Storm of the Century, also known as the \"Superstorm of 1993,\" was a massive cyclonic storm that impacted a vast portion of the United States from March 12 to 15, 1993. This unprecedented weather event brought record-breaking snowfall, severe weather, and coastal flooding, affecting areas from the Deep South to the Northeast. In the Appalachian Mountains, the storm produced extraordinary snowfall totals. Mount LeConte in Tennessee recorded nearly five feet of snow, while Mount Mitchell in North Carolina saw 49 inches. These heavy snowfalls led to significant disruptions, including impassable roads and widespread power outages.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "90811ffd-368a-4016-a6cb-395f4a173e5a", + "metadata": {}, + "source": [ + "# Example: MERRA-2 Data (1993 Blizzard)\n", + "\n", + "Pull the MERRA-2 cloud fraction data from from the VEDA STAC catalog and visualize\n" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "ba17b24b-a446-4743-af44-eb9f8ffbb773", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client_STAC = Client.open(STAC_API_URL)\n", + "\n", + "collection_id = \"blizzard-merra2-cfrac\"\n", + "date = \"1993-03-14\"\n", + "\n", + "results = client_STAC.search(collections=[collection_id], datetime=date)\n", + "\n", + "# ── VEDA Collection Request ─────────────────────────────────────────────────────────────────────────────────────\n", + "\n", + "items = list(results.items())\n", + "assert len(items) != 0, \"No items found\"\n", + "item = items[0]\n", + "collection = item.get_collection()\n", + "\n", + "# grab the dashboard render block\n", + "dashboard_render = collection.extra_fields[\"renders\"][\"dashboard\"]\n", + "\n", + "assets = dashboard_render[\"assets\"][0]\n", + "((vmin, vmax),) = dashboard_render[\"rescale\"]\n", + "\n", + "# ── VEDA Tile Request ─────────────────────────────────────────────────────────────────────────────────────\n", + "\n", + "# Build endpoint URL without worrying about trailing slashes\n", + "response = requests.get(\n", + " f\"{RASTER_API_URL.rstrip('/')}/collections/{collection_id}\"\n", + " f\"/items/{item.id}/WebMercatorQuad/tilejson.json?\"\n", + " f\"&assets={assets}\"\n", + " f\"&rescale={vmin},{vmax}\",\n", + ")\n", + "\n", + "response.raise_for_status()\n", + "\n", + "tiles = response.json()\n", + "\n", + "# Use the new plot_folium_from_VEDA_STAC function\n", + "m = putils.plot_folium_from_VEDA_STAC(\n", + " tiles_url_template=tiles[\"tiles\"][0],\n", + " center_coords=[30, -75],\n", + " zoom_level=3.5,\n", + " rescale=(vmin, vmax),\n", + " colormap_name=\"Greys\",\n", + " capitalize_cmap=False, # to better match VEDA colors and matplotlib colors\n", + " layer_name=\"MERRA-2 Cloud Fraction\",\n", + " date=f\"{date}T00:00:00Z\",\n", + " colorbar_caption=\"m/s\",\n", + " attribution=\"MERRA-2 Cloud Fraction\",\n", + " tile_name=\"MERRA-2 Cloud Fraction\",\n", + " opacity=0.8,\n", + " height=\"800px\",\n", + ")\n", + "\n", + "# Display the map\n", + "m" + ] + }, + { + "cell_type": "markdown", + "id": "fa549dd4-f554-4435-af32-95f62e7002e4", + "metadata": {}, + "source": [ + "# Clean Up (Optional)\n", + "\n", + "\n", + "Remove any **.gif** files that were created to save on storage space. Additionally, remove any **core** files that were created if the kernel crashed." + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "986bbaab-f1cb-445e-b6fb-9131e26ee6cd", + "metadata": {}, + "outputs": [], + "source": [ + "# find all .gif files in the current directory\n", + "for gif_path in glob.glob(\"*.gif\"):\n", + " try:\n", + " os.remove(gif_path)\n", + " print(f\"Removed {gif_path}\")\n", + " except OSError as e:\n", + " print(f\"Error removing {gif_path}: {e}\")\n", + "\n", + "# find all core files in the current directory\n", + "for core_path in glob.glob(\"core.*\"):\n", + " try:\n", + " os.remove(core_path)\n", + " print(f\"Removed {core_path}\")\n", + " except OSError as e:\n", + " print(f\"Error removing {core_path}: {e}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f6eac53e-909d-42e5-bf90-5f40ef526c57", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From d11eba6d3b9b66be4b9b95f41133647c1e52f2b6 Mon Sep 17 00:00:00 2001 From: Andrew Blackford <62357205+acblackford@users.noreply.github.com> Date: Thu, 28 Aug 2025 13:53:15 -0500 Subject: [PATCH 2/5] add GOES truecolor --- .../stories/blizzards_notebook.ipynb | 1698 ++++++++++++++--- 1 file changed, 1451 insertions(+), 247 deletions(-) diff --git a/user-guide/notebooks/stories/blizzards_notebook.ipynb b/user-guide/notebooks/stories/blizzards_notebook.ipynb index df551d13..2275c1af 100644 --- a/user-guide/notebooks/stories/blizzards_notebook.ipynb +++ b/user-guide/notebooks/stories/blizzards_notebook.ipynb @@ -66,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 8, "id": "e660b9c1-96de-4c42-ae48-d908293b54bb", "metadata": {}, "outputs": [], @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "id": "2e690482-48a3-440e-bfd6-ab99d097ea8b", "metadata": {}, "outputs": [], @@ -139,35 +139,1220 @@ "id": "d465df96-8a8c-455c-bdf1-132a829d56d6", "metadata": {}, "source": [ - "# Example: Blizzard Count (1950-2021)\n", + "# Example: Blizzard Count (1950-2021)\n", + "\n", + "Pull the blizzard climatology data from from the VEDA STAC catalog and visualize\n" + ] + }, + { + "cell_type": "markdown", + "id": "b3556d74-8b24-4327-878d-cb11a39e784a", + "metadata": {}, + "source": [ + "## Processing steps:\n", + "1.) Choose STAC catalog ID and date
\n", + "2.) Retrieve collection information and items from VEDA STAC catalog
\n", + "3.) Retrieve item statistics and tiling information
\n", + "4.) Plot data
" + ] + }, + { + "cell_type": "markdown", + "id": "b9964579-daf7-4ea5-94db-65442aef5547", + "metadata": {}, + "source": [ + "Nearest neighbor interpolation of NCEI Storm Events Database confirmed blizzard reports from 1950-2021 in the United States, clipped to the Northern Plains, Midwest, and Northeast.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "94e17401-99ec-4ed3-ae7b-1c5014d5931a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "
    \n", + " \n", + " \n", + " \n", + "
  • \n", + " type\n", + " \"Collection\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " id\n", + " \"blizzard-count\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " stac_version\n", + " \"1.1.0\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " description\n", + " \"Nearest neighbor interpolation of NCEI Storm Events Database confirmed blizzard reports from 1950-2021 in the United States, clipped to the Northern Plains, Midwest, and Northeast.\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " links[] 5 items\n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"items\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac/collections/blizzard-count/items\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/geo+json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 1\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"parent\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac/\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 2\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"root\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"VEDA (Visualization, Exploration, and Data Analysis) STAC API\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 3\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"http://www.opengis.net/def/rel/ogc/1.0/queryables\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac/collections/blizzard-count/queryables\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/schema+json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"Queryables\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 4\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " rel\n", + " \"self\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://openveda.cloud/api/stac/collections/blizzard-count\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"application/json\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + "
  • \n", + " stac_extensions[] 1 items\n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + " \"https://stac-extensions.github.io/render/v1.0.0/schema.json\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " renders\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " dashboard\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"VEDA Dashboard Render Parameters\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " assets[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"cog_default\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      • \n", + " rescale[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 0[] 2 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " 1\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " 50\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " colormap_name\n", + " \"turbo\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " item_assets\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " cog_default\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"image/tiff; application=geotiff; profile=cloud-optimized\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " roles[] 2 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"data\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 1\n", + " \"layer\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"Default COG Layer\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " description\n", + " \"Cloud optimized default layer to display on map\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " datetime_range\n", + " \"day\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " dashboard:is_periodic\n", + " True\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " dashboard:time_density\n", + " \"day\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " title\n", + " \"Blizzard Count 1950-2021\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " extent\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " spatial\n", + "
        \n", + " \n", + " \n", + "
      • \n", + " bbox[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 0[] 4 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " -110.6\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " 34.7\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 2\n", + " -66.7\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 3\n", + " 49.6\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " temporal\n", + "
        \n", + " \n", + " \n", + "
      • \n", + " interval[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + "
        • \n", + " 0[] 2 items\n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + " \"2021-12-31T00:00:00Z\"\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + " \"2021-12-31T23:59:59Z\"\n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " license\n", + " \"CC0-1.0\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " providers[] 1 items\n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " name\n", + " \"NASA VEDA\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " roles[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"host\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " url\n", + " \"https://www.earthdata.nasa.gov/dashboard/\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " assets\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " thumbnail\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " href\n", + " \"https://thumbnails.openveda.cloud/blizzards-cover.png\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " type\n", + " \"image/png\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " title\n", + " \"Thumbnail\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " description\n", + " \"Photo by Andrew Blackford (Near-blizzard conditions in Maria Stein, Ohio on December 23, 2022)\"\n", + "
      • \n", + " \n", + " \n", + " \n", + " \n", + "
      • \n", + " roles[] 1 items\n", + " \n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " 0\n", + " \"thumbnail\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + " \n", + "
      • \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + "
\n", + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# TODO: Change collection_ID and date\n", + "client_STAC = Client.open(STAC_API_URL)\n", + "\n", + "collection_id = \"blizzard-count\"\n", + "date = \"2021-12-31\"\n", + "\n", + "results = client_STAC.search(collections=[collection_id], datetime=date)\n", + "\n", + "# ── VEDA Collection Request ─────────────────────────────────────────────────────────────────────────────────────\n", + "\n", + "items = list(results.items())\n", + "assert len(items) != 0, \"No items found\"\n", + "item = items[0]\n", + "collection = item.get_collection()\n", + "\n", + "# grab the dashboard render block\n", + "dashboard_render = collection.extra_fields[\"renders\"][\"dashboard\"]\n", + "\n", + "assets = dashboard_render[\"assets\"][0]\n", + "((vmin, vmax),) = dashboard_render[\"rescale\"]\n", + "\n", + "collection" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "fa60566e-b3c6-4d58-84fe-8589a54056df", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'tilejson': '2.2.0', 'version': '1.0.0', 'scheme': 'xyz', 'tiles': ['https://openveda.cloud/api/raster/collections/blizzard-count/items/StormEvents_Blizzards_cog_2021-12-31/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=cog_default&color_formula=gamma+r+1.05&colormap_name=turbo&rescale=1%2C50'], 'minzoom': 0, 'maxzoom': 24, 'bounds': [-110.62272262199996, 34.803751156000025, -66.21095309899994, 51.52535394900008], 'center': [-88.41683786049995, 43.164552552500055, 0]}\n" + ] + } + ], + "source": [ + "# ── VEDA Tile Request ─────────────────────────────────────────────────────────────────────────────────────\n", + "colormap_name = \"turbo\"\n", + "\n", + "# Build endpoint URL without worrying about trailing slashes\n", + "response = requests.get(\n", + " f\"{RASTER_API_URL.rstrip('/')}/collections/{collection_id}\"\n", + " f\"/items/{item.id}/WebMercatorQuad/tilejson.json?\"\n", + " f\"&assets={assets}\"\n", + " f\"&color_formula=gamma+r+1.05&colormap_name={colormap_name}\"\n", + " f\"&rescale={vmin},{vmax}\",\n", + ")\n", + "\n", + "response.raise_for_status()\n", + "\n", + "tiles = response.json()\n", + "print(tiles)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "80a6afa4-7d1d-4c13-877d-bad844012e08", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Use the new plot_folium_from_VEDA_STAC function\n", + "m = putils.plot_folium_from_VEDA_STAC(\n", + " tiles_url_template=tiles[\"tiles\"][0],\n", + " center_coords=[43, -92],\n", + " zoom_level=6,\n", + " rescale=(vmin, vmax),\n", + " colormap_name=colormap_name,\n", + " capitalize_cmap=False, # to better match VEDA colors and matplotlib colors\n", + " layer_name=\"Blizzard Count\",\n", + " date=\"(1950-2021)\",\n", + " colorbar_caption=\"count\",\n", + " attribution=\"NCEI Blizzard Count (1950-2021)\",\n", + " tile_name=\"NCEI Blizzard Count (1950-2021)\",\n", + " opacity=0.8,\n", + " height=\"800px\",\n", + ")\n", "\n", - "Pull the blizzard climatology data from from the VEDA STAC catalog and visualize\n" - ] - }, - { - "cell_type": "markdown", - "id": "b3556d74-8b24-4327-878d-cb11a39e784a", - "metadata": {}, - "source": [ - "## Processing steps:\n", - "1.) Choose STAC catalog ID and date
\n", - "2.) Retrieve collection information and items from VEDA STAC catalog
\n", - "3.) Retrieve item statistics and tiling information
\n", - "4.) Plot data
" + "# Display the map\n", + "m" ] }, { "cell_type": "markdown", - "id": "b9964579-daf7-4ea5-94db-65442aef5547", + "id": "35aaa435-c8bb-4912-b644-81b2a522b8df", "metadata": {}, "source": [ - "Nearest neighbor interpolation of NCEI Storm Events Database confirmed blizzard reports from 1950-2021 in the United States, clipped to the Northern Plains, Midwest, and Northeast.\n" + "## Bomb Cyclogenesis\n", + "\n", + "A defining feature of many nor’easters is bomb cyclogenesis, or \"bombogenesis\", which occurs when a storm's central low pressure drops by at least 24 millibars in 24 hours, signifying rapid intensification of the system. The process is driven by the clash of cold air from the north and warm, humid air over the Atlantic. As the storm deepens, powerful winds spiral inward towards the central low pressure, enhancing snowfall rates and creating whiteout conditions. Bomb cyclogenesis often results in some of the most impactful nor’easters, which have been historically responsible for bringing record-breaking snowfall and hurricane-force winds to parts of the Northeast. The map shows GOES satellite imagery of one example of a Nor'easter undergoing bomb cyclogenesis off the East Coast of the USA on January 4, 2018." ] }, { "cell_type": "code", - "execution_count": 6, - "id": "94e17401-99ec-4ed3-ae7b-1c5014d5931a", + "execution_count": 11, + "id": "9693e891-2cfe-4aa2-8465-6a4d3b3566f6", "metadata": {}, "outputs": [ { @@ -222,7 +1407,7 @@ " \n", "
  • \n", " id\n", - " \"blizzard-count\"\n", + " \"blizzard-goes-bombogenesis\"\n", "
  • \n", " \n", " \n", @@ -240,7 +1425,7 @@ " \n", "
  • \n", " description\n", - " \"Nearest neighbor interpolation of NCEI Storm Events Database confirmed blizzard reports from 1950-2021 in the United States, clipped to the Northern Plains, Midwest, and Northeast.\"\n", + " \"Single GOES TrueColor three-band image of a mid-latitude cyclone undergoing bomb cyclogenesis and producing blizzard conditions on January 4, 2018.\"\n", "
  • \n", " \n", " \n", @@ -270,7 +1455,7 @@ " \n", "
  • \n", " href\n", - " \"https://openveda.cloud/api/stac/collections/blizzard-count/items\"\n", + " \"https://openveda.cloud/api/stac/collections/blizzard-goes-bombogenesis/items\"\n", "
  • \n", " \n", " \n", @@ -405,7 +1590,7 @@ " \n", "
  • \n", " href\n", - " \"https://openveda.cloud/api/stac/collections/blizzard-count/queryables\"\n", + " \"https://openveda.cloud/api/stac/collections/blizzard-goes-bombogenesis/queryables\"\n", "
  • \n", " \n", " \n", @@ -456,7 +1641,7 @@ " \n", "
  • \n", " href\n", - " \"https://openveda.cloud/api/stac/collections/blizzard-count\"\n", + " \"https://openveda.cloud/api/stac/collections/blizzard-goes-bombogenesis\"\n", "
  • \n", " \n", " \n", @@ -513,6 +1698,52 @@ "
      \n", " \n", " \n", + "
    • \n", + " bidx[] 3 items\n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " 1\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 1\n", + " 2\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 2\n", + " 3\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + " \n", " \n", "
    • \n", " title\n", @@ -557,7 +1788,7 @@ " \n", "
    • \n", " 0\n", - " 1\n", + " 0\n", "
    • \n", " \n", " \n", @@ -570,7 +1801,7 @@ " \n", "
    • \n", " 1\n", - " 50\n", + " 15\n", "
    • \n", " \n", " \n", @@ -585,15 +1816,6 @@ " \n", " \n", " \n", - " \n", - " \n", - "
    • \n", - " colormap_name\n", - " \"turbo\"\n", - "
    • \n", - " \n", - " \n", - " \n", "
    \n", " \n", " \n", @@ -699,7 +1921,7 @@ " \n", "
  • \n", " dashboard:is_periodic\n", - " True\n", + " False\n", "
  • \n", " \n", " \n", @@ -717,7 +1939,7 @@ " \n", "
  • \n", " title\n", - " \"Blizzard Count 1950-2021\"\n", + " \"GOES Imagery - Bombogenesis (Select Event)\"\n", "
  • \n", " \n", " \n", @@ -750,7 +1972,7 @@ " \n", "
  • \n", " 0\n", - " -110.6\n", + " -98.0019305447347\n", "
  • \n", " \n", " \n", @@ -763,7 +1985,7 @@ " \n", "
  • \n", " 1\n", - " 34.7\n", + " 20.003341757802602\n", "
  • \n", " \n", " \n", @@ -776,7 +1998,7 @@ " \n", "
  • \n", " 2\n", - " -66.7\n", + " -38.00265547381819\n", "
  • \n", " \n", " \n", @@ -789,7 +2011,7 @@ " \n", "
  • \n", " 3\n", - " 49.6\n", + " 55.002918882503906\n", "
  • \n", " \n", " \n", @@ -831,7 +2053,7 @@ " \n", "
  • \n", " 0\n", - " \"2021-12-31T00:00:00Z\"\n", + " \"2018-01-04T00:00:00Z\"\n", "
  • \n", " \n", " \n", @@ -844,7 +2066,7 @@ " \n", "
  • \n", " 1\n", - " \"2021-12-31T23:59:59Z\"\n", + " \"2018-01-04T23:59:59Z\"\n", "
  • \n", " \n", " \n", @@ -941,6 +2163,37 @@ " \n", " \n", "
  • \n", + " summaries\n", + "
      \n", + " \n", + " \n", + "
    • \n", + " datetime[] 1 items\n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"2018-01-04T00:00:00Z\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", " assets\n", "
      \n", " \n", @@ -1021,76 +2274,50 @@ "" ], "text/plain": [ - "" + "" ] }, - "execution_count": 6, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# TODO: Change collection_ID and date\n", - "client_STAC = Client.open(STAC_API_URL)\n", - "\n", - "collection_id = \"blizzard-count\"\n", - "date = \"2021-12-31\"\n", - "\n", - "results = client_STAC.search(collections=[collection_id], datetime=date)\n", + "date = \"2018-01-04\" \n", + "collection_id = \"blizzard-goes-bombogenesis\"\n", "\n", "# ── VEDA Collection Request ─────────────────────────────────────────────────────────────────────────────────────\n", "\n", + "results = client_STAC.search(collections=[collection_id], datetime=date)\n", "items = list(results.items())\n", - "assert len(items) != 0, \"No items found\"\n", "item = items[0]\n", "collection = item.get_collection()\n", "\n", - "# grab the dashboard render block\n", "dashboard_render = collection.extra_fields[\"renders\"][\"dashboard\"]\n", - "\n", "assets = dashboard_render[\"assets\"][0]\n", "((vmin, vmax),) = dashboard_render[\"rescale\"]\n", + "bidx = dashboard_render.get(\"bidx\", [1, 2, 3])\n", "\n", - "collection" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "fa60566e-b3c6-4d58-84fe-8589a54056df", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'tilejson': '2.2.0', 'version': '1.0.0', 'scheme': 'xyz', 'tiles': ['https://openveda.cloud/api/raster/collections/blizzard-count/items/StormEvents_Blizzards_cog_2021-12-31/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=cog_default&color_formula=gamma+r+1.05&colormap_name=turbo&rescale=1%2C50'], 'minzoom': 0, 'maxzoom': 24, 'bounds': [-110.62272262199996, 34.803751156000025, -66.21095309899994, 51.52535394900008], 'center': [-88.41683786049995, 43.164552552500055, 0]}\n" - ] - } - ], - "source": [ "# ── VEDA Tile Request ─────────────────────────────────────────────────────────────────────────────────────\n", - "colormap_name = \"turbo\"\n", "\n", - "# Build endpoint URL without worrying about trailing slashes\n", "response = requests.get(\n", " f\"{RASTER_API_URL.rstrip('/')}/collections/{collection_id}\"\n", " f\"/items/{item.id}/WebMercatorQuad/tilejson.json?\"\n", " f\"&assets={assets}\"\n", - " f\"&color_formula=gamma+r+1.05&colormap_name={colormap_name}\"\n", - " f\"&rescale={vmin},{vmax}\",\n", + " f\"&bidx={bidx[0]}&bidx={bidx[1]}&bidx={bidx[2]}\"\n", + " f\"&rescale={vmin},{vmax}\"\n", + " f\"&resampling=bilinear\"\n", ")\n", - "\n", "response.raise_for_status()\n", - "\n", "tiles = response.json()\n", - "print(tiles)" + "\n", + "collection" ] }, { "cell_type": "code", - "execution_count": 11, - "id": "80a6afa4-7d1d-4c13-877d-bad844012e08", + "execution_count": 18, + "id": "e7031438-e30d-4e9e-a59f-65b8ae105bcb", "metadata": {}, "outputs": [ { @@ -1115,7 +2342,7 @@ " <meta name="viewport" content="width=device-width,\n", " initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />\n", " <style>\n", - " #map_b6fdf68c9ec80e54b8b962d380fe1e24 {\n", + " #map_946354e05bf1c24a463dc028f8dde936 {\n", " position: relative;\n", " width: 100.0%;\n", " height: 800.0px;\n", @@ -1165,44 +2392,44 @@ " padding: 4px 8px;\n", " border-radius: 4px;\n", " ">\n", - " Blizzard Count β€” (1950-2021)\n", + " GOES TrueColor Imagery β€” January 04, 2018\n", " </div>\n", " \n", " \n", - " <div class="folium-map" id="map_b6fdf68c9ec80e54b8b962d380fe1e24" ></div>\n", + " <div class="folium-map" id="map_946354e05bf1c24a463dc028f8dde936" ></div>\n", " \n", "</body>\n", "<script>\n", " \n", " \n", - " var map_b6fdf68c9ec80e54b8b962d380fe1e24 = L.map(\n", - " "map_b6fdf68c9ec80e54b8b962d380fe1e24",\n", + " var map_946354e05bf1c24a463dc028f8dde936 = L.map(\n", + " "map_946354e05bf1c24a463dc028f8dde936",\n", " {\n", - " center: [43.0, -92.0],\n", + " center: [38.0, -72.0],\n", " crs: L.CRS.EPSG3857,\n", " ...{\n", - " "zoom": 6,\n", + " "zoom": 5,\n", " "zoomControl": true,\n", " "preferCanvas": false,\n", "}\n", "\n", " }\n", " );\n", - " L.control.scale().addTo(map_b6fdf68c9ec80e54b8b962d380fe1e24);\n", + " L.control.scale().addTo(map_946354e05bf1c24a463dc028f8dde936);\n", "\n", " \n", "\n", " \n", " \n", - " var tile_layer_c7113ef45c2db6f2d0018e58f8f98309 = L.tileLayer(\n", - " "https://tile.openstreetmap.org/{z}/{x}/{y}.png",\n", + " var tile_layer_635ef3fdfea9043d6f1a937d65e29b57 = L.tileLayer(\n", + " "https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png",\n", " {\n", " "minZoom": 0,\n", - " "maxZoom": 19,\n", - " "maxNativeZoom": 19,\n", + " "maxZoom": 20,\n", + " "maxNativeZoom": 20,\n", " "noWrap": false,\n", - " "attribution": "\\u0026copy; \\u003ca href=\\"https://www.openstreetmap.org/copyright\\"\\u003eOpenStreetMap\\u003c/a\\u003e contributors",\n", - " "subdomains": "abc",\n", + " "attribution": "\\u0026copy; \\u003ca href=\\"https://www.openstreetmap.org/copyright\\"\\u003eOpenStreetMap\\u003c/a\\u003e contributors \\u0026copy; \\u003ca href=\\"https://carto.com/attributions\\"\\u003eCARTO\\u003c/a\\u003e",\n", + " "subdomains": "abcd",\n", " "detectRetina": false,\n", " "tms": false,\n", " "opacity": 1,\n", @@ -1211,17 +2438,17 @@ " );\n", " \n", " \n", - " tile_layer_c7113ef45c2db6f2d0018e58f8f98309.addTo(map_b6fdf68c9ec80e54b8b962d380fe1e24);\n", + " tile_layer_635ef3fdfea9043d6f1a937d65e29b57.addTo(map_946354e05bf1c24a463dc028f8dde936);\n", " \n", " \n", - " var tile_layer_60b173fb7c572f939fb4731abe0d11dd = L.tileLayer(\n", - " "https://openveda.cloud/api/raster/collections/blizzard-count/items/StormEvents_Blizzards_cog_2021-12-31/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=cog_default\\u0026color_formula=gamma+r+1.05\\u0026colormap_name=turbo\\u0026rescale=1%2C50",\n", + " var tile_layer_24e75efacd13bd0aa87d9b04829ebf35 = L.tileLayer(\n", + " "https://openveda.cloud/api/raster/collections/blizzard-goes-bombogenesis/items/GOES_TrueColor_cog_v2_2018-01-04/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=cog_default\\u0026bidx=1\\u0026bidx=2\\u0026bidx=3\\u0026rescale=0%2C15\\u0026resampling=bilinear",\n", " {\n", " "minZoom": 0,\n", " "maxZoom": 18,\n", " "maxNativeZoom": 18,\n", " "noWrap": false,\n", - " "attribution": "NCEI Blizzard Count (1950-2021)",\n", + " "attribution": "GOES TrueColor Imagery",\n", " "subdomains": "abc",\n", " "detectRetina": false,\n", " "tms": false,\n", @@ -1231,66 +2458,66 @@ " );\n", " \n", " \n", - " tile_layer_60b173fb7c572f939fb4731abe0d11dd.addTo(map_b6fdf68c9ec80e54b8b962d380fe1e24);\n", + " tile_layer_24e75efacd13bd0aa87d9b04829ebf35.addTo(map_946354e05bf1c24a463dc028f8dde936);\n", " \n", " \n", - " var layer_control_0df964d61aa81bbed2b09af396887dc8_layers = {\n", + " var layer_control_a2f57e5c0718f6f58784a2f9fb0c3714_layers = {\n", " base_layers : {\n", - " "openstreetmap" : tile_layer_c7113ef45c2db6f2d0018e58f8f98309,\n", + " "CartoDB Positron" : tile_layer_635ef3fdfea9043d6f1a937d65e29b57,\n", " },\n", " overlays : {\n", - " "NCEI Blizzard Count (1950-2021)" : tile_layer_60b173fb7c572f939fb4731abe0d11dd,\n", + " "GOES TrueColor Imagery" : tile_layer_24e75efacd13bd0aa87d9b04829ebf35,\n", " },\n", " };\n", - " let layer_control_0df964d61aa81bbed2b09af396887dc8 = L.control.layers(\n", - " layer_control_0df964d61aa81bbed2b09af396887dc8_layers.base_layers,\n", - " layer_control_0df964d61aa81bbed2b09af396887dc8_layers.overlays,\n", + " let layer_control_a2f57e5c0718f6f58784a2f9fb0c3714 = L.control.layers(\n", + " layer_control_a2f57e5c0718f6f58784a2f9fb0c3714_layers.base_layers,\n", + " layer_control_a2f57e5c0718f6f58784a2f9fb0c3714_layers.overlays,\n", " {\n", " "position": "topright",\n", " "collapsed": true,\n", " "autoZIndex": true,\n", "}\n", - " ).addTo(map_b6fdf68c9ec80e54b8b962d380fe1e24);\n", + " ).addTo(map_946354e05bf1c24a463dc028f8dde936);\n", "\n", " \n", " \n", - " var color_map_ce4ce94470caa1d8c1d21a497fd7600d = {};\n", + " var color_map_394cf7b9e904910b88f888dc532640c1 = {};\n", "\n", " \n", - " color_map_ce4ce94470caa1d8c1d21a497fd7600d.color = d3.scale.threshold()\n", - " .domain([1.0, 1.0981963927855711, 1.1963927855711423, 1.2945891783567134, 1.3927855711422845, 1.4909819639278556, 1.5891783567134268, 1.6873747494989981, 1.785571142284569, 1.8837675350701404, 1.9819639278557113, 2.0801603206412826, 2.1783567134268536, 2.276553106212425, 2.3747494989979963, 2.472945891783567, 2.571142284569138, 2.6693386773547094, 2.7675350701402808, 2.8657314629258517, 2.9639278557114226, 3.062124248496994, 3.1603206412825653, 3.258517034068136, 3.3567134268537075, 3.4549098196392785, 3.55310621242485, 3.6513026052104207, 3.749498997995992, 3.847695390781563, 3.9458917835671343, 4.044088176352705, 4.142284569138276, 4.240480961923847, 4.338677354709419, 4.436873747494991, 4.5350701402805615, 4.6332665330661325, 4.731462925851703, 4.829659318637274, 4.927855711422845, 5.026052104208417, 5.124248496993988, 5.222444889779559, 5.320641282565131, 5.4188376753507015, 5.517034068136272, 5.615230460921843, 5.713426853707415, 5.811623246492986, 5.909819639278557, 6.008016032064128, 6.1062124248497, 6.2044088176352705, 6.302605210420841, 6.400801603206413, 6.498997995991984, 6.597194388777555, 6.695390781563126, 6.793587174348698, 6.891783567134269, 6.98997995991984, 7.0881763527054105, 7.186372745490982, 7.284569138276553, 7.382765531062124, 7.480961923847695, 7.579158316633267, 7.677354709418838, 7.775551102204409, 7.87374749498998, 7.971943887775551, 8.070140280561123, 8.168336673346694, 8.266533066132265, 8.364729458917836, 8.462925851703407, 8.561122244488978, 8.659318637274549, 8.75751503006012, 8.85571142284569, 8.953907815631261, 9.052104208416834, 9.150300601202405, 9.248496993987976, 9.346693386773547, 9.444889779559118, 9.54308617234469, 9.641282565130261, 9.739478957915832, 9.837675350701403, 9.935871743486974, 10.034068136272545, 10.132264529058116, 10.230460921843687, 10.32865731462926, 10.42685370741483, 10.525050100200401, 10.623246492985972, 10.721442885771543, 10.819639278557114, 10.917835671342685, 11.016032064128256, 11.114228456913828, 11.2124248496994, 11.31062124248497, 11.408817635270541, 11.507014028056112, 11.605210420841683, 11.703406813627254, 11.801603206412826, 11.899799599198397, 11.997995991983968, 12.09619238476954, 12.19438877755511, 12.292585170340681, 12.390781563126252, 12.488977955911823, 12.587174348697395, 12.685370741482966, 12.783567134268537, 12.881763527054108, 12.97995991983968, 13.07815631262525, 13.176352705410821, 13.274549098196394, 13.372745490981965, 13.470941883767535, 13.569138276553106, 13.667334669338677, 13.765531062124248, 13.863727454909819, 13.96192384769539, 14.060120240480963, 14.158316633266534, 14.256513026052104, 14.354709418837675, 14.452905811623246, 14.551102204408817, 14.649298597194388, 14.74749498997996, 14.845691382765532, 14.943887775551103, 15.042084168336673, 15.140280561122244, 15.238476953907815, 15.336673346693386, 15.434869739478957, 15.53306613226453, 15.6312625250501, 15.729458917835672, 15.827655310621243, 15.925851703406813, 16.024048096192384, 16.122244488977955, 16.22044088176353, 16.318637274549097, 16.41683366733467, 16.51503006012024, 16.613226452905813, 16.71142284569138, 16.809619238476955, 16.907815631262523, 17.006012024048097, 17.104208416833668, 17.20240480961924, 17.30060120240481, 17.39879759519038, 17.49699398797595, 17.595190380761522, 17.693386773547093, 17.791583166332664, 17.889779559118235, 17.987975951903806, 18.08617234468938, 18.18436873747495, 18.282565130260522, 18.380761523046093, 18.478957915831664, 18.577154308617235, 18.675350701402806, 18.773547094188377, 18.871743486973948, 18.96993987975952, 19.06813627254509, 19.16633266533066, 19.26452905811623, 19.362725450901802, 19.460921843687373, 19.559118236472944, 19.65731462925852, 19.75551102204409, 19.85370741482966, 19.95190380761523, 20.050100200400802, 20.148296593186373, 20.246492985971944, 20.344689378757515, 20.442885771543086, 20.541082164328657, 20.639278557114228, 20.7374749498998, 20.83567134268537, 20.93386773547094, 21.03206412825651, 21.130260521042086, 21.228456913827657, 21.326653306613228, 21.4248496993988, 21.52304609218437, 21.62124248496994, 21.71943887775551, 21.817635270541082, 21.915831663326653, 22.014028056112224, 22.112224448897795, 22.210420841683366, 22.308617234468937, 22.406813627254508, 22.50501002004008, 22.603206412825653, 22.701402805611224, 22.799599198396795, 22.897795591182366, 22.995991983967937, 23.094188376753507, 23.19238476953908, 23.29058116232465, 23.38877755511022, 23.48697394789579, 23.585170340681362, 23.683366733466933, 23.781563126252504, 23.879759519038075, 23.977955911823646, 24.07615230460922, 24.17434869739479, 24.272545090180362, 24.370741482965933, 24.468937875751504, 24.567134268537075, 24.665330661322646, 24.763527054108216, 24.861723446893787, 24.95991983967936, 25.05811623246493, 25.1563126252505, 25.25450901803607, 25.352705410821642, 25.450901803607213, 25.549098196392787, 25.647294589178358, 25.74549098196393, 25.8436873747495, 25.94188376753507, 26.04008016032064, 26.138276553106213, 26.236472945891784, 26.334669338677354, 26.432865731462925, 26.531062124248496, 26.629258517034067, 26.727454909819638, 26.82565130260521, 26.92384769539078, 27.022044088176354, 27.120240480961925, 27.218436873747496, 27.316633266533067, 27.414829659318638, 27.51302605210421, 27.61122244488978, 27.70941883767535, 27.80761523046092, 27.905811623246493, 28.004008016032063, 28.102204408817634, 28.200400801603205, 28.298597194388776, 28.396793587174347, 28.49498997995992, 28.593186372745492, 28.691382765531063, 28.789579158316634, 28.887775551102205, 28.985971943887776, 29.084168336673347, 29.182364729458918, 29.28056112224449, 29.37875751503006, 29.47695390781563, 29.5751503006012, 29.673346693386772, 29.771543086172343, 29.869739478957914, 29.96793587174349, 30.06613226452906, 30.16432865731463, 30.2625250501002, 30.360721442885772, 30.458917835671343, 30.557114228456914, 30.655310621242485, 30.753507014028056, 30.851703406813627, 30.949899799599198, 31.04809619238477, 31.14629258517034, 31.24448897795591, 31.34268537074148, 31.440881763527056, 31.539078156312627, 31.637274549098198, 31.73547094188377, 31.83366733466934, 31.93186372745491, 32.03006012024048, 32.12825651302605, 32.22645290581163, 32.324649298597194, 32.42284569138276, 32.521042084168336, 32.61923847695391, 32.71743486973948, 32.815631262525045, 32.91382765531062, 33.012024048096194, 33.11022044088176, 33.208416833667336, 33.3066132264529, 33.40480961923848, 33.503006012024045, 33.60120240480962, 33.699398797595194, 33.79759519038076, 33.895791583166336, 33.9939879759519, 34.09218436873748, 34.190380761523045, 34.28857715430862, 34.38677354709419, 34.48496993987976, 34.58316633266533, 34.6813627254509, 34.77955911823647, 34.877755511022045, 34.97595190380761, 35.07414829659319, 35.17234468937876, 35.27054108216433, 35.3687374749499, 35.46693386773547, 35.565130260521045, 35.66332665330661, 35.76152304609219, 35.859719438877754, 35.95791583166333, 36.056112224448896, 36.15430861723447, 36.25250501002004, 36.35070140280561, 36.44889779559118, 36.547094188376754, 36.64529058116233, 36.743486973947896, 36.84168336673347, 36.93987975951904, 37.03807615230461, 37.13627254509018, 37.234468937875754, 37.33266533066132, 37.430861723446895, 37.52905811623246, 37.62725450901804, 37.725450901803605, 37.82364729458918, 37.921843687374746, 38.02004008016032, 38.11823647294589, 38.21643286573146, 38.31462925851704, 38.412825651302605, 38.51102204408818, 38.609218436873746, 38.70741482965932, 38.80561122244489, 38.90380761523046, 39.00200400801603, 39.100200400801604, 39.19839679358717, 39.296593186372746, 39.394789579158314, 39.49298597194389, 39.591182364729455, 39.68937875751503, 39.787575150300604, 39.88577154308617, 39.983967935871746, 40.08216432865731, 40.18036072144289, 40.278557114228455, 40.37675350701403, 40.4749498997996, 40.57314629258517, 40.67134268537074, 40.76953907815631, 40.86773547094188, 40.965931863727455, 41.06412825651302, 41.1623246492986, 41.26052104208417, 41.35871743486974, 41.45691382765531, 41.55511022044088, 41.653306613226455, 41.75150300601202, 41.8496993987976, 41.947895791583164, 42.04609218436874, 42.144288577154306, 42.24248496993988, 42.34068136272545, 42.43887775551102, 42.53707414829659, 42.635270541082164, 42.73346693386774, 42.831663326653306, 42.92985971943888, 43.02805611222445, 43.12625250501002, 43.22444889779559, 43.322645290581164, 43.42084168336673, 43.519038076152306, 43.61723446893787, 43.71543086172345, 43.813627254509015, 43.91182364729459, 44.01002004008016, 44.10821643286573, 44.206412825651306, 44.30460921843687, 44.40280561122245, 44.501002004008015, 44.59919839679359, 44.69739478957916, 44.79559118236473, 44.8937875751503, 44.99198396793587, 45.09018036072144, 45.188376753507015, 45.28657314629258, 45.38476953907816, 45.482965931863724, 45.5811623246493, 45.67935871743487, 45.77755511022044, 45.875751503006015, 45.97394789579158, 46.07214428857716, 46.170340681362724, 46.2685370741483, 46.366733466933866, 46.46492985971944, 46.56312625250501, 46.66132264529058, 46.75951903807615, 46.857715430861724, 46.95591182364729, 47.054108216432866, 47.15230460921844, 47.25050100200401, 47.34869739478958, 47.44689378757515, 47.545090180360724, 47.64328657314629, 47.741482965931866, 47.83967935871743, 47.93787575150301, 48.036072144288575, 48.13426853707415, 48.23246492985972, 48.33066132264529, 48.42885771543086, 48.52705410821643, 48.62525050100201, 48.723446893787575, 48.82164328657315, 48.91983967935872, 49.01803607214429, 49.11623246492986, 49.21442885771543, 49.312625250501, 49.410821643286575, 49.50901803607214, 49.607214428857716, 49.705410821643284, 49.80360721442886, 49.901803607214426, 50.0])\n", - " .range(['#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff']);\n", + " color_map_394cf7b9e904910b88f888dc532640c1.color = d3.scale.threshold()\n", + " .domain([0.0, 0.03006012024048096, 0.06012024048096192, 0.09018036072144289, 0.12024048096192384, 0.15030060120240482, 0.18036072144288579, 0.21042084168336672, 0.24048096192384769, 0.27054108216432865, 0.30060120240480964, 0.3306613226452906, 0.36072144288577157, 0.3907815631262525, 0.42084168336673344, 0.45090180360721444, 0.48096192384769537, 0.5110220440881763, 0.5410821643286573, 0.5711422845691383, 0.6012024048096193, 0.6312625250501002, 0.6613226452905812, 0.6913827655310621, 0.7214428857715431, 0.751503006012024, 0.781563126252505, 0.811623246492986, 0.8416833667334669, 0.8717434869739479, 0.9018036072144289, 0.9318637274549099, 0.9619238476953907, 0.9919839679358717, 1.0220440881763526, 1.0521042084168337, 1.0821643286573146, 1.1122244488977955, 1.1422845691382766, 1.1723446893787575, 1.2024048096192386, 1.2324649298597194, 1.2625250501002003, 1.2925851703406814, 1.3226452905811623, 1.3527054108216432, 1.3827655310621243, 1.4128256513026052, 1.4428857715430863, 1.4729458917835672, 1.503006012024048, 1.5330661322645291, 1.56312625250501, 1.593186372745491, 1.623246492985972, 1.653306613226453, 1.6833667334669338, 1.7134268537074149, 1.7434869739478958, 1.7735470941883769, 1.8036072144288577, 1.8336673346693386, 1.8637274549098197, 1.8937875751503006, 1.9238476953907815, 1.9539078156312626, 1.9839679358717435, 2.0140280561122244, 2.0440881763527052, 2.0741482965931866, 2.1042084168336674, 2.1342685370741483, 2.164328657314629, 2.19438877755511, 2.224448897795591, 2.2545090180360723, 2.284569138276553, 2.314629258517034, 2.344689378757515, 2.374749498997996, 2.404809619238477, 2.434869739478958, 2.464929859719439, 2.49498997995992, 2.5250501002004007, 2.555110220440882, 2.585170340681363, 2.6152304609218437, 2.6452905811623246, 2.6753507014028055, 2.7054108216432864, 2.7354709418837677, 2.7655310621242486, 2.7955911823647295, 2.8256513026052104, 2.8557114228456912, 2.8857715430861726, 2.9158316633266534, 2.9458917835671343, 2.975951903807615, 3.006012024048096, 3.036072144288577, 3.0661322645290583, 3.096192384769539, 3.12625250501002, 3.156312625250501, 3.186372745490982, 3.216432865731463, 3.246492985971944, 3.276553106212425, 3.306613226452906, 3.3366733466933867, 3.3667334669338675, 3.396793587174349, 3.4268537074148298, 3.4569138276553106, 3.4869739478957915, 3.5170340681362724, 3.5470941883767537, 3.5771543086172346, 3.6072144288577155, 3.6372745490981964, 3.6673346693386772, 3.697394789579158, 3.7274549098196395, 3.7575150300601203, 3.787575150300601, 3.817635270541082, 3.847695390781563, 3.8777555110220443, 3.907815631262525, 3.937875751503006, 3.967935871743487, 3.997995991983968, 4.028056112224449, 4.05811623246493, 4.0881763527054105, 4.118236472945892, 4.148296593186373, 4.1783567134268536, 4.208416833667335, 4.238476953907815, 4.268537074148297, 4.298597194388778, 4.328657314629258, 4.35871743486974, 4.38877755511022, 4.4188376753507015, 4.448897795591182, 4.478957915831663, 4.509018036072145, 4.539078156312625, 4.569138276553106, 4.599198396793587, 4.629258517034068, 4.659318637274549, 4.68937875751503, 4.719438877755511, 4.749498997995992, 4.779559118236473, 4.809619238476954, 4.839679358717435, 4.869739478957916, 4.8997995991983965, 4.929859719438878, 4.959919839679359, 4.98997995991984, 5.020040080160321, 5.050100200400801, 5.080160320641283, 5.110220440881764, 5.140280561122244, 5.170340681362726, 5.200400801603206, 5.2304609218436875, 5.260521042084168, 5.290581162324649, 5.320641282565131, 5.350701402805611, 5.380761523046092, 5.410821643286573, 5.440881763527054, 5.470941883767535, 5.501002004008016, 5.531062124248497, 5.561122244488978, 5.591182364729459, 5.62124248496994, 5.651302605210421, 5.681362725450902, 5.7114228456913825, 5.741482965931864, 5.771543086172345, 5.801603206412826, 5.831663326653307, 5.861723446893787, 5.891783567134269, 5.921843687374749, 5.95190380761523, 5.981963927855712, 6.012024048096192, 6.0420841683366735, 6.072144288577154, 6.102204408817635, 6.132264529058117, 6.162324649298597, 6.192384769539078, 6.222444889779559, 6.25250501002004, 6.282565130260521, 6.312625250501002, 6.342685370741483, 6.372745490981964, 6.402805611222445, 6.432865731462926, 6.462925851703407, 6.492985971943888, 6.5230460921843685, 6.55310621242485, 6.58316633266533, 6.613226452905812, 6.643286573146293, 6.673346693386773, 6.703406813627255, 6.733466933867735, 6.763527054108216, 6.793587174348698, 6.823647294589178, 6.8537074148296595, 6.88376753507014, 6.913827655310621, 6.943887775551103, 6.973947895791583, 7.004008016032064, 7.034068136272545, 7.064128256513026, 7.094188376753507, 7.124248496993988, 7.154308617234469, 7.18436873747495, 7.214428857715431, 7.244488977955911, 7.274549098196393, 7.304609218436874, 7.3346693386773545, 7.364729458917836, 7.394789579158316, 7.424849699398798, 7.454909819639279, 7.484969939879759, 7.515030060120241, 7.545090180360721, 7.575150300601202, 7.605210420841684, 7.635270541082164, 7.6653306613226455, 7.695390781563126, 7.725450901803607, 7.755511022044089, 7.785571142284569, 7.81563126252505, 7.845691382765531, 7.875751503006012, 7.905811623246493, 7.935871743486974, 7.965931863727455, 7.995991983967936, 8.026052104208416, 8.056112224448897, 8.086172344689379, 8.11623246492986, 8.146292585170341, 8.176352705410821, 8.206412825651302, 8.236472945891784, 8.266533066132265, 8.296593186372746, 8.326653306613226, 8.356713426853707, 8.386773547094188, 8.41683366733467, 8.446893787575151, 8.47695390781563, 8.507014028056112, 8.537074148296593, 8.567134268537075, 8.597194388777556, 8.627254509018035, 8.657314629258517, 8.687374749498998, 8.71743486973948, 8.74749498997996, 8.77755511022044, 8.807615230460922, 8.837675350701403, 8.867735470941884, 8.897795591182364, 8.927855711422845, 8.957915831663327, 8.987975951903808, 9.01803607214429, 9.048096192384769, 9.07815631262525, 9.108216432865731, 9.138276553106213, 9.168336673346694, 9.198396793587174, 9.228456913827655, 9.258517034068136, 9.288577154308618, 9.318637274549099, 9.348697394789578, 9.37875751503006, 9.408817635270541, 9.438877755511022, 9.468937875751504, 9.498997995991983, 9.529058116232465, 9.559118236472946, 9.589178356713427, 9.619238476953909, 9.649298597194388, 9.67935871743487, 9.70941883767535, 9.739478957915832, 9.769539078156313, 9.799599198396793, 9.829659318637274, 9.859719438877756, 9.889779559118237, 9.919839679358718, 9.949899799599198, 9.97995991983968, 10.01002004008016, 10.040080160320642, 10.070140280561123, 10.100200400801603, 10.130260521042084, 10.160320641282565, 10.190380761523047, 10.220440881763528, 10.250501002004007, 10.280561122244489, 10.31062124248497, 10.340681362725451, 10.370741482965931, 10.400801603206412, 10.430861723446894, 10.460921843687375, 10.490981963927856, 10.521042084168336, 10.551102204408817, 10.581162324649299, 10.61122244488978, 10.641282565130261, 10.67134268537074, 10.701402805611222, 10.731462925851703, 10.761523046092185, 10.791583166332666, 10.821643286573146, 10.851703406813627, 10.881763527054108, 10.91182364729459, 10.94188376753507, 10.97194388777555, 11.002004008016032, 11.032064128256513, 11.062124248496994, 11.092184368737476, 11.122244488977955, 11.152304609218437, 11.182364729458918, 11.2124248496994, 11.24248496993988, 11.27254509018036, 11.302605210420841, 11.332665330661323, 11.362725450901804, 11.392785571142285, 11.422845691382765, 11.452905811623246, 11.482965931863728, 11.513026052104209, 11.54308617234469, 11.57314629258517, 11.603206412825651, 11.633266533066132, 11.663326653306614, 11.693386773547093, 11.723446893787575, 11.753507014028056, 11.783567134268537, 11.813627254509019, 11.843687374749498, 11.87374749498998, 11.90380761523046, 11.933867735470942, 11.963927855711423, 11.993987975951903, 12.024048096192384, 12.054108216432866, 12.084168336673347, 12.114228456913828, 12.144288577154308, 12.17434869739479, 12.20440881763527, 12.234468937875752, 12.264529058116233, 12.294589178356713, 12.324649298597194, 12.354709418837675, 12.384769539078157, 12.414829659318638, 12.444889779559118, 12.474949899799599, 12.50501002004008, 12.535070140280562, 12.565130260521043, 12.595190380761522, 12.625250501002004, 12.655310621242485, 12.685370741482966, 12.715430861723448, 12.745490981963927, 12.775551102204409, 12.80561122244489, 12.835671342685371, 12.865731462925853, 12.895791583166332, 12.925851703406813, 12.955911823647295, 12.985971943887776, 13.016032064128256, 13.046092184368737, 13.076152304609218, 13.1062124248497, 13.136272545090181, 13.16633266533066, 13.196392785571142, 13.226452905811623, 13.256513026052104, 13.286573146292586, 13.316633266533065, 13.346693386773547, 13.376753507014028, 13.40681362725451, 13.43687374749499, 13.46693386773547, 13.496993987975952, 13.527054108216433, 13.557114228456914, 13.587174348697395, 13.617234468937875, 13.647294589178356, 13.677354709418838, 13.707414829659319, 13.7374749498998, 13.76753507014028, 13.797595190380761, 13.827655310621243, 13.857715430861724, 13.887775551102205, 13.917835671342685, 13.947895791583166, 13.977955911823647, 14.008016032064129, 14.03807615230461, 14.06813627254509, 14.098196392785571, 14.128256513026052, 14.158316633266534, 14.188376753507015, 14.218436873747494, 14.248496993987976, 14.278557114228457, 14.308617234468938, 14.338677354709418, 14.3687374749499, 14.39879759519038, 14.428857715430862, 14.458917835671343, 14.488977955911823, 14.519038076152304, 14.549098196392785, 14.579158316633267, 14.609218436873748, 14.639278557114228, 14.669338677354709, 14.69939879759519, 14.729458917835672, 14.759519038076153, 14.789579158316633, 14.819639278557114, 14.849699398797595, 14.879759519038076, 14.909819639278558, 14.939879759519037, 14.969939879759519, 15.0])\n", + " .range(['#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff']);\n", " \n", "\n", - " color_map_ce4ce94470caa1d8c1d21a497fd7600d.x = d3.scale.linear()\n", - " .domain([1.0, 50.0])\n", + " color_map_394cf7b9e904910b88f888dc532640c1.x = d3.scale.linear()\n", + " .domain([0.0, 15.0])\n", " .range([0, 450 - 50]);\n", "\n", - " color_map_ce4ce94470caa1d8c1d21a497fd7600d.legend = L.control({position: 'topright'});\n", - " color_map_ce4ce94470caa1d8c1d21a497fd7600d.legend.onAdd = function (map) {var div = L.DomUtil.create('div', 'legend'); return div};\n", - " color_map_ce4ce94470caa1d8c1d21a497fd7600d.legend.addTo(map_b6fdf68c9ec80e54b8b962d380fe1e24);\n", + " color_map_394cf7b9e904910b88f888dc532640c1.legend = L.control({position: 'topright'});\n", + " color_map_394cf7b9e904910b88f888dc532640c1.legend.onAdd = function (map) {var div = L.DomUtil.create('div', 'legend'); return div};\n", + " color_map_394cf7b9e904910b88f888dc532640c1.legend.addTo(map_946354e05bf1c24a463dc028f8dde936);\n", "\n", - " color_map_ce4ce94470caa1d8c1d21a497fd7600d.xAxis = d3.svg.axis()\n", - " .scale(color_map_ce4ce94470caa1d8c1d21a497fd7600d.x)\n", + " color_map_394cf7b9e904910b88f888dc532640c1.xAxis = d3.svg.axis()\n", + " .scale(color_map_394cf7b9e904910b88f888dc532640c1.x)\n", " .orient("top")\n", " .tickSize(1)\n", - " .tickValues([1.0, '', 10.8, '', 20.6, '', 30.4, '', 40.2, '', 50.0, '']);\n", + " .tickValues([0.0, '', 3.0, '', 6.0, '', 9.0, '', 12.0, '', 15.0, '']);\n", "\n", - " color_map_ce4ce94470caa1d8c1d21a497fd7600d.svg = d3.select(".legend.leaflet-control").append("svg")\n", + " color_map_394cf7b9e904910b88f888dc532640c1.svg = d3.select(".legend.leaflet-control").append("svg")\n", " .attr("id", 'legend')\n", " .attr("width", 450)\n", " .attr("height", 40);\n", "\n", - " color_map_ce4ce94470caa1d8c1d21a497fd7600d.g = color_map_ce4ce94470caa1d8c1d21a497fd7600d.svg.append("g")\n", + " color_map_394cf7b9e904910b88f888dc532640c1.g = color_map_394cf7b9e904910b88f888dc532640c1.svg.append("g")\n", " .attr("class", "key")\n", " .attr("fill", "black")\n", " .attr("transform", "translate(25,16)");\n", "\n", - " color_map_ce4ce94470caa1d8c1d21a497fd7600d.g.selectAll("rect")\n", - " .data(color_map_ce4ce94470caa1d8c1d21a497fd7600d.color.range().map(function(d, i) {\n", + " color_map_394cf7b9e904910b88f888dc532640c1.g.selectAll("rect")\n", + " .data(color_map_394cf7b9e904910b88f888dc532640c1.color.range().map(function(d, i) {\n", " return {\n", - " x0: i ? color_map_ce4ce94470caa1d8c1d21a497fd7600d.x(color_map_ce4ce94470caa1d8c1d21a497fd7600d.color.domain()[i - 1]) : color_map_ce4ce94470caa1d8c1d21a497fd7600d.x.range()[0],\n", - " x1: i < color_map_ce4ce94470caa1d8c1d21a497fd7600d.color.domain().length ? color_map_ce4ce94470caa1d8c1d21a497fd7600d.x(color_map_ce4ce94470caa1d8c1d21a497fd7600d.color.domain()[i]) : color_map_ce4ce94470caa1d8c1d21a497fd7600d.x.range()[1],\n", + " x0: i ? color_map_394cf7b9e904910b88f888dc532640c1.x(color_map_394cf7b9e904910b88f888dc532640c1.color.domain()[i - 1]) : color_map_394cf7b9e904910b88f888dc532640c1.x.range()[0],\n", + " x1: i < color_map_394cf7b9e904910b88f888dc532640c1.color.domain().length ? color_map_394cf7b9e904910b88f888dc532640c1.x(color_map_394cf7b9e904910b88f888dc532640c1.color.domain()[i]) : color_map_394cf7b9e904910b88f888dc532640c1.x.range()[1],\n", " z: d\n", " };\n", " }))\n", @@ -1300,19 +2527,19 @@ " .attr("width", function(d) { return d.x1 - d.x0; })\n", " .style("fill", function(d) { return d.z; });\n", "\n", - " color_map_ce4ce94470caa1d8c1d21a497fd7600d.g.call(color_map_ce4ce94470caa1d8c1d21a497fd7600d.xAxis).append("text")\n", + " color_map_394cf7b9e904910b88f888dc532640c1.g.call(color_map_394cf7b9e904910b88f888dc532640c1.xAxis).append("text")\n", " .attr("class", "caption")\n", " .attr("y", 21)\n", " .attr("fill", "black")\n", - " .text("count");\n", + " .text("Value");\n", "</script>\n", "</html>\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen>" ], "text/plain": [ - "" + "" ] }, - "execution_count": 11, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -1321,16 +2548,13 @@ "# Use the new plot_folium_from_VEDA_STAC function\n", "m = putils.plot_folium_from_VEDA_STAC(\n", " tiles_url_template=tiles[\"tiles\"][0],\n", - " center_coords=[43, -92],\n", - " zoom_level=6,\n", + " center_coords=[38, -72],\n", + " zoom_level=5,\n", " rescale=(vmin, vmax),\n", - " colormap_name=colormap_name,\n", - " capitalize_cmap=False, # to better match VEDA colors and matplotlib colors\n", - " layer_name=\"Blizzard Count\",\n", - " date=\"(1950-2021)\",\n", - " colorbar_caption=\"count\",\n", - " attribution=\"NCEI Blizzard Count (1950-2021)\",\n", - " tile_name=\"NCEI Blizzard Count (1950-2021)\",\n", + " layer_name=\"GOES TrueColor Imagery\",\n", + " date=\"January 4, 2018\",\n", + " attribution=\"GOES TrueColor Imagery\",\n", + " tile_name=\"GOES TrueColor Imagery\",\n", " opacity=0.8,\n", " height=\"800px\",\n", ")\n", @@ -1339,26 +2563,6 @@ "m" ] }, - { - "cell_type": "markdown", - "id": "35aaa435-c8bb-4912-b644-81b2a522b8df", - "metadata": {}, - "source": [ - "## Bomb Cyclogenesis\n", - "\n", - "A defining feature of many nor’easters is bomb cyclogenesis, or \"bombogenesis\", which occurs when a storm's central low pressure drops by at least 24 millibars in 24 hours, signifying rapid intensification of the system. The process is driven by the clash of cold air from the north and warm, humid air over the Atlantic. As the storm deepens, powerful winds spiral inward towards the central low pressure, enhancing snowfall rates and creating whiteout conditions. Bomb cyclogenesis often results in some of the most impactful nor’easters, which have been historically responsible for bringing record-breaking snowfall and hurricane-force winds to parts of the Northeast. The map shows GOES satellite imagery of one example of a Nor'easter undergoing bomb cyclogenesis off the East Coast of the USA on January 4, 2018." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "9693e891-2cfe-4aa2-8465-6a4d3b3566f6", - "metadata": {}, - "outputs": [], - "source": [ - "### MAKE VIS EXAMPLE OF GOES IMAGERY" - ] - }, { "cell_type": "markdown", "id": "5175b007-b727-411a-a825-98639399523b", @@ -1371,7 +2575,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 6, "id": "1d44a2bb-d651-43db-a7e2-2c78a26b51ab", "metadata": {}, "outputs": [ @@ -1397,7 +2601,7 @@ " <meta name="viewport" content="width=device-width,\n", " initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />\n", " <style>\n", - " #map_7e0ff25a9fb2d240daabfd5729ff169a {\n", + " #map_d7874457a0e160de81b493cb48f8af69 {\n", " position: relative;\n", " width: 100.0%;\n", " height: 800.0px;\n", @@ -1451,14 +2655,14 @@ " </div>\n", " \n", " \n", - " <div class="folium-map" id="map_7e0ff25a9fb2d240daabfd5729ff169a" ></div>\n", + " <div class="folium-map" id="map_d7874457a0e160de81b493cb48f8af69" ></div>\n", " \n", "</body>\n", "<script>\n", " \n", " \n", - " var map_7e0ff25a9fb2d240daabfd5729ff169a = L.map(\n", - " "map_7e0ff25a9fb2d240daabfd5729ff169a",\n", + " var map_d7874457a0e160de81b493cb48f8af69 = L.map(\n", + " "map_d7874457a0e160de81b493cb48f8af69",\n", " {\n", " center: [40.5, -103.0],\n", " crs: L.CRS.EPSG3857,\n", @@ -1470,21 +2674,21 @@ "\n", " }\n", " );\n", - " L.control.scale().addTo(map_7e0ff25a9fb2d240daabfd5729ff169a);\n", + " L.control.scale().addTo(map_d7874457a0e160de81b493cb48f8af69);\n", "\n", " \n", "\n", " \n", " \n", - " var tile_layer_a4266d0f2d414def6715a36d9b42dbd0 = L.tileLayer(\n", - " "https://tile.openstreetmap.org/{z}/{x}/{y}.png",\n", + " var tile_layer_f83b03b877ff7f7210dd8643b75e8cdc = L.tileLayer(\n", + " "https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png",\n", " {\n", " "minZoom": 0,\n", - " "maxZoom": 19,\n", - " "maxNativeZoom": 19,\n", + " "maxZoom": 20,\n", + " "maxNativeZoom": 20,\n", " "noWrap": false,\n", - " "attribution": "\\u0026copy; \\u003ca href=\\"https://www.openstreetmap.org/copyright\\"\\u003eOpenStreetMap\\u003c/a\\u003e contributors",\n", - " "subdomains": "abc",\n", + " "attribution": "\\u0026copy; \\u003ca href=\\"https://www.openstreetmap.org/copyright\\"\\u003eOpenStreetMap\\u003c/a\\u003e contributors \\u0026copy; \\u003ca href=\\"https://carto.com/attributions\\"\\u003eCARTO\\u003c/a\\u003e",\n", + " "subdomains": "abcd",\n", " "detectRetina": false,\n", " "tms": false,\n", " "opacity": 1,\n", @@ -1493,10 +2697,10 @@ " );\n", " \n", " \n", - " tile_layer_a4266d0f2d414def6715a36d9b42dbd0.addTo(map_7e0ff25a9fb2d240daabfd5729ff169a);\n", + " tile_layer_f83b03b877ff7f7210dd8643b75e8cdc.addTo(map_d7874457a0e160de81b493cb48f8af69);\n", " \n", " \n", - " var tile_layer_6741a9503fe00b6e66383333f157a183 = L.tileLayer(\n", + " var tile_layer_60b72b55ad6d93b916ebe03fc3a5f74c = L.tileLayer(\n", " "https://openveda.cloud/api/raster/collections/blizzard-count/items/StormEvents_Blizzards_cog_2021-12-31/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=cog_default\\u0026color_formula=gamma+r+1.05\\u0026colormap_name=turbo\\u0026rescale=1%2C50",\n", " {\n", " "minZoom": 0,\n", @@ -1513,66 +2717,66 @@ " );\n", " \n", " \n", - " tile_layer_6741a9503fe00b6e66383333f157a183.addTo(map_7e0ff25a9fb2d240daabfd5729ff169a);\n", + " tile_layer_60b72b55ad6d93b916ebe03fc3a5f74c.addTo(map_d7874457a0e160de81b493cb48f8af69);\n", " \n", " \n", - " var layer_control_fbbfcd2ac7fde76b846f5c3cd21f262a_layers = {\n", + " var layer_control_016ed6fa89f98a89e5e7745cca44da95_layers = {\n", " base_layers : {\n", - " "openstreetmap" : tile_layer_a4266d0f2d414def6715a36d9b42dbd0,\n", + " "CartoDB Positron" : tile_layer_f83b03b877ff7f7210dd8643b75e8cdc,\n", " },\n", " overlays : {\n", - " "NCEI Blizzard Count (1950-2021)" : tile_layer_6741a9503fe00b6e66383333f157a183,\n", + " "NCEI Blizzard Count (1950-2021)" : tile_layer_60b72b55ad6d93b916ebe03fc3a5f74c,\n", " },\n", " };\n", - " let layer_control_fbbfcd2ac7fde76b846f5c3cd21f262a = L.control.layers(\n", - " layer_control_fbbfcd2ac7fde76b846f5c3cd21f262a_layers.base_layers,\n", - " layer_control_fbbfcd2ac7fde76b846f5c3cd21f262a_layers.overlays,\n", + " let layer_control_016ed6fa89f98a89e5e7745cca44da95 = L.control.layers(\n", + " layer_control_016ed6fa89f98a89e5e7745cca44da95_layers.base_layers,\n", + " layer_control_016ed6fa89f98a89e5e7745cca44da95_layers.overlays,\n", " {\n", " "position": "topright",\n", " "collapsed": true,\n", " "autoZIndex": true,\n", "}\n", - " ).addTo(map_7e0ff25a9fb2d240daabfd5729ff169a);\n", + " ).addTo(map_d7874457a0e160de81b493cb48f8af69);\n", "\n", " \n", " \n", - " var color_map_76ad3f04ae62b2722fa960cba37500b7 = {};\n", + " var color_map_4eb0326b097beac93fc2ab0415ea52f0 = {};\n", "\n", " \n", - " color_map_76ad3f04ae62b2722fa960cba37500b7.color = d3.scale.threshold()\n", + " color_map_4eb0326b097beac93fc2ab0415ea52f0.color = d3.scale.threshold()\n", " .domain([1.0, 1.0981963927855711, 1.1963927855711423, 1.2945891783567134, 1.3927855711422845, 1.4909819639278556, 1.5891783567134268, 1.6873747494989981, 1.785571142284569, 1.8837675350701404, 1.9819639278557113, 2.0801603206412826, 2.1783567134268536, 2.276553106212425, 2.3747494989979963, 2.472945891783567, 2.571142284569138, 2.6693386773547094, 2.7675350701402808, 2.8657314629258517, 2.9639278557114226, 3.062124248496994, 3.1603206412825653, 3.258517034068136, 3.3567134268537075, 3.4549098196392785, 3.55310621242485, 3.6513026052104207, 3.749498997995992, 3.847695390781563, 3.9458917835671343, 4.044088176352705, 4.142284569138276, 4.240480961923847, 4.338677354709419, 4.436873747494991, 4.5350701402805615, 4.6332665330661325, 4.731462925851703, 4.829659318637274, 4.927855711422845, 5.026052104208417, 5.124248496993988, 5.222444889779559, 5.320641282565131, 5.4188376753507015, 5.517034068136272, 5.615230460921843, 5.713426853707415, 5.811623246492986, 5.909819639278557, 6.008016032064128, 6.1062124248497, 6.2044088176352705, 6.302605210420841, 6.400801603206413, 6.498997995991984, 6.597194388777555, 6.695390781563126, 6.793587174348698, 6.891783567134269, 6.98997995991984, 7.0881763527054105, 7.186372745490982, 7.284569138276553, 7.382765531062124, 7.480961923847695, 7.579158316633267, 7.677354709418838, 7.775551102204409, 7.87374749498998, 7.971943887775551, 8.070140280561123, 8.168336673346694, 8.266533066132265, 8.364729458917836, 8.462925851703407, 8.561122244488978, 8.659318637274549, 8.75751503006012, 8.85571142284569, 8.953907815631261, 9.052104208416834, 9.150300601202405, 9.248496993987976, 9.346693386773547, 9.444889779559118, 9.54308617234469, 9.641282565130261, 9.739478957915832, 9.837675350701403, 9.935871743486974, 10.034068136272545, 10.132264529058116, 10.230460921843687, 10.32865731462926, 10.42685370741483, 10.525050100200401, 10.623246492985972, 10.721442885771543, 10.819639278557114, 10.917835671342685, 11.016032064128256, 11.114228456913828, 11.2124248496994, 11.31062124248497, 11.408817635270541, 11.507014028056112, 11.605210420841683, 11.703406813627254, 11.801603206412826, 11.899799599198397, 11.997995991983968, 12.09619238476954, 12.19438877755511, 12.292585170340681, 12.390781563126252, 12.488977955911823, 12.587174348697395, 12.685370741482966, 12.783567134268537, 12.881763527054108, 12.97995991983968, 13.07815631262525, 13.176352705410821, 13.274549098196394, 13.372745490981965, 13.470941883767535, 13.569138276553106, 13.667334669338677, 13.765531062124248, 13.863727454909819, 13.96192384769539, 14.060120240480963, 14.158316633266534, 14.256513026052104, 14.354709418837675, 14.452905811623246, 14.551102204408817, 14.649298597194388, 14.74749498997996, 14.845691382765532, 14.943887775551103, 15.042084168336673, 15.140280561122244, 15.238476953907815, 15.336673346693386, 15.434869739478957, 15.53306613226453, 15.6312625250501, 15.729458917835672, 15.827655310621243, 15.925851703406813, 16.024048096192384, 16.122244488977955, 16.22044088176353, 16.318637274549097, 16.41683366733467, 16.51503006012024, 16.613226452905813, 16.71142284569138, 16.809619238476955, 16.907815631262523, 17.006012024048097, 17.104208416833668, 17.20240480961924, 17.30060120240481, 17.39879759519038, 17.49699398797595, 17.595190380761522, 17.693386773547093, 17.791583166332664, 17.889779559118235, 17.987975951903806, 18.08617234468938, 18.18436873747495, 18.282565130260522, 18.380761523046093, 18.478957915831664, 18.577154308617235, 18.675350701402806, 18.773547094188377, 18.871743486973948, 18.96993987975952, 19.06813627254509, 19.16633266533066, 19.26452905811623, 19.362725450901802, 19.460921843687373, 19.559118236472944, 19.65731462925852, 19.75551102204409, 19.85370741482966, 19.95190380761523, 20.050100200400802, 20.148296593186373, 20.246492985971944, 20.344689378757515, 20.442885771543086, 20.541082164328657, 20.639278557114228, 20.7374749498998, 20.83567134268537, 20.93386773547094, 21.03206412825651, 21.130260521042086, 21.228456913827657, 21.326653306613228, 21.4248496993988, 21.52304609218437, 21.62124248496994, 21.71943887775551, 21.817635270541082, 21.915831663326653, 22.014028056112224, 22.112224448897795, 22.210420841683366, 22.308617234468937, 22.406813627254508, 22.50501002004008, 22.603206412825653, 22.701402805611224, 22.799599198396795, 22.897795591182366, 22.995991983967937, 23.094188376753507, 23.19238476953908, 23.29058116232465, 23.38877755511022, 23.48697394789579, 23.585170340681362, 23.683366733466933, 23.781563126252504, 23.879759519038075, 23.977955911823646, 24.07615230460922, 24.17434869739479, 24.272545090180362, 24.370741482965933, 24.468937875751504, 24.567134268537075, 24.665330661322646, 24.763527054108216, 24.861723446893787, 24.95991983967936, 25.05811623246493, 25.1563126252505, 25.25450901803607, 25.352705410821642, 25.450901803607213, 25.549098196392787, 25.647294589178358, 25.74549098196393, 25.8436873747495, 25.94188376753507, 26.04008016032064, 26.138276553106213, 26.236472945891784, 26.334669338677354, 26.432865731462925, 26.531062124248496, 26.629258517034067, 26.727454909819638, 26.82565130260521, 26.92384769539078, 27.022044088176354, 27.120240480961925, 27.218436873747496, 27.316633266533067, 27.414829659318638, 27.51302605210421, 27.61122244488978, 27.70941883767535, 27.80761523046092, 27.905811623246493, 28.004008016032063, 28.102204408817634, 28.200400801603205, 28.298597194388776, 28.396793587174347, 28.49498997995992, 28.593186372745492, 28.691382765531063, 28.789579158316634, 28.887775551102205, 28.985971943887776, 29.084168336673347, 29.182364729458918, 29.28056112224449, 29.37875751503006, 29.47695390781563, 29.5751503006012, 29.673346693386772, 29.771543086172343, 29.869739478957914, 29.96793587174349, 30.06613226452906, 30.16432865731463, 30.2625250501002, 30.360721442885772, 30.458917835671343, 30.557114228456914, 30.655310621242485, 30.753507014028056, 30.851703406813627, 30.949899799599198, 31.04809619238477, 31.14629258517034, 31.24448897795591, 31.34268537074148, 31.440881763527056, 31.539078156312627, 31.637274549098198, 31.73547094188377, 31.83366733466934, 31.93186372745491, 32.03006012024048, 32.12825651302605, 32.22645290581163, 32.324649298597194, 32.42284569138276, 32.521042084168336, 32.61923847695391, 32.71743486973948, 32.815631262525045, 32.91382765531062, 33.012024048096194, 33.11022044088176, 33.208416833667336, 33.3066132264529, 33.40480961923848, 33.503006012024045, 33.60120240480962, 33.699398797595194, 33.79759519038076, 33.895791583166336, 33.9939879759519, 34.09218436873748, 34.190380761523045, 34.28857715430862, 34.38677354709419, 34.48496993987976, 34.58316633266533, 34.6813627254509, 34.77955911823647, 34.877755511022045, 34.97595190380761, 35.07414829659319, 35.17234468937876, 35.27054108216433, 35.3687374749499, 35.46693386773547, 35.565130260521045, 35.66332665330661, 35.76152304609219, 35.859719438877754, 35.95791583166333, 36.056112224448896, 36.15430861723447, 36.25250501002004, 36.35070140280561, 36.44889779559118, 36.547094188376754, 36.64529058116233, 36.743486973947896, 36.84168336673347, 36.93987975951904, 37.03807615230461, 37.13627254509018, 37.234468937875754, 37.33266533066132, 37.430861723446895, 37.52905811623246, 37.62725450901804, 37.725450901803605, 37.82364729458918, 37.921843687374746, 38.02004008016032, 38.11823647294589, 38.21643286573146, 38.31462925851704, 38.412825651302605, 38.51102204408818, 38.609218436873746, 38.70741482965932, 38.80561122244489, 38.90380761523046, 39.00200400801603, 39.100200400801604, 39.19839679358717, 39.296593186372746, 39.394789579158314, 39.49298597194389, 39.591182364729455, 39.68937875751503, 39.787575150300604, 39.88577154308617, 39.983967935871746, 40.08216432865731, 40.18036072144289, 40.278557114228455, 40.37675350701403, 40.4749498997996, 40.57314629258517, 40.67134268537074, 40.76953907815631, 40.86773547094188, 40.965931863727455, 41.06412825651302, 41.1623246492986, 41.26052104208417, 41.35871743486974, 41.45691382765531, 41.55511022044088, 41.653306613226455, 41.75150300601202, 41.8496993987976, 41.947895791583164, 42.04609218436874, 42.144288577154306, 42.24248496993988, 42.34068136272545, 42.43887775551102, 42.53707414829659, 42.635270541082164, 42.73346693386774, 42.831663326653306, 42.92985971943888, 43.02805611222445, 43.12625250501002, 43.22444889779559, 43.322645290581164, 43.42084168336673, 43.519038076152306, 43.61723446893787, 43.71543086172345, 43.813627254509015, 43.91182364729459, 44.01002004008016, 44.10821643286573, 44.206412825651306, 44.30460921843687, 44.40280561122245, 44.501002004008015, 44.59919839679359, 44.69739478957916, 44.79559118236473, 44.8937875751503, 44.99198396793587, 45.09018036072144, 45.188376753507015, 45.28657314629258, 45.38476953907816, 45.482965931863724, 45.5811623246493, 45.67935871743487, 45.77755511022044, 45.875751503006015, 45.97394789579158, 46.07214428857716, 46.170340681362724, 46.2685370741483, 46.366733466933866, 46.46492985971944, 46.56312625250501, 46.66132264529058, 46.75951903807615, 46.857715430861724, 46.95591182364729, 47.054108216432866, 47.15230460921844, 47.25050100200401, 47.34869739478958, 47.44689378757515, 47.545090180360724, 47.64328657314629, 47.741482965931866, 47.83967935871743, 47.93787575150301, 48.036072144288575, 48.13426853707415, 48.23246492985972, 48.33066132264529, 48.42885771543086, 48.52705410821643, 48.62525050100201, 48.723446893787575, 48.82164328657315, 48.91983967935872, 49.01803607214429, 49.11623246492986, 49.21442885771543, 49.312625250501, 49.410821643286575, 49.50901803607214, 49.607214428857716, 49.705410821643284, 49.80360721442886, 49.901803607214426, 50.0])\n", " .range(['#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff']);\n", " \n", "\n", - " color_map_76ad3f04ae62b2722fa960cba37500b7.x = d3.scale.linear()\n", + " color_map_4eb0326b097beac93fc2ab0415ea52f0.x = d3.scale.linear()\n", " .domain([1.0, 50.0])\n", " .range([0, 450 - 50]);\n", "\n", - " color_map_76ad3f04ae62b2722fa960cba37500b7.legend = L.control({position: 'topright'});\n", - " color_map_76ad3f04ae62b2722fa960cba37500b7.legend.onAdd = function (map) {var div = L.DomUtil.create('div', 'legend'); return div};\n", - " color_map_76ad3f04ae62b2722fa960cba37500b7.legend.addTo(map_7e0ff25a9fb2d240daabfd5729ff169a);\n", + " color_map_4eb0326b097beac93fc2ab0415ea52f0.legend = L.control({position: 'topright'});\n", + " color_map_4eb0326b097beac93fc2ab0415ea52f0.legend.onAdd = function (map) {var div = L.DomUtil.create('div', 'legend'); return div};\n", + " color_map_4eb0326b097beac93fc2ab0415ea52f0.legend.addTo(map_d7874457a0e160de81b493cb48f8af69);\n", "\n", - " color_map_76ad3f04ae62b2722fa960cba37500b7.xAxis = d3.svg.axis()\n", - " .scale(color_map_76ad3f04ae62b2722fa960cba37500b7.x)\n", + " color_map_4eb0326b097beac93fc2ab0415ea52f0.xAxis = d3.svg.axis()\n", + " .scale(color_map_4eb0326b097beac93fc2ab0415ea52f0.x)\n", " .orient("top")\n", " .tickSize(1)\n", " .tickValues([1.0, '', 10.8, '', 20.6, '', 30.4, '', 40.2, '', 50.0, '']);\n", "\n", - " color_map_76ad3f04ae62b2722fa960cba37500b7.svg = d3.select(".legend.leaflet-control").append("svg")\n", + " color_map_4eb0326b097beac93fc2ab0415ea52f0.svg = d3.select(".legend.leaflet-control").append("svg")\n", " .attr("id", 'legend')\n", " .attr("width", 450)\n", " .attr("height", 40);\n", "\n", - " color_map_76ad3f04ae62b2722fa960cba37500b7.g = color_map_76ad3f04ae62b2722fa960cba37500b7.svg.append("g")\n", + " color_map_4eb0326b097beac93fc2ab0415ea52f0.g = color_map_4eb0326b097beac93fc2ab0415ea52f0.svg.append("g")\n", " .attr("class", "key")\n", " .attr("fill", "black")\n", " .attr("transform", "translate(25,16)");\n", "\n", - " color_map_76ad3f04ae62b2722fa960cba37500b7.g.selectAll("rect")\n", - " .data(color_map_76ad3f04ae62b2722fa960cba37500b7.color.range().map(function(d, i) {\n", + " color_map_4eb0326b097beac93fc2ab0415ea52f0.g.selectAll("rect")\n", + " .data(color_map_4eb0326b097beac93fc2ab0415ea52f0.color.range().map(function(d, i) {\n", " return {\n", - " x0: i ? color_map_76ad3f04ae62b2722fa960cba37500b7.x(color_map_76ad3f04ae62b2722fa960cba37500b7.color.domain()[i - 1]) : color_map_76ad3f04ae62b2722fa960cba37500b7.x.range()[0],\n", - " x1: i < color_map_76ad3f04ae62b2722fa960cba37500b7.color.domain().length ? color_map_76ad3f04ae62b2722fa960cba37500b7.x(color_map_76ad3f04ae62b2722fa960cba37500b7.color.domain()[i]) : color_map_76ad3f04ae62b2722fa960cba37500b7.x.range()[1],\n", + " x0: i ? color_map_4eb0326b097beac93fc2ab0415ea52f0.x(color_map_4eb0326b097beac93fc2ab0415ea52f0.color.domain()[i - 1]) : color_map_4eb0326b097beac93fc2ab0415ea52f0.x.range()[0],\n", + " x1: i < color_map_4eb0326b097beac93fc2ab0415ea52f0.color.domain().length ? color_map_4eb0326b097beac93fc2ab0415ea52f0.x(color_map_4eb0326b097beac93fc2ab0415ea52f0.color.domain()[i]) : color_map_4eb0326b097beac93fc2ab0415ea52f0.x.range()[1],\n", " z: d\n", " };\n", " }))\n", @@ -1582,7 +2786,7 @@ " .attr("width", function(d) { return d.x1 - d.x0; })\n", " .style("fill", function(d) { return d.z; });\n", "\n", - " color_map_76ad3f04ae62b2722fa960cba37500b7.g.call(color_map_76ad3f04ae62b2722fa960cba37500b7.xAxis).append("text")\n", + " color_map_4eb0326b097beac93fc2ab0415ea52f0.g.call(color_map_4eb0326b097beac93fc2ab0415ea52f0.xAxis).append("text")\n", " .attr("class", "caption")\n", " .attr("y", 21)\n", " .attr("fill", "black")\n", @@ -1591,10 +2795,10 @@ "</html>\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen>" ], "text/plain": [ - "" + "" ] }, - "execution_count": 18, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -1682,7 +2886,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 3, "id": "25ebdc80-cf61-4fbd-9152-e014912a64fa", "metadata": {}, "outputs": [ @@ -2817,7 +4021,7 @@ "" ] }, - "execution_count": 21, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -2848,7 +4052,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 4, "id": "02b3e40f-9870-4358-80fb-ff54da52c1e3", "metadata": {}, "outputs": [ @@ -2856,13 +4060,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'tilejson': '2.2.0', 'version': '1.0.0', 'scheme': 'xyz', 'tiles': ['https://openveda.cloud/api/raster/collections/blizzard-snowfall/items/RSI_Snowfall_cog_1950-11-26/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=cog_default&color_formula=gamma+r+1.05&colormap_name=magma&rescale=6%2C24'], 'minzoom': 0, 'maxzoom': 24, 'bounds': [-90.93914952199998, 35.37851607400006, -74.21937348903998, 47.56494175400006], 'center': [-82.57926150551998, 41.47172891400006, 0]}\n" + "{'tilejson': '2.2.0', 'version': '1.0.0', 'scheme': 'xyz', 'tiles': ['https://openveda.cloud/api/raster/collections/blizzard-snowfall/items/RSI_Snowfall_cog_1950-11-26/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=cog_default&color_formula=gamma+r+1.05&colormap_name=tab20&rescale=6%2C24'], 'minzoom': 0, 'maxzoom': 24, 'bounds': [-90.93914952199998, 35.37851607400006, -74.21937348903998, 47.56494175400006], 'center': [-82.57926150551998, 41.47172891400006, 0]}\n" ] } ], "source": [ "# ── VEDA Tile Request ─────────────────────────────────────────────────────────────────────────────────────\n", - "colormap_name = \"magma\"\n", + "colormap_name = \"tab20\"\n", "\n", "# Build endpoint URL without worrying about trailing slashes\n", "response = requests.get(\n", @@ -2881,7 +4085,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 6, "id": "066acb2b-873c-4811-bddf-324d6b3cb6d0", "metadata": {}, "outputs": [ @@ -2907,7 +4111,7 @@ " <meta name="viewport" content="width=device-width,\n", " initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />\n", " <style>\n", - " #map_aa1b90d53f98b820d9d6d33a9f920613 {\n", + " #map_f78f342a1019ef502685054b5d7f9c30 {\n", " position: relative;\n", " width: 100.0%;\n", " height: 800.0px;\n", @@ -2961,14 +4165,14 @@ " </div>\n", " \n", " \n", - " <div class="folium-map" id="map_aa1b90d53f98b820d9d6d33a9f920613" ></div>\n", + " <div class="folium-map" id="map_f78f342a1019ef502685054b5d7f9c30" ></div>\n", " \n", "</body>\n", "<script>\n", " \n", " \n", - " var map_aa1b90d53f98b820d9d6d33a9f920613 = L.map(\n", - " "map_aa1b90d53f98b820d9d6d33a9f920613",\n", + " var map_f78f342a1019ef502685054b5d7f9c30 = L.map(\n", + " "map_f78f342a1019ef502685054b5d7f9c30",\n", " {\n", " center: [41.0, -85.0],\n", " crs: L.CRS.EPSG3857,\n", @@ -2980,21 +4184,21 @@ "\n", " }\n", " );\n", - " L.control.scale().addTo(map_aa1b90d53f98b820d9d6d33a9f920613);\n", + " L.control.scale().addTo(map_f78f342a1019ef502685054b5d7f9c30);\n", "\n", " \n", "\n", " \n", " \n", - " var tile_layer_0e2ae0901cf8c5fba1e9ff7bdee3cde1 = L.tileLayer(\n", - " "https://tile.openstreetmap.org/{z}/{x}/{y}.png",\n", + " var tile_layer_3900f2f9edaf61067bbcd5f0a0c6ceda = L.tileLayer(\n", + " "https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png",\n", " {\n", " "minZoom": 0,\n", - " "maxZoom": 19,\n", - " "maxNativeZoom": 19,\n", + " "maxZoom": 20,\n", + " "maxNativeZoom": 20,\n", " "noWrap": false,\n", - " "attribution": "\\u0026copy; \\u003ca href=\\"https://www.openstreetmap.org/copyright\\"\\u003eOpenStreetMap\\u003c/a\\u003e contributors",\n", - " "subdomains": "abc",\n", + " "attribution": "\\u0026copy; \\u003ca href=\\"https://www.openstreetmap.org/copyright\\"\\u003eOpenStreetMap\\u003c/a\\u003e contributors \\u0026copy; \\u003ca href=\\"https://carto.com/attributions\\"\\u003eCARTO\\u003c/a\\u003e",\n", + " "subdomains": "abcd",\n", " "detectRetina": false,\n", " "tms": false,\n", " "opacity": 1,\n", @@ -3003,11 +4207,11 @@ " );\n", " \n", " \n", - " tile_layer_0e2ae0901cf8c5fba1e9ff7bdee3cde1.addTo(map_aa1b90d53f98b820d9d6d33a9f920613);\n", + " tile_layer_3900f2f9edaf61067bbcd5f0a0c6ceda.addTo(map_f78f342a1019ef502685054b5d7f9c30);\n", " \n", " \n", - " var tile_layer_0f52854a772afa998afd74822a527c6f = L.tileLayer(\n", - " "https://openveda.cloud/api/raster/collections/blizzard-snowfall/items/RSI_Snowfall_cog_1950-11-26/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=cog_default\\u0026color_formula=gamma+r+1.05\\u0026colormap_name=magma\\u0026rescale=6%2C24",\n", + " var tile_layer_13ecc5815f00d423e8982f2a821e0c89 = L.tileLayer(\n", + " "https://openveda.cloud/api/raster/collections/blizzard-snowfall/items/RSI_Snowfall_cog_1950-11-26/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=cog_default\\u0026color_formula=gamma+r+1.05\\u0026colormap_name=tab20\\u0026rescale=6%2C24",\n", " {\n", " "minZoom": 0,\n", " "maxZoom": 18,\n", @@ -3023,66 +4227,66 @@ " );\n", " \n", " \n", - " tile_layer_0f52854a772afa998afd74822a527c6f.addTo(map_aa1b90d53f98b820d9d6d33a9f920613);\n", + " tile_layer_13ecc5815f00d423e8982f2a821e0c89.addTo(map_f78f342a1019ef502685054b5d7f9c30);\n", " \n", " \n", - " var layer_control_5ca3a60ddf7acf94e957226f4b3bde43_layers = {\n", + " var layer_control_405336acd076ee7694a4b8514ab47dfd_layers = {\n", " base_layers : {\n", - " "openstreetmap" : tile_layer_0e2ae0901cf8c5fba1e9ff7bdee3cde1,\n", + " "CartoDB Positron" : tile_layer_3900f2f9edaf61067bbcd5f0a0c6ceda,\n", " },\n", " overlays : {\n", - " "Regional Snowfall Index (RSI) Accumulated Snowfall" : tile_layer_0f52854a772afa998afd74822a527c6f,\n", + " "Regional Snowfall Index (RSI) Accumulated Snowfall" : tile_layer_13ecc5815f00d423e8982f2a821e0c89,\n", " },\n", " };\n", - " let layer_control_5ca3a60ddf7acf94e957226f4b3bde43 = L.control.layers(\n", - " layer_control_5ca3a60ddf7acf94e957226f4b3bde43_layers.base_layers,\n", - " layer_control_5ca3a60ddf7acf94e957226f4b3bde43_layers.overlays,\n", + " let layer_control_405336acd076ee7694a4b8514ab47dfd = L.control.layers(\n", + " layer_control_405336acd076ee7694a4b8514ab47dfd_layers.base_layers,\n", + " layer_control_405336acd076ee7694a4b8514ab47dfd_layers.overlays,\n", " {\n", " "position": "topright",\n", " "collapsed": true,\n", " "autoZIndex": true,\n", "}\n", - " ).addTo(map_aa1b90d53f98b820d9d6d33a9f920613);\n", + " ).addTo(map_f78f342a1019ef502685054b5d7f9c30);\n", "\n", " \n", " \n", - " var color_map_b898fa53e7311fa02ccc6e932361e30c = {};\n", + " var color_map_db9b2989c01949e720adfb07bf3decb9 = {};\n", "\n", " \n", - " color_map_b898fa53e7311fa02ccc6e932361e30c.color = d3.scale.threshold()\n", + " color_map_db9b2989c01949e720adfb07bf3decb9.color = d3.scale.threshold()\n", " .domain([6.0, 6.036072144288577, 6.072144288577154, 6.108216432865731, 6.144288577154309, 6.180360721442886, 6.216432865731463, 6.25250501002004, 6.2885771543086175, 6.324649298597194, 6.3607214428857715, 6.396793587174349, 6.432865731462925, 6.468937875751503, 6.50501002004008, 6.541082164328658, 6.577154308617234, 6.613226452905812, 6.649298597194389, 6.685370741482966, 6.721442885771543, 6.75751503006012, 6.793587174348698, 6.829659318637274, 6.865731462925852, 6.901803607214429, 6.937875751503006, 6.973947895791583, 7.01002004008016, 7.046092184368737, 7.082164328657314, 7.118236472945892, 7.154308617234469, 7.190380761523047, 7.226452905811623, 7.2625250501002006, 7.298597194388778, 7.3346693386773545, 7.370741482965932, 7.406813627254509, 7.442885771543086, 7.478957915831663, 7.515030060120241, 7.551102204408817, 7.587174348697395, 7.623246492985972, 7.659318637274549, 7.695390781563126, 7.731462925851703, 7.767535070140281, 7.803607214428858, 7.839679358717435, 7.875751503006012, 7.9118236472945895, 7.947895791583166, 7.9839679358717435, 8.02004008016032, 8.056112224448897, 8.092184368737474, 8.128256513026052, 8.164328657314629, 8.200400801603207, 8.236472945891784, 8.27254509018036, 8.308617234468938, 8.344689378757515, 8.380761523046093, 8.41683366733467, 8.452905811623246, 8.488977955911825, 8.525050100200401, 8.561122244488978, 8.597194388777556, 8.633266533066132, 8.669338677354709, 8.705410821643287, 8.741482965931864, 8.77755511022044, 8.813627254509019, 8.849699398797595, 8.885771543086172, 8.92184368737475, 8.957915831663327, 8.993987975951903, 9.030060120240481, 9.066132264529058, 9.102204408817634, 9.138276553106213, 9.17434869739479, 9.210420841683366, 9.246492985971944, 9.28256513026052, 9.318637274549099, 9.354709418837675, 9.390781563126252, 9.42685370741483, 9.462925851703407, 9.498997995991985, 9.535070140280562, 9.571142284569138, 9.607214428857716, 9.643286573146293, 9.67935871743487, 9.715430861723448, 9.751503006012024, 9.7875751503006, 9.823647294589179, 9.859719438877756, 9.895791583166332, 9.93186372745491, 9.967935871743487, 10.004008016032063, 10.040080160320642, 10.076152304609218, 10.112224448897795, 10.148296593186373, 10.18436873747495, 10.220440881763526, 10.256513026052104, 10.292585170340681, 10.328657314629258, 10.364729458917836, 10.400801603206414, 10.436873747494989, 10.472945891783567, 10.509018036072145, 10.54509018036072, 10.581162324649299, 10.617234468937877, 10.653306613226453, 10.68937875751503, 10.725450901803608, 10.761523046092185, 10.797595190380761, 10.83366733466934, 10.869739478957916, 10.905811623246493, 10.94188376753507, 10.977955911823647, 11.014028056112224, 11.050100200400802, 11.086172344689379, 11.122244488977955, 11.158316633266534, 11.19438877755511, 11.230460921843687, 11.266533066132265, 11.302605210420841, 11.338677354709418, 11.374749498997996, 11.410821643286573, 11.44689378757515, 11.482965931863728, 11.519038076152306, 11.55511022044088, 11.591182364729459, 11.627254509018037, 11.663326653306612, 11.69939879759519, 11.735470941883769, 11.771543086172345, 11.807615230460922, 11.8436873747495, 11.879759519038076, 11.915831663326653, 11.951903807615231, 11.987975951903808, 12.024048096192384, 12.060120240480963, 12.09619238476954, 12.132264529058116, 12.168336673346694, 12.20440881763527, 12.240480961923847, 12.276553106212425, 12.312625250501002, 12.348697394789578, 12.384769539078157, 12.420841683366733, 12.45691382765531, 12.492985971943888, 12.529058116232465, 12.565130260521041, 12.60120240480962, 12.637274549098198, 12.673346693386772, 12.70941883767535, 12.745490981963929, 12.781563126252504, 12.817635270541082, 12.85370741482966, 12.889779559118235, 12.925851703406813, 12.961923847695392, 12.997995991983968, 13.034068136272545, 13.070140280561123, 13.1062124248497, 13.142284569138276, 13.178356713426854, 13.214428857715431, 13.250501002004007, 13.286573146292586, 13.322645290581162, 13.358717434869739, 13.394789579158317, 13.430861723446894, 13.46693386773547, 13.503006012024048, 13.539078156312625, 13.575150300601202, 13.61122244488978, 13.647294589178356, 13.683366733466933, 13.719438877755511, 13.75551102204409, 13.791583166332664, 13.827655310621243, 13.86372745490982, 13.899799599198396, 13.935871743486974, 13.971943887775552, 14.008016032064129, 14.044088176352705, 14.080160320641282, 14.11623246492986, 14.152304609218437, 14.188376753507015, 14.224448897795591, 14.260521042084168, 14.296593186372746, 14.332665330661323, 14.3687374749499, 14.404809619238478, 14.440881763527054, 14.47695390781563, 14.513026052104209, 14.549098196392785, 14.585170340681362, 14.62124248496994, 14.657314629258517, 14.693386773547093, 14.729458917835672, 14.765531062124248, 14.801603206412826, 14.837675350701403, 14.87374749498998, 14.909819639278558, 14.945891783567134, 14.98196392785571, 15.01803607214429, 15.054108216432866, 15.090180360721442, 15.12625250501002, 15.162324649298597, 15.198396793587174, 15.234468937875752, 15.270541082164328, 15.306613226452907, 15.342685370741483, 15.37875751503006, 15.414829659318638, 15.450901803607215, 15.486973947895791, 15.52304609218437, 15.559118236472946, 15.595190380761522, 15.6312625250501, 15.667334669338677, 15.703406813627254, 15.739478957915832, 15.775551102204409, 15.811623246492985, 15.847695390781563, 15.88376753507014, 15.919839679358718, 15.955911823647295, 15.991983967935871, 16.028056112224448, 16.064128256513026, 16.100200400801604, 16.13627254509018, 16.172344689378757, 16.208416833667336, 16.24448897795591, 16.28056112224449, 16.316633266533067, 16.352705410821642, 16.38877755511022, 16.4248496993988, 16.460921843687373, 16.49699398797595, 16.53306613226453, 16.569138276553105, 16.605210420841683, 16.64128256513026, 16.677354709418836, 16.713426853707414, 16.749498997995993, 16.785571142284567, 16.821643286573146, 16.857715430861724, 16.8937875751503, 16.929859719438877, 16.965931863727455, 17.00200400801603, 17.038076152304612, 17.074148296593187, 17.11022044088176, 17.146292585170343, 17.182364729458918, 17.218436873747493, 17.254509018036075, 17.29058116232465, 17.326653306613224, 17.362725450901806, 17.39879759519038, 17.434869739478955, 17.470941883767537, 17.507014028056112, 17.54308617234469, 17.57915831663327, 17.615230460921843, 17.65130260521042, 17.687374749499, 17.723446893787575, 17.759519038076153, 17.79559118236473, 17.831663326653306, 17.867735470941884, 17.903807615230463, 17.939879759519037, 17.975951903807616, 18.012024048096194, 18.04809619238477, 18.084168336673347, 18.120240480961925, 18.1563126252505, 18.19238476953908, 18.228456913827657, 18.26452905811623, 18.30060120240481, 18.336673346693388, 18.372745490981963, 18.40881763527054, 18.44488977955912, 18.480961923847694, 18.517034068136272, 18.55310621242485, 18.589178356713425, 18.625250501002004, 18.661322645290582, 18.697394789579157, 18.733466933867735, 18.769539078156313, 18.805611222444888, 18.841683366733466, 18.877755511022045, 18.91382765531062, 18.949899799599198, 18.985971943887776, 19.02204408817635, 19.05811623246493, 19.094188376753507, 19.130260521042082, 19.16633266533066, 19.20240480961924, 19.238476953907814, 19.274549098196395, 19.31062124248497, 19.346693386773545, 19.382765531062127, 19.4188376753507, 19.454909819639276, 19.490981963927858, 19.527054108216433, 19.563126252505008, 19.59919839679359, 19.635270541082164, 19.67134268537074, 19.70741482965932, 19.743486973947896, 19.77955911823647, 19.815631262525052, 19.851703406813627, 19.887775551102205, 19.923847695390783, 19.95991983967936, 19.995991983967937, 20.032064128256515, 20.06813627254509, 20.104208416833668, 20.140280561122246, 20.17635270541082, 20.2124248496994, 20.248496993987978, 20.284569138276552, 20.32064128256513, 20.35671342685371, 20.392785571142284, 20.428857715430862, 20.46492985971944, 20.501002004008015, 20.537074148296593, 20.57314629258517, 20.609218436873746, 20.645290581162325, 20.681362725450903, 20.717434869739478, 20.753507014028056, 20.789579158316634, 20.82565130260521, 20.861723446893787, 20.897795591182366, 20.93386773547094, 20.96993987975952, 21.006012024048097, 21.04208416833667, 21.07815631262525, 21.11422845691383, 21.150300601202403, 21.18637274549098, 21.22244488977956, 21.258517034068134, 21.294589178356713, 21.33066132264529, 21.366733466933866, 21.402805611222444, 21.438877755511022, 21.474949899799597, 21.51102204408818, 21.547094188376754, 21.58316633266533, 21.61923847695391, 21.655310621242485, 21.69138276553106, 21.72745490981964, 21.763527054108216, 21.79959919839679, 21.835671342685373, 21.871743486973948, 21.907815631262523, 21.943887775551104, 21.97995991983968, 22.016032064128257, 22.052104208416832, 22.08817635270541, 22.12424849699399, 22.160320641282564, 22.196392785571142, 22.23246492985972, 22.268537074148295, 22.304609218436873, 22.34068136272545, 22.37675350701403, 22.412825651302605, 22.448897795591183, 22.48496993987976, 22.521042084168336, 22.557114228456914, 22.593186372745492, 22.629258517034067, 22.665330661322646, 22.701402805611224, 22.7374749498998, 22.773547094188377, 22.809619238476955, 22.84569138276553, 22.881763527054108, 22.917835671342687, 22.95390781563126, 22.98997995991984, 23.026052104208418, 23.062124248496993, 23.09819639278557, 23.13426853707415, 23.170340681362724, 23.206412825651302, 23.24248496993988, 23.278557114228455, 23.314629258517034, 23.350701402805612, 23.386773547094187, 23.422845691382765, 23.458917835671343, 23.49498997995992, 23.531062124248496, 23.567134268537075, 23.603206412825653, 23.639278557114228, 23.675350701402806, 23.711422845691384, 23.74749498997996, 23.783567134268537, 23.819639278557116, 23.85571142284569, 23.89178356713427, 23.927855711422847, 23.96392785571142, 24.0])\n", - " .range(['#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#000003ff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#170f3dff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#430f76ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#711f81ff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#9e2f7fff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#ce3f71ff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#f1605dff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#fe9668ff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#ffca8dff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff', '#fcfdbfff']);\n", + " .range(['#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#1f77b4ff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#ff7f0eff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#2ca02cff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#d62728ff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#9467bdff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#c49c94ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#f7b6d2ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#c7c7c7ff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#dbdb8dff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff', '#9edae5ff']);\n", " \n", "\n", - " color_map_b898fa53e7311fa02ccc6e932361e30c.x = d3.scale.linear()\n", + " color_map_db9b2989c01949e720adfb07bf3decb9.x = d3.scale.linear()\n", " .domain([6.0, 24.0])\n", " .range([0, 450 - 50]);\n", "\n", - " color_map_b898fa53e7311fa02ccc6e932361e30c.legend = L.control({position: 'topright'});\n", - " color_map_b898fa53e7311fa02ccc6e932361e30c.legend.onAdd = function (map) {var div = L.DomUtil.create('div', 'legend'); return div};\n", - " color_map_b898fa53e7311fa02ccc6e932361e30c.legend.addTo(map_aa1b90d53f98b820d9d6d33a9f920613);\n", + " color_map_db9b2989c01949e720adfb07bf3decb9.legend = L.control({position: 'topright'});\n", + " color_map_db9b2989c01949e720adfb07bf3decb9.legend.onAdd = function (map) {var div = L.DomUtil.create('div', 'legend'); return div};\n", + " color_map_db9b2989c01949e720adfb07bf3decb9.legend.addTo(map_f78f342a1019ef502685054b5d7f9c30);\n", "\n", - " color_map_b898fa53e7311fa02ccc6e932361e30c.xAxis = d3.svg.axis()\n", - " .scale(color_map_b898fa53e7311fa02ccc6e932361e30c.x)\n", + " color_map_db9b2989c01949e720adfb07bf3decb9.xAxis = d3.svg.axis()\n", + " .scale(color_map_db9b2989c01949e720adfb07bf3decb9.x)\n", " .orient("top")\n", " .tickSize(1)\n", " .tickValues([6.0, '', 9.6, '', 13.2, '', 16.8, '', 20.4, '', 24.0, '']);\n", "\n", - " color_map_b898fa53e7311fa02ccc6e932361e30c.svg = d3.select(".legend.leaflet-control").append("svg")\n", + " color_map_db9b2989c01949e720adfb07bf3decb9.svg = d3.select(".legend.leaflet-control").append("svg")\n", " .attr("id", 'legend')\n", " .attr("width", 450)\n", " .attr("height", 40);\n", "\n", - " color_map_b898fa53e7311fa02ccc6e932361e30c.g = color_map_b898fa53e7311fa02ccc6e932361e30c.svg.append("g")\n", + " color_map_db9b2989c01949e720adfb07bf3decb9.g = color_map_db9b2989c01949e720adfb07bf3decb9.svg.append("g")\n", " .attr("class", "key")\n", " .attr("fill", "black")\n", " .attr("transform", "translate(25,16)");\n", "\n", - " color_map_b898fa53e7311fa02ccc6e932361e30c.g.selectAll("rect")\n", - " .data(color_map_b898fa53e7311fa02ccc6e932361e30c.color.range().map(function(d, i) {\n", + " color_map_db9b2989c01949e720adfb07bf3decb9.g.selectAll("rect")\n", + " .data(color_map_db9b2989c01949e720adfb07bf3decb9.color.range().map(function(d, i) {\n", " return {\n", - " x0: i ? color_map_b898fa53e7311fa02ccc6e932361e30c.x(color_map_b898fa53e7311fa02ccc6e932361e30c.color.domain()[i - 1]) : color_map_b898fa53e7311fa02ccc6e932361e30c.x.range()[0],\n", - " x1: i < color_map_b898fa53e7311fa02ccc6e932361e30c.color.domain().length ? color_map_b898fa53e7311fa02ccc6e932361e30c.x(color_map_b898fa53e7311fa02ccc6e932361e30c.color.domain()[i]) : color_map_b898fa53e7311fa02ccc6e932361e30c.x.range()[1],\n", + " x0: i ? color_map_db9b2989c01949e720adfb07bf3decb9.x(color_map_db9b2989c01949e720adfb07bf3decb9.color.domain()[i - 1]) : color_map_db9b2989c01949e720adfb07bf3decb9.x.range()[0],\n", + " x1: i < color_map_db9b2989c01949e720adfb07bf3decb9.color.domain().length ? color_map_db9b2989c01949e720adfb07bf3decb9.x(color_map_db9b2989c01949e720adfb07bf3decb9.color.domain()[i]) : color_map_db9b2989c01949e720adfb07bf3decb9.x.range()[1],\n", " z: d\n", " };\n", " }))\n", @@ -3092,19 +4296,19 @@ " .attr("width", function(d) { return d.x1 - d.x0; })\n", " .style("fill", function(d) { return d.z; });\n", "\n", - " color_map_b898fa53e7311fa02ccc6e932361e30c.g.call(color_map_b898fa53e7311fa02ccc6e932361e30c.xAxis).append("text")\n", + " color_map_db9b2989c01949e720adfb07bf3decb9.g.call(color_map_db9b2989c01949e720adfb07bf3decb9.xAxis).append("text")\n", " .attr("class", "caption")\n", " .attr("y", 21)\n", " .attr("fill", "black")\n", - " .text("count");\n", + " .text("inches");\n", "</script>\n", "</html>\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen>" ], "text/plain": [ - "" + "" ] }, - "execution_count": 30, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -3120,7 +4324,7 @@ " capitalize_cmap=False, # to better match VEDA colors and matplotlib colors\n", " layer_name=\"Regional Snowfall Index (RSI) Accumulated Snowfall\",\n", " date=f\"{date}T00:00:00Z\",\n", - " colorbar_caption=\"count\",\n", + " colorbar_caption=\"inches\",\n", " attribution=\"Regional Snowfall Index (RSI) Accumulated Snowfall\",\n", " tile_name=\"Regional Snowfall Index (RSI) Accumulated Snowfall\",\n", " opacity=0.8,\n", From 7355230eaef3b1f7b5cdfa3b9c0e1f535a1b0d03 Mon Sep 17 00:00:00 2001 From: Andrew Blackford <62357205+acblackford@users.noreply.github.com> Date: Wed, 3 Dec 2025 15:33:30 -0600 Subject: [PATCH 3/5] final fixes (colormap) - ready for full review --- .../stories/blizzards_notebook.ipynb | 2432 ++++++----------- 1 file changed, 826 insertions(+), 1606 deletions(-) diff --git a/user-guide/notebooks/stories/blizzards_notebook.ipynb b/user-guide/notebooks/stories/blizzards_notebook.ipynb index 2275c1af..bac6f0ca 100644 --- a/user-guide/notebooks/stories/blizzards_notebook.ipynb +++ b/user-guide/notebooks/stories/blizzards_notebook.ipynb @@ -66,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 1, "id": "e660b9c1-96de-4c42-ae48-d908293b54bb", "metadata": {}, "outputs": [], @@ -166,7 +166,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "94e17401-99ec-4ed3-ae7b-1c5014d5931a", "metadata": {}, "outputs": [ @@ -204,8 +204,19 @@ " color: rgb(0, 128, 0);\n", " font-weight: 700;\n", "}\n", + ".pystac-wrap {\n", + " display: block !important;\n", + "}\n", + ".pystac-text-repr-fallback {\n", + " /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n", + " display: none;\n", + "}\n", "\n", - "
      \n", + "
      \n", + "
      \n", + " <CollectionClient id=blizzard-count>\n", + "
      \n", + "\n", "
      " ], "text/plain": [ "" ] }, - "execution_count": 4, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -1056,7 +1068,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "fa60566e-b3c6-4d58-84fe-8589a54056df", "metadata": {}, "outputs": [ @@ -1089,7 +1101,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "80a6afa4-7d1d-4c13-877d-bad844012e08", "metadata": {}, "outputs": [ @@ -1115,7 +1127,7 @@ " <meta name="viewport" content="width=device-width,\n", " initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />\n", " <style>\n", - " #map_2610cfe7eac10d490472b876396697f2 {\n", + " #map_aace04ce35de7f1dfbcb85e7d18418ed {\n", " position: relative;\n", " width: 100.0%;\n", " height: 800.0px;\n", @@ -1148,35 +1160,267 @@ " </script>\n", "\n", " \n", - " <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>\n", "</head>\n", "<body>\n", " \n", " \n", - " <div style="\n", - " position: fixed;\n", - " top: 10px;\n", - " left: 50%;\n", - " transform: translateX(-50%);\n", - " z-index: 1000;\n", - " font-size: 18px;\n", - " font-weight: bold;\n", - " background: rgba(255,255,255,0.8);\n", - " padding: 4px 8px;\n", - " border-radius: 4px;\n", - " ">\n", - " Blizzard Count β€” (1950-2021)\n", - " </div>\n", - " \n", - " \n", - " <div class="folium-map" id="map_2610cfe7eac10d490472b876396697f2" ></div>\n", + " <div style="\n", + " position: fixed;\n", + " top: 60px;\n", + " left: 50%;\n", + " transform: translateX(-50%);\n", + " z-index: 1000;\n", + " background: white;\n", + " padding: 15px 20px 10px 20px;\n", + " border-radius: 4px;\n", + " box-shadow: 0 2px 4px rgba(0,0,0,0.2);\n", + " ">\n", + " <div style="\n", + " position: relative;\n", + " width: 450px;\n", + " height: 15px;\n", + " background: linear-gradient(to right, rgba(48, 18, 59, 1) 0.0%, rgba(50, 24, 74, 1) 1.0101010101010102%, rgba(54, 33, 95, 1) 2.0202020202020203%, rgba(56, 38, 108, 1) 3.0303030303030303%, rgba(59, 47, 127, 1) 4.040404040404041%, rgba(60, 53, 139, 1) 5.05050505050505%, rgba(63, 61, 156, 1) 6.0606060606060606%, rgba(65, 69, 171, 1) 7.07070707070707%, rgba(66, 75, 181, 1) 8.080808080808081%, rgba(67, 83, 194, 1) 9.090909090909092%, rgba(68, 88, 203, 1) 10.1010101010101%, rgba(69, 96, 214, 1) 11.11111111111111%, rgba(70, 104, 224, 1) 12.121212121212121%, rgba(70, 109, 230, 1) 13.131313131313133%, rgba(70, 117, 237, 1) 14.14141414141414%, rgba(70, 122, 242, 1) 15.151515151515152%, rgba(70, 130, 248, 1) 16.161616161616163%, rgba(69, 135, 251, 1) 17.17171717171717%, rgba(67, 142, 253, 1) 18.181818181818183%, rgba(64, 150, 254, 1) 19.19191919191919%, rgba(62, 155, 254, 1) 20.2020202020202%, rgba(57, 162, 252, 1) 21.21212121212121%, rgba(54, 168, 249, 1) 22.22222222222222%, rgba(49, 175, 245, 1) 23.232323232323232%, rgba(43, 182, 239, 1) 24.242424242424242%, rgba(40, 187, 235, 1) 25.252525252525253%, rgba(35, 194, 228, 1) 26.262626262626267%, rgba(32, 198, 223, 1) 27.27272727272727%, rgba(28, 205, 215, 1) 28.28282828282828%, rgba(26, 209, 210, 1) 29.292929292929294%, rgba(24, 215, 202, 1) 30.303030303030305%, rgba(23, 220, 194, 1) 31.313131313131315%, rgba(24, 224, 189, 1) 32.323232323232325%, rgba(26, 228, 182, 1) 33.33333333333333%, rgba(29, 231, 177, 1) 34.34343434343434%, rgba(34, 235, 169, 1) 35.35353535353536%, rgba(41, 238, 160, 1) 36.36363636363637%, rgba(47, 240, 154, 1) 37.37373737373738%, rgba(56, 244, 145, 1) 38.38383838383838%, rgba(63, 245, 138, 1) 39.39393939393939%, rgba(74, 248, 128, 1) 40.4040404040404%, rgba(85, 250, 118, 1) 41.41414141414141%, rgba(93, 251, 111, 1) 42.42424242424242%, rgba(105, 253, 101, 1) 43.43434343434344%, rgba(113, 253, 95, 1) 44.44444444444444%, rgba(124, 254, 86, 1) 45.45454545454545%, rgba(132, 254, 80, 1) 46.464646464646464%, rgba(142, 254, 72, 1) 47.474747474747474%, rgba(152, 254, 66, 1) 48.484848484848484%, rgba(158, 253, 62, 1) 49.494949494949495%, rgba(166, 251, 58, 1) 50.505050505050505%, rgba(172, 250, 55, 1) 51.515151515151516%, rgba(179, 248, 53, 1) 52.52525252525253%, rgba(187, 244, 52, 1) 53.535353535353536%, rgba(192, 242, 51, 1) 54.54545454545454%, rgba(200, 238, 51, 1) 55.55555555555556%, rgba(205, 235, 52, 1) 56.56565656565656%, rgba(212, 231, 53, 1) 57.57575757575758%, rgba(216, 227, 53, 1) 58.58585858585859%, rgba(223, 222, 54, 1) 59.59595959595959%, rgba(229, 216, 56, 1) 60.60606060606061%, rgba(232, 213, 56, 1) 61.61616161616161%, rgba(237, 207, 57, 1) 62.62626262626263%, rgba(240, 203, 58, 1) 63.63636363636363%, rgba(244, 196, 58, 1) 64.64646464646465%, rgba(248, 190, 57, 1) 65.65656565656566%, rgba(249, 186, 56, 1) 66.66666666666666%, rgba(251, 179, 54, 1) 67.67676767676768%, rgba(252, 174, 52, 1) 68.68686868686868%, rgba(253, 166, 49, 1) 69.6969696969697%, rgba(254, 158, 46, 1) 70.70707070707071%, rgba(254, 152, 44, 1) 71.71717171717171%, rgba(253, 143, 40, 1) 72.72727272727273%, rgba(252, 137, 38, 1) 73.73737373737373%, rgba(251, 128, 34, 1) 74.74747474747475%, rgba(250, 122, 31, 1) 75.75757575757575%, rgba(247, 113, 27, 1) 76.76767676767676%, rgba(245, 104, 23, 1) 77.77777777777779%, rgba(243, 99, 21, 1) 78.78787878787878%, rgba(239, 90, 17, 1) 79.7979797979798%, rgba(237, 85, 15, 1) 80.8080808080808%, rgba(233, 77, 13, 1) 81.81818181818183%, rgba(229, 70, 10, 1) 82.82828282828282%, rgba(226, 66, 9, 1) 83.83838383838383%, rgba(221, 60, 7, 1) 84.84848484848484%, rgba(217, 56, 6, 1) 85.85858585858585%, rgba(212, 50, 5, 1) 86.86868686868688%, rgba(208, 47, 4, 1) 87.87878787878788%, rgba(201, 41, 3, 1) 88.88888888888889%, rgba(195, 36, 2, 1) 89.8989898989899%, rgba(190, 33, 2, 1) 90.9090909090909%, rgba(182, 28, 1, 1) 91.91919191919192%, rgba(177, 25, 1, 1) 92.92929292929293%, rgba(169, 21, 1, 1) 93.93939393939394%, rgba(160, 17, 1, 1) 94.94949494949495%, rgba(154, 14, 1, 1) 95.95959595959596%, rgba(145, 11, 1, 1) 96.96969696969697%, rgba(139, 9, 1, 1) 97.97979797979798%, rgba(129, 6, 2, 1) 98.98989898989899%, rgba(122, 4, 2, 1) 100.0%);\n", + " border: 1px solid black;\n", + " margin: 0 auto;\n", + " ">\n", + " <div style="position: relative; width: 100%; height: 100%;">\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 0.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 10.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 20.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 30.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 40.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 50.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 60.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 70.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 80.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 90.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 100.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " </div>\n", + " <div style="position: relative; width: 100%; height: 30px;">\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 0.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">1.00</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 10.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">6</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 20.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">11</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 30.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">16</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 40.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">21</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 50.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">26</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 60.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">30</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 70.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">35</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 80.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">40</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 90.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">45</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 100.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">50</div>\n", + " \n", + " </div>\n", + " </div>\n", + " <div style="text-align: center; margin-top: 25px; font-size: 12px;">\n", + " count\n", + " </div>\n", + " </div>\n", + " \n", + " \n", + " <div style="\n", + " position: fixed;\n", + " top: 10px;\n", + " left: 50%;\n", + " transform: translateX(-50%);\n", + " z-index: 1000;\n", + " font-size: 18px;\n", + " font-weight: bold;\n", + " background: rgba(255,255,255,0.8);\n", + " padding: 8px 20px;\n", + " min-width: 750px;\n", + " text-align: center;\n", + " border-radius: 4px;\n", + " box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n", + " ">\n", + " Blizzard Count β€” (1950-2021)\n", + " </div>\n", + " \n", + " \n", + " <div class="folium-map" id="map_aace04ce35de7f1dfbcb85e7d18418ed" ></div>\n", " \n", "</body>\n", "<script>\n", " \n", " \n", - " var map_2610cfe7eac10d490472b876396697f2 = L.map(\n", - " "map_2610cfe7eac10d490472b876396697f2",\n", + " var map_aace04ce35de7f1dfbcb85e7d18418ed = L.map(\n", + " "map_aace04ce35de7f1dfbcb85e7d18418ed",\n", " {\n", " center: [43.0, -92.0],\n", " crs: L.CRS.EPSG3857,\n", @@ -1188,13 +1432,13 @@ "\n", " }\n", " );\n", - " L.control.scale().addTo(map_2610cfe7eac10d490472b876396697f2);\n", + " L.control.scale().addTo(map_aace04ce35de7f1dfbcb85e7d18418ed);\n", "\n", " \n", "\n", " \n", " \n", - " var tile_layer_46513bbf5f7bdc61dd063342ddc65cc3 = L.tileLayer(\n", + " var tile_layer_940818d491e3a4242cb41c63c0f9aeff = L.tileLayer(\n", " "https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png",\n", " {\n", " "minZoom": 0,\n", @@ -1211,10 +1455,10 @@ " );\n", " \n", " \n", - " tile_layer_46513bbf5f7bdc61dd063342ddc65cc3.addTo(map_2610cfe7eac10d490472b876396697f2);\n", + " tile_layer_940818d491e3a4242cb41c63c0f9aeff.addTo(map_aace04ce35de7f1dfbcb85e7d18418ed);\n", " \n", " \n", - " var tile_layer_643a5598478512872f8c87f9037f1e4a = L.tileLayer(\n", + " var tile_layer_4ed7962285c6a6c1c0961deb8cfaf2e4 = L.tileLayer(\n", " "https://openveda.cloud/api/raster/collections/blizzard-count/items/StormEvents_Blizzards_cog_2021-12-31/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=cog_default\\u0026color_formula=gamma+r+1.05\\u0026colormap_name=turbo\\u0026rescale=1%2C50",\n", " {\n", " "minZoom": 0,\n", @@ -1231,88 +1475,36 @@ " );\n", " \n", " \n", - " tile_layer_643a5598478512872f8c87f9037f1e4a.addTo(map_2610cfe7eac10d490472b876396697f2);\n", + " tile_layer_4ed7962285c6a6c1c0961deb8cfaf2e4.addTo(map_aace04ce35de7f1dfbcb85e7d18418ed);\n", " \n", " \n", - " var layer_control_019553668209fb757af07c811a4f065f_layers = {\n", + " var layer_control_621a9aecdbb8e5e49fbd00ea75a96a57_layers = {\n", " base_layers : {\n", - " "CartoDB Positron" : tile_layer_46513bbf5f7bdc61dd063342ddc65cc3,\n", + " "CartoDB Positron" : tile_layer_940818d491e3a4242cb41c63c0f9aeff,\n", " },\n", " overlays : {\n", - " "NCEI Blizzard Count (1950-2021)" : tile_layer_643a5598478512872f8c87f9037f1e4a,\n", + " "NCEI Blizzard Count (1950-2021)" : tile_layer_4ed7962285c6a6c1c0961deb8cfaf2e4,\n", " },\n", " };\n", - " let layer_control_019553668209fb757af07c811a4f065f = L.control.layers(\n", - " layer_control_019553668209fb757af07c811a4f065f_layers.base_layers,\n", - " layer_control_019553668209fb757af07c811a4f065f_layers.overlays,\n", + " let layer_control_621a9aecdbb8e5e49fbd00ea75a96a57 = L.control.layers(\n", + " layer_control_621a9aecdbb8e5e49fbd00ea75a96a57_layers.base_layers,\n", + " layer_control_621a9aecdbb8e5e49fbd00ea75a96a57_layers.overlays,\n", " {\n", " "position": "topright",\n", " "collapsed": true,\n", " "autoZIndex": true,\n", "}\n", - " ).addTo(map_2610cfe7eac10d490472b876396697f2);\n", + " ).addTo(map_aace04ce35de7f1dfbcb85e7d18418ed);\n", "\n", " \n", - " \n", - " var color_map_9a488e5f3d442a6ba704ecefb2e51517 = {};\n", - "\n", - " \n", - " color_map_9a488e5f3d442a6ba704ecefb2e51517.color = d3.scale.threshold()\n", - " .domain([1.0, 1.0981963927855711, 1.1963927855711423, 1.2945891783567134, 1.3927855711422845, 1.4909819639278556, 1.5891783567134268, 1.6873747494989981, 1.785571142284569, 1.8837675350701404, 1.9819639278557113, 2.0801603206412826, 2.1783567134268536, 2.276553106212425, 2.3747494989979963, 2.472945891783567, 2.571142284569138, 2.6693386773547094, 2.7675350701402808, 2.8657314629258517, 2.9639278557114226, 3.062124248496994, 3.1603206412825653, 3.258517034068136, 3.3567134268537075, 3.4549098196392785, 3.55310621242485, 3.6513026052104207, 3.749498997995992, 3.847695390781563, 3.9458917835671343, 4.044088176352705, 4.142284569138276, 4.240480961923847, 4.338677354709419, 4.436873747494991, 4.5350701402805615, 4.6332665330661325, 4.731462925851703, 4.829659318637274, 4.927855711422845, 5.026052104208417, 5.124248496993988, 5.222444889779559, 5.320641282565131, 5.4188376753507015, 5.517034068136272, 5.615230460921843, 5.713426853707415, 5.811623246492986, 5.909819639278557, 6.008016032064128, 6.1062124248497, 6.2044088176352705, 6.302605210420841, 6.400801603206413, 6.498997995991984, 6.597194388777555, 6.695390781563126, 6.793587174348698, 6.891783567134269, 6.98997995991984, 7.0881763527054105, 7.186372745490982, 7.284569138276553, 7.382765531062124, 7.480961923847695, 7.579158316633267, 7.677354709418838, 7.775551102204409, 7.87374749498998, 7.971943887775551, 8.070140280561123, 8.168336673346694, 8.266533066132265, 8.364729458917836, 8.462925851703407, 8.561122244488978, 8.659318637274549, 8.75751503006012, 8.85571142284569, 8.953907815631261, 9.052104208416834, 9.150300601202405, 9.248496993987976, 9.346693386773547, 9.444889779559118, 9.54308617234469, 9.641282565130261, 9.739478957915832, 9.837675350701403, 9.935871743486974, 10.034068136272545, 10.132264529058116, 10.230460921843687, 10.32865731462926, 10.42685370741483, 10.525050100200401, 10.623246492985972, 10.721442885771543, 10.819639278557114, 10.917835671342685, 11.016032064128256, 11.114228456913828, 11.2124248496994, 11.31062124248497, 11.408817635270541, 11.507014028056112, 11.605210420841683, 11.703406813627254, 11.801603206412826, 11.899799599198397, 11.997995991983968, 12.09619238476954, 12.19438877755511, 12.292585170340681, 12.390781563126252, 12.488977955911823, 12.587174348697395, 12.685370741482966, 12.783567134268537, 12.881763527054108, 12.97995991983968, 13.07815631262525, 13.176352705410821, 13.274549098196394, 13.372745490981965, 13.470941883767535, 13.569138276553106, 13.667334669338677, 13.765531062124248, 13.863727454909819, 13.96192384769539, 14.060120240480963, 14.158316633266534, 14.256513026052104, 14.354709418837675, 14.452905811623246, 14.551102204408817, 14.649298597194388, 14.74749498997996, 14.845691382765532, 14.943887775551103, 15.042084168336673, 15.140280561122244, 15.238476953907815, 15.336673346693386, 15.434869739478957, 15.53306613226453, 15.6312625250501, 15.729458917835672, 15.827655310621243, 15.925851703406813, 16.024048096192384, 16.122244488977955, 16.22044088176353, 16.318637274549097, 16.41683366733467, 16.51503006012024, 16.613226452905813, 16.71142284569138, 16.809619238476955, 16.907815631262523, 17.006012024048097, 17.104208416833668, 17.20240480961924, 17.30060120240481, 17.39879759519038, 17.49699398797595, 17.595190380761522, 17.693386773547093, 17.791583166332664, 17.889779559118235, 17.987975951903806, 18.08617234468938, 18.18436873747495, 18.282565130260522, 18.380761523046093, 18.478957915831664, 18.577154308617235, 18.675350701402806, 18.773547094188377, 18.871743486973948, 18.96993987975952, 19.06813627254509, 19.16633266533066, 19.26452905811623, 19.362725450901802, 19.460921843687373, 19.559118236472944, 19.65731462925852, 19.75551102204409, 19.85370741482966, 19.95190380761523, 20.050100200400802, 20.148296593186373, 20.246492985971944, 20.344689378757515, 20.442885771543086, 20.541082164328657, 20.639278557114228, 20.7374749498998, 20.83567134268537, 20.93386773547094, 21.03206412825651, 21.130260521042086, 21.228456913827657, 21.326653306613228, 21.4248496993988, 21.52304609218437, 21.62124248496994, 21.71943887775551, 21.817635270541082, 21.915831663326653, 22.014028056112224, 22.112224448897795, 22.210420841683366, 22.308617234468937, 22.406813627254508, 22.50501002004008, 22.603206412825653, 22.701402805611224, 22.799599198396795, 22.897795591182366, 22.995991983967937, 23.094188376753507, 23.19238476953908, 23.29058116232465, 23.38877755511022, 23.48697394789579, 23.585170340681362, 23.683366733466933, 23.781563126252504, 23.879759519038075, 23.977955911823646, 24.07615230460922, 24.17434869739479, 24.272545090180362, 24.370741482965933, 24.468937875751504, 24.567134268537075, 24.665330661322646, 24.763527054108216, 24.861723446893787, 24.95991983967936, 25.05811623246493, 25.1563126252505, 25.25450901803607, 25.352705410821642, 25.450901803607213, 25.549098196392787, 25.647294589178358, 25.74549098196393, 25.8436873747495, 25.94188376753507, 26.04008016032064, 26.138276553106213, 26.236472945891784, 26.334669338677354, 26.432865731462925, 26.531062124248496, 26.629258517034067, 26.727454909819638, 26.82565130260521, 26.92384769539078, 27.022044088176354, 27.120240480961925, 27.218436873747496, 27.316633266533067, 27.414829659318638, 27.51302605210421, 27.61122244488978, 27.70941883767535, 27.80761523046092, 27.905811623246493, 28.004008016032063, 28.102204408817634, 28.200400801603205, 28.298597194388776, 28.396793587174347, 28.49498997995992, 28.593186372745492, 28.691382765531063, 28.789579158316634, 28.887775551102205, 28.985971943887776, 29.084168336673347, 29.182364729458918, 29.28056112224449, 29.37875751503006, 29.47695390781563, 29.5751503006012, 29.673346693386772, 29.771543086172343, 29.869739478957914, 29.96793587174349, 30.06613226452906, 30.16432865731463, 30.2625250501002, 30.360721442885772, 30.458917835671343, 30.557114228456914, 30.655310621242485, 30.753507014028056, 30.851703406813627, 30.949899799599198, 31.04809619238477, 31.14629258517034, 31.24448897795591, 31.34268537074148, 31.440881763527056, 31.539078156312627, 31.637274549098198, 31.73547094188377, 31.83366733466934, 31.93186372745491, 32.03006012024048, 32.12825651302605, 32.22645290581163, 32.324649298597194, 32.42284569138276, 32.521042084168336, 32.61923847695391, 32.71743486973948, 32.815631262525045, 32.91382765531062, 33.012024048096194, 33.11022044088176, 33.208416833667336, 33.3066132264529, 33.40480961923848, 33.503006012024045, 33.60120240480962, 33.699398797595194, 33.79759519038076, 33.895791583166336, 33.9939879759519, 34.09218436873748, 34.190380761523045, 34.28857715430862, 34.38677354709419, 34.48496993987976, 34.58316633266533, 34.6813627254509, 34.77955911823647, 34.877755511022045, 34.97595190380761, 35.07414829659319, 35.17234468937876, 35.27054108216433, 35.3687374749499, 35.46693386773547, 35.565130260521045, 35.66332665330661, 35.76152304609219, 35.859719438877754, 35.95791583166333, 36.056112224448896, 36.15430861723447, 36.25250501002004, 36.35070140280561, 36.44889779559118, 36.547094188376754, 36.64529058116233, 36.743486973947896, 36.84168336673347, 36.93987975951904, 37.03807615230461, 37.13627254509018, 37.234468937875754, 37.33266533066132, 37.430861723446895, 37.52905811623246, 37.62725450901804, 37.725450901803605, 37.82364729458918, 37.921843687374746, 38.02004008016032, 38.11823647294589, 38.21643286573146, 38.31462925851704, 38.412825651302605, 38.51102204408818, 38.609218436873746, 38.70741482965932, 38.80561122244489, 38.90380761523046, 39.00200400801603, 39.100200400801604, 39.19839679358717, 39.296593186372746, 39.394789579158314, 39.49298597194389, 39.591182364729455, 39.68937875751503, 39.787575150300604, 39.88577154308617, 39.983967935871746, 40.08216432865731, 40.18036072144289, 40.278557114228455, 40.37675350701403, 40.4749498997996, 40.57314629258517, 40.67134268537074, 40.76953907815631, 40.86773547094188, 40.965931863727455, 41.06412825651302, 41.1623246492986, 41.26052104208417, 41.35871743486974, 41.45691382765531, 41.55511022044088, 41.653306613226455, 41.75150300601202, 41.8496993987976, 41.947895791583164, 42.04609218436874, 42.144288577154306, 42.24248496993988, 42.34068136272545, 42.43887775551102, 42.53707414829659, 42.635270541082164, 42.73346693386774, 42.831663326653306, 42.92985971943888, 43.02805611222445, 43.12625250501002, 43.22444889779559, 43.322645290581164, 43.42084168336673, 43.519038076152306, 43.61723446893787, 43.71543086172345, 43.813627254509015, 43.91182364729459, 44.01002004008016, 44.10821643286573, 44.206412825651306, 44.30460921843687, 44.40280561122245, 44.501002004008015, 44.59919839679359, 44.69739478957916, 44.79559118236473, 44.8937875751503, 44.99198396793587, 45.09018036072144, 45.188376753507015, 45.28657314629258, 45.38476953907816, 45.482965931863724, 45.5811623246493, 45.67935871743487, 45.77755511022044, 45.875751503006015, 45.97394789579158, 46.07214428857716, 46.170340681362724, 46.2685370741483, 46.366733466933866, 46.46492985971944, 46.56312625250501, 46.66132264529058, 46.75951903807615, 46.857715430861724, 46.95591182364729, 47.054108216432866, 47.15230460921844, 47.25050100200401, 47.34869739478958, 47.44689378757515, 47.545090180360724, 47.64328657314629, 47.741482965931866, 47.83967935871743, 47.93787575150301, 48.036072144288575, 48.13426853707415, 48.23246492985972, 48.33066132264529, 48.42885771543086, 48.52705410821643, 48.62525050100201, 48.723446893787575, 48.82164328657315, 48.91983967935872, 49.01803607214429, 49.11623246492986, 49.21442885771543, 49.312625250501, 49.410821643286575, 49.50901803607214, 49.607214428857716, 49.705410821643284, 49.80360721442886, 49.901803607214426, 50.0])\n", - " .range(['#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff']);\n", - " \n", - "\n", - " color_map_9a488e5f3d442a6ba704ecefb2e51517.x = d3.scale.linear()\n", - " .domain([1.0, 50.0])\n", - " .range([0, 450 - 50]);\n", - "\n", - " color_map_9a488e5f3d442a6ba704ecefb2e51517.legend = L.control({position: 'topright'});\n", - " color_map_9a488e5f3d442a6ba704ecefb2e51517.legend.onAdd = function (map) {var div = L.DomUtil.create('div', 'legend'); return div};\n", - " color_map_9a488e5f3d442a6ba704ecefb2e51517.legend.addTo(map_2610cfe7eac10d490472b876396697f2);\n", - "\n", - " color_map_9a488e5f3d442a6ba704ecefb2e51517.xAxis = d3.svg.axis()\n", - " .scale(color_map_9a488e5f3d442a6ba704ecefb2e51517.x)\n", - " .orient("top")\n", - " .tickSize(1)\n", - " .tickValues([1.0, '', 10.8, '', 20.6, '', 30.4, '', 40.2, '', 50.0, '']);\n", - "\n", - " color_map_9a488e5f3d442a6ba704ecefb2e51517.svg = d3.select(".legend.leaflet-control").append("svg")\n", - " .attr("id", 'legend')\n", - " .attr("width", 450)\n", - " .attr("height", 40);\n", - "\n", - " color_map_9a488e5f3d442a6ba704ecefb2e51517.g = color_map_9a488e5f3d442a6ba704ecefb2e51517.svg.append("g")\n", - " .attr("class", "key")\n", - " .attr("fill", "black")\n", - " .attr("transform", "translate(25,16)");\n", - "\n", - " color_map_9a488e5f3d442a6ba704ecefb2e51517.g.selectAll("rect")\n", - " .data(color_map_9a488e5f3d442a6ba704ecefb2e51517.color.range().map(function(d, i) {\n", - " return {\n", - " x0: i ? color_map_9a488e5f3d442a6ba704ecefb2e51517.x(color_map_9a488e5f3d442a6ba704ecefb2e51517.color.domain()[i - 1]) : color_map_9a488e5f3d442a6ba704ecefb2e51517.x.range()[0],\n", - " x1: i < color_map_9a488e5f3d442a6ba704ecefb2e51517.color.domain().length ? color_map_9a488e5f3d442a6ba704ecefb2e51517.x(color_map_9a488e5f3d442a6ba704ecefb2e51517.color.domain()[i]) : color_map_9a488e5f3d442a6ba704ecefb2e51517.x.range()[1],\n", - " z: d\n", - " };\n", - " }))\n", - " .enter().append("rect")\n", - " .attr("height", 40 - 30)\n", - " .attr("x", function(d) { return d.x0; })\n", - " .attr("width", function(d) { return d.x1 - d.x0; })\n", - " .style("fill", function(d) { return d.z; });\n", - "\n", - " color_map_9a488e5f3d442a6ba704ecefb2e51517.g.call(color_map_9a488e5f3d442a6ba704ecefb2e51517.xAxis).append("text")\n", - " .attr("class", "caption")\n", - " .attr("y", 21)\n", - " .attr("fill", "black")\n", - " .text("count");\n", "</script>\n", "</html>\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen>
      " ], "text/plain": [ - "" + "" ] }, - "execution_count": 6, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -1351,7 +1543,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 27, "id": "9693e891-2cfe-4aa2-8465-6a4d3b3566f6", "metadata": {}, "outputs": [ @@ -1389,8 +1581,19 @@ " color: rgb(0, 128, 0);\n", " font-weight: 700;\n", "}\n", + ".pystac-wrap {\n", + " display: block !important;\n", + "}\n", + ".pystac-text-repr-fallback {\n", + " /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n", + " display: none;\n", + "}\n", "\n", - "
      \n", + "
      \n", + "
      \n", + " <CollectionClient id=blizzard-goes-bombogenesis>\n", + "
      \n", + "\n", "
      " ], "text/plain": [ "" ] }, - "execution_count": 11, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -2316,7 +2520,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 28, "id": "e7031438-e30d-4e9e-a59f-65b8ae105bcb", "metadata": {}, "outputs": [ @@ -2342,7 +2546,7 @@ " <meta name="viewport" content="width=device-width,\n", " initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />\n", " <style>\n", - " #map_946354e05bf1c24a463dc028f8dde936 {\n", + " #map_59843b95fb96bf1124ed87e9ae102566 {\n", " position: relative;\n", " width: 100.0%;\n", " height: 800.0px;\n", @@ -2375,35 +2579,37 @@ " </script>\n", "\n", " \n", - " <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>\n", "</head>\n", "<body>\n", " \n", " \n", - " <div style="\n", - " position: fixed;\n", - " top: 10px;\n", - " left: 50%;\n", - " transform: translateX(-50%);\n", - " z-index: 1000;\n", - " font-size: 18px;\n", - " font-weight: bold;\n", - " background: rgba(255,255,255,0.8);\n", - " padding: 4px 8px;\n", - " border-radius: 4px;\n", - " ">\n", - " GOES TrueColor Imagery β€” January 04, 2018\n", - " </div>\n", - " \n", + " <div style="\n", + " position: fixed;\n", + " top: 10px;\n", + " left: 50%;\n", + " transform: translateX(-50%);\n", + " z-index: 1000;\n", + " font-size: 18px;\n", + " font-weight: bold;\n", + " background: rgba(255,255,255,0.8);\n", + " padding: 8px 20px;\n", + " min-width: 750px;\n", + " text-align: center;\n", + " border-radius: 4px;\n", + " box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n", + " ">\n", + " GOES TrueColor Imagery β€” January 04, 2018\n", + " </div>\n", + " \n", " \n", - " <div class="folium-map" id="map_946354e05bf1c24a463dc028f8dde936" ></div>\n", + " <div class="folium-map" id="map_59843b95fb96bf1124ed87e9ae102566" ></div>\n", " \n", "</body>\n", "<script>\n", " \n", " \n", - " var map_946354e05bf1c24a463dc028f8dde936 = L.map(\n", - " "map_946354e05bf1c24a463dc028f8dde936",\n", + " var map_59843b95fb96bf1124ed87e9ae102566 = L.map(\n", + " "map_59843b95fb96bf1124ed87e9ae102566",\n", " {\n", " center: [38.0, -72.0],\n", " crs: L.CRS.EPSG3857,\n", @@ -2415,13 +2621,13 @@ "\n", " }\n", " );\n", - " L.control.scale().addTo(map_946354e05bf1c24a463dc028f8dde936);\n", + " L.control.scale().addTo(map_59843b95fb96bf1124ed87e9ae102566);\n", "\n", " \n", "\n", " \n", " \n", - " var tile_layer_635ef3fdfea9043d6f1a937d65e29b57 = L.tileLayer(\n", + " var tile_layer_b0b0b6e8966e1d6a9583460fb6b3629c = L.tileLayer(\n", " "https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png",\n", " {\n", " "minZoom": 0,\n", @@ -2438,10 +2644,10 @@ " );\n", " \n", " \n", - " tile_layer_635ef3fdfea9043d6f1a937d65e29b57.addTo(map_946354e05bf1c24a463dc028f8dde936);\n", + " tile_layer_b0b0b6e8966e1d6a9583460fb6b3629c.addTo(map_59843b95fb96bf1124ed87e9ae102566);\n", " \n", " \n", - " var tile_layer_24e75efacd13bd0aa87d9b04829ebf35 = L.tileLayer(\n", + " var tile_layer_91c58bce6c89ef9a409e91a54133515d = L.tileLayer(\n", " "https://openveda.cloud/api/raster/collections/blizzard-goes-bombogenesis/items/GOES_TrueColor_cog_v2_2018-01-04/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=cog_default\\u0026bidx=1\\u0026bidx=2\\u0026bidx=3\\u0026rescale=0%2C15\\u0026resampling=bilinear",\n", " {\n", " "minZoom": 0,\n", @@ -2458,88 +2664,36 @@ " );\n", " \n", " \n", - " tile_layer_24e75efacd13bd0aa87d9b04829ebf35.addTo(map_946354e05bf1c24a463dc028f8dde936);\n", + " tile_layer_91c58bce6c89ef9a409e91a54133515d.addTo(map_59843b95fb96bf1124ed87e9ae102566);\n", " \n", " \n", - " var layer_control_a2f57e5c0718f6f58784a2f9fb0c3714_layers = {\n", + " var layer_control_d92c6b7264de576d87c908948210da00_layers = {\n", " base_layers : {\n", - " "CartoDB Positron" : tile_layer_635ef3fdfea9043d6f1a937d65e29b57,\n", + " "CartoDB Positron" : tile_layer_b0b0b6e8966e1d6a9583460fb6b3629c,\n", " },\n", " overlays : {\n", - " "GOES TrueColor Imagery" : tile_layer_24e75efacd13bd0aa87d9b04829ebf35,\n", + " "GOES TrueColor Imagery" : tile_layer_91c58bce6c89ef9a409e91a54133515d,\n", " },\n", " };\n", - " let layer_control_a2f57e5c0718f6f58784a2f9fb0c3714 = L.control.layers(\n", - " layer_control_a2f57e5c0718f6f58784a2f9fb0c3714_layers.base_layers,\n", - " layer_control_a2f57e5c0718f6f58784a2f9fb0c3714_layers.overlays,\n", + " let layer_control_d92c6b7264de576d87c908948210da00 = L.control.layers(\n", + " layer_control_d92c6b7264de576d87c908948210da00_layers.base_layers,\n", + " layer_control_d92c6b7264de576d87c908948210da00_layers.overlays,\n", " {\n", " "position": "topright",\n", " "collapsed": true,\n", " "autoZIndex": true,\n", "}\n", - " ).addTo(map_946354e05bf1c24a463dc028f8dde936);\n", + " ).addTo(map_59843b95fb96bf1124ed87e9ae102566);\n", "\n", " \n", - " \n", - " var color_map_394cf7b9e904910b88f888dc532640c1 = {};\n", - "\n", - " \n", - " color_map_394cf7b9e904910b88f888dc532640c1.color = d3.scale.threshold()\n", - " .domain([0.0, 0.03006012024048096, 0.06012024048096192, 0.09018036072144289, 0.12024048096192384, 0.15030060120240482, 0.18036072144288579, 0.21042084168336672, 0.24048096192384769, 0.27054108216432865, 0.30060120240480964, 0.3306613226452906, 0.36072144288577157, 0.3907815631262525, 0.42084168336673344, 0.45090180360721444, 0.48096192384769537, 0.5110220440881763, 0.5410821643286573, 0.5711422845691383, 0.6012024048096193, 0.6312625250501002, 0.6613226452905812, 0.6913827655310621, 0.7214428857715431, 0.751503006012024, 0.781563126252505, 0.811623246492986, 0.8416833667334669, 0.8717434869739479, 0.9018036072144289, 0.9318637274549099, 0.9619238476953907, 0.9919839679358717, 1.0220440881763526, 1.0521042084168337, 1.0821643286573146, 1.1122244488977955, 1.1422845691382766, 1.1723446893787575, 1.2024048096192386, 1.2324649298597194, 1.2625250501002003, 1.2925851703406814, 1.3226452905811623, 1.3527054108216432, 1.3827655310621243, 1.4128256513026052, 1.4428857715430863, 1.4729458917835672, 1.503006012024048, 1.5330661322645291, 1.56312625250501, 1.593186372745491, 1.623246492985972, 1.653306613226453, 1.6833667334669338, 1.7134268537074149, 1.7434869739478958, 1.7735470941883769, 1.8036072144288577, 1.8336673346693386, 1.8637274549098197, 1.8937875751503006, 1.9238476953907815, 1.9539078156312626, 1.9839679358717435, 2.0140280561122244, 2.0440881763527052, 2.0741482965931866, 2.1042084168336674, 2.1342685370741483, 2.164328657314629, 2.19438877755511, 2.224448897795591, 2.2545090180360723, 2.284569138276553, 2.314629258517034, 2.344689378757515, 2.374749498997996, 2.404809619238477, 2.434869739478958, 2.464929859719439, 2.49498997995992, 2.5250501002004007, 2.555110220440882, 2.585170340681363, 2.6152304609218437, 2.6452905811623246, 2.6753507014028055, 2.7054108216432864, 2.7354709418837677, 2.7655310621242486, 2.7955911823647295, 2.8256513026052104, 2.8557114228456912, 2.8857715430861726, 2.9158316633266534, 2.9458917835671343, 2.975951903807615, 3.006012024048096, 3.036072144288577, 3.0661322645290583, 3.096192384769539, 3.12625250501002, 3.156312625250501, 3.186372745490982, 3.216432865731463, 3.246492985971944, 3.276553106212425, 3.306613226452906, 3.3366733466933867, 3.3667334669338675, 3.396793587174349, 3.4268537074148298, 3.4569138276553106, 3.4869739478957915, 3.5170340681362724, 3.5470941883767537, 3.5771543086172346, 3.6072144288577155, 3.6372745490981964, 3.6673346693386772, 3.697394789579158, 3.7274549098196395, 3.7575150300601203, 3.787575150300601, 3.817635270541082, 3.847695390781563, 3.8777555110220443, 3.907815631262525, 3.937875751503006, 3.967935871743487, 3.997995991983968, 4.028056112224449, 4.05811623246493, 4.0881763527054105, 4.118236472945892, 4.148296593186373, 4.1783567134268536, 4.208416833667335, 4.238476953907815, 4.268537074148297, 4.298597194388778, 4.328657314629258, 4.35871743486974, 4.38877755511022, 4.4188376753507015, 4.448897795591182, 4.478957915831663, 4.509018036072145, 4.539078156312625, 4.569138276553106, 4.599198396793587, 4.629258517034068, 4.659318637274549, 4.68937875751503, 4.719438877755511, 4.749498997995992, 4.779559118236473, 4.809619238476954, 4.839679358717435, 4.869739478957916, 4.8997995991983965, 4.929859719438878, 4.959919839679359, 4.98997995991984, 5.020040080160321, 5.050100200400801, 5.080160320641283, 5.110220440881764, 5.140280561122244, 5.170340681362726, 5.200400801603206, 5.2304609218436875, 5.260521042084168, 5.290581162324649, 5.320641282565131, 5.350701402805611, 5.380761523046092, 5.410821643286573, 5.440881763527054, 5.470941883767535, 5.501002004008016, 5.531062124248497, 5.561122244488978, 5.591182364729459, 5.62124248496994, 5.651302605210421, 5.681362725450902, 5.7114228456913825, 5.741482965931864, 5.771543086172345, 5.801603206412826, 5.831663326653307, 5.861723446893787, 5.891783567134269, 5.921843687374749, 5.95190380761523, 5.981963927855712, 6.012024048096192, 6.0420841683366735, 6.072144288577154, 6.102204408817635, 6.132264529058117, 6.162324649298597, 6.192384769539078, 6.222444889779559, 6.25250501002004, 6.282565130260521, 6.312625250501002, 6.342685370741483, 6.372745490981964, 6.402805611222445, 6.432865731462926, 6.462925851703407, 6.492985971943888, 6.5230460921843685, 6.55310621242485, 6.58316633266533, 6.613226452905812, 6.643286573146293, 6.673346693386773, 6.703406813627255, 6.733466933867735, 6.763527054108216, 6.793587174348698, 6.823647294589178, 6.8537074148296595, 6.88376753507014, 6.913827655310621, 6.943887775551103, 6.973947895791583, 7.004008016032064, 7.034068136272545, 7.064128256513026, 7.094188376753507, 7.124248496993988, 7.154308617234469, 7.18436873747495, 7.214428857715431, 7.244488977955911, 7.274549098196393, 7.304609218436874, 7.3346693386773545, 7.364729458917836, 7.394789579158316, 7.424849699398798, 7.454909819639279, 7.484969939879759, 7.515030060120241, 7.545090180360721, 7.575150300601202, 7.605210420841684, 7.635270541082164, 7.6653306613226455, 7.695390781563126, 7.725450901803607, 7.755511022044089, 7.785571142284569, 7.81563126252505, 7.845691382765531, 7.875751503006012, 7.905811623246493, 7.935871743486974, 7.965931863727455, 7.995991983967936, 8.026052104208416, 8.056112224448897, 8.086172344689379, 8.11623246492986, 8.146292585170341, 8.176352705410821, 8.206412825651302, 8.236472945891784, 8.266533066132265, 8.296593186372746, 8.326653306613226, 8.356713426853707, 8.386773547094188, 8.41683366733467, 8.446893787575151, 8.47695390781563, 8.507014028056112, 8.537074148296593, 8.567134268537075, 8.597194388777556, 8.627254509018035, 8.657314629258517, 8.687374749498998, 8.71743486973948, 8.74749498997996, 8.77755511022044, 8.807615230460922, 8.837675350701403, 8.867735470941884, 8.897795591182364, 8.927855711422845, 8.957915831663327, 8.987975951903808, 9.01803607214429, 9.048096192384769, 9.07815631262525, 9.108216432865731, 9.138276553106213, 9.168336673346694, 9.198396793587174, 9.228456913827655, 9.258517034068136, 9.288577154308618, 9.318637274549099, 9.348697394789578, 9.37875751503006, 9.408817635270541, 9.438877755511022, 9.468937875751504, 9.498997995991983, 9.529058116232465, 9.559118236472946, 9.589178356713427, 9.619238476953909, 9.649298597194388, 9.67935871743487, 9.70941883767535, 9.739478957915832, 9.769539078156313, 9.799599198396793, 9.829659318637274, 9.859719438877756, 9.889779559118237, 9.919839679358718, 9.949899799599198, 9.97995991983968, 10.01002004008016, 10.040080160320642, 10.070140280561123, 10.100200400801603, 10.130260521042084, 10.160320641282565, 10.190380761523047, 10.220440881763528, 10.250501002004007, 10.280561122244489, 10.31062124248497, 10.340681362725451, 10.370741482965931, 10.400801603206412, 10.430861723446894, 10.460921843687375, 10.490981963927856, 10.521042084168336, 10.551102204408817, 10.581162324649299, 10.61122244488978, 10.641282565130261, 10.67134268537074, 10.701402805611222, 10.731462925851703, 10.761523046092185, 10.791583166332666, 10.821643286573146, 10.851703406813627, 10.881763527054108, 10.91182364729459, 10.94188376753507, 10.97194388777555, 11.002004008016032, 11.032064128256513, 11.062124248496994, 11.092184368737476, 11.122244488977955, 11.152304609218437, 11.182364729458918, 11.2124248496994, 11.24248496993988, 11.27254509018036, 11.302605210420841, 11.332665330661323, 11.362725450901804, 11.392785571142285, 11.422845691382765, 11.452905811623246, 11.482965931863728, 11.513026052104209, 11.54308617234469, 11.57314629258517, 11.603206412825651, 11.633266533066132, 11.663326653306614, 11.693386773547093, 11.723446893787575, 11.753507014028056, 11.783567134268537, 11.813627254509019, 11.843687374749498, 11.87374749498998, 11.90380761523046, 11.933867735470942, 11.963927855711423, 11.993987975951903, 12.024048096192384, 12.054108216432866, 12.084168336673347, 12.114228456913828, 12.144288577154308, 12.17434869739479, 12.20440881763527, 12.234468937875752, 12.264529058116233, 12.294589178356713, 12.324649298597194, 12.354709418837675, 12.384769539078157, 12.414829659318638, 12.444889779559118, 12.474949899799599, 12.50501002004008, 12.535070140280562, 12.565130260521043, 12.595190380761522, 12.625250501002004, 12.655310621242485, 12.685370741482966, 12.715430861723448, 12.745490981963927, 12.775551102204409, 12.80561122244489, 12.835671342685371, 12.865731462925853, 12.895791583166332, 12.925851703406813, 12.955911823647295, 12.985971943887776, 13.016032064128256, 13.046092184368737, 13.076152304609218, 13.1062124248497, 13.136272545090181, 13.16633266533066, 13.196392785571142, 13.226452905811623, 13.256513026052104, 13.286573146292586, 13.316633266533065, 13.346693386773547, 13.376753507014028, 13.40681362725451, 13.43687374749499, 13.46693386773547, 13.496993987975952, 13.527054108216433, 13.557114228456914, 13.587174348697395, 13.617234468937875, 13.647294589178356, 13.677354709418838, 13.707414829659319, 13.7374749498998, 13.76753507014028, 13.797595190380761, 13.827655310621243, 13.857715430861724, 13.887775551102205, 13.917835671342685, 13.947895791583166, 13.977955911823647, 14.008016032064129, 14.03807615230461, 14.06813627254509, 14.098196392785571, 14.128256513026052, 14.158316633266534, 14.188376753507015, 14.218436873747494, 14.248496993987976, 14.278557114228457, 14.308617234468938, 14.338677354709418, 14.3687374749499, 14.39879759519038, 14.428857715430862, 14.458917835671343, 14.488977955911823, 14.519038076152304, 14.549098196392785, 14.579158316633267, 14.609218436873748, 14.639278557114228, 14.669338677354709, 14.69939879759519, 14.729458917835672, 14.759519038076153, 14.789579158316633, 14.819639278557114, 14.849699398797595, 14.879759519038076, 14.909819639278558, 14.939879759519037, 14.969939879759519, 15.0])\n", - " .range(['#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#440154ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#482778ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#3e4989ff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#30688eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#25838eff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#1e9e89ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#35b779ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#6ece58ff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#b5de2bff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff', '#fee724ff']);\n", - " \n", - "\n", - " color_map_394cf7b9e904910b88f888dc532640c1.x = d3.scale.linear()\n", - " .domain([0.0, 15.0])\n", - " .range([0, 450 - 50]);\n", - "\n", - " color_map_394cf7b9e904910b88f888dc532640c1.legend = L.control({position: 'topright'});\n", - " color_map_394cf7b9e904910b88f888dc532640c1.legend.onAdd = function (map) {var div = L.DomUtil.create('div', 'legend'); return div};\n", - " color_map_394cf7b9e904910b88f888dc532640c1.legend.addTo(map_946354e05bf1c24a463dc028f8dde936);\n", - "\n", - " color_map_394cf7b9e904910b88f888dc532640c1.xAxis = d3.svg.axis()\n", - " .scale(color_map_394cf7b9e904910b88f888dc532640c1.x)\n", - " .orient("top")\n", - " .tickSize(1)\n", - " .tickValues([0.0, '', 3.0, '', 6.0, '', 9.0, '', 12.0, '', 15.0, '']);\n", - "\n", - " color_map_394cf7b9e904910b88f888dc532640c1.svg = d3.select(".legend.leaflet-control").append("svg")\n", - " .attr("id", 'legend')\n", - " .attr("width", 450)\n", - " .attr("height", 40);\n", - "\n", - " color_map_394cf7b9e904910b88f888dc532640c1.g = color_map_394cf7b9e904910b88f888dc532640c1.svg.append("g")\n", - " .attr("class", "key")\n", - " .attr("fill", "black")\n", - " .attr("transform", "translate(25,16)");\n", - "\n", - " color_map_394cf7b9e904910b88f888dc532640c1.g.selectAll("rect")\n", - " .data(color_map_394cf7b9e904910b88f888dc532640c1.color.range().map(function(d, i) {\n", - " return {\n", - " x0: i ? color_map_394cf7b9e904910b88f888dc532640c1.x(color_map_394cf7b9e904910b88f888dc532640c1.color.domain()[i - 1]) : color_map_394cf7b9e904910b88f888dc532640c1.x.range()[0],\n", - " x1: i < color_map_394cf7b9e904910b88f888dc532640c1.color.domain().length ? color_map_394cf7b9e904910b88f888dc532640c1.x(color_map_394cf7b9e904910b88f888dc532640c1.color.domain()[i]) : color_map_394cf7b9e904910b88f888dc532640c1.x.range()[1],\n", - " z: d\n", - " };\n", - " }))\n", - " .enter().append("rect")\n", - " .attr("height", 40 - 30)\n", - " .attr("x", function(d) { return d.x0; })\n", - " .attr("width", function(d) { return d.x1 - d.x0; })\n", - " .style("fill", function(d) { return d.z; });\n", - "\n", - " color_map_394cf7b9e904910b88f888dc532640c1.g.call(color_map_394cf7b9e904910b88f888dc532640c1.xAxis).append("text")\n", - " .attr("class", "caption")\n", - " .attr("y", 21)\n", - " .attr("fill", "black")\n", - " .text("Value");\n", "</script>\n", "</html>\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen>
      " ], "text/plain": [ - "" + "" ] }, - "execution_count": 18, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -2557,6 +2711,8 @@ " tile_name=\"GOES TrueColor Imagery\",\n", " opacity=0.8,\n", " height=\"800px\",\n", + " remove_default_legend=True\n", + " \n", ")\n", "\n", "# Display the map\n", @@ -2575,7 +2731,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "id": "1d44a2bb-d651-43db-a7e2-2c78a26b51ab", "metadata": {}, "outputs": [ @@ -2601,7 +2757,7 @@ " <meta name="viewport" content="width=device-width,\n", " initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />\n", " <style>\n", - " #map_d7874457a0e160de81b493cb48f8af69 {\n", + " #map_34004cb211f151c2d4b93120b7cdb167 {\n", " position: relative;\n", " width: 100.0%;\n", " height: 800.0px;\n", @@ -2634,35 +2790,267 @@ " </script>\n", "\n", " \n", - " <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>\n", "</head>\n", "<body>\n", " \n", " \n", - " <div style="\n", - " position: fixed;\n", - " top: 10px;\n", - " left: 50%;\n", - " transform: translateX(-50%);\n", - " z-index: 1000;\n", - " font-size: 18px;\n", - " font-weight: bold;\n", - " background: rgba(255,255,255,0.8);\n", - " padding: 4px 8px;\n", - " border-radius: 4px;\n", - " ">\n", - " DCVZ Blizzard Count β€” (1950-2021)\n", - " </div>\n", - " \n", - " \n", - " <div class="folium-map" id="map_d7874457a0e160de81b493cb48f8af69" ></div>\n", + " <div style="\n", + " position: fixed;\n", + " top: 60px;\n", + " left: 50%;\n", + " transform: translateX(-50%);\n", + " z-index: 1000;\n", + " background: white;\n", + " padding: 15px 20px 10px 20px;\n", + " border-radius: 4px;\n", + " box-shadow: 0 2px 4px rgba(0,0,0,0.2);\n", + " ">\n", + " <div style="\n", + " position: relative;\n", + " width: 450px;\n", + " height: 15px;\n", + " background: linear-gradient(to right, rgba(48, 18, 59, 1) 0.0%, rgba(50, 24, 74, 1) 1.0101010101010102%, rgba(54, 33, 95, 1) 2.0202020202020203%, rgba(56, 38, 108, 1) 3.0303030303030303%, rgba(59, 47, 127, 1) 4.040404040404041%, rgba(60, 53, 139, 1) 5.05050505050505%, rgba(63, 61, 156, 1) 6.0606060606060606%, rgba(65, 69, 171, 1) 7.07070707070707%, rgba(66, 75, 181, 1) 8.080808080808081%, rgba(67, 83, 194, 1) 9.090909090909092%, rgba(68, 88, 203, 1) 10.1010101010101%, rgba(69, 96, 214, 1) 11.11111111111111%, rgba(70, 104, 224, 1) 12.121212121212121%, rgba(70, 109, 230, 1) 13.131313131313133%, rgba(70, 117, 237, 1) 14.14141414141414%, rgba(70, 122, 242, 1) 15.151515151515152%, rgba(70, 130, 248, 1) 16.161616161616163%, rgba(69, 135, 251, 1) 17.17171717171717%, rgba(67, 142, 253, 1) 18.181818181818183%, rgba(64, 150, 254, 1) 19.19191919191919%, rgba(62, 155, 254, 1) 20.2020202020202%, rgba(57, 162, 252, 1) 21.21212121212121%, rgba(54, 168, 249, 1) 22.22222222222222%, rgba(49, 175, 245, 1) 23.232323232323232%, rgba(43, 182, 239, 1) 24.242424242424242%, rgba(40, 187, 235, 1) 25.252525252525253%, rgba(35, 194, 228, 1) 26.262626262626267%, rgba(32, 198, 223, 1) 27.27272727272727%, rgba(28, 205, 215, 1) 28.28282828282828%, rgba(26, 209, 210, 1) 29.292929292929294%, rgba(24, 215, 202, 1) 30.303030303030305%, rgba(23, 220, 194, 1) 31.313131313131315%, rgba(24, 224, 189, 1) 32.323232323232325%, rgba(26, 228, 182, 1) 33.33333333333333%, rgba(29, 231, 177, 1) 34.34343434343434%, rgba(34, 235, 169, 1) 35.35353535353536%, rgba(41, 238, 160, 1) 36.36363636363637%, rgba(47, 240, 154, 1) 37.37373737373738%, rgba(56, 244, 145, 1) 38.38383838383838%, rgba(63, 245, 138, 1) 39.39393939393939%, rgba(74, 248, 128, 1) 40.4040404040404%, rgba(85, 250, 118, 1) 41.41414141414141%, rgba(93, 251, 111, 1) 42.42424242424242%, rgba(105, 253, 101, 1) 43.43434343434344%, rgba(113, 253, 95, 1) 44.44444444444444%, rgba(124, 254, 86, 1) 45.45454545454545%, rgba(132, 254, 80, 1) 46.464646464646464%, rgba(142, 254, 72, 1) 47.474747474747474%, rgba(152, 254, 66, 1) 48.484848484848484%, rgba(158, 253, 62, 1) 49.494949494949495%, rgba(166, 251, 58, 1) 50.505050505050505%, rgba(172, 250, 55, 1) 51.515151515151516%, rgba(179, 248, 53, 1) 52.52525252525253%, rgba(187, 244, 52, 1) 53.535353535353536%, rgba(192, 242, 51, 1) 54.54545454545454%, rgba(200, 238, 51, 1) 55.55555555555556%, rgba(205, 235, 52, 1) 56.56565656565656%, rgba(212, 231, 53, 1) 57.57575757575758%, rgba(216, 227, 53, 1) 58.58585858585859%, rgba(223, 222, 54, 1) 59.59595959595959%, rgba(229, 216, 56, 1) 60.60606060606061%, rgba(232, 213, 56, 1) 61.61616161616161%, rgba(237, 207, 57, 1) 62.62626262626263%, rgba(240, 203, 58, 1) 63.63636363636363%, rgba(244, 196, 58, 1) 64.64646464646465%, rgba(248, 190, 57, 1) 65.65656565656566%, rgba(249, 186, 56, 1) 66.66666666666666%, rgba(251, 179, 54, 1) 67.67676767676768%, rgba(252, 174, 52, 1) 68.68686868686868%, rgba(253, 166, 49, 1) 69.6969696969697%, rgba(254, 158, 46, 1) 70.70707070707071%, rgba(254, 152, 44, 1) 71.71717171717171%, rgba(253, 143, 40, 1) 72.72727272727273%, rgba(252, 137, 38, 1) 73.73737373737373%, rgba(251, 128, 34, 1) 74.74747474747475%, rgba(250, 122, 31, 1) 75.75757575757575%, rgba(247, 113, 27, 1) 76.76767676767676%, rgba(245, 104, 23, 1) 77.77777777777779%, rgba(243, 99, 21, 1) 78.78787878787878%, rgba(239, 90, 17, 1) 79.7979797979798%, rgba(237, 85, 15, 1) 80.8080808080808%, rgba(233, 77, 13, 1) 81.81818181818183%, rgba(229, 70, 10, 1) 82.82828282828282%, rgba(226, 66, 9, 1) 83.83838383838383%, rgba(221, 60, 7, 1) 84.84848484848484%, rgba(217, 56, 6, 1) 85.85858585858585%, rgba(212, 50, 5, 1) 86.86868686868688%, rgba(208, 47, 4, 1) 87.87878787878788%, rgba(201, 41, 3, 1) 88.88888888888889%, rgba(195, 36, 2, 1) 89.8989898989899%, rgba(190, 33, 2, 1) 90.9090909090909%, rgba(182, 28, 1, 1) 91.91919191919192%, rgba(177, 25, 1, 1) 92.92929292929293%, rgba(169, 21, 1, 1) 93.93939393939394%, rgba(160, 17, 1, 1) 94.94949494949495%, rgba(154, 14, 1, 1) 95.95959595959596%, rgba(145, 11, 1, 1) 96.96969696969697%, rgba(139, 9, 1, 1) 97.97979797979798%, rgba(129, 6, 2, 1) 98.98989898989899%, rgba(122, 4, 2, 1) 100.0%);\n", + " border: 1px solid black;\n", + " margin: 0 auto;\n", + " ">\n", + " <div style="position: relative; width: 100%; height: 100%;">\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 0.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 10.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 20.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 30.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 40.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 50.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 60.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 70.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 80.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 90.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 100.0%;\n", + " top: 0;\n", + " width: 1px;\n", + " height: 8px;\n", + " background: black;\n", + " "></div>\n", + " \n", + " </div>\n", + " <div style="position: relative; width: 100%; height: 30px;">\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 0.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">1.00</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 10.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">6</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 20.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">11</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 30.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">16</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 40.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">21</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 50.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">26</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 60.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">30</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 70.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">35</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 80.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">40</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 90.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">45</div>\n", + " \n", + " <div style="\n", + " position: absolute;\n", + " left: 100.0%;\n", + " transform: translateX(-50%);\n", + " top: 10px;\n", + " font-size: 11px;\n", + " white-space: nowrap;\n", + " ">50</div>\n", + " \n", + " </div>\n", + " </div>\n", + " <div style="text-align: center; margin-top: 25px; font-size: 12px;">\n", + " count\n", + " </div>\n", + " </div>\n", + " \n", + " \n", + " <div style="\n", + " position: fixed;\n", + " top: 10px;\n", + " left: 50%;\n", + " transform: translateX(-50%);\n", + " z-index: 1000;\n", + " font-size: 18px;\n", + " font-weight: bold;\n", + " background: rgba(255,255,255,0.8);\n", + " padding: 8px 20px;\n", + " min-width: 750px;\n", + " text-align: center;\n", + " border-radius: 4px;\n", + " box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n", + " ">\n", + " DCVZ Blizzard Count β€” (1950-2021)\n", + " </div>\n", + " \n", + " \n", + " <div class="folium-map" id="map_34004cb211f151c2d4b93120b7cdb167" ></div>\n", " \n", "</body>\n", "<script>\n", " \n", " \n", - " var map_d7874457a0e160de81b493cb48f8af69 = L.map(\n", - " "map_d7874457a0e160de81b493cb48f8af69",\n", + " var map_34004cb211f151c2d4b93120b7cdb167 = L.map(\n", + " "map_34004cb211f151c2d4b93120b7cdb167",\n", " {\n", " center: [40.5, -103.0],\n", " crs: L.CRS.EPSG3857,\n", @@ -2674,13 +3062,13 @@ "\n", " }\n", " );\n", - " L.control.scale().addTo(map_d7874457a0e160de81b493cb48f8af69);\n", + " L.control.scale().addTo(map_34004cb211f151c2d4b93120b7cdb167);\n", "\n", " \n", "\n", " \n", " \n", - " var tile_layer_f83b03b877ff7f7210dd8643b75e8cdc = L.tileLayer(\n", + " var tile_layer_300e6e88f7951735d1fc5c0d8a07a875 = L.tileLayer(\n", " "https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png",\n", " {\n", " "minZoom": 0,\n", @@ -2697,10 +3085,10 @@ " );\n", " \n", " \n", - " tile_layer_f83b03b877ff7f7210dd8643b75e8cdc.addTo(map_d7874457a0e160de81b493cb48f8af69);\n", + " tile_layer_300e6e88f7951735d1fc5c0d8a07a875.addTo(map_34004cb211f151c2d4b93120b7cdb167);\n", " \n", " \n", - " var tile_layer_60b72b55ad6d93b916ebe03fc3a5f74c = L.tileLayer(\n", + " var tile_layer_756c36e6e0f3e84868c6435c050672d3 = L.tileLayer(\n", " "https://openveda.cloud/api/raster/collections/blizzard-count/items/StormEvents_Blizzards_cog_2021-12-31/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=cog_default\\u0026color_formula=gamma+r+1.05\\u0026colormap_name=turbo\\u0026rescale=1%2C50",\n", " {\n", " "minZoom": 0,\n", @@ -2717,88 +3105,36 @@ " );\n", " \n", " \n", - " tile_layer_60b72b55ad6d93b916ebe03fc3a5f74c.addTo(map_d7874457a0e160de81b493cb48f8af69);\n", + " tile_layer_756c36e6e0f3e84868c6435c050672d3.addTo(map_34004cb211f151c2d4b93120b7cdb167);\n", " \n", " \n", - " var layer_control_016ed6fa89f98a89e5e7745cca44da95_layers = {\n", + " var layer_control_82b5524824a12c0d323124be4215147d_layers = {\n", " base_layers : {\n", - " "CartoDB Positron" : tile_layer_f83b03b877ff7f7210dd8643b75e8cdc,\n", + " "CartoDB Positron" : tile_layer_300e6e88f7951735d1fc5c0d8a07a875,\n", " },\n", " overlays : {\n", - " "NCEI Blizzard Count (1950-2021)" : tile_layer_60b72b55ad6d93b916ebe03fc3a5f74c,\n", + " "NCEI Blizzard Count (1950-2021)" : tile_layer_756c36e6e0f3e84868c6435c050672d3,\n", " },\n", " };\n", - " let layer_control_016ed6fa89f98a89e5e7745cca44da95 = L.control.layers(\n", - " layer_control_016ed6fa89f98a89e5e7745cca44da95_layers.base_layers,\n", - " layer_control_016ed6fa89f98a89e5e7745cca44da95_layers.overlays,\n", + " let layer_control_82b5524824a12c0d323124be4215147d = L.control.layers(\n", + " layer_control_82b5524824a12c0d323124be4215147d_layers.base_layers,\n", + " layer_control_82b5524824a12c0d323124be4215147d_layers.overlays,\n", " {\n", " "position": "topright",\n", " "collapsed": true,\n", " "autoZIndex": true,\n", "}\n", - " ).addTo(map_d7874457a0e160de81b493cb48f8af69);\n", + " ).addTo(map_34004cb211f151c2d4b93120b7cdb167);\n", "\n", " \n", - " \n", - " var color_map_4eb0326b097beac93fc2ab0415ea52f0 = {};\n", - "\n", - " \n", - " color_map_4eb0326b097beac93fc2ab0415ea52f0.color = d3.scale.threshold()\n", - " .domain([1.0, 1.0981963927855711, 1.1963927855711423, 1.2945891783567134, 1.3927855711422845, 1.4909819639278556, 1.5891783567134268, 1.6873747494989981, 1.785571142284569, 1.8837675350701404, 1.9819639278557113, 2.0801603206412826, 2.1783567134268536, 2.276553106212425, 2.3747494989979963, 2.472945891783567, 2.571142284569138, 2.6693386773547094, 2.7675350701402808, 2.8657314629258517, 2.9639278557114226, 3.062124248496994, 3.1603206412825653, 3.258517034068136, 3.3567134268537075, 3.4549098196392785, 3.55310621242485, 3.6513026052104207, 3.749498997995992, 3.847695390781563, 3.9458917835671343, 4.044088176352705, 4.142284569138276, 4.240480961923847, 4.338677354709419, 4.436873747494991, 4.5350701402805615, 4.6332665330661325, 4.731462925851703, 4.829659318637274, 4.927855711422845, 5.026052104208417, 5.124248496993988, 5.222444889779559, 5.320641282565131, 5.4188376753507015, 5.517034068136272, 5.615230460921843, 5.713426853707415, 5.811623246492986, 5.909819639278557, 6.008016032064128, 6.1062124248497, 6.2044088176352705, 6.302605210420841, 6.400801603206413, 6.498997995991984, 6.597194388777555, 6.695390781563126, 6.793587174348698, 6.891783567134269, 6.98997995991984, 7.0881763527054105, 7.186372745490982, 7.284569138276553, 7.382765531062124, 7.480961923847695, 7.579158316633267, 7.677354709418838, 7.775551102204409, 7.87374749498998, 7.971943887775551, 8.070140280561123, 8.168336673346694, 8.266533066132265, 8.364729458917836, 8.462925851703407, 8.561122244488978, 8.659318637274549, 8.75751503006012, 8.85571142284569, 8.953907815631261, 9.052104208416834, 9.150300601202405, 9.248496993987976, 9.346693386773547, 9.444889779559118, 9.54308617234469, 9.641282565130261, 9.739478957915832, 9.837675350701403, 9.935871743486974, 10.034068136272545, 10.132264529058116, 10.230460921843687, 10.32865731462926, 10.42685370741483, 10.525050100200401, 10.623246492985972, 10.721442885771543, 10.819639278557114, 10.917835671342685, 11.016032064128256, 11.114228456913828, 11.2124248496994, 11.31062124248497, 11.408817635270541, 11.507014028056112, 11.605210420841683, 11.703406813627254, 11.801603206412826, 11.899799599198397, 11.997995991983968, 12.09619238476954, 12.19438877755511, 12.292585170340681, 12.390781563126252, 12.488977955911823, 12.587174348697395, 12.685370741482966, 12.783567134268537, 12.881763527054108, 12.97995991983968, 13.07815631262525, 13.176352705410821, 13.274549098196394, 13.372745490981965, 13.470941883767535, 13.569138276553106, 13.667334669338677, 13.765531062124248, 13.863727454909819, 13.96192384769539, 14.060120240480963, 14.158316633266534, 14.256513026052104, 14.354709418837675, 14.452905811623246, 14.551102204408817, 14.649298597194388, 14.74749498997996, 14.845691382765532, 14.943887775551103, 15.042084168336673, 15.140280561122244, 15.238476953907815, 15.336673346693386, 15.434869739478957, 15.53306613226453, 15.6312625250501, 15.729458917835672, 15.827655310621243, 15.925851703406813, 16.024048096192384, 16.122244488977955, 16.22044088176353, 16.318637274549097, 16.41683366733467, 16.51503006012024, 16.613226452905813, 16.71142284569138, 16.809619238476955, 16.907815631262523, 17.006012024048097, 17.104208416833668, 17.20240480961924, 17.30060120240481, 17.39879759519038, 17.49699398797595, 17.595190380761522, 17.693386773547093, 17.791583166332664, 17.889779559118235, 17.987975951903806, 18.08617234468938, 18.18436873747495, 18.282565130260522, 18.380761523046093, 18.478957915831664, 18.577154308617235, 18.675350701402806, 18.773547094188377, 18.871743486973948, 18.96993987975952, 19.06813627254509, 19.16633266533066, 19.26452905811623, 19.362725450901802, 19.460921843687373, 19.559118236472944, 19.65731462925852, 19.75551102204409, 19.85370741482966, 19.95190380761523, 20.050100200400802, 20.148296593186373, 20.246492985971944, 20.344689378757515, 20.442885771543086, 20.541082164328657, 20.639278557114228, 20.7374749498998, 20.83567134268537, 20.93386773547094, 21.03206412825651, 21.130260521042086, 21.228456913827657, 21.326653306613228, 21.4248496993988, 21.52304609218437, 21.62124248496994, 21.71943887775551, 21.817635270541082, 21.915831663326653, 22.014028056112224, 22.112224448897795, 22.210420841683366, 22.308617234468937, 22.406813627254508, 22.50501002004008, 22.603206412825653, 22.701402805611224, 22.799599198396795, 22.897795591182366, 22.995991983967937, 23.094188376753507, 23.19238476953908, 23.29058116232465, 23.38877755511022, 23.48697394789579, 23.585170340681362, 23.683366733466933, 23.781563126252504, 23.879759519038075, 23.977955911823646, 24.07615230460922, 24.17434869739479, 24.272545090180362, 24.370741482965933, 24.468937875751504, 24.567134268537075, 24.665330661322646, 24.763527054108216, 24.861723446893787, 24.95991983967936, 25.05811623246493, 25.1563126252505, 25.25450901803607, 25.352705410821642, 25.450901803607213, 25.549098196392787, 25.647294589178358, 25.74549098196393, 25.8436873747495, 25.94188376753507, 26.04008016032064, 26.138276553106213, 26.236472945891784, 26.334669338677354, 26.432865731462925, 26.531062124248496, 26.629258517034067, 26.727454909819638, 26.82565130260521, 26.92384769539078, 27.022044088176354, 27.120240480961925, 27.218436873747496, 27.316633266533067, 27.414829659318638, 27.51302605210421, 27.61122244488978, 27.70941883767535, 27.80761523046092, 27.905811623246493, 28.004008016032063, 28.102204408817634, 28.200400801603205, 28.298597194388776, 28.396793587174347, 28.49498997995992, 28.593186372745492, 28.691382765531063, 28.789579158316634, 28.887775551102205, 28.985971943887776, 29.084168336673347, 29.182364729458918, 29.28056112224449, 29.37875751503006, 29.47695390781563, 29.5751503006012, 29.673346693386772, 29.771543086172343, 29.869739478957914, 29.96793587174349, 30.06613226452906, 30.16432865731463, 30.2625250501002, 30.360721442885772, 30.458917835671343, 30.557114228456914, 30.655310621242485, 30.753507014028056, 30.851703406813627, 30.949899799599198, 31.04809619238477, 31.14629258517034, 31.24448897795591, 31.34268537074148, 31.440881763527056, 31.539078156312627, 31.637274549098198, 31.73547094188377, 31.83366733466934, 31.93186372745491, 32.03006012024048, 32.12825651302605, 32.22645290581163, 32.324649298597194, 32.42284569138276, 32.521042084168336, 32.61923847695391, 32.71743486973948, 32.815631262525045, 32.91382765531062, 33.012024048096194, 33.11022044088176, 33.208416833667336, 33.3066132264529, 33.40480961923848, 33.503006012024045, 33.60120240480962, 33.699398797595194, 33.79759519038076, 33.895791583166336, 33.9939879759519, 34.09218436873748, 34.190380761523045, 34.28857715430862, 34.38677354709419, 34.48496993987976, 34.58316633266533, 34.6813627254509, 34.77955911823647, 34.877755511022045, 34.97595190380761, 35.07414829659319, 35.17234468937876, 35.27054108216433, 35.3687374749499, 35.46693386773547, 35.565130260521045, 35.66332665330661, 35.76152304609219, 35.859719438877754, 35.95791583166333, 36.056112224448896, 36.15430861723447, 36.25250501002004, 36.35070140280561, 36.44889779559118, 36.547094188376754, 36.64529058116233, 36.743486973947896, 36.84168336673347, 36.93987975951904, 37.03807615230461, 37.13627254509018, 37.234468937875754, 37.33266533066132, 37.430861723446895, 37.52905811623246, 37.62725450901804, 37.725450901803605, 37.82364729458918, 37.921843687374746, 38.02004008016032, 38.11823647294589, 38.21643286573146, 38.31462925851704, 38.412825651302605, 38.51102204408818, 38.609218436873746, 38.70741482965932, 38.80561122244489, 38.90380761523046, 39.00200400801603, 39.100200400801604, 39.19839679358717, 39.296593186372746, 39.394789579158314, 39.49298597194389, 39.591182364729455, 39.68937875751503, 39.787575150300604, 39.88577154308617, 39.983967935871746, 40.08216432865731, 40.18036072144289, 40.278557114228455, 40.37675350701403, 40.4749498997996, 40.57314629258517, 40.67134268537074, 40.76953907815631, 40.86773547094188, 40.965931863727455, 41.06412825651302, 41.1623246492986, 41.26052104208417, 41.35871743486974, 41.45691382765531, 41.55511022044088, 41.653306613226455, 41.75150300601202, 41.8496993987976, 41.947895791583164, 42.04609218436874, 42.144288577154306, 42.24248496993988, 42.34068136272545, 42.43887775551102, 42.53707414829659, 42.635270541082164, 42.73346693386774, 42.831663326653306, 42.92985971943888, 43.02805611222445, 43.12625250501002, 43.22444889779559, 43.322645290581164, 43.42084168336673, 43.519038076152306, 43.61723446893787, 43.71543086172345, 43.813627254509015, 43.91182364729459, 44.01002004008016, 44.10821643286573, 44.206412825651306, 44.30460921843687, 44.40280561122245, 44.501002004008015, 44.59919839679359, 44.69739478957916, 44.79559118236473, 44.8937875751503, 44.99198396793587, 45.09018036072144, 45.188376753507015, 45.28657314629258, 45.38476953907816, 45.482965931863724, 45.5811623246493, 45.67935871743487, 45.77755511022044, 45.875751503006015, 45.97394789579158, 46.07214428857716, 46.170340681362724, 46.2685370741483, 46.366733466933866, 46.46492985971944, 46.56312625250501, 46.66132264529058, 46.75951903807615, 46.857715430861724, 46.95591182364729, 47.054108216432866, 47.15230460921844, 47.25050100200401, 47.34869739478958, 47.44689378757515, 47.545090180360724, 47.64328657314629, 47.741482965931866, 47.83967935871743, 47.93787575150301, 48.036072144288575, 48.13426853707415, 48.23246492985972, 48.33066132264529, 48.42885771543086, 48.52705410821643, 48.62525050100201, 48.723446893787575, 48.82164328657315, 48.91983967935872, 49.01803607214429, 49.11623246492986, 49.21442885771543, 49.312625250501, 49.410821643286575, 49.50901803607214, 49.607214428857716, 49.705410821643284, 49.80360721442886, 49.901803607214426, 50.0])\n", - " .range(['#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#30123bff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#4561d7ff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#36a8faff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#1ae5b7ff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#71fe5fff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#c9ef34ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#faba38ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#f66917ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#ca2903ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff', '#7a0402ff']);\n", - " \n", - "\n", - " color_map_4eb0326b097beac93fc2ab0415ea52f0.x = d3.scale.linear()\n", - " .domain([1.0, 50.0])\n", - " .range([0, 450 - 50]);\n", - "\n", - " color_map_4eb0326b097beac93fc2ab0415ea52f0.legend = L.control({position: 'topright'});\n", - " color_map_4eb0326b097beac93fc2ab0415ea52f0.legend.onAdd = function (map) {var div = L.DomUtil.create('div', 'legend'); return div};\n", - " color_map_4eb0326b097beac93fc2ab0415ea52f0.legend.addTo(map_d7874457a0e160de81b493cb48f8af69);\n", - "\n", - " color_map_4eb0326b097beac93fc2ab0415ea52f0.xAxis = d3.svg.axis()\n", - " .scale(color_map_4eb0326b097beac93fc2ab0415ea52f0.x)\n", - " .orient("top")\n", - " .tickSize(1)\n", - " .tickValues([1.0, '', 10.8, '', 20.6, '', 30.4, '', 40.2, '', 50.0, '']);\n", - "\n", - " color_map_4eb0326b097beac93fc2ab0415ea52f0.svg = d3.select(".legend.leaflet-control").append("svg")\n", - " .attr("id", 'legend')\n", - " .attr("width", 450)\n", - " .attr("height", 40);\n", - "\n", - " color_map_4eb0326b097beac93fc2ab0415ea52f0.g = color_map_4eb0326b097beac93fc2ab0415ea52f0.svg.append("g")\n", - " .attr("class", "key")\n", - " .attr("fill", "black")\n", - " .attr("transform", "translate(25,16)");\n", - "\n", - " color_map_4eb0326b097beac93fc2ab0415ea52f0.g.selectAll("rect")\n", - " .data(color_map_4eb0326b097beac93fc2ab0415ea52f0.color.range().map(function(d, i) {\n", - " return {\n", - " x0: i ? color_map_4eb0326b097beac93fc2ab0415ea52f0.x(color_map_4eb0326b097beac93fc2ab0415ea52f0.color.domain()[i - 1]) : color_map_4eb0326b097beac93fc2ab0415ea52f0.x.range()[0],\n", - " x1: i < color_map_4eb0326b097beac93fc2ab0415ea52f0.color.domain().length ? color_map_4eb0326b097beac93fc2ab0415ea52f0.x(color_map_4eb0326b097beac93fc2ab0415ea52f0.color.domain()[i]) : color_map_4eb0326b097beac93fc2ab0415ea52f0.x.range()[1],\n", - " z: d\n", - " };\n", - " }))\n", - " .enter().append("rect")\n", - " .attr("height", 40 - 30)\n", - " .attr("x", function(d) { return d.x0; })\n", - " .attr("width", function(d) { return d.x1 - d.x0; })\n", - " .style("fill", function(d) { return d.z; });\n", - "\n", - " color_map_4eb0326b097beac93fc2ab0415ea52f0.g.call(color_map_4eb0326b097beac93fc2ab0415ea52f0.xAxis).append("text")\n", - " .attr("class", "caption")\n", - " .attr("y", 21)\n", - " .attr("fill", "black")\n", - " .text("count");\n", "</script>\n", "</html>\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen>" ], "text/plain": [ - "" + "" ] }, - "execution_count": 6, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -2886,1257 +3222,118 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 37, "id": "25ebdc80-cf61-4fbd-9152-e014912a64fa", "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "https://openveda.cloud/api/raster/collections/blizzard-snowfall/items/RSI_Snowfall_cog_1950-11-26/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?assets=cog_default&colormap=%7B%226%22%3A%5B30%2C144%2C201%2C255%5D%2C%2212%22%3A%5B171%2C148%2C214%2C255%5D%2C%2218%22%3A%5B90%2C22%2C128%2C255%5D%2C%2224%22%3A%5B217%2C67%2C212%2C255%5D%7D\n" + ] + } + ], + "source": [ + "import json\n", + "import urllib.parse\n", + "import requests\n", + "from pystac_client import Client\n", + "\n", + "client_STAC = Client.open(STAC_API_URL)\n", + "\n", + "collection_id = \"blizzard-snowfall\"\n", + "date = \"1950-11-26\"\n", + "\n", + "results = client_STAC.search(collections=[collection_id], datetime=date)\n", + "items = list(results.items())\n", + "assert len(items) != 0, \"No items found\"\n", + "item = items[0]\n", + "collection = item.get_collection()\n", + "\n", + "dashboard_render = collection.extra_fields[\"renders\"][\"dashboard\"]\n", + "assets = dashboard_render[\"assets\"][0]\n", + "\n", + "# --- RSI categorical colormap ---\n", + "veda_cmap_rgba = {\n", + " \"6\": [30, 144, 201, 255], # #1e90c9\n", + " \"12\": [171, 148, 214, 255], # #ab94d6\n", + " \"18\": [90, 22, 128, 255], # #5a1680\n", + " \"24\": [217, 67, 212, 255], # #d943d4\n", + "}\n", + "\n", + "# Compact JSON β†’ URL-encode for query string\n", + "cmap_str = json.dumps(veda_cmap_rgba, separators=(\",\", \":\"))\n", + "cmap_q = urllib.parse.quote_plus(cmap_str)\n", + "\n", + "# ❗ IMPORTANT: don’t override rescale/nodata/bidx here; just let the\n", + "# tile server use the raw values + our explicit colormap.\n", + "response = requests.get(\n", + " f\"{RASTER_API_URL.rstrip('/')}/collections/{collection_id}\"\n", + " f\"/items/{item.id}/WebMercatorQuad/tilejson.json?\"\n", + " f\"assets={assets}\"\n", + " f\"&colormap={cmap_q}\"\n", + ")\n", + "\n", + "response.raise_for_status()\n", + "tiles = response.json()\n", + "print(tiles[\"tiles\"][0])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "ed8e373c-5fca-4301-96d0-7f906e1cb422", + "metadata": {}, "outputs": [ { "data": { "text/html": [ + "
      Make this Notebook Trusted to load map: File -> Trust Notebook
      " ], "text/plain": [ - "" + "" ] }, - "execution_count": 6, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# Use the new plot_folium_from_VEDA_STAC function\n", + "# Legend colors (HTML only)\n", + "rsi_custom_colors = [\n", + " {\"color\": \"#1e90c9\", \"label\": \"6\"},\n", + " {\"color\": \"#ab94d6\", \"label\": \"12\"},\n", + " {\"color\": \"#5a1680\", \"label\": \"18\"},\n", + " {\"color\": \"#d943d4\", \"label\": \"24\"},\n", + "]\n", + "\n", "m = putils.plot_folium_from_VEDA_STAC(\n", " tiles_url_template=tiles[\"tiles\"][0],\n", " center_coords=[41, -85],\n", " zoom_level=5.5,\n", - " rescale=(vmin, vmax),\n", - " colormap_name=colormap_name,\n", - " capitalize_cmap=False, # to better match VEDA colors and matplotlib colors\n", + " rescale=(6, 24),\n", + " colormap_name=\"viridis\", # ignored for legend when custom_colors is set\n", + " custom_colors=rsi_custom_colors, # drives categorical legend\n", " layer_name=\"Regional Snowfall Index (RSI) Accumulated Snowfall\",\n", " date=f\"{date}T00:00:00Z\",\n", - " colorbar_caption=\"inches\",\n", + " colorbar_caption=\"RSI Accumulated Snowfall (inches)\",\n", " attribution=\"Regional Snowfall Index (RSI) Accumulated Snowfall\",\n", " tile_name=\"Regional Snowfall Index (RSI) Accumulated Snowfall\",\n", " opacity=0.8,\n", " height=\"800px\",\n", + " capitalize_cmap=False,\n", + " remove_default_legend=True # no continuous gradient\n", ")\n", "\n", - "# Display the map\n", - "m" + "m\n" ] }, { @@ -7214,7 +6434,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.10" + "version": "3.12.11" } }, "nbformat": 4, From e0e6add2d597e4a5109badf6815efd50a0efb72c Mon Sep 17 00:00:00 2001 From: Andrew Blackford <62357205+acblackford@users.noreply.github.com> Date: Tue, 9 Dec 2025 14:27:50 -0600 Subject: [PATCH 4/5] updated notebook to tend to Sheyenne's review comments --- .../stories/blizzards_notebook.ipynb | 30 ++++--------------- 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/user-guide/notebooks/stories/blizzards_notebook.ipynb b/user-guide/notebooks/stories/blizzards_notebook.ipynb index bac6f0ca..d23cd6fe 100644 --- a/user-guide/notebooks/stories/blizzards_notebook.ipynb +++ b/user-guide/notebooks/stories/blizzards_notebook.ipynb @@ -1,19 +1,14 @@ { "cells": [ { - "cell_type": "markdown", - "id": "56c2b671-23c6-4668-b250-1aca9cac9c71", + "cell_type": "raw", + "id": "9b3005ef-7c2b-4db9-a1f4-d749a6f0bd8b", "metadata": {}, "source": [ "---\n", "title: When Winter Rages\n", "description: Exploring the Power and Impact of Blizzards\n", - "\n", - " - Andrew Blackford[1]\n", - "\n", - "[1] The University of Alabama in Huntsville (UAH)\n", - "\n", - " - Andrew Blackford (editor)\n", + "author: Andrew Blackford (UAH)\n", "date: August 7, 2025\n", "execute:\n", " freeze: true\n", @@ -33,7 +28,7 @@ "id": "99a99fa8-5923-48d2-bdfd-720af5aca241", "metadata": {}, "source": [ - "

      πŸš€ Launch in VEDA JupyterHub (requires access)

      \n", + "

      πŸš€ Launch in VEDA JupyterHub (requires access)

      \n", "\n", "

      To obtain credentials to VEDA Hub, follow this link for more information.

      " ] @@ -52,7 +47,7 @@ "\n", "

      If you do not have a VEDA Jupyterhub Account you can launch this notebook on your local environment using MyBinder by clicking the icon below.

      \n", "
      \n", - "\n", + "\n", "\"Binder\" " ] }, @@ -72,18 +67,13 @@ "outputs": [], "source": [ "# Load libraries\n", - "#!pip install -q earthaccess pandas xarray fsspec requests pystac_client\n", - "\n", "import datetime\n", "import glob\n", "import os\n", "\n", "import earthaccess\n", - "import pandas as pd\n", "import plotutils as putils\n", "import requests\n", - "import xarray as xr\n", - "from earthaccess import Store\n", "from pystac_client import Client" ] }, @@ -110,7 +100,7 @@ "\n", "Blizzards are extreme winter weather events defined by the National Weather Service (NWS) as a combination of heavy falling or blowing snow, strong winds sustained at 35 mph or higher, and reduced visibility (less than a quarter of a mile) lasting for at least three contiguous hours. These powerful storms can bring everyday life to a standstill by disrupting travel, damaging infrastructure, and exposing people and animals to dangerous elements.\n", "\n", - "In the United States, blizzards occur most frequently in the northern Great Plains, but they have been reported in every state except Hawaii. While blizzards are traditionally associated with winter, records show they can happen any time between October and June. Advances in weather monitoring and forecasting have improved our ability to detect and report these events, which has led to an increase in reported blizzard activity over the past several decades. On average, 13 blizzards occur annually across CONUS, but the past few decades have seen this number inflate to 19. The geographic spread of these storms has also widened, with more blizzards occurring outside their historical hotspots. Although the intensity of impact by individual storms has generally decreased due to better forecasting, their economic and societal impacts have risen, with associated losses now exceeding $1 billion per year. Understanding blizzards and preparing for their impacts is critical for communities in regions prone to extreme winter weather.\n" + "In the United States, blizzards occur most frequently in the northern Great Plains, but they have been reported in every state except Hawaii. While blizzards are traditionally associated with winter, records show they can happen any time between October and June. Advances in weather monitoring and forecasting have improved our ability to detect and report these events, which has led to an increase in reported blizzard activity over the past several decades. On average, 13 blizzards occur annually across the contiguous United States (CONUS), but the past few decades have seen this number inflate to 19. The geographic spread of these storms has also widened, with more blizzards occurring outside their historical hotspots. Although the intensity of impact by individual storms has generally decreased due to better forecasting, their economic and societal impacts have risen, with associated losses now exceeding $1 billion per year. Understanding blizzards and preparing for their impacts is critical for communities in regions prone to extreme winter weather.\n" ] }, { @@ -1042,7 +1032,6 @@ } ], "source": [ - "# TODO: Change collection_ID and date\n", "client_STAC = Client.open(STAC_API_URL)\n", "\n", "collection_id = \"blizzard-count\"\n", @@ -3140,8 +3129,6 @@ } ], "source": [ - "# TODO: Change collection_ID and date\n", - "client_STAC = Client.open(STAC_API_URL)\n", "\n", "collection_id = \"blizzard-count\"\n", "date = \"2021-12-31\"\n", @@ -3240,8 +3227,6 @@ "import requests\n", "from pystac_client import Client\n", "\n", - "client_STAC = Client.open(STAC_API_URL)\n", - "\n", "collection_id = \"blizzard-snowfall\"\n", "date = \"1950-11-26\"\n", "\n", @@ -4495,7 +4480,6 @@ } ], "source": [ - "client_STAC = Client.open(STAC_API_URL)\n", "\n", "collection_id = \"blizzard-era5-mslp\"\n", "date = \"1978-01-26\"\n", @@ -5758,7 +5742,6 @@ } ], "source": [ - "client_STAC = Client.open(STAC_API_URL)\n", "\n", "collection_id = \"blizzard-merra2-10m-wind\"\n", "date = \"1991-11-01\"\n", @@ -6319,7 +6302,6 @@ } ], "source": [ - "client_STAC = Client.open(STAC_API_URL)\n", "\n", "collection_id = \"blizzard-merra2-cfrac\"\n", "date = \"1993-03-14\"\n", From f55e36cb3c0807b0d4095c89ce0555aaf71262fa Mon Sep 17 00:00:00 2001 From: Andrew Blackford <62357205+acblackford@users.noreply.github.com> Date: Tue, 9 Dec 2025 14:29:08 -0600 Subject: [PATCH 5/5] add notebook link to quarto --- _quarto.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/_quarto.yml b/_quarto.yml index 608fdf2b..5122c743 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -124,6 +124,7 @@ website: - section: Stories contents: - user-guide/notebooks/stories/derechos.ipynb + - user-guide/notebooks/stories/blizzards_notebook.ipynb - text: "---" - section: open-source-ecosystem/index.qmd contents: