Last updated: 2020-03-08

Checks: 7 0

Knit directory: 2019-feature-selection/

This reproducible R Markdown analysis was created with workflowr (version 1.6.0). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.


Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.

Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.

The command set.seed(20190522) was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.

Great job! Recording the operating system, R version, and package versions is critical for reproducibility.

Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.

Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.

Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility. The version displayed above was the version of the Git repository at the time these results were generated.

Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish or wflow_git_commit). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:


Ignored files:
    Ignored:    .Rhistory
    Ignored:    .Rproj.user/
    Ignored:    .Ruserdata/
    Ignored:    .drake/
    Ignored:    .vscode/
    Ignored:    analysis/rosm.cache/
    Ignored:    data/
    Ignored:    inst/Benchmark for Filter Methods for Feature Selection in High-Dimensional  Classification Data.pdf
    Ignored:    inst/study-area-map/._study-area.qgs
    Ignored:    inst/study-area-map/study-area.qgs~
    Ignored:    log/
    Ignored:    renv/library/
    Ignored:    renv/staging/
    Ignored:    reviews/
    Ignored:    rosm.cache/

Untracked files:
    Untracked:  code/06-modeling/project/

Unstaged changes:
    Modified:   .Rprofile
    Modified:   _drake.R
    Modified:   analysis/_site.yml
    Modified:   analysis/report-defoliation.Rmd
    Modified:   code/02-hyperspectral-processing.R
    Modified:   code/03-sentinel-processing.R
    Modified:   code/06-modeling/paper/02-param-sets.R
    Modified:   code/06-modeling/paper/03-learner.R
    Modified:   code/06-modeling/paper/04-filter-wrapper.R
    Modified:   code/06-modeling/paper/07-tune-wrapper.R
    Modified:   code/06-modeling/paper/08-train.R
    Modified:   code/071-benchmark-matrix-buffer2.R
    Modified:   code/09-reports.R

Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.


These are the previous versions of the R Markdown and HTML files. If you’ve configured a remote Git repository (see ?wflow_git_remote), click on the hyperlinks in the table below to view them.

File Version Author Date Message
Rmd db07056 pat-s 2020-02-24 add jose to authors
html 7582c67 pat-s 2019-08-31 Build site.
html df85aba pat-s 2019-07-12 Build site.
html 3a44a95 pat-s 2019-07-10 Build site.
html db3955e pat-s 2019-06-27 Build site.
Rmd 4cf247a pat-s 2019-06-18 fix git
html 4cf247a pat-s 2019-06-18 fix git
html 4c3422d pat-s 2019-06-15 Build site.
html 45cbebd pat-s 2019-05-27 Build site.
Rmd 9a83d5a pat-s 2019-05-27 wflow_publish(“analysis/about.Rmd”)
html 47a5b39 pat-s 2019-05-25 Build site.
html 37da161 pat-s 2019-05-24 Build site.
html ad4c6c1 pat-s 2019-05-23 Build site.
html 6517dc7 pat-s 2019-05-23 Build site.
html 22eb53d pat-s 2019-05-23 Build site.
html a7ae8f1 pat-s 2019-05-23 wflow_publish(all = T)
html ad7d595 pat-s 2019-05-22 Build site.
Rmd 7ad5791 pat-s 2019-05-22 first version
html 7ad5791 pat-s 2019-05-22 first version
Rmd 1cbc8de pat-s 2019-05-22 Start workflowr project.

Modeling defoliation as a proxy for tree health: Comparison of feature-selection methods across multiple feature sets derived from hyperspectral data

Authors

Patrick Schratz ()

Jannes Muenchow

Eugenia Iturritxa

José Cortés

Bernd Bischl

Alexander Brenning

Contents

Paper

This repository contains the research compendium of our work on comparing algorithms across multiple feature sets and filtering methods (including ensemble filter methods).

  • Using machine-learning algorithms to model defoliation of Pinus Radiata trees.

  • keywords

    • high-dimensional data handling
    • feature selection
    • machine-learning
    • ecology
  • Compare filtering methods (ensemble filter methods) across various algorithms and datasets

  • Predict defoliation to all available plots (24) and the whole Basque Country (at 200 m resolution)

The following directories belong to this project

  • code/01-download.R
  • code/02-hyperspectral-processing.R
  • code/04-data-processing.R
  • code/05-modeling/
  • code/06-benchmark-matrix/
  • code/07-reports/

Other Content

In addition, this repo contains the workflow for an analysis related to the LIFE 14 ENV/ES/000179 LIFE HEALTHY FOREST project: Predicting defoliation at trees for the Basque Country (for the years 2017 and 2018) using Sentinel-2 data.

Target defoliation_maps_wfr builds are targets necessary for the final results report.

How to use

Read the code, access the data

See the code directory on GitHub for the source code that generated the figures and statistical results contained in the manuscript. See the data directory for instructions how to access the raw data discussed in the manuscript.

Install the R package

Build Status

This repository is organized as an R package, providing functions and raw data to reproduce and extend the analysis reported in the publication. Note that this package has been written explicitly for this project and may not be suitable for more general use.

This project is setup with a drake workflow, ensuring reproducibility. Intermediate targets/objects will be stored in a hidden .drake directory.

The R library of this project is managed by packrat. This makes sure that the exact same package versions are used when recreating the project. When calling packrat::restore(), all required packages will be installed with their specific version.

Please note that this project was built with R version 3.5.2 on a Debian 9 operating system. The packrat packages from this project are not compatible with R versions prior version 3.5.0. For reproducibility, it is recommended to replicate the analysis using the included Dockerfile. Instructions can be found ħere. (In general, it should be possible to reproduce the analysis on any other operating system.)

To clone the project, a working installation of git is required. Open a terminal in the directory of your choice and execute:

git clone git@github.com:pat-s/paper_hyperspectral.git

Then start R in this directory and run

packrat::restore()
r_make()

Notes and resources

Literature


sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)

Matrix products: default
BLAS:   /opt/spack/opt/spack/linux-centos7-x86_64/gcc-9.2.0/r-3.6.1-j25wr6zcofibs2zfjwg37357rjj26lqb/rlib/R/lib/libRblas.so
LAPACK: /opt/spack/opt/spack/linux-centos7-x86_64/gcc-9.2.0/r-3.6.1-j25wr6zcofibs2zfjwg37357rjj26lqb/rlib/R/lib/libRlapack.so

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] workflowr_1.6.0 Rcpp_1.0.3      rprojroot_1.3-2 digest_0.6.23  
 [5] later_1.0.0     R6_2.4.1        backports_1.1.5 git2r_0.26.1   
 [9] magrittr_1.5    evaluate_0.13   stringi_1.3.1   fs_1.3.1       
[13] promises_1.0.1  whisker_0.3-2   rmarkdown_1.13  tools_3.6.1    
[17] stringr_1.4.0   glue_1.3.1      httpuv_1.4.5.1  xfun_0.5       
[21] yaml_2.2.0      compiler_3.6.1  htmltools_0.3.6 knitr_1.23