Skip to content

Commit d76bcb1

Browse files
authored
413 nits (#64)
* remove unnecessary cell, typo * few changes * nit * add new item
1 parent 61cfb2b commit d76bcb1

File tree

6 files changed

+44
-24
lines changed

6 files changed

+44
-24
lines changed

book/background/4_tutorial_data.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,13 @@ Example of a ice velocity time series along centerline profile of Malaspina Glac
2323

2424
Part of what is so exciting about ITS_LIVE is that it combines image pairs from a number of satellites, including imagery from optical (Landsat 4,5,7,8,9 & Sentinel-2) and synthetic aperture radar (Sentinel-1) sensors. For this reason, ITS_LIVE time series data can be quite large. Another exciting aspect of the ITS_LIVE dataset is that the image pair time series data is made available as Zarr data cubes stored in cloud object storage on Amazon Web Services (AWS), meaning that users don't need to download massive files to start working with the data!
2525

26+
27+
:::{admonition} A note about working with image pair time series
28+
ITS_LIVE is an ice velocity time series where observations are derived from image pairs, meaning that an observation captures all movement that occurs between the two image acquisitions. In this tutorial, we focus on demonstrating the basics of dataset manipulation, examination and preliminary visualization; we index observations off of their mid-date and do not take the time between the images into account. For detailed time series analysis of ice velocity, this point should be considered when making decisions about which observations to include in analysis for different scientific objectives and how to perform aggregation and resampling operations.
29+
30+
For a comprehensive approach to produce regularized ice velocity estimates from an ITS_LIVE time series, we direct the interested reader to {cite:t}`charrier_2025_TICOI`.
31+
:::
32+
2633
ITS_LIVE produces a number of data products in addition to the image pair time series that we use in this tutorial, and provides different options to access the data. Check them out [here](https://its-live.jpl.nasa.gov/#access).
2734

2835
**Documentation & References**:

book/background/5_software.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ There are two options for creating a software environment: [pixi](https://pixi.s
1515

1616
3. There are two small data cubes included in the repo that are used in the tutorials. We don't want git to track these so we tell git to ignore these file paths:
1717

18-
```git update-index --assume-unchanged book/itslive/data/raster_data/regional_glacier_velocity_vector_cube.zarr/. book/sentinel/data/raster_data/full_timeseries/intermediate_cubes/s1_asf_clipped_cube.zarr/.```
18+
```git update-index --assume-unchanged book/itslive/data/raster_data/regional_glacier_velocity_vector_cube.zarr/. book/sentinel1/data/raster_data/full_timeseries/intermediate_cubes/s1_asf_clipped_cube.zarr/.```
1919

2020
4. Execute `pixi run` for each tutorial:
2121
```pixi run itslive```
@@ -37,7 +37,7 @@ Note that the first `pixi run` will download specific versions of all required P
3737

3838
4. There are two small data cubes included in the repo that are used in the tutorials. We don't want git to track these so we tell git to ignore these file paths:
3939

40-
```git update-index --assume-unchanged book/itslive/data/raster_data/regional_glacier_velocity_vector_cube.zarr/. book/sentinel/data/raster_data/full_timeseries/intermediate_cubes/s1_asf_clipped_cube.zarr/.```
40+
```git update-index --assume-unchanged book/itslive/data/raster_data/regional_glacier_velocity_vector_cube.zarr/. book/sentinel1/data/raster_data/full_timeseries/intermediate_cubes/s1_asf_clipped_cube.zarr/.```
4141

4242
5. Start Jupyterlab and navigate to the directories containing the Jupyter notebooks (`itslive/nbs` and `s1/nbs`):
4343
```jupyterlab```

book/book_refs.bib

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,18 @@ @article{Boulton02012018
6464
doi = {10.1080/20964471.2017.1397411}
6565
}
6666

67+
@misc{charrier_2025_TICOI,
68+
title = {{{TICOI}}: An Operational {{Python}} Package to Generate Regularized Glacier Velocity Time Series},
69+
author = {Charrier, L. and Dehecq, A. and Guo, L. and Brun, F. and Millan, R. and Lioret, N. and Copland, L. and Maier, N. and Dow, C. and Halas, P.},
70+
year = {2025},
71+
journal = {EGUsphere},
72+
volume = {2025},
73+
pages = {1--40},
74+
doi = {10.5194/egusphere-2024-3409},
75+
annotation = {An \texttt{online} reference from EGUsphere Preprint repository.},
76+
}
77+
78+
6779
@article{chatenouxSwissDataCube2021,
6880
title = {The {{Swiss}} Data Cube, Analysis Ready Data Archive Using Earth Observations of {{Switzerland}}},
6981
author = {Chatenoux, Bruno and Richard, Jean-Philippe and Small, David and Roeoesli, Claudia and Wingate, Vladimir and Poussin, Charlotte and Rodila, Denisa and Peduzzi, Pascal and Steinmeier, Charlotte and Ginzler, Christian and Psomas, Achileas and Schaepman, Michael E. and Giuliani, Gregory},

book/endmatter/other_resources.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ Throughout this book, we reference a number of resources on different topics. Th
1515
## Dask resources
1616
- [Choosing good chunk sizes in Dask](https://blog.dask.org/2021/11/02/choosing-dask-chunk-sizes)
1717
- [Dask Cookbook - Project Pythia](https://projectpythia.org/dask-cookbook/README.html)
18+
1819
## Geospatial data science, data formats, and metadata
1920
- [Introduction to Earth and Environmental Data Science](https://earth-env-data-science.github.io/intro.html)
2021
- [Geocomputation with Python](https://py.geocompx.org/)
2122
- [Datacubes - openEO](https://openeo.org/documentation/1.0/datacubes.html#what-are-datacubes)
23+
- [Cubes & Clouds - Cloud Native Open Data Sciences for Earth Observation, EO College](https://github.com/EO-College/cubes-and-clouds)
2224
- [Data Formats - NASA Earth Observation Data Basics](https://www.earthdata.nasa.gov/learn/earth-observation-data-basics/data-formats)
2325
- [Cloud Computing - NASA Earth Observation Data Basics](https://www.earthdata.nasa.gov/learn/earth-observation-data-basics/cloud-computing)
2426
- [Vector Data Cubes - Edzer Pebesma](https://r-spatial.org/r/2022/09/12/vdc.html)
@@ -30,7 +32,7 @@ Throughout this book, we reference a number of resources on different topics. Th
3032
- [Coordinate Reference Systems - Geocomputaion with Python](https://py.geocompx.org/01-spatial-data#geographic-coordinate-systems)
3133
- [Reprojecting Geographic Data - Geocomputation with Python](https://py.geocompx.org/06-reproj)
3234
- [PyPROJ](https://pyproj4.github.io/pyproj/stable/)
33-
- [cfxarray](https://cf-xarray.readthedocs.io/en/latest/)
35+
- [cf_xarray](https://cf-xarray.readthedocs.io/en/latest/)
3436

3537
## Remote sensing data types and formats
3638
- [Types of SAR Products - NASA Earth Observation Data Basics](https://www.earthdata.nasa.gov/learn/earth-observation-data-basics/types-sar-products)

book/itslive/nbs/4_exploratory_data_analysis_single.ipynb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1152,7 +1152,13 @@
11521152
"source": [
11531153
"## D. Computations along time dimension\n",
11541154
"\n",
1155-
"In Section C, we saw that the timeseries is dense in places and quite noisy. This section demonstrates different approaches for looking at a temporal signal in the dataset."
1155+
"In Section C, we saw that the timeseries is dense in places and quite noisy. This section demonstrates different approaches for looking at a temporal signal in the dataset.\n",
1156+
"\n",
1157+
":::{admonition} A note about working with image pair time series\n",
1158+
"ITS_LIVE is an ice velocity time series where observations are derived from image pairs, meaning that an observation captures all movement that occurs between the two image acquisitions. In this tutorial, we focus on demonstrating the basics of dataset manipulation, examination and preliminary visualization; we index observations off of their mid-date and do not take the time between the images into account. For detailed time series analysis of ice velocity, this point should be considered when making decisions about which observations to include in analysis for different scientific objectives and how to perform aggregation and resampling operations. \n",
1159+
"\n",
1160+
"For a comprehensive approach to produce regularized ice velocity estimates from an ITS_LIVE time series, we direct the interested reader to {cite:t}`charrier_2025_TICOI`.\n",
1161+
":::"
11561162
]
11571163
},
11581164
{

book/itslive/nbs/5_exploratory_data_analysis_group.ipynb

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -98,25 +98,6 @@
9898
"%config InlineBackend.figure_format='retina'"
9999
]
100100
},
101-
{
102-
"cell_type": "code",
103-
"execution_count": null,
104-
"id": "3c4f6a4f-2584-40e9-bfb7-395914c07c71",
105-
"metadata": {},
106-
"outputs": [],
107-
"source": [
108-
"import zarr\n",
109-
"import cf_xarray\n",
110-
"import scipy\n",
111-
"print('xr: ', xr.__version__)\n",
112-
"print('dask: ', dask.__version__)\n",
113-
"print('np: ', np.__version__)\n",
114-
"print('zarr: ', zarr.__version__)\n",
115-
"print('xvec: ', xvec.__version__)\n",
116-
"print('cf xr: ', cf_xarray.__version__)\n",
117-
"print('scipy: ', scipy.__version__)"
118-
]
119-
},
120101
{
121102
"cell_type": "code",
122103
"execution_count": null,
@@ -571,7 +552,13 @@
571552
"source": [
572553
"### 2) Visualize velocity data\n",
573554
"\n",
574-
"Xvec has a method, `to_geodataframe()` that allows us to easily convert the `xr.Dataset` vector cube to a `gpd.GeoDataFrame`. We can then use the GeoPandas `.explore()` method to interactively visualize the data."
555+
"Xvec has a method, `to_geodataframe()` that allows us to easily convert the `xr.Dataset` vector cube to a `gpd.GeoDataFrame`. We can then use the GeoPandas `.explore()` method to interactively visualize the data.\n",
556+
"\n",
557+
":::{admonition} A note about working with image pair time series\n",
558+
"ITS_LIVE is an ice velocity time series where observations are derived from image pairs, meaning that an observation captures all movement that occurs between the two image acquisitions. In this tutorial, we focus on demonstrating the basics of dataset manipulation, examination and preliminary visualization; we index observations off of their mid-date and do not take the time between the images into account. For detailed time series analysis of ice velocity, this point should be considered when making decisions about which observations to include in analysis for different scientific objectives and how to perform aggregation and resampling operations. \n",
559+
"\n",
560+
"For a comprehensive approach to produce regularized ice velocity estimates from an ITS_LIVE time series, we direct the interested reader to {cite:t}`charrier_2025_TICOI`.\n",
561+
":::"
575562
]
576563
},
577564
{
@@ -589,10 +576,13 @@
589576
"metadata": {},
590577
"outputs": [],
591578
"source": [
579+
"#Calculate mean over time dimension\n",
592580
"vector_data_cube_mean = vector_data_cube.mean(dim=\"mid_date\")\n",
593581
"\n",
582+
"#Calc speed\n",
594583
"vector_data_cube_mean[\"vmag\"] = np.sqrt(vector_data_cube_mean[\"vx\"] ** 2 + vector_data_cube_mean[\"vy\"] ** 2)\n",
595584
"\n",
585+
"#Visualize mean speed\n",
596586
"vector_data_cube_mean[\"vmag\"].xvec.to_geodataframe(geometry=\"geometry\").explore(\"vmag\")"
597587
]
598588
},
@@ -611,10 +601,13 @@
611601
"metadata": {},
612602
"outputs": [],
613603
"source": [
604+
"#Group by season and calculate mean\n",
614605
"vector_cube_seasonal_mean = vector_data_cube.groupby(\"mid_date.season\").mean()\n",
615606
"\n",
607+
"#Calc speed\n",
616608
"vector_cube_seasonal_mean[\"vmag\"] = np.sqrt(vector_cube_seasonal_mean[\"vx\"] ** 2 + vector_cube_seasonal_mean[\"vy\"] ** 2)\n",
617609
"\n",
610+
"#Plot summer mean\n",
618611
"vector_cube_seasonal_mean.sel(season=\"JJA\")[\"vmag\"].xvec.to_geodataframe(geometry=\"geometry\").explore(\"vmag\")"
619612
]
620613
},

0 commit comments

Comments
 (0)