diff --git a/CHANGELOG.md b/CHANGELOG.md
index 26101c374..e079cf5ec 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,19 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [PEP 440](https://www.python.org/dev/peps/pep-0440/)
and uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [0.13.2]
+
+### Added
+* Added multiburst_sbas.ipynb to demonstrate searching and ordering a multi-burst InSAR project from the HyP3 SDK
+* Added two images as assets to provide visual examples of valid and invalid multi-burst collections
+
+## Changed
+* Updated links in [ARIA Sentinel-1 GUNW Product Guide](docs/guides/gunw_product_guide.md)
+* Embedded StoryMaps in markdown pages rather than automatically opening them in a separate tab
+* Updated tutorial.md to adjust formatting an add a link to [multiburst_sbas.ipynb](https://github.com/ASFHyP3/hyp3-docs/blob/main/docs/tutorials/multiburst_sbas.ipynb)
+* Moved lists of tutorials into categories in the navigation menu
+
## [0.13.1]
### Changed
diff --git a/docs/guides/gunw_product_guide.md b/docs/guides/gunw_product_guide.md
index 051b5fea3..df11459f1 100644
--- a/docs/guides/gunw_product_guide.md
+++ b/docs/guides/gunw_product_guide.md
@@ -4,7 +4,7 @@ This document is a guide for users of
[ARIA Sentinel-1 Geocoded Unwrapped (GUNW) Interferograms](https://www.earthdata.nasa.gov/data/catalog/asf-aria-s1-gunw-1 "ASF-ARIA-S1-GUNW Products" ){target=_blank}.
The
-[ARIA Sentinel-1 Geocoded Unwrapped Interferogram (ARIA-S1-GUNW)](https://aria.caltech.edu/products/standard-displacement-products.html "aria.caltech.edu/products/standard-displacement-products.html" ){target=_blank}
+[ARIA Sentinel-1 Geocoded Unwrapped Interferogram (ARIA-S1-GUNW)](https://aria.caltech.edu/products/aria-s1-gunw "aria.caltech.edu/products/aria-s1-gunw" ){target=_blank}
product is a standardized interferometric SAR (InSAR) dataset that enables rapid analysis of surface deformation
using Sentinel-1 SAR data. Produced by
[JPL’s ARIA](https://aria.caltech.edu/ "aria.caltech.edu" ){target=_blank}
diff --git a/docs/tutorials.md b/docs/tutorials.md
index 9a5c27c5f..775b123be 100644
--- a/docs/tutorials.md
+++ b/docs/tutorials.md
@@ -4,22 +4,28 @@
We provide step-by-step tutorials for using HyP3 programmatically via Jupyter Notebooks.
-* [Using the HyP3 Python SDK](https://github.com/ASFHyP3/hyp3-sdk/blob/main/docs/sdk_example.ipynb "Using the HyP3 SDK Tutorial" ){target=_blank}
+* [Using the HyP3 Python SDK](https://github.com/ASFHyP3/hyp3-sdk/blob/main/docs/sdk_example.ipynb "Using the HyP3 SDK Tutorial" ){target=_blank}
-- This notebook walks through ordering and accessing RTC, InSAR, and autoRIFT products in Python using the HyP3 SDK.
-* [Using the HyP3 SDK to search for jobs run by another user](https://github.com/ASFHyP3/hyp3-sdk/blob/main/docs/search_other_user_jobs.ipynb "Using the HyP3 SDK to search for jobs run by another user" ){target=_blank}
+* [Authenticating a HyP3 Session with the SDK](https://github.com/ASFHyP3/hyp3-sdk/blob/main/docs/hyp3_authentication.ipynb "Authenticating a HyP3 Session with the SDK Tutorial" ){target=_blank}
+ -- This notebook provides guidance on the options available for authenticating HyP3 with your [Earthdata Login credentials](using/authentication.md) when using the HyP3 SDK.
+* [Using the HyP3 SDK to search for jobs run by another user](https://github.com/ASFHyP3/hyp3-sdk/blob/main/docs/search_other_user_jobs.ipynb "Using the HyP3 SDK to search for jobs run by another user Tutorial" ){target=_blank}
-- This notebook walks through using the HyP3 SDK to search for jobs run by another user.
-* [Using the HyP3 SDK to update a job name](https://github.com/ASFHyP3/hyp3-sdk/blob/main/docs/hyp3_job_name_change.ipynb "Using the HyP3 SDK to update a job name"){target=_blank}
+* [Using the HyP3 SDK to update a job name](https://github.com/ASFHyP3/hyp3-sdk/blob/main/docs/hyp3_job_name_change.ipynb "Using the HyP3 SDK to update a job name Tutorial"){target=_blank}
-- This notebook walks through using the HyP3 SDK to rename one of your previously submitted jobs.
-* [Using the HyP3 SDK to process new granules for given search parameters](./tutorials/process-new-granules-for-search-parameters.md)
+* [Using the HyP3 SDK to process new granules for given search parameters](./tutorials/process-new-granules-for-search-parameters.md "Using the HyP3 SDK to process new granules for given search parameters Tutorial" ){target=_blank}
-- These notebooks demonstrate how to process new granules that match particular search parameters,
which is particularly useful for ongoing monitoring of a geographic area of interest.
-* [Time series analysis with HyP3 and MintPy](https://github.com/ASFHyP3/hyp3-docs/blob/main/docs/tutorials/hyp3_insar_stack_for_ts_analysis.ipynb "Time series analysis with HyP3 and MintPy Tutorial" ){target=_blank}
+* [Time series analysis with HyP3 and MintPy](https://github.com/ASFHyP3/hyp3-docs/blob/main/docs/tutorials/hyp3_insar_stack_for_ts_analysis.ipynb "Time series analysis with HyP3 and MintPy Tutorial" ){target=_blank}
-- This notebook walks through performing a time-series analysis of the 2019
Ridgecrest, CA earthquake with HyP3 On Demand InSAR products and MintPy.
-* [Time series analysis with HyP3 ISCE2 burst InSAR products and MintPy](https://github.com/ASFHyP3/hyp3-docs/blob/main/docs/tutorials/hyp3_isce2_burst_stack_for_ts_analysis.ipynb "Time series analysis with HyP3 ISCE2 burst InSAR products and MintPy Tutorial" ){target=_blank}
+* [Time series analysis with HyP3 ISCE2 burst InSAR products and MintPy](https://github.com/ASFHyP3/hyp3-docs/blob/main/docs/tutorials/hyp3_isce2_burst_stack_for_ts_analysis.ipynb "Time series analysis with HyP3 ISCE2 burst InSAR products and MintPy Tutorial" ){target=_blank}
-- This notebook walks through performing a time-series analysis of the 2014
Mount Edgecumbe, AK volcano with HyP3 On Demand Burst InSAR products and MintPy.
-
+* [Search and Order a Multi-Burst SBAS Stack of Interferograms](https://github.com/ASFHyP3/hyp3-docs/blob/main/docs/tutorials/multiburst_sbas.ipynb "Search and Order a Multi-Burst SBAS Stack of Interferograms with the HyP3 SDK Tutorial" ){target=_blank}
+ -- This notebook illustrates how to use the HyP3 Python SDK to search for sets of Sentinel-1 bursts to use for
+ generating On Demand
+ [Multi-Burst InSAR products](guides/burst_insar_product_guide.md#multi-burst-insar "Sentinel-1 Burst InSAR Product Guide: Multi-Burst InSAR")
+ and build an SBAS stack of multi-burst pairings to submit for processing.
## StoryMaps
diff --git a/docs/tutorials/agol_tutorials.md b/docs/tutorials/agol_tutorials.md
new file mode 100644
index 000000000..c22aee747
--- /dev/null
+++ b/docs/tutorials/agol_tutorials.md
@@ -0,0 +1,5 @@
+# [ASF StoryMap Tutorials and Resources open_in_new](https://asf-daac.maps.arcgis.com/home/index.html "Open ASF StoryMap Tutorials and Resources page in a new tab" ){target=_blank}
+
+
+
+
diff --git a/docs/tutorials/assets/invalid_multiburst_collection.png b/docs/tutorials/assets/invalid_multiburst_collection.png
new file mode 100644
index 000000000..e078d0eed
Binary files /dev/null and b/docs/tutorials/assets/invalid_multiburst_collection.png differ
diff --git a/docs/tutorials/assets/valid_multiburst_collection.png b/docs/tutorials/assets/valid_multiburst_collection.png
new file mode 100644
index 000000000..d2be1822c
Binary files /dev/null and b/docs/tutorials/assets/valid_multiburst_collection.png differ
diff --git a/docs/tutorials/burst_insar_storymap.md b/docs/tutorials/burst_insar_storymap.md
new file mode 100644
index 000000000..ba437e7ad
--- /dev/null
+++ b/docs/tutorials/burst_insar_storymap.md
@@ -0,0 +1,5 @@
+# [Burst-Based InSAR for Sentinel-1 On Demand open_in_new](https://storymaps.arcgis.com/stories/191bf1b6962c402086807390b3ce63b0 "Open Burst-Based InSAR for Sentinel-1 On Demand StoryMap Tutorial in a new tab" ){target=_blank}
+
+
+
+
diff --git a/docs/tutorials/burst_insar_storymap_tutorial.md b/docs/tutorials/burst_insar_storymap_tutorial.md
new file mode 100644
index 000000000..ba437e7ad
--- /dev/null
+++ b/docs/tutorials/burst_insar_storymap_tutorial.md
@@ -0,0 +1,5 @@
+# [Burst-Based InSAR for Sentinel-1 On Demand open_in_new](https://storymaps.arcgis.com/stories/191bf1b6962c402086807390b3ce63b0 "Open Burst-Based InSAR for Sentinel-1 On Demand StoryMap Tutorial in a new tab" ){target=_blank}
+
+
+
+
diff --git a/docs/tutorials/insar_storymap.md b/docs/tutorials/insar_storymap.md
new file mode 100644
index 000000000..165938c8a
--- /dev/null
+++ b/docs/tutorials/insar_storymap.md
@@ -0,0 +1,5 @@
+# [InSAR On Demand! open_in_new](https://storymaps.arcgis.com/stories/68a8a3253900411185ae9eb6bb5283d3 "Open InSAR On Demand! StoryMap Tutorial in a new tab" ){target=_blank}
+
+
+
+
diff --git a/docs/tutorials/insar_storymap_tutorial.md b/docs/tutorials/insar_storymap_tutorial.md
new file mode 100644
index 000000000..165938c8a
--- /dev/null
+++ b/docs/tutorials/insar_storymap_tutorial.md
@@ -0,0 +1,5 @@
+# [InSAR On Demand! open_in_new](https://storymaps.arcgis.com/stories/68a8a3253900411185ae9eb6bb5283d3 "Open InSAR On Demand! StoryMap Tutorial in a new tab" ){target=_blank}
+
+
+
+
diff --git a/docs/tutorials/multiburst_sbas.ipynb b/docs/tutorials/multiburst_sbas.ipynb
new file mode 100644
index 000000000..38c126da5
--- /dev/null
+++ b/docs/tutorials/multiburst_sbas.ipynb
@@ -0,0 +1,402 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "308bc6c7",
+ "metadata": {},
+ "source": [
+ "# Search and Order a Multi-Burst SBAS Stack of Interferograms\n",
+ "\n",
+ "\n",
+ "\n",
+ "## Define a list of S1-burst geographic reference scenes for the SBAS searches\n",
+ "\n",
+ "- The collection must not contain more than 15 bursts\n",
+ "- The bursts must be contiguous\n",
+ "- There can be no holes in the collection of bursts\n",
+ "- They cannot intersect the antimeridian\n",
+ "- Bursts must be in the VV polarization\n",
+ "- Burst IDs in adjacent swaths must not have a difference greater than one\n",
+ " - In simple terms:\n",
+ " - Aim to build rectangular collections of bursts\n",
+ " - L-shaped and T-shaped burst collections will likely fail to process\n",
+ "\n",
+ " ### This L-shaped collection of bursts is invalid:\n",
+ "\n",
+ " \n",
+ "\n",
+ " ### This rectangular collection of bursts is valid:\n",
+ " \n",
+ " \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a3d4a640",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from datetime import datetime\n",
+ "\n",
+ "geo_ref_bursts = [\n",
+ " \"S1_071053_IW2_20210104T002658_VV_4542-BURST\",\n",
+ " \"S1_071053_IW1_20210104T002657_VV_4542-BURST\",\n",
+ " \"S1_071052_IW2_20210104T002655_VV_4542-BURST\",\n",
+ " \"S1_071052_IW1_20210104T002654_VV_4542-BURST\",\n",
+ " \"S1_071051_IW2_20210104T002652_VV_4542-BURST\",\n",
+ " \"S1_071051_IW1_20210104T002651_VV_4542-BURST\",\n",
+ " \"S1_071050_IW2_20210104T002650_VV_4542-BURST\",\n",
+ " \"S1_071050_IW1_20210104T002649_VV_4542-BURST\",\n",
+ " \"S1_071049_IW2_20210104T002647_VV_4542-BURST\",\n",
+ " \"S1_071053_IW3_20210104T002659_VV_4542-BURST\",\n",
+ " \"S1_071052_IW3_20210104T002656_VV_4542-BURST\",\n",
+ " \"S1_071051_IW3_20210104T002653_VV_4542-BURST\",\n",
+ " \"S1_071050_IW3_20210104T002651_VV_4542-BURST\",\n",
+ " \"S1_071049_IW3_20210104T002648_VV_4542-BURST\",\n",
+ " \"S1_071049_IW1_20210104T002646_VV_4542-BURST\"\n",
+ "]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "cfb7659f-33e5-47e2-8a78-8128e6887e79",
+ "metadata": {},
+ "source": [
+ "## Define a HyP3 project name and other parameters of the multiburst SBAS stack"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "09cbd999-8e4b-4e52-82a9-dbefb48b70e9",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "project_name = \"multiburst\" # Change this to something that makes sense for your project\n",
+ "\n",
+ "start_date = datetime(2021, 1, 1)\n",
+ "end_date = datetime(2021, 1, 31)\n",
+ "temporal_baseline = 36\n",
+ "perpendicular_baseline = 400"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "a4436df8-85c8-46e9-8602-813e04b8ea42",
+ "metadata": {},
+ "source": [
+ "## Perform an `asf_search.granule_search` on the S1 burst IDs of the georeferenced bursts\n",
+ "\n",
+ "See this [notebook](https://github.com/asfadmin/Discovery-asf_search/blob/feature/stacking/examples/3-Granule_Search.ipynb) for more examples using `asf_search.granule_search`"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8b615055",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import asf_search as asf\n",
+ "\n",
+ "results = asf.granule_search(geo_ref_bursts)\n",
+ "print(f\"Found {len(results)} S1 burst SLCs\")\n",
+ "results"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "b3f15849-afd7-49f0-a417-ea326a53659a",
+ "metadata": {},
+ "source": [
+ "## Perform an `asf_search.stack` search on each of the returned `S1BurstProduct`s\n",
+ "\n",
+ "See this [notebook](https://github.com/asfadmin/Discovery-asf_search/blob/feature/stacking/examples/4-Baseline_Search.ipynb) for more example using `asf_search.stack` searches"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "386cd103",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "opts=asf.ASFSearchOptions(**{\n",
+ " \"start\": start_date,\n",
+ " \"end\": end_date,\n",
+ "})\n",
+ "\n",
+ "stacks = [slc.stack(opts=opts) for slc in results]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "69755cbc-851c-4760-a4de-1454aaf5b023",
+ "metadata": {},
+ "source": [
+ "## Create an SBAS stack of `asf_search.Pair`s for each of the stack searches"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "c5ef18e4",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from asf_search import Pair\n",
+ "\n",
+ "pairs = [\n",
+ " [\n",
+ " pair\n",
+ " for i, ref in enumerate(stack)\n",
+ " for sec in stack[i+1:] # Prevent duplication. We only need Pair(a, b), not Pair(b, a)\n",
+ " for pair in [Pair(ref, sec)]\n",
+ " if pair.perpendicular_baseline is not None\n",
+ " and pair.temporal_baseline is not None\n",
+ " and pair.perpendicular_baseline <= perpendicular_baseline\n",
+ " and 0 <= pair.temporal_baseline.days <= temporal_baseline\n",
+ " ]\n",
+ " for stack in stacks\n",
+ "]\n",
+ "\n",
+ "pairs"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "847e9727-0f63-4ebe-b7f9-6efdf849bb1e",
+ "metadata": {},
+ "source": [
+ "## Transpose the individual stack search results into multiburst SBAS stacks"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f4ac9f86",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "transposed_pairs = list(map(list, zip(*pairs)))\n",
+ "transposed_pairs"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "a1a70283-b51c-4077-b384-43237f52925d",
+ "metadata": {},
+ "source": [
+ "## Convert the lists of multiburst `asf_search.Pair`s into corresponding lists of reference and secondary burst IDs for each multiburst interferogram"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "2bd726a4",
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [],
+ "source": [
+ "multibursts_prepped_for_hyp3 = [\n",
+ " [\n",
+ " [pair.ref.properties[\"sceneName\"] for pair in pair_list],\n",
+ " [pair.sec.properties[\"sceneName\"] for pair in pair_list],\n",
+ " ]\n",
+ " for pair_list in transposed_pairs\n",
+ "]\n",
+ "multibursts_prepped_for_hyp3"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5b472ead-49c0-404c-9bb2-f0305abf0b36",
+ "metadata": {},
+ "source": [
+ "## Confirm the number of interferograms you are preparing to order, and the number of bursts they contain"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "88b6720b-1970-4500-83df-60c64ceb0271",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "print(f\"Preparing to order {len(multibursts_prepped_for_hyp3)} multiburst interferograms, each comprised of {len(multibursts_prepped_for_hyp3[0][0])} Sentinel-1 burst pairs.\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "67d83df0-5836-4d5e-a615-3182b37c711b",
+ "metadata": {},
+ "source": [
+ "## Select whether you are accessing data from [HyP3 Basic](https://hyp3-docs.asf.alaska.edu/hyp3-docs/about/hyp3_basic/) or [HyP3+](https://hyp3-docs.asf.alaska.edu/hyp3-docs/about/hyp3_plus/)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "d93e2c7e-5ce1-4079-a40e-a58af4254f94",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import ipywidgets as widgets\n",
+ "from IPython.display import display\n",
+ "\n",
+ "\n",
+ "\n",
+ "hyp3_service_select = widgets.RadioButtons(\n",
+ " options=[\n",
+ " 'HyP3 Basic',\n",
+ " 'HyP3+'\n",
+ " ],\n",
+ " description='Service:',\n",
+ " disabled=False\n",
+ ")\n",
+ "\n",
+ "display(hyp3_service_select)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "77e5adae-7496-4d39-a7c8-6c69a6e2cd28",
+ "metadata": {},
+ "source": [
+ "## Authenticate with HyP3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "babdb66f",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import hyp3_sdk as sdk\n",
+ "\n",
+ "hyp3_select = hyp3_service_select.value\n",
+ "\n",
+ "if \"Basic\" in hyp3_select:\n",
+ " hyp3 = sdk.HyP3(prompt=\"password\")\n",
+ "else:\n",
+ " hyp3 = sdk.HyP3(api_url=\"https://hyp3-plus.asf.alaska.edu\", prompt=\"password\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "bc9c861f-f297-44a7-a16b-054630985373",
+ "metadata": {},
+ "source": [
+ "## Order the multiburst interferograms from HyP3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "e0124e7b",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "multiburst_jobs = sdk.Batch()\n",
+ "\n",
+ "for multiburst in multibursts_prepped_for_hyp3:\n",
+ " multiburst_jobs += hyp3.submit_insar_isce_multi_burst_job(\n",
+ " multiburst[0],\n",
+ " multiburst[1],\n",
+ " name=project_name,\n",
+ " apply_water_mask=False,\n",
+ " looks='20x4', # '20x4', '10x2', '5x1'\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "f32d27fd-3686-4e11-a3ed-d5a7a3d98301",
+ "metadata": {},
+ "source": [
+ "## Watch the status of the multiburst jobs so you know when they have finished processing"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "2948f1ae",
+ "metadata": {
+ "is_executing": true
+ },
+ "outputs": [],
+ "source": [
+ "multiburst_jobs = hyp3.watch(multiburst_jobs)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "6c1eb4f2-517d-408a-a36c-0052a492ac42",
+ "metadata": {},
+ "source": [
+ "## Search the completed HyP3 multiburst project"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "ecd7774b",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "user_id = input(\"Enter your NASA Earthdata Login username\")\n",
+ "\n",
+ "batch = sdk.Batch()\n",
+ "batch = hyp3.find_jobs(\n",
+ " name=project_name, \n",
+ " job_type=\"INSAR_ISCE_MULTI_BURST\", \n",
+ " user_id=user_id\n",
+ ")\n",
+ "batch"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "7481e337-a6c0-48d6-9749-c7e232796836",
+ "metadata": {},
+ "source": [
+ "## Download the multiburst interferograms"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "cfdf2d15-e48c-44d7-9b8b-6b44d5b0a210",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "for job in batch:\n",
+ " job.download_files()"
+ ]
+ }
+ ],
+ "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.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/docs/tutorials/opera-rtc-storymap-eng.md b/docs/tutorials/opera-rtc-storymap-eng.md
new file mode 100644
index 000000000..2153847e6
--- /dev/null
+++ b/docs/tutorials/opera-rtc-storymap-eng.md
@@ -0,0 +1,5 @@
+# [OPERA Sentinel-1 RTC open_in_new](https://storymaps.arcgis.com/stories/dc2807b444924fc3a76c117a2c909f8b "Open OPERA Sentinel-1 RTC StoryMap Tutorial in a new tab" ){target=_blank}
+
+
+
+
diff --git a/docs/tutorials/opera-rtc-storymap-esp.md b/docs/tutorials/opera-rtc-storymap-esp.md
new file mode 100644
index 000000000..4ce14db5f
--- /dev/null
+++ b/docs/tutorials/opera-rtc-storymap-esp.md
@@ -0,0 +1,5 @@
+# [OPERA Sentinel-1 RTC: Encuentra y Accede a los Datos open_in_new](https://storymaps.arcgis.com/stories/ee1c4de3e5eb44de8f377c18d95e05fa "Abrir el tutorial de StoryMap de OPERA Sentinel-1 RTC en una nueva pestaña del navegador." ){target=_blank}
+
+
+
+
diff --git a/docs/tutorials/rtc_storymap.md b/docs/tutorials/rtc_storymap.md
new file mode 100644
index 000000000..f431c78bf
--- /dev/null
+++ b/docs/tutorials/rtc_storymap.md
@@ -0,0 +1,5 @@
+# [RTC On Demand! open_in_new](https://storymaps.arcgis.com/stories/2ead3222d2294d1fae1d11d3f98d7c35 "Open RTC On Demand! StoryMap Tutorial in a new tab" ){target=_blank}
+
+
+
+
diff --git a/docs/tutorials/rtc_storymap_tutorial.md b/docs/tutorials/rtc_storymap_tutorial.md
new file mode 100644
index 000000000..f431c78bf
--- /dev/null
+++ b/docs/tutorials/rtc_storymap_tutorial.md
@@ -0,0 +1,5 @@
+# [RTC On Demand! open_in_new](https://storymaps.arcgis.com/stories/2ead3222d2294d1fae1d11d3f98d7c35 "Open RTC On Demand! StoryMap Tutorial in a new tab" ){target=_blank}
+
+
+
+
diff --git a/mkdocs.yml b/mkdocs.yml
index e03fe300c..f8bf8282d 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -86,22 +86,22 @@ nav:
- RTC:
- guides/rtc_product_guide.md
- Product Guide: guides/rtc_product_guide.md
- - StoryMap: https://storymaps.arcgis.com/stories/2ead3222d2294d1fae1d11d3f98d7c35" target="_blank
+ - StoryMap: tutorials/rtc_storymap.md
- Theoretical Basis: guides/rtc_atbd.md
- OPERA RTC-S1:
- guides/opera_rtc_product_guide.md
- Product Guide: guides/opera_rtc_product_guide.md
- Product Specs: https://www.jpl.nasa.gov/go/opera/products/rtc-product/" target="_blank
- - StoryMap (English): https://storymaps.arcgis.com/stories/dc2807b444924fc3a76c117a2c909f8b" target="_blank
- - StoryMap (Spanish): https://storymaps.arcgis.com/stories/ee1c4de3e5eb44de8f377c18d95e05fa" target="_blank
+ - StoryMap (English): tutorials/opera-rtc-storymap-eng.md
+ - StoryMap (Spanish): tutorials/opera-rtc-storymap-esp.md
- InSAR:
- guides/insar_product_guide.md
- Product Guide: guides/insar_product_guide.md
- - StoryMap: https://storymaps.arcgis.com/stories/68a8a3253900411185ae9eb6bb5283d3" target="_blank
+ - StoryMap: tutorials/insar_storymap.md
- Burst InSAR:
- guides/burst_insar_product_guide.md
- Product Guide: guides/burst_insar_product_guide.md
- - StoryMap: https://storymaps.arcgis.com/stories/191bf1b6962c402086807390b3ce63b0" target="_blank
+ - StoryMap: tutorials/burst_insar_storymap.md
- ARIA S1 GUNW:
- guides/gunw_product_guide.md
- Product Guide: guides/gunw_product_guide.md
@@ -115,14 +115,20 @@ nav:
- SAR FAQ: https://asf.alaska.edu/information/sar-information/what-is-sar/#sar_faq" target="_blank
- Tutorials:
- tutorials.md
- - Using HyP3 Python SDK: https://github.com/ASFHyP3/hyp3-sdk/blob/main/docs/sdk_example.ipynb" target="_blank
- - Authenticate HyP3 in the SDK: https://github.com/ASFHyP3/hyp3-sdk/blob/main/docs/hyp3_authentication.ipynb" target="_blank
- - Search another user's jobs: https://github.com/ASFHyP3/hyp3-sdk/blob/main/docs/search_other_user_jobs.ipynb" target="_blank
- - Update existing job name: https://github.com/ASFHyP3/hyp3-sdk/blob/main/docs/hyp3_job_name_change.ipynb" target="_blank
- - Process new granules for search parameters: tutorials/process-new-granules-for-search-parameters.md
- - InSAR time series with MintPy: https://github.com/ASFHyP3/hyp3-docs/blob/main/docs/tutorials/hyp3_insar_stack_for_ts_analysis.ipynb" target="_blank
- - InSAR burst time series with MintPy: https://github.com/ASFHyP3/hyp3-docs/blob/main/docs/tutorials/hyp3_isce2_burst_stack_for_ts_analysis.ipynb" target="_blank
- - StoryMap Tutorials: https://asf-daac.maps.arcgis.com/home/index.html" target="_blank
+ - Jupyter Notebooks:
+ - Using HyP3 Python SDK: https://github.com/ASFHyP3/hyp3-sdk/blob/main/docs/sdk_example.ipynb" target="_blank
+ - Authenticate HyP3 in the SDK: https://github.com/ASFHyP3/hyp3-sdk/blob/main/docs/hyp3_authentication.ipynb" target="_blank
+ - Search another user's jobs: https://github.com/ASFHyP3/hyp3-sdk/blob/main/docs/search_other_user_jobs.ipynb" target="_blank
+ - Update existing job name: https://github.com/ASFHyP3/hyp3-sdk/blob/main/docs/hyp3_job_name_change.ipynb" target="_blank
+ - Process new granules for search parameters: tutorials/process-new-granules-for-search-parameters.md
+ - InSAR time series with MintPy: https://github.com/ASFHyP3/hyp3-docs/blob/main/docs/tutorials/hyp3_insar_stack_for_ts_analysis.ipynb" target="_blank
+ - InSAR burst time series with MintPy: https://github.com/ASFHyP3/hyp3-docs/blob/main/docs/tutorials/hyp3_isce2_burst_stack_for_ts_analysis.ipynb" target="_blank
+ - Multi-Burst InSAR SBAS Stack: https://github.com/ASFHyP3/hyp3-docs/blob/main/docs/tutorials/multiburst_sbas.ipynb" target="_blank
+ - StoryMap Tutorials:
+ - tutorials/agol_tutorials.md
+ - RTC On Demand!: tutorials/rtc_storymap_tutorial.md
+ - InSAR On Demand!: tutorials/insar_storymap_tutorial.md
+ - Burst-Based InSAR: tutorials/burst_insar_storymap_tutorial.md
- Other Tools:
- ArcGIS Toolbox: tools/arcgis_toolbox.md
- ASF Tools for Python:
diff --git a/overrides/main.html b/overrides/main.html
index f4a79e23b..b9ce80632 100644
--- a/overrides/main.html
+++ b/overrides/main.html
@@ -3,6 +3,7 @@
{% block scripts %}
{{ super() }}
+
{% endblock %}
{# Uncomment this block to enable the announcement banner:
{% block announce %}