Skip to content

Commit

Permalink
m2 dev branch update (#26)
Browse files Browse the repository at this point in the history
* Refs (#4)

* harmonize references theme1

* harmonize references theme3

* harmonize references theme4

* harmonize references theme5

* harmonize references theme6_rockglacier

* harmonize references theme6_sandybeach

---------

Co-authored-by: uw255 <uw255@stud.uni-heidelberg.de>

* Quiz rev (#6)

* Added option for multiple choice questions using checkboxes

* added description of multiple choice questions

---------

Co-authored-by: jdvorak <jakub.dvorak@natur.cuni.cz>

* added install notebook to deploy (#7)

Co-authored-by: jdvorak <jakub.dvorak@natur.cuni.cz>

* Fixed version of notebook in deploy to 6.5.5. Newer versions of notebook don't contain the .base module (#8)

* added install notebook to deploy

* Fixed version of notebook in deploy to 6.5.5. Newer versions of notebook don't contain the .base module

---------

Co-authored-by: jdvorak <jakub.dvorak@natur.cuni.cz>

* Update CITATION.cff (#9)

* M4 dev (#10)

* Create gitkeep

* upload images

* upload images_cs_floodplain

* add content 07_flood_plain_forest.md

* add content 07_flood_plain_forest.md

* add content 07_flood_plain_forest.md

* Create gitkeep

* upload images

* add content 06_Krkonose_tundra_grasslands.md

* add content 07_flood_plain_forest.md

* add content 07_flood_plain_forest.md

* add content 07_flood_plain_forest.md

* added spectra comparision exercise to theme_3:module_4

* added and fixed links

* spectra contact probe and integrating sphere exercise - solution added

* fixed image link

* mkdocs.yml added module_04:theme_03 exercise link

* fixed linking + "prerequisites"

* higher quality imgs uploaded

* language + visuals edit part 1

* language + visuals edit part 2

* upload images

* language + visuals edit part 3

* image size edit

* language + visuals edit part 1

* language + visuals edit part 2

* higher quality imagery uploaded

* higher quality imagery uploaded

* higher quality imagery uploaded

* higher quality imagery uploaded

* image compression

* image compression

* images not being replaced - solution

* images not being replaced - solution

* Added R script for case study

* added content

* references

* Moved r script from .ipynb to .R, added multitemporal compositing and MNF transform.

* added script link

* Changed default wd path to be more descriptive

---------

Co-authored-by: sedovaad <142995175+sedovaad@users.noreply.github.com>
Co-authored-by: srollera <a.sroller@seznam.cz>
Co-authored-by: jdvorak <jakub.dvorak@natur.cuni.cz>

* M1 rev (#11)

* revision of theme 1 raster time series processing tutorial (xarray)

* revision of theme 2sentinel2 stac tutorial

* revise theme 2 gee python api tutorial

* revise point cloud exploration tutorial: metadata and package management recommendations

* revise theme 3 landcover classification tutorial

* edit environment setup instructions for theme 2 tutorials (simplified, less specific, refer to software page for easier course maintenance)

* revise module1.md practical parts overview

* simplify environment setup instructions in theme 1 xarray tutorial

* revise theme 3 snow cover time series tutorial

* revise theme 3 snow cover time series tutorial with excercise

* revise theme 4 tutorial on forest disturbance assessment

* theme 3 landcover classification tutorial: add import of folium.plugins

* revise theme 6 accuracy assessment tutorial

* repair link to t6 excercise section in m1 overview

* revise classification accuracy metrics

* add links to module 2

* add links to #algorithms in m2t5

* add section about feature selection and links to m2t4

* add ml references

* add mlxtend package to list of ml tools

* add short explanation of CV and bootstrapping with links to literature and to M2T4

* repair internal links

* add links to m2 and m3

* add links to m2 and m3

* repair internal links

* correct typos

* add link to Module 2 Excercise 2 (tools for reference data acquisition)

* snow cover maps: add discrete ticks and colormap to colorscale

* minor corrections in comments

* Added self-eval quizzes

* Adapting question 1

* fix typos

* add T5 tutorial: Sentinel-1/-2 fusion for surface water monitoring

* add link to theme 5 tutorial (S1/S2 fusion)

* add link to theme 5 tutorial (S1/S2 fusion)

* update theme 5 theory (spatio-temporal data fusion

* add lineplot with s1 s2 water extent

* Added exercise video and adapted the instructions.

---------

Co-authored-by: unknown <andreas.mayr@uibk.ac.at>
Co-authored-by: jdvorak <jakub.dvorak@natur.cuni.cz>

* Update CITATION.cff (#13)

* module 2 developments update (#14)

* M1 rev oct (#17)

* revision of theme 1 raster time series processing tutorial (xarray)

* revision of theme 2sentinel2 stac tutorial

* revise theme 2 gee python api tutorial

* revise point cloud exploration tutorial: metadata and package management recommendations

* revise theme 3 landcover classification tutorial

* edit environment setup instructions for theme 2 tutorials (simplified, less specific, refer to software page for easier course maintenance)

* revise module1.md practical parts overview

* simplify environment setup instructions in theme 1 xarray tutorial

* revise theme 3 snow cover time series tutorial

* revise theme 3 snow cover time series tutorial with excercise

* revise theme 4 tutorial on forest disturbance assessment

* theme 3 landcover classification tutorial: add import of folium.plugins

* revise theme 6 accuracy assessment tutorial

* repair link to t6 excercise section in m1 overview

* revise classification accuracy metrics

* add links to module 2

* add links to #algorithms in m2t5

* add section about feature selection and links to m2t4

* add ml references

* add mlxtend package to list of ml tools

* add short explanation of CV and bootstrapping with links to literature and to M2T4

* repair internal links

* add links to m2 and m3

* add links to m2 and m3

* repair internal links

* correct typos

* add link to Module 2 Excercise 2 (tools for reference data acquisition)

* snow cover maps: add discrete ticks and colormap to colorscale

* minor corrections in comments

* Added self-eval quizzes

* Adapting question 1

* fix typos

* add T5 tutorial: Sentinel-1/-2 fusion for surface water monitoring

* add link to theme 5 tutorial (S1/S2 fusion)

* add link to theme 5 tutorial (S1/S2 fusion)

* update theme 5 theory (spatio-temporal data fusion

* add lineplot with s1 s2 water extent

* Added exercise video and adapted the instructions.

* update t5 water surface tutorial

* add figures

* revision of t5, add figures, references, excercise

* remove comments

* update m1 python env yaml file

---------

Co-authored-by: unknown <andreas.mayr@uibk.ac.at>
Co-authored-by: jdvorak <jakub.dvorak@natur.cuni.cz>

* M1 t5 tutorial (#18)

* revision of theme 1 raster time series processing tutorial (xarray)

* revision of theme 2sentinel2 stac tutorial

* revise theme 2 gee python api tutorial

* revise point cloud exploration tutorial: metadata and package management recommendations

* revise theme 3 landcover classification tutorial

* edit environment setup instructions for theme 2 tutorials (simplified, less specific, refer to software page for easier course maintenance)

* revise module1.md practical parts overview

* simplify environment setup instructions in theme 1 xarray tutorial

* revise theme 3 snow cover time series tutorial

* revise theme 3 snow cover time series tutorial with excercise

* revise theme 4 tutorial on forest disturbance assessment

* theme 3 landcover classification tutorial: add import of folium.plugins

* revise theme 6 accuracy assessment tutorial

* repair link to t6 excercise section in m1 overview

* revise classification accuracy metrics

* add links to module 2

* add links to #algorithms in m2t5

* add section about feature selection and links to m2t4

* add ml references

* add mlxtend package to list of ml tools

* add short explanation of CV and bootstrapping with links to literature and to M2T4

* repair internal links

* add links to m2 and m3

* add links to m2 and m3

* repair internal links

* correct typos

* add link to Module 2 Excercise 2 (tools for reference data acquisition)

* snow cover maps: add discrete ticks and colormap to colorscale

* minor corrections in comments

* Added self-eval quizzes

* Adapting question 1

* fix typos

* add T5 tutorial: Sentinel-1/-2 fusion for surface water monitoring

* add link to theme 5 tutorial (S1/S2 fusion)

* add link to theme 5 tutorial (S1/S2 fusion)

* update theme 5 theory (spatio-temporal data fusion

* add lineplot with s1 s2 water extent

* Added exercise video and adapted the instructions.

* update t5 water surface tutorial

* add figures

* revision of t5, add figures, references, excercise

* remove comments

* update m1 python env yaml file

* replace non-recognized t5 notebook with earlier, quasi-identical version

---------

Co-authored-by: unknown <andreas.mayr@uibk.ac.at>
Co-authored-by: jdvorak <jakub.dvorak@natur.cuni.cz>

* Zenodo integration (#20)

* Added ORCIDs

* Fixing unparseable metadata tags

* Added script for creating Zenodo-compatible metadata files

* Small cahnge to the license file to trigger the automated workflow for creating zenodo-compatible file

* Automated update of Zenodo metadata

---------

Co-authored-by: jdvorak <jakub.dvorak@natur.cuni.cz>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Added DOI badge to readme (#21)

* Added Zenodo DOI badge.

* Added _about the project_ to website navbar (#22)

Co-authored-by: jdvorak <jakub.dvorak@natur.cuni.cz>

* M4 dev (#23)

* image change

* image sizing + zoom

* renamed data folder links

* update case study titles + links, - ore mts. cs; + spectral separability cs

* module 4 case studies title updates

* image size change

* case study Krkonoše grasslands added exercise parts + script

* added usecase Tundra vegetation monitoring in Krkonoše Mountains

* added links to usecase grasses Krkonose

* added Tundra vegetation monitoring in Krkonoše Mountains use case

* fixed use case in the course list

* fixed use case in the course list

* mkdocs merge fix

* Revert "mkdocs merge fix"

This reverts commit 51cb6e8.

* Revert "Merge branch 'fixingautomerge' into m4_dev"

This reverts commit 7013487, reversing
changes made to cdf314f.

* zenodo integration

* Automated update of Zenodo metadata

* zenodo integration

* cases study spectral separability grass - part 1 upload

* cases study spectral separability grass - part 2 upload
missing results + images

* cases study spectral separability grass - final upload

* minor updates

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Python environments temporary quick fix (#24)

* temporary change: working env yml files + code

* Update software_python.md

* module 2 content development (#25)

---------

Co-authored-by: SinaZumst <120559481+SinaZumst@users.noreply.github.com>
Co-authored-by: uw255 <uw255@stud.uni-heidelberg.de>
Co-authored-by: Jakub Dvorak <jacobdvorakcz@gmail.com>
Co-authored-by: jdvorak <jakub.dvorak@natur.cuni.cz>
Co-authored-by: srollera <134652988+srollera@users.noreply.github.com>
Co-authored-by: sedovaad <142995175+sedovaad@users.noreply.github.com>
Co-authored-by: srollera <a.sroller@seznam.cz>
Co-authored-by: unknown <andreas.mayr@uibk.ac.at>
Co-authored-by: Andreas Mayr <135836569+a-mayr@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: AdrianaM-O <117462776+AdrianaM-O@users.noreply.github.com>
  • Loading branch information
12 people authored Oct 13, 2023
1 parent f693b70 commit 60dabfc
Show file tree
Hide file tree
Showing 86 changed files with 8,974 additions and 2,453 deletions.
36 changes: 36 additions & 0 deletions .github/workflows/cffconvert.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: cffconvert

on:
push:
branches-ignore:
- main
paths:
- CITATION.cff

permissions:
contents: write

jobs:
convert:
name: "convert citations"
runs-on: ubuntu-latest
steps:
- name: Check out a copy of the repository
uses: actions/checkout@v3

- name: Convert CITATION.cff to Zenodo metadata format
uses: citation-file-format/cffconvert-github-action@2.0.0
with:
args: "--infile ./CITATION.cff --format zenodo --outfile .zenodo.json"

- name: Commit and push Zenodo metadata
run: |
if [[ `git status --porcelain` ]]; then
git config user.name 'github-actions[bot]'
git config user.email 'github-actions[bot]@users.noreply.github.com'
git add .zenodo.json
git commit -m "Automated update of Zenodo metadata"
git push
else
echo "No changes to the .zotero.json file."
fi
6 changes: 3 additions & 3 deletions .github/workflows/mkdocs-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: 3.x
python-version: 3.11
- run: pip install --upgrade pip && pip install -U urlextract bs4 requests
- run: python scripts/link_checker.py
deploy:
Expand All @@ -28,7 +28,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: 3.x
- run: pip install --upgrade pip && pip install -U mkdocs mkdocs-jupyter jupyter_contrib_nbextensions
python-version: 3.11
- run: pip install --upgrade pip && pip install -U mkdocs mkdocs-jupyter jupyter_contrib_nbextensions notebook==6.5.5
- run: git config user.name 'github-actions[bot]' && git config user.email 'github-actions[bot]@users.noreply.github.com'
- run: mkdocs gh-deploy --config-file mkdocs/mkdocs.yml --force --clean
12 changes: 12 additions & 0 deletions .zenodo.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"creators": [
{
"name": "E-TRAINEE Development Team"
}
],
"description": "E-learning course on Time Series Analysis in Remote Sensing for Understanding Human-Environment Interactions (E-TRAINEE) was developed by research groups from four partner universities – Charles University, Heidelberg University, University of Innsbruck, and University of Warsaw.",
"license": {
"id": "CC-BY-SA-4.0"
},
"title": "E-TRAINEE - E-learning course on Time Series Analysis in Remote Sensing for Understanding Human-Environment Interactions"
}
65 changes: 44 additions & 21 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -1,54 +1,77 @@
cff-version: 1.2.0
message: "If you use the course material, please cite it as below."

title: >-
E-TRAINEE - E-learning course on Time Series Analysis in
Remote Sensing for Understanding Human-Environment
Interactions
message: 'If you use this course material, please cite it as below.'

authors:
- family-names: E-TRAINEE Development Team
title: "E-TRAINEE - E-learning course on Time Series Analysis in Remote Sensing for Understanding Human-Environment Interactions"
version: 0.1
date-released: 2023-06-30
license: ["MIT License","CC-BY-SA-4.0"]
repository-code: "https://github.com/3dgeo-heidelberg/etrainee"
url: "https://web.natur.cuni.cz/gis/etrainee"
identifiers:
- type: doi
value: NA
description: The versioned DOI for the version 1.0 of the Citation File Format.
- name: E-TRAINEE Development Team

repository-code: 'https://github.com/3dgeo-heidelberg/etrainee'

url: 'https://3dgeo-heidelberg.github.io/etrainee'

abstract: >-
E-learning course on Time Series Analysis in Remote Sensing
for Understanding Human-Environment Interactions (E-TRAINEE)
was developed by research groups from four partner
universities – Charles University, Heidelberg University,
University of Innsbruck, and University of Warsaw.
license: CC-BY-SA-4.0

references:
- authors:
- family-names: Potůčková
given-names: M.
orcid: "https://orcid.org/0000-0002-8760-790X"
- family-names: Albrechtová
given-names: J.
orcid: "https://orcid.org/0000-0001-6912-1992"
- family-names: Anders
given-names: K.
orcid: "https://orcid.org/0000-0001-5698-7041"
- family-names: Červená
given-names: L.
orcid: "https://orcid.org/0000-0001-5246-1106"
- family-names: Dvořák
given-names: J.
orcid: "https://orcid.org/0000-0001-7845-7738"
- family-names: Gryguc
given-names: K.
orcid: "https://orcid.org/0000-0002-8107-6837"
- family-names: Höfle
given-names: B.
orcid: "https://orcid.org/0000-0001-5849-1461"
- family-names: Lhotáková
given-names: Z.
given-names: Z.
orcid: "https://orcid.org/0000-0003-3060-641X"
- family-names: Marcinkowska-Ochtyra
given-names: A.
given-names: A.
orcid: "https://orcid.org/0000-0002-9080-3899"
- family-names: Mayr
given-names: A.
given-names: A.
orcid: "https://orcid.org/0000-0001-8305-4765"
- family-names: Neuwirthová
given-names: E.
given-names: E.
orcid: "https://orcid.org/0000-0001-5613-847X"
- family-names: Ochtyra
given-names: A.
given-names: A.
orcid: "https://orcid.org/0000-0003-4799-8093"
- family-names: Rutzinger
given-names: M.
given-names: M.
orcid: "https://orcid.org/0000-0001-6628-4681"
- family-names: Šedová
given-names: A.
- family-names: Šrollerů
given-names: A.
- family-names: Kupková
given-names: L.
given-names: L.
orcid: "https://orcid.org/0000-0002-0270-0516"
journal: "ISPRS Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences"
title: "E-TRAINEE: Open e-learning course on time series analysis in remote sensing"
type: article
volume: NA
year: 2023
doi: NA
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Welcome to the E-TRAINEE course repository!

[![DOI](https://zenodo.org/badge/643862021.svg)](https://zenodo.org/badge/latestdoi/643862021)

This repository hosts the **E-TRAINEE course on Time Series Analysis in Remote Sensing for Understanding Human-Environment Interactions**, which is an open e-learning course containing four main modules. The first one provides a general overview of methods for remote sensing (RS) time series analysis, and the other three focus on specific processing steps connected to different types of data:

* Module 1: Methods of Time Series Analysis in RS
Expand Down
78 changes: 75 additions & 3 deletions course/assets/javascripts/quiz_evaluation.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,16 @@ function log_answers() {
case "range":
ans_dict[element.name] = element.value
break;
case "checkbox":
var element_name = element.name
var node_list = document.querySelectorAll("input[name="+element_name+"]:checked");
// gather all selected values into a string
var out_str = ""
for (var node of node_list) {
out_str = out_str + "&" + node.nextSibling.data
}
ans_dict[element.name] = out_str
break;
case "submit":
break;
case "output":
Expand Down Expand Up @@ -101,10 +111,63 @@ function check_answer(user, correct) {
return user_norm == correct_norm
}

function check_answer_multiple_choice(user, correct) {
// checks if answers are correct
var correct_temp = structuredClone(correct)
var num_correct = 0
for (var user_ans of user) {
if (correct_temp.includes(user_ans)) {
var drop_idx = correct_temp.indexOf(user_ans)
correct_temp.splice(drop_idx, 1)
num_correct = num_correct + 1
}
}
// is answer correct?
if (num_correct == correct.length && num_correct == user.length-1) {
return "correct"
// is answer wrong?
} else if (num_correct == 0) {
return "wrong"
// otherwise it is partially correct
} else {
return "partially"
}
}

function format_correct_list(in_list) {
if (in_list.length > 1) {
var out_str = ' the correct answers are "' + in_list.join('" and "') + '"'
} else {
var out_str = ' the correct answer is "' + in_list + '"'
}
return out_str
}

function eval_multiple_choice(ans, out_element, ans_count, correct_list) {
var correct_str = format_correct_list(correct_list)
switch(ans) {
case "correct":
ans_count["correct"] = ans_count["correct"] + 1
out_element.value = "Correct"
out_element["style"] = "background-color: #7DCEA0; padding: 3pt 15pt;"
break;
case "partially":
ans_count["partially"] = ans_count["partially"] + 1
out_element.value = "Your answer was partially correct," + correct_str
out_element["style"] = "background-color: #F7DC6F; padding: 3pt 15pt;"
break;
case "wrong":
ans_count["wrong"] = ans_count["wrong"] + 1
out_element.value = "Sorry," + correct_str
out_element["style"] = "background-color: #F1948A; padding: 3pt 15pt;"
break;
}
}

function display_messages(answers, answers_correct, answer_elements, q_types) {
// displays messages
// go through individual answers
var ans_count = {correct:0, wrong:0}
var ans_count = {correct:0, wrong:0, partially:0}

for (var [key, value] of Object.entries(answers)) {
// get correct answer
Expand All @@ -122,6 +185,15 @@ function display_messages(answers, answers_correct, answer_elements, q_types) {
} else if (q_types[key] == 'text' || q_types[key] == 'textarea') {
out_element.value = 'Consider if your answer aligns with our: ' + value_correct
out_element["style"] = "background-color: #D7DBDD; padding: 3pt 15pt;"
// Was this a multiple choice question? - evaluate how corect it was
} else if (q_types[key] == 'checkbox') {
// convert answer strings to arrays
var value_parts = value.split("&");
var value_correct_parts = value_correct.split("&");
// Check how correct was the answer
var checked_multiple_choice = check_answer_multiple_choice(value_parts, value_correct_parts)
// display message based on correctness
eval_multiple_choice(checked_multiple_choice, out_element, ans_count, value_correct_parts)
// is the answer correct?
} else if (check_answer(value, value_correct)) {
ans_count["correct"] = ans_count["correct"] + 1
Expand All @@ -144,10 +216,10 @@ function display_overall(ans_dict) {
var overall_element = document.getElementById("output_overall")
overall_element["style"] = "background-color: #D7DBDD; padding: 3pt 15pt;"
// compute the number of answered questions
var answered_questions = ans_dict["correct"] + ans_dict["wrong"]
var answered_questions = ans_dict["correct"] + ans_dict["wrong"] + ans_dict["partially"]

// Display different messages based on how many questions the user got wrong
if (ans_dict["wrong"] < 4) {
if (ans_dict["wrong"] + ans_dict["partially"] < 3) {
overall_element.value = "Congratulations, you had " + ans_dict["correct"] + " answers correct out of " + answered_questions + " answered questions."
} else {
overall_element.value = "You had " + ans_dict["correct"] + " answers correct out of " + answered_questions + " answered questions, please consider reviewing the relevant sections again."
Expand Down
Loading

0 comments on commit 60dabfc

Please sign in to comment.