diff --git a/IS2view/api.py b/IS2view/api.py
index 4c05885..c6c6f6e 100644
--- a/IS2view/api.py
+++ b/IS2view/api.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
u"""
api.py
-Written by Tyler Sutterley (06/2024)
+Written by Tyler Sutterley (01/2025)
Plotting tools for visualizing rioxarray variables on leaflet maps
PYTHON DEPENDENCIES:
@@ -28,6 +28,8 @@
https://xyzservices.readthedocs.io/en/stable/
UPDATE HISTORY:
+ Updated 01/2025: added more zoom levels and update max_zoom
+ deprecation update for writing the crs to the dataset object
Updated 06/2024: use wrapper to importlib for optional dependencies
Updated 04/2024: add connections and functions for changing variables
and other attributes of the leaflet map visualization
@@ -104,7 +106,15 @@
2048.0,
1024.0,
512.0,
- 256.0
+ 256.0,
+ 128.0,
+ 64.0,
+ 32.0,
+ 16.0,
+ 8.0,
+ 4.0,
+ 2.0,
+ 1.0
],
bounds=[
[-4194304, -4194304],
@@ -124,7 +134,15 @@
2048.0,
1024.0,
512.0,
- 256.0
+ 256.0,
+ 128.0,
+ 64.0,
+ 32.0,
+ 16.0,
+ 8.0,
+ 4.0,
+ 2.0,
+ 1.0
],
bounds=[
[-4194304, -4194304],
@@ -288,7 +306,7 @@ def __init__(self, projection, **kwargs):
ipyleaflet.basemaps.NASAGIBS.BlueMarble3413
)
self.map = ipyleaflet.Map(center=kwargs['center'],
- zoom=kwargs['zoom'], max_zoom=5,
+ zoom=kwargs['zoom'], max_zoom=15,
attribution_control=kwargs['attribution'],
basemap=kwargs['basemap'],
crs=projections['EPSG:3413'],
@@ -300,7 +318,7 @@ def __init__(self, projection, **kwargs):
ipyleaflet.basemaps.NASAGIBS.BlueMarble3031
)
self.map = ipyleaflet.Map(center=kwargs['center'],
- zoom=kwargs['zoom'], max_zoom=5,
+ zoom=kwargs['zoom'], max_zoom=15,
attribution_control=kwargs['attribution'],
basemap=kwargs['basemap'],
crs=projections['EPSG:3031'],
@@ -924,7 +942,7 @@ def get_crs(self):
except Exception as exc:
pass
else:
- self._ds.rio.set_crs(ds_crs)
+ self._ds.rio.write_crs(ds_crs)
return
# get coordinate reference system from crs attribute
try:
@@ -932,7 +950,7 @@ def get_crs(self):
except Exception as exc:
pass
else:
- self._ds.rio.set_crs(ds_crs)
+ self._ds.rio.write_crs(ds_crs)
return
# raise exception
raise Exception('Unknown coordinate reference system')
@@ -1259,7 +1277,7 @@ def handle_click(self, **kwargs):
except Exception as exc:
crs = self._ds.rio.crs.to_wkt()
else:
- self._ds.rio.set_crs(crs)
+ self._ds.rio.write_crs(crs)
# get the clicked point in dataset coordinate reference system
x, y = rio.warp.transform('EPSG:4326', crs, [lon], [lat])
# find nearest point in dataset
@@ -1547,7 +1565,7 @@ def get_crs(self):
except Exception as exc:
pass
else:
- self._ds.rio.set_crs(ds_crs)
+ self._ds.rio.write_crs(ds_crs)
return
# get coordinate reference system from crs attribute
try:
@@ -1555,7 +1573,7 @@ def get_crs(self):
except Exception as exc:
pass
else:
- self._ds.rio.set_crs(ds_crs)
+ self._ds.rio.write_crs(ds_crs)
return
# raise exception
raise Exception('Unknown coordinate reference system')
@@ -1969,7 +1987,7 @@ def get_crs(self):
except Exception as exc:
pass
else:
- self._ds.rio.set_crs(ds_crs)
+ self._ds.rio.write_crs(ds_crs)
return
# get coordinate reference system from crs attribute
try:
@@ -1977,7 +1995,7 @@ def get_crs(self):
except Exception as exc:
pass
else:
- self._ds.rio.set_crs(ds_crs)
+ self._ds.rio.write_crs(ds_crs)
return
# raise exception
raise Exception('Unknown coordinate reference system')
diff --git a/IS2view/tools.py b/IS2view/tools.py
index 0379538..76b1c4a 100644
--- a/IS2view/tools.py
+++ b/IS2view/tools.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
u"""
tools.py
-Written by Tyler Sutterley (11/2023)
+Written by Tyler Sutterley (01/2025)
User interface tools for Jupyter Notebooks
PYTHON DEPENDENCIES:
@@ -13,8 +13,12 @@
matplotlib: Python 2D plotting library
http://matplotlib.org/
https://github.com/matplotlib/matplotlib
+ cmocean: Beautiful colormaps for oceanography
+ https://matplotlib.org/cmocean/
UPDATE HISTORY:
+ Updated 01/2025: added optional cmocean colormaps to dropdown menu
+ updated the default group list to include lags for release 004
Updated 06/2024: use wrapper to importlib for optional dependencies
Updated 11/2023: set time steps using decimal years rather than lags
setting dynamic colormap with float64 min and max
@@ -34,6 +38,7 @@
# attempt imports
ipywidgets = import_dependency('ipywidgets')
cm = import_dependency('matplotlib.cm')
+cmocean = import_dependency('cmocean')
# set environmental variable for anonymous s3 access
os.environ['AWS_NO_SIGN_REQUEST'] = 'YES'
@@ -131,7 +136,8 @@ def __init__(self, **kwargs):
# dropdown menu for selecting group to read from file
# use Release-01 groups as the initial default
- group_list = ['delta_h', 'dhdt_lag1', 'dhdt_lag4', 'dhdt_lag8']
+ group_list = ['delta_h', 'dhdt_lag1', 'dhdt_lag4', 'dhdt_lag8',
+ 'dhdt_lag12', 'dhdt_lag16', 'dhdt_lag20']
self.group = ipywidgets.Dropdown(
options=group_list,
description='Group:',
@@ -240,9 +246,17 @@ def __init__(self, **kwargs):
cmap_list.extend(val)
# reduce colormaps to available in program and matplotlib
cmap_set &= set(cmap_list)
+ cmap_options = sorted(cmap_set)
+ # attempt to add additional colormaps
+ ext_cmaps = []
+ try:
+ ext_cmaps.extend([f'cmo.{c}' for c in sorted(cmocean.cm.cmapnames)])
+ except Exception as exc:
+ pass
+ cmap_options.extend(ext_cmaps)
# dropdown menu for setting colormap
self.cmap = ipywidgets.Dropdown(
- options=sorted(cmap_set),
+ options=cmap_options,
value='viridis',
description='Colormap:',
description_tooltip=("Colormap: matplotlib colormaps "
@@ -383,11 +397,13 @@ def set_groups(self, *args):
"""sets the list of available groups for a release
"""
group_list = ['delta_h', 'dhdt_lag1', 'dhdt_lag4', 'dhdt_lag8']
- # append lag12 group
+ # append additional dhdt groups
if (int(self.release.value) > 1):
group_list.append('dhdt_lag12')
if (int(self.release.value) > 2):
group_list.append('dhdt_lag16')
+ if (int(self.release.value) > 3):
+ group_list.append('dhdt_lag20')
# set group list
self.group.options = group_list
# change regions for Antarctica for Release-03+
@@ -457,13 +473,17 @@ def get_variables(self, d):
"""
# data and time variables
self.data_vars = sorted(d.data_vars)
- self.time_vars = d.time.values if 'time' in d else None
- # set the default groups
- self.set_groups()
- # set the default variables
- self.set_variables()
- # set the default time steps
- self.set_time_steps()
+ if 'time' in d:
+ self.time_vars = d.time.values
+ # set the default groups
+ self.set_groups()
+ # set the default variables
+ self.set_variables()
+ # set the default time steps
+ self.set_time_steps()
+ else:
+ # set the default variables
+ self.set_variables()
def set_time_steps(self, *args, epoch=2018.0):
"""sets available time range
diff --git a/doc/environment.yml b/doc/environment.yml
index fe70dac..e0fac68 100644
--- a/doc/environment.yml
+++ b/doc/environment.yml
@@ -5,14 +5,17 @@ dependencies:
- docutils
- graphviz
- ipywidgets
+ - myst-nb
- notebook
- numpy>=1.21
- numpydoc
- pip
- python>=3.6
- sphinx
+ - sphinx-argparse>=0.4
+ - sphinxcontrib-bibtex
+ - sphinx-design
- sphinx_rtd_theme
- xarray
- pip:
- - sphinx-argparse>=0.4
- ..
diff --git a/doc/source/_assets/ATL14.png b/doc/source/_assets/ATL14.png
new file mode 100644
index 0000000..a927e63
Binary files /dev/null and b/doc/source/_assets/ATL14.png differ
diff --git a/doc/source/_assets/ATL15.png b/doc/source/_assets/ATL15.png
new file mode 100644
index 0000000..516213d
Binary files /dev/null and b/doc/source/_assets/ATL15.png differ
diff --git a/doc/source/_assets/is2view-refs.bib b/doc/source/_assets/is2view-refs.bib
new file mode 100644
index 0000000..da365bb
--- /dev/null
+++ b/doc/source/_assets/is2view-refs.bib
@@ -0,0 +1,61 @@
+@manual{Smith:2023jg,
+year = {2023},
+author = {Smith, B. and Adusumilli, Susheel and Csatho, Beata and Felikson, Denis and Fricker, Helen and Gardner, Alex and Holschuh, Nicholas and Lee, Jeffrey and Nilson, Johan and Paolo, Fernando and Siegfried, Matthew and Sutterley, Tyler and {the ICESat-2 Science Team}},
+title = {{ATLAS/ICESat-2 L3A Land Ice Height. (ATL06, Version 6)}},
+doi = {10.5067/ATLAS/ATL06.006},
+url = {https://doi.org/10.5067/ATLAS/ATL06.006},
+organization = {NASA National Snow and Ice Data Center Distributed Active Archive Center},
+address = {Boulder, Colorado USA}
+}
+
+@manual{Smith:2023fd,
+author = {Smith, B. and Dickinson, S. and Jelley, B. P. and Neumann, T. A. and Hancock, D. and Lee, J. and Harbeck, K.},
+title = {{ATLAS/ICESat-2 L3B Slope-Corrected Land Ice Height Time Series}},
+organization = {NASA National Snow and Ice Data Center Distributed Active Archive Center},
+year = {2024},
+note = {Version 4},
+address = {Boulder, Colorado USA},
+publisher = {NASA National Snow and Ice Data Center Distributed Active Archive Center},
+doi = {10.5067/ATLAS/ATL11.006},
+url = {https://doi.org/10.5067/ATLAS/ATL11.006}
+}
+
+@manual{Smith:2024fd,
+author = {Smith, B. and Sutterley, T. C. and Dickinson, S. and Jelley, B. P. and Felikson, D. and Neumann, T. A. and Fricker, H. A. and Gardner, A. and Padman, L. and Markus, T and Kurtz, N. and Bhardwaj, S. and Hancock, D. and Lee, J.},
+title = {{ATLAS/ICESat-2 L3B Antarctic and Arctic Land Ice Height Change}},
+organization = {NASA National Snow and Ice Data Center Distributed Active Archive Center},
+year = {2024},
+note = {Version 4},
+address = {Boulder, Colorado USA},
+publisher = {NASA National Snow and Ice Data Center Distributed Active Archive Center},
+doi = {10.5067/ATLAS/ATL14.004},
+url = {https://doi.org/10.5067/ATLAS/ATL14.004}
+}
+
+@manual{Smith:2024cv,
+author = {Smith, B. and Sutterley, T. C. and Dickinson, S. and Jelley, B. P. and Felikson, D. and Neumann, T. A. and Fricker, H. A. and Gardner, A. and Padman, L. and Markus, T and Kurtz, N. and Bhardwaj, S. and Hancock, D. and Lee, J.},
+title = {{ATLAS/ICESat-2 L3B Gridded Antarctic and Arctic Land Ice Height Change}},
+organization = {NASA National Snow and Ice Data Center Distributed Active Archive Center},
+year = {2024},
+note = {Version 4},
+address = {Boulder, Colorado USA},
+publisher = {NASA National Snow and Ice Data Center Distributed Active Archive Center},
+doi = {10.5067/ATLAS/ATL15.004},
+url = {https://doi.org/10.5067/ATLAS/ATL15.004}
+}
+
+@manual{Smith:2024vr,
+author = {Smith, B. and Jelley, B. and Sutterley, T. C. and Dickinson, S.},
+title = {{ATL1415 [Computer software]}},
+year = {2024},
+organization={GitHub},
+url={https://www.github.com/SmithB/ATL1415}
+}
+
+@manual{Smith:2024ut,
+author = {Smith, B.},
+title = {{altimetryFit [Computer software]}},
+year = {2024},
+organization={GitHub},
+url={https://www.github.com/SmithB/altimetryFit}
+}
diff --git a/doc/source/conf.py b/doc/source/conf.py
index 076a5de..aca07da 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -16,6 +16,9 @@
# sys.path.insert(0, os.path.abspath('.'))
import importlib.metadata
+
+# -- Project information -----------------------------------------------------
+
# package metadata
metadata = importlib.metadata.metadata("IS2view")
project = metadata["Name"]
@@ -35,13 +38,23 @@
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
- "sphinx.ext.autodoc",
+ "myst_nb",
"numpydoc",
+ 'sphinxcontrib.bibtex',
+ "sphinx.ext.autodoc",
"sphinx.ext.graphviz",
"sphinx.ext.viewcode",
+ "sphinx_design",
"sphinxarg.ext"
]
+# use myst for notebooks
+source_suffix = {
+ ".rst": "restructuredtext",
+ ".ipynb": "myst-nb",
+}
+nb_execution_mode = "off"
+
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
@@ -59,6 +72,8 @@
autodoc_member_order = 'bysource'
numpydoc_show_class_members = False
pygments_style = 'native'
+bibtex_bibfiles = ['_assets/is2view-refs.bib']
+bibtex_default_style = 'plain'
# -- Options for HTML output -------------------------------------------------
@@ -81,7 +96,14 @@
# so a file named "default.css" will overwrite the builtin "default.css".
html_logo = "_assets/IS2view_logo.png"
html_static_path = ['_static']
-repository_url = f"https://github.com/tsutterley/IS2view"
+# fetch the project urls
+project_urls = {}
+for project_url in metadata.get_all('Project-URL'):
+ name, _, url = project_url.partition(', ')
+ project_urls[name.lower()] = url
+# fetch the repository url
+repository_url = project_urls.get('repository')
+# add html context
html_context = {
"menu_links": [
(
@@ -92,6 +114,10 @@
' License',
f"{repository_url}/blob/main/LICENSE",
),
+ (
+ ' Discussions',
+ f"{repository_url}/discussions",
+ ),
],
}
diff --git a/doc/source/getting_started/Bibliography.rst b/doc/source/getting_started/Bibliography.rst
new file mode 100644
index 0000000..73b0782
--- /dev/null
+++ b/doc/source/getting_started/Bibliography.rst
@@ -0,0 +1,5 @@
+============
+Bibliography
+============
+
+.. bibliography::
diff --git a/doc/source/getting_started/Data-Products.rst b/doc/source/getting_started/Data-Products.rst
index 6ce3ae3..9508ff8 100644
--- a/doc/source/getting_started/Data-Products.rst
+++ b/doc/source/getting_started/Data-Products.rst
@@ -70,10 +70,3 @@ Elevation Change Rate
+--------------------------------+-------------------+-----------------------------------------------------------+
| ``y`` | meters | y-coordinate (northing) of the grid cell centers |
+--------------------------------+-------------------+-----------------------------------------------------------+
-
-References
-##########
-
-.. [Smith2022a] B. Smith, T. Sutterley, S. Dickinson, B. P. Jelley, D. Felikson, T. A. Neumann, H. A. Fricker, A. Gardner, L. Padman, T. Markus, N. Kurtz, S. Bhardwaj, D. Hancock, and J. Lee. *ATLAS/ICESat-2 L3B Gridded Antarctic and Arctic Land Ice Height*, Version 2, (2022). Boulder, Colorado USA. NASA National Snow and Ice Data Center Distributed Active Archive Center. `doi: 10.5067/ATLAS/ATL14.002 `_
-
-.. [Smith2022b] B. Smith, T. Sutterley, S. Dickinson, B. P. Jelley, D. Felikson, T. A. Neumann, H. A. Fricker, A. Gardner, L. Padman, T. Markus, N. Kurtz, S. Bhardwaj, D. Hancock, and J. Lee. *ATLAS/ICESat-2 L3B Gridded Antarctic and Arctic Land Ice Height Change*, Version 2, (2022). Boulder, Colorado USA. NASA National Snow and Ice Data Center Distributed Active Archive Center. `doi: 10.5067/ATLAS/ATL15.002 `_
diff --git a/doc/source/getting_started/Getting-Started.rst b/doc/source/getting_started/Getting-Started.rst
index 2f9526e..ab60956 100644
--- a/doc/source/getting_started/Getting-Started.rst
+++ b/doc/source/getting_started/Getting-Started.rst
@@ -2,12 +2,12 @@
Getting Started
===============
-This documentation is intended to explain how to visualize and operate on the ICESat-2 ATL14/15 Gridded Land Ice Height Products.
-These products are derived from measurements from the Advanced Topographic Laser Altimeter System (ATLAS),
-the primary instrumentation onboard the ICESat-2 observatory.
+The ICESat-2 ATL14/15 Gridded Land Ice Height Products are derived from measurements from the
+Advanced Topographic Laser Altimeter System (ATLAS), the primary instrumentation onboard the ICESat-2 observatory.
The data are made available from the NASA DAAC at the `National Snow and Ice Data Center (NSIDC) `_.
-The gridded land ice products are generated using a constrained least-squares technique which fits elevation data
-from the `ICESat-2 Slope-Corrected Land Ice Height Time Series (ATL11) `_ product.
+The gridded land ice products are generated using a constrained least-squares technique :cite:p:`Smith:2024ut` which fits elevation data
+from the `ICESat-2 Slope-Corrected Land Ice Height Time Series (ATL11) `_
+product :cite:p:`Smith:2023fd`.
These products are available for `regions around the Arctic and for the Antarctic ice sheet <./Getting-Started.html#regions>`_.
.. graphviz::
@@ -45,10 +45,11 @@ These products are available for `regions around the Arctic and for the Antarcti
}
The products derived from this technique include a static Digital Elevation Model (DEM)
-at a reference time `(ATL14) `_ and
-estimates of the elevation change relative to this DEM `(ATL15) `_.
+at a reference time `(ATL14) `_ :cite:p:`Smith:2024fd` and
+estimates of the elevation change relative to this DEM `(ATL15) `_
+:cite:p:`Smith:2024cv`.
These products are generated as part of the `same algorithm `_
-in order to provide a DEM and set of height-change maps that are self-consistent.
+:cite:p:`Smith:2024vr` in order to provide a self-consistent DEM and set of height-change maps.
The resolution of the ATL14 and ATL15 products is limited by the spatial resolution
of the ICESat-2 tracks, and the temporal sampling of the tracks.
The maximum spatiotemporal resolution of the product is also limited by the smoothness
@@ -59,16 +60,17 @@ pointing of the ATLAS instrument during the earliest part of the ICESat-2 missio
ATL14
#####
-The `ICESat-2 ATL14 Gridded Land Ice Height `_ product contains
-the estimated surface height at the reference epoch (midnight at the start of 2020-01-01)
-with respect to the WGS84 ellipsoid.
+The `ICESat-2 ATL14 Gridded Land Ice Height `_ product
+:cite:p:`Smith:2024fd` contains the estimated surface height at the reference epoch
+(midnight at the start of 2020-01-01) with respect to the WGS84 ellipsoid.
The ATL14 product is available at a high spatial resolution (100 m) and are provided in netCDF4 format.
ATL15
#####
-The `ICESat-2 ATL15 Gridded Land Ice Height Change `_ product contains
-quarterly, annual and multi-annual estimates of the land ice height change time series.
+The `ICESat-2 ATL15 Gridded Land Ice Height Change `_ product
+:cite:p:`Smith:2024cv` contains quarterly, annual and multi-annual estimates of the land ice height
+change time series.
The ATL15 product is available at four different spatial resolutions (1 km, 10 km, 20 km and 40 km)
and are provided in netCDF4 format.
diff --git a/doc/source/index.rst b/doc/source/index.rst
index df1ec73..cd4b082 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -1,10 +1,75 @@
-IS2view
-=======
+=====================
+IS2view Documentation
+=====================
+
+Welcome to the documentation for ``IS2view``, an interactive visualization and data extraction tool for ICESat-2 ATL14/15 Gridded Land Ice Height Products.
+This documentation is intended to explain how to visualize and operate on the ICESat-2 data using the set of ``IS2view`` programs.
+
+Introduction
+------------
+
+.. grid:: 2 2 4 4
+ :padding: 0
+
+ .. grid-item-card:: Installation
+ :text-align: center
+ :link: ./getting_started/Install.html
+
+ :material-outlined:`download;5em`
+
+ .. grid-item-card:: Getting Started
+ :text-align: center
+ :link: ./getting_started/Getting-Started.html
+
+ :material-outlined:`hiking;5em`
+
+ .. grid-item-card:: Data Products
+ :text-align: center
+ :link: ./getting_started/Data-Products.html
+
+ :material-outlined:`insert_chart;5em`
+
+ .. grid-item-card:: Examples
+ :text-align: center
+ :link: ./user_guide/Examples.html
+
+ :material-outlined:`apps;5em`
+
+
+Contribute
+----------
+
+.. grid:: 2 2 4 4
+ :padding: 0
+
+ .. grid-item-card:: Guidelines
+ :text-align: center
+ :link: ./getting_started/Contributing.html
+
+ :material-outlined:`groups;5em`
+
+ .. grid-item-card:: Code of Conduct
+ :text-align: center
+ :link: ./getting_started/Code-of-Conduct.html
+
+ :material-outlined:`gavel;5em`
+
+ .. grid-item-card:: Discussions
+ :text-align: center
+ :link: https://github.com/tsutterley/IS2view/discussions
+
+ :material-outlined:`forum;5em`
+
+ .. grid-item-card:: Issues
+ :text-align: center
+ :link: https://github.com/tsutterley/IS2view/issues
+
+ :material-outlined:`bug_report;5em`
-Interactive visualization and data extraction tool for ICESat-2 ATL14/15 Gridded Land Ice Height Products
.. toctree::
:maxdepth: 2
+ :hidden:
:caption: Getting Started
getting_started/Install.rst
@@ -41,3 +106,10 @@ Interactive visualization and data extraction tool for ICESat-2 ATL14/15 Gridded
:caption: Release Notes
release_notes/Release-Notes.rst
+
+.. toctree::
+ :maxdepth: 1
+ :hidden:
+ :caption: Bibliography
+
+ getting_started/Bibliography.rst
diff --git a/notebooks/IS2-ATL14-Viewer.ipynb b/doc/source/notebooks/IS2-ATL14-Viewer.ipynb
similarity index 89%
rename from notebooks/IS2-ATL14-Viewer.ipynb
rename to doc/source/notebooks/IS2-ATL14-Viewer.ipynb
index 5982313..54e8e2b 100644
--- a/notebooks/IS2-ATL14-Viewer.ipynb
+++ b/doc/source/notebooks/IS2-ATL14-Viewer.ipynb
@@ -6,7 +6,8 @@
"metadata": {},
"source": [
"# ICESat-2 ATL14 Viewer\n",
- "Interactive visualization and data extraction tool for ICESat-2 Gridded Land Ice Height data (ATL14)"
+ "\n",
+ "This ({nb-download}`notebook `) is an interactive visualization and data extraction tool for ICESat-2 Gridded Land Ice Height data (ATL14)"
]
},
{
@@ -26,7 +27,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "#### Set parameters for ATL14\n",
+ "## Set parameters for ATL14\n",
"- Asset: Location to get the data\n",
"- Directory: Working data directory\n",
"- Release: ATL14 data release (001, 002, 003, 004)\n",
@@ -55,7 +56,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Query CMR for ATL14 granule\n",
+ "## Query CMR for ATL14 granule\n",
"NASA's Common Metadata Repository (CMR) is a catalog of metadata records contained within the Earth Observing System Data and Information System (EOSDIS). ICESat-2 ATL14 data is archived at the NASA Distributed Active Archive Center (DAAC) at the [National Snow and Ice Data Center (NSIDC)](https://nsidc.org/daac/)."
]
},
@@ -81,7 +82,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Read and inspect ATL14 data\n",
+ "## Read and inspect ATL14 data\n",
"The ATL14 data will be read using using [xarray](https://xarray.dev/) and [rioxarray](https://corteva.github.io/rioxarray/)."
]
},
@@ -105,13 +106,13 @@
"tags": []
},
"source": [
- "### Interactive Mapping with Leaflet\n",
+ "## Interactive Mapping with Leaflet\n",
"\n",
"Interactive maps within IS2view are built upon [ipyleaflet](https://ipyleaflet.readthedocs.io). Clicking and dragging will pan the field of view, and zooming will adjust the field of view. There are 2 polar stereographic projections available for mapping in IS2view ([North](https://epsg.io/3413) and [South](https://epsg.io/3031)). The map projection, map center and zoom level will all be set based on the ATL14 region selected. The available basemaps are NASA's Next Generation Blue Marble visualization for the Arctic and Antarctic regions.\n",
"\n",
"Transects can be extracted by interactively drawing polylines on the leaflet map or programmatically using [geopandas GeoDataFrames](https://geopandas.org/en/stable/docs/reference/api/geopandas.GeoDataFrame.html). See [Recipes](https://is2view.readthedocs.io/en/latest/user_guide/Recipes.html) for more information.\n",
"\n",
- "#### Set plot parameters for ATL14"
+ "## Set plot parameters for ATL14"
]
},
{
@@ -128,7 +129,7 @@
" draw_tools='polyline',\n",
" attribution=False)\n",
"# set plot attributes\n",
- "IS2widgets.set_variables(ds)\n",
+ "IS2widgets.get_variables(ds)\n",
"IS2widgets.set_atl14_defaults()\n",
"wbox = IS2widgets.VBox([\n",
" IS2widgets.variable,\n",
@@ -144,7 +145,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Add xarray dataset as an image service layer"
+ "## Add xarray dataset as an image service layer"
]
},
{
@@ -168,7 +169,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Extract transects using selected geometries"
+ "## Extract transects using selected geometries"
]
},
{
@@ -185,11 +186,8 @@
}
],
"metadata": {
- "interpreter": {
- "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6"
- },
"kernelspec": {
- "display_name": "Python 3 (ipykernel)",
+ "display_name": "py13",
"language": "python",
"name": "python3"
},
@@ -203,7 +201,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.10.13"
+ "version": "3.13.0"
}
},
"nbformat": 4,
diff --git a/notebooks/IS2-ATL15-Viewer.ipynb b/doc/source/notebooks/IS2-ATL15-Viewer.ipynb
similarity index 90%
rename from notebooks/IS2-ATL15-Viewer.ipynb
rename to doc/source/notebooks/IS2-ATL15-Viewer.ipynb
index f6713d3..4cb3db7 100644
--- a/notebooks/IS2-ATL15-Viewer.ipynb
+++ b/doc/source/notebooks/IS2-ATL15-Viewer.ipynb
@@ -6,7 +6,8 @@
"metadata": {},
"source": [
"# ICESat-2 ATL15 Viewer\n",
- "Interactive visualization and data extraction tool for ICESat-2 Gridded Land Ice Height Change data (ATL15)"
+ "\n",
+ "This ({nb-download}`notebook `) is an interactive visualization and data extraction tool for ICESat-2 Gridded Land Ice Height Change data (ATL15)"
]
},
{
@@ -26,7 +27,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "#### Set parameters for ATL15\n",
+ "## Set parameters for ATL15\n",
"- Asset: Location to get the data\n",
"- Directory: Working data directory\n",
"- Release: ATL15 data release (001, 002, 003, 004)\n",
@@ -59,7 +60,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Query CMR for ATL15 granule\n",
+ "## Query CMR for ATL15 granule\n",
"NASA's Common Metadata Repository (CMR) is a catalog of metadata records contained within the Earth Observing System Data and Information System (EOSDIS). ICESat-2 ATL15 data is archived at the NASA Distributed Active Archive Center (DAAC) at the [National Snow and Ice Data Center (NSIDC)](https://nsidc.org/daac/)."
]
},
@@ -85,7 +86,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Read and inspect ATL15 data\n",
+ "## Read and inspect ATL15 data\n",
"The selected group within ATL15 data will be read using [xarray](https://xarray.dev/) and [rioxarray](https://corteva.github.io/rioxarray/)."
]
},
@@ -106,13 +107,13 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Interactive Mapping with Leaflet\n",
+ "## Interactive Mapping with Leaflet\n",
"\n",
"Interactive maps within IS2view are built upon [ipyleaflet](https://ipyleaflet.readthedocs.io). Clicking and dragging will pan the field of view, and zooming will adjust the field of view. There are 2 polar stereographic projections available for mapping in IS2view ([North](https://epsg.io/3413) and [South](https://epsg.io/3031)). The map projection, map center and zoom level will all be set based on the ATL15 region selected. The available basemaps are NASA's Next Generation Blue Marble visualization for the Arctic and Antarctic regions.\n",
"\n",
"Regional time series can be extracted from ATL15 by interactively drawing geometries on the leaflet map or programmatically using [geopandas GeoDataFrames](https://geopandas.org/en/stable/docs/reference/api/geopandas.GeoDataFrame.html). See [Recipes](https://is2view.readthedocs.io/en/latest/user_guide/Recipes.html) for more information.\n",
"\n",
- "#### Set plot parameters for ATL15\n",
+ "## Set plot parameters for ATL15\n",
"Specifies the variable to plot, the [colormap](https://matplotlib.org/gallery/color/colormap_reference.html), and the normalization for the plot colors."
]
},
@@ -148,7 +149,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Add xarray dataset as an image service layer"
+ "## Add xarray dataset as an image service layer"
]
},
{
@@ -173,7 +174,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Extract time series from selected geometries\n",
+ "## Extract time series from selected geometries\n",
"- Point: time series for a geolocation\n",
"- Transect: time series for a line segment\n",
"- Regional average: time series for a polygon or bounding box"
@@ -190,19 +191,11 @@
" variable=IS2widgets.variable.value,\n",
" )"
]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": []
}
],
"metadata": {
- "interpreter": {
- "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6"
- },
"kernelspec": {
- "display_name": "Python 3 (ipykernel)",
+ "display_name": "py13",
"language": "python",
"name": "python3"
},
@@ -216,7 +209,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.10.13"
+ "version": "3.13.0"
}
},
"nbformat": 4,
diff --git a/doc/source/user_guide/Examples.rst b/doc/source/user_guide/Examples.rst
index e67479f..914d964 100644
--- a/doc/source/user_guide/Examples.rst
+++ b/doc/source/user_guide/Examples.rst
@@ -4,21 +4,27 @@
Examples
========
-Jupyter Notebooks for visualizing ICESat-2 Gridded Land Ice products:
+Jupyter notebooks for visualizing the ICESat-2 ATL14/15 Gridded Land Ice Products:
-- Read and Plot ATL14 data |github atl14| |nbviewer atl14|
- Visualizing the ICESat-2 Gridded Antarctic and Arctic Land Ice Height product
-- Read and Plot ATL15 data |github atl15| |nbviewer atl15|
- Visualizing the ICESat-2 Gridded Antarctic and Arctic Land Ice Height Change product
+.. toctree::
+ :hidden:
+ :maxdepth: 1
-.. |github atl14| image:: https://img.shields.io/badge/GitHub-view-6f42c1?style=flat&logo=Github
- :target: https://github.com/tsutterley/IS2view/blob/main/notebooks/IS2-ATL14-Viewer.ipynb
+ ../notebooks/IS2-ATL14-Viewer
+ ../notebooks/IS2-ATL15-Viewer
-.. |nbviewer atl14| image:: https://raw.githubusercontent.com/jupyter/design/master/logos/Badges/nbviewer_badge.svg
- :target: https://nbviewer.jupyter.org/github/tsutterley/IS2view/blob/main/notebooks/IS2-ATL14-Viewer.ipynb
+.. grid:: 1 2 2 2
-.. |github atl15| image:: https://img.shields.io/badge/GitHub-view-6f42c1?style=flat&logo=Github
- :target: https://github.com/tsutterley/IS2view/blob/main/notebooks/IS2-ATL15-Viewer.ipynb
+ .. grid-item-card:: ATL14 Visualizer
+ :text-align: center
+ :img-top: ../_assets/ATL14.png
+ :link: ../notebooks/IS2-ATL14-Viewer.html
+ :link-alt: Visualizing the ICESat-2 Gridded Antarctic and Arctic Land Ice Height product
-.. |nbviewer atl15| image:: https://raw.githubusercontent.com/jupyter/design/master/logos/Badges/nbviewer_badge.svg
- :target: https://nbviewer.jupyter.org/github/tsutterley/IS2view/blob/main/notebooks/IS2-ATL15-Viewer.ipynb
+ .. grid-item-card:: ATL15 Visualizer
+ :text-align: center
+ :img-top: ../_assets/ATL15.png
+ :link: ../notebooks/IS2-ATL15-Viewer.html
+ :link-alt: Visualizing the ICESat-2 Gridded Antarctic and Arctic Land Ice Height Change product
+
+Check out the `recipes <./Recipes.html>`_ for some more specific examples and code snippets.