<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Jupyter Blog - Gregory Mooney</title><link href="https://jasongrout.github.io/medium-archive/pelican/" rel="alternate"/><link href="https://jasongrout.github.io/medium-archive/pelican/feeds/author-gregory-mooney.atom.xml" rel="self"/><id>https://jasongrout.github.io/medium-archive/pelican/</id><updated>2026-02-19T17:34:00+00:00</updated><subtitle>The Project Jupyter blog: news, releases, and community stories, archived from blog.jupyter.org.</subtitle><entry><title>Expanding Geospatial Workflows in JupyterGIS: STAC Browsing and Story Maps</title><link href="https://jasongrout.github.io/medium-archive/pelican/posts/2026/expanding-geospatial-workflows-in-jupytergis-stac/" rel="alternate"/><published>2026-02-19T17:34:00+00:00</published><updated>2026-02-19T17:34:00+00:00</updated><author><name>Gregory Mooney</name></author><id>tag:jasongrout.github.io,2026-02-19:/medium-archive/pelican/posts/2026/expanding-geospatial-workflows-in-jupytergis-stac/</id><summary type="html">&lt;p&gt;Since its initial announcement less than two years ago, JupyterGIS has been a growing effort to bring interactive geospatial workflows into…&lt;/p&gt;
</summary><content type="html">&lt;figure&gt;
&lt;img alt="JupyterGIS story maps in action" src="https://jasongrout.github.io/medium-archive/pelican/posts/2026/expanding-geospatial-workflows-in-jupytergis-stac/images/001-0_X3PRP6d54Z82wwEO.webp" loading="lazy" data-body-image=""&gt;
&lt;figcaption&gt;JupyterGIS story maps in action&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Since &lt;a href="/posts/2024/jupytergis/"&gt;its initial announcement less than two years ago&lt;/a&gt;, JupyterGIS has been a growing effort to bring interactive geospatial workflows into the Jupyter ecosystem. Early milestones focused on laying the foundations: a composable GIS interface in Jupyter, a shared document model allowing real-time collaboration, a Python scripting API for exploration in the Jupyter Notebook, and a compatibility layer with the QGIS file format.&lt;/p&gt;
&lt;p&gt;With the project maturing, recent work has focused on improving two key aspects of everyday geospatial workflows: &lt;strong&gt;discovering data&lt;/strong&gt; and &lt;strong&gt;sharing results&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In this post, we (the JupyterGIS team) introduce two new features that move JupyterGIS further in that direction. First, a &lt;strong&gt;STAC browser integrated directly into the JupyterGIS user interface&lt;/strong&gt;, allowing users to explore SpatioTemporal Asset Catalogs and add selected items to a project as map layers. Second, a new &lt;strong&gt;Story Map feature&lt;/strong&gt;, inspired by existing GIS storytelling tools, which makes it possible to combine maps and narrative content in a single, interactive view.&lt;/p&gt;
&lt;p&gt;Together, these additions aim to make JupyterGIS not only a place to analyze geospatial data, but also a place to explore datasets and communicate results, all within Jupyter.&lt;/p&gt;
&lt;h2 id="exploring-stac-catalogs-in-jupytergis"&gt;Exploring STAC Catalogs in JupyterGIS&lt;/h2&gt;
&lt;p&gt;The &lt;strong&gt;SpatioTemporal Asset Catalog (STAC)&lt;/strong&gt; specification provides a common way to describe and access geospatial datasets, particularly large collections of Earth observation data. By standardizing how data and metadata are exposed, STAC enables tools to discover and query datasets across different providers using consistent spatial, temporal, and property-based criteria.&lt;/p&gt;
&lt;p&gt;JupyterGIS now includes a &lt;strong&gt;STAC browser user interface&lt;/strong&gt; that allows users to explore STAC catalogs directly from within a project. The browser makes use of the &lt;strong&gt;STAC Filter extension&lt;/strong&gt;, enabling users to define rich queries on catalog items. Based on the catalog metadata, JupyterGIS automatically generates the corresponding UI components for defining these filters, making it possible to refine searches and add selected items to a project as layers without leaving the Jupyter environment.&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="Exploring Sentinel 3 STAC in JupyterGIS" src="https://jasongrout.github.io/medium-archive/pelican/posts/2026/expanding-geospatial-workflows-in-jupytergis-stac/images/002-0_JbD8lLupayBrGKrD.webp" loading="lazy" data-body-image=""&gt;
&lt;figcaption&gt;Exploring Sentinel 3 STAC in JupyterGIS&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;At the moment, the STAC browser ships with a small set of preconfigured catalogs: &lt;strong&gt;CDSE’s Copernicus catalog&lt;/strong&gt;, &lt;strong&gt;CNES’s Geodes catalog&lt;/strong&gt;, and &lt;strong&gt;University of Southampton’s WorldPop&lt;/strong&gt;. This limited selection reflects the early stage of the feature. Work is already underway by the Eric and Wendy Schmidt Center for Data Science &amp;amp; Environment (DSE) at &lt;strong&gt;UC Berkeley&lt;/strong&gt; to allow users to &lt;strong&gt;connect to arbitrary STAC catalogs by providing their own catalog URL&lt;/strong&gt;, and to introduce a &lt;strong&gt;catalog of STAC catalogs&lt;/strong&gt; to make discovering and configuring additional data sources easier in future releases.&lt;/p&gt;
&lt;h2 id="story-maps-in-jupytergis"&gt;Story Maps in JupyterGIS&lt;/h2&gt;
&lt;p&gt;Communicating geospatial results often requires more than interactive maps alone. To address this, JupyterGIS now introduces a &lt;strong&gt;Story Map feature&lt;/strong&gt; that makes it possible to &lt;strong&gt;combine narrative content with map-based views inside a single interface&lt;/strong&gt;. Inspired by existing GIS storytelling tools, this feature allows users to structure a sequence of markdown text and map position, where each step can capture a specific state of the project, including visible layers, layers symbology, and map extent.&lt;/p&gt;
&lt;p&gt;Story Maps in JupyterGIS are designed to complement exploratory and analytical workflows, providing a lightweight way to present results directly from the same environment in which they were produced. This makes it easier to move from data exploration to communication without exporting projects to external tools.&lt;/p&gt;
&lt;p&gt;Try it live in your browser by clicking on the following link, &lt;a href="https://notebook.link/@quantstack/earthquakes-story-map"&gt;https://notebook.link/@quantstack/earthquakes-story-map&lt;/a&gt;, hosted by notebook.link, a free service for sharing Jupyter documents.&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="JupyterGIS story maps showcased in notebook.link" src="https://jasongrout.github.io/medium-archive/pelican/posts/2026/expanding-geospatial-workflows-in-jupytergis-stac/images/003-0_CyW1M7dUYYwo9Po0.webp" loading="lazy" data-body-image=""&gt;
&lt;figcaption&gt;JupyterGIS story maps showcased in &lt;a href="https://notebook.link/"&gt;notebook.link&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id="acknowledgments"&gt;Acknowledgments&lt;/h2&gt;
&lt;p&gt;This work on &lt;a href="https://github.com/geojupyter/jupytergis"&gt;JupyterGIS&lt;/a&gt; by &lt;a href="https://quantstack.net/"&gt;QuantStack&lt;/a&gt; was funded by the &lt;a href="https://cnes.fr/"&gt;French National Centre for Space Studies (CNES).&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://jasongrout.github.io/medium-archive/pelican/posts/2026/expanding-geospatial-workflows-in-jupytergis-stac/images/004-0_QxCgIK0N8j8jDhVC.webp" alt="" loading="lazy" data-body-image=""&gt;&lt;/p&gt;
&lt;h2 id="about-the-author"&gt;About the author&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.linkedin.com/in/gjmooney/"&gt;Greg Mooney&lt;/a&gt; is a Scientific Computing Developer at &lt;a href="https://quantstack.net"&gt;QuantStack&lt;/a&gt;. He is one of the core developers of JupyterGIS, the author of jupyterlab-gather, and a contributor to several other Jupyter extensions.&lt;/p&gt;
</content><category term="geoscience"/><category term="JupyterGIS"/><category term="science"/></entry></feed>