diff --git a/_quarto.yml b/_quarto.yml index 00639ef..a83b90a 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -46,6 +46,7 @@ book: - lectures/lesson-19-dem.qmd - discussion-sections/ds4-landcover.qmd - lectures/lesson-18-STAC.qmd + - discussion-sections/ds5-modis-ndvi.qmd appendices: diff --git a/docs/appendices/gitignore_untrack.html b/docs/appendices/gitignore_untrack.html index f4d5083..c5c18a2 100644 --- a/docs/appendices/gitignore_untrack.html +++ b/docs/appendices/gitignore_untrack.html @@ -312,6 +312,12 @@ 22  STAC specification + + diff --git a/docs/appendices/set-pat.html b/docs/appendices/set-pat.html index 1734c0a..b15474a 100644 --- a/docs/appendices/set-pat.html +++ b/docs/appendices/set-pat.html @@ -65,7 +65,7 @@ - + @@ -312,6 +312,12 @@ 22  STAC specification + + @@ -669,8 +675,8 @@

diff --git a/docs/lectures/lesson-19-dem.html b/docs/lectures/lesson-19-dem.html index 26c2f8e..b14f486 100644 --- a/docs/lectures/lesson-19-dem.html +++ b/docs/lectures/lesson-19-dem.html @@ -315,6 +315,12 @@ 22  STAC specification + + diff --git a/docs/lectures/lesson-2-series-dataframes.html b/docs/lectures/lesson-2-series-dataframes.html index 2a75dfd..636c3d1 100644 --- a/docs/lectures/lesson-2-series-dataframes.html +++ b/docs/lectures/lesson-2-series-dataframes.html @@ -315,6 +315,12 @@ 22  STAC specification + + diff --git a/docs/lectures/lesson-3-pandas-subsetting.html b/docs/lectures/lesson-3-pandas-subsetting.html index e35b84c..645004d 100644 --- a/docs/lectures/lesson-3-pandas-subsetting.html +++ b/docs/lectures/lesson-3-pandas-subsetting.html @@ -315,6 +315,12 @@ 22  STAC specification + + diff --git a/docs/lectures/lesson-4-basic-plotting.html b/docs/lectures/lesson-4-basic-plotting.html index 13ab522..7a1a6b5 100644 --- a/docs/lectures/lesson-4-basic-plotting.html +++ b/docs/lectures/lesson-4-basic-plotting.html @@ -315,6 +315,12 @@ 22  STAC specification + + diff --git a/docs/lectures/lesson-5-updating-dataframes.html b/docs/lectures/lesson-5-updating-dataframes.html index dd51546..5b1c14c 100644 --- a/docs/lectures/lesson-5-updating-dataframes.html +++ b/docs/lectures/lesson-5-updating-dataframes.html @@ -315,6 +315,12 @@ 22  STAC specification + + diff --git a/docs/lectures/lesson-6-groupby.html b/docs/lectures/lesson-6-groupby.html index 5b5ef88..ee57083 100644 --- a/docs/lectures/lesson-6-groupby.html +++ b/docs/lectures/lesson-6-groupby.html @@ -315,6 +315,12 @@ 22  STAC specification + + diff --git a/docs/lectures/lesson-7-time-series.html b/docs/lectures/lesson-7-time-series.html index 2f08831..ae17977 100644 --- a/docs/lectures/lesson-7-time-series.html +++ b/docs/lectures/lesson-7-time-series.html @@ -315,6 +315,12 @@ 22  STAC specification + + diff --git a/docs/lectures/lesson-8-vector-data.html b/docs/lectures/lesson-8-vector-data.html index 5f1d70c..25077d7 100644 --- a/docs/lectures/lesson-8-vector-data.html +++ b/docs/lectures/lesson-8-vector-data.html @@ -312,6 +312,12 @@ 22  STAC specification + + diff --git a/docs/lectures/lesson-9-geopandas-intro.html b/docs/lectures/lesson-9-geopandas-intro.html index 5bac0b5..3be549d 100644 --- a/docs/lectures/lesson-9-geopandas-intro.html +++ b/docs/lectures/lesson-9-geopandas-intro.html @@ -315,6 +315,12 @@ 22  STAC specification + + diff --git a/docs/search.json b/docs/search.json index 492a9ec..317a12e 100644 --- a/docs/search.json +++ b/docs/search.json @@ -972,6 +972,34 @@ "section": "22.9 References", "text": "22.9 References\nSTAC Documentation:\n\nThe STAC Specification\nRead a STAC Catalog Using PySTAC\n\nMicrosoft Planetary Computer Documentation - Reading Data from the STAC API" }, + { + "objectID": "discussion-sections/ds5-modis-ndvi.html#data-access", + "href": "discussion-sections/ds5-modis-ndvi.html#data-access", + "title": "23  *Lab: STAC access", + "section": "23.1 Data access", + "text": "23.1 Data access\n\nOpen the MPC STAC catalog.\nCreate a search for data in the MODIS Vegetation Indices dataset (id = 'modis-13A1-061') from 2023 that intersects the box bounds:\n\n[-119.28376473993174, 35.561681976121605, -117.15965333370627, 36.65291223580975]\nThis list of coordinates is in the form [minx, miny, maxx, maxy] with epsg:4326 and describes a rectangular region around Sequoia National Park.\nHINT: You can use the list of coordinates directly in the catalog search without converting it to a JSON format.\n\nHow many items are in the search?" + }, + { + "objectID": "discussion-sections/ds5-modis-ndvi.html#examine-dates", + "href": "discussion-sections/ds5-modis-ndvi.html#examine-dates", + "title": "23  *Lab: STAC access", + "section": "23.2 Examine Dates", + "text": "23.2 Examine Dates\n\nSelect the first item in the search as a variable item.\nRun item.properties. What kind of Python data structure is this? You can also check it using type.\nUse the 'datetime', 'start_datetime', and 'end_datetime' keys to print the datetime information of the item.\nThe 'datetime' value usually refers to the date of collection. Discuss with your team: why does this item does not have a datetime, but instead has start and end times? HINT: read the datset’s overview." + }, + { + "objectID": "discussion-sections/ds5-modis-ndvi.html#assets", + "href": "discussion-sections/ds5-modis-ndvi.html#assets", + "title": "23  *Lab: STAC access", + "section": "23.3 Assets", + "text": "23.3 Assets\n\nCheck the item’s assets. What kind of Python structure is this?\nRun the following code in a cell\n\nfor key, asset in item.assets.items():\n print(key, '-', asset.title)\nHere, item.assets.items() returns the key-value pairs of the item.assets dictionary as tuples we can iterate over simultaneously.\n\nIdentify which key in item.assets has the 500m NDVI asset.\nOpen the 500m 16 days NDVI data using the href from the corresponding asset and rioxr.open_rasterio(). Store it as a variable named data." + }, + { + "objectID": "discussion-sections/ds5-modis-ndvi.html#rescaling", + "href": "discussion-sections/ds5-modis-ndvi.html#rescaling", + "title": "23  *Lab: STAC access", + "section": "23.4 Rescaling", + "text": "23.4 Rescaling\n\nPlot the data raster. Discuss with your team the range of values in the raster and how these relate to the NDVI range.\nRun the following code:\n\nitem.assets[\"500m_16_days_NDVI\"].extra_fields[\"raster:bands\"]\nWhat kind of structure is this?\n\nExtract the scale value (0.0001) from the item using the previous code and store it in a variable named scale.\nMultiply the data raster by scale to get the actual NDVI values. Store the new raster as a variable ndvi.\nPlot ndvi using the colormap PiYG. HINT: cmap=\"PiYG\". This is a nice area to look at NDVI since we can see the transition in NDVI between the Sierra Nevada and Death Valley." + }, { "objectID": "appendices/set-pat.html#context", "href": "appendices/set-pat.html#context",