Skip to content

Commit

Permalink
m2 updates (#60)
Browse files Browse the repository at this point in the history
* gee tutorial hyperlink

* R resources/links added to prereqs/tutorials

* fix r tutorial links

* gee project setup description

* lessons content fixes/improvements

* cs tatras desc fix

* typo fix

* exercises fix 1

* minor exercises fixes

* typos fixes
  • Loading branch information
kgryguc authored Oct 6, 2024
1 parent 9dec38a commit 2c8c81d
Show file tree
Hide file tree
Showing 13 changed files with 50 additions and 25 deletions.
4 changes: 2 additions & 2 deletions course/data_usecases/usecase_forests_tatras.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ The use case is featured in the following parts of the course:

Falťan, V., Katina, S., Minár, J., Polčák, N., Bánovský, M., Maretta, M., … & Petrovič, F. (2020). *Evaluation of abiotic controls on windthrow disturbance using a generalized additive model: A case study of the Tatra National Park, Slovakia.* Forests, 11(12), 1259. <https://doi.org/10.3390/f11121259>

Kennedy, R. E., Cohen, W. B., & Schroeder, T. A. (2007). T*rajectory-based change detection for automated characterization of forest disturbance dynamics*. Remote Sensing of Environment, 110(3), 370-386. <https://doi.org/10.1016/j.rse.2010.07.008>
Kennedy, R. E., Cohen, W. B., & Schroeder, T. A. (2007). *Trajectory-based change detection for automated characterization of forest disturbance dynamics*. Remote Sensing of Environment, 110(3), 370-386. <https://doi.org/10.1016/j.rse.2010.07.008>

Mezei, P., Grodzki, W., Blaženec, M., & Jakuš, R. (2014). F*actors influencing the wind–bark beetles’ disturbance system in the course of an Ips typographus outbreak in the Tatra Mountains*. Forest Ecology and Management, 312, 67-77. <https://doi.org/10.1016/j.foreco.2013.10.020>
Mezei, P., Grodzki, W., Blaženec, M., & Jakuš, R. (2014). *Factors influencing the wind–bark beetles’ disturbance system in the course of an Ips typographus outbreak in the Tatra Mountains*. Forest Ecology and Management, 312, 67-77. <https://doi.org/10.1016/j.foreco.2013.10.020>

Nikolov, C., Konôpka, B., Kajba, M., Galko, J., Kunca, A., & Janský, L. (2014). *Post-disaster forest management and bark beetle outbreak in Tatra National Park, Slovakia*. Mountain Research and Development, 34(4), 326-335. <https://doi.org/10.1659/MRD-JOURNAL-D-13-00017.1>

Expand Down
2 changes: 1 addition & 1 deletion course/data_usecases/usecase_tundra_karkonosze.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ The use case is featured in the following parts of the course:

- [Exercise: Image processing (Module 2, Theme 3)](../module2/03_image_processing/03_image_processing_exercise.md)
- [Exercise: Multitemporal classification (Module 2, Theme 4)](../module2/04_multitemporal_classification/04_multitemporal_classification_exercise.md)
- [Case study: Monitoring tundra grasslands (Karkonosze/Krkonoše Mountains (Module 2, Case Study 1)](../module2/06_cs_tundra_grasslands/06_cs_tundra_grasslands.md)
- [Case study: Monitoring tundra grasslands (Karkonosze/Krkonoše Mountains) (Module 2, Case Study 1)](../module2/06_cs_tundra_grasslands/06_cs_tundra_grasslands.md)

## References

Expand Down
8 changes: 6 additions & 2 deletions course/module0/module0.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ The links for each software lead to descriptions and (where required) specific i

* [CloudCompare](../software/software_cloudcompare.md) (direct download and installation from the website)

* Google Earth Engine
* [Google Earth Engine](../software/software_gee.md)


### Programming
Expand Down Expand Up @@ -138,6 +138,10 @@ Below, we provide links to tutorials and resources where you can obtain the requ
#### Programming in Python
If you are new to Python, you might look into this tutorial on [Python Code Fundamentals](https://www.earthdatascience.org/courses/intro-to-earth-data-science/python-code-fundamentals/) by [Earth Lab](https://www.earthdatascience.org/).

Advanced tutorials or material can be found among the following resources:
Advanced tutorials or material can be found among the following resources:
* Online course on [Practical Python Programming](https://dabeaz-course.github.io/practical-python/) by David Beazley
* Online course/textbook on [Use Data for Earth and Environmental Science in Open Source Python](https://www.earthdatascience.org/courses/use-data-open-source-python/) by [Earth Lab](https://www.earthdatascience.org/)


#### Programming in R
If you are new to R you can check out recommended tutorials and books [here](../software/software_r_language.md#getting-started-external-material)
Original file line number Diff line number Diff line change
Expand Up @@ -389,7 +389,7 @@ Henrich, V., Götze, E., Jung, A., Sandow, C., Thürkow, D., & Gläßer, C. (200

Hotelling, H. (1933). *Analysis of a complex of statistical variables into principal components*. Journal of Educational Psychology, 24(6), 417. <https://doi.org/10.1037/h0071325>

Kauth, R. J., & Thomas, G. S. (1976). *The Tasseled Cap—A Graphic Description of the Spectral-Temporal Development of Agricultural Crops as Seen by Landsat*. LARS: Proceedings of the Symposium on Machine Processing of Remotely Sensed Data, West Lafayette, IN: Purdue University, 4B-41-4B-51. [source](http://docs.lib.purdue.edu/lars_symp?utm_source=docs.lib.purdue.edu%2Flars_symp%2F159&utm_medium=PDF&utm_campaign=PDFCoverPages)
Kauth, R. J., & Thomas, G. S. (1976). *The Tasseled Cap—A Graphic Description of the Spectral-Temporal Development of Agricultural Crops as Seen by Landsat*. LARS: Proceedings of the Symposium on Machine Processing of Remotely Sensed Data, West Lafayette, IN: Purdue University, 4B-41-4B-51. [source](https://docs.lib.purdue.edu/lars_symp/159/)

Landgrebe, D. A. (2003). *Signal theory methods in multispectral remote sensing* (Vol. 24). John Wiley & Sons. <https://doi.org/10.1002/0471723800>

Expand Down
24 changes: 12 additions & 12 deletions course/module2/03_image_processing/03_image_processing.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ Radiometric normalization is necessary for e.g. PlanetScope data due to the dif

## Overview of tools and algorithms used with satellite multispectral image/time series processing

Most of the processing steps applied to the multitemporal imagery data are identical with those used in single image preparation workflow. Some - like composites or harmonization - are specific for datasets with temporal dimension. Different types of tools are present in many resources like closed software, open platforms or extensions, libraries and packages expanding the base capabilities of programming languages, software or platforms. Here is a sample of different tools and algorithms commonly used in processing of multispectral imagery. This selection contains only applications used during **data preparation**. Data analysis is a whole other collection, parts of which can be found in contents of **[Theme 4](../04_multitemporal_classification/04_multitemporal_classification.md)** and **[Theme 5](../05_vegetation_monitoring/05_vegetation_monitoring.md)**. Strictly code-based tools are extensions of Google Earth Engine JavaScript and R. More examples of Python based algorithms can be found in **[Theme 2 of Module 1](../../module1/02_large_time_series_datasets_in_remote_sensing/02_large_time_series_datasets_in_remote_sensing.md)**+.
Most of the processing steps applied to the multitemporal imagery data are identical with those used in single image preparation workflow. Some - like composites or harmonization - are specific for datasets with temporal dimension. Different types of tools are present in many resources like closed software, open platforms or extensions, libraries and packages expanding the base capabilities of programming languages, software or platforms. Here is a sample of different tools and algorithms commonly used in processing of multispectral imagery. This selection contains only applications used during **data preparation**. Data analysis is a whole other collection, parts of which can be found in contents of **[Theme 4](../04_multitemporal_classification/04_multitemporal_classification.md)** and **[Theme 5](../05_vegetation_monitoring/05_vegetation_monitoring.md)**. Strictly code-based tools are extensions of Google Earth Engine JavaScript and R. More examples of Python based algorithms can be found in **[Theme 2 of Module 1](../../module1/02_large_time_series_datasets_in_remote_sensing/02_large_time_series_datasets_in_remote_sensing.md)**.

### Satellite/sensor processors

Expand Down Expand Up @@ -243,7 +243,7 @@ Instrument Data Processing (IDP)
The processing from Level-0 up to Level-1C is performed by IDP functionality of the Copernicus Ground Segment. Level-0 and Level-1A products are Copernicus Ground Segment internal products not made available to users.
</dd>
<dd>
<b>SOURCES</b>: <a href="https://sentinels.copernicus.eu/web/sentinel/missions/sentinel-2/ground-segment/core-ground-segment/systematic-processing-and-reprocessing-services">Copernicus Ground Segment description</a>, <a href="https://sentinel.esa.int/documents/247904/685211/sentinel-2_user_handbook">Sentinel-2 User Handbook</a>, <a href="https://sentinels.copernicus.eu/web/sentinel/technical-guides/sentinel-2-msi/level-0-algorithms-products">Level-0 Processing Overview</a>, <a href="https://sentinels.copernicus.eu/web/sentinel/technical-guides/sentinel-2-msi/level-1a-algorithms-products">Level-1A Processing Overview</a>, <a href="https://sentinels.copernicus.eu/web/sentinel/technical-guides/sentinel-2-msi/level-1b/algorithm-overview">Level-1B Algorithm Overview</a>, <a href="https://sentinels.copernicus.eu/web/sentinel/technical-guides/sentinel-2-msi/level-1c/algorithm-overview">Level-1C Algorithm Overview</a>
<b>SOURCES</b>: <a href="https://sentiwiki.copernicus.eu/web/copernicus-operations">Copernicus Ground Segment description</a>, <a href="https://sentinel.esa.int/documents/247904/685211/sentinel-2_user_handbook">Sentinel-2 User Handbook</a>, <a href="https://sentiwiki.copernicus.eu/web/s2-processing#S2Processing-L0AlgorithmsS2-Processing-L0-Algorithmstrue">Level-0 Algorithms Overview</a>, <a href="https://sentiwiki.copernicus.eu/web/s2-processing#S2Processing-L1AAlgorithmsS2-Processing-L1A-Algorithmstrue">Level-1A Algorithms Overview</a>, <a href="https://sentiwiki.copernicus.eu/web/s2-processing#S2Processing-L1BAlgorithmsS2-Processing-L1B-Algorithmstrue">Level-1B Algorithms Overview</a>, <a href="https://sentiwiki.copernicus.eu/web/s2-processing#S2Processing-L1CAlgorithmsS2-Processing-L1C-Algorithmstrue">Level-1C Algorithms Overview</a>
</dd>
<dt>
Sen2Cor / Sentinel-2 Toolbox functionalities
Expand All @@ -252,7 +252,7 @@ Sen2Cor / Sentinel-2 Toolbox functionalities
Each observation from the Level-1C, is processed by the European Space Agency (ESA) through the Sen2Cor algorithm. The Level-2A operational processor generates, from algorithms of scene classification and atmospheric correction, BOA reflectance products.
</dd>
<dd>
<b>SOURCES</b>: <a href="https://sentinels.copernicus.eu/web/sentinel/technical-guides/sentinel-2-msi/level-2a/algorithm-overview">Level-2A Algorithm Overview</a>, <a href="http://step.esa.int/main/snap-supported-plugins/sen2cor/">Sen2Cor processor</a>, <a href="https://sentinel.esa.int/web/sentinel/toolboxes/sentinel-2">The Sentinel-2 Toolbox</a>, <a href="https://doi.org/10.3390/rs9060584">Paper with detailed processing description (Gascon et al., 2017)</a>
<b>SOURCES</b>: <a href="https://sentiwiki.copernicus.eu/web/s2-processing#S2Processing-L2AAlgorithmsS2-Processing-L2A-Algorithmstrue">Level-2A Algorithms Overview</a>, <a href="https://sentiwiki.copernicus.eu/web/sentinels-toolboxes#SentinelsToolboxes-Sentinel-2ToolboxGI-S2-Toolbox">The Sentinel-2 Toolbox</a>, <a href="https://doi.org/10.3390/rs9060584">Paper with detailed processing description (Gascon et al., 2017)</a>
</dd>
</dl>
</li>
Expand Down Expand Up @@ -343,12 +343,6 @@ Aims to produce harmonised/fused surface reflectance imagery with higher periodi

<dl>
<dt>
<a href="https://cran.r-project.org/web/packages/ASIP/index.html">ASIP: Automated Satellite Image Processing</a>
</dt>
<dd>
Primary applications: atmospheric corrections, derivatives calculation.
</dd>
<dt>
<a href="https://cran.r-project.org/web/packages/gdalcubes/index.html">gdalcubes: Earth Observation Data Cubes from Satellite Image Collections</a>
</dt>
<dd>
Expand All @@ -373,7 +367,7 @@ Processing of Landsat or other multispectral satellite imagery. Includes relativ
Basic MODIS download and processing functionalities.
</dd>
<dt>
<a href="https://cran.r-project.org/web/packages/MODIStsp/vignettes/MODIStsp.html">MODIStsp: Find, Download and Process MODIS Land Products Data</a>
<a href="https://github.com/ropensci/MODIStsp?tab=readme-ov-file">MODIStsp: Find, Download and Process MODIS Land Products Data</a>
</dt>
<dd>
Creation of time series of rasters derived from MODIS Land Products data.
Expand All @@ -385,13 +379,13 @@ Creation of time series of rasters derived from MODIS Land Products data.
Binding package for calling Google Earth Engine API from within R
</dd>
<dt>
<a href="https://docs.ropensci.org/rsat/">rsat: Dealing with Multiplatform Satellite Images</a>
<a href="https://cloud.r-project.org/web/packages/rsat/index.html">rsat: Dealing with Multiplatform Satellite Images</a>
</dt>
<dd>
Various functions, including gap filling, cloud masking and smoothing.
</dd>
<dt>
<a href="http://bleutner.github.io/RStoolbox/rstbx-docu/RStoolbox.html">RStoolbox: A Collection of Remote Sensing Tools</a>
<a href="https://cloud.r-project.org/web/packages/RStoolbox/index.html">RStoolbox: A Collection of Remote Sensing Tools</a>
</dt>
<dd>
Corrections, coregistering, derivatives calculation.
Expand All @@ -408,6 +402,12 @@ Contains functions which are useful for handling, manipulating, and visualizing
<dd>
Contains Sen2cor processing algorithm, as well as functions to mask cloudy pixels and compute derivaties.
</dd>
<dt>
<a href="https://github.com/ranghetti/sen2rts">sen2rts: Build and Analyse Sentinel-2 Time Series</a>
</dt>
<dd>
Library which helps to extract and manage time series from Sentinel-2 archives created with the package sen2r.
</dd>
</dl>

### Google Earth Engine JavaScript extensions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -486,7 +486,7 @@ function renameBands(image) {
}

// Add dates to bands names
var s2FilteredColNdviRenamed = s2FilteredColNdvi.map(renameBandsYear);
var s2FilteredColNdviRenamed = s2FilteredColNdvi.map(renameBands);
print(s2FilteredColNdviRenamed);
```

Expand Down Expand Up @@ -630,7 +630,7 @@ function fillGaps (img) {
tempCol = tempCol.toBands();

// Select the bands with original band names from the newly created image
fixedBandNamesImg = tempCol.select(tempCol.bandNames(), bandNames);
var fixedBandNamesImg = tempCol.select(tempCol.bandNames(), bandNames);

// Reproject the image to its original projection
var filledGapsImg = fixedBandNamesImg.reproject(proj);
Expand Down Expand Up @@ -1278,7 +1278,8 @@ var bandNames = oneImage.bandNames();

// Map over band names to remove prefix
var newBandNames = bandNames.map(function(name) {
return ee.String(name).split('_').slice(1).join('_');
var y = ee.String(name).split('_').slice(1).join('_');
return ee.String('b').cat(y);
});

// Rename the bands
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,7 @@ Interdonato, R., Ienco, D., Gaetano, R., & Ose, K. (2019). DuPLO: A DUal view Po

Kluczek, M., Zagajewski, B., & Kycko, M. (2022). *Airborne HySpex hyperspectral versus multitemporal Sentinel-2 images for mountain plant communities mapping*. Remote Sensing, 14(5), 1209. <https://doi.org/10.3390/rs14051209>

Kohavi, R. (1995, August). *A study of cross-validation and bootstrap for accuracy estimation and model selection*. In Ijcai (Vol. 14, No. 2, pp. 1137-1145).
Kohavi, R. (1995, August). *A study of cross-validation and bootstrap for accuracy estimation and model selection*. In Ijcai (Vol. 14, No. 2, pp. 1137-1145). [source](https://www.ijcai.org/Proceedings/95-2/Papers/016.pdf)

Kollert, A., Bremer, M., Löw, M., & Rutzinger, M. (2021). *Exploring the potential of land surface phenology and seasonal cloud free composites of one year of Sentinel-2 imagery for tree species mapping in a mountainous region*. International Journal of Applied Earth Observation and Geoinformation, 94, 102208. <https://doi.org/10.1016/j.jag.2020.102208>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -710,6 +710,9 @@ pixel_reference <- merge(pixel_reference, reference_class,

pixel_reference <- select(pixel_reference, -fraction) %>%
relocate(ID, class)

saveRDS(pixel_reference,
file = "theme_4_exercise/data_exercise/pixel_reference.RDS")

colnames(pixel_reference)

Expand Down Expand Up @@ -742,6 +745,8 @@ model_rf <- randomForest(train_data[ , 3:length(train_data)], as.factor(train_da
importance = TRUE,
do.trace = 50)

saveRDS(model_rf,
file = "theme_4_exercise/results/model_rf.RDS")

model_rf

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ You should be able to see a multiband NBR image in the console.

</center>

We’ll also add two vector files: Tatras **Area of Interest** and **forest mask** based on 1984 and 2022 spatial extent of forests.
We’ll also add two vector files: Tatras **Area of Interest** and **forest mask** based on 1984 and 2022 spatial extent of forests (combination of both extents).

``` javascript
// Define Area of Interest (AOI)
Expand Down
5 changes: 5 additions & 0 deletions course/software/software_gee.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ You can register to use Google Earth Engine on this website: [https://code.earth

Create the personal cloud project to access Code Editor.


If prompted follow the steps as described below:

Register a Noncommercial or Commercial Cloud project > Unpaid usage / Project type: Academia & Research or No affiliation > Create a new Google Cloud Project for this course / Set Project-ID and optionally Project Name > Continue to summary.

## Getting started

We recommend the following introductory material to familiarize yourself with GEE.
Expand Down
14 changes: 12 additions & 2 deletions course/software/software_r_language.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@ We recommend installing everything with default settings.

***Note: If you encounter any errors during each of installation steps you may need to temporarily disable your firewall or anti-virus software.***

Module 2 contents use R version 4.3.1 "Beagle Scouts". Choose files appropriate for your operating system here [https://cran.r-project.org/](https://cran.r-project.org/). For Windows version use this link to download installer: [https://cran.r-project.org/bin/windows/base/R-4.3.1-win.exe](https://cran.r-project.org/bin/windows/base/R-4.3.1-win.exe).
Module 2 contents use R version 4.3.1 "Beagle Scouts". Choose files appropriate for your operating system here [https://cran.r-project.org/](https://cran.r-project.org/). For Windows version use this link to download installer: [https://cran.r-project.org/bin/windows/base/R-4.3.1-win.exe](https://cran.r-project.org/bin/windows/base/old/4.3.1/R-4.3.1-win.exe).


If you use R on Windows some packages may need RTools software. Download and install version 4.3 of RTools from this website: [https://cran.r-project.org/bin/windows/Rtools/rtools43/rtools.html](https://cran.r-project.org/bin/windows/Rtools/rtools43/rtools.html)


A recommended way to setup working environment in RStudio is to use [renv (short for reproducible environment) package](https://github.com/rstudio/renv). Project created using these instructions will contain appropriate versions of packages used to develop and run scripts in Module 2.
A recommended way to setup working environment in RStudio is to use [renv (short for reproducible environment) package](https://rstudio.github.io/renv/). Project created using these instructions will contain appropriate versions of packages used to develop and run scripts in Module 2.

**Instructions**

Expand Down Expand Up @@ -111,3 +111,13 @@ Introduction to the R language and statistical analysis:

Instructions on how to import and export data using R and respective packages:
[https://cran.r-project.org/doc/manuals/r-release/R-data.html](https://cran.r-project.org/doc/manuals/r-release/R-data.html)


Friendly introduction to R programming and using R for data analysis can be found in these books:

['Hands-On Programming with R' by Garrett Grolemund](https://rstudio-education.github.io/hopr/)

['R for Data Science (2e)' by Hadley Wickham, Mine Çetinkaya-Rundel, and Garrett Grolemund](https://r4ds.hadley.nz/)

['Geocomputation with R' by Robin Lovelace, Jakub Nowosad and Jannes Muenchow](https://r.geocompx.org/)

0 comments on commit 2c8c81d

Please sign in to comment.