Commit 77bef5e6 authored by Romulo Pereira Goncalves's avatar Romulo Pereira Goncalves
Browse files

Fix the branch name

parent 3b3db552
%% Cell type:markdown id: tags:
# HabitatSampler
%% Cell type:markdown id: tags:
## Setup
%% Cell type:markdown id: tags:
### Install dependencies
The `velox` library is not anymore developed. Its latest version does not compile with the latest version of `Boost`. To avoid warnings and issues with the migration of `rgdal` to `gdal 3 and proj 6` we decided to pin the versions of `sf <= 0.8-1`, `sp <= 1.4-1` and `rgdal <= 1.4-8`.
%% Cell type:code id: tags:
``` R
install.packages("https://cran.r-project.org/src/contrib/Archive/BH/BH_1.69.0-1.tar.gz", repos=NULL, type="source")
install.packages("https://cran.r-project.org/src/contrib/Archive/sf/sf_0.8-1.tar.gz", repos=NULL, type="source")
install.packages("https://cran.r-project.org/src/contrib/Archive/sp/sp_1.4-1.tar.gz", repos=NULL, type="source")
install.packages("https://cran.r-project.org/src/contrib/Archive/rgdal/rgdal_1.4-8.tar.gz", repos=NULL, type="source")
```
%% Output
Installing package into ‘/home/romulo/R/x86_64-pc-linux-gnu-library/3.6’
(as ‘lib’ is unspecified)
Installing package into ‘/home/romulo/R/x86_64-pc-linux-gnu-library/3.6’
(as ‘lib’ is unspecified)
Installing package into ‘/home/romulo/R/x86_64-pc-linux-gnu-library/3.6’
(as ‘lib’ is unspecified)
Installing package into ‘/home/romulo/R/x86_64-pc-linux-gnu-library/3.6’
(as ‘lib’ is unspecified)
%% Cell type:markdown id: tags:
### Install HaSa
If the you want to use the sources of `HaSa` R pacakge set the variable `from_sources` to `TRUE`.
%% Cell type:code id: tags:
``` R
from_sources <- FALSE
```
%% Cell type:code id: tags:
``` R
if (from_sources == TRUE) {
wd<-"./"
inPath<-"./../R-package/R/"
source(paste(inPath,"Class_Habitat.r",sep=""))
source(paste(inPath,"clip.r",sep=""))
source(paste(inPath,"inner_procedure.r",sep=""))
source(paste(inPath,"outer_procedure.r",sep=""))
source(paste(inPath,"model_opt.r",sep=""))
source(paste(inPath,"plot_results.r",sep=""))
source(paste(inPath,"plot_interactive.r",sep=""))
} else {
remotes::install_git(
"https://git.gfz-potsdam.de/habitat-sampler/HabitatSampler.git",
ref = "performance",
ref = "master",
subdir = "R-package",
dependencies = NA,
upgrade=FALSE,
build = TRUE,
build_manual = TRUE,
build_vignettes = TRUE
)
}
```
%% Output
Downloading git repo https://git.gfz-potsdam.de/habitat-sampler/HabitatSampler.git
'/usr/bin/git' clone --depth 1 --no-hardlinks https://git.gfz-potsdam.de/habitat-sampler/HabitatSampler.git /tmp/RtmpLaI3S7/filede3c1ec5d7e
'/usr/bin/git' fetch origin performance
'/usr/bin/git' checkout FETCH_HEAD
Downloading package from url: https://cran.r-project.org/src/contrib/Archive/velox/velox_0.2.0.tar.gz
✔ checking for file ‘/tmp/RtmpLaI3S7/remotesde3c5959756f/velox/DESCRIPTION’
─ preparing ‘velox’:
✔ checking DESCRIPTION meta-information
─ cleaning src
─ checking for LF line-endings in source and make files and shell scripts
─ checking for empty or unneeded directories
─ building ‘velox_0.2.0.tar.gz’
Installing package into ‘/home/romulo/R/x86_64-pc-linux-gnu-library/3.6’
(as ‘lib’ is unspecified)
Downloading package from url: https://cran.r-project.org/src/contrib/Archive/velox/velox_0.2.0.tar.gz
Skipping velox, it is already being installed
✔ checking for file ‘/tmp/RtmpLaI3S7/filede3c1ec5d7e/R-package/DESCRIPTION’
─ preparing ‘HaSa’:
✔ checking DESCRIPTION meta-information
─ installing the package to build vignettes
✔ creating vignettes (1.5s)
─ checking for LF line-endings in source and make files and shell scripts
─ checking for empty or unneeded directories
─ looking to see if a ‘data/datalist’ file should be added
─ building ‘HaSa_1.1.0.tar.gz’
Installing package into ‘/home/romulo/R/x86_64-pc-linux-gnu-library/3.6’
(as ‘lib’ is unspecified)
%% Cell type:markdown id: tags:
### Load HaSa
We load HaSa library and some of its dependencies
%% Cell type:code id: tags:
``` R
if (from_sources == TRUE) {
libraries <- c("rgdal","raster","maptools","spatialEco","randomForest","e1071","devtools","velox","rgeos","leaflet","htmlwidgets")
} else {
libraries <- c("rgdal","raster","maptools","spatialEco","randomForest","e1071","devtools","velox","rgeos","leaflet","htmlwidgets", "HaSa")
}
lapply(libraries, library, character.only = TRUE)
```
%% Output
Loading required package: sp
rgdal: version: 1.4-8, (SVN revision 845)
Geospatial Data Abstraction Library extensions to R successfully loaded
Loaded GDAL runtime: GDAL 3.0.4, released 2020/01/28
Path to GDAL shared files:
GDAL binary built with GEOS: FALSE
Loaded PROJ.4 runtime: Rel. 7.0.0, March 1st, 2020, [PJ_VERSION: 700]
Path to PROJ.4 shared files: /home/romulo/gitlab/python-setup-ubuntu/python/opt/share/proj
Linking to sp version: 1.4-1
Warning message:
“no function found corresponding to methods exports from ‘raster’ for: ‘wkt’”
Checking rgeos availability: TRUE
Attaching package: ‘spatialEco’
The following object is masked from ‘package:raster’:
shift
randomForest 4.6-14
Type rfNews() to see new features/changes/bug fixes.
Attaching package: ‘randomForest’
The following object is masked from ‘package:spatialEco’:
combine
Attaching package: ‘e1071’
The following object is masked from ‘package:raster’:
interpolate
Loading required package: usethis
Warning message in fun(libname, pkgname):
“rgeos: versions of GEOS runtime 3.8.0-CAPI-1.13.1
and GEOS at installation 3.7.0-CAPI-1.11.0differ”
rgeos version: 0.5-5, (SVN revision 640)
GEOS runtime version: 3.8.0-CAPI-1.13.1
Linking to sp version: 1.4-5
Polygon checking: TRUE
Attaching package: ‘HaSa’
The following object is masked from ‘package:graphics’:
clip
1. 1. 'rgdal'
2. 'sp'
3. 'stats'
4. 'graphics'
5. 'grDevices'
6. 'utils'
7. 'datasets'
8. 'methods'
9. 'base'
2. 1. 'raster'
2. 'rgdal'
3. 'sp'
4. 'stats'
5. 'graphics'
6. 'grDevices'
7. 'utils'
8. 'datasets'
9. 'methods'
10. 'base'
3. 1. 'maptools'
2. 'raster'
3. 'rgdal'
4. 'sp'
5. 'stats'
6. 'graphics'
7. 'grDevices'
8. 'utils'
9. 'datasets'
10. 'methods'
11. 'base'
4. 1. 'spatialEco'
2. 'maptools'
3. 'raster'
4. 'rgdal'
5. 'sp'
6. 'stats'
7. 'graphics'
8. 'grDevices'
9. 'utils'
10. 'datasets'
11. 'methods'
12. 'base'
5. 1. 'randomForest'
2. 'spatialEco'
3. 'maptools'
4. 'raster'
5. 'rgdal'
6. 'sp'
7. 'stats'
8. 'graphics'
9. 'grDevices'
10. 'utils'
11. 'datasets'
12. 'methods'
13. 'base'
6. 1. 'e1071'
2. 'randomForest'
3. 'spatialEco'
4. 'maptools'
5. 'raster'
6. 'rgdal'
7. 'sp'
8. 'stats'
9. 'graphics'
10. 'grDevices'
11. 'utils'
12. 'datasets'
13. 'methods'
14. 'base'
7. 1. 'devtools'
2. 'usethis'
3. 'e1071'
4. 'randomForest'
5. 'spatialEco'
6. 'maptools'
7. 'raster'
8. 'rgdal'
9. 'sp'
10. 'stats'
11. 'graphics'
12. 'grDevices'
13. 'utils'
14. 'datasets'
15. 'methods'
16. 'base'
8. 1. 'velox'
2. 'devtools'
3. 'usethis'
4. 'e1071'
5. 'randomForest'
6. 'spatialEco'
7. 'maptools'
8. 'raster'
9. 'rgdal'
10. 'sp'
11. 'stats'
12. 'graphics'
13. 'grDevices'
14. 'utils'
15. 'datasets'
16. 'methods'
17. 'base'
9. 1. 'rgeos'
2. 'velox'
3. 'devtools'
4. 'usethis'
5. 'e1071'
6. 'randomForest'
7. 'spatialEco'
8. 'maptools'
9. 'raster'
10. 'rgdal'
11. 'sp'
12. 'stats'
13. 'graphics'
14. 'grDevices'
15. 'utils'
16. 'datasets'
17. 'methods'
18. 'base'
10. 1. 'leaflet'
2. 'rgeos'
3. 'velox'
4. 'devtools'
5. 'usethis'
6. 'e1071'
7. 'randomForest'
8. 'spatialEco'
9. 'maptools'
10. 'raster'
11. 'rgdal'
12. 'sp'
13. 'stats'
14. 'graphics'
15. 'grDevices'
16. 'utils'
17. 'datasets'
18. 'methods'
19. 'base'
11. 1. 'htmlwidgets'
2. 'leaflet'
3. 'rgeos'
4. 'velox'
5. 'devtools'
6. 'usethis'
7. 'e1071'
8. 'randomForest'
9. 'spatialEco'
10. 'maptools'
11. 'raster'
12. 'rgdal'
13. 'sp'
14. 'stats'
15. 'graphics'
16. 'grDevices'
17. 'utils'
18. 'datasets'
19. 'methods'
20. 'base'
12. 1. 'HaSa'
2. 'htmlwidgets'
3. 'leaflet'
4. 'rgeos'
5. 'velox'
6. 'devtools'
7. 'usethis'
8. 'e1071'
9. 'randomForest'
10. 'spatialEco'
11. 'maptools'
12. 'raster'
13. 'rgdal'
14. 'sp'
15. 'stats'
16. 'graphics'
17. 'grDevices'
18. 'utils'
19. 'datasets'
20. 'methods'
21. 'base'
\begin{enumerate}
\item \begin{enumerate*}
\item 'rgdal'
\item 'sp'
\item 'stats'
\item 'graphics'
\item 'grDevices'
\item 'utils'
\item 'datasets'
\item 'methods'
\item 'base'
\end{enumerate*}
\item \begin{enumerate*}
\item 'raster'
\item 'rgdal'
\item 'sp'
\item 'stats'
\item 'graphics'
\item 'grDevices'
\item 'utils'
\item 'datasets'
\item 'methods'
\item 'base'
\end{enumerate*}
\item \begin{enumerate*}
\item 'maptools'
\item 'raster'
\item 'rgdal'
\item 'sp'
\item 'stats'
\item 'graphics'
\item 'grDevices'
\item 'utils'
\item 'datasets'
\item 'methods'
\item 'base'
\end{enumerate*}
\item \begin{enumerate*}
\item 'spatialEco'
\item 'maptools'
\item 'raster'
\item 'rgdal'
\item 'sp'
\item 'stats'
\item 'graphics'
\item 'grDevices'
\item 'utils'
\item 'datasets'
\item 'methods'
\item 'base'
\end{enumerate*}
\item \begin{enumerate*}
\item 'randomForest'
\item 'spatialEco'
\item 'maptools'
\item 'raster'
\item 'rgdal'
\item 'sp'
\item 'stats'
\item 'graphics'
\item 'grDevices'
\item 'utils'
\item 'datasets'
\item 'methods'
\item 'base'
\end{enumerate*}
\item \begin{enumerate*}
\item 'e1071'
\item 'randomForest'
\item 'spatialEco'
\item 'maptools'
\item 'raster'
\item 'rgdal'
\item 'sp'
\item 'stats'
\item 'graphics'
\item 'grDevices'
\item 'utils'
\item 'datasets'
\item 'methods'
\item 'base'
\end{enumerate*}
\item \begin{enumerate*}
\item 'devtools'
\item 'usethis'
\item 'e1071'
\item 'randomForest'
\item 'spatialEco'
\item 'maptools'
\item 'raster'
\item 'rgdal'
\item 'sp'
\item 'stats'
\item 'graphics'
\item 'grDevices'
\item 'utils'
\item 'datasets'
\item 'methods'
\item 'base'
\end{enumerate*}
\item \begin{enumerate*}
\item 'velox'
\item 'devtools'
\item 'usethis'
\item 'e1071'
\item 'randomForest'
\item 'spatialEco'
\item 'maptools'
\item 'raster'
\item 'rgdal'
\item 'sp'
\item 'stats'
\item 'graphics'
\item 'grDevices'
\item 'utils'
\item 'datasets'
\item 'methods'
\item 'base'
\end{enumerate*}
\item \begin{enumerate*}
\item 'rgeos'
\item 'velox'
\item 'devtools'
\item 'usethis'
\item 'e1071'
\item 'randomForest'
\item 'spatialEco'
\item 'maptools'
\item 'raster'
\item 'rgdal'
\item 'sp'
\item 'stats'
\item 'graphics'
\item 'grDevices'
\item 'utils'
\item 'datasets'
\item 'methods'
\item 'base'
\end{enumerate*}
\item \begin{enumerate*}
\item 'leaflet'
\item 'rgeos'
\item 'velox'
\item 'devtools'
\item 'usethis'
\item 'e1071'
\item 'randomForest'
\item 'spatialEco'
\item 'maptools'
\item 'raster'
\item 'rgdal'
\item 'sp'
\item 'stats'
\item 'graphics'
\item 'grDevices'
\item 'utils'
\item 'datasets'
\item 'methods'
\item 'base'
\end{enumerate*}
\item \begin{enumerate*}
\item 'htmlwidgets'
\item 'leaflet'
\item 'rgeos'
\item 'velox'
\item 'devtools'
\item 'usethis'
\item 'e1071'
\item 'randomForest'
\item 'spatialEco'
\item 'maptools'
\item 'raster'
\item 'rgdal'
\item 'sp'
\item 'stats'
\item 'graphics'
\item 'grDevices'
\item 'utils'
\item 'datasets'
\item 'methods'
\item 'base'
\end{enumerate*}
\item \begin{enumerate*}
\item 'HaSa'
\item 'htmlwidgets'
\item 'leaflet'
\item 'rgeos'
\item 'velox'
\item 'devtools'
\item 'usethis'
\item 'e1071'
\item 'randomForest'
\item 'spatialEco'
\item 'maptools'
\item 'raster'
\item 'rgdal'
\item 'sp'
\item 'stats'
\item 'graphics'
\item 'grDevices'
\item 'utils'
\item 'datasets'
\item 'methods'
\item 'base'
\end{enumerate*}
\end{enumerate}
%% Cell type:markdown id: tags:
## Configuration
%% Cell type:code id: tags:
``` R
wd<-"./"
dataPath<-"./Data/"
outPath<-paste(wd,"Data/Results/",sep="")
rasterOptions(tmpdir="./RasterTmp/")
```
%% Cell type:markdown id: tags:
# Demo
%% Cell type:markdown id: tags:
## **1. Prepare Input Data**
%% Cell type:markdown id: tags:
### 1.1 - Satellite time series stack
%% Cell type:code id: tags:
``` R
a1<-brick(paste(dataPath,"SentinelStack_2018.tif",sep=""))
```
%% Cell type:markdown id: tags:
### 1.2 - Reference data
The reference data is either passed as table **a)** or as shapefile **b)**.
%% Cell type:markdown id: tags:
#### 1.2.a
Reference Spectra as table (rows=habitats, columns=spectral wavebands)
%% Cell type:code id: tags:
``` R
ref<-read.table(paste(dataPath,"Example_Reference_table.txt", sep=""),header=T)
```
%% Cell type:markdown id: tags:
#### 1.2.b
Reference Point Shape -> extract spectral wavebands from Satellite time series stack via R routine (change projection if neccessary)
%% Cell type:code id: tags:
``` R
shp<-readOGR(paste(dataPath,"Example_Reference_Points.shp", sep=""))
proj4string(shp)<- "+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0"
shp<-spTransform(shp,CRS( "+proj=utm +zone=32 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0"))
ref<-as.data.frame(extract(a1,shp))
```
%% Output
OGR data source with driver: ESRI Shapefile
Source: "/home/romulo/gitlab/HabitatSampler/demo/Data/Example_Reference_Points.shp", layer: "Example_Reference_Points"
with 7 features
It has 2 fields
%% Cell type:markdown id: tags:
### 1.3 Plot configuration
%% Cell type:markdown id: tags:
#### 1.3.1
Create SpatialPolygonsDataFrame from satellite time series stack extent for setting sampling boundaries.
%% Cell type:code id: tags:
``` R
p <- as(extent(a1), 'SpatialPolygons')
p <- SpatialPolygonsDataFrame(p, data.frame( ID=1:length(p)))
proj4string(p)<-proj4string(a1)
```
%% Cell type:markdown id: tags:
#### 1.3.2
Define RGB channels for image plot.
%% Cell type:code id: tags:
``` R
r=19; g=20; b=21;
plotRGB(a1,r=r,g=g,b=b,stretch="lin", axes=T)
plot(shp,pch=21,bg="red",col="yellow",cex=1.9,lwd=2.5,add=T)
```
%% Output
%% Cell type:markdown id: tags:
#### 1.3.3
Define color Palette for habitat type probability plot.
%% Cell type:code id: tags:
``` R
col<-colorRampPalette(c("lightgrey","orange","yellow","limegreen","forestgreen"))
```
%% Cell type:markdown id: tags:
#### 1.3.4
Create vector with class names in the order of reference spectra (rows = habitats).
%% Cell type:code id: tags:
``` R
classNames<-c("deciduous","coniferous","heather_young","heather_old","heather_shrub","bare_ground","xeric_grass")
```
%% Cell type:markdown id: tags:
## **2 Habitat Sampling**
%% Cell type:code id: tags:
``` R
multi_Class_Sampling(
in.raster = a1,
init.samples = 50,
sample_type = "regular",
nb_models = 200,
nb_it = 10,
buffer = 15,
reference = ref,
model = "rf",
mtry = 10,
last = F,
seed = 3,
init.seed = "sample",
outPath = outPath,
step = 1,
classNames = classNames,
n_classes = 7,
multiTest = 1,
RGB = c(19,20,21),
overwrite=TRUE,
parallel_mode=TRUE)
```
%% Output
[1] "init.samples = 50 models = 200"
[1] "class=4 difference=0.84"
Threshold for Habitat Extraction or Sample Again [../0]: 16
[1] "n_models = 9"
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
Adjust init.samples/nb.models or auto [../.. or 0]: 0
[1] "Habitat 1 Done"
[1] "init.samples = 100 models = 215"
[1] "class=4 difference=0.8"
Threshold for Habitat Extraction or Sample Again [../0]: 32
[1] "n_models = 17"
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
[1] 11
[1] 12
[1] 13
[1] 14
[1] 15
[1] 16
[1] 17
Adjust init.samples/nb.models or auto [../.. or 0]: 0
[1] "Habitat 2 Done"
[1] "init.samples = 150 models = 230"
[1] "class=2 difference=0.92"
Threshold for Habitat Extraction or Sample Again [../0]: 44
[1] "n_models = 25"
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
[1] 11
[1] 12
[1] 13
[1] 14
[1] 15
[1] 16
[1] 17
[1] 18
[1] 19
[1] 20
[1] 21
[1] 22
[1] 23
[1] 24
[1] 25
Adjust init.samples/nb.models or auto [../.. or 0]: 0
[1] "Habitat 3 Done"
[1] "init.samples = 200 models = 245"
[1] "class=1 difference=0.96"
Threshold for Habitat Extraction or Sample Again [../0]: 110
[1] "n_models = 61"
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
[1] 11
[1] 12
[1] 13
[1] 14
[1] 15
[1] 16
[1] 17
[1] 18
[1] 19
[1] 20
[1] 21
[1] 22
[1] 23
[1] 24
[1] 25
[1] 26
[1] 27
[1] 28
[1] 29
[1] 30
[1] 31
[1] 32
[1] 33
[1] 34
[1] 35
[1] 36
[1] 37
[1] 38
[1] 39
[1] 40
[1] 41
[1] 42
[1] 43
[1] 44
[1] 45
[1] 46
[1] 47
[1] 48
[1] 49
[1] 50
[1] 51
[1] 52
[1] 53
[1] 54
[1] 55
[1] 56
[1] 57
[1] 58
[1] 59
[1] 60
[1] 61
Adjust init.samples/nb.models or auto [../.. or 0]: 0
[1] "Habitat 4 Done"
[1] "init.samples = 250 models = 260"
[1] "class=1 difference=0.96"
Threshold for Habitat Extraction or Sample Again [../0]: 120
[1] "n_models = 67"
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
[1] 11
[1] 12
[1] 13
[1] 14
[1] 15
[1] 16
[1] 17
[1] 18
[1] 19
[1] 20
[1] 21
[1] 22
[1] 23
[1] 24
[1] 25
[1] 26
[1] 27
[1] 28
[1] 29
[1] 30
[1] 31
[1] 32
[1] 33
[1] 34
[1] 35
[1] 36
[1] 37
[1] 38
[1] 39
[1] 40
[1] 41
[1] 42
[1] 43
[1] 44
[1] 45
[1] 46
[1] 47
[1] 48
[1] 49
[1] 50
[1] 51
[1] 52
[1] 53
[1] 54
[1] 55
[1] 56
[1] 57
[1] 58
[1] 59
[1] 60
[1] 61
[1] 62
[1] 63
[1] 64
[1] 65
[1] 66
[1] 67
Adjust init.samples/nb.models or auto [../.. or 0]: 0
[1] "Habitat 5 Done"
[1] "init.samples = 300 models = 275"
[1] "class=1 difference=0.96"
Threshold for Habitat Extraction or Sample Again [../0]: 150
[1] "n_models = 81"
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
[1] 11
[1] 12
[1] 13
[1] 14
[1] 15
[1] 16
[1] 17
[1] 18
[1] 19
[1] 20
[1] 21
[1] 22
[1] 23
[1] 24
[1] 25
[1] 26
[1] 27
[1] 28
[1] 29
[1] 30
[1] 31
[1] 32
[1] 33
[1] 34
[1] 35
[1] 36
[1] 37
[1] 38
[1] 39
[1] 40
[1] 41
[1] 42
[1] 43
[1] 44
[1] 45
[1] 46
[1] 47
[1] 48
[1] 49
[1] 50
[1] 51
[1] 52
[1] 53
[1] 54
[1] 55
[1] 56
[1] 57
[1] 58
[1] 59
[1] 60
[1] 61
[1] 62
[1] 63
[1] 64
[1] 65
[1] 66
[1] 67
[1] 68
[1] 69
[1] 70
[1] 71
[1] 72
[1] 73
[1] 74
[1] 75
[1] 76
[1] 77
[1] 78
[1] 79
[1] 80
[1] 81
Adjust init.samples/nb.models or auto [../.. or 0]: 0
[1] "Habitat 6 Done"
[1] "init.samples = 350 models = 290"
[1] "class=1 difference=0.92"
Threshold for Habitat Extraction or Sample Again [../0]: 65
[1] "n_models = 37"
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
[1] 11
[1] 12
[1] 13
[1] 14
[1] 15
[1] 16
[1] 17
[1] 18
[1] 19
[1] 20
[1] 21
[1] 22
[1] 23
[1] 24
[1] 25
[1] 26
[1] 27
[1] 28
[1] 29
[1] 30
[1] 31
[1] 32
[1] 33
[1] 34
[1] 35
[1] 36
[1] 37
[1] "Habitat 7 Done"
[1] "Congratulation - you finally made it towards the last habitat"
%% Cell type:markdown id: tags:
## **3. Plot results**
%% Cell type:code id: tags:
``` R
plot_results(inPath=outPath)
```
%% Cell type:code id: tags:
``` R
```
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment