diff --git a/.Rprofile b/.Rprofile index 81b960f5..77c6cbd6 100644 --- a/.Rprofile +++ b/.Rprofile @@ -1 +1,6 @@ source("renv/activate.R") +local({ + options( + pkgType = "both" + ) +}) diff --git a/.github/workflows/generate-artifact-pr.yml b/.github/workflows/generate-artifact-pr.yml index 4dc49118..f188fb36 100644 --- a/.github/workflows/generate-artifact-pr.yml +++ b/.github/workflows/generate-artifact-pr.yml @@ -30,7 +30,7 @@ jobs: - name: Query dependencies run: | - install.packages('remotes') + install.packages('remotes', type = "source") saveRDS(remotes::dev_package_deps(dependencies = NA), ".github/depends.Rds", version = 2) writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") shell: Rscript {0} @@ -49,8 +49,8 @@ jobs: - name: Install dependencies run: | - remotes::install_deps(dependencies = NA) #fails to install protocolhelper - remotes::install_github("inbo/protocolhelper") + remotes::install_deps(dependencies = NA, type = "source") #fails to install protocolhelper + remotes::install_github("inbo/protocolhelper", type = "source") shell: Rscript {0} - name: Session info diff --git a/.github/workflows/update_news_zenodo.yml b/.github/workflows/update_news_zenodo.yml index c7421906..1e9230ec 100644 --- a/.github/workflows/update_news_zenodo.yml +++ b/.github/workflows/update_news_zenodo.yml @@ -8,11 +8,11 @@ jobs: build: if: github.event.review.state == 'approved' && github.event.pull_request.base.ref == 'main' - && (startsWith(github.head_ref, 'sfp-') - || startsWith(github.head_ref, 'sip-') - || startsWith(github.head_ref, 'sop-') - || startsWith(github.head_ref, 'sap-') - || startsWith(github.head_ref, 'spp-')) + && (startsWith(github.event.pull_request.head.ref, 'sfp-') + || startsWith(github.event.pull_request.head.ref, 'sip-') + || startsWith(github.event.pull_request.head.ref, 'sop-') + || startsWith(github.event.pull_request.head.ref, 'sap-') + || startsWith(github.event.pull_request.head.ref, 'spp-')) runs-on: ubuntu-latest name: "update repo news and zenodo" steps: diff --git a/.gitignore b/.gitignore index 873cd1cf..1f3205ff 100644 --- a/.gitignore +++ b/.gitignore @@ -42,5 +42,6 @@ vignettes/*.pdf # Other docs/ +from_docx/ css/ _bookdown_files/ diff --git a/.zenodo.json b/.zenodo.json index 1fe6dcd6..f971a7db 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -54,6 +54,24 @@ "affiliation": "Research Institute for Nature and Forest", "type": "Researcher", "orcid": "0000-0003-3537-286X" + }, + { + "name": "Sophie Vermeersch", + "affiliation": "Research Institute for Nature and Forest", + "type": "Researcher", + "orcid": "0009-0001-5836-1189" + }, + { + "name": "Els De Bie", + "affiliation": "Research Institute for Nature and Forest", + "type": "Researcher", + "orcid": "0000-0001-7679-743X" + }, + { + "name": "Scheers, Kevin", + "affiliation": "Research Institute for Nature and Forest", + "type": "Researcher", + "orcid": "0000-0002-4756-4247" } ] } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a739d54f..83c382d3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -46,9 +46,11 @@ Note also that any dependency packages needed by the packages listed in the [DES Apart from the above R packages, you will also need a working installation of TinyTeX, which is an external open-source software package that is needed to render protocols to PDF format (i.e. when you run `protocolhelper::render_protocol()` see [Workflow](#workflow)). -To install this, we recommend to follow the [installation instructions](https://github.com/inbo/INBOmd/#installation) provided by the `INBOmd` R package. -Please make sure to install this from an R session that runs outside of the RStudio `protocolsource.Rproj`. -So, close the RStudio project and any other R sessions and start the most recent version of R that is installed on your system and copy-paste the installation instructions in the R console. +To install this: + +- close the RStudio project and any other R sessions and start the most recent version of R that is installed on your system + +- follow the [installation instructions](https://github.com/inbo/INBOmd/#installation) provided by the `INBOmd` R package and copy-paste the installation instructions in the R console. ## `(R)markdown` syntax and learning `Rmarkdown` @@ -145,7 +147,7 @@ Tips & Tricks: ## Branching model -![](src/management/protocols-gitflow-model.png) +![](source/management/protocols-gitflow-model.png) We use a simple branching model. The main branch is protected and can only receive commits from reviewed pull requests. @@ -219,9 +221,9 @@ This website will host all approved and published versions of all protocols. 7. When you think your protocol is ready to be reviewed, visit [github protocolsource](https://github.com/inbo/protocolsource) and start a Pull Request (PR) - ![](src/management/pr-on-github-1.png) + ![](source/management/pr-on-github-1.png) - ![](src/management/pr-on-github-2.png) + ![](source/management/pr-on-github-2.png) 1. Wait for the continuous integration checks to finish and see if the checks succeeded. These checks will run `protocolhelper::check_frontmatter()` and `protocolhelper::check_structure()`, and update the version number if needed. @@ -237,14 +239,14 @@ This website will host all approved and published versions of all protocols. At least one repo admin and one other subject-matter specialist must review the protocol. The subject-matter specialist reviews the contents of the protocol and the repo-admin reviews technical aspects. - ![](src/management/pr-on-github-4.png) + ![](source/management/pr-on-github-4.png) 10. Reviewers can follow [these guidelines](REVIEWING.md) 11. If the reviewers raise concerns, changes can be made to the protocol that address these concerns (stage, commit, push). If the review requires substantial changes, it is wise to temporarilly mark the PR as draft - ![](src/management/pr-on-github-3.png) + ![](source/management/pr-on-github-3.png) When you have dealt with the reviewer comments, go to your draft pull request and press 'ready for review' @@ -276,13 +278,16 @@ This will allow you to check the resulting output locally. ### From an existing docx protocol +Even if you are converting an older published protocol, we recommend leaving the date field to it's default value (current date) and instead mention in the `NEWS.md` file that this is a conversion from protocol so-and-so published first on date such-and-such. + + ```r library(protocolhelper) create_sfp(title = "Klassieke vegetatieopname in een proefvlak aan de hand van visuele inschattingen van bedekking van soorten in (semi-)terrestrische vegetatie", short_title = "vegopname terrest", authors = "De Bie, Els", orcids = "0000-0000-1234-5678", - date = "2016-07-19", + date = "`r Sys.Date()`", reviewers = "Hans Van Calster, Lieve Vriens, Jan Wouters, Wouter Van Gompel, Els Lommelen", file_manager = "Hans Van Calster", theme = "vegetation", @@ -296,6 +301,8 @@ create_sfp(title = "Klassieke vegetatieopname in een proefvlak aan de hand van v ### From a new template +For a field protocol (sfp) (you need to specify a theme): + ```r library(protocolhelper) create_sfp(title = "titel van het protocol", @@ -313,7 +320,7 @@ create_sfp(title = "titel van het protocol", render = FALSE) ``` -Alternatively, for a project-specific protocol: +Alternatively, for a project-specific protocol (you need to specify a project_name): ```r library(protocolhelper) @@ -329,6 +336,25 @@ create_spp(title = "Bodemstalen nemen", render = FALSE) ``` +Or for a standard operating procedure (similarly for sip or sap; no need to specify theme or project_name): + +```r +library(protocolhelper) +create_sop(title = "titel van het protocol", + subtitle = "optionele subtitel", + short_title = "korte titel", + authors = c("Achternaam1, Voornaam1", "Achternaam2, voornaam2"), + orcids = c("0000-0000-1234-5678", "0000-0000-1234-8765"), + date = "`r Sys.Date()`", + reviewers = "Voornaam Naam, ...", + file_manager = "Voornaam Naam", + language = "nl", + from_docx = NULL, + protocol_number = NULL, + render = FALSE) +``` + + ## What to do in case of parameterized protocols? See [the bookdown manual](https://bookdown.org/yihui/rmarkdown/parameterized-reports.html) for a general explanation about parameterized reports. diff --git a/DESCRIPTION b/DESCRIPTION index 3cc41653..901b9f53 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -21,7 +21,8 @@ Roxygen: list(markdown = TRUE) RoxygenNote: 7.1.1 Remotes: github::inbo/protocolhelper, - github::inbo/checklist + github::inbo/checklist, + github::inbo/inbodb Imports: checklist, dplyr, @@ -38,4 +39,5 @@ Imports: rprojroot, sessioninfo, spatstat, - tibble + tibble, + yaml diff --git a/Dockerfile b/Dockerfile index 999065af..fe540605 100644 --- a/Dockerfile +++ b/Dockerfile @@ -46,6 +46,18 @@ RUN apt-get update \ && apt-get install -y --no-install-recommends \ libv8-dev +## Install tinytex +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + r-cran-tinytex +RUN Rscript -e 'tinytex::install_tinytex(force = TRUE)' + +## Install LaTeX packages +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + ghostscript \ + && Rscript -e 'tinytex::tlmgr_install(c("amsmath", "amssymb", "array", "babel-dutch", "babel-english", "babel-french", "beamer", "beamerarticle", "biblatex", "bookmark", "booktabs", "calc", "caption", "csquotes", "dvips", "etoolbox", "fancyvrb", "fontenc", "fontspec", "footnote", "footnotehyper", "geometry", "graphicx", "helvetic", "hyperref", "hyphen-dutch", "hyphen-french", "iftex", "inconsolata", "inputenc", "listings", "lmodern", "longtable", "luatexja-preset", "luatexja-fontspec", "mathspec", "microtype", "multirow", "natbib", "orcidlink", "parskip", "pgfpages", "selnolig", "setspace", "soul", "svg", "tex", "textcomp", "times", "unicode-math", "upquote", "url", "xcolor", "xeCJK", "xurl"))' + WORKDIR /github/workspace RUN R -e "install.packages('renv', repos = c(CRAN = 'https://cloud.r-project.org'))" diff --git a/MAINTENANCE.md b/MAINTENANCE.md new file mode 100644 index 00000000..1445e3b9 --- /dev/null +++ b/MAINTENANCE.md @@ -0,0 +1,29 @@ +# Updating `renv` or the `docker` machinery + +These instructions are for admins only. + +Making changes to `renv.lock`: + +- create a new branch `docker-renv-update` +- adding a new package: add the package name to the `DESCRIPTION` file, install the package and snapshot it +- after an upgrade of R x.y to x.z: [see tutorial website](https://inbo.github.io/tutorials/tutorials/r_renv_update/#updating-r-and-packages) +- add, commit and push `renv.lock` (potentially also `DESCRIPTION` and other files altered by `renv`), make a Pull Request +- ask for a review +- wait until docker succesfully built message appears before merging + +Making changes to `docker` or `dockerfile` (and possibly also `renv.lock`): + +- create a new branch `docker-update` +- make changes and add, commit, push them +- ask for a review +- wait until docker succesfully built message appears before merging + +Whenever the above branches are merged to main, a git tag `docker-` will be automatically added via GHA. +Here, refers to the SHA-1 identifier of the merge commit. + +`dockerhub` is configured in such a way that the docker image will be built when the branchname starts with `docker-`. +Docker will then add a docker tag to this image called `dev-`. +This means that for every commit to a `docker-` branch, the docker image will be rebuilt. +This allows to test if the image can be built. +There will be at most two test images: `dev-renv-update` or `dev-update`. +When a git tag `docker-` appears on the main branch, the docker image will built and receive a dockerhub tag `latest`. diff --git a/NEWS.md b/NEWS.md index a2c44f08..6f5f9f7d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,31 @@ +### First version of protocol: sfp-406-nl + +- Title: Vegetatieopname en LSVI-bepaling *Luronium natans* +- Published on: 2023-06-21 +- Version number: 2023.06 +- Link to this version: [sfp-406-nl version 2023.06](2023.06/index.html) + +### Update of protocol: sfp-403-nl + +- Title: Vegetatieopname en LSVI-bepaling habitat 3260 +- Published on: 2023-06-20 +- Version number: 2023.05 +- Link to this version: [sfp-403-nl version 2023.05](2023.05/index.html) + +### First version of protocol: sfp-113-nl + +- Title: Bepaling doorzicht waterkolom oppervlaktewater op basis van de Secchi-diepte +- Published on: 2023-06-20 +- Version number: 2023.04 +- Link to this version: [sfp-113-nl version 2023.04](2023.04/index.html) + +### First version of protocol: sfp-401-nl + +- Title: Klassieke vegetatieopname in een proefvlak aan de hand van visuele inschattingen van bedekking van soorten in (semi-)terrestrische vegetatie +- Published on: 2023-05-02 +- Version number: 2023.03 +- Link to this version: [sfp-401-nl version 2023.03](2023.03/index.html) + ### First version of protocol: sfp-403-nl - Title: Vegetatieopname en LSVI-bepaling habitat 3260 diff --git a/docker/entrypoint_update.sh b/docker/entrypoint_update.sh index 4ecc180b..76998970 100755 --- a/docker/entrypoint_update.sh +++ b/docker/entrypoint_update.sh @@ -1,7 +1,7 @@ #!/bin/sh -l echo '\nGetting the code...\n' -git clone --branch=$GITHUB_HEAD_REF https://$INPUT_PAT@github.com/$GITHUB_REPOSITORY /update +git clone --branch=$INPUT_GITHUB_HEAD_REF https://$INPUT_PAT@github.com/$GITHUB_REPOSITORY /update git config --global user.email "info@inbo.be" git config --global user.name "INBO" cd /update @@ -17,7 +17,7 @@ git add .zenodo.json git commit --message="update .zenodo.json" echo '\nUpdating general NEWS.md...\n' -Rscript --no-save --no-restore -e 'protocolhelper:::update_news_release("'$GITHUB_HEAD_REF'")' +Rscript --no-save --no-restore -e 'protocolhelper:::update_news_release("'$INPUT_GITHUB_HEAD_REF'")' git add NEWS.md git commit --message="update general NEWS.md" diff --git a/renv.lock b/renv.lock index ed439b20..89c05596 100644 --- a/renv.lock +++ b/renv.lock @@ -1,150 +1,183 @@ { "R": { - "Version": "4.2.1", + "Version": "4.3.0", "Repositories": [ { "Name": "CRAN", "URL": "https://cloud.r-project.org" - }, - { - "Name": "INLA", - "URL": "https://inla.r-inla-download.org/R/stable" - }, - { - "Name": "inbo", - "URL": "https://inbo.r-universe.dev" } ] }, "Packages": { "DBI": { "Package": "DBI", - "Version": "1.1.2", + "Version": "1.1.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "dcd1743af4336156873e3ce3c950b8b9", - "Requirements": [] + "Requirements": [ + "R", + "methods" + ], + "Hash": "b2866e62bab9378c3cc9476a1954226b" }, "MASS": { "Package": "MASS", - "Version": "7.3-57", + "Version": "7.3-60", "Source": "Repository", "Repository": "CRAN", - "Hash": "71476c1d88d1ebdf31580e5a257d5d31", - "Requirements": [] + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "stats", + "utils" + ], + "Hash": "a56a6365b3fa73293ea8d084be0d9bb0" }, "Matrix": { "Package": "Matrix", - "Version": "1.4-1", + "Version": "1.6-1", "Source": "Repository", "Repository": "CRAN", - "Hash": "699c47c606293bdfbc9fd78a93c9c8fe", "Requirements": [ - "lattice" - ] + "R", + "grDevices", + "graphics", + "grid", + "lattice", + "methods", + "stats", + "utils" + ], + "Hash": "cb6855ac711958ca734b75e631b2035d" }, "R6": { "Package": "R6", "Version": "2.5.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "470851b6d5d0ac559e9d01bb352b4021", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "470851b6d5d0ac559e9d01bb352b4021" }, "RColorBrewer": { "Package": "RColorBrewer", "Version": "1.1-3", "Source": "Repository", "Repository": "CRAN", - "Hash": "45f0398006e83a5b10b72a90663d8d8c", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "45f0398006e83a5b10b72a90663d8d8c" }, "Rcpp": { "Package": "Rcpp", - "Version": "1.0.8.3", + "Version": "1.0.11", "Source": "Repository", "Repository": "CRAN", - "Hash": "32e79b908fda56ee57fe518a8d37b864", - "Requirements": [] + "Requirements": [ + "methods", + "utils" + ], + "Hash": "ae6cbbe1492f4de79c45fce06f967ce8" }, "abind": { "Package": "abind", "Version": "1.4-5", "Source": "Repository", "Repository": "CRAN", - "Hash": "4f57884290cc75ab22f4af9e9d4ca862", - "Requirements": [] + "Requirements": [ + "R", + "methods", + "utils" + ], + "Hash": "4f57884290cc75ab22f4af9e9d4ca862" }, "askpass": { "Package": "askpass", - "Version": "1.1", + "Version": "1.2.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "e8a22846fff485f0be3770c2da758713", "Requirements": [ "sys" - ] + ], + "Hash": "cad6cf7f1d5f6e906700b9d3e718c796" }, "assertthat": { "Package": "assertthat", "Version": "0.2.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "50c838a310445e954bc13f26f26a6ecf", - "Requirements": [] + "Requirements": [ + "tools" + ], + "Hash": "50c838a310445e954bc13f26f26a6ecf" }, "backports": { "Package": "backports", "Version": "1.4.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "c39fbec8a30d23e721980b8afb31984c", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "c39fbec8a30d23e721980b8afb31984c" }, "base64enc": { "Package": "base64enc", "Version": "0.1-3", "Source": "Repository", "Repository": "CRAN", - "Hash": "543776ae6848fde2f48ff3816d0628bc", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "543776ae6848fde2f48ff3816d0628bc" }, "bit": { "Package": "bit", - "Version": "4.0.4", + "Version": "4.0.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "f36715f14d94678eea9933af927bc15d", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "d242abec29412ce988848d0294b208fd" }, "bit64": { "Package": "bit64", "Version": "4.0.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "9fe98599ca456d6552421db0d6772d8f", "Requirements": [ - "bit" - ] + "R", + "bit", + "methods", + "stats", + "utils" + ], + "Hash": "9fe98599ca456d6552421db0d6772d8f" }, "blob": { "Package": "blob", - "Version": "1.2.3", + "Version": "1.2.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "10d231579bc9c06ab1c320618808d4ff", "Requirements": [ + "methods", "rlang", "vctrs" - ] + ], + "Hash": "40415719b5a479b87949f3aa0aee737c" }, "bookdown": { "Package": "bookdown", - "Version": "0.26", + "Version": "0.35", "Source": "Repository", "Repository": "CRAN", - "Hash": "65ebdc552e88fc98c596f4797c5415ad", "Requirements": [ + "R", "htmltools", "jquerylib", "knitr", @@ -152,83 +185,91 @@ "tinytex", "xfun", "yaml" - ] + ], + "Hash": "c6ff1e408f5f241cbcedc0ae28711163" }, "brew": { "Package": "brew", - "Version": "1.0-7", + "Version": "1.0-8", "Source": "Repository", "Repository": "CRAN", - "Hash": "38875ea52350ff4b4c03849fc69736c8", - "Requirements": [] + "Hash": "d69a786e85775b126bddbee185ae6084" }, "brio": { "Package": "brio", "Version": "1.1.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "976cf154dfb043c012d87cddd8bca363", - "Requirements": [] + "Hash": "976cf154dfb043c012d87cddd8bca363" }, "bslib": { "Package": "bslib", - "Version": "0.3.1", + "Version": "0.5.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "56ae7e1987b340186a8a5a157c2ec358", "Requirements": [ + "R", + "base64enc", + "cachem", + "grDevices", "htmltools", "jquerylib", "jsonlite", + "memoise", + "mime", "rlang", "sass" - ] + ], + "Hash": "283015ddfbb9d7bf15ea9f0b5698f0d9" }, "cachem": { "Package": "cachem", - "Version": "1.0.6", + "Version": "1.0.8", "Source": "Repository", "Repository": "CRAN", - "Hash": "648c5b3d71e6a37e3043617489a0a0e9", "Requirements": [ "fastmap", "rlang" - ] + ], + "Hash": "c35768291560ce302c0a6589f92e837d" }, "callr": { "Package": "callr", - "Version": "3.7.0", + "Version": "3.7.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "461aa75a11ce2400245190ef5d3995df", "Requirements": [ + "R", "R6", - "processx" - ] + "processx", + "utils" + ], + "Hash": "9b2191ede20fa29828139b9900922e51" }, "cellranger": { "Package": "cellranger", "Version": "1.1.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "f61dbaec772ccd2e17705c1e872e9e7c", "Requirements": [ + "R", "rematch", "tibble" - ] + ], + "Hash": "f61dbaec772ccd2e17705c1e872e9e7c" }, "checklist": { "Package": "checklist", - "Version": "0.2.6", + "Version": "0.3.5", "Source": "GitHub", "RemoteType": "github", "RemoteHost": "api.github.com", "RemoteUsername": "inbo", "RemoteRepo": "checklist", "RemoteRef": "main", - "RemoteSha": "b162fbd0c2b4cc1910eac7ab16906cd4c2f14fa0", - "Hash": "2da9540c134388a6b2d9e426adf6c610", + "RemoteSha": "3413f5fec507f8039063f7573fabc0e1bc20adab", "Requirements": [ + "R", "R6", "assertthat", "codemetar", @@ -239,61 +280,73 @@ "httr", "hunspell", "jsonlite", + "knitr", "lintr", "pkgdown", "rcmdcheck", "renv", "rmarkdown", - "rorcid", "sessioninfo", + "utils", "withr", "yaml" - ] + ], + "Hash": "c7a211a887193e30fabe11e0376f4abb" }, "checkmate": { "Package": "checkmate", - "Version": "2.1.0", + "Version": "2.2.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "147e4db6909d8814bb30f671b49d7e06", "Requirements": [ - "backports" - ] + "R", + "backports", + "utils" + ], + "Hash": "ca9c113196136f4a9ca9ce6079c2c99e" }, "cli": { "Package": "cli", - "Version": "3.6.0", + "Version": "3.6.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "3177a5a16c243adc199ba33117bd9657", - "Requirements": [] + "Requirements": [ + "R", + "utils" + ], + "Hash": "89e6d8219950eac806ae0c489052048a" }, "clipr": { "Package": "clipr", "Version": "0.8.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "3f038e5ac7f41d4ac41ce658c85e3042", - "Requirements": [] + "Requirements": [ + "utils" + ], + "Hash": "3f038e5ac7f41d4ac41ce658c85e3042" }, "codemeta": { "Package": "codemeta", "Version": "0.1.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "81048af0d716143bb5dc44d076279538", "Requirements": [ + "R", "desc", - "jsonlite" - ] + "jsonlite", + "methods", + "utils" + ], + "Hash": "81048af0d716143bb5dc44d076279538" }, "codemetar": { "Package": "codemetar", - "Version": "0.3.4", + "Version": "0.3.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "df89fed1e839cc591eb0bfdfee97f9dd", "Requirements": [ + "R", "cli", "codemeta", "commonmark", @@ -304,74 +357,89 @@ "jsonlite", "magrittr", "memoise", + "methods", "pingr", "purrr", "remotes", "sessioninfo", + "stats", "urltools", "xml2" - ] + ], + "Hash": "4745d1640f1bd57391902225eac0244f" }, "codetools": { "Package": "codetools", - "Version": "0.2-18", + "Version": "0.2-19", "Source": "Repository", "Repository": "CRAN", - "Hash": "019388fc48e48b3da0d3a76ff94608a8", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "c089a619a7fae175d149d89164f8c7d8" }, "colorspace": { "Package": "colorspace", - "Version": "2.0-3", + "Version": "2.1-0", "Source": "Repository", "Repository": "CRAN", - "Hash": "bb4341986bc8b914f0f0acf2e4a3f2f7", - "Requirements": [] + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "stats" + ], + "Hash": "f20c47fd52fae58b4e377c37bb8c335b" }, "commonmark": { "Package": "commonmark", - "Version": "1.8.0", + "Version": "1.9.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "2ba81b120c1655ab696c935ef33ea716", - "Requirements": [] + "Hash": "d691c61bff84bd63c383874d2d0c3307" }, "cpp11": { "Package": "cpp11", - "Version": "0.4.2", + "Version": "0.4.6", "Source": "Repository", "Repository": "CRAN", - "Hash": "fa53ce256cd280f468c080a58ea5ba8c", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "707fae4bbf73697ec8d85f9d7076c061" }, "crayon": { "Package": "crayon", - "Version": "1.5.1", + "Version": "1.5.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "8dc45fd8a1ee067a92b85ef274e66d6a", - "Requirements": [] + "Requirements": [ + "grDevices", + "methods", + "utils" + ], + "Hash": "e8a1e41acf02548751f45c718d55aa6a" }, "credentials": { "Package": "credentials", - "Version": "1.3.2", + "Version": "2.0.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "93762d0a34d78e6a025efdbfb5c6bb41", "Requirements": [ "askpass", "curl", "jsonlite", "openssl", "sys" - ] + ], + "Hash": "c7844b32098dcbd1c59cbd8dddb4ecc6" }, "crul": { "Package": "crul", - "Version": "1.2.0", + "Version": "1.4.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "607162d6f0d735014263cb0160c5be72", "Requirements": [ "R6", "curl", @@ -379,137 +447,154 @@ "jsonlite", "mime", "urltools" - ] + ], + "Hash": "1eb00a531331c91d970f3af74b75321f" }, "curl": { "Package": "curl", - "Version": "4.3.2", + "Version": "5.0.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "022c42d49c28e95d69ca60446dbabf88", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "511bacbfa153a15251166b463b4da4f9" }, "cyclocomp": { "Package": "cyclocomp", - "Version": "1.1.0", + "Version": "1.1.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "53cbed70a2f7472d48fb6aef08442f25", "Requirements": [ "callr", "crayon", "desc", "remotes", "withr" - ] - }, - "data.table": { - "Package": "data.table", - "Version": "1.14.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "36b67b5adf57b292923f5659f5f0c853", - "Requirements": [] + ], + "Hash": "cdc4a473222b0112d4df0bcfbed12d44" }, "dbplyr": { "Package": "dbplyr", - "Version": "2.2.0", + "Version": "2.3.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "a6e4cc7b658d043806bc559ef42a1d2a", "Requirements": [ "DBI", + "R", "R6", - "assertthat", "blob", "cli", "dplyr", "glue", "lifecycle", "magrittr", + "methods", "pillar", "purrr", "rlang", "tibble", + "tidyr", "tidyselect", + "utils", "vctrs", "withr" - ] + ], + "Hash": "d6fd1b1440c1cacc6623aaa4e9fe352b" }, "deldir": { "Package": "deldir", - "Version": "1.0-6", + "Version": "1.0-9", "Source": "Repository", "Repository": "CRAN", - "Hash": "65a3d4e2a1619bb85ae0fb64628da972", - "Requirements": [] + "Requirements": [ + "R", + "grDevices", + "graphics" + ], + "Hash": "81dc74aa2dbe87672a8f73934fcf2dae" }, "desc": { "Package": "desc", - "Version": "1.4.1", + "Version": "1.4.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "eebd27ee58fcc58714eedb7aa07d8ad1", "Requirements": [ + "R", "R6", "cli", - "rprojroot" - ] + "rprojroot", + "utils" + ], + "Hash": "6b9602c7ebbe87101a9c8edb6e8b6d21" }, "devtools": { "Package": "devtools", - "Version": "2.4.3", + "Version": "2.4.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "fc35e13bb582e5fe6f63f3d647a4cbe5", "Requirements": [ - "callr", + "R", "cli", "desc", "ellipsis", "fs", - "httr", "lifecycle", "memoise", + "miniUI", "pkgbuild", + "pkgdown", "pkgload", + "profvis", "rcmdcheck", "remotes", "rlang", "roxygen2", - "rstudioapi", "rversions", "sessioninfo", + "stats", "testthat", + "tools", + "urlchecker", "usethis", + "utils", "withr" - ] + ], + "Hash": "ea5bc8b4a6a01e4f12d98b58329930bb" }, "diffobj": { "Package": "diffobj", "Version": "0.3.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "bcaa8b95f8d7d01a5dedfd959ce88ab8", "Requirements": [ - "crayon" - ] + "R", + "crayon", + "methods", + "stats", + "tools", + "utils" + ], + "Hash": "bcaa8b95f8d7d01a5dedfd959ce88ab8" }, "digest": { "Package": "digest", - "Version": "0.6.29", + "Version": "0.6.33", "Source": "Repository", "Repository": "CRAN", - "Hash": "cf6b206a045a684728c3267ef7596190", - "Requirements": [] + "Requirements": [ + "R", + "utils" + ], + "Hash": "b18a9cf3c003977b0cc49d5e76ebe48d" }, "downlit": { "Package": "downlit", - "Version": "0.4.0", + "Version": "0.4.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "ba63dc9ab5a31f3209892437e40c5f60", "Requirements": [ + "R", "brio", "desc", "digest", @@ -518,115 +603,121 @@ "memoise", "rlang", "vctrs", + "withr", "yaml" - ] + ], + "Hash": "14fa1f248b60ed67e1f5418391a17b14" }, "dplyr": { "Package": "dplyr", - "Version": "1.0.9", + "Version": "1.1.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "f0bda1627a7f5d3f9a0b5add931596ac", "Requirements": [ + "R", "R6", + "cli", "generics", "glue", "lifecycle", "magrittr", + "methods", "pillar", "rlang", "tibble", "tidyselect", + "utils", "vctrs" - ] + ], + "Hash": "e85ffbebaad5f70e1a2e2ef4302b4949" }, "ellipsis": { "Package": "ellipsis", "Version": "0.3.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "bb0eec2fe32e88d9e2836c2f73ea2077", "Requirements": [ + "R", "rlang" - ] + ], + "Hash": "bb0eec2fe32e88d9e2836c2f73ea2077" }, "evaluate": { "Package": "evaluate", - "Version": "0.15", + "Version": "0.21", "Source": "Repository", "Repository": "CRAN", - "Hash": "699a7a93d08c962d9f8950b2d7a227f1", - "Requirements": [] + "Requirements": [ + "R", + "methods" + ], + "Hash": "d59f3b464e8da1aef82dc04b588b8dfb" }, "fansi": { "Package": "fansi", - "Version": "1.0.3", + "Version": "1.0.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "83a8afdbe71839506baa9f90eebad7ec", - "Requirements": [] + "Requirements": [ + "R", + "grDevices", + "utils" + ], + "Hash": "1d9e7ad3c8312a192dea7d3db0274fde" }, "farver": { "Package": "farver", - "Version": "2.1.0", + "Version": "2.1.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "c98eb5133d9cb9e1622b8691487f11bb", - "Requirements": [] + "Hash": "8106d78941f34855c440ddb946b8f7a5" }, "fastmap": { "Package": "fastmap", - "Version": "1.1.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "77bd60a6157420d4ffa93b27cf6a58b8", - "Requirements": [] - }, - "fauxpas": { - "Package": "fauxpas", - "Version": "0.5.0", + "Version": "1.1.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "4a92318a9d58a8e66b7d0689db3157b5", - "Requirements": [ - "R6", - "httpcode", - "whisker" - ] + "Hash": "f7736a18de97dea803bde0a2daaafb27" }, "fontawesome": { "Package": "fontawesome", - "Version": "0.2.2", + "Version": "0.5.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "55624ed409e46c5f358b2c060be87f67", "Requirements": [ + "R", "htmltools", "rlang" - ] + ], + "Hash": "c2efdd5f0bcd1ea861c2d4e2a883a67d" }, "fs": { "Package": "fs", - "Version": "1.5.2", + "Version": "1.6.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "7c89603d81793f0d5486d91ab1fc6f1d", - "Requirements": [] + "Requirements": [ + "R", + "methods" + ], + "Hash": "47b5f30c720c23999b913a1a635cf0bb" }, "generics": { "Package": "generics", - "Version": "0.1.2", + "Version": "0.1.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "177475892cf4a55865868527654a7741", - "Requirements": [] + "Requirements": [ + "R", + "methods" + ], + "Hash": "15e9634c0fcd294799e9b2e929ed1b86" }, "gert": { "Package": "gert", - "Version": "1.6.0", + "Version": "1.9.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "98c014c4c933f23ea5a0321a4d0b588b", "Requirements": [ "askpass", "credentials", @@ -634,190 +725,247 @@ "rstudioapi", "sys", "zip" - ] + ], + "Hash": "b544c397820e05a97d391b2d614a921a" }, "ggplot2": { "Package": "ggplot2", - "Version": "3.3.6", + "Version": "3.4.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "0fb26d0674c82705c6b701d1a61e02ea", "Requirements": [ "MASS", - "digest", + "R", + "cli", "glue", + "grDevices", + "grid", "gtable", "isoband", + "lifecycle", "mgcv", "rlang", "scales", + "stats", "tibble", + "vctrs", "withr" - ] + ], + "Hash": "85846544c596e71f8f46483ab165da33" }, "gh": { "Package": "gh", - "Version": "1.3.0", + "Version": "1.4.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "38c2580abbda249bd6afeec00d14f531", "Requirements": [ + "R", "cli", "gitcreds", - "httr", + "httr2", "ini", - "jsonlite" - ] + "jsonlite", + "rlang" + ], + "Hash": "03533b1c875028233598f848fda44c4c" }, "git2r": { "Package": "git2r", - "Version": "0.30.1", + "Version": "0.32.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "e0c6a04a3e7b90e64213d09128f74f1b", - "Requirements": [] + "Requirements": [ + "R", + "graphics", + "utils" + ], + "Hash": "1882d7a76fd8c14b2322865f74c9a348" }, "git2rdata": { "Package": "git2rdata", "Version": "0.4.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "873d32667639e500e05450cb54a36b55", "Requirements": [ + "R", "assertthat", "git2r", + "methods", "yaml" - ] + ], + "Hash": "873d32667639e500e05450cb54a36b55" }, "gitcreds": { "Package": "gitcreds", - "Version": "0.1.1", + "Version": "0.1.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "f3aefccc1cc50de6338146b62f115de8", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "ab08ac61f3e1be454ae21911eb8bc2fe" }, "glue": { "Package": "glue", "Version": "1.6.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "4f2596dfb05dac67b9dc558e5c6fba2e", - "Requirements": [] + "Requirements": [ + "R", + "methods" + ], + "Hash": "4f2596dfb05dac67b9dc558e5c6fba2e" }, "goftest": { "Package": "goftest", "Version": "1.2-3", "Source": "Repository", "Repository": "CRAN", - "Hash": "dbe0201f91eeb15918dd3fbf01ee689a", - "Requirements": [] + "Requirements": [ + "R", + "stats" + ], + "Hash": "dbe0201f91eeb15918dd3fbf01ee689a" }, "gtable": { "Package": "gtable", - "Version": "0.3.0", + "Version": "0.3.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "ac5c6baf7822ce8732b343f14c072c4d", - "Requirements": [] + "Requirements": [ + "R", + "cli", + "glue", + "grid", + "lifecycle", + "rlang" + ], + "Hash": "b29cf3031f49b04ab9c852c912547eef" }, "highr": { "Package": "highr", - "Version": "0.9", + "Version": "0.10", "Source": "Repository", "Repository": "CRAN", - "Hash": "8eb36c8125038e648e5d111c0d7b2ed4", "Requirements": [ + "R", "xfun" - ] + ], + "Hash": "06230136b2d2b9ba5805e1963fa6e890" }, "hms": { "Package": "hms", - "Version": "1.1.1", + "Version": "1.1.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "5b8a2dd0fdbe2ab4f6081e6c7be6dfca", "Requirements": [ - "ellipsis", "lifecycle", + "methods", "pkgconfig", "rlang", "vctrs" - ] + ], + "Hash": "b59377caa7ed00fa41808342002138f9" }, "htmltools": { "Package": "htmltools", - "Version": "0.5.4", + "Version": "0.5.6", "Source": "Repository", "Repository": "CRAN", - "Hash": "9d27e99cc90bd701c0a7a63e5923f9b7", "Requirements": [ + "R", "base64enc", "digest", "ellipsis", "fastmap", - "rlang" - ] + "grDevices", + "rlang", + "utils" + ], + "Hash": "a2326a66919a3311f7fbb1e3bf568283" }, "htmlwidgets": { "Package": "htmlwidgets", - "Version": "1.6.1", + "Version": "1.6.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "b677ee5954471eaa974c0d099a343a1a", "Requirements": [ + "grDevices", "htmltools", "jsonlite", "knitr", "rmarkdown", "yaml" - ] + ], + "Hash": "a865aa85bcb2697f47505bfd70422471" }, "httpcode": { "Package": "httpcode", "Version": "0.3.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "13641a1c6d2cc98801b76764078e17ea", - "Requirements": [] + "Hash": "13641a1c6d2cc98801b76764078e17ea" }, "httpuv": { "Package": "httpuv", - "Version": "1.6.5", + "Version": "1.6.11", "Source": "Repository", "Repository": "CRAN", - "Hash": "97fe71f0a4a1c9890e6c2128afa04bc0", "Requirements": [ + "R", "R6", "Rcpp", "later", - "promises" - ] + "promises", + "utils" + ], + "Hash": "838602f54e32c1a0f8cc80708cefcefa" }, "httr": { "Package": "httr", - "Version": "1.4.3", + "Version": "1.4.7", "Source": "Repository", "Repository": "CRAN", - "Hash": "88d1b310583777edf01ccd1216fb0b2b", "Requirements": [ + "R", "R6", "curl", "jsonlite", "mime", "openssl" - ] + ], + "Hash": "ac107251d9d9fd72f0ca8049988f1d7f" + }, + "httr2": { + "Package": "httr2", + "Version": "0.2.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "cli", + "curl", + "glue", + "magrittr", + "openssl", + "rappdirs", + "rlang", + "withr" + ], + "Hash": "193bb297368afbbb42dc85784a46b36e" }, "hunspell": { "Package": "hunspell", "Version": "3.0.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "656219b6f3f605499d7cdbe208656639", "Requirements": [ + "R", "Rcpp", "digest" - ] + ], + "Hash": "656219b6f3f605499d7cdbe208656639" }, "inbodb": { "Package": "inbodb", @@ -829,311 +977,362 @@ "RemoteRepo": "inbodb", "RemoteRef": "main", "RemoteSha": "71e918c0c9ee2c48ee7f8da3872a67e68ab98c34", - "Hash": "c5cc605b1e86d1aafd22209b68793ed8", "Requirements": [ "DBI", "assertthat", "dbplyr", "dplyr", "glue", + "methods", "odbc", "rlang" - ] + ], + "Hash": "c5cc605b1e86d1aafd22209b68793ed8" }, "ini": { "Package": "ini", "Version": "0.3.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "6154ec2223172bce8162d4153cda21f7", - "Requirements": [] + "Hash": "6154ec2223172bce8162d4153cda21f7" }, "isoband": { "Package": "isoband", - "Version": "0.2.5", + "Version": "0.2.7", "Source": "Repository", "Repository": "CRAN", - "Hash": "7ab57a6de7f48a8dc84910d1eca42883", - "Requirements": [] + "Requirements": [ + "grid", + "utils" + ], + "Hash": "0080607b4a1a7b28979aecef976d8bc2" }, "jquerylib": { "Package": "jquerylib", "Version": "0.1.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "5aab57a3bd297eee1c1d862735972182", "Requirements": [ "htmltools" - ] + ], + "Hash": "5aab57a3bd297eee1c1d862735972182" }, "jsonlite": { "Package": "jsonlite", - "Version": "1.8.0", + "Version": "1.8.7", "Source": "Repository", "Repository": "CRAN", - "Hash": "d07e729b27b372429d42d24d503613a0", - "Requirements": [] + "Requirements": [ + "methods" + ], + "Hash": "266a20443ca13c65688b2116d5220f76" }, "knitr": { "Package": "knitr", - "Version": "1.39", + "Version": "1.43", "Source": "Repository", "Repository": "CRAN", - "Hash": "029ab7c4badd3cf8af69016b2ba27493", "Requirements": [ + "R", "evaluate", "highr", - "stringr", + "methods", + "tools", "xfun", "yaml" - ] + ], + "Hash": "9775eb076713f627c07ce41d8199d8f6" }, "labeling": { "Package": "labeling", - "Version": "0.4.2", + "Version": "0.4.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "3d5108641f47470611a32d0bdf357a72", - "Requirements": [] + "Requirements": [ + "graphics", + "stats" + ], + "Hash": "b64ec208ac5bc1852b285f665d6368b3" }, "later": { "Package": "later", - "Version": "1.3.0", + "Version": "1.3.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "7e7b457d7766bc47f2a5f21cc2984f8e", "Requirements": [ "Rcpp", "rlang" - ] + ], + "Hash": "40401c9cf2bc2259dfe83311c9384710" }, "lattice": { "Package": "lattice", - "Version": "0.20-45", + "Version": "0.21-8", "Source": "Repository", "Repository": "CRAN", - "Hash": "b64cdbb2b340437c4ee047a1f4c4377b", - "Requirements": [] + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "stats", + "utils" + ], + "Hash": "0b8a6d63c8770f02a8b5635f3c431e6b" }, "lazyeval": { "Package": "lazyeval", "Version": "0.2.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "d908914ae53b04d4c0c0fd72ecc35370", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "d908914ae53b04d4c0c0fd72ecc35370" }, "lifecycle": { "Package": "lifecycle", "Version": "1.0.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "001cecbeac1cff9301bdc3775ee46a86", "Requirements": [ + "R", "cli", "glue", "rlang" - ] + ], + "Hash": "001cecbeac1cff9301bdc3775ee46a86" }, "lintr": { "Package": "lintr", - "Version": "3.0.0", + "Version": "3.1.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "1214604176fb93fdcac030fc5d2177d9", "Requirements": [ + "R", "backports", "codetools", - "crayon", "cyclocomp", "digest", "glue", - "jsonlite", "knitr", "rex", + "stats", + "utils", "xml2", "xmlparsedata" - ] + ], + "Hash": "2b4b803af6017e93b67ddaf0eacba918" }, "lubridate": { "Package": "lubridate", - "Version": "1.8.0", + "Version": "1.9.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "2ff5eedb6ee38fb1b81205c73be1be5a", "Requirements": [ - "cpp11", - "generics" - ] + "R", + "generics", + "methods", + "timechange" + ], + "Hash": "e25f18436e3efd42c7c590a1c4c15390" }, "magrittr": { "Package": "magrittr", "Version": "2.0.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "7ce2733a9826b3aeb1775d56fd305472", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "7ce2733a9826b3aeb1775d56fd305472" }, "memoise": { "Package": "memoise", "Version": "2.0.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "e2817ccf4a065c5d9d7f2cfbe7c1d78c", "Requirements": [ "cachem", "rlang" - ] + ], + "Hash": "e2817ccf4a065c5d9d7f2cfbe7c1d78c" }, "mgcv": { "Package": "mgcv", - "Version": "1.8-40", + "Version": "1.9-0", "Source": "Repository", "Repository": "CRAN", - "Hash": "c6b2fdb18cf68ab613bd564363e1ba0d", "Requirements": [ "Matrix", - "nlme" - ] + "R", + "graphics", + "methods", + "nlme", + "splines", + "stats", + "utils" + ], + "Hash": "086028ca0460d0c368028d3bda58f31b" }, "mime": { "Package": "mime", "Version": "0.12", "Source": "Repository", "Repository": "CRAN", - "Hash": "18e9c28c1d3ca1560ce30658b22ce104", - "Requirements": [] + "Requirements": [ + "tools" + ], + "Hash": "18e9c28c1d3ca1560ce30658b22ce104" }, "miniUI": { "Package": "miniUI", "Version": "0.1.1.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "fec5f52652d60615fdb3957b3d74324a", "Requirements": [ "htmltools", - "shiny" - ] + "shiny", + "utils" + ], + "Hash": "fec5f52652d60615fdb3957b3d74324a" }, "munsell": { "Package": "munsell", "Version": "0.5.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "6dfe8bf774944bd5595785e3229d8771", "Requirements": [ - "colorspace" - ] + "colorspace", + "methods" + ], + "Hash": "6dfe8bf774944bd5595785e3229d8771" }, "nlme": { "Package": "nlme", - "Version": "3.1-157", + "Version": "3.1-163", "Source": "Repository", "Repository": "CRAN", - "Hash": "dbca60742be0c9eddc5205e5c7ca1f44", "Requirements": [ - "lattice" - ] + "R", + "graphics", + "lattice", + "stats", + "utils" + ], + "Hash": "8d1938040a05566f4f7a14af4feadd6b" }, "odbc": { "Package": "odbc", - "Version": "1.3.3", + "Version": "1.3.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "3f9efc29c48dca3aebf00b61a472d543", "Requirements": [ "DBI", + "R", "Rcpp", "bit64", "blob", "hms", + "methods", "rlang" - ] + ], + "Hash": "d42c4f464e14ce542718a17525265e05" }, "openssl": { "Package": "openssl", - "Version": "2.0.2", + "Version": "2.1.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "6d3bef2e305f55c705c674653c7d7d3d", "Requirements": [ "askpass" - ] + ], + "Hash": "273a6bb4a9844c296a459d2176673270" }, "pander": { "Package": "pander", "Version": "0.6.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "737924139a1e4fc96356ff377c754c35", "Requirements": [ + "R", "Rcpp", - "digest" - ] + "digest", + "grDevices", + "graphics", + "methods", + "stats", + "tools", + "utils" + ], + "Hash": "737924139a1e4fc96356ff377c754c35" }, "pillar": { "Package": "pillar", - "Version": "1.7.0", + "Version": "1.9.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "51dfc97e1b7069e9f7e6f83f3589c22e", "Requirements": [ "cli", - "crayon", - "ellipsis", "fansi", "glue", "lifecycle", "rlang", "utf8", + "utils", "vctrs" - ] + ], + "Hash": "15da5a8412f317beeee6175fbc76f4bb" }, "pingr": { "Package": "pingr", - "Version": "2.0.1", + "Version": "2.0.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "e293e79be42ffd336d938937fd3017fb", "Requirements": [ - "processx" - ] + "processx", + "utils" + ], + "Hash": "b762f8f7d305f7eb0bab96eb1a3c782a" }, "pkgbuild": { "Package": "pkgbuild", - "Version": "1.3.1", + "Version": "1.4.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "66d2adfed274daf81ccfe77d974c3b9b", "Requirements": [ + "R", "R6", "callr", "cli", "crayon", "desc", "prettyunits", - "rprojroot", - "withr" - ] + "processx", + "rprojroot" + ], + "Hash": "beb25b32a957a22a5c301a9e441190b3" }, "pkgconfig": { "Package": "pkgconfig", "Version": "2.0.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "01f28d4278f15c76cddbea05899c5d6f", - "Requirements": [] + "Requirements": [ + "utils" + ], + "Hash": "01f28d4278f15c76cddbea05899c5d6f" }, "pkgdown": { "Package": "pkgdown", - "Version": "2.0.4", + "Version": "2.0.7", "Source": "Repository", "Repository": "CRAN", - "Hash": "170f882396f07f525a4d017a8e9d2790", "Requirements": [ + "R", "bslib", "callr", - "crayon", + "cli", "desc", "digest", "downlit", @@ -1151,85 +1350,109 @@ "withr", "xml2", "yaml" - ] + ], + "Hash": "16fa15449c930bf3a7761d3c68f8abf9" }, "pkgload": { "Package": "pkgload", - "Version": "1.2.4", + "Version": "1.3.2.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "7533cd805940821bf23eaf3c8d4c1735", "Requirements": [ + "R", "cli", "crayon", "desc", + "fs", + "glue", + "methods", "rlang", "rprojroot", - "rstudioapi", + "utils", "withr" - ] + ], + "Hash": "a7f498a1b2a4a6816148e498509f6e1d" }, "polyclip": { "Package": "polyclip", - "Version": "1.10-0", + "Version": "1.10-4", "Source": "Repository", "Repository": "CRAN", - "Hash": "cb167f328b3ada4ec5cf67a7df4c900a", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "66bbfa06f78108ee967220643596c91e" }, "praise": { "Package": "praise", "Version": "1.0.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "a555924add98c99d2f411e37e7d25e9f", - "Requirements": [] + "Hash": "a555924add98c99d2f411e37e7d25e9f" }, "prettyunits": { "Package": "prettyunits", "Version": "1.1.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "95ef9167b75dde9d2ccc3c7528393e7e", - "Requirements": [] + "Hash": "95ef9167b75dde9d2ccc3c7528393e7e" }, "processx": { "Package": "processx", - "Version": "3.6.0", + "Version": "3.8.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "4acae60adac4791e8c8833d8494f270d", "Requirements": [ + "R", "R6", - "ps" - ] + "ps", + "utils" + ], + "Hash": "3efbd8ac1be0296a46c55387aeace0f3" + }, + "profvis": { + "Package": "profvis", + "Version": "0.3.8", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "htmlwidgets", + "purrr", + "rlang", + "stringr", + "vctrs" + ], + "Hash": "aa5a3864397ce6ae03458f98618395a1" }, "progress": { "Package": "progress", "Version": "1.2.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "14dc9f7a3c91ebb14ec5bb9208a07061", "Requirements": [ "R6", "crayon", "hms", "prettyunits" - ] + ], + "Hash": "14dc9f7a3c91ebb14ec5bb9208a07061" }, "promises": { "Package": "promises", - "Version": "1.2.0.1", + "Version": "1.2.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "4ab2c43adb4d4699cf3690acd378d75d", "Requirements": [ "R6", "Rcpp", + "fastmap", "later", "magrittr", - "rlang" - ] + "rlang", + "stats" + ], + "Hash": "0d8a15c9d000970ada1ab21405387dee" }, "protocolhelper": { "Package": "protocolhelper", @@ -1237,12 +1460,12 @@ "Source": "GitHub", "RemoteType": "github", "RemoteHost": "api.github.com", - "RemoteUsername": "inbo", "RemoteRepo": "protocolhelper", - "RemoteRef": "main", + "RemoteUsername": "inbo", + "RemoteRef": "HEAD", "RemoteSha": "8daa0928a03141eb2021f66ffc514a94ca3b5319", - "Hash": "479a06afa98a9edd45236361a07e50c3", "Requirements": [ + "R", "R6", "assertthat", "bookdown", @@ -1262,52 +1485,61 @@ "xml2", "yaml", "ymlthis" - ] + ], + "Hash": "b1c5c4a8c7f0580fd7637d8bb7f2e67b" }, "ps": { "Package": "ps", - "Version": "1.7.0", + "Version": "1.7.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "eef74b13f32cae6bb0d495e53317c44c", - "Requirements": [] + "Requirements": [ + "R", + "utils" + ], + "Hash": "709d852d33178db54b17c722e5b1e594" }, "purrr": { "Package": "purrr", - "Version": "0.3.4", + "Version": "1.0.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "97def703420c8ab10d8f0e6c72101e02", "Requirements": [ + "R", + "cli", + "lifecycle", "magrittr", - "rlang" - ] + "rlang", + "vctrs" + ], + "Hash": "1cba04a4e9414bdefc9dcaa99649a8dc" }, "ragg": { "Package": "ragg", - "Version": "1.2.2", + "Version": "1.2.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "14932bb6f2739c771ca4ceaba6b4248e", "Requirements": [ "systemfonts", "textshaping" - ] + ], + "Hash": "690bc058ea2b1b8a407d3cfe3dce3ef9" }, "rappdirs": { "Package": "rappdirs", "Version": "0.3.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "5e3c5dc0b071b21fa128676560dbe94d", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "5e3c5dc0b071b21fa128676560dbe94d" }, "rcmdcheck": { "Package": "rcmdcheck", "Version": "1.4.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "8f25ebe2ec38b1f2aef3b0d2ef76f6c4", "Requirements": [ "R6", "callr", @@ -1319,41 +1551,44 @@ "prettyunits", "rprojroot", "sessioninfo", + "utils", "withr", "xopen" - ] + ], + "Hash": "8f25ebe2ec38b1f2aef3b0d2ef76f6c4" }, "reactR": { "Package": "reactR", "Version": "0.4.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "75389c8091eb14ee21c6bc87a88b3809", "Requirements": [ "htmltools" - ] + ], + "Hash": "75389c8091eb14ee21c6bc87a88b3809" }, "reactable": { "Package": "reactable", - "Version": "0.4.3", + "Version": "0.4.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "4fec6f287e77503ceb822812722930d0", "Requirements": [ + "R", "digest", "htmltools", "htmlwidgets", "jsonlite", "reactR" - ] + ], + "Hash": "6069eb2a6597963eae0605c1875ff14c" }, "readr": { "Package": "readr", - "Version": "2.1.3", + "Version": "2.1.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "2dfbfc673ccb3de3d8836b4b3bd23d14", "Requirements": [ + "R", "R6", "cli", "clipr", @@ -1361,192 +1596,205 @@ "crayon", "hms", "lifecycle", + "methods", "rlang", "tibble", "tzdb", + "utils", "vroom" - ] + ], + "Hash": "b5047343b3825f37ad9d3b5d89aa1078" }, "readxl": { "Package": "readxl", - "Version": "1.4.1", + "Version": "1.4.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "5c1fbc365ac0a3fe7728ac79108b8e64", "Requirements": [ + "R", "cellranger", "cpp11", "progress", - "tibble" - ] + "tibble", + "utils" + ], + "Hash": "8cf9c239b96df1bbb133b74aef77ad0a" }, "rematch": { "Package": "rematch", - "Version": "1.0.1", + "Version": "2.0.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "c66b930d20bb6d858cd18e1cebcfae5c", - "Requirements": [] + "Hash": "cbff1b666c6fa6d21202f07e2318d4f1" }, "rematch2": { "Package": "rematch2", "Version": "2.1.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "76c9e04c712a05848ae7a23d2f170a40", "Requirements": [ "tibble" - ] + ], + "Hash": "76c9e04c712a05848ae7a23d2f170a40" }, "remotes": { "Package": "remotes", - "Version": "2.4.2", + "Version": "2.4.2.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "227045be9aee47e6dda9bb38ac870d67", - "Requirements": [] + "Requirements": [ + "R", + "methods", + "stats", + "tools", + "utils" + ], + "Hash": "63d15047eb239f95160112bcadc4fcb9" }, "renv": { "Package": "renv", - "Version": "0.16.0", + "Version": "1.0.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "c9e8442ab69bc21c9697ecf856c1e6c7", - "Requirements": [] + "Requirements": [ + "utils" + ], + "Hash": "4b22ac016fe54028b88d0c68badbd061" }, "rex": { "Package": "rex", "Version": "1.2.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "ae34cd56890607370665bee5bd17812f", "Requirements": [ "lazyeval" - ] + ], + "Hash": "ae34cd56890607370665bee5bd17812f" }, "rlang": { "Package": "rlang", - "Version": "1.0.6", + "Version": "1.1.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "4ed1f8336c8d52c3e750adcdc57228a7", - "Requirements": [] + "Requirements": [ + "R", + "utils" + ], + "Hash": "a85c767b55f0bf9b7ad16c6d7baee5bb" }, "rmarkdown": { "Package": "rmarkdown", - "Version": "2.20", + "Version": "2.24", "Source": "Repository", "Repository": "CRAN", - "Hash": "716fde5382293cc94a71f68c85b78d19", "Requirements": [ + "R", "bslib", "evaluate", + "fontawesome", "htmltools", "jquerylib", "jsonlite", "knitr", + "methods", "stringr", "tinytex", + "tools", + "utils", "xfun", "yaml" - ] - }, - "rorcid": { - "Package": "rorcid", - "Version": "0.7.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "c5df0d4de0046301afe0fd4a7137db1d", - "Requirements": [ - "crul", - "data.table", - "fauxpas", - "httr", - "jsonlite", - "tibble", - "xml2" - ] + ], + "Hash": "3854c37590717c08c32ec8542a2e0a35" }, "roxygen2": { "Package": "roxygen2", - "Version": "7.2.0", + "Version": "7.2.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "b390c1d54fcd977cda48588e6172daba", "Requirements": [ + "R", "R6", "brew", "cli", "commonmark", "cpp11", "desc", - "digest", "knitr", + "methods", "pkgload", "purrr", "rlang", "stringi", "stringr", + "utils", "withr", "xml2" - ] + ], + "Hash": "7b153c746193b143c14baa072bae4e27" }, "rpart": { "Package": "rpart", - "Version": "4.1.16", + "Version": "4.1.19", "Source": "Repository", "Repository": "CRAN", - "Hash": "ea3ca1d9473daabb3cd0f1b4f974c1ed", - "Requirements": [] + "Requirements": [ + "R", + "grDevices", + "graphics", + "stats" + ], + "Hash": "b3c892a81783376cc2204af0f5805a80" }, "rprojroot": { "Package": "rprojroot", "Version": "2.0.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "1de7ab598047a87bba48434ba35d497d", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "1de7ab598047a87bba48434ba35d497d" }, "rstudioapi": { "Package": "rstudioapi", - "Version": "0.13", + "Version": "0.15.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "06c85365a03fdaf699966cc1d3cf53ea", - "Requirements": [] + "Hash": "5564500e25cffad9e22244ced1379887" }, "rversions": { "Package": "rversions", - "Version": "2.1.1", + "Version": "2.1.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "f88fab00907b312f8b23ec13e2d437cb", "Requirements": [ "curl", + "utils", "xml2" - ] + ], + "Hash": "a9881dfed103e83f9de151dc17002cd1" }, "sass": { "Package": "sass", - "Version": "0.4.1", + "Version": "0.4.7", "Source": "Repository", "Repository": "CRAN", - "Hash": "f37c0028d720bab3c513fd65d28c7234", "Requirements": [ "R6", "fs", "htmltools", "rappdirs", "rlang" - ] + ], + "Hash": "6bd4d33b50ff927191ec9acbf52fd056" }, "scales": { "Package": "scales", - "Version": "1.2.0", + "Version": "1.2.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "6e8750cdd13477aa440d453da93d5cac", "Requirements": [ + "R", "R6", "RColorBrewer", "farver", @@ -1555,25 +1803,29 @@ "munsell", "rlang", "viridisLite" - ] + ], + "Hash": "906cb23d2f1c5680b8ce439b44c6fa63" }, "sessioninfo": { "Package": "sessioninfo", "Version": "1.2.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "3f9796a8d0a0e8c6eb49a4b029359d1f", "Requirements": [ - "cli" - ] + "R", + "cli", + "tools", + "utils" + ], + "Hash": "3f9796a8d0a0e8c6eb49a4b029359d1f" }, "shiny": { "Package": "shiny", - "Version": "1.7.1", + "Version": "1.7.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "00344c227c7bd0ab5d78052c5d736c44", "Requirements": [ + "R", "R6", "bslib", "cachem", @@ -1583,220 +1835,292 @@ "fastmap", "fontawesome", "glue", + "grDevices", "htmltools", "httpuv", "jsonlite", "later", "lifecycle", + "methods", "mime", "promises", "rlang", "sourcetools", + "tools", + "utils", "withr", "xtable" - ] - }, - "shinyBS": { - "Package": "shinyBS", - "Version": "0.61.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "e44255f073ecdc26ba6bc2ce3fcf174d", - "Requirements": [ - "htmltools", - "shiny" - ] + ], + "Hash": "438b99792adbe82a8329ad8697d45afe" }, "slickR": { "Package": "slickR", "Version": "0.6.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "8359234c9363ecf4c39be994e28f7db6", "Requirements": [ + "R", "base64enc", "checkmate", "htmltools", "htmlwidgets", "lifecycle", + "stats", + "tools", + "utils", "xml2" - ] + ], + "Hash": "8359234c9363ecf4c39be994e28f7db6" }, "sourcetools": { "Package": "sourcetools", - "Version": "0.1.7", + "Version": "0.1.7-1", "Source": "Repository", "Repository": "CRAN", - "Hash": "947e4e02a79effa5d512473e10f41797", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "5f5a7629f956619d519205ec475fe647" }, "spatstat": { "Package": "spatstat", - "Version": "2.3-4", + "Version": "3.0-6", "Source": "Repository", "Repository": "CRAN", - "Hash": "f52cbe8bfe269cc6c6615531ce430e9b", "Requirements": [ - "spatstat.core", + "R", "spatstat.data", + "spatstat.explore", "spatstat.geom", "spatstat.linnet", + "spatstat.model", "spatstat.random", + "spatstat.utils", + "utils" + ], + "Hash": "916a027410984268bc0a97beddb39ed0" + }, + "spatstat.data": { + "Package": "spatstat.data", + "Version": "3.0-1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Matrix", + "R", "spatstat.utils" - ] + ], + "Hash": "8a96bb2ac0b8e9a92823e0850ae73610" }, - "spatstat.core": { - "Package": "spatstat.core", - "Version": "2.4-4", + "spatstat.explore": { + "Package": "spatstat.explore", + "Version": "3.2-1", "Source": "Repository", "Repository": "CRAN", - "Hash": "545286d6a69ff647be18aab77306fa54", "Requirements": [ "Matrix", + "R", "abind", "goftest", - "mgcv", + "grDevices", + "graphics", + "methods", "nlme", - "rpart", "spatstat.data", "spatstat.geom", "spatstat.random", "spatstat.sparse", "spatstat.utils", - "tensor" - ] - }, - "spatstat.data": { - "Package": "spatstat.data", - "Version": "2.2-0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "5b4f6c12d1a222680579070a045786bb", - "Requirements": [ - "Matrix", - "spatstat.utils" - ] + "stats", + "utils" + ], + "Hash": "f9b98227d01e96fa376993c3c8a0a66a" }, "spatstat.geom": { "Package": "spatstat.geom", - "Version": "2.4-0", + "Version": "3.2-5", "Source": "Repository", "Repository": "CRAN", - "Hash": "33f4612dc27fa9228cac4713bb2edfd7", "Requirements": [ + "R", "deldir", + "grDevices", + "graphics", + "methods", "polyclip", "spatstat.data", - "spatstat.utils" - ] + "spatstat.utils", + "stats", + "utils" + ], + "Hash": "83fbece32a797f0965ad4953aaac7533" }, "spatstat.linnet": { "Package": "spatstat.linnet", - "Version": "2.3-2", + "Version": "3.1-1", "Source": "Repository", "Repository": "CRAN", - "Hash": "d1f816d9a1ca219ac58f4b8ca351d991", "Requirements": [ "Matrix", - "spatstat.core", + "R", + "grDevices", + "graphics", + "methods", "spatstat.data", + "spatstat.explore", "spatstat.geom", + "spatstat.model", "spatstat.random", "spatstat.sparse", - "spatstat.utils" - ] + "spatstat.utils", + "stats", + "utils" + ], + "Hash": "05a0aebd0839ae90ffd2bd148784a971" + }, + "spatstat.model": { + "Package": "spatstat.model", + "Version": "3.2-4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Matrix", + "R", + "abind", + "goftest", + "grDevices", + "graphics", + "methods", + "mgcv", + "nlme", + "rpart", + "spatstat.data", + "spatstat.explore", + "spatstat.geom", + "spatstat.random", + "spatstat.sparse", + "spatstat.utils", + "stats", + "tensor", + "utils" + ], + "Hash": "9d2d494085d51f355546d5bd07f9572e" }, "spatstat.random": { "Package": "spatstat.random", - "Version": "2.2-0", + "Version": "3.1-5", "Source": "Repository", "Repository": "CRAN", - "Hash": "c08d6e00855f11e04ac863dce8d6779e", "Requirements": [ + "R", + "grDevices", + "methods", "spatstat.data", "spatstat.geom", - "spatstat.utils" - ] + "spatstat.utils", + "stats", + "utils" + ], + "Hash": "94feb301acc779a9d41b89aac9c2b78d" }, "spatstat.sparse": { "Package": "spatstat.sparse", - "Version": "2.1-1", + "Version": "3.0-2", "Source": "Repository", "Repository": "CRAN", - "Hash": "cde91679dea4a2fb53833a86f32c94f5", "Requirements": [ "Matrix", + "R", "abind", + "methods", "spatstat.utils", - "tensor" - ] + "stats", + "tensor", + "utils" + ], + "Hash": "82a7d5a77f165b08dae877ef98dc6fcc" }, "spatstat.utils": { "Package": "spatstat.utils", - "Version": "2.3-1", + "Version": "3.0-3", "Source": "Repository", "Repository": "CRAN", - "Hash": "cd59e2bcc05a5e34c00fe4760f118960", - "Requirements": [] + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "stats", + "utils" + ], + "Hash": "8f9764a85e3ca99604625f7ab6012418" }, "stringi": { "Package": "stringi", - "Version": "1.7.6", + "Version": "1.7.12", "Source": "Repository", "Repository": "CRAN", - "Hash": "bba431031d30789535745a9627ac9271", - "Requirements": [] + "Requirements": [ + "R", + "stats", + "tools", + "utils" + ], + "Hash": "ca8bd84263c77310739d2cf64d84d7c9" }, "stringr": { "Package": "stringr", - "Version": "1.4.0", + "Version": "1.5.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "0759e6b6c0957edb1311028a49a35e76", "Requirements": [ + "R", + "cli", "glue", + "lifecycle", "magrittr", - "stringi" - ] + "rlang", + "stringi", + "vctrs" + ], + "Hash": "671a4d384ae9d32fc47a14e98bfa3dc8" }, "sys": { "Package": "sys", - "Version": "3.4", + "Version": "3.4.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "b227d13e29222b4574486cfcbde077fa", - "Requirements": [] + "Hash": "3a1be13d68d47a8cd0bfd74739ca1555" }, "systemfonts": { "Package": "systemfonts", "Version": "1.0.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "90b28393209827327de889f49935140a", "Requirements": [ + "R", "cpp11" - ] + ], + "Hash": "90b28393209827327de889f49935140a" }, "tensor": { "Package": "tensor", "Version": "1.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "25cfab6cf405c15bccf7e69ec39df090", - "Requirements": [] + "Hash": "25cfab6cf405c15bccf7e69ec39df090" }, "testthat": { "Package": "testthat", - "Version": "3.1.4", + "Version": "3.1.10", "Source": "Repository", "Repository": "CRAN", - "Hash": "f76c2a02d0fdc24aa7a47ea34261a6e3", "Requirements": [ + "R", "R6", "brio", "callr", "cli", - "crayon", "desc", "digest", "ellipsis", @@ -1804,105 +2128,164 @@ "jsonlite", "lifecycle", "magrittr", + "methods", "pkgload", "praise", "processx", "ps", "rlang", + "utils", "waldo", "withr" - ] + ], + "Hash": "6f403dc49295610a3a67ea1a9ca64346" }, "textshaping": { "Package": "textshaping", "Version": "0.3.6", "Source": "Repository", "Repository": "CRAN", - "Hash": "1ab6223d3670fac7143202cb6a2d43d5", "Requirements": [ + "R", "cpp11", "systemfonts" - ] + ], + "Hash": "1ab6223d3670fac7143202cb6a2d43d5" }, "tibble": { "Package": "tibble", - "Version": "3.1.7", + "Version": "3.2.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "08415af406e3dd75049afef9552e7355", "Requirements": [ - "ellipsis", + "R", "fansi", "lifecycle", "magrittr", + "methods", "pillar", "pkgconfig", "rlang", + "utils", "vctrs" - ] + ], + "Hash": "a84e2cc86d07289b3b6f5069df7a004c" }, - "tidyselect": { - "Package": "tidyselect", - "Version": "1.1.2", + "tidyr": { + "Package": "tidyr", + "Version": "1.3.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "17f6da8cfd7002760a859915ce7eef8f", "Requirements": [ - "ellipsis", + "R", + "cli", + "cpp11", + "dplyr", "glue", + "lifecycle", + "magrittr", "purrr", "rlang", + "stringr", + "tibble", + "tidyselect", + "utils", "vctrs" - ] + ], + "Hash": "e47debdc7ce599b070c8e78e8ac0cfcf" + }, + "tidyselect": { + "Package": "tidyselect", + "Version": "1.2.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "rlang", + "vctrs", + "withr" + ], + "Hash": "79540e5fcd9e0435af547d885f184fd5" + }, + "timechange": { + "Package": "timechange", + "Version": "0.2.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cpp11" + ], + "Hash": "8548b44f79a35ba1791308b61e6012d7" }, "tinytex": { "Package": "tinytex", - "Version": "0.39", + "Version": "0.46", "Source": "Repository", "Repository": "CRAN", - "Hash": "29f67ab15405b390b90e56ff22198ead", "Requirements": [ "xfun" - ] + ], + "Hash": "0c41a73214d982f539c56a7773c7afa5" }, "triebeard": { "Package": "triebeard", - "Version": "0.3.0", + "Version": "0.4.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "847a9d113b78baca4a9a8639609ea228", "Requirements": [ "Rcpp" - ] + ], + "Hash": "642507a148b0dd9b5620177e0a044413" }, "tzdb": { "Package": "tzdb", - "Version": "0.3.0", + "Version": "0.4.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "b2e1cbce7c903eaf23ec05c58e59fb5e", "Requirements": [ + "R", "cpp11" - ] + ], + "Hash": "f561504ec2897f4d46f0c7657e488ae1" + }, + "urlchecker": { + "Package": "urlchecker", + "Version": "1.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "curl", + "tools", + "xml2" + ], + "Hash": "409328b8e1253c8d729a7836fe7f7a16" }, "urltools": { "Package": "urltools", "Version": "1.7.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "e86a704261a105f4703f653e05defa3e", "Requirements": [ + "R", "Rcpp", + "methods", "triebeard" - ] + ], + "Hash": "e86a704261a105f4703f653e05defa3e" }, "usethis": { "Package": "usethis", - "Version": "2.1.6", + "Version": "2.2.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "a67a22c201832b12c036cc059f1d137d", "Requirements": [ + "R", "cli", "clipr", "crayon", @@ -1919,46 +2302,55 @@ "rlang", "rprojroot", "rstudioapi", + "stats", + "utils", "whisker", "withr", "yaml" - ] + ], + "Hash": "60e51f0b94d0324dc19e44110098fa9f" }, "utf8": { "Package": "utf8", - "Version": "1.2.2", + "Version": "1.2.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "c9c462b759a5cc844ae25b5942654d13", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "1fe17157424bb09c48a8b3b550c753bc" }, "vctrs": { "Package": "vctrs", - "Version": "0.4.1", + "Version": "0.6.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "8b54f22e2a58c4f275479c92ce041a57", "Requirements": [ + "R", "cli", "glue", + "lifecycle", "rlang" - ] + ], + "Hash": "d0ef2856b83dc33ea6e255caf6229ee2" }, "viridisLite": { "Package": "viridisLite", - "Version": "0.4.0", + "Version": "0.4.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "55e157e2aa88161bdb0754218470d204", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "c826c7c4241b6fc89ff55aaea3fa7491" }, "vroom": { "Package": "vroom", - "Version": "1.6.1", + "Version": "1.6.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "7015a74373b83ffaef64023f4a0f5033", "Requirements": [ + "R", "bit64", "cli", "cpp11", @@ -1966,140 +2358,158 @@ "glue", "hms", "lifecycle", + "methods", "progress", "rlang", + "stats", "tibble", "tidyselect", "tzdb", "vctrs", "withr" - ] + ], + "Hash": "8318e64ffb3a70e652494017ec455561" }, "waldo": { "Package": "waldo", - "Version": "0.4.0", + "Version": "0.5.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "035fba89d0c86e2113120f93301b98ad", "Requirements": [ "cli", "diffobj", "fansi", "glue", + "methods", "rematch2", "rlang", "tibble" - ] + ], + "Hash": "2c993415154cdb94649d99ae138ff5e5" }, "whisker": { "Package": "whisker", - "Version": "0.4", + "Version": "0.4.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "ca970b96d894e90397ed20637a0c1bbe", - "Requirements": [] + "Hash": "c6abfa47a46d281a7d5159d0a8891e88" }, "whoami": { "Package": "whoami", "Version": "1.3.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "ef0f4d9b8f2cc2ebeccae1d725b8a023", "Requirements": [ "httr", - "jsonlite" - ] + "jsonlite", + "utils" + ], + "Hash": "ef0f4d9b8f2cc2ebeccae1d725b8a023" }, "withr": { "Package": "withr", "Version": "2.5.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "c0e49a9760983e81e55cdd9be92e7182", - "Requirements": [] + "Requirements": [ + "R", + "grDevices", + "graphics", + "stats" + ], + "Hash": "c0e49a9760983e81e55cdd9be92e7182" }, "xfun": { "Package": "xfun", - "Version": "0.36", + "Version": "0.40", "Source": "Repository", "Repository": "CRAN", - "Hash": "f5baec54606751aa53ac9c0e05848ed6", - "Requirements": [] + "Requirements": [ + "stats", + "tools" + ], + "Hash": "be07d23211245fc7d4209f54c4e4ffc8" }, "xml2": { "Package": "xml2", - "Version": "1.3.3", + "Version": "1.3.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "40682ed6a969ea5abfd351eb67833adc", - "Requirements": [] + "Requirements": [ + "R", + "methods" + ], + "Hash": "6c40e5cfcc6aefd88110666e18c31f40" }, "xmlparsedata": { "Package": "xmlparsedata", "Version": "1.0.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "45e4bf3c46476896e821fc0a408fb4fc", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "45e4bf3c46476896e821fc0a408fb4fc" }, "xopen": { "Package": "xopen", "Version": "1.0.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "6c85f015dee9cc7710ddd20f86881f58", "Requirements": [ + "R", "processx" - ] + ], + "Hash": "6c85f015dee9cc7710ddd20f86881f58" }, "xtable": { "Package": "xtable", "Version": "1.8-4", "Source": "Repository", "Repository": "CRAN", - "Hash": "b8acdf8af494d9ec19ccb2481a9b11c2", - "Requirements": [] + "Requirements": [ + "R", + "stats", + "utils" + ], + "Hash": "b8acdf8af494d9ec19ccb2481a9b11c2" }, "yaml": { "Package": "yaml", - "Version": "2.3.5", + "Version": "2.3.7", "Source": "Repository", "Repository": "CRAN", - "Hash": "458bb38374d73bf83b1bb85e353da200", - "Requirements": [] + "Hash": "0d0056cc5383fbc240ccd0cb584bf436" }, "ymlthis": { "Package": "ymlthis", - "Version": "0.1.5", + "Version": "0.1.7", "Source": "Repository", "Repository": "CRAN", - "Hash": "c0819fa9f5709853df2d3bf846b1b79f", "Requirements": [ + "R", "crayon", "fs", "glue", "magrittr", - "miniUI", "purrr", "rlang", "rmarkdown", "rstudioapi", - "shiny", - "shinyBS", "stringr", "usethis", "whoami", "withr", "yaml" - ] + ], + "Hash": "e9a88a6c05373f3008c42d1009ee6d28" }, "zip": { "Package": "zip", - "Version": "2.2.0", + "Version": "2.3.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "c7eef2996ac270a18c2715c997a727c5", - "Requirements": [] + "Hash": "d98c94dacb7e0efcf83b0a133a705504" } } } diff --git a/renv/activate.R b/renv/activate.R index 019b5a66..2969c732 100644 --- a/renv/activate.R +++ b/renv/activate.R @@ -2,11 +2,27 @@ local({ # the requested version of renv - version <- "0.16.0" + version <- "1.0.2" + attr(version, "sha") <- NULL # the project directory project <- getwd() + # use start-up diagnostics if enabled + diagnostics <- Sys.getenv("RENV_STARTUP_DIAGNOSTICS", unset = "FALSE") + if (diagnostics) { + start <- Sys.time() + profile <- tempfile("renv-startup-", fileext = ".Rprof") + utils::Rprof(profile) + on.exit({ + utils::Rprof(NULL) + elapsed <- signif(difftime(Sys.time(), start, units = "auto"), digits = 2L) + writeLines(sprintf("- renv took %s to run the autoloader.", format(elapsed))) + writeLines(sprintf("- Profile: %s", profile)) + print(utils::summaryRprof(profile)) + }, add = TRUE) + } + # figure out whether the autoloader is enabled enabled <- local({ @@ -60,21 +76,75 @@ local({ # load bootstrap tools `%||%` <- function(x, y) { - if (is.environment(x) || length(x)) x else y + if (is.null(x)) y else x + } + + catf <- function(fmt, ..., appendLF = TRUE) { + + quiet <- getOption("renv.bootstrap.quiet", default = FALSE) + if (quiet) + return(invisible()) + + msg <- sprintf(fmt, ...) + cat(msg, file = stdout(), sep = if (appendLF) "\n" else "") + + invisible(msg) + + } + + header <- function(label, + ..., + prefix = "#", + suffix = "-", + n = min(getOption("width"), 78)) + { + label <- sprintf(label, ...) + n <- max(n - nchar(label) - nchar(prefix) - 2L, 8L) + if (n <= 0) + return(paste(prefix, label)) + + tail <- paste(rep.int(suffix, n), collapse = "") + paste0(prefix, " ", label, " ", tail) + + } + + startswith <- function(string, prefix) { + substring(string, 1, nchar(prefix)) == prefix } bootstrap <- function(version, library) { + friendly <- renv_bootstrap_version_friendly(version) + section <- header(sprintf("Bootstrapping renv %s", friendly)) + catf(section) + # attempt to download renv - tarball <- tryCatch(renv_bootstrap_download(version), error = identity) - if (inherits(tarball, "error")) - stop("failed to download renv ", version) + catf("- Downloading renv ... ", appendLF = FALSE) + withCallingHandlers( + tarball <- renv_bootstrap_download(version), + error = function(err) { + catf("FAILED") + stop("failed to download:\n", conditionMessage(err)) + } + ) + catf("OK") + on.exit(unlink(tarball), add = TRUE) # now attempt to install - status <- tryCatch(renv_bootstrap_install(version, tarball, library), error = identity) - if (inherits(status, "error")) - stop("failed to install renv ", version) + catf("- Installing renv ... ", appendLF = FALSE) + withCallingHandlers( + status <- renv_bootstrap_install(version, tarball, library), + error = function(err) { + catf("FAILED") + stop("failed to install:\n", conditionMessage(err)) + } + ) + catf("OK") + + # add empty line to break up bootstrapping from normal output + catf("") + return(invisible()) } renv_bootstrap_tests_running <- function() { @@ -83,28 +153,32 @@ local({ renv_bootstrap_repos <- function() { + # get CRAN repository + cran <- getOption("renv.repos.cran", "https://cloud.r-project.org") + # check for repos override repos <- Sys.getenv("RENV_CONFIG_REPOS_OVERRIDE", unset = NA) - if (!is.na(repos)) + if (!is.na(repos)) { + + # check for RSPM; if set, use a fallback repository for renv + rspm <- Sys.getenv("RSPM", unset = NA) + if (identical(rspm, repos)) + repos <- c(RSPM = rspm, CRAN = cran) + return(repos) + } + # check for lockfile repositories repos <- tryCatch(renv_bootstrap_repos_lockfile(), error = identity) if (!inherits(repos, "error") && length(repos)) return(repos) - # if we're testing, re-use the test repositories - if (renv_bootstrap_tests_running()) - return(getOption("renv.tests.repos")) - # retrieve current repos repos <- getOption("repos") # ensure @CRAN@ entries are resolved - repos[repos == "@CRAN@"] <- getOption( - "renv.repos.cran", - "https://cloud.r-project.org" - ) + repos[repos == "@CRAN@"] <- cran # add in renv.bootstrap.repos if set default <- c(FALLBACK = "https://cloud.r-project.org") @@ -143,33 +217,34 @@ local({ renv_bootstrap_download <- function(version) { - # if the renv version number has 4 components, assume it must - # be retrieved via github - nv <- numeric_version(version) - components <- unclass(nv)[[1]] - - # if this appears to be a development version of 'renv', we'll - # try to restore from github - dev <- length(components) == 4L - - # begin collecting different methods for finding renv - methods <- c( - renv_bootstrap_download_tarball, - if (dev) - renv_bootstrap_download_github - else c( - renv_bootstrap_download_cran_latest, - renv_bootstrap_download_cran_archive + sha <- attr(version, "sha", exact = TRUE) + + methods <- if (!is.null(sha)) { + + # attempting to bootstrap a development version of renv + c( + function() renv_bootstrap_download_tarball(sha), + function() renv_bootstrap_download_github(sha) ) - ) + + } else { + + # attempting to bootstrap a release version of renv + c( + function() renv_bootstrap_download_tarball(version), + function() renv_bootstrap_download_cran_latest(version), + function() renv_bootstrap_download_cran_archive(version) + ) + + } for (method in methods) { - path <- tryCatch(method(version), error = identity) + path <- tryCatch(method(), error = identity) if (is.character(path) && file.exists(path)) return(path) } - stop("failed to download renv ", version) + stop("All download methods failed") } @@ -233,8 +308,6 @@ local({ type <- spec$type repos <- spec$repos - message("* Downloading renv ", version, " ... ", appendLF = FALSE) - baseurl <- utils::contrib.url(repos = repos, type = type) ext <- if (identical(type, "source")) ".tar.gz" @@ -251,13 +324,10 @@ local({ condition = identity ) - if (inherits(status, "condition")) { - message("FAILED") + if (inherits(status, "condition")) return(FALSE) - } # report success and return - message("OK (downloaded ", type, ")") destfile } @@ -314,8 +384,6 @@ local({ urls <- file.path(repos, "src/contrib/Archive/renv", name) destfile <- file.path(tempdir(), name) - message("* Downloading renv ", version, " ... ", appendLF = FALSE) - for (url in urls) { status <- tryCatch( @@ -323,14 +391,11 @@ local({ condition = identity ) - if (identical(status, 0L)) { - message("OK") + if (identical(status, 0L)) return(destfile) - } } - message("FAILED") return(FALSE) } @@ -344,8 +409,7 @@ local({ return() # allow directories - info <- file.info(tarball, extra_cols = FALSE) - if (identical(info$isdir, TRUE)) { + if (dir.exists(tarball)) { name <- sprintf("renv_%s.tar.gz", version) tarball <- file.path(tarball, name) } @@ -354,7 +418,7 @@ local({ if (!file.exists(tarball)) { # let the user know we weren't able to honour their request - fmt <- "* RENV_BOOTSTRAP_TARBALL is set (%s) but does not exist." + fmt <- "- RENV_BOOTSTRAP_TARBALL is set (%s) but does not exist." msg <- sprintf(fmt, tarball) warning(msg) @@ -363,10 +427,7 @@ local({ } - fmt <- "* Bootstrapping with tarball at path '%s'." - msg <- sprintf(fmt, tarball) - message(msg) - + catf("- Using local tarball '%s'.", tarball) tarball } @@ -393,8 +454,6 @@ local({ on.exit(do.call(base::options, saved), add = TRUE) } - message("* Downloading renv ", version, " from GitHub ... ", appendLF = FALSE) - url <- file.path("https://api.github.com/repos/rstudio/renv/tarball", version) name <- sprintf("renv_%s.tar.gz", version) destfile <- file.path(tempdir(), name) @@ -404,26 +463,105 @@ local({ condition = identity ) - if (!identical(status, 0L)) { - message("FAILED") + if (!identical(status, 0L)) return(FALSE) - } - message("OK") + renv_bootstrap_download_augment(destfile) + return(destfile) } + # Add Sha to DESCRIPTION. This is stop gap until #890, after which we + # can use renv::install() to fully capture metadata. + renv_bootstrap_download_augment <- function(destfile) { + sha <- renv_bootstrap_git_extract_sha1_tar(destfile) + if (is.null(sha)) { + return() + } + + # Untar + tempdir <- tempfile("renv-github-") + on.exit(unlink(tempdir, recursive = TRUE), add = TRUE) + untar(destfile, exdir = tempdir) + pkgdir <- dir(tempdir, full.names = TRUE)[[1]] + + # Modify description + desc_path <- file.path(pkgdir, "DESCRIPTION") + desc_lines <- readLines(desc_path) + remotes_fields <- c( + "RemoteType: github", + "RemoteHost: api.github.com", + "RemoteRepo: renv", + "RemoteUsername: rstudio", + "RemotePkgRef: rstudio/renv", + paste("RemoteRef: ", sha), + paste("RemoteSha: ", sha) + ) + writeLines(c(desc_lines[desc_lines != ""], remotes_fields), con = desc_path) + + # Re-tar + local({ + old <- setwd(tempdir) + on.exit(setwd(old), add = TRUE) + + tar(destfile, compression = "gzip") + }) + invisible() + } + + # Extract the commit hash from a git archive. Git archives include the SHA1 + # hash as the comment field of the tarball pax extended header + # (see https://www.kernel.org/pub/software/scm/git/docs/git-archive.html) + # For GitHub archives this should be the first header after the default one + # (512 byte) header. + renv_bootstrap_git_extract_sha1_tar <- function(bundle) { + + # open the bundle for reading + # We use gzcon for everything because (from ?gzcon) + # > Reading from a connection which does not supply a 'gzip' magic + # > header is equivalent to reading from the original connection + conn <- gzcon(file(bundle, open = "rb", raw = TRUE)) + on.exit(close(conn)) + + # The default pax header is 512 bytes long and the first pax extended header + # with the comment should be 51 bytes long + # `52 comment=` (11 chars) + 40 byte SHA1 hash + len <- 0x200 + 0x33 + res <- rawToChar(readBin(conn, "raw", n = len)[0x201:len]) + + if (grepl("^52 comment=", res)) { + sub("52 comment=", "", res) + } else { + NULL + } + } + renv_bootstrap_install <- function(version, tarball, library) { # attempt to install it into project library - message("* Installing renv ", version, " ... ", appendLF = FALSE) dir.create(library, showWarnings = FALSE, recursive = TRUE) + output <- renv_bootstrap_install_impl(library, tarball) + + # check for successful install + status <- attr(output, "status") + if (is.null(status) || identical(status, 0L)) + return(status) + + # an error occurred; report it + header <- "installation of renv failed" + lines <- paste(rep.int("=", nchar(header)), collapse = "") + text <- paste(c(header, lines, output), collapse = "\n") + stop(text) + + } + + renv_bootstrap_install_impl <- function(library, tarball) { # invoke using system2 so we can capture and report output bin <- R.home("bin") exe <- if (Sys.info()[["sysname"]] == "Windows") "R.exe" else "R" - r <- file.path(bin, exe) + R <- file.path(bin, exe) args <- c( "--vanilla", "CMD", "INSTALL", "--no-multiarch", @@ -431,19 +569,7 @@ local({ shQuote(path.expand(tarball)) ) - output <- system2(r, args, stdout = TRUE, stderr = TRUE) - message("Done!") - - # check for successful install - status <- attr(output, "status") - if (is.numeric(status) && !identical(status, 0L)) { - header <- "Error installing renv:" - lines <- paste(rep.int("=", nchar(header)), collapse = "") - text <- c(header, lines, output) - writeLines(text, con = stderr()) - } - - status + system2(R, args, stdout = TRUE, stderr = TRUE) } @@ -653,34 +779,62 @@ local({ } - renv_bootstrap_validate_version <- function(version) { + renv_bootstrap_validate_version <- function(version, description = NULL) { - loadedversion <- utils::packageDescription("renv", fields = "Version") - if (version == loadedversion) - return(TRUE) + # resolve description file + # + # avoid passing lib.loc to `packageDescription()` below, since R will + # use the loaded version of the package by default anyhow. note that + # this function should only be called after 'renv' is loaded + # https://github.com/rstudio/renv/issues/1625 + description <- description %||% packageDescription("renv") - # assume four-component versions are from GitHub; three-component - # versions are from CRAN - components <- strsplit(loadedversion, "[.-]")[[1]] - remote <- if (length(components) == 4L) - paste("rstudio/renv", loadedversion, sep = "@") + # check whether requested version 'version' matches loaded version of renv + sha <- attr(version, "sha", exact = TRUE) + valid <- if (!is.null(sha)) + renv_bootstrap_validate_version_dev(sha, description) else - paste("renv", loadedversion, sep = "@") + renv_bootstrap_validate_version_release(version, description) + + if (valid) + return(TRUE) + + # the loaded version of renv doesn't match the requested version; + # give the user instructions on how to proceed + remote <- if (!is.null(description[["RemoteSha"]])) { + paste("rstudio/renv", description[["RemoteSha"]], sep = "@") + } else { + paste("renv", description[["Version"]], sep = "@") + } + + # display both loaded version + sha if available + friendly <- renv_bootstrap_version_friendly( + version = description[["Version"]], + sha = description[["RemoteSha"]] + ) fmt <- paste( "renv %1$s was loaded from project library, but this project is configured to use renv %2$s.", - "Use `renv::record(\"%3$s\")` to record renv %1$s in the lockfile.", - "Use `renv::restore(packages = \"renv\")` to install renv %2$s into the project library.", + "- Use `renv::record(\"%3$s\")` to record renv %1$s in the lockfile.", + "- Use `renv::restore(packages = \"renv\")` to install renv %2$s into the project library.", sep = "\n" ) - - msg <- sprintf(fmt, loadedversion, version, remote) - warning(msg, call. = FALSE) + catf(fmt, friendly, renv_bootstrap_version_friendly(version), remote) FALSE } + renv_bootstrap_validate_version_dev <- function(version, description) { + expected <- description[["RemoteSha"]] + is.character(expected) && startswith(expected, version) + } + + renv_bootstrap_validate_version_release <- function(version, description) { + expected <- description[["Version"]] + is.character(expected) && identical(expected, version) + } + renv_bootstrap_hash_text <- function(text) { hashfile <- tempfile("renv-hash-") @@ -700,6 +854,12 @@ local({ # warn if the version of renv loaded does not match renv_bootstrap_validate_version(version) + # execute renv load hooks, if any + hooks <- getHook("renv::autoload") + for (hook in hooks) + if (is.function(hook)) + tryCatch(hook(), error = warnify) + # load the project renv::load(project) @@ -839,14 +999,79 @@ local({ } + renv_bootstrap_version_friendly <- function(version, shafmt = NULL, sha = NULL) { + sha <- sha %||% attr(version, "sha", exact = TRUE) + parts <- c(version, sprintf(shafmt %||% " [sha: %s]", substring(sha, 1L, 7L))) + paste(parts, collapse = "") + } + + renv_bootstrap_exec <- function(project, libpath, version) { + if (!renv_bootstrap_load(project, libpath, version)) + renv_bootstrap_run(version, libpath) + } + + renv_bootstrap_run <- function(version, libpath) { + + # perform bootstrap + bootstrap(version, libpath) + + # exit early if we're just testing bootstrap + if (!is.na(Sys.getenv("RENV_BOOTSTRAP_INSTALL_ONLY", unset = NA))) + return(TRUE) + + # try again to load + if (requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) { + return(renv::load(project = getwd())) + } + + # failed to download or load renv; warn the user + msg <- c( + "Failed to find an renv installation: the project will not be loaded.", + "Use `renv::activate()` to re-initialize the project." + ) + + warning(paste(msg, collapse = "\n"), call. = FALSE) + + } + + + renv_bootstrap_in_rstudio <- function() { + commandArgs()[[1]] == "RStudio" + } + + # Used to work around buglet in RStudio if hook uses readline + renv_bootstrap_flush_console <- function() { + tryCatch({ + tools <- as.environment("tools:rstudio") + tools$.rs.api.sendToConsole("", echo = FALSE, focus = FALSE) + }, error = function(cnd) {}) + } renv_json_read <- function(file = NULL, text = NULL) { + jlerr <- NULL + # if jsonlite is loaded, use that instead - if ("jsonlite" %in% loadedNamespaces()) - renv_json_read_jsonlite(file, text) + if ("jsonlite" %in% loadedNamespaces()) { + + json <- catch(renv_json_read_jsonlite(file, text)) + if (!inherits(json, "error")) + return(json) + + jlerr <- json + + } + + # otherwise, fall back to the default JSON reader + json <- catch(renv_json_read_default(file, text)) + if (!inherits(json, "error")) + return(json) + + # report an error + if (!is.null(jlerr)) + stop(jlerr) else - renv_json_read_default(file, text) + stop(json) } @@ -960,35 +1185,17 @@ local({ # construct full libpath libpath <- file.path(root, prefix) - # attempt to load - if (renv_bootstrap_load(project, libpath, version)) - return(TRUE) - - # load failed; inform user we're about to bootstrap - prefix <- paste("# Bootstrapping renv", version) - postfix <- paste(rep.int("-", 77L - nchar(prefix)), collapse = "") - header <- paste(prefix, postfix) - message(header) - - # perform bootstrap - bootstrap(version, libpath) - - # exit early if we're just testing bootstrap - if (!is.na(Sys.getenv("RENV_BOOTSTRAP_INSTALL_ONLY", unset = NA))) - return(TRUE) - - # try again to load - if (requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) { - message("* Successfully installed and loaded renv ", version, ".") - return(renv::load()) + if (renv_bootstrap_in_rstudio()) { + # RStudio only updates console once .Rprofile is finished, so + # instead run code on sessionInit + setHook("rstudio.sessionInit", function(...) { + renv_bootstrap_exec(project, libpath, version) + renv_bootstrap_flush_console() + }) + } else { + renv_bootstrap_exec(project, libpath, version) } - # failed to download or load renv; warn the user - msg <- c( - "Failed to find an renv installation: the project will not be loaded.", - "Use `renv::activate()` to re-initialize the project." - ) - - warning(paste(msg, collapse = "\n"), call. = FALSE) + invisible() }) diff --git a/renv/settings.json b/renv/settings.json new file mode 100644 index 00000000..3331ef25 --- /dev/null +++ b/renv/settings.json @@ -0,0 +1,17 @@ +{ + "bioconductor.version": [], + "external.libraries": [], + "ignored.packages": [], + "package.dependency.fields": [ + "Imports", + "Depends", + "LinkingTo" + ], + "r.version": [], + "snapshot.type": "implicit", + "use.cache": true, + "vcs.ignore.cellar": true, + "vcs.ignore.library": true, + "vcs.ignore.local": true, + "vcs.manage.ignores": true +} diff --git a/source/management/protocols-gitflow-model.png b/source/management/protocols-gitflow-model.png index 3355b0a5..ceb53162 100644 Binary files a/source/management/protocols-gitflow-model.png and b/source/management/protocols-gitflow-model.png differ diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/01_afhankelijkheden.Rmd b/source/sfp/1_water/sfp_113_nl_secchi-diepte/01_afhankelijkheden.Rmd new file mode 100644 index 00000000..5dd74435 --- /dev/null +++ b/source/sfp/1_water/sfp_113_nl_secchi-diepte/01_afhankelijkheden.Rmd @@ -0,0 +1,47 @@ +# Afhankelijkheden + +```{=html} + +``` +```{r dependencies} +empty_table <- tibble( + protocol_code = character(), + version_number = character(), + params = character(), + appendix = logical() + ) %>% + add_row() %>% + rename( + `Protocolcode` = protocol_code, + `Versienummer` = version_number, + `Opgenomen als subprotocol` = appendix) %>% + pander(split.tables = Inf) + +if (exists("params")) { + if (!is.null(params$dependencies)) { + transpose(params$dependencies) %>% + as_tibble() %>% + mutate(protocol_code = as.character(protocol_code), + version_number = as.character(version_number), + params = as.character(params), + version_number = ifelse(params == "NA", + paste0("[", version_number, "](../", + version_number, "/", "index.html)"), + version_number), + appendix = as.logical(appendix)) %>% + rename( + `Protocolcode` = protocol_code, + `Versienummer` = version_number, + `Opgenomen als subprotocol` = appendix) %>% + pander(split.tables = Inf) + } else { + empty_table + } +} else { + empty_table +} +rm(empty_table) +``` diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/02_onderwerp.Rmd b/source/sfp/1_water/sfp_113_nl_secchi-diepte/02_onderwerp.Rmd new file mode 100644 index 00000000..c15d5c7a --- /dev/null +++ b/source/sfp/1_water/sfp_113_nl_secchi-diepte/02_onderwerp.Rmd @@ -0,0 +1,46 @@ +# Onderwerp + +## Definities en afkortingen + +```{=html} + +``` +**Oppervlaktewater:** al het permanent of op geregelde tijdstippen stilstaande of stromende water op het landoppervlak, aan de landzijde van de basislijn vanaf waar de breedte van de territoriale zee wordt gemeten (DIW 2003). + +**Sapropelium:** rottingsslib; afzetting van organisch sediment in anaerobe omstandigheden.  + +**Secchi-diepte:** diepte tot waarop de secchi-schijf visueel waarneembaar is in de waterkolom. + +**Secchi-schijf:** gestandaardiseerde zwart-witte schijf, bevestigd aan een koord of staaf, waarmee de secchi-diepte bepaald wordt (zie [Materiaal]). + +**Waterbodem:** bodemsubstraat dat zich onder de waterkolom bevindt, inclusief slib en sapropelium. + +**Waterdiepte:** verticale afstand tussen het wateroppervlak en de waterbodem. +Hierbij wordt de dikte van de sedimentlaag zoals slib niet meegerekend. + +**Waterkolom:** de diepte van het water van de waterspiegel (het wateroppervlak) tot de onderwaterbodem. + +**Zichtdiepte:** maat voor de diepte tot waarop licht in de waterkolom doordringt. +Dit is de diepte waarop ongeveer nog 5% van het zonlicht doordringt in het water. +Berekend als tweemaal de secchi-diepte. + +## Doelstelling en toepassingsgebied + +```{=html} + +``` +De mate waarin zonlicht in de waterkolom doordringt is een belangrijk ecologisch gegeven. +Ze wordt onder meer bepaald door de aard en concentratie van zwevende deeltjes, waaronder fytoplankton, colloïden en opgeloste stoffen. +Het verloop in de tijd kan zodoende een aanwijzing zijn voor de mate van eutrofiëring, verzuring, verontreiniging, gewijzigde sedimenstabiliteit, etc. +De diepte waarop straling doordringt is van rechtstreeks belang voor de mogelijke ontwikkeling van wortelende submerse vegetatie en bepalend voor zowel de diepte tot waarop vegetatieontwikkeling mogelijk is (fotosynthese), als de samenstelling. +De helderheid van de waterkolom is afhankelijk van verschillende in de tijd variërende factoren, zoals weersomstandigheden en de fenologie van organismen en is dynamisch in de tijd. +Ook kan de helderheid van de waterkolom door lokale omstandigheden in eenzelfde waterlichaam ruimtelijk variëren. +De bepaling van de secchi-diepte, genoemd naar Angelo Secchi (1818-1878), is een beproefde, eenvoudige methode om het doorzicht van de waterkolom in het veld te bepalen (Preisendorfer, 1986). +De procedure kan worden toegepast in stilstaand en (zwak) stromend water. diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/03_beperkingen.Rmd b/source/sfp/1_water/sfp_113_nl_secchi-diepte/03_beperkingen.Rmd new file mode 100644 index 00000000..f476d1b8 --- /dev/null +++ b/source/sfp/1_water/sfp_113_nl_secchi-diepte/03_beperkingen.Rmd @@ -0,0 +1,41 @@ +# Beperkingen van het protocol + +```{=html} + +``` +Er zijn verschillende factoren die in het veld invloed kunnen hebben op het correct bepalen van de secchi-diepte.  + +## Weersomstandigheden + +Wisselende bewolking, regen en beweging van het wateroppervlak zijn de meest courante factoren die het vastleggen van de secchi-diepte kunnen beïnvloeden. +Bewolking beperkt de instraling waardoor de secchi-diepte negatief wordt beïnvloed. +Wind, regen, enz., zorgen voor wisselende reflectie en agitatie van het wateroppervlak, waardoor de waarnemer beperkt wordt in het bepalen van de exacte diepte. +In bepaalde omstandigheden kan dit er zelfs toe leiden dat de bepaling van de secchi-diepte volledig onmogelijk is. +De omstandigheden waarbij de bepaling gebeurt dienen steeds te worden gedocumenteerd. + +## Vegetatieontwikkeling + +Ook de vegetatie kan het vastleggen van de secchi-diepte bemoeilijken. +Vegetatie aan of vlak onder het wateroppervlak kan het doorvallend licht onder water dermate beperken dat de gemeten secchi-diepte geen goede maat is voor de helderheid van de waterkolom. +Drijflagen van algen, pollen, ... kunnen een vergelijkbaar effect hebben. +Schaduw van overhangende bomen en struiken vermindert de instraling en daarmee de optimale zichtbaarheid van de secchi-schijf. +Submerse vegetatie en draadalgen kunnen het neerlaten van de secchi-schijf verhinderen of ze aan het zicht onttrekken. + +## Afdrijven van de secchi-schijf + +Indien de secchi-schijf niet loodrecht onder het wateroppervlak komt te hangen, zoals bij meting vanop een bewegende boot of in stromend water, zal de gemeten secchi-diepte afwijken van de werkelijke. +In dergelijke gevallen kan verzwaring van de secchi-schijf aan de onderzijde noodzakelijk zijn. + +## Omwoelen waterbodem + +De waterkolom kan in bepaalde gevallen voorafgaand aan de bepaling, al dan niet lokaal, zeer tijdelijk vertroebeld zijn door omwoelen van de waterbodem (bijv. ten gevolge het waden van de staalnemer, vee of bootverkeer). +Het is van groot belang om zeer voorzichtig te werk te gaan om zelf geen vertroebeling te veroorzaken en eventueel te wachten tot door verstoring in suspensie gebracht materiaal terug bezonken is. + +## IJsvorming + +Bij een bevroren wateroppervlak is het niet mogelijk om de secchi-diepte te bepalen, tenzij een aanzienlijk oppervlak ijsvrij kan worden gemaakt. +Het ijs beperkt het doordringend licht onder water, zodat een correcte meting onmogelijk is. diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/04_principe.Rmd b/source/sfp/1_water/sfp_113_nl_secchi-diepte/04_principe.Rmd new file mode 100644 index 00000000..fad6d0b9 --- /dev/null +++ b/source/sfp/1_water/sfp_113_nl_secchi-diepte/04_principe.Rmd @@ -0,0 +1,9 @@ +# Principe + +```{=html} + +``` +Gestandaardiseerde visuele veldmeting van de helderheid van de waterkolom door bepaling van de secchi-diepte met behulp van de secchi-schijf. diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/05_competenties.Rmd b/source/sfp/1_water/sfp_113_nl_secchi-diepte/05_competenties.Rmd new file mode 100644 index 00000000..d15d613a --- /dev/null +++ b/source/sfp/1_water/sfp_113_nl_secchi-diepte/05_competenties.Rmd @@ -0,0 +1,9 @@ +# Vereiste competenties + +```{=html} + +``` +Niet van toepassing. diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/06_benodigdheden.Rmd b/source/sfp/1_water/sfp_113_nl_secchi-diepte/06_benodigdheden.Rmd new file mode 100644 index 00000000..e0900c34 --- /dev/null +++ b/source/sfp/1_water/sfp_113_nl_secchi-diepte/06_benodigdheden.Rmd @@ -0,0 +1,50 @@ +# Benodigdheden + +## Apparatuur + +```{=html} + +``` +Niet van toepassing. + +## Materiaal + +```{=html} + +``` +### Secchi-schijf + +Een secchi-schijf met stevig rek- en krimpresistent koord van voldoende lengte (lengte moet minimum gelijk zijn aan de diepte van de gemeten locatie) dat correct en stevig aan het oog van de secchi-schijf bevestigd is (Figuur \@ref(fig:Figuur1)). +Bij voorkeur staan op het koord lengtemarkeringen die de diepte aanduiden gemeten vanaf het bovenoppervlak van de secchi-schijf. +Een secchi-schijf bestaat uit een cirkelvormige plaat met een diameter van 20 cm, bovenaan afwisselend beschilderd met twee zwarte en twee witte sectoren van gelijke grootte. + +```{r Figuur1, fig.cap= "Secchi-schijf met maatverdeling op het touw"} + +include_graphics("media/figuur1.jpg") + +``` + +### Rolmeter, vouwmeter of meetlint + +Om de diepte (gemeten op het koord van de secchi-schijf) te meten indien het koord van de secchi-schijf niet voorzien is van dieptemarkeringen en om de waterdiepte te bepalen. + +## Reagentia en oplossingen (indien van toepassing) + +```{=html} + +``` +Niet van toepassing. diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/07_werkwijze.Rmd b/source/sfp/1_water/sfp_113_nl_secchi-diepte/07_werkwijze.Rmd new file mode 100644 index 00000000..96c08a2e --- /dev/null +++ b/source/sfp/1_water/sfp_113_nl_secchi-diepte/07_werkwijze.Rmd @@ -0,0 +1,49 @@ +# Werkwijze + +## Uitvoering + +```{=html} + +``` +De secchi-diepte wordt overdag gemeten, bij voorkeur bij windstil, droog weer met hooguit beperkte bewolking. +Tijdens de bepaling van de secchi-diepte staat de waarnemer met de rug naar de zon, om zo de reflectie van de zon op het wateroppervlak te minimaliseren. +De secchi-diepte kan, al naargelang de diepte, vanop de oever, een steiger, al wadend of vanuit een boot worden uitgevoerd. +Indien mogelijk, wordt de secchi-diepte bepaald op het diepste punt van het waterlichaam in een vegetatieloze of vegetatiearme zone. +Bij bepaling op een andere plaats dient de plaatselijke waterdiepte tevens te worden genoteerd. +Indien de schijf niet loodrecht naar beneden kan gelaten worden dient de schijf verzwaard te worden. +Wanneer de secchi-schijf zichtbaar is en op de waterbodem ligt, is er sprake van bodemzicht en is de secchi-diepte hetzelfde als de waterdiepte op het meetpunt. + +De meting van de secchi-diepte bestaat uit volgende stappen: + +1. Laat de secchi-schijf langzaam in het water zakken totdat de zwarte en witte vlakken op de bovenzijde van de schijf niet meer van elkaar te onderscheiden zijn. + Let er op dat de secchi-schijf perfect loodrecht hangt. + Bepaal deze diepte (waarde 1); + +2. Laat de secchi-schijf vervolgens verder zakken en haal hem langzaam terug op totdat de zwarte en witte vlakken op de bovenzijde van de schijf terug te onderscheiden zijn. + Bepaal ook deze diepte (waarde 2); + +3. Bereken het gemiddelde van deze twee dieptes (waarde 1 en 2); + +4. Herhaal deze procedure drie maal en bereken het gemiddelde van de drie waarden; dit is de secchi-diepte; + +5. Meet de waterdiepte op de meetlocatie (wateroppervlak tot waterbodem); + +6. Noteer secchi-diepte en waterdiepte op het meetpunt op het staalnameformulier of voer deze digitaal in. + +## Registratie en bewaring van resultaten + +```{=html} + +``` +De gemeten waarden en eventuele opmerkingen (factoren die de procedure bemoeilijken, zie [Beperkingen van het protocol]) worden ingevuld op het analoge of digitale staalnameformulier en in een databank bewaard. +Indien de neergelaten schijf tot op de bodem zichtbaar blijft wordt dit genoteerd als 'bodemzicht'. diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/08_kwaliteitszorg.Rmd b/source/sfp/1_water/sfp_113_nl_secchi-diepte/08_kwaliteitszorg.Rmd new file mode 100644 index 00000000..a51c9100 --- /dev/null +++ b/source/sfp/1_water/sfp_113_nl_secchi-diepte/08_kwaliteitszorg.Rmd @@ -0,0 +1,20 @@ +# Kwaliteitszorg + +```{=html} + +``` +De secchi-schijf dient steeds zuiver te zijn; de witte en zwarte vlakken mogen geen noemenswaardige verkleuring vertonen en duidelijk begrensd zijn. +Het koord aan de secchi-schijf wordt bij voorkeur op een spoel gedraaid om knikken en/of knopen te vermijden. +Indien dieptemarkeringen op het koord staan aangeduid moeten deze correct zijn en duidelijk af te lezen. +Het koord van de secchi-schijf dient rek- en krimpresistent te zijn. + +De omgevingsfactoren die de secchi-diepte mogelijk beïnvloeden (zie [Beperkingen van het protocol]) worden op het staalnameformulier in het opmerkingenveld ingevuld. +De opmerkingen worden in een databank bewaard. + +Vertroebeling van het water dient tot een minimum beperkt te worden door voorzichtig te waden en eventueel te wachten tot alles terug bezonken is. +Indien andere werkzaamheden (bijv. vegetatie-onderzoek) het water kunnen vertroebelen, dient de secchi-diepte eerst te worden gemeten. diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/09_veiligheid.Rmd b/source/sfp/1_water/sfp_113_nl_secchi-diepte/09_veiligheid.Rmd new file mode 100644 index 00000000..2d5ac553 --- /dev/null +++ b/source/sfp/1_water/sfp_113_nl_secchi-diepte/09_veiligheid.Rmd @@ -0,0 +1,10 @@ +# Veiligheid + +```{=html} + +``` +Alle algemene veiligheidsregels in verband met werken in en langs water of werken vanuit een boot zijn van toepassing (protocol in ontwikkeling sfp-112 Veiligheid in en rond water). + +Ook bioveiligheidsmaatregelen in verband met verspreiding van invasieve niet-inheemse soorten en pathogenen zijn van toepassing (protocol in ontwikkeling sfp-015 Bioveiligheidsmaatregelen). diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/10_samenvatting.Rmd b/source/sfp/1_water/sfp_113_nl_secchi-diepte/10_samenvatting.Rmd new file mode 100644 index 00000000..393dc5b4 --- /dev/null +++ b/source/sfp/1_water/sfp_113_nl_secchi-diepte/10_samenvatting.Rmd @@ -0,0 +1,9 @@ +# Samenvatting + +```{=html} + +``` +Zie stappen in [Werkwijze] diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/11_referenties.Rmd b/source/sfp/1_water/sfp_113_nl_secchi-diepte/11_referenties.Rmd new file mode 100644 index 00000000..340d61ff --- /dev/null +++ b/source/sfp/1_water/sfp_113_nl_secchi-diepte/11_referenties.Rmd @@ -0,0 +1,18 @@ +# Referenties {.unnumbered} + +::: {#refs} +::: + +```{=html} + +``` +DIW (2003). +Decreet Integraal Waterbeleid van 18 juli 2003 (B.S. 5/12/2003). + + +Preisendorfer R. W. +(1986). +Secchi disk science: Visual optics of natural waters. +Limnology Oceanography 31: 909-926. diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/12_appendices.Rmd b/source/sfp/1_water/sfp_113_nl_secchi-diepte/12_appendices.Rmd new file mode 100644 index 00000000..61e6766a --- /dev/null +++ b/source/sfp/1_water/sfp_113_nl_secchi-diepte/12_appendices.Rmd @@ -0,0 +1 @@ +# (APPENDIX) Bijlagen {.unnumbered} diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/13_subprotocols.Rmd b/source/sfp/1_water/sfp_113_nl_secchi-diepte/13_subprotocols.Rmd new file mode 100644 index 00000000..c03e51e6 --- /dev/null +++ b/source/sfp/1_water/sfp_113_nl_secchi-diepte/13_subprotocols.Rmd @@ -0,0 +1,20 @@ +```{r, results="asis"} +if (exists("params")) { + if (!is.null(params$dependencies)) { + mdfiles <- paste0(map_chr(params$dependencies, "protocol_code"), + "-", + map_chr(params$dependencies, "version_number"), + ".md") + child_docs <- file.path(map_chr(params$dependencies, "version_number"), + mdfiles) + + child_docs <- child_docs[map_lgl(params$dependencies, "appendix")] + + if (length(child_docs) > 0) { + res <- map(child_docs, knit_child, quiet = TRUE) + cat( + c("# (PART) Subprotocols {.unnumbered}", "", unlist(res)), sep = "\n") + } + } +} +``` diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/NEWS.md b/source/sfp/1_water/sfp_113_nl_secchi-diepte/NEWS.md new file mode 100644 index 00000000..547362cb --- /dev/null +++ b/source/sfp/1_water/sfp_113_nl_secchi-diepte/NEWS.md @@ -0,0 +1,22 @@ +# Wijzigingen t.o.v. vorige versies + +## [2023.04](../2023.04/index.html) + +- Dit is de eerste versie van het protocol. + +```{=html} + +``` diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/_bookdown.yml b/source/sfp/1_water/sfp_113_nl_secchi-diepte/_bookdown.yml new file mode 100644 index 00000000..a455f007 --- /dev/null +++ b/source/sfp/1_water/sfp_113_nl_secchi-diepte/_bookdown.yml @@ -0,0 +1,33 @@ +book_filename: sfp_113_nl_secchi-diepte.Rmd +delete_merged_file: true +rmd_files: +- index.Rmd +- NEWS.md +- 01_afhankelijkheden.Rmd +- 02_onderwerp.Rmd +- 03_beperkingen.Rmd +- 04_principe.Rmd +- 05_competenties.Rmd +- 06_benodigdheden.Rmd +- 07_werkwijze.Rmd +- 08_kwaliteitszorg.Rmd +- 09_veiligheid.Rmd +- 10_samenvatting.Rmd +- 11_referenties.Rmd +- 12_appendices.Rmd +- 13_subprotocols.Rmd +output_dir: ../../../../../protocoldocs/docs/sfp/1_water/sfp_113_nl_secchi-diepte +language: + label: + fig: 'Figuur ' + tab: 'Tabel ' + eq: 'Vergelijking ' + thm: 'Theorema ' + lem: 'Lemma ' + def: 'Definitie ' + cor: 'Bijgevolg ' + prp: 'Propositie ' + ex: 'Voorbeeld ' + proof: 'Bewijs. ' + remark: 'Opmerking. ' + diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/_output.yml b/source/sfp/1_water/sfp_113_nl_secchi-diepte/_output.yml new file mode 100644 index 00000000..eeecbe1c --- /dev/null +++ b/source/sfp/1_water/sfp_113_nl_secchi-diepte/_output.yml @@ -0,0 +1,19 @@ +bookdown::gitbook: + split_by: none + split_bib: false + template: !expr protocolhelper:::protocol_css() + css: css/inbo_rapport.css + config: + toc: + before: + - + - + after: + -
  • +bookdown::pdf_book: + keep_tex: false + pandoc_args: --top-level-division=chapter + template: !expr protocolhelper:::protocol_tex() + diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/index.Rmd b/source/sfp/1_water/sfp_113_nl_secchi-diepte/index.Rmd new file mode 100644 index 00000000..90ce7928 --- /dev/null +++ b/source/sfp/1_water/sfp_113_nl_secchi-diepte/index.Rmd @@ -0,0 +1,72 @@ +--- +title: Bepaling doorzicht waterkolom oppervlaktewater op basis van de Secchi-diepte +author: +- name: Scheers, Kevin + orcid: 0000-0002-4756-4247 +date: '2023-06-20' +reviewers: An Leyssen, Luc Denys, Geert De Knijf, Toon Westra +file_manager: Toon Westra +protocol_code: sfp-113-nl +version_number: '2023.04' +language: nl +lang: nl +template_name: sfp +theme: water +site: bookdown::bookdown_site +bibliography: referenties.yaml +csl: https://raw.githubusercontent.com/citation-style-language/styles/master/research-institute-for-nature-and-forest.csl +url: https://inbo.github.io/protocols/ +github_repo: inbo/protocolsource +--- + +```{=html} + +``` +```{r setup, include=FALSE} +library(knitr) +opts_chunk$set( + echo = FALSE, + eval = TRUE, + dpi = 300, + fig.width = 150 / 25.4, + fig.height = 100 / 25.4, + out.width = "100%", + warning = FALSE, + error = TRUE, + message = FALSE +) +library(dplyr) +library(purrr) +library(protocolhelper) +library(pander) +panderOptions("table.alignment.default", "left") +metadata <- rmarkdown::metadata +path_to_protocol <- get_path_to_protocol(metadata$protocol_code) +type <- get_protocol_type(metadata$protocol_code, auto_identifier = TRUE) +``` + +# Metadata {.unnumbered} + +```{r metadata-table} +tibble( + reviewers = metadata[["reviewers"]] |> paste(collapse = ", "), + documentbeheerder = metadata[["file_manager"]], + protocolcode = metadata[["protocol_code"]], + versienummer = metadata[["version_number"]], + taal = metadata[["language"]], + thema = metadata[["theme"]] +) %>% + pander::pander(split.tables = Inf) +``` + +```{r results="asis"} +sprintf("Controleer [deze tabel](../%s.html){target=\"_blank\"} om te zien of een meer recente versie beschikbaar is.", type) |> cat() # nolint +``` diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/media/figuur1.jpg b/source/sfp/1_water/sfp_113_nl_secchi-diepte/media/figuur1.jpg new file mode 100644 index 00000000..9bfd0975 Binary files /dev/null and b/source/sfp/1_water/sfp_113_nl_secchi-diepte/media/figuur1.jpg differ diff --git a/source/sfp/1_water/sfp_113_nl_secchi-diepte/referenties.yaml b/source/sfp/1_water/sfp_113_nl_secchi-diepte/referenties.yaml new file mode 100644 index 00000000..e69de29b diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/01_afhankelijkheden.Rmd b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/01_afhankelijkheden.Rmd new file mode 100644 index 00000000..6bc5bf7c --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/01_afhankelijkheden.Rmd @@ -0,0 +1,47 @@ +# Afhankelijkheden + +```{=html} + +``` +```{r dependencies} +empty_table <- tibble( + protocol_code = character(), + version_number = character(), + params = character(), + appendix = logical() + ) %>% + add_row() %>% + rename( + `Protocolcode` = protocol_code, + `Versienummer` = version_number, + `Opgenomen als subprotocol` = appendix) %>% + pander(split.tables = Inf) + +if (exists("params")) { + if (!is.null(params$dependencies)) { + transpose(params$dependencies) %>% + as_tibble() %>% + mutate(protocol_code = as.character(protocol_code), + version_number = as.character(version_number), + params = as.character(params), + version_number = ifelse(params == "NA", + paste0("[", version_number, "](../", + version_number,"/", "index.html)"), + version_number), + appendix = as.logical(appendix)) %>% + rename( + `Protocolcode` = protocol_code, + `Versienummer` = version_number, + `Opgenomen als subprotocol` = appendix) %>% + pander(split.tables = Inf) + } else { + empty_table + } +} else { + empty_table +} +rm(empty_table) +``` diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/02_onderwerp.Rmd b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/02_onderwerp.Rmd new file mode 100644 index 00000000..9db1ae04 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/02_onderwerp.Rmd @@ -0,0 +1,43 @@ +# Onderwerp + +## Definities en afkortingen + +**Abundantie of densiteit** = een maat voor talrijkheid: abundantie wordt gebruikt om aan te geven hoe talrijk een soort voorkomt, meestal gekoppeld aan een bepaalde oppervlakte (densiteit). +Het is het aantal individuen of andere teleenheden (bv. scheuten) van een soort per oppervlakte. +Deze term wordt bijvoorbeeld gebruikt in de vegetatiekunde, waar verschillende systemen bestaan om de abundantie van plantensoorten in de vegetatie aan te geven. + +**Aquatische vegetatie** = watergebonden vegetatie (waterplantvegetaties - hydrofyten), al dan niet volledig ondergedoken in de waterkolom. + +**Bedekking** = een maat van voorkomen die meer gelinkt is met biomassa (een soort kan bijvoorbeeld zeer talrijk voorkomen maar met lage biomassa/bedekking): de bedekking van een plantensoort (of laag van de vegetatie, bv. boomlaag) is de proportie van de bodem die bedekt is door een soort, indien alle andere soorten verwijderd zouden worden. +M.a.w. het is de verticale projectie van alle bovengrondse plantendelen van alle individuen van een soort op de bodem binnen een proefvlak [@RN155]. +De bedekking wordt uitgedrukt als een proportie of een percentage. + +**Bedekkingsschaal** = een meestal ordinale schaal die gebruikt wordt om in het veld voor een plantensoort de visueel ingeschatte bedekking te noteren. +Sommige schalen zijn een combinatie van klassen voor bedekkingspercentages en klassen voor abundanties bij lage bedekkingen. +Elke klasse in de ordinale schaal krijgt een code die genoteerd wordt. + +**Proefvlak** = deel van het terrein waarbinnen de waarnemingen worden gedaan. +Het heeft een vooraf vastgelegde vorm, grootte en oriëntatie. +De standaard voor vegetatie-opnamen is een vierkant proefvlak. + +**PQ** = permanent quadraat: een proefvlak dat meermaals in de tijd wordt opgenomen, en dus resulteert in een tijdreeks van opnames voor eenzelfde locatie. + +**(Semi-)terrestrische vegetatie** = Niet-aquatische vegetaties. +Zijn aan land gebonden en wortelen in de bodem. + +**Soortensamenstelling** = de lijst van soorten die voorkomen binnen het proefvlak. + +**Strooisellaag** = liggend afgestorven plantenmateriaal op de bodem, niet vasthangend aan de moederplant waarin organisch materiaal nog herkenbaar te vinden is. +Strooisel omvat dus bladeren, stengels, twijgen en andere houtachtige plantenresten, zowel intact en herkenbaar materiaal als gedeeltelijk gecomposteerd en gefragmenteerd materiaal. + +**Vegetatieopname** = beschrijving van de vegetatiesamenstelling door middel van een volledige lijst van de aanwezige soorten en de mate van de hoeveelheid waarin ze voorkomen (biomassa, densiteit, bedekking, ...). + +## Doelstelling en toepassingsgebied + +De beschrijving van de vegetatie gebeurt vaak op basis van een zogenaamde vegetatieopname. +Vegetatieopnames hebben tot doel een beeld te geven van de vegetatie op een bepaalde locatie aan de hand van de soortensamenstelling, abundantie en bedekking van de soorten binnen een proefvlak. +Dit kan zowel met doel een fytosociologie af te lijnen (lokaal, regionaal, ...), een verandering in tijd bloot te leggen, als de biotische toestand (kwaliteit, verstoringen,..) te karakteriseren. + +De hier beschreven procedure is uitsluitend van toepassing op vegetaties in terrestrische al dan niet grondwaterafhankelijke situaties. +De grootte en vorm van het proefvlak kan variëren, afhankelijk van de doelstelling of van het bestudeerde vegetatietype. +Zie \@ref(bijlage-params) voor een overzicht van de in dit protocol gebruikte instelwaarden. diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/03_beperkingen.Rmd b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/03_beperkingen.Rmd new file mode 100644 index 00000000..e568c603 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/03_beperkingen.Rmd @@ -0,0 +1,18 @@ +# Beperkingen van het protocol + +Dit protocol is bedoeld voor terrestrische vegetaties in een proefvlak. + +Het gebruik van dit protocol buiten het vegetatieseizoen leidt mogelijk tot een onvolledige dataset, en eventueel interpretatiefouten. +In dit protocol is aangegeven welke de beste periodes zijn om de vegetatieopnamen uit te voeren (zie Figuur \@ref(fig:image1)). + +De inschattingen zijn zeker niet vrij van meetfouten. +Mogelijke foutenbronnen zijn: + +1. niet waarnemen van een soort in het proefvlak, +2. fout determineren van een soort, +3. de abundantie/bedekking fout inschatten. + +Het veldprotocol in combinatie met opleidingen moet bijdragen om deze fouten en verschillen in interpretatie tussen veldwerkers (waarnemer-effecten) zo klein mogelijk te maken. + +De selectie van locaties valt buiten de context van dit protocol. +Dit is afhankelijk van de doelstelling van het project. diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/04_principe.Rmd b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/04_principe.Rmd new file mode 100644 index 00000000..57eeae1a --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/04_principe.Rmd @@ -0,0 +1,14 @@ +# Principe + +Een klassieke vegetatieopname is een opsomming van alle plantensoorten (soortensamenstelling) die op een bepaald tijdstip samen voorkomen binnen een afgebakende plek (proefvlak), samen met een schatting van de abundantie/bedekking per soort en per vegetatielaag. +Aangezien het onmogelijk is om elk plantenindividu te tellen wordt het voorkomen per soort ingeschat op basis van een speciaal voor visuele schattingen aangepaste bedekkingsschaal. +Wanneer dit proefvlak op regelmatige tijdstippen wordt beschreven spreekt men van een permanent kwadraat of afgekort PQ. + +De oorspronkelijke doelstelling van klassieke vegetatieopnamen (rélevé phytosociologique) was meestal data verzamelen om achteraf vegetatietypes (klassen, verbonden, associaties ...; cf. syntaxonomie) te kunnen classificeren. +De oorspronkelijke Braun-Blanquet methode [@RN153] was enerzijds een schaal om de bedekking te schatten, anderzijds een veldmethodiek. +De proefvlaklocaties werden zo gekozen dat ze lagen in een goed ontwikkelde, homogene vegetatie (in termen van het type vegetatie, dus geen randsituaties, geen gradiënten, ...). +De grootte van het proefvlak werd zo gekozen dat de soortenrijkdom weinig of niet veel meer toenam bij het vergroten van de bekeken oppervlakte (empirisch bepaald aan de hand van soort -- oppervlakte accumulatiecurves; = minimal area concept) [@RN156]. + +De bedekkingsschalen om visueel bedekkingen in te schatten zijn meestal opgebouwd volgens een geometrische reeks (de afstand tussen opeenvolgende klassen is klein bij lage bedekkingen en wordt groter bij hogere bedekkingen). +Het menselijk oog kan immers gemakkelijker verschillen in bedekking onderscheiden bij lage bedekkingen. +Een verschil tussen 1% en 2% bedekking is een verdubbeling in oppervlakte en vrij goed te zien, terwijl een verschil tussen 50% en 51% bedekking visueel niet in te schatten is. diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/05_competenties.Rmd b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/05_competenties.Rmd new file mode 100644 index 00000000..3f7e2482 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/05_competenties.Rmd @@ -0,0 +1,5 @@ +# Vereiste competenties + +Een belangrijke vereiste is een gedegen kennis van de voorkomende flora. +Hierbij is vooral vertrouwdheid met de veldkenmerken van planten van belang om snel en efficiënt een opname te kunnen maken. +Voor sommige moeilijkere soorten of soortengroepen zijn meer klassieke plantmorfologische determinatiekenmerken nodig. diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/06_benodigdheden.Rmd b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/06_benodigdheden.Rmd new file mode 100644 index 00000000..a8be4f75 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/06_benodigdheden.Rmd @@ -0,0 +1,29 @@ +# Benodigdheden + +## Apparatuur + +- hand-GPS (nauwkeurigheid +/- 5 m) +- (eventueel) RTK -- GPS (nauwkeurigheid ongeveer 5 cm) +- (eventueel) kompas +- (eventueel) digitale camera +- (eventueel) tablet of veldcomputer +- (eventueel) Fieldmap configuratie (GPS, digitaal kompas, veldcomputer) +- reservebatterijen + +## Materiaal + +- wegenatlas, kaartmateriaal op voorhand voorbereid via GIS +- notaboek of --fiches (zie Bijlage \@ref(bijlage-opnameformulier) Veldformulier) +- voldoende schrijfmateriaal +- flora [@RN157] +- loep (8x, 10x, 15x) +- lint- (min. 5m) of vouwmeter +- 4 markeerstokken + touw (met markering proefvlaklengte en -diagonaal) +- eventueel markeerverf voor in bossystemen +- recipiënten (mapjes, krantenpapier, plastic zakje) om niet gedetermineerde planten te bewaren +- paraplu (om papieren droog te houden) +- (eventueel) materiaal voor permanente markering (bv. Fenopaal) + +## Reagentia en oplossingen (indien van toepassing) + +Niet van toepassing diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/07_werkwijze.Rmd b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/07_werkwijze.Rmd new file mode 100644 index 00000000..acdcab75 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/07_werkwijze.Rmd @@ -0,0 +1,266 @@ +# Werkwijze + +## Uitvoering + +### Voorbereiding terreinwerk + +De hier opgesomde voorbereidende stappen kunnen sterk afhankelijk zijn van de doelstelling en voorgeschiedenis van het project en van het beschikbare materiaal en apparatuur voor het project. + +1. Kaartmateriaal met te bezoeken locaties wordt voorbereid in een GIS-omgeving. + Indien geen veldcomputer/tablet voorhanden, worden de kaarten in kleur geprint, met een duidelijke schaalvermelding. + Eventueel worden overzichtskaarten gemaakt zodat de kortste afstand, of de gemakkelijkste weg tot het punt of perceel duidelijk is (bv. brugjes over rivieren, onverharde wegen, ...). + +2. Coördinaten worden ingelezen in een GPS (WGS84 !) of in Fieldmap, indien voorhanden. + Zo kan er makkelijker genavigeerd worden naar het specifieke punt. + +3. Voor elke locatie is de optimale periode bepaald waarin het veldwerk wordt uitgevoerd. + +4. Voor elke locatie is op voorhand de grootte en vorm van het proefvlak vastgelegd afhankelijk van de doelstellingen van het onderzoek. + +5. Historische vegetatieopnames of soortenlijsten kunnen mee op terrein genomen worden, indien voorhanden. + Er is wel per project een afweging nodig van de voor- en nadelen die hieraan verbonden zijn. + Aan de hand van oude opnames een globale soortenlijst van het gebied samenstellen is aan te raden om op voorhand vertrouwd te geraken met de soorten. + + - Mogelijke voordelen: kan helpen bij herlokalisatie, leereffect, ... + - Mogelijke nadelen: overnemen van foute determinaties, onbewuste vertekening door verhoogde zoekinspanning naar ontbrekende soorten of door bijstellen van de bedekking, ... + +6. Print voldoende veldformulieren (+ enkele extra) af, per proefvlak minstens 1 veldformulier. + +7. Ga na of alle benodigdheden aanwezig zijn en functioneren (checklist, zie hoofdstuk \@ref(benodigdheden)). + +8. Zorg indien mogelijk dat je de toestemming hebt om de percelen te betreden. + +### Keuze periode + +Het is belangrijk het tijdstip optimaal te kiezen in functie van het groeiseizoen van de meest voorkomende planten (zie Figuur \@ref(fig:image1)). +Afhankelijk van het vegetatietype of de opzet van het project kunnen twee bezoeken binnen eenzelfde vegetatieseizoen noodzakelijk zijn. +Dit doordat er twee in de tijd gescheiden coherente bloeiperioden van planten zijn. +Een duidelijk voorbeeld is de voorjaarsflora in bossen. +Deze kan enkel in de maanden maart -- april worden opgenomen, op het moment dat deze flora optimaal zichtbaar is. +De andere ondergroei zal pas later op het jaar zijn maximum bereiken (periode juli-augustus). +Deze twee opnames op eenzelfde locatie maar ander tijdstip in het seizoen worden gezien als twee aparte opnames. +Voor analyse achteraf, kunnen deze worden samengevoegd met per soort het maximum van beide ingeschatte bedekkingen. + +(ref:image1) Monitoringsperiode naargelang biotoopgroep [@RN158] + +```{r image1, fig.cap = '(ref:image1)', out.width= '100%' } +knitr::include_graphics(path = './media/image1.png') +``` + +Bij een maaibeheer is het belangrijk om een vegetatieopname uit te voeren voordat er gemaaid is. +Na het maaien is het moeilijk om de soortensamenstelling en bedekking van de vegetatie correct in te schatten. + +### Grootte en vorm van het proefvlak + +De vorm en grootte van het proefvlak is afhankelijk van het vegetatietype en/of het project waarin de opnamen kaderen. +We raden nadrukkelijk aan om de standaardwaarden te gebruiken en hier enkel van af te wijken om gemotiveerde redenen. + +Voor niet-bosvegetatie is binnen INBO de standaard `r params$plot_length_openveg_m` m x `r params$plot_width_openveg_m` m proefvlak. +Voor bossen gaat het om `r params$plot_length_forest_m` m x `r params$plot_width_forest_m` m. +Voor de onderbouwing van deze keuze van proefvlakgrootte zie @RN159, § 4.1.3.3. +Er kan afgeweken worden van zowel grootte als vorm met een duidelijke motivatie van de reden. +Bijvoorbeeld, voor slenken in natte heides kan dit gereduceerd worden naar een oppervlak van 1 m² waarbij afgeweken wordt van het vierkant door het lineaire karakter van het vegetatietype. + +### Navigeren naar proefvlak (indien locatie op voorhand bepaald) + +De navigatie naar de locatie kan gebeuren met behulp van een (RTK-)GPS waarin de X en Y coördinaten van de proefvlakken op voorhand ingelezen zijn. +Om tot het punt te navigeren is een hand-GPS het handigst. +Als het punt zeer nauwkeurig moet opgemeten worden, is een RTK-GPS vereist voor de laatste meters. + +Als de locatie niet op voorhand is vastgelegd, dan is het aan de waarnemer om in het betreffende gebied, perceel, ... de locatie te bepalen. +Het proefvlak dient representatief te zijn voor de doelstelling van het project. +Vaak is een vereiste dat het geselecteerde proefvlak homogeen is. +Zichtbare verstoringen zoals paden, meetapparatuur, perceelgrenzen, vergravingen, ... worden uit het proefvlak gehouden. + +In bossen wordt een zeer nauwkeurige (her)lokalisatie met GPS gehinderd door het kronendak. +Door de ruimtelijke configuratie van kenmerkende bomen in en rond het proefvlak op te meten, kan echter ook in bossen de positie van het proefvlak met grote nauwkeurigheid vastgelegd worden. +Dit kan handmatig gebeuren, met kompas en lintmeter of afstandsmeter, of via Fieldmap dat een geïntegreerde configuratie is van een laserafstandsmeter, digitaal kompas en GIS omgeving. + +### Uitzetten van het proefvlak + +Er dient altijd zoveel mogelijk vermeden te worden om door het proefvlak te lopen. +Als 1 hoekpunt gekend of vastgelegd is, wordt hier een markeerstok in de grond gestoken. +Via een vaste oriëntatie (steeds N-Z) wordt het proefvlak uitgezet. + +Een heel snelle manier om proefvlakken (bv voor een 3 m x 3 m proefvlak) uit te zetten is door gebruik te maken van een touw van 6 m, aan de uiteinden voorzien van een lus. +Op het touw brengt men twee merktekens aan: de diameter van een vierkant van 3 m x 3 m (= 4.24 m) en een teken op 3 m (= een zijde van het proefvlak). +Men plaatst vervolgens een stokje (1 in figuur \@ref(fig:image2)) en hangt het uiteinde van het touw over dat stokje. +Het tweede stokje plaatst men ter hoogte van de aangeduide diameter (touw dus wel opspannen, 2 in Figuur \@ref(fig:image2)). +Hier maak je het andere uiteinde van het touw vast. +Vervolgens hoeft men enkel nog het touw op te spannen op het 3 m-punt (3 of 4 in Figuur \@ref(fig:image2)) en de helft van het proefvlak is al in orde. +Best is om ook twee zulke touwen mee te nemen. +Dit kan uiteraard ook met een lintmeter. +Voor de N-Z oriëntatie is het belangrijk om de 2^de^ markeerstok in NW richting (2) te plaatsen met behulp van een kompas. +Zie figuur \@ref(fig:image2) voor meer verduidelijking. + +```{r image2, fig.cap = 'Voorbeeld van het schema voor het uitzetten van een 3 m x 3 m proefvlak', out.width= '100%' } +knitr::include_graphics(path = './media/image2_2.png') +``` + +Voor grotere proefvlakken met hoge vegetatie (bv. in bos 16 m x 16 m) is bovenstaande werkwijze niet praktisch. +Daar gebruikt men best kompas, lintmeter vertex, of andere apparatuur om afstand of hoeken te bepalen (bv. een laser afstandsmeter). + +### Foto (optioneel) + +De standaard die gehanteerd wordt is om 2 foto's per proefvlak te nemen: 1 overzichtsfoto van het perceel en 1 foto van het proefvlak zelf. +Dit steeds vanuit het zuiden naar het noorden volgens een zichtas door het centrum van het proefvlak (vermijden van tegenlicht). +Voor bossen is dit minder evident omwille van mogelijke zichtobstructie door bomen en wordt de beste locatie voor de foto gekozen. +In dit laatste geval wordt de azimut (hoek t.o.v. het noorden over het oosten) bij benadering aangegeven van waaruit de foto genomen werd. + +Om problemen te vermijden bij de latere verwerking wordt aangeraden om op de foto een duidelijk zichtbare identificatiecode van het proefvlak en oriëntatie weer te geven (Figuur \@ref(fig:image6)). +We raden aan om op een tabletje deze gegevens te noteren en mee te fotograferen. +Het is ook mogelijk om het invulformulier mee op de foto te zetten (of als eerste te fotograferen). + +```{r image6, fig.cap = 'Foto met duidelijke identificatiecode van de locatie van de vegetatieopname a.d.h.v. een krijtbordje (foto: Wouter Van Gompel)', out.width= '100%' } +knitr::include_graphics(path = './media/image6.jpeg') +``` + +Indien dit onmogelijk is, codeer dan duidelijk in het daartoe voorziene veld op het veldformulier of bij afwezigheid daarvan in het vrije veld 'opmerkingen'. +Met de nieuwe smartphones is het trouwens mogelijk om de locatie van de genomen foto te taggen. + +Het is belangrijk om achteraf de fotobestanden een gestructureerde naam (bv. identificatiecode_oriëntatie_datum) te geven. +Voor opslag en beheer van fotobestanden zal in een latere fase hiervoor een Digital Asset Management-tool beschikbaar komen. + +### Vegetatieopname + +Het tijdstip van de opname is zeer belangrijk. +De opname zou moeten gebeuren op het moment dat de meerderheid van de soorten een maximale bedekking heeft bereikt. + +#### Structuur + +Bij een gelaagde vegetatie wordt de bedekking van de verschillende structuurlagen, zijnde strooisellaag, algenlaag, moslaag, kruidlaag, struiklaag en boomlaag geschat. +Voor INBO gelden volgende defaultwaarden: + +De moslaag betreft alle terrestrische mossen, inclusief veenmossen. + +*Open vegetaties* De kruidlaag bevat alle niet-houtige kruiden, en alle houtige planten met een hoogte tot maximaal `r params$height_herbshrublayer_openveg_m` m. +Kiemplanten en zaailingen van houtige gewassen aanwezig in de kruidlaag worden genoteerd met vermelding kiemplant (k) bij de fenologie. +Tot de struiklaag worden in open vegetaties de houtige planten van `r params$height_herbshrublayer_openveg_m` tot `r params$height_shrubtreelayer_openveg_m` m gerekend. +De boomlaag bestaat uit houtige planten hoger dan `r params$height_shrubtreelayer_openveg_m` m. + +*Bossen* Voor bossen ligt de opdeling tussen kruid- en struiklaag op `r params$height_herbshrublayer_forest_m` m, voor struik- en boomlaag op `r params$height_shrubtreelayer_forest_m` m. + +De totale bedekkingen van strooisellaag, algenlaag, moslaag, kruidlaag, boom- en struiklaag worden afzonderlijk ingeschat met telkens maximaal 100% bedekking. +Daarnaast wordt ook de totale bedekking over de lagen heen ingeschat (dit is 100% min de bedekking van onbedekte bodem). +De standaard INBO-schaal voor de bedekking (INBO-structuur in INBOVEG) is een rechtstreekse schatting van het percentage in sprongen van 10%, 5% en 1%, waarbij op de uiteinden van de schaal kleinere sprongen genomen worden. +Dit resulteert in 0, 1, 2, 3, 4, 5, 10, 15, 20, 30, 40, 50, 60, 70, 80, 85, 90, 95, 96, 97, 98, 99, 100. + +Voor de kruidlaag wordt de gemiddelde hoogte (in centimeter) opgenomen. +Het gaat hier om een schatting van de vegetatiehoogte. +In het proefvlak wordt volgens een rasterpatroon op 10 locaties het hoogste plantendeel gemeten. +Dit uitmiddelen geeft de gemiddelde hoogte aangezien de gemiddelde maximale plantenhoogte per rastercel een gemiddelde hoogte voor het volledige proefvlak oplevert. + +#### Soortensamenstelling + +Alle plantensoorten binnen het proefvlak worden systematisch genoteerd (`r paste(params$species_list, collapse = ", ")`). +Het handigst is hier te beginnen bij de hoogste structuurlaag om dan af te zakken naar de finale moslaag (indien mossen dienen opgenomen te worden). +Vaak wordt begonnen met de meest opvallende of talrijkere soorten om dan af te zakken naar de minder opvallende. + +Er worden enkel wetenschappelijke soortnamen gebruikt. +Deze zijn opgenomen in de INBO-standaardlijst: INBO-Sci 2011 (in het programma INBOVEG), cfr. +@RN157. +Het werken met Nederlandse namen laat verwarring toe in bepaalde gevallen, namelijk of het om het genus of de species gaat. + +De fenologie wordt ook genoteerd per soort. +Een soort met 2 verschillende waarden voor fenologie wordt beschouwd als 2 verschillende soorten in de analyse (bv. Alnus glutinosa -- k (kiemplant) of Alnus glutinosa + (dood)). +Voor de standaard INBO-defaultwaarden, zie [Bijlage: Fenologiecodes INBO](#bijlage-fenologiecodes-inbo). + +Blijf niet te lang speuren naar extra soorten. +Hou als regel aan dat als je 5 minuten lang geen nieuwe soort meer vindt, de opname volledig is. +In totaal ligt het tijdsbestek voor het maken van een opname, voor geroutineerde situaties, tussen een kwartier en een uur. + +Maak eerst een lijst van de aanwezige soorten, schat pas bedekkingen als je lijst min of meer volledig is. +Voor vegetatieve grassen kan gewerkt worden met enkele steekproeven van een handvol vegetatieve scheuten. + +#### Bedekking + +Het is belangrijk om niet enkel wortelende planten binnen het proefvlak te bekijken, maar ook deze met een duidelijke bedekking in het proefvlak, bv. +overhangende vegetatie met wortels buiten het proefvlak. + +Voor de vegetatieopname maken we gebruik van de schaal van `r params$coverscale_species` (Tabel \@ref(tab:bedekkingschaal-interpretatie)). + +(ref:bedekkingschaal-interpretatie) Schaal van `r params$coverscale_species` [@RN154]. + +```{r bedekkingschaal-interpretatie} +cover_scales <- read.csv(file.path(protocol_path, "data/cover_scales.csv")) + +cover_scale_selected <- cover_scales %>% + filter(ListName == params$coverscale_species) + +not_all_na <- function(x) {!all(is.na(x))} + +cover_scale_selected %>% + mutate(Omschrijving = paste(CodeDescription, AbuDescription)) %>% + select(Code, + Omschrijving, + `Percentage benedengrens` = PctLower, + `Percentage bovengrens` = PctUpper, + `Abundantie benedengrens` = AbuLower, + `Abundantie bovengrens` = AbuUpper) %>% + select(where(not_all_na)) %>% + pander::pander(caption = add_label("(ref:bedekkingschaal-interpretatie)"), + split.tables = Inf, + missing = "") + +heeft_abundantie <- cover_scale_selected %>% + filter(!is.na(AbuUpper)) %>% + nrow() > 0 + +max_lage_bedekking <- cover_scale_selected %>% + filter(!is.na(AbuLower)) %>% + dplyr::pull(PctUpper) %>% + max() + +``` + +Er kunnen dus `r nrow(cover_scale_selected)` verschillende codes gebruikt worden voor deze schaal. + +(ref:gecombineerd) Voor de soorten met een bedekking lager dan `r max_lage_bedekking`% zijn er verdere onderverdelingen op basis van abundantie (tellingen). Soorten met een hoge presentie, maar lage bedekking worden op die manier niet onderschat. We spreken hier van een gecombineerde abundantie-bedekking schaal waarbij abundantie in combinatie met bedekking wordt gebruikt voor de soorten die weinig bedekken. Basisregel daarbij is dat pollen van éénzelfde soort als 1 individu geteld worden. Bij het geclusterd voorkomen van niet-pollenvormende plantensoorten worden echter de individuele exemplaren of scheuten geteld of geschat voor het benaderen van de densiteit. Voor mossen wordt enkel bedekking genoteerd. + +```{asis, echo = heeft_abundantie} +(ref:gecombineerd) +``` + +Verstoor je proefvlak zo weinig mogelijk vooraleer je een vrij volledige soortenlijst hebt en de bedekkingen hebt ingeschat. +Doe vervolgens nog een check met de lijst van voorkomende soorten. + +Bij fijnbladige soorten (bv. smalbladige wilgen) heeft men snel de neiging om de bedekking te overschatten omdat het omhullende volume dat de planten innemen groot is ten opzichte van hun bladoppervlakte (ze hebben een lage Leaf Area Index). +Een strategie om de bedekking van zulke soorten in te schatten is dan ook de bedekking voor de verticale projectie van de omhullenden te schatten (= kroonprojectie, Figuur \@ref(fig:image7)) en deze naar beneden te corrigeren (0 \< correctiefactor \< 1) voor de ijlheid van het gebladerte. +Deze correctiefactor is opnieuw een visuele schatting, maar dan één die éénmalig kan geschat worden en daarna consequent gebruikt. + +```{r image7, fig.cap = 'Kroonprojectie houdt, in tegenstelling tot de definitie van bedekking, geen rekening met ijlheid van het bladerdak.', out.width= '50%'} +knitr::include_graphics(path = './media/image7.png') +``` + +Maak aan het einde eens de som van bedekkingen ter controle. +De totale som van alle bedekkingen is in grasland in regel meer dan 100% en kan oplopen tot 200% en meer (maar dat hoeft niet!). + +### Permanente markering van het proefvlak + +Wanneer het proefvlak in de toekomst niet opnieuw bezocht wordt en er is geen X-/Y-coördinaat voorhanden, wordt het middelpunt van het proefvlak ingelezen met de hand-GPS (liefst een gemiddelde waarde). +Indien het noodzakelijk is het punt exact terug te vinden worden 2 hoekpunten ingelezen met de RTK-GPS (de zuid- en noordhoek). +In bossen is een positionering met behulp van Fieldmap nauwkeuriger dan met GPS. +De positie kan ingelezen worden in Fieldmap door te navigeren met de afstandsmeter en electronisch kompas vanaf een een referentiepunt met gekende coördinaten, zoals bij voorbeeld een kruispunt, of een punt buiten bos of op een open plek, dat wel nauwkeurig kan worden ingemeten met GPS. +In permanente proefvlakken kan de boomconfiguratie opgemeten worden, en gebruikt worden om het proefvlak zeer nauwkeurig te lokaliseren (zie eerder). + +Naast het inlezen met GPS kan ook een permanente markering worden aangebracht. +Dit om te vermijden dat telkens de RTK gebruikt moet worden. +Een permanente markering van de proefvlakken kan op verschillende wijze gebeuren (afhankelijk van het budget en de tijdspanne van opvolging). +Het goedkoopste is het inkloppen van een houten paal op 1 van de duidelijk beschreven hoekpunten van het proefvlak. +Vanuit dit hoekpunt kan dan gemakkelijk het volledige proefvlak worden gereconstrueerd met een kompas. +Een duurdere maar met langere levensduur is het ingraven van een metalen staaf, die naderhand met een metaaldetector terug kan gezocht worden. +Een andere oplossing is de proefvlakken te markeren met een fenopaal (Figuur \@ref(fig:image8)). +Indien maaibeheer, fenopalen diep genoeg steken (= maaiveld) door een zode uit te graven, alvorens de fenopaal te plaatsen. +Een metaaldetector is nadien wel handig. + +```{r image8, out.width=c('44.13%', '50%'), fig.show='hold', fig.cap = 'Een fenopaal, die gebruikt wordt om de punten te markeren die met GPS werden gepositioneerd (foto: Nathalie Cools (links), Geert Sioen (rechts))'} +knitr::include_graphics(path = c('./media/image8.jpeg','./media/image9.jpeg')) +``` + +## Registratie en bewaring van resultaten + +De resultaten van de vegetatieopnames worden genoteerd op de desbetreffende invulformulieren (zie bijlage \@ref(bijlage-opnameformulier)) en worden bewaard in een daarvoor bestemde archiefmap na inscannen. +Alle opnames worden later ingegeven in INBOVEG. + +De foto's worden gearchiveerd (in een latere fase zal hiervoor een Digital Asset Management-tool beschikbaar komen) waarbij een link mogelijk is naar een unieke identificatiecode voor de locatie of de vegetatieopname. +De naam van de foto wordt "identificatiecode_orientatie_datum". diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/08_kwaliteitszorg.Rmd b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/08_kwaliteitszorg.Rmd new file mode 100644 index 00000000..d5ff8452 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/08_kwaliteitszorg.Rmd @@ -0,0 +1,41 @@ +# Kwaliteitszorg + +## Voor de campagne + +- opleiding voor de terreinmedewerkers (soortenkennis, inschatting bedekkingen: zie bijlage \@ref(bijlage-inschatting-bedekkingen-oefenen)) + +- nakijken of alle nodige apparatuur en materiaal aanwezig is en functioneert + +- verzeker je dat je de toelating hebt om het perceel te betreden. + +- bij moeilijk terug te vinden proefvlakken kun je best net voor het vegetatieseizoen de locatie al terugzoeken (mbv RTK_GPS, metaaldetector, ...) en goed markeren (paaltjes). + De fenopalen verdwijnen soms onder molshopen, verstuivingen, vegetatie, ... + +## Tijdens de campagne + +- minimalisatie van variatie in uitwendige omstandigheden, dus bij opeenvolgende inventarisaties deze best zoveel mogelijk door dezelfde waarnemer laten uitvoeren. + De herhaling van opnames in het volgende jaar (of cyclus van jaren) dienen steeds rond dezelfde periode in die jaren te gebeuren. + Bv. + opnames gemaakt in mei worden ook later best herhaald in de maand mei. + +- determinatiefouten kunnen opgevangen worden door bij onzekerheden foto's of -beter nog- , exemplaren te verzamelen (behalve als het om zeldzame soorten gaat) van dit specifieke specimen (mossen in enveloppes). + Er wordt dan een tijdelijke naam (indeterminatum_volgnummer) gegeven en de foto of enveloppe wordt gelabeld met de unieke identificatiecode van de vegetatie-opname en de datum. + +- som van de bedekking van individuele soorten voor een bepaalde structuurlaag moet groter dan of gelijk zijn aan de totale bedekking voor die specifieke structuurlaag, afhankelijk of individuele soorten elkaar overlappen. + +## Na de campagne + +- checken of alle vermelde soorten kunnen voorkomen op die bepaalde standplaatsen, o.a. + door af te toetsen met de Floradatabank, waarnemingen.be + +- invoeren van de opname in InboVeg + +- inscannen veldnotities/veldformulieren en centraal in projectmap zetten. + Een verwijzing (bv. link naar het bestand op google drive) kan als referentie aan de opname in InboVeg worden gekoppeld. + Zie voorbeeld (Figuur \@ref(fig:image10)): + +```{r image10, fig.cap = 'Printscreen van een referentie in INBOVEG', out.width= '100%' } +knitr::include_graphics(path = './media/image10_2.png') +``` + +- Foto's worden bewaard ((in een latere fase zal hiervoor een Digital Asset Management-tool beschikbaar komen)) diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/09_veiligheid.Rmd b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/09_veiligheid.Rmd new file mode 100644 index 00000000..cd565808 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/09_veiligheid.Rmd @@ -0,0 +1,7 @@ +# Veiligheid + +Controleer voor het betreden van het terrein of aanwezige grazers geen gevaar kunnen vormen. + +Draag aangepast schoeisel, zorg voor beschermende kledij of middelen (tegen irriterende planten, insecten, zon...). + +Inventariseer moeilijk begaanbare, moerassige terreinen in duo of zorg minstens dat je een GSM met noodnummers bij hebt. diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/10_samenvatting.Rmd b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/10_samenvatting.Rmd new file mode 100644 index 00000000..8c9ed200 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/10_samenvatting.Rmd @@ -0,0 +1,15 @@ +# Samenvatting + +1 Uitvoering + +1.1 Voorbereiding terreinwerk + +1.2 Navigeren naar proefvlak (indien locatie op voorhand bepaald) + +1.3 Uitzetten van het proefvlak + +1.4 Foto (optioneel) + +1.5 Vegetatieopname + +2 Registratie en bewaring van resultaten diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/11_referenties.Rmd b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/11_referenties.Rmd new file mode 100644 index 00000000..ec4bb8f3 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/11_referenties.Rmd @@ -0,0 +1,4 @@ +# Referenties {.unnumbered} + +::: {#refs} +::: diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/12_appendices.Rmd b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/12_appendices.Rmd new file mode 100644 index 00000000..0d2f329c --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/12_appendices.Rmd @@ -0,0 +1,122 @@ +# (APPENDIX) Bijlagen {.unnumbered} + +# Bijlage: instelwaarden {#bijlage-params} + +```{r params-tabel} +vertaal <- c( + plot_width_openveg_m = "breedte proefvlak in open vegetaties in meter", + plot_length_openveg_m = "lengte proefvlak in open vegetaties in meter", + plot_width_forest_m = "breedte proefvlak in bosvegetaties in meter", + plot_length_forest_m = "lengte proefvlak in bosvegetaties in meter", + plot_shape = "vorm proefvlak", + height_herbshrublayer_openveg_m = "hoogte overgang kruid/struiklaag in open vegetaties in meter", + height_herbshrublayer_forest_m = "hoogte overgang kruidlaag/struiklaag in bosvegetaties in meter", + height_shrubtreelayer_openveg_m = "hoogte overgang struik/boomlaag in open vegetaties in meter", + height_shrubtreelayer_forest_m = "hoogte overgang struik/boomlaag in bosvegetaties in meter", + species_list = "soortenlijsten", + phenology_values = "fenologieschaal", + coverscale_species = "bedekkingsschaal voor soorten", + coverscale_structure = "bedekkingsschaal voor structuur") + +params2 <- params +attributes(params2)$class <- NULL + +params2 %>% + tibble::enframe() %>% + mutate(name = recode(name, !!!vertaal)) %>% + rename(naam = name, waarde = value) %>% + pander::pander(split.tables = Inf) +``` + +# Bijlage: opnameformulier {#bijlage-opnameformulier} + +```{r image11, out.width= '100%'} +knitr::include_graphics(path = './media/image11.png') +``` + +**Achtergrondinformatie** + +Grootte van het proefvlak: + +- Open vegetaties + + - `r params$plot_length_openveg_m` m x `r params$plot_width_openveg_m` m + - 1% = `r params$plot_length_openveg_m/10` m x `r params$plot_width_openveg_m/10` m + +- Bossen + + - `r params$plot_length_forest_m` m x `r params$plot_width_forest_m` m + - 1% = `r params$plot_length_forest_m/10` m x `r params$plot_width_forest_m/10` m + +# Bijlage: Andere mogelijke opnameschalen + +Tabel \@ref(tab:coverscales-table) geeft een overzicht van actieve opnameschalen in INBOVEG, die in aanmerking komen voor proefvlak-opnames. + +```{r coverscales-table, eval = file.exists(file.path(protocol_path, "data", "cover_scales.csv"))} +pander(cover_scales %>% + filter(ListName != params$coverscale_species) %>% + select(-SortCode) %>% + group_by(ListName) %>% + summarise(codes = paste(Code, collapse = ", ")), + caption = add_label("Tabel met actieve bedekkingschalen in InboVeg"), + split.tables = Inf) +``` + +# Bijlage: inschatting bedekkingen oefenen + +Elk blauw vierkantje in de linkerbenedenhoek bij elke figuur vertegenwoordigt 1% van de volledige oppervlakte. + +```{r plots-bedekking, results = "asis", warning=FALSE, message=FALSE, cache = FALSE} +figdata <- cover_scale_selected %>% + mutate( + gecombineerd = !(is.na(AbuLower)), + AbuLower = ifelse(is.na(AbuLower), + max(AbuLower, na.rm = TRUE), + AbuLower), + AbuUpper = ifelse(is.na(AbuUpper), + 2 * max(AbuUpper, na.rm = TRUE), + AbuUpper), + aantal = round(AbuLower + (AbuUpper - AbuLower) / 2), + bedekking = PctValue2 / 100) %>% + select(code = Code, + bedekking, + aantal, + gecombineerd) %>% + arrange(desc(gecombineerd), aantal, bedekking) + +purrr::pmap( + list(code = figdata$code, + bedekking = figdata$bedekking, + aantal = figdata$aantal, + gecombineerd = figdata$gecombineerd), + function(code, bedekking, aantal, gecombineerd) { + knit_expand("_childdoc_visualisatie_bedekkingen.Rmd", + cd = code, + bd = bedekking, + at = aantal, + gc = gecombineerd) + }) %>% + paste(collapse = "\n\n") -> rmd + +res <- knit_child(text = rmd, quiet = TRUE) + +cat(res, sep = "\n") +``` + +# Bijlage: Fenologiecodes INBO + +| Code | Verklaring | +|:-----|:---------------------------------------------| +| \- | n.v.t. | +| \+ | Dood | +| 0 | niet genoteerd | +| Dis | uitgezaaid (oude bloeistengels nog aanwezig) | +| Fl | Bloeiend | +| Fr | met vruchten | +| K | Kiemplant | +| Kn | Bloemknoppen | +| sp | Sporenvormend | +| V | Vegetatief | + +Enkel de codes + (dood) en K (kiemplant) moeten toegevoegd worden indien van toepassing. +De andere codes zijn facultatief. diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/13_subprotocols.Rmd b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/13_subprotocols.Rmd new file mode 100644 index 00000000..c03e51e6 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/13_subprotocols.Rmd @@ -0,0 +1,20 @@ +```{r, results="asis"} +if (exists("params")) { + if (!is.null(params$dependencies)) { + mdfiles <- paste0(map_chr(params$dependencies, "protocol_code"), + "-", + map_chr(params$dependencies, "version_number"), + ".md") + child_docs <- file.path(map_chr(params$dependencies, "version_number"), + mdfiles) + + child_docs <- child_docs[map_lgl(params$dependencies, "appendix")] + + if (length(child_docs) > 0) { + res <- map(child_docs, knit_child, quiet = TRUE) + cat( + c("# (PART) Subprotocols {.unnumbered}", "", unlist(res)), sep = "\n") + } + } +} +``` diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/NEWS.md b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/NEWS.md new file mode 100644 index 00000000..70dc0bce --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/NEWS.md @@ -0,0 +1,23 @@ +# Wijzigingen t.o.v. vorige versies + +```{=html} + +``` +## [2023.03](../2023.03/index.html) + +- parametrisatie van het protocol +- overzetting van protocol SVP-401 v1.1 van docx formaat naar html formaat diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/_bookdown.yml b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/_bookdown.yml new file mode 100644 index 00000000..5f7ac11c --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/_bookdown.yml @@ -0,0 +1,17 @@ +book_filename: sfp_401_nl_vegopname_terrest.Rmd +output_dir: ../../../../../protocoldocs/docs/sfp/4_vegetation/sfp_401_nl_vegopname_terrest +rmd_files: [index.Rmd,NEWS.md,01_afhankelijkheden.Rmd,02_onderwerp.Rmd,03_beperkingen.Rmd,04_principe.Rmd,05_competenties.Rmd,06_benodigdheden.Rmd,07_werkwijze.Rmd,08_kwaliteitszorg.Rmd,09_veiligheid.Rmd,10_samenvatting.Rmd,11_referenties.Rmd,12_appendices.Rmd,13_subprotocols.Rmd] +delete_merged_file: true +language: + label: + fig: 'Figuur ' + tab: 'Tabel ' + eq: 'Vergelijking ' + thm: 'Theorema ' + lem: 'Lemma ' + def: 'Definitie ' + cor: 'Bijgevolg ' + prp: 'Propositie ' + ex: 'Voorbeeld ' + proof: 'Bewijs. ' + remark: 'Opmerking. ' diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/_childdoc_visualisatie_bedekkingen.Rmd b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/_childdoc_visualisatie_bedekkingen.Rmd new file mode 100644 index 00000000..f698d5b4 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/_childdoc_visualisatie_bedekkingen.Rmd @@ -0,0 +1,12 @@ +```{r bedekking-{{cd}}} +plotdata <- calc_discs(aantal = {{at}}, + bedekking = {{bd}}) + +plot <- plot_discs(klasse = '{{cd}}', + data = plotdata, + bedekking = signif({{bd}}, 2) * 100, + aantal = {{at}}, + gecombineerd = {{gc}}) + +plot +``` diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/_output.yml b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/_output.yml new file mode 100644 index 00000000..eeecbe1c --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/_output.yml @@ -0,0 +1,19 @@ +bookdown::gitbook: + split_by: none + split_bib: false + template: !expr protocolhelper:::protocol_css() + css: css/inbo_rapport.css + config: + toc: + before: + - + - + after: + -
  • +bookdown::pdf_book: + keep_tex: false + pandoc_args: --top-level-division=chapter + template: !expr protocolhelper:::protocol_tex() + diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/_visualisatie_bedekking.R b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/_visualisatie_bedekking.R new file mode 100644 index 00000000..a737db0d --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/_visualisatie_bedekking.R @@ -0,0 +1,97 @@ + +## ----------------------------------------------------------------------------------------------------------- +theme_nothing <- function(base_size = 9) +{ + theme_bw(base_size = base_size) %+replace% + theme( + line = element_blank(), + axis.text = element_blank() + ) +} + +## ----------------------------------------------------------------------------------------------------------- +calc_discs <- function(aantal, bedekking) { + set.seed(354) + p <- ppp(runif(aantal), + runif(aantal)) + w <- as.owin(list(xrange = c(0,1), yrange = c(0,1))) + disc_radius <- list(minimum = NA, + objective = 1) + max_x <- 0.35 + while (disc_radius$objective > 1e-05) { + disc_radius <- optimize( + function(x) { + (bedekking - + area.owin( + discs( + centres = p, + radii = rep(x, p$n), + mask = TRUE + ) + ) / area.owin(w) + )^2 + }, + interval = c(0, max_x) + ) + max_x <- max_x / 2 + } + + + p <- discs(centres = p, + radii = rep(disc_radius$minimum, p$n), + mask = FALSE, + npoly = 2^4, + separate = FALSE) + + p <- as.data.frame(p) + p$id <- if (is.null(p$id)) { + p$id <- 1 + p$sign <- 1 + } else { + p$id + } + + return(as_tibble(p)) +} + + +## ----------------------------------------------------------------------------------------------------------- +plot_discs <- function(klasse, data, bedekking, aantal, gecombineerd) { + one_percent <- data.frame( + id = rep(1, 4), + x = c(0, 0, 0.1, 0.1), + y = c(0, 0.1, 0.1, 0) + ) + + custom_title <- ifelse(gecombineerd, + paste0(klasse, + " (bedekking in figuur = ", + bedekking, + "% en aantal in figuur = ", + aantal, + ")" + ), + paste0(klasse, + " (bedekking in figuur = ", + bedekking, + "%)" + ) + ) + + + data %>% + ggplot(aes(x = x, y = y)) + + geom_polygon(aes(group = id), fill = "springgreen4") + + geom_polygon(data = one_percent, colour = "blue4", fill = NA) + + scale_x_continuous(limits = c(0,1), expand = c(0,0)) + + scale_y_continuous(limits = c(0,1), expand = c(0,0)) + + coord_equal() + + theme_nothing() + + labs(title = custom_title) + + theme(plot.title = element_text(size = 9), + legend.position = "none", + axis.title = element_blank()) +} + + + diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/data/cover_scales.csv b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/data/cover_scales.csv new file mode 100644 index 00000000..0d68082b --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/data/cover_scales.csv @@ -0,0 +1,362 @@ +ListName,Code,SortCode,PctValue,PctValue2,CodeDescription,PctLower,PctUpper,AbuLower,AbuUpper,AbuMax,AbuDenom,AbuDescription,LocalLower,LocalUpper +Barkman (aangepast),+a,10,2.0,1.06,"individuen weinig talrijk (ca 3-20) in het proefvlak, bekekking tussen 1 -2%",1.0,2.00,3,20,100,,weinig talrijk,, +Barkman (aangepast),+b,20,4.0,2.17,"individuen weinig talrijk (ca 3-20) in het proefvlak, bekekking tussen 2 - 5 %",2.0,5.00,3,20,100,,weinig talrijk,, +Barkman (aangepast),+p,30,1.0,0.06,"individuen weinig talrijk (ca 3-20) in het proefvlak, bekekking minder dan 1%",0.0,1.00,3,20,100,,weinig talrijk,, +Barkman (aangepast),+r,40,1.0,0.01,sporadisch (1 -2 individuen) in het proefvlak,0.0,1.00,1,2,100,,1 of 2,, +Barkman (aangepast),1a,50,2.0,1.30,"individuen talrijk (ca 20-100) in het proefvlak, bedekking tussen 1 - 2 %",1.0,2.00,20,100,100,,talrijk,, +Barkman (aangepast),1b,60,4.0,2.90,"individuen talrijk (ca 20-100) in het proefvlak, bedekking tussen 2 - 5 %",2.0,5.00,20,100,100,,talrijk,, +Barkman (aangepast),1p,70,1.0,0.30,"individuen talrijk (ca 20-100) in het proefvlak, bedekking minder dan 1%",0.0,1.00,20,100,100,,talrijk,, +Barkman (aangepast),2a,80,8.0,8.75,"aantal individuen willekeurig, bedekking 5 - 12,5 %",5.0,12.50,,,,,willekeurig,, +Barkman (aangepast),2b,90,18.0,18.75,"aantal individuen willekeurig, bedekking 12,5 - 25 %",12.5,25.00,,,,,willekeurig,, +Barkman (aangepast),2m,100,4.0,3.00,"individuen zeer talrijk in het proefvlak, bedekking 1 - 5 %",1.0,5.00,100,,,,willekeurig,, +Barkman (aangepast),3a,110,31.0,31.25,"aantal individuen willekeurig, bedekking 25 - 37,5 %",25.0,37.50,,,,,willekeurig,, +Barkman (aangepast),3b,120,43.0,43.75,"aantal individuen willekeurig, bedekking 37,5 - 50 %",37.5,50.00,,,,,willekeurig,, +Barkman (aangepast),4a,130,56.0,56.25,"aantal individuen willekeurig, bedekking 50 - 62,5 %",50.0,62.50,,,,,willekeurig,, +Barkman (aangepast),4b,140,68.0,68.75,"aantal individuen willekeurig, bedekking 62,5 - 75 %",62.5,75.00,,,,,willekeurig,, +Barkman (aangepast),5a,150,81.0,81.25,"aantal individuen willekeurig, bedekking 75 - 87,5 %",75.0,87.50,,,,,willekeurig,, +Barkman (aangepast),5b,160,93.0,93.75,"aantal individuen willekeurig, bedekking 87,5 - 100 %",87.5,100.00,,,,,willekeurig,, +"Barkman, Doing & Segal",+a,10,1.0,1.06,"individuen weinig talrijk (ca 3-20) in het proefvlak, bekekking tussen 1 -2%",1.0,2.00,3,20,100,,weinig talrijk,, +"Barkman, Doing & Segal",+b,20,2.0,2.17,"individuen weinig talrijk (ca 3-20) in het proefvlak, bekekking tussen 2 - 5 %",2.0,5.00,3,20,100,,weinig talrijk,, +"Barkman, Doing & Segal",+p,30,1.0,0.06,"individuen weinig talrijk (ca 3-20) in het proefvlak, bekekking minder dan 1%",0.0,1.00,3,20,100,,weinig talrijk,, +"Barkman, Doing & Segal",+r,40,1.0,0.01,sporadisch (1 -2 individuen) in het proefvlak,0.0,1.00,1,2,100,,1 of 2,, +"Barkman, Doing & Segal",1a,50,2.0,1.30,"individuen talrijk (ca 20-100) in het proefvlak, bedekking tussen 1 - 2 %",1.0,2.00,20,100,100,,talrijk,, +"Barkman, Doing & Segal",1b,60,3.0,2.90,"individuen talrijk (ca 20-100) in het proefvlak, bedekking tussen 2 - 5 %",2.0,5.00,20,100,100,,talrijk,, +"Barkman, Doing & Segal",1p,70,1.0,0.30,"individuen talrijk (ca 20-100) in het proefvlak, bedekking minder dan 1%",0.0,1.00,20,100,100,,talrijk,, +"Barkman, Doing & Segal",2a,80,8.0,8.75,"aantal individuen willekeurig, bedekking 5 - 12,5 %",5.0,12.50,,,,,willekeurig,, +"Barkman, Doing & Segal",2b,90,18.0,18.75,"aantal individuen willekeurig, bedekking 12,5 - 25 %",12.5,25.00,,,,,willekeurig,, +"Barkman, Doing & Segal",2m,100,4.0,3.00,"individuen zeer talrijk (> 100) in het proefvlak, bedekking 1 - 5 %",1.0,5.00,100,,,,willekeurig,, +"Barkman, Doing & Segal",2p,110,1.0,0.50,"individuen zeer talrijk (> 100) in het proefvlak, bedekking minder dan 1% %",0.0,1.00,100,,,,,, +"Barkman, Doing & Segal",3a,120,31.0,31.25,"aantal individuen willekeurig, bedekking 25 - 37,5 %",25.0,37.50,,,,,willekeurig,, +"Barkman, Doing & Segal",3b,130,43.0,43.75,"aantal individuen willekeurig, bedekking 37,5 - 50 %",37.5,50.00,,,,,willekeurig,, +"Barkman, Doing & Segal",4a,140,56.0,56.25,"aantal individuen willekeurig, bedekking 50 - 62,5 %",50.0,62.50,,,,,willekeurig,, +"Barkman, Doing & Segal",4b,150,68.0,68.75,"aantal individuen willekeurig, bedekking 62,5 - 75 %",62.5,75.00,,,,,willekeurig,, +"Barkman, Doing & Segal",5a,160,81.0,81.25,"aantal individuen willekeurig, bedekking 75 - 87,5 %",75.0,87.50,,,,,willekeurig,, +"Barkman, Doing & Segal",5b,170,93.0,93.75,"aantal individuen willekeurig, bedekking 87,5 - 100 %",87.5,100.00,,,,,willekeurig,, +"Barkman, Doing & Segal",5c,180,100.0,100.00,"aantal individuen willekeurig, bedekking 100 %",100.0,100.00,,,,,,, +"Barkman, Doing & Segal",r,190,1.0,0.01,sporadisch in de hele vegetatie,0.0,1.00,1,2,100,,,, +Beheermonitoringsschaal2017,ZS,10,0.5,0.10,Zeer schaars,0.0,5.00,1,3,50,,1 tot 3 individuen,, +Beheermonitoringsschaal2017,ZS2,20,0.5,0.04,"Zeer schaars - lokale bedekking 5% afwijkende vegetatie 37,5%",0.0,1.90,1,3,50,,,25,50 +Beheermonitoringsschaal2017,ZS4,30,0.1,0.02,"Zeer schaars - lokale bedekking 5% afwijkende vegetatie 18,75%",0.0,0.90,1,3,50,,,12.5,25 +Beheermonitoringsschaal2017,ZS8,40,0.1,0.01,"Zeer schaars - lokale bedekking 5% afwijkende vegetatie 6,25%",0.0,0.30,1,3,50,,,0,12.5 +Beheermonitoringsschaal2017,ZSR,50,0.1,0.01,"Zeer schaars - lokale bedekking in rand, rand 6,25%",0.0,0.30,1,3,50,,,0,12.5 +Beheermonitoringsschaal2017,S,60,1.0,0.33,schaars,0.0,5.00,4,9,50,,4 tot 9 individuen,, +Beheermonitoringsschaal2017,S2,70,0.4,0.12,"Schaars - lokale bedekking 5% afwijkende vegetatie 37,5%",0.0,1.90,4,9,50,,,25,50 +Beheermonitoringsschaal2017,S4,80,0.2,0.06,"Schaars - lokale bedekking 5% afwijkende vegetatie 18,75%",0.0,0.90,4,9,50,,,12.5,25 +Beheermonitoringsschaal2017,S8,90,0.1,0.02,"Schaars - lokale bedekking 5% afwijkende vegetatie 6,25%",0.0,0.30,4,9,50,,,0,12.5 +Beheermonitoringsschaal2017,SR,100,0.1,0.02,"Schaars - lokale bedekking in rand, rand 6,25%",0.0,0.30,4,9,50,,,0,12.5 +Beheermonitoringsschaal2017,WT,110,1.5,1.50,Weinig talrijk,0.0,5.00,10,50,50,,10 tot 50 individuen,, +Beheermonitoringsschaal2017,WT2,120,0.6,0.57,"Weinig talrijk - lokale bedekking 5% afwijkende vegetatie 37,5%",0.0,1.90,10,50,50,,,25,50 +Beheermonitoringsschaal2017,WT4,130,0.3,0.27,"Weinig talrijk - lokale bedekking 5% afwijkende vegetatie 18,75%",0.0,0.90,10,50,50,,,12.5,25 +Beheermonitoringsschaal2017,WT8,140,0.1,0.09,"Weinig talrijk - lokale bedekking 5% afwijkende vegetatie 6,25%",0.0,0.30,10,50,50,,,0,12.5 +Beheermonitoringsschaal2017,WTR,150,0.1,0.09,"Weinig talrijk - lokale bedekking in rand, rand 6,25%",0.0,0.30,10,50,50,,,0,12.5 +Beheermonitoringsschaal2017,T,160,3.0,2.50,Talrijk,0.0,5.00,50,,,,meer dan 50 individuen,, +Beheermonitoringsschaal2017,T2,170,1.1,0.95,"Talrijk - lokale bedekking 5% afwijkende vegetatie 37,5%",0.0,1.90,50,,,,,25,50 +Beheermonitoringsschaal2017,T4,180,0.6,0.45,"Talrijk - lokale bedekking 5% afwijkende vegetatie 18,75%",0.0,0.90,50,,,,,12.5,25 +Beheermonitoringsschaal2017,T8,190,0.2,0.15,"Talrijk - lokale bedekking 5% afwijkende vegetatie 6,25%",0.0,0.30,50,,,,,0,12.5 +Beheermonitoringsschaal2017,TR,200,0.2,0.15,"Talrijk - lokale bedekking in rand, rand 6,25%",0.0,0.30,50,,,,,0,12.5 +Beheermonitoringsschaal2017,B,210,15.0,15.00,Bedekkend,5.0,25.00,,,,,niet van belang,, +Beheermonitoringsschaal2017,B2,220,5.6,5.65,"Bedekkend - lokale bedekking 5% afwijkende vegetatie 37,5%",1.9,9.40,,,,,,25,50 +Beheermonitoringsschaal2017,B4,230,2.8,2.80,"Bedekkend - lokale bedekking 5% afwijkende vegetatie 18,75%",0.9,4.70,,,,,,12.5,25 +Beheermonitoringsschaal2017,B8,240,0.9,0.95,"Bedekkend - lokale bedekking 5% afwijkende vegetatie 6,25%",0.3,1.60,,,,,,0,12.5 +Beheermonitoringsschaal2017,BR,250,0.9,0.95,"Bedekkend - lokale bedekking in rand, rand 6,25%",0.3,1.60,,,,,,0,12.5 +Beheermonitoringsschaal2017,KB,260,37.5,37.50,Kwartbedekkend,25.0,50.00,,,,,niet van belang,, +Beheermonitoringsschaal2017,KB2,270,14.1,14.10,"Kwartbedekkend - lokale bedekking 5% afwijkende vegetatie 37,5%",9.4,18.80,,,,,,25,50 +Beheermonitoringsschaal2017,KB4,280,7.0,7.05,"Kwartbedekkend - lokale bedekking 5% afwijkende vegetatie 18,75%",4.7,9.40,,,,,,12.5,25 +Beheermonitoringsschaal2017,KB8,290,2.3,2.35,"Kwartbedekkend - lokale bedekking 5% afwijkende vegetatie 6,25%",1.6,3.10,,,,,,0,12.5 +Beheermonitoringsschaal2017,KBR,300,0.9,2.35,"Kwartbedekkend - lokale bedekking in rand, rand 6,25%",1.6,3.10,,,,,,0,12.5 +Beheermonitoringsschaal2017,HB,310,62.5,62.50,Halfbedekkend,50.0,75.00,,,,,niet van belang,, +Beheermonitoringsschaal2017,HB2,320,23.4,23.45,"Halfbedekkend - lokale bedekking 5% afwijkende vegetatie 37,5%",18.8,28.10,,,,,,25,50 +Beheermonitoringsschaal2017,HB4,330,11.7,11.75,"Halfbedekkend - lokale bedekking 5% afwijkende vegetatie 18,75%",9.4,14.10,,,,,,12.5,25 +Beheermonitoringsschaal2017,HB8,340,3.9,3.90,"Halfbedekkend - lokale bedekking 5% afwijkende vegetatie 6,25%",3.1,4.70,,,,,,0,12.5 +Beheermonitoringsschaal2017,HBR,350,1.5,3.90,"Halfbedekkend - lokale bedekking in rand, rand 6,25%",3.1,4.70,,,,,,0,12.5 +Beheermonitoringsschaal2017,D,360,87.5,87.50,Dominant,75.0,100.00,,,,,niet van belang,, +Beheermonitoringsschaal2017,D2,370,32.8,32.80,"Dominant - lokale bedekking 5% afwijkende vegetatie 37,5%",28.1,37.50,,,,,,25,50 +Beheermonitoringsschaal2017,D4,380,16.4,16.45,"Dominant - lokale bedekking 5% afwijkende vegetatie 18,75%",14.1,18.80,,,,,,12.5,25 +Beheermonitoringsschaal2017,D8,390,5.5,5.50,"Dominant - lokale bedekking 5% afwijkende vegetatie 6,25%",4.7,6.30,,,,,,0,12.5 +Beheermonitoringsschaal2017,DR,,,5.50,"Halfbedekkend - lokale bedekking in rand, rand 6,25%",4.7,6.30,,,,,,0,12.5 +Beheersmonitoringsscha,Aa,10,15.0,15.00,Abundant,5.0,25.00,,,,,,, +Beheersmonitoringsscha,Ab,20,5.0,2.50,Abundant,0.0,5.00,101,,,,,, +Beheersmonitoringsscha,C,30,37.5,37.50,Co-dominant,25.0,50.00,,,,,irrelevant,, +Beheersmonitoringsscha,Da,40,87.5,87.50,Dominant,75.0,100.00,,,,,irrelevant,, +Beheersmonitoringsscha,Db,50,62.5,62.50,Dominant,50.0,75.00,,,,,irrelevant,, +Beheersmonitoringsscha,F,60,4.0,0.15,Frequent,0.0,5.00,21,100,1000,,,, +Beheersmonitoringsscha,O,70,3.0,0.04,Occasioneel/verspreid,0.0,5.00,11,20,1000,,,, +Beheersmonitoringsscha,R,80,1.0,0.01,Rare/zeer schaars,0.0,5.00,1,3,1000,,,, +Beheersmonitoringsscha,S,90,0.5,0.02,Schaars,0.0,5.00,4,10,1000,,,, +Braun/Blanquet,r,5,1.0,0.08,Solitary,0.0,1.00,1,2,10,,,, +Braun/Blanquet,+,10,2.0,1.33,Few,1.0,2.00,3,10,10,,,, +Braun/Blanquet,1,20,3.0,3.50,,2.0,5.00,,,,,,, +Braun/Blanquet,2,30,13.0,15.00,,5.0,25.00,,,,,,, +Braun/Blanquet,3,40,38.0,37.50,,25.0,50.00,,,,,,, +Braun/Blanquet,4,50,68.0,62.50,,50.0,75.00,,,,,,, +Braun/Blanquet,5,60,88.0,87.50,,75.0,100.00,,,,,,, +"Braun/Blanquet (B,D&S)",r,100,1.0,0.08,Solitary,0.0,1.00,1,2,10,,,, +"Braun/Blanquet (B,D&S)",+,200,2.0,1.33,Few,1.0,2.00,3,10,10,,,, +"Braun/Blanquet (B,D&S)",1,300,3.0,2.50,,2.0,3.00,,,,,,, +"Braun/Blanquet (B,D&S)",2m,400,4.0,4.00,,3,5.00,,,,,,, +"Braun/Blanquet (B,D&S)",2a,500,8.0,7.50,,5,10.00,,,,,,, +"Braun/Blanquet (B,D&S)",2b,600,18.0,17.50,,10.0,25.00,,,,,,, +"Braun/Blanquet (B,D&S)",3,700,38.0,37.50,,25.0,50.00,,,,,,, +"Braun/Blanquet (B,D&S)",4,800,68.0,62.50,,50.0,75.00,,,,,,, +"Braun/Blanquet (B,D&S)",5,900,88.0,87.50,,75.0,100.00,,,,,,, +BraunBlanquet (BDS) Nr,1,10,1.0,0.08,Solitary,0.0,1.00,1,2,10,,,, +BraunBlanquet (BDS) Nr,2,20,2.0,1.33,Few,1.0,2.00,3,10,10,,,, +BraunBlanquet (BDS) Nr,3,30,3.0,2.50,,2.0,3.00,,,,,,, +BraunBlanquet (BDS) Nr,4,40,4.0,4.00,,3,5.00,,,,,,, +BraunBlanquet (BDS) Nr,5,50,8.0,7.50,,5,10.00,,,,,,, +BraunBlanquet (BDS) Nr,6,60,18.0,17.50,,10.0,25.00,,,,,,, +BraunBlanquet (BDS) Nr,7,70,38.0,37.50,,25.0,50.00,,,,,,, +BraunBlanquet (BDS) Nr,8,80,68.0,62.50,,50.0,75.00,,,,,,, +BraunBlanquet (BDS) Nr,9,90,88.0,87.50,,75.0,100.00,,,,,,, +BraunBlanquet Numeriek,1,10,1.0,0.08,Solitary,0.0,1.00,1,2,10,,,, +BraunBlanquet Numeriek,2,20,2.0,1.33,Few,1.0,2.00,3,10,10,,,, +BraunBlanquet Numeriek,3,30,3.0,3.50,,2.0,5.00,,,,,,, +BraunBlanquet Numeriek,4,40,13.0,15.00,,5,25.00,,,,,,, +BraunBlanquet Numeriek,5,50,38.0,37.50,,25.0,50.00,,,,,,, +BraunBlanquet Numeriek,6,60,68.0,62.50,,50.0,75.00,,,,,,, +BraunBlanquet Numeriek,7,70,88.0,87.50,,75.0,100.00,,,,,,, +Londo (1) volledig,.1,10,1.0,1.00,,1.0,,,,,,,, +Londo (1) volledig,.2,20,2.0,2.00,,1.0,3.00,,,,,,, +Londo (1) volledig,.4,30,4.0,4.00,,3.0,5.00,,,,,,, +Londo (1) volledig,1-,35,7.0,7.50,,5.0,10.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,1,40,10.0,10.00,,5.0,15.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,1+,60,12.0,12.50,,10.0,15.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,2-,75,17.0,17.50,,15.0,20.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,2,80,20.0,20.00,,15.0,25.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,2+,100,22.0,22.50,,20.0,25.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,3-,105,27.0,27.50,,25.0,30.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,3,110,30.0,30.00,,25.0,35.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,3+,130,32.0,32.50,,30.0,35.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,4-,135,37.0,37.50,,35.0,40.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,4,140,40.0,40.00,,35.0,45.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,4+,160,42.0,42.50,,40.0,45.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,5-,165,47.0,47.50,,45.0,50.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,5,170,50.0,50.00,,45.0,55.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,5+,190,52.0,52.50,,50.0,55.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,6-,195,57.0,57.50,,55.0,60.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,6,200,60.0,60.00,,55.0,65.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,6+,220,62.0,62.50,,60.0,65.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,7-,225,67.0,67.50,,65.0,70.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,7,230,70.0,70.00,,65.0,75.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,7+,250,72.0,72.50,,70.0,75.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,8-,255,77.0,77.50,,75.0,80.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,8,260,80.0,80.00,,75.0,85.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,8+,280,82.0,82.50,,80.0,85.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,9-,285,87.0,87.50,,85.0,90.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,9,290,90.0,90.00,,85.0,95.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,9+,310,92.0,92.50,,90.0,95.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,10,315,97.0,97.50,,95.0,100.00,,,,,aantal individuen willekeurig,, +Londo (1) volledig,a1,320,1.0,0.30,,0.0,1.00,21,100,100,,talrijk - ampulis,, +Londo (1) volledig,a2,330,2.0,1.61,,1.0,3.00,21,100,100,,talrijk - ampulis,, +Londo (1) volledig,a4,340,4.0,3.61,,3.0,5.00,21,100,100,,talrijk - ampulis,, +Londo (1) volledig,m1,350,1.0,0.50,,0.0,1.00,100,,,,zeer talrijk >100 - multum,, +Londo (1) volledig,m2,360,2.0,2.00,,1.0,3.00,100,,,,zeer talrijk >100 - multum,, +Londo (1) volledig,m4,370,4.0,4.00,,3.0,5.00,100,,,,zeer talrijk >100 - multum,, +Londo (1) volledig,p1,380,1.0,0.06,,0.0,1.00,4,20,100,,weinig talrijk - paulum,, +Londo (1) volledig,p2,390,2.0,1.12,,1.0,3.00,4,20,100,,weinig talrijk - paulum,, +Londo (1) volledig,p4,400,4.0,3.12,,3.0,5.00,4,20,100,,weinig talrijk - paulum,, +Londo (1) volledig,r1,410,1.0,0.01,,0.0,1.00,1,3,100,,sporadisch - raro,, +Londo (1) volledig,r2,420,2.0,1.02,,1.0,3.00,1,3,100,,sporadisch - raro,, +Londo (1) volledig,r4,430,4.0,3.02,,3.0,5.00,1,3,100,,sporadisch - raro,, +Londo (2) verkort,1,10,10.0,10.00,,5.0,15.00,,,,,,, +Londo (2) verkort,10,20,97.0,97.50,,95.0,100.00,,,,,,, +Londo (2) verkort,2,30,20.0,20.00,,15.0,25.00,,,,,,, +Londo (2) verkort,3,40,30.0,30.00,,25.0,35.00,,,,,,, +Londo (2) verkort,4,50,40.0,40.00,,35.0,45.00,,,,,,, +Londo (2) verkort,5,60,50.0,50.00,,45.0,55.00,,,,,,, +Londo (2) verkort,6,70,60.0,60.00,,55.0,65.00,,,,,,, +Londo (2) verkort,7,80,70.0,70.00,,65.0,75.00,,,,,,, +Londo (2) verkort,8,90,80.0,80.00,,75.0,85.00,,,,,,, +Londo (2) verkort,9,100,90.0,90.00,,85.0,95.00,,,,,,, +Londo (2) verkort,a,110,3.0,1.51,,0.0,5.00,21,100,100,,talrijk - ampulis,, +Londo (2) verkort,m,120,4.0,2.50,,0.0,5.00,100,,,,zeer talrijk >100 - multum,, +Londo (2) verkort,p,130,2.0,0.30,,0.0,5.00,4,20,100,,weinig talrijk - paulum,, +Londo (2) verkort,r,140,1.0,0.05,,0.0,5.00,1,3,100,,sporadisch - raro,, +Londo origineel,.1,10,1.0,0.50,,0.0,1.00,,,,,,, +Londo origineel,.2,20,2.0,2.00,,1.0,3.00,,,,,,, +Londo origineel,.4,30,4.0,4.00,,3.0,5.00,,,,,,, +Londo origineel,1-,40,7.0,7.50,,5.0,10.00,,,,,,, +Londo origineel,1,55,10.0,10.00,,5.0,15.00,,,,,,, +Londo origineel,1+,60,12.0,12.50,,10.0,15.00,,,,,,, +Londo origineel,2,80,20.0,20.00,,15.0,25.00,,,,,,, +Londo origineel,3,110,30.0,30.00,,25.0,35.00,,,,,,, +Londo origineel,4,140,40.0,40.00,,35.0,45.00,,,,,,, +Londo origineel,5-,160,47.5,47.50,,45.0,50.00,,,,,,, +Londo origineel,5,170,50.0,50.00,,45.0,55.00,,,,,,, +Londo origineel,5+,180,52.5,52.50,,50.0,55.00,,,,,,, +Londo origineel,6,200,60.0,60.00,,55.0,65.00,,,,,,, +Londo origineel,7,230,70.0,70.00,,65.0,75.00,,,,,,, +Londo origineel,8,260,80.0,80.00,,75.0,85.00,,,,,,, +Londo origineel,9,290,90.0,90.00,,85.0,95.00,,,,,,, +Londo origineel,10,300,97.0,97.50,,95.0,100.00,,,,,,, +Londo origineel,a1,320,1.0,0.30,,0.0,1.00,21,100,100,,talrijk - ampulis,, +Londo origineel,a2,330,2.0,1.61,,1.0,3.00,21,100,100,,talrijk - ampulis,, +Londo origineel,a4,340,4.0,3.61,,3.0,5.00,21,100,100,,talrijk - ampulis,, +Londo origineel,m1,350,1.0,0.50,,0.0,1.00,100,,,,zeer talrijk >100 - multum,, +Londo origineel,m2,360,2.0,2.00,,1.0,3.00,100,,,,zeer talrijk >100 - multum,, +Londo origineel,m4,370,4.0,4.00,,3.0,5.00,100,,,,zeer talrijk >100 - multum,, +Londo origineel,p1,380,1.0,0.06,,0.0,1.00,4,20,100,,weinig talrijk - paulum,, +Londo origineel,p2,390,2.0,1.12,,1.0,3.00,4,20,100,,weinig talrijk - paulum,, +Londo origineel,p4,400,4.0,3.12,,3.0,5.00,4,20,100,,weinig talrijk - paulum,, +Londo origineel,r1,410,1.0,0.01,,0.0,1.00,1,3,100,,sporadisch - raro,, +Londo origineel,r2,420,2.0,1.02,,1.0,3.00,1,3,100,,sporadisch - raro,, +Londo origineel,r4,430,4.0,3.02,,3.0,5.00,1,3,100,,sporadisch - raro,, +Monitoringschaal,1,10,20.0,10.00,,0.0,20.00,,,,,,, +Monitoringschaal,2,20,40.0,30.00,,20.0,40.00,,,,,,, +Monitoringschaal,3,30,60.0,50.00,,40.0,60.00,,,,,,, +Monitoringschaal,4,40,80.0,70.00,,60.0,80.00,,,,,,, +Monitoringschaal,5,50,99.0,90.00,,80.0,100.00,,,,,,, +Pct-1,0,0,0.0,0.00,,0.0,0.00,,,,,,, +Pct-1,0-x-1,5,0.5,0.50,,0.0,1.00,,,,,,, +Pct-1,1,10,1.0,1.00,,1.0,1.00,,,,,,, +Pct-1,2,20,2.0,1.50,,1.0,2.00,,,,,,, +Pct-1,3,30,3.0,2.50,,2.0,3.00,,,,,,, +Pct-1,4,40,4.0,4.00,,4.0,4.00,,,,,,, +Pct-1,5,50,5.0,5.00,,5.0,5.00,,,,,,, +Pct-1,6,60,6.0,6.00,,6.0,6.00,,,,,,, +Pct-1,7,70,7.0,7.00,,7.0,7.00,,,,,,, +Pct-1,8,80,8.0,8.00,,8.0,8.00,,,,,,, +Pct-1,9,90,9.0,9.00,,9.0,9.00,,,,,,, +Pct-1,10,100,10.0,10.00,,10.0,10.00,,,,,,, +Pct-1,11,110,11.0,11.00,,11.0,11.00,,,,,,, +Pct-1,12,120,12.0,12.00,,12.0,12.00,,,,,,, +Pct-1,13,130,13.0,13.00,,13.0,13.00,,,,,,, +Pct-1,14,140,14.0,14.00,,14.0,14.00,,,,,,, +Pct-1,15,150,15.0,15.00,,15.0,15.00,,,,,,, +Pct-1,16,160,16.0,16.00,,16.0,16.00,,,,,,, +Pct-1,17,170,17.0,17.00,,17.0,17.00,,,,,,, +Pct-1,18,180,18.0,18.00,,18.0,18.00,,,,,,, +Pct-1,19,190,19.0,19.00,,19.0,19.00,,,,,,, +Pct-1,20,200,20.0,20.00,,20.0,20.00,,,,,,, +Pct-1,21,210,21.0,21.00,,21.0,21.00,,,,,,, +Pct-1,22,220,22.0,22.00,,22.0,22.00,,,,,,, +Pct-1,23,230,23.0,23.00,,23.0,23.00,,,,,,, +Pct-1,24,240,24.0,24.00,,24.0,24.00,,,,,,, +Pct-1,25,250,25.0,25.00,,25.0,25.00,,,,,,, +Pct-1,26,260,26.0,26.00,,26.0,26.00,,,,,,, +Pct-1,27,270,27.0,27.00,,27.0,27.00,,,,,,, +Pct-1,28,280,28.0,28.00,,28.0,28.00,,,,,,, +Pct-1,29,290,29.0,29.00,,29.0,29.00,,,,,,, +Pct-1,30,300,30.0,30.00,,30.0,30.00,,,,,,, +Pct-1,31,310,31.0,31.00,,31.0,31.00,,,,,,, +Pct-1,32,320,32.0,32.00,,32.0,32.00,,,,,,, +Pct-1,33,330,33.0,33.00,,33.0,33.00,,,,,,, +Pct-1,34,340,34.0,34.00,,34.0,34.00,,,,,,, +Pct-1,35,350,35.0,35.00,,35.0,35.00,,,,,,, +Pct-1,36,360,36.0,36.00,,36.0,36.00,,,,,,, +Pct-1,37,370,37.0,37.00,,37.0,37.00,,,,,,, +Pct-1,38,380,38.0,38.00,,38.0,38.00,,,,,,, +Pct-1,39,390,39.0,39.00,,39.0,39.00,,,,,,, +Pct-1,40,400,40.0,40.00,,40.0,40.00,,,,,,, +Pct-1,41,410,41.0,41.00,,41.0,41.00,,,,,,, +Pct-1,42,420,42.0,42.00,,42.0,42.00,,,,,,, +Pct-1,43,430,43.0,43.00,,43.0,43.00,,,,,,, +Pct-1,44,440,44.0,44.00,,44.0,44.00,,,,,,, +Pct-1,45,450,45.0,45.00,,45.0,45.00,,,,,,, +Pct-1,46,460,46.0,46.00,,46.0,46.00,,,,,,, +Pct-1,47,470,47.0,47.00,,47.0,47.00,,,,,,, +Pct-1,48,480,48.0,48.00,,48.0,48.00,,,,,,, +Pct-1,49,490,49.0,49.00,,49.0,49.00,,,,,,, +Pct-1,50,500,50.0,50.00,,50.0,50.00,,,,,,, +Pct-1,51,510,51.0,51.00,,51.0,51.00,,,,,,, +Pct-1,52,520,52.0,52.00,,52.0,52.00,,,,,,, +Pct-1,53,530,53.0,53.00,,53.0,53.00,,,,,,, +Pct-1,54,540,54.0,54.00,,54.0,54.00,,,,,,, +Pct-1,55,550,55.0,55.00,,55.0,55.00,,,,,,, +Pct-1,56,560,56.0,56.00,,56.0,56.00,,,,,,, +Pct-1,57,570,57.0,57.00,,57.0,57.00,,,,,,, +Pct-1,58,580,58.0,58.00,,58.0,58.00,,,,,,, +Pct-1,59,590,59.0,59.00,,59.0,59.00,,,,,,, +Pct-1,60,600,60.0,60.00,,60.0,60.00,,,,,,, +Pct-1,61,610,61.0,61.00,,61.0,61.00,,,,,,, +Pct-1,62,620,62.0,62.00,,62.0,62.00,,,,,,, +Pct-1,63,630,63.0,63.00,,63.0,63.00,,,,,,, +Pct-1,64,640,64.0,64.00,,64.0,64.00,,,,,,, +Pct-1,65,650,65.0,65.00,,65.0,65.00,,,,,,, +Pct-1,66,660,66.0,66.00,,66.0,66.00,,,,,,, +Pct-1,67,670,67.0,67.00,,67.0,67.00,,,,,,, +Pct-1,68,680,68.0,68.00,,68.0,68.00,,,,,,, +Pct-1,69,690,69.0,69.00,,69.0,69.00,,,,,,, +Pct-1,70,700,70.0,70.00,,70.0,70.00,,,,,,, +Pct-1,71,710,71.0,71.00,,71.0,71.00,,,,,,, +Pct-1,72,720,72.0,72.00,,72.0,72.00,,,,,,, +Pct-1,73,730,73.0,73.00,,73.0,73.00,,,,,,, +Pct-1,74,740,74.0,74.00,,74.0,74.00,,,,,,, +Pct-1,75,750,75.0,75.00,,75.0,75.00,,,,,,, +Pct-1,76,760,76.0,76.00,,76.0,76.00,,,,,,, +Pct-1,77,770,77.0,77.00,,77.0,77.00,,,,,,, +Pct-1,78,780,78.0,78.00,,78.0,78.00,,,,,,, +Pct-1,79,790,79.0,79.00,,79.0,79.00,,,,,,, +Pct-1,80,800,80.0,80.00,,80.0,80.00,,,,,,, +Pct-1,81,810,81.0,81.00,,81.0,81.00,,,,,,, +Pct-1,82,820,82.0,82.00,,82.0,82.00,,,,,,, +Pct-1,83,830,83.0,83.00,,83.0,83.00,,,,,,, +Pct-1,84,840,84.0,84.00,,84.0,84.00,,,,,,, +Pct-1,85,850,85.0,85.00,,85.0,85.00,,,,,,, +Pct-1,86,860,86.0,86.00,,86.0,86.00,,,,,,, +Pct-1,87,870,87.0,87.00,,87.0,87.00,,,,,,, +Pct-1,88,880,88.0,88.00,,88.0,88.00,,,,,,, +Pct-1,89,890,89.0,89.00,,89.0,89.00,,,,,,, +Pct-1,90,900,90.0,90.00,,90.0,90.00,,,,,,, +Pct-1,91,910,91.0,91.00,,91.0,91.00,,,,,,, +Pct-1,92,920,92.0,92.00,,92.0,92.00,,,,,,, +Pct-1,93,930,93.0,93.00,,93.0,93.00,,,,,,, +Pct-1,94,940,94.0,94.00,,94.0,94.00,,,,,,, +Pct-1,95,950,95.0,95.00,,95.0,95.00,,,,,,, +Pct-1,96,960,96.0,96.00,,96.0,96.00,,,,,,, +Pct-1,97,970,97.0,97.00,,97.0,97.00,,,,,,, +Pct-1,98,980,98.0,98.00,,98.0,98.00,,,,,,, +Pct-1,99,990,99.0,99.00,,99.0,99.00,,,,,,, +Pct-1,100,1000,100.0,100.00,,100.0,100.00,,,,,,, +Pct-10,0,10,0.0,2.50,,0.0,5.00,,,,,,, +Pct-10,10,20,10.0,10.00,,5.0,15.00,,,,,,, +Pct-10,20,30,20.0,20.00,,15.0,25.00,,,,,,, +Pct-10,30,40,30.0,30.00,,25.0,35.00,,,,,,, +Pct-10,40,50,40.0,40.00,,35.0,45.00,,,,,,, +Pct-10,50,60,50.0,50.00,,45.0,55.00,,,,,,, +Pct-10,60,70,60.0,60.00,,55.0,65.00,,,,,,, +Pct-10,70,80,70.0,70.00,,65.0,75.00,,,,,,, +Pct-10,80,90,80.0,80.00,,75.0,85.00,,,,,,, +Pct-10,90,100,90.0,90.00,,85.0,95.00,,,,,,, +Pct-10,100,110,100.0,97.50,,95.0,100.00,,,,,,, +Pct-5,0,10,0.0,1.25,,0.0,2.50,,,,,,, +Pct-5,5,20,5.0,5.00,,2.5,7.50,,,,,,, +Pct-5,10,30,10.0,10.00,,7.5,12.50,,,,,,, +Pct-5,15,40,15.0,15.00,,12.5,17.50,,,,,,, +Pct-5,20,50,20.0,20.00,,17.5,22.50,,,,,,, +Pct-5,25,60,25.0,25.00,,22.5,27.50,,,,,,, +Pct-5,30,70,30.0,30.00,,27.5,32.50,,,,,,, +Pct-5,35,80,35.0,35.00,,32.5,37.50,,,,,,, +Pct-5,40,90,40.0,40.00,,37.5,42.50,,,,,,, +Pct-5,45,100,45.0,45.00,,42.5,47.50,,,,,,, +Pct-5,50,110,50.0,50.00,,47.5,52.50,,,,,,, +Pct-5,55,120,55.0,55.00,,52.5,57.50,,,,,,, +Pct-5,60,130,60.0,60.00,,57.5,62.50,,,,,,, +Pct-5,65,140,65.0,65.00,,62.5,67.50,,,,,,, +Pct-5,70,150,70.0,70.00,,67.5,72.50,,,,,,, +Pct-5,75,160,75.0,75.00,,72.5,77.50,,,,,,, +Pct-5,80,170,80.0,80.00,,77.5,82.50,,,,,,, +Pct-5,85,180,85.0,85.00,,82.5,87.50,,,,,,, +Pct-5,90,190,90.0,90.00,,87.5,92.50,,,,,,, +Pct-5,95,200,95.0,95.00,,92.5,97.50,,,,,,, +Pct-5,100,210,100.0,98.75,,97.5,100.00,,,,,,, +Provoost Decimaal,+,10,2.0,2.50,,0.0,5.00,,,,,,, +Provoost Decimaal,1,20,10.0,10.00,,5.0,15.00,,,,,,, +Provoost Decimaal,1-,30,7.0,7.50,,5,10.00,,,,,,, +Provoost Decimaal,1+,40,12.0,12.50,,10,15.00,,,,,,, +Provoost Decimaal,2,60,20.0,20.00,,15.0,25.00,,,,,,, +Provoost Decimaal,3,70,30.0,30.00,,25.0,35.00,,,,,,, +Provoost Decimaal,4,80,40.0,40.00,,35.0,45.00,,,,,,, +Provoost Decimaal,5,90,50.0,50.00,,45.0,55.00,,,,,,, +Provoost Decimaal,6,100,60.0,60.00,,55.0,65.00,,,,,,, +Provoost Decimaal,7,110,70.0,70.00,,65.0,75.00,,,,,,, +Provoost Decimaal,8,120,80.0,80.00,,75.0,85.00,,,,,,, +Provoost Decimaal,9,130,90.0,90.00,,85.0,95.00,,,,,,, +Provoost Decimaal,10,150,100.0,97.50,,95.0,100.00,,,,,,, +Beheermonitoringsschaal2021,S,,0.5,0.06,schaars,0,5.00,1,4,100,400 m2,schaars,, +Beheermonitoringsschaal2021,WT,,1.5,1.30,weinig talrijk,0,5.00,5,99,100,400 m2,weinig talrijk,, +Beheermonitoringsschaal2021,T,,3.5,2.50,talrijk,0,5.00,100,,,400 m2,talrijk,, +Beheermonitoringsschaal2021,B,,15.0,15.00,bedekkend,5,25.00,,,,,,, +Beheermonitoringsschaal2021,KB,,37.5,37.50,kwart bedekkend,25,50.00,,,,,,, +Beheermonitoringsschaal2021,HB,,62.5,62.50,half bedekkend,50,75.00,,,,,,, +Beheermonitoringsschaal2021,D,,87.5,87.50,dominant,75,100.00,,,,,,, \ No newline at end of file diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/data/cover_scales.tsv b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/data/cover_scales.tsv new file mode 100644 index 00000000..cad97b7c --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/data/cover_scales.tsv @@ -0,0 +1,354 @@ +ListName Code SortCode PctValue +Barkman (aangepast) +a 10 2 +Barkman (aangepast) +b 20 4 +Barkman (aangepast) +p 30 1 +Barkman (aangepast) +r 40 1 +Barkman (aangepast) 1a 50 2 +Barkman (aangepast) 1b 60 4 +Barkman (aangepast) 1p 70 1 +Barkman (aangepast) 2a 80 8 +Barkman (aangepast) 2b 90 18 +Barkman (aangepast) 2m 100 4 +Barkman (aangepast) 3a 110 31 +Barkman (aangepast) 3b 120 43 +Barkman (aangepast) 4a 130 56 +Barkman (aangepast) 4b 140 68 +Barkman (aangepast) 5a 150 81 +Barkman (aangepast) 5b 160 93 +Barkman, Doing & Segal +a 10 1 +Barkman, Doing & Segal +b 20 2 +Barkman, Doing & Segal +p 30 1 +Barkman, Doing & Segal +r 40 1 +Barkman, Doing & Segal 1a 50 2 +Barkman, Doing & Segal 1b 60 3 +Barkman, Doing & Segal 1p 70 1 +Barkman, Doing & Segal 2a 80 8 +Barkman, Doing & Segal 2b 90 18 +Barkman, Doing & Segal 2m 100 4 +Barkman, Doing & Segal 2p 110 1 +Barkman, Doing & Segal 3a 120 31 +Barkman, Doing & Segal 3b 130 43 +Barkman, Doing & Segal 4a 140 56 +Barkman, Doing & Segal 4b 150 68 +Barkman, Doing & Segal 5a 160 81 +Barkman, Doing & Segal 5b 170 93 +Barkman, Doing & Segal 5c 180 100 +Barkman, Doing & Segal r 190 1 +Beheermonitoringsschaal2017 ZS 10 0.5 +Beheermonitoringsschaal2017 ZS2 20 0.2 +Beheermonitoringsschaal2017 ZS4 30 0.1 +Beheermonitoringsschaal2017 ZS8 40 0.1 +Beheermonitoringsschaal2017 ZSR 50 0.1 +Beheermonitoringsschaal2017 S 60 1 +Beheermonitoringsschaal2017 S2 70 0.4 +Beheermonitoringsschaal2017 S4 80 0.2 +Beheermonitoringsschaal2017 S8 90 0.1 +Beheermonitoringsschaal2017 SR 100 0.1 +Beheermonitoringsschaal2017 WT 110 1.5 +Beheermonitoringsschaal2017 WT2 120 0.6 +Beheermonitoringsschaal2017 WT4 130 0.3 +Beheermonitoringsschaal2017 WT8 140 0.1 +Beheermonitoringsschaal2017 WTR 150 0.1 +Beheermonitoringsschaal2017 T 160 3 +Beheermonitoringsschaal2017 T2 170 1.1 +Beheermonitoringsschaal2017 T4 180 0.6 +Beheermonitoringsschaal2017 T8 190 0.2 +Beheermonitoringsschaal2017 TR 200 0.2 +Beheermonitoringsschaal2017 B 210 15 +Beheermonitoringsschaal2017 B2 220 5.6 +Beheermonitoringsschaal2017 B4 230 2.8 +Beheermonitoringsschaal2017 B8 240 0.9 +Beheermonitoringsschaal2017 BR 250 0.9 +Beheermonitoringsschaal2017 KB 260 37.5 +Beheermonitoringsschaal2017 KB2 270 14.1 +Beheermonitoringsschaal2017 KB4 280 7 +Beheermonitoringsschaal2017 KB8 290 2.3 +Beheermonitoringsschaal2017 KBR 300 0.9 +Beheermonitoringsschaal2017 HB 310 62.5 +Beheermonitoringsschaal2017 HB2 320 23.4 +Beheermonitoringsschaal2017 HB4 330 11.7 +Beheermonitoringsschaal2017 HB8 340 3.9 +Beheermonitoringsschaal2017 HBR 350 1.5 +Beheermonitoringsschaal2017 D 360 87.5 +Beheermonitoringsschaal2017 D2 370 32.8 +Beheermonitoringsschaal2017 D4 380 16.4 +Beheermonitoringsschaal2017 D8 390 5.5 +Beheersmonitoringsscha Aa 10 15 +Beheersmonitoringsscha Ab 20 5 +Beheersmonitoringsscha C 30 37.5 +Beheersmonitoringsscha Da 40 87.5 +Beheersmonitoringsscha Db 50 62.5 +Beheersmonitoringsscha F 60 4 +Beheersmonitoringsscha O 70 3 +Beheersmonitoringsscha R 80 1 +Beheersmonitoringsscha S 90 0.5 +Braun/Blanquet r 5 1 +Braun/Blanquet + 10 2 +Braun/Blanquet 1 20 3 +Braun/Blanquet 2 30 13 +Braun/Blanquet 3 40 38 +Braun/Blanquet 4 50 68 +Braun/Blanquet 5 60 88 +Braun/Blanquet (B,D&S) r 100 1 +Braun/Blanquet (B,D&S) + 200 2 +Braun/Blanquet (B,D&S) 1 300 3 +Braun/Blanquet (B,D&S) 2m 400 4 +Braun/Blanquet (B,D&S) 2a 500 8 +Braun/Blanquet (B,D&S) 2b 600 18 +Braun/Blanquet (B,D&S) 3 700 38 +Braun/Blanquet (B,D&S) 4 800 68 +Braun/Blanquet (B,D&S) 5 900 88 +BraunBlanquet (BDS) Nr 1 10 1 +BraunBlanquet (BDS) Nr 2 20 2 +BraunBlanquet (BDS) Nr 3 30 3 +BraunBlanquet (BDS) Nr 4 40 4 +BraunBlanquet (BDS) Nr 5 50 8 +BraunBlanquet (BDS) Nr 6 60 18 +BraunBlanquet (BDS) Nr 7 70 38 +BraunBlanquet (BDS) Nr 8 80 68 +BraunBlanquet (BDS) Nr 9 90 88 +BraunBlanquet Numeriek 1 10 1 +BraunBlanquet Numeriek 2 20 2 +BraunBlanquet Numeriek 3 30 3 +BraunBlanquet Numeriek 4 40 13 +BraunBlanquet Numeriek 5 50 38 +BraunBlanquet Numeriek 6 60 68 +BraunBlanquet Numeriek 7 70 88 +Londo (1) volledig .1 10 1 +Londo (1) volledig .2 20 2 +Londo (1) volledig .4 30 4 +Londo (1) volledig 1- 35 7 +Londo (1) volledig 1 40 10 +Londo (1) volledig 1+ 60 12 +Londo (1) volledig 2- 75 17 +Londo (1) volledig 2 80 20 +Londo (1) volledig 2+ 100 22 +Londo (1) volledig 3- 105 27 +Londo (1) volledig 3 110 30 +Londo (1) volledig 3+ 130 32 +Londo (1) volledig 4- 135 37 +Londo (1) volledig 4 140 40 +Londo (1) volledig 4+ 160 42 +Londo (1) volledig 5- 165 47 +Londo (1) volledig 5 170 50 +Londo (1) volledig 5+ 190 52 +Londo (1) volledig 6- 195 57 +Londo (1) volledig 6 200 60 +Londo (1) volledig 6+ 220 62 +Londo (1) volledig 7- 225 67 +Londo (1) volledig 7 230 70 +Londo (1) volledig 7+ 250 72 +Londo (1) volledig 8- 255 77 +Londo (1) volledig 8 260 80 +Londo (1) volledig 8+ 280 82 +Londo (1) volledig 9- 285 87 +Londo (1) volledig 9 290 90 +Londo (1) volledig 9+ 310 92 +Londo (1) volledig 10 315 97 +Londo (1) volledig a1 320 1 +Londo (1) volledig a2 330 2 +Londo (1) volledig a4 340 4 +Londo (1) volledig m1 350 1 +Londo (1) volledig m2 360 2 +Londo (1) volledig m4 370 4 +Londo (1) volledig p1 380 1 +Londo (1) volledig p2 390 2 +Londo (1) volledig p4 400 4 +Londo (1) volledig r1 410 1 +Londo (1) volledig r2 420 2 +Londo (1) volledig r4 430 4 +Londo (2) verkort 1 10 10 +Londo (2) verkort 10 20 97 +Londo (2) verkort 2 30 20 +Londo (2) verkort 3 40 30 +Londo (2) verkort 4 50 40 +Londo (2) verkort 5 60 50 +Londo (2) verkort 6 70 60 +Londo (2) verkort 7 80 70 +Londo (2) verkort 8 90 80 +Londo (2) verkort 9 100 90 +Londo (2) verkort a 110 3 +Londo (2) verkort m 120 4 +Londo (2) verkort p 130 2 +Londo (2) verkort r 140 1 +Londo origineel .1 10 1 +Londo origineel .2 20 2 +Londo origineel .4 30 4 +Londo origineel 1- 40 7 +Londo origineel 1 55 10 +Londo origineel 1+ 60 12 +Londo origineel 2 80 20 +Londo origineel 3 110 30 +Londo origineel 4 140 40 +Londo origineel 5- 160 47.5 +Londo origineel 5 170 50 +Londo origineel 5+ 180 52.5 +Londo origineel 6 200 60 +Londo origineel 7 230 70 +Londo origineel 8 260 80 +Londo origineel 9 290 90 +Londo origineel 10 300 97 +Londo origineel a1 320 1 +Londo origineel a2 330 2 +Londo origineel a4 340 4 +Londo origineel m1 350 1 +Londo origineel m2 360 2 +Londo origineel m4 370 4 +Londo origineel p1 380 1 +Londo origineel p2 390 2 +Londo origineel p4 400 4 +Londo origineel r1 410 1 +Londo origineel r2 420 2 +Londo origineel r4 430 4 +Monitoringschaal 1 10 20 +Monitoringschaal 2 20 40 +Monitoringschaal 3 30 60 +Monitoringschaal 4 40 80 +Monitoringschaal 5 50 99 +Pct-1 0 0 0 +Pct-1 0-x-1 5 0.5 +Pct-1 1 10 1 +Pct-1 2 20 2 +Pct-1 3 30 3 +Pct-1 4 40 4 +Pct-1 5 50 5 +Pct-1 6 60 6 +Pct-1 7 70 7 +Pct-1 8 80 8 +Pct-1 9 90 9 +Pct-1 10 100 10 +Pct-1 11 110 11 +Pct-1 12 120 12 +Pct-1 13 130 13 +Pct-1 14 140 14 +Pct-1 15 150 15 +Pct-1 16 160 16 +Pct-1 17 170 17 +Pct-1 18 180 18 +Pct-1 19 190 19 +Pct-1 20 200 20 +Pct-1 21 210 21 +Pct-1 22 220 22 +Pct-1 23 230 23 +Pct-1 24 240 24 +Pct-1 25 250 25 +Pct-1 26 260 26 +Pct-1 27 270 27 +Pct-1 28 280 28 +Pct-1 29 290 29 +Pct-1 30 300 30 +Pct-1 31 310 31 +Pct-1 32 320 32 +Pct-1 33 330 33 +Pct-1 34 340 34 +Pct-1 35 350 35 +Pct-1 36 360 36 +Pct-1 37 370 37 +Pct-1 38 380 38 +Pct-1 39 390 39 +Pct-1 40 400 40 +Pct-1 41 410 41 +Pct-1 42 420 42 +Pct-1 43 430 43 +Pct-1 44 440 44 +Pct-1 45 450 45 +Pct-1 46 460 46 +Pct-1 47 470 47 +Pct-1 48 480 48 +Pct-1 49 490 49 +Pct-1 50 500 50 +Pct-1 51 510 51 +Pct-1 52 520 52 +Pct-1 53 530 53 +Pct-1 54 540 54 +Pct-1 55 550 55 +Pct-1 56 560 56 +Pct-1 57 570 57 +Pct-1 58 580 58 +Pct-1 59 590 59 +Pct-1 60 600 60 +Pct-1 61 610 61 +Pct-1 62 620 62 +Pct-1 63 630 63 +Pct-1 64 640 64 +Pct-1 65 650 65 +Pct-1 66 660 66 +Pct-1 67 670 67 +Pct-1 68 680 68 +Pct-1 69 690 69 +Pct-1 70 700 70 +Pct-1 71 710 71 +Pct-1 72 720 72 +Pct-1 73 730 73 +Pct-1 74 740 74 +Pct-1 75 750 75 +Pct-1 76 760 76 +Pct-1 77 770 77 +Pct-1 78 780 78 +Pct-1 79 790 79 +Pct-1 80 800 80 +Pct-1 81 810 81 +Pct-1 82 820 82 +Pct-1 83 830 83 +Pct-1 84 840 84 +Pct-1 85 850 85 +Pct-1 86 860 86 +Pct-1 87 870 87 +Pct-1 88 880 88 +Pct-1 89 890 89 +Pct-1 90 900 90 +Pct-1 91 910 91 +Pct-1 92 920 92 +Pct-1 93 930 93 +Pct-1 94 940 94 +Pct-1 95 950 95 +Pct-1 96 960 96 +Pct-1 97 970 97 +Pct-1 98 980 98 +Pct-1 99 990 99 +Pct-1 100 1000 100 +Pct-10 0 10 0 +Pct-10 10 20 10 +Pct-10 20 30 20 +Pct-10 30 40 30 +Pct-10 40 50 40 +Pct-10 50 60 50 +Pct-10 60 70 60 +Pct-10 70 80 70 +Pct-10 80 90 80 +Pct-10 90 100 90 +Pct-10 100 110 100 +Pct-5 0 10 0 +Pct-5 5 20 5 +Pct-5 10 30 10 +Pct-5 15 40 15 +Pct-5 20 50 20 +Pct-5 25 60 25 +Pct-5 30 70 30 +Pct-5 35 80 35 +Pct-5 40 90 40 +Pct-5 45 100 45 +Pct-5 50 110 50 +Pct-5 55 120 55 +Pct-5 60 130 60 +Pct-5 65 140 65 +Pct-5 70 150 70 +Pct-5 75 160 75 +Pct-5 80 170 80 +Pct-5 85 180 85 +Pct-5 90 190 90 +Pct-5 95 200 95 +Pct-5 100 210 100 +Provoost Decimaal + 10 2 +Provoost Decimaal 1 20 10 +Provoost Decimaal 1- 30 7 +Provoost Decimaal 1+ 40 12 +Provoost Decimaal 2 60 20 +Provoost Decimaal 3 70 30 +Provoost Decimaal 4 80 40 +Provoost Decimaal 5 90 50 +Provoost Decimaal 6 100 60 +Provoost Decimaal 7 110 70 +Provoost Decimaal 8 120 80 +Provoost Decimaal 9 130 90 +Provoost Decimaal 10 150 100 diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/data/cover_scales.yml b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/data/cover_scales.yml new file mode 100644 index 00000000..98b8b3b9 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/data/cover_scales.yml @@ -0,0 +1,19 @@ +..generic: + git2rdata: 0.3.1 + optimize: yes + NA string: NA + sorting: + - ListName + - SortCode + - PctValue + - Code + hash: 8fa05537ede33234e9c66c98541611e016e72504 + data_hash: 1c6ab3e056153d5bd275a4488f91a78627927321 +ListName: + class: character +Code: + class: character +SortCode: + class: integer +PctValue: + class: numeric diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/index.Rmd b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/index.Rmd new file mode 100644 index 00000000..4fa19691 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/index.Rmd @@ -0,0 +1,143 @@ +--- +title: Klassieke vegetatieopname in een proefvlak aan de hand van visuele inschattingen + van bedekking van soorten in (semi-)terrestrische vegetatie +author: +- name: Sophie Vermeersch + orcid: 0009-0001-5836-1189 +- name: Els De Bie + orcid: 0000-0001-7679-743X +date: '`r Sys.Date()`' +reviewers: +- Hans Van Calster +- Lieve Vriens +- Jan Wouters +- Wouter Van Gompel +- Els Lommelen +file_manager: Hans Van Calster +protocol_code: sfp-401-nl +version_number: '2023.03' +language: nl +lang: nl +theme: vegetation +template_name: sfp +site: bookdown::bookdown_site +bibliography: +- referenties.yaml +- sfp-401.bib +csl: https://raw.githubusercontent.com/citation-style-language/styles/master/research-institute-for-nature-and-forest.csl +params: + plot_width_openveg_m: 3 + plot_length_openveg_m: 3 + plot_width_forest_m: 16 + plot_length_forest_m: 16 + plot_shape: vierkant + height_herbshrublayer_openveg_m: 0.8 + height_herbshrublayer_forest_m: 2 + height_shrubtreelayer_openveg_m: 6 + height_shrubtreelayer_forest_m: 8 + species_list: + - vaatplanten + - mossen + - lichenen + phenology_values: standaard inbo-fenologiecodes + coverscale_species: Londo origineel + coverscale_structure: inbo-structuur-schaal +--- + +```{=html} + +``` +```{r setup, include=FALSE} +library(knitr) +opts_chunk$set( + echo = FALSE, + eval = TRUE, + dpi = 300, + fig.width = 150 / 25.4, + fig.height = 100 / 25.4, + out.width = "100%", + warning = FALSE, + error = TRUE, + message = FALSE +) +library(dplyr) +library(purrr) +library(protocolhelper) +library(pander) +panderOptions("table.alignment.default", "left") +metadata <- rmarkdown::metadata +protocol_path <- get_path_to_protocol(metadata$protocol_code) +type <- get_protocol_type(metadata$protocol_code, auto_identifier = TRUE) +library(git2rdata) +library(spatstat) +library(ggplot2) +source( + file.path(protocol_path, + "_visualisatie_bedekking.R" + ) +) +``` + +```{r coverscales-db, eval = !file.exists(file.path(protocol_path, "data", "cover_scales.tsv"))} +# this chunk only needs to be executed interactively once +# each time a new version of the protocol is made +library(inbodb) +library(glue) + +con <- connect_inbo_dbase("D0013_00_Futon") + +cover <- glue_sql("SELECT ListName +, Code +, SortCode +, PctValue +from [dbo].[ftCoverValues] CV +inner join [dbo].[ftActionGroupList] AGL on AGL.ListGIVID = CV.ListGIVID +where 1 = 1 +AND (ListName LIKE 'Londo%' + OR ListName LIKE 'Braun%' + OR ListName LIKE 'Pct%' + OR ListName LIKE 'Provoost%' + OR ListName LIKE 'Barkman%' + OR ListName LIKE '%onitoring%') +AND InUse = '1' +ORDER BY ListName DESC, SortCode ASC OFFSET 0 ROWS", + .con = con) + +cover_result <- tbl(con, sql(cover)) %>% + collect() + + +#close connection +dbDisconnect(con) + +write_vc(cover_result, + file = "cover_scales", + sorting = c("ListName", "SortCode", "PctValue", "Code"), + root = file.path(protocol_path, "data")) +``` + +# Metadata {.unnumbered} + +```{r metadata-table} +tibble( + reviewers = metadata[["reviewers"]] |> paste(collapse = ", "), + documentbeheerder = metadata[["file_manager"]], + protocolcode = metadata[["protocol_code"]], + versienummer = metadata[["version_number"]], + taal = metadata[["language"]], + thema = metadata[["theme"]] +) %>% + pander::pander(split.tables = Inf) +``` + +```{r results="asis"} +sprintf("Controleer [deze tabel](../%s.html){target=\"_blank\"} om te zien of een meer recente versie beschikbaar is.", type) |> cat() # nolint +``` diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image1.png b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image1.png new file mode 100644 index 00000000..e232cc4b Binary files /dev/null and b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image1.png differ diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image10.png b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image10.png new file mode 100644 index 00000000..81cca643 Binary files /dev/null and b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image10.png differ diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image10_2.png b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image10_2.png new file mode 100644 index 00000000..fa907774 Binary files /dev/null and b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image10_2.png differ diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image11.png b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image11.png new file mode 100644 index 00000000..951541db Binary files /dev/null and b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image11.png differ diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image2.jpeg b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image2.jpeg new file mode 100644 index 00000000..950daa80 Binary files /dev/null and b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image2.jpeg differ diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image2_2.png b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image2_2.png new file mode 100644 index 00000000..d38c6857 Binary files /dev/null and b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image2_2.png differ diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image4.png b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image4.png new file mode 100644 index 00000000..1868bb85 Binary files /dev/null and b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image4.png differ diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image5.png b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image5.png new file mode 100644 index 00000000..9b830826 Binary files /dev/null and b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image5.png differ diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image6.jpeg b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image6.jpeg new file mode 100644 index 00000000..4751a8bb Binary files /dev/null and b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image6.jpeg differ diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image7.png b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image7.png new file mode 100644 index 00000000..699217c5 Binary files /dev/null and b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image7.png differ diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image8.jpeg b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image8.jpeg new file mode 100644 index 00000000..ee9c69b8 Binary files /dev/null and b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image8.jpeg differ diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image9.jpeg b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image9.jpeg new file mode 100644 index 00000000..3c87c1fd Binary files /dev/null and b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/media/image9.jpeg differ diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/referenties.yaml b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/referenties.yaml new file mode 100644 index 00000000..e69de29b diff --git a/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/sfp-401.bib b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/sfp-401.bib new file mode 100644 index 00000000..63c0c727 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_401_nl_vegopname_terrest/sfp-401.bib @@ -0,0 +1,74 @@ +@misc{RN153, + author = {Braun-Blanquet, J.}, + title = {Pflanzensoziologie, Grundzüge der Vegetationskunde}, + publisher = {Springer Verlag}, + address = {Wien}, + volume = {3rd edition}, + year = {1964}, + type = {Legal Rule or Regulation} +} + +@book{RN156, + author = {Kent, M. and Coper, P.}, + title = {Vegetation Description and Analysis}, + publisher = {John Wiley & Sons}, + address = {Winchester}, + year = {1994}, + type = {Book} +} + +@book{RN157, + author = {Lambinon, J. and De Langhe, J.-E. and Delvosalle, L. and Duvigneaud, J.}, + title = {Flora van België, het Groothertogdom Luxemburg, Noord-Frankrijk en de aangrenzende gebieden (Pteridofyten en Spermatofyten)}, + year = {1998}, + type = {Book} +} + +@article{RN154, + author = {Londo, G.}, + title = {DECIMAL SCALE FOR RELEVES OF PERMANENT QUADRATS}, + journal = {Vegetatio}, + volume = {33}, + number = {1}, + pages = {61-64}, + ISSN = {0042-3106}, + DOI = {10.1007/bf00055300}, + url = {://WOS:A1976CS44600008}, + year = {1976}, + type = {Journal Article} +} + +@book{RN158, + author = {Vriens, L. and Bosch, H. and De Knijf, G. and De Saeger, S. and Guelinckx, R. and Oosterlynck, P. and Van Hove, M. and Paelinckx, D.}, + title = {De Biologische Waarderingskaart: biotopen en hun vespreiding in Vlaanderen en het Brussels Hoofdstedelijke Gewest}, + publisher = {Instituut voor Natuur- en Bosonderzoek (INBO)}, + address = {Brussel}, + series = {Mededelingen van het Instituut voor Natuur- en Bosonderzoek.}, + year = {2011}, + type = {Book} +} + +@book{RN159, + author = {Westra, T. and Oosterlynck, P. and Van Calster, H. and Paelinckx, D. and Denys, L. and Leyssen, A. and Packet, J. and Onkelinx, T. and Louette, G. and Waterinckx, M.}, + title = {Monitoring Natura 2000 - habitats: Meetnet habitatkwaliteit}, + publisher = { Instituut voor Natuur- en Bosonderzoek}, + address = {Brussel}, + series = {Rapporten van het}, + year = {2014}, + type = {Book} +} + +@article{RN155, + author = {Wilson, J. B.}, + title = {Cover plus: ways of measuring plant canopies and the terms used for them}, + journal = {Journal of Vegetation Science}, + volume = {22}, + number = {2}, + pages = {197-206}, + ISSN = {1100-9233}, + DOI = {10.1111/j.1654-1103.2010.01238.x}, + url = {://WOS:000287926500001}, + year = {2011}, + type = {Journal Article} +} + diff --git a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/02_onderwerp.Rmd b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/02_onderwerp.Rmd index a8ce9231..72c2267f 100644 --- a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/02_onderwerp.Rmd +++ b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/02_onderwerp.Rmd @@ -2,19 +2,31 @@ ## Definities en afkortingen -**Habitattype 3260:** Dit Natura 2000-habitattype omvat de submontane - en laaglandrivieren met vegetaties behorende tot het *Ranunculion fluitantis* en het *Callitricho-Batrachion.* Het wordt voornamelijk gekenmerkt door het voorkomen van waterranonkels, haaksterrenkroos en/of bepaalde fonteinkruiden. -Het al dan niet voorkomen van dit habitattype wordt in Vlaanderen bepaald door de aanwezigheid van een aantal sleutelsoorten die vermeld staan in Bijlage \@ref(sleutel) (De Saeger et al., 2008; Leyssen et al., 2010). -Indien minstens één van deze soorten wordt aangetroffen, wordt het betreffende deel van de waterloop over de volledige breedte van de waterloop (genaamd waterloopsegment) gerekend tot habitattype 3260. -Een 100 m-strook die tijdens deze kwaliteitsbepaling wordt opgemeten, wordt bijgevolg als habitat beschouwd indien hierin één sleutelsoort wordt aangetroffen. +**Bodemplaat**: lokale bodemverharding zonder opstuwing (VMM, 2010), meestal is dit een betonnen plaat. -**Vegetatievlek**: een aaneengesloten vegetatie waarin sleutelsoorten van het habitattype meer bedekken dan andere soorten. -In waterlopen bestaat een vegetatievlek vaak slechts uit één (sleutel)soort. -Er wordt van twee vegetatievlekken gesproken indien de afstand tussen beide minstens 2 m bedraagt. +**Bodemval**: lokale bodemverharding met opstuwende werking, bijvoorbeeld door een lokale artificiële verhoging van de bedding (VMM, 2010). +Duiker: een duiker of koker gaat meestal relatief rechtlijnig onder een weg, gebouw of andere constructie door. +Het onderscheid met een sifon is dat er in een duiker in normale omstandigheden nog lucht aanwezig is boven het wateroppervlak, terwijl dit bij een sifon nooit het geval is (VMM, 2010). + +**Groeivorm**: De groeivorm of levensvorm van een macrofyt is een indeling naar haar morfologische kenmerken. +Volgende groeivormen worden onderscheiden: lemniden, riccielliden, ceratophylliden, hydrochariden, salviniiden, stratiotiden, elodeiden, parvopotamiden, magnopotamiden, myrophylliden, chariden, batrachiiden, pepliden, vallisneriiden, nymphaeiden, isoëtiden, watermossen, veenmossen, filamenteuze algen, oever-/moerasplanten en grote monocotylen (Schneiders et al., 2004). -**'Grof' organisch materiaal**: bladeren, dood plantaardig materiaal en dood hout in de bedding van de waterloop. +**Grof organisch materiaal**: bladeren, dood plantaardig materiaal en dood hout in de bedding van de waterloop. De grens tussen grof en fijn organisch materiaal (coarse (CPOM) versus fine particulate organic matter (FPOM)), wordt gelegd op 1 mm (Bird & Kaushik, 1981). De klasseindeling van het dood hout (twijgjes met diameter \< 3 cm, takken met diameter tussen 3 -- 30 cm en grote takken of stammen met diameter \> 30 cm) is conform deze van VMM (2010). +**Habitattype 3260**: Dit Natura 2000-habitattype omvat de submontane - en laaglandrivieren met vegetaties behorende tot het *Ranunculion fluitantis* en het *Callitricho-Batrachion*. +Het wordt voornamelijk gekenmerkt door het voorkomen van waterranonkels, haaksterrenkroos en/of bepaalde fonteinkruiden. +Het al dan niet voorkomen van dit habitattype wordt in Vlaanderen bepaald door de aanwezigheid van een aantal sleutelsoorten die vermeld staan in Bijlage 1 (De Saeger et al., 2008; Leyssen et al., 2010). +Indien minstens één van deze soorten wordt aangetroffen, wordt het betreffende deel van de waterloop over de volledige breedte van de waterloop gerekend tot habitattype 3260. +Een 100 m-segment dat tijdens deze kwaliteitsbepaling wordt opgemeten, wordt bijgevolg als habitat beschouwd indien hierin één sleutelsoort wordt aangetroffen. + +**KRW**: Europese Kaderrichtlijn water. + +**LSVI**: lokale staat van instandhouding. + +**Overwelving**: sifon, duiker of een brug over een waterloop. + **Slib**: bestaat in hoofdzaak uit fijne minerale deeltjes, zoals klei of leem en een organische fractie. Het heeft een fijnere textuur dan de bedding. Slibafzetting onderscheidt zich van de vorming van sedimentbanken doordat ze op een homogenere wijze plaatsvindt. @@ -22,35 +34,27 @@ Er vindt een ophoging van de volledige bedding plaats, terwijl bij sedimentbanke Een sedimentbank kan uit slib bestaan, maar wordt als een natuurlijke afzettingsvorm beschouwd. De variabele slib is hier enkel bedoeld voor duidelijke uniforme slibafzettingen in de bedding (VMM, 2010). -**Bodemplaat**: lokale bodemverharding zonder opstuwing (VMM, 2010), meestal is dit een betonnen plaat. - -**Bodemval**: lokale bodemverharding met opstuwende werking, bijvoorbeeld door een lokale artificiële verhoging van de bedding (VMM, 2010). - **Sifon**: overdekt U-vormig deel van een waterloop met hevelwerking volgens het principe van de communicerende vaten, meestal onder een andere waterloop. De sifon zelf is dus volledig gevuld met water (VMM, 2010). -**Duiker**: Een duiker of koker gaat meestal relatief 'rechtlijnig' onder een weg, gebouw of andere constructie door. -Het onderscheid met een sifon is dat er in een duiker in normale omstandigheden nog lucht aanwezig is boven het wateroppervlak, terwijl dit bij een sifon nooit het geval is (VMM, 2010). - -**Overwelving**: sifon, duiker of een brug over een waterloop. +**Steekproefpunt** of **(veld)locatie**: Voor het habitatkwaliteitsmeetnet (zie verder) komt de steekproefeenheid voor waterlopen overeen met een 100m-segment van de waterloop. +Dit is het segment waarvan de biotische karakterisatie wordt beoogd. +Dit segment wordt aangeduid als het meest stroomafwaarts gelegen punt van het te inventariseren segment van 100 meter (Figuur 4). **Stroomdeflector**: artificiële obstructie in de bedding van de waterloop die wordt aangebracht tegen de oever om deze te beschermen of de stroming te beïnvloeden. -**LSVI**: lokale staat van instandhouding. - -**KRW**: Europese Kaderrichtlijn water. - -**Groeivorm**: De groeivorm of levensvorm van een macrofyt is een indeling naar haar morfologische kenmerken. -Volgende groeivormen worden onderscheiden: lemniden, riccielliden, ceratophylliden, hydrochariden, salviniiden, stratiotiden, elodeiden, parvopotamiden, magnopotamiden, myrophylliden, chariden, batrachiiden, pepliden, vallisneriiden, nymphaeiden, isoëtiden, watermossen, veenmossen, filamenteuze algen, oever-/moerasplanten en grote monocotylen (Schneiders et al., 2004). +**Vegetatievlek**: een aaneengesloten vegetatie waarin sleutelsoorten van het habitattype meer bedekken dan andere soorten. +In waterlopen bestaat een vegetatievlek vaak slechts uit één (sleutel)soort. +Er wordt van twee vegetatievlekken gesproken indien de afstand tussen beide minstens 2 m bedraagt. ## Doelstelling en toepassingsgebied -Het doel van het veldprotocol is om gegevens te verzamelen die een beoordeling van de indicatoren van de LSVI toelaten voor een 100 meter-strook van het Natura 2000-habitattype 3260. -De LSVI-indicatoren zijn beschreven door T'jollyn et al. (2009, versie 2) en Oosterlynck et al. (in voorbereiding, versie 3). +Het doel van het veldprotocol is om gegevens te verzamelen die een beoordeling van de indicatoren van de LSVI toelaten voor een 100 meter-segment van het Natura 2000-habitattype 3260. +De LSVI-indicatoren zijn beschreven door T'jollyn et al. (2009, versie 2) en Oosterlynck et al. (2020, versie 3). Daarnaast laat het veldprotocol ook toe om de kwaliteit van macrofyten in functie van de KRW te beoordelen (Leyssen et al., 2005; Schneiders et al., 2004). Het veldprotocol wordt gebruikt voor het bemonsteren van de steekproefpunten van het habitatkwaliteitsmeetnet voor habitattype 3260. -De selectiemethode van steekproefpunten is beschreven in het rapport over de habitatkwaliteitsmonitoring [@westra2014]. +De selectiemethode van steekproefpunten is beschreven in het rapport over de habitatkwaliteitsmonitoring (Westra et al., 2022; Westra et al., 2014). Dit meetnet is geconcipieerd om de habitatkwaliteit van habitattype 3260 op Vlaams schaalniveau te kunnen inschatten. De resultaten van dit meetnet zullen o.a. gebruikt worden voor de 6-jaarlijkse rapportage over de staat van instandhouding van habitattype 3260 aan de Europese Commissie. diff --git a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/03_beperkingen.Rmd b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/03_beperkingen.Rmd index 6599821a..8b0f22c5 100644 --- a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/03_beperkingen.Rmd +++ b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/03_beperkingen.Rmd @@ -12,6 +12,17 @@ De reden hiervoor wordt genoteerd: - geen toestemming; -- tijdelijk ongeschikt (niet toegankelijk, gevaarlijke hond, verhoogd waterpeil, uitgedroogd, ...): het loont de moeite om de locatie later dat jaar een opnieuw te bezoeken; +- tijdelijk ongeschikt (niet toegankelijk, gevaarlijke hond, verhoogd waterpeil, onvoldoende watervoerend, werken aan de waterloop, ...): het loont de moeite om de locatie later in het jaar of tijdens het volgende jaar opnieuw te bezoeken; + +- permanent ongeschikt (hek, niet bereikbaar op een veilige manier, teveel bodemverharding, te groot deel overwelfd, ...). + Om een representatieve opname te kunnen maken, dient de schaduw op het wateroppervlak minder dan 30 % te bedragen (Denys et al., 2016; Oosterlynck et al., 2020) en de bodemverharding of overwelving minder dan 10 %. + Wordt deze grenswaarde overschreden, dan wordt de locatie in willekeurige richting 100 m stroomaf- of -opwaarts verschoven. + Indien ook deze locatie ongeschikt blijkt, wordt dit steekproefpunt vervangen door het eerstvolgende reservepunt. + +De opnames worden uitgevoerd in het groeiseizoen van de water- en oeverplanten. +Idealiter wordt er medio juni gestart met opnames van veldlocaties met waterranonkels, omdat deze eerst bloeien. +Vervolgens worden bovenlopen met kans op uitdroging geïnventariseerd. +Daarna worden de overige veldlocaties bezocht. +De vegetatieopnames worden best voor eind juli uitgevoerd om de kans op afwezigheid van watervegetatie door vegetatieruimingen te beperken. +De vegetatieopnames in de Grensmaas kunnen eind augustus uitgevoerd worden, wanneer het waterpeil lager is en dit bijgevolg veiliger is. -- permanent ongeschikt (hek, niet bereikbaar op een veilige manier, teveel bodemverharding, te groot deel ingebuisd, ...). diff --git a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/05_competenties.Rmd b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/05_competenties.Rmd index 9a985043..c8c0cbd5 100644 --- a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/05_competenties.Rmd +++ b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/05_competenties.Rmd @@ -4,6 +4,15 @@ ``` -Voldoende kennis van de veldkenmerken van macrofyten die in waterlopen worden aangetroffen en vertrouwd zijn met technieken om ze te kunnen identificeren. +Voldoende kennis van de veldkenmerken van macrofyten die in waterlopen worden aangetroffen, vertrouwd zijn met technieken om ze te kunnen identificeren en vertrouwd zijn met het protocol [sfp-113-nl 2023.04](../2023.04/index.html). + +Daarnaast zijn volgende algemene competenties vereist (naar Bijkerk, 2014): + +- nauwkeurigheid: de uitvoering van veldmetingen en het vastleggen van veldwaarnemingen vereisen een grote mate van accuraatheid; +- vermogen te plannen en te organiseren: bij de uitvoering van meetprogramma's moeten tal van werkzaamheden gepland, georganiseerd en op elkaar afgestemd worden. De veldmedewerker moet in staat zijn om hier zelfstandig of in overleg met de projectleider uitvoering aan te geven; +- zelfstandigheid: de veldmedewerker moet in staat zijn om het merendeel van de werkzaamheden zelfstandig (op locatie) uit te voeren; +- vermogen tot samenwerken en communiceren; +- de veldmedewerker moet fysiek in staat kunnen zijn om het protocol in veilige omstandigheden te kunnen uitvoeren (kunnen zwemmen, ...). diff --git a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/06_benodigdheden.Rmd b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/06_benodigdheden.Rmd index d6831586..bc525c68 100644 --- a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/06_benodigdheden.Rmd +++ b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/06_benodigdheden.Rmd @@ -2,20 +2,20 @@ Tabel \@ref(tab:Tabel1) geeft een overzicht van de benodigde apparatuur en materiaal; enkele daarvan specifiëren we hieronder. -| Benodigdheden | | -|:-----------------------------------------|:-----------------------------------------------------------------------------------------------------------------| -| $\square$ veldformulieren & handleiding | $\square$ afgeprinte veldkaarten | -| $\square$ klembord & schrijfgerief | $\square$ bamboestokken met gekleurd vlagje | -| $\square$ gsm/smartphone | $\square$ loep | -| $\square$ handcomputer/tablet | $\square$ gps | -| $\square$ lieslaarzen | $\square$ fototoestel | -| $\square$ waadpak | $\square$ verrekijker | -| $\square$ secchi-schijf | $\square$ rolmeter/plooimeter | -| $\square$ hersluitbare zakjes | $\square$ alcoholstift | -| $\square$ waterdichte handschoenen | $\square$ reddingvest | -| $\square$ ontsmettende zeep | $\square$ reddingstouw | -| $\square$ vegetatiehark | $\square$ Flora van België (Lambinon et al., 1998) en/of andere determinatiewerken (Bijlage \@ref(determinatie)) | -| $\square$ bamboestok met schaalverdeling | | +| Benodigdheden | | +|:--------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------| +| $\square$ veldformulieren & handleiding | $\square$ afgeprinte veldkaarten | +| $\square$ schrijfgerief: papier & potlood, alcoholstift | $\square$ klembord | +| $\square$ gsm/smartphone | $\square$ loep | +| $\square$ handcomputer/tablet | $\square$ gps | +| $\square$ lieslaarzen | $\square$ waterbestendig fototoestel of fototoestel en waterdichte behuizing | +| $\square$ waadpak | $\square$ verrekijker | +| $\square$ secchi-schijf | $\square$ rolmeter/plooimeter | +| $\square$ hersluitbare zakjes | $\square$ alcoholstift | +| $\square$ waterdichte handschoenen | $\square$ reddingvest | +| $\square$ ontsmettende zeep | $\square$ reddingstouw | +| $\square$ vegetatiehark met schaalverdeling | $\square$ Flora van België (Lambinon et al., 1998) en/of andere determinatiewerken (Bijlage \@ref(determinatie)) | +| $\square$ bamboestok met schaalverdeling | $\square$ stroomsnelheidsmeter (zie \@ref(stroomsnelheidsmeter)) | : (#tab:Tabel1) Checklist veldmateriaal. @@ -44,6 +44,10 @@ Een RTK-gps is niet nodig voor dit type veldwerk, tenzij het een experimentele o Voor de positiebepaling, de invoer van veldgegevens op terrein of de breedtebepaling van de waterloop kan gebruik gemaakt worden van een handcomputer of (rugged) tablet. Het toestel zelf of de hoes errond dient geschikt te zijn voor veldomstandigheden (schokbestendig, stofvrij en (spat)waterdicht). +### Stroomsnelheidsmeter + +Voor de bepaling van de stroomsnelheid wordt gebruik gemaakt van een draagbare akoestische Doppler snelheidsmeter, bijvoorbeeld van het type FlowTracker 2 (Flow-Tronic, 1994). + ## Materiaal ```{=html} @@ -63,13 +67,7 @@ Met een loep van 20x kunnen detailkenmerken (kranswieren, sterrenkroos, ...) tij Om de breedte van de waterloop te meten is een oprolbaar meetlint nodig. Zorg ook voor een pin met haak voor het vastmaken van het meetlint. -Als alternatief kan een afstandsmeter[^06_benodigdheden-1] of de SmartMeasure-applicatie[^06_benodigdheden-2] worden gebruikt -. De nauwkeurigheid en de praktische toepasbaarheid hiervan zijn nog te bepalen -. - -[^06_benodigdheden-1]: Bijvoorbeeld - -[^06_benodigdheden-2]: +Als alternatief kan een laserafstandsmeter of een smartphoneapplicatie die afstanden meet (bv. [SmartMeasure](https://play.google.com/store/apps/details?id=kr.sira.measure&hl=nl)) worden gebruikt. ### Vegetatiehark met telescopische steel @@ -94,14 +92,14 @@ include_graphics("media/image2.jpeg") ### Hersluitbare zakjes en alcoholstift -Het gebeurt vaak dat identificatie in het veld niet mogelijk is en dat het plantenmateriaal naar het labo wordt gebracht voor verdere determinatie. -Voor het tijdelijk bewaren van plantenmateriaal wordt gebruik gemaakt van (diepvries-)zakjes met sluiting. -De zakjes worden gelabeld met alcoholstift of een papiertje met de in potlood aangebrachte veldcode wordt in het zakje gestoken. +Wanneer identificatie in het veld niet mogelijk is, wordt het plantenmateriaal naar het labo gebracht voor verdere determinatie. +Voor het tijdelijk bewaren van plantenmateriaal worden zakjes met sluiting gebruikt. +De zakjes worden voorzien van een label met alcoholstift (veldcode en datum) of een papieren label met deze info in potlood in het zakje zelf. ### Secchi-schijf Een secchi-schijf met een diameter van 20 cm (Figuur \@ref(fig:Figuur1)) wordt gebruikt om de secchi-diepte te bepalen. -Het touw waaraan de secchi-schijf is bevestigd, is voorzien van een maatverdeling om de diepte te kunnen bepalen. +Het koord waaraan de secchi-schijf is bevestigd, is voorzien van een maatverdeling om de diepte te kunnen bepalen. Indien een secchi-schijf met andere diameter wordt gebruikt, dient dit vermeld te worden. ```{r Figuur1, fig.cap= "Secchi-schijf met maatverdeling op het touw"} diff --git a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/07_werkwijze.Rmd b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/07_werkwijze.Rmd index b6f984df..f023afbd 100644 --- a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/07_werkwijze.Rmd +++ b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/07_werkwijze.Rmd @@ -10,40 +10,40 @@ Subtitels gebruiken om elke stap te omschrijven. ``` ### Lokaliseren en documenteren van veldlocatie -- Vooraf worden de xy-coördinaten van het steekproefpunt (= meest stroomafwaartse punt van het traject, Figuur \@ref(fig:Figuur4)) en het eindpunt ingevoerd in een gps. - Het eindpunt van het traject situeert zich 100 m stroomopwaarts van het steekproefpunt. +- Vooraf worden de xy-coördinaten van het steekproefpunt (= meest stroomafwaartse punt van het segment, Figuur \@ref(fig:Figuur4)) en het eindpunt ingevoerd in een gps. + Het eindpunt van het segment situeert zich 100 m stroomopwaarts van het steekproefpunt. - Navigeer met een gps naar de oever vlakbij het steekproefpunt. - Markeer eventueel het begin- en eindpunt met een bamboestok, voorzien van een gekleurde wimpel voor de zichtbaarheid. -```{r Figuur4, fig.cap = "Schematische voorstelling van het te inventariseren 100 m-traject, met aanduiding van het steekproefpunt (groene bol) en stroomrichting"} +```{r Figuur4, fig.cap = "Schematische voorstelling van het te inventariseren 100 m-segment, met aanduiding van het steekproefpunt (groene bol) en stroomrichting (blauwe pijl)"} include_graphics("media/image4.jpg") ``` -Mogelijke problemen: +Aandachtspunten: -- Indien het 100 m-traject een overwelving bevat: noteer het percentage van het 100 m-traject dat wordt ingenomen door deze overwelving. - Voor de planten noteer je het percentage bedekking zoals in een normaal 100 m-traject. +- Indien het 100m-segment een overwelving bevat of beschaduwd is: noteer het percentage van het segment dat wordt ingenomen door de overwelving of schaduw. + De bedekking van de vegetatie wordt ingeschat zoals in een normaal 100m-segment. -- indien er meer dan 10 % van het traject overwelfd is, wordt het steekproefpunt in willekeurige richting (stroomop- of stroomafwaarts; munt opgooien) verlegd. - Het vervangende steekproefpunt wordt ingemeten met de gps; de nauwkeurigheid van de gps-meting, het toestel en het coördinatensysteem worden genoteerd. +- Indien de overwelving meer bedraagt dan 10 % of de schaduw meer dan 30 %, wordt het steekproefpunt in willekeurige richting (stroomop- of stroomafwaarts; munt opgooien) verlegd. + Het vervangende steekproefpunt wordt ingemeten met de gps. -- Wanneer de oorspronkelijke ligging van de bedding is gewijzigd, bijvoorbeeld ten gevolge van een hermeandering, dient dit op het veldformulier vermeld te worden. - De locatiekeuze van het traject dient dan zoveel mogelijk aan te leunen bij de vroegere vindplaats van de sleutelsoorten. +- Wanneer de oorspronkelijke ligging van de bedding is gewijzigd, bijvoorbeeld ten gevolge van een hermeandering, wordt dit genoteerd op het veldformulier. + De locatiekeuze van het segment dient dan zoveel mogelijk aan te sluiten bij de vroegere vindplaats van de sleutelsoorten. Ook in dit geval worden de gewijzigde xy-coördinaten op het veldformulier genoteerd. -- Indien het steekproefpunt niet bereikbaar is, wordt dit genoteerd op het veldformulier & wordt dit steekproefpunt vervangen door het eerstvolgende reservepunt. +- Indien het steekproefpunt niet bereikbaar is, wordt dit genoteerd op het veldformulier en wordt dit steekproefpunt vervangen door het eerstvolgende reservepunt. -### Vegetatieopname (achterkant veldformulier; Bijlage \@ref(veldformulier)) +### Vegetatieopname (achterkant veldformulier; Bijlage \@ref(veldformulier)) {#vegopn} - De waterdiepte bepaalt de wijze van opname: - door het water wadend in stroomopwaartse richting indien de waterdiepte dit toelaat; - - harkend vanuit het water, indien het centrale deel van de waterloop ondoorwaadbaar is, maar het oeverdeel wel doorwaadbaar is; + - harkend vanuit het water, indien het centrale deel van de waterloop ondoorwaadbaar is, maar de zone nabij de oever wel doorwaadbaar is; - harkend vanop de oever, indien het water te diep is; iedere 10 m wordt enkele keren geharkt; hierbij is het mogelijk dat het centrale deel van de waterloop niet bemonsterd kan worden; @@ -54,18 +54,23 @@ Mogelijke problemen: #### Bedekking en groeivorm individuele soorten -- Je kan het traject best tweemaal doorwaden, éénmaal stroomopwaarts om de soorten te noteren. +- Je kan het segment best tweemaal doorwaden, éénmaal stroomopwaarts om de soorten te noteren. Daarna worden de bedekkingen genoteerd met de bedekkingsschaal van Tabel \@ref(tab:Tabel2). - Wanneer je stroomafwaarts terugkeert naar het beginpunt, kunnen de bedekkingen gecontroleerd worden en kunnen algemene kenmerken (breedte, diepte, ..., zie \@ref(algstand)) van het traject genoteerd worden. + Wanneer je stroomafwaarts terugkeert naar het beginpunt, kunnen de bedekkingen gecontroleerd worden en kunnen andere kenmerken (zie) \@ref(algstand)) genoteerd worden. -- Enkel de soorten die met hun wortels **in** het water/de waterbodem staan bij normale waterstand worden genoteerd. - Hierbij worden zowel helofyten (riet, lisdodde, grote egelskop, liesgras, witte waterkers, ...) als echte waterplanten (fonteinkruid, sterrekroos, waterranonkels, waterpest, vederkruid, \...) genoteerd. +- Enkel de soorten die met hun wortels **in** het water/de waterbodem staan bij **normale waterstand** worden genoteerd. + Hierbij worden zowel helofyten (riet, lisdodde, grote egelskop, liesgras, witte waterkers, ...) als echte waterplanten (fonteinkruid, sterrekroos, waterranonkels, waterpest, vederkruid, ...) genoteerd. + In de Grensmaas is de recent frequent geïnundeerde oever of de normale waterstand soms moeilijk te bepalen bij brede en geleidelijk hellende grindbanken. + Bij twijfel worden enkel de soorten genoteerd die voorkomen op de grindbank tot maximaal één meter vanaf de waterlijn. -- Indien identificatie op het terrein niet mogelijk is, worden de planten meegenomen in een hersluitbaar plastic zakje, voorzien van de locatiecode (met alcoholstift erop of in potlood op een papier erin) om deze later in het labo te kunnen determineren. - De kolom 'coll' op het veldformulier wordt aangekruist. - Hierin wordt later eventueel het volgnummer van het herbariumspecimen genoteerd. +- Indien identificatie op het terrein niet mogelijk is, worden de planten meegenomen in een hersluitbaar plastic zakje, voorzien van de locatiecode om deze later in het labo te kunnen determineren. + De kolom 'coll' op het veldformulier wordt aangekruist of het volgnummer van het herbariumspecimen wordt hierin genoteerd. -- De groeivorm dient genoteerd te worden wanneer deze afwijkt van deze die doorgaans wordt aangetroffen (zie lijst in Bijlage \@ref(groeivormen)). +- De groeivorm wordt genoteerd wanneer deze afwijkt van deze die doorgaans wordt aangetroffen (zie lijst in Bijlage \@ref(groeivormen)). + +- Bij de schatting van de bedekking heeft het percentage bedekking voorrang op het aantal exemplaren. + Eén grote boom of struik die in het water groeit en die ca. + 7% bedekt valt dus in de klasse 'laag-abundant' en niet in de klasse 'zelden'. | Code | Klasse | Beschrijving | |:-------|:--------------|:---------------------------------------------| @@ -86,27 +91,28 @@ Deze schaal wordt momenteel ook toegepast bij de monitoring voor de KRW-kwalitei #### Totale bedekking -De totale bedekking van alle planten die in het water staan -- zowel emerse, submerse als drijvende planten -- wordt genoteerd als loodrechte projectie op het wateroppervlak (procentueel). +De totale bedekking van alle planten die in het water staan -- zowel emergente, submerse als drijvende planten -- wordt genoteerd als loodrechte projectie op het wateroppervlak (procentueel). #### Submerse vegetatie -Naast de totale bedekking wordt de bedekking van submerse of ondergedoken waterplanten als groep ingeschat op een schaal van 0 tot 3 (Tabel \@ref(tab:Tabel3)). +De bedekking van submerse of ondergedoken waterplanten wordt als geheel ingeschat op een schaal van 0 tot 3 (Tabel \@ref(tab:Tabel3)). +De mate van submerse vegetatieontwikkeling is een apart beoordelingscriterium voor de KRW. +Het geeft inzicht in een aantal drukken en in het functioneren van het systeem. Onderstaande vegetatie wordt inbegrepen in de submerse vegetatie (gebaseerd op Denys, 2011): - alle in de bodem wortelende vaatplanten met onderwaterbladeren, incl. hun stengels; ook de ondergedoken delen van kleine egelskop; -- hoewel niet voorzien van wortels, wordt ook *Ceratophyllum* spp. +- hoewel niet wortelend, worden ook *Ceratophyllum* spp. meegenomen, gezien hoornblad doorgaans met de bebladerde stengel enigszins in de bodem is verankerd; - de blijvend ondergedoken bladeren van *Nuphar* en *Sagittaria*; alle kranswieren en op de bodem groeiende mossen; -- draadwieren (incl. darmwier en waternetje) dienen ook bij de ondergedoken vegetatie te worden gerekend. +- draadwieren (incl. darmwier en waternetje) worden ook bij de ondergedoken vegetatie gerekend. -- Soorten die verschillende groeivormen kunnen aannemen, worden naargelang hun verschijningsvorm in het veld mogelijk gerekend tot de submerse vegetatie. - Naargelang hun verschijningsvorm kunnen ze als emers, submers of beide gerekend worden. - Indien ze morfologisch verschillende ondergedoken bladeren bevatten, worden ze bij de submerse vegetatie gerekend. - Voorbeelden hiervan zijn *Myriophyllum aquaticum*, *Hippuris vulgaris* en *Sagittaria* *sagittifolia*. +- Soorten die verschillende groeivormen kunnen aannemen, worden naargelang hun verschijningsvorm mogelijk gerekend tot de submerse vegetatie (bijlage \@ref(groeivormen)). + Bij morfologisch verschillende ondergedoken bladeren, worden ze bij de submerse vegetatie gerekend. + Voorbeelden hiervan zijn *Myriophyllum aquaticum*, *Hippuris vulgaris* en *Sagittaria sagittifolia*. Worden niet tot 'submerse vegetatie' gerekend: @@ -114,18 +120,20 @@ Worden niet tot 'submerse vegetatie' gerekend: - eendekrozen (*Lemna*, *Spirodela*, ...) en andere drijvende planten met aan de lucht blootgestelde bladeren (*Azolla*, *Hydrocharis*, *Stratiotes*, *Ricciocarpos*, *Salvinia*, ...); -- wortelende planten met aan de lucht blootgestelde bladeren (helofyten en nymphaeïden, incl. hun bladstelen, stengels en wortels in het water; incl. *Potamogeton natans*, ongeacht de eventuele aanwezigheid van fyllodiën); alle drijf- of luchtbladeren, ook als deze zich onder het wateroppervlak mochten bevinden; +- wortelende planten met aan de lucht blootgestelde bladeren (helofyten en nymphaeïden, incl. hun bladstelen, stengels en wortels in het water; incl. *Potamogeton natans*, ongeacht de eventuele aanwezigheid van fyllodiën); alle drijf- of luchtbladeren, ook indien deze zich onder het wateroppervlak bevinden; + +- ondergedoken maar doorgaans nabij het wateroppervlak zwevende planten (*Lemna trisulca*, *Riccia fluitans*, *Utricularia* spp.); -- ondergedoken maar doorgaans nabij het wateroppervlak zwevende planten (*Lemna trisulca, Riccia fluitans, Utricularia* spp.). +- vegetatieve grassen die als gevolg van een plotse waterpeilstijging submers komen te liggen. -Er wordt aangeduid hoeveel procent van het 100 m-traject vertegenwoordigd wordt door elke submerse vegetatieontwikkelingsklasse (Tabel \@ref(tab:Tabel3)). +Het percentage van het 100m-segment dat vertegenwoordigd wordt door elke submerse vegetatieontwikkelingsklasse wordt genoteerd met een nauwkeurigheid van (5 à) 10 % (Tabel \@ref(tab:Tabel3)). | Code | Beschrijving | |:-----|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 0 | geen ondergedoken vegetatie | | 1 | planten schaars, weinig harkmonsters leveren planten op of veel harkmonsters met enkele planten op hark | -| 2 | veel harkmonsters leveren planten op met meerdere planten op hark en de submerse vegetatie vormt zelden of nooit een belemmering voor de doortocht (van een bootje of al wadend); planten frequent tot talrijk maar niet de gehele waterkolom opvullend | -| 3 | alle harkmonsters leveren planten op waarbij de hark vol planten hangt, planten groeien tot aan het wateroppervlak in grootste deel van het segment of draadwiermassa's bedekken nagenoeg de gehele bodem of het oppervlak; waterkolom grotendeels tot geheel opgevuld | +| 2 | planten frequent tot talrijk maar niet de gehele waterkolom opvullend; veel harkmonsters leveren planten op met meerdere planten op hark en de submerse vegetatie vormt zelden of nooit een belemmering voor de doortocht (van een bootje of al wadend) | +| 3 | waterkolom grotendeels tot geheel opgevuld; alle harkmonsters leveren planten op waarbij de hark vol planten hangt, planten groeien tot aan het wateroppervlak in grootste deel van het segment of draadwiermassa's bedekken nagenoeg de gehele bodem of het oppervlak | : (#tab:Tabel3) Klassen van submerse vegetatieontwikkeling (Schneiders et al., 2004). @@ -147,39 +155,59 @@ Het percentage verstoringsindicatoren (helofyten, eutrofiëringsindicatoren en i ### Algemene standplaatskenmerken {#algstand} -De algemene kenmerken zijn gebaseerd op veldformulieren opgemaakt t.b.v. de macrofytenmonitoring voor de Europese Kaderrichtlijn Water (Leyssen et al., 2005; Leyssen et al., 2007; Schneiders et al., 2004), veldprotocols voor de hydromorfologiemonitoring (VMM, 2010) en de 'River Habitat Survey' (Environment Agency, 2003). +De algemene kenmerken zijn gebaseerd op veldformulieren opgemaakt voor de KRW-macrofytenmonitoring (Leyssen et al., 2005; Leyssen et al., 2007; Schneiders et al., 2004), veldprotocols voor de hydromorfologiemonitoring (VMM, 2010) en de 'River Habitat Survey' (Environment Agency, 2003). Voor definities van de kenmerken wordt verwezen naar \@ref(definities-en-afkortingen). -De meeste kenmerken worden op het veldformulier geregistreerd door keuzevakjes aan te kruisen (voorkant veldformulier; Bijlage \@ref(veldformulier)); er zijn 2 typen van keuzemogelijkheden: +De meeste kenmerken worden op het veldformulier geregistreerd door keuzevakjes aan te kruisen; er zijn 2 typen van keuzemogelijkheden: -- $\square$ selectievakje: meerdere keuzes zijn mogelijk; -- $\circ$ keuzerondje of radio button: er is slechts één keuze mogelijk. +- $\square$ (selectievakje): meerdere keuzes zijn mogelijk; +- $\circ$ (keuzerondje): er is slechts één keuze mogelijk. #### Waterpeil Een afwijkend waterpeil wordt genoteerd. -Bij een uitzonderlijk hoog waterpeil wordt afgeraden om een vegetatieopname te maken, enerzijds omwille van veiligheidsredenen en anderzijds vanwege het beperkt doorzicht dat meestal gepaard gaat met een uitzonderlijk hoog waterpeil. +Bij een uitzonderlijk hoog waterpeil wordt afgeraden om een vegetatieopname te maken, enerzijds omwille van veiligheid en anderzijds vanwege het beperkt doorzicht dat meestal gepaard gaat met een uitzonderlijk hoog waterpeil. + +#### Stroomsnelheid + +De stroomsnelheid wordt op één plaats gemeten voor een algemene kwantitatieve karakterisatie van de stroomsnelheid. +Deze wordt gemeten op dezelfde plaats als de secchi-bepaling (zie verder). +Kies een nagenoeg recht stuk van de waterloop uit, met min of meer horizontale stroming (parallel met oeverlijn). +Submerse vegetatie, grote stenen, vistrappen en andere obstakels moeten vermeden worden omdat deze turbulentie veroorzaken. + +De meting wordt uitgevoerd op de helft van de waterdiepte. +Bijv.: bij een waterdiepte van 1 m, wordt de meting op 0,5 m diepte uitgevoerd. +Bij zeer diepe waterlopen wordt de stroomsnelheidsmeting op ca. +1 m diepte uitgevoerd, omdat de sonde niet dieper geplaatst kan worden en uit veiligheidsoverwegingen. +Indien de meting op een andere diepte dan de helft van de waterdiepte wordt uitgevoerd, wordt dit op het veldformulier genoteerd. +De keuze van waterdiepte voor de stroomsnelheidsbepaling dient bij het ontwikkelen van het deelprotocol (sfp-118) verder geëvalueerd te worden, o.a. +gebaseerd op (Hartong & Termes, 2009; Osté et al., 2013; Stone et al., 2012; West Virginia Department of Environmental Protection, 2018). #### Artificiële structuren -Indien er een verharde, ondoorgroeibare waterbodem aanwezig is (bodemplaat of bodemval), wordt dit genoteerd door aan te geven over welke lengte van het traject dit voorkomt. +Indien er een verharde, ondoorgroeibare waterbodem aanwezig is (bodemplaat of bodemval), wordt de lengte van het segment met bodemverharding genoteerd. Indien er een overwelving aanwezig is, wordt dit eveneens genoteerd en worden er foto's van genomen. #### Schaduw -Het percentage schaduw wordt gelijkgesteld aan de procentuele bedekking van het wateroppervlak door overhangende bomen of oevervegetatie, dus als loodrechte projectie op het wateroppervlak. +Schaduw wordt ingeschat als de procentuele bedekking van schaduw op het wateroppervlak, veroorzaakt door houtigen groter dan 2 m. +Het betreft de loodrechte projectie op het wateroppervlak. + +Eén boom die een groot deel van het segment beschaduwt (bijv. 10 %) en die op de oever wortelt, telt mee in het percentage schaduw, maar wordt niet in de vegetatieopname vermeld. +Wanneer deze éne boom in het water staat, telt deze ook mee voor het percentage schaduw en wordt ze vermeld in de vegetatieopname. -#### Dwarsprofiel en grof organisch materiaal +#### Dwarsprofiel -Voor de bepaling van de breedte, diepte en slibdikte wordt een doorsnee dwarsprofiel (Figuur \@ref(fig:Figuur5)) van het traject beschouwd. +Voor de bepaling van de breedte, diepte en slibdikte wordt een dwarsprofiel (Figuur \@ref(fig:Figuur5)) van het segment beschouwd. In meanderende waterlopen gebeuren deze metingen in het deel tussen de twee meanderbochten. -De breedte van het wateroppervlak wordt bepaald met behulp van een rolmeter of via de SmartMeasure-applicatie. -Een vouwmeter van 2 m of de maataanduiding van de telescopische steel wordt gebruikt voor de bepaling van de waterdiepte. -De slibdikte wordt bepaald door een bamboestok met schaalverdeling zachtjes in de bodem te prikken tot er een hogere weerstand is van het onderliggende bodemsubstraat. +De breedte van het wateroppervlak wordt bepaald met behulp van een laserafstandsmeter, een smartphoneapplicatie, een rol- of plooimeter. +Voor de breedte van de Grensmaas wordt enkel de breedte van de Vlaamse zijde genoteerd; indien mogelijk ter plaatse ingeschat of via een zomer-orthofoto. +Een plooimeter van 2 m of de maataanduiding van de telescopische steel wordt gebruikt voor de bepaling van de waterdiepte. +De slibdikte wordt bepaald door de telescopische steel zachtjes in de bodem te prikken tot er een hogere weerstand is van het onderliggende bodemsubstraat. De sliblaag is soms niet vast te stellen indien een meting te gevaarlijk is. Er wordt dan aangeduid dat er een sliblaag aanwezig is, maar dat de meting onmogelijk is. Indien mogelijk wordt aangegeven dat de slibdikte groter is dan ..... -cm. +m. ```{r Figuur5, fig.cap= "Situering doorsnee dwarsprofiel (rood, links) en op te nemen kenmerken van het dwarsprofiel (rechts)"} @@ -187,6 +215,12 @@ include_graphics("media/image5.jpg") ``` +#### Grof organisch materiaal + +De aanwezigheid van bladeren, dood plantaardig materiaal en dood hout in de bedding van de waterloop wordt ingeschat in verschillende klassen: bladeren of dood plantaardig materiaal; twijgjes (\< 3 cm doorsnede); takken (\< 30 cm doorsnede) en grote takken of boomstammen (\> 30 cm). +De aanwezigheid van één enkel blaadje of twijgje is niet relevant voor de opname; bijgevolg geldt voor deze laagste twee klassen een minimum van 1 % bedekking. +Voor takken en boomstammen is de aanwezigheid van minstens 1 exemplaar voldoende. + #### Helderheid waterkolom Indien er geen bodemzicht is, wordt de secchi-diepte bepaald. @@ -195,14 +229,18 @@ Dit wordt enkele malen herhaald. Indien de schijf tot op de bodem zichtbaar is, wordt 'bodemzicht' aangevinkt. De meting van de secchi-diepte dient in het midden van de waterloop uitgevoerd te worden ter hoogte van de plaats waar ook het dwarsprofiel wordt opgemeten. Bij te grote diepte, kan de secchi-diepte bepaald worden vanop een brug. +Wanneer door stroming de secchi-schijf sterk afdrijft en de schijf niet loodrecht onder het wateroppervlak komt te hangen, kan de secchi-schijf aan de onderzijde verzwaard worden. +Zie ook protocol [sfp-113-nl 2023.04](../2023.04/index.html). #### Dominant oeverprofiel Het dominante oeverprofiel wordt per oeverzijde genoteerd. -In vergelijking met de uitgebreide oeverprofieltypen van RHS (2003) en VMM (2010), worden er slechts 3 grote categorieën onderscheiden: rechte of holle oevers (± 90°); sterk hellende oevers ($\geq$ 45°) en zwak hellende oevers (\< 45°)[\^4]. +In vergelijking met de uitgebreide oeverprofieltypen van RHS (2003) en VMM (2010), worden er slechts 3 grote categorieën onderscheiden: rechte of holle oevers (± 90°); sterk hellende oevers ($\geq$ 45°) en zwak hellende oevers (\< 45°)[^07_werkwijze-1]. Er wordt genoteerd of het om een (overwegend) natuurlijk of een kunstmatig profiel gaat. Elke kunstmatig aangebrachte vorm van oeverversteviging die tot doel heeft de oever of de rand van de plas-draszone te vrijwaren van erosie en op die manier de stroombaan te fixeren, wordt beschouwd als 'kunstmatig' (VMM, 2010). +[^07_werkwijze-1]: Om de graden van het oeverprofiel in te schatten kan volgende app gebruikt worden: () + Voorbeeld 1: Onverharde verticale of holle oevers die door erosie ontstaan, worden gerekend tot natuurlijke rechte oevers. Voorbeeld 2: Om de oever te stabiliseren werd oeververdediging aangebracht onder de vorm van een palenrij onder de hoogwaterlijn. @@ -238,9 +276,4 @@ De geïdentificeerde specimen worden bewaard in een herbarium. ### Opslag van foto's -- de naam van de foto wordt vervangen door de locatiecode en een volgnummer; - -- de foto's worden chronologisch per datum in mappen bewaard; - -- om het opzoeken van foto's achteraf te vergemakkelijken wordt in de Microsoft verkenner gebruik gemaakt van labels. - Er kunnen labels toegevoegd worden voor de naam van de waterloop (bijv. KleineNete; opgelet: probleem met spaties), voor specifieke soorten (bijv. *Luronium*) en per project (Hydro3260, HabKwal, MonLN,...). +- De foto's worden chronologisch per datum in mappen bewaard, waarbij de locatiecode en de datum in de map- of bestandsnaam wordt vermeld diff --git a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/08_kwaliteitszorg.Rmd b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/08_kwaliteitszorg.Rmd index 802be694..3e69bb6f 100644 --- a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/08_kwaliteitszorg.Rmd +++ b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/08_kwaliteitszorg.Rmd @@ -14,11 +14,9 @@ In dit onderdeel kunnen ook bepaalde interkalibratie-oefeningen vermeld worden, - Het veldformulier wordt volledig ingevuld. Net na de inventarisatie wordt gecontroleerd of alle velden van het veldformulier werden ingevuld. -- Specimens die op het terrein niet op naam kunnen worden gebracht, worden meegenomen naar het labo ter identificatie; bij twijfel wordt dit specimen voorgelegd aan derden ter controle. +- In het digitaal Google-veldformulier en INBOVEG zijn een aantal automatische controles ingebouwd of verplicht in te vullen velden aangeduid, waardoor de kans op foutief ingevoerde waarden wordt verminderd. -- Voor elke in INBOVEG ingevoerde opname wordt gecontroleerd of het aantal en de bedekking van de ingevoerde soorten overeenkomt met deze van het veldformulier. - -- In INBOVEG zijn een aantal automatische controles ingebouwd of verplicht in te vullen velden aangeduid, waardoor de kans op foutief ingevoerde waarden wordt verminderd. - -- Nadat alle opnames van een veldseizoen zijn ingevoerd in INBOVEG, wordt via query's of kruistabellen gecontroleerd of alle kenmerken voor alle opnames werden ingevoerd in INBOVEG. +- Specimen die op het terrein niet op naam kunnen worden gebracht, worden meegenomen naar het labo ter identificatie; bij twijfel wordt dit specimen voorgelegd aan derden ter controle. +- Voor elke in INBOVEG ingevoerde opname wordt gecontroleerd of het aantal en de bedekking van de ingevoerde soorten overeenkomt met deze van het veldformulier. + Nadat alle opnames van een veldseizoen zijn ingevoerd in INBOVEG, wordt via query's of kruistabellen gecontroleerd of alle kenmerken voor alle opnames werden ingevoerd in INBOVEG. diff --git a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/09_veiligheid.Rmd b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/09_veiligheid.Rmd index a9eaab63..75b2afba 100644 --- a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/09_veiligheid.Rmd +++ b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/09_veiligheid.Rmd @@ -17,4 +17,11 @@ Alle aandachtspunten in verband met veilig werken. - Tijdens een opname in verontreinigd water draagt men waterdichte handschoenen; na de opname wast men de handen met ontsmettende zeep om het risico op besmetting te beperken. -- Gebruik een reddingstouw of reddingsvest wanneer de situatie dit vereist. +- Voorzichtigheid is ten zeerste geboden bij diepe en snelstromende waterlopen, bij weke waterbodem en bij gladde of zeer steile taluds. + In deze omstandigheden kan een alternatieve opnametechniek toegepast worden (zie \@ref(vegopn)). + Gebruik een reddingstouw of reddingsvest wanneer de situatie dit vereist. + +Tijdens het veldwerk gelden volgende aanvullende veiligheidsregels: + +- algemene veiligheidsregels rond het werken in en nabij water (protocol in ontwikkeling sfp-112); +- bioveiligheidsmaatregelen voor het voorkomen van de verspreiding van invasieve exoten (protocol in ontwikkeling sfp-015). diff --git a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/10_samenvatting.Rmd b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/10_samenvatting.Rmd index f840c6d2..a055f8bf 100644 --- a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/10_samenvatting.Rmd +++ b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/10_samenvatting.Rmd @@ -10,23 +10,27 @@ Gebruik eventueel een stroomschema indien dit het protocol kan verduidelijken. Controleer **lijst met benodigdheden** voor vertrek. - STAP 2. - **Navigeer met GPS naar het steekproefpunt** (meest stroomafwaarts gelegen punt van 100m-traject). - Noteer het percentage van het 100m-traject dat een overwelving bevat. - Indien dit percentage \> 10 % wordt het steekproefpunt random stroomopwaarts of stroomafwaarts verschoven. + **Navigeer met GPS naar het steekproefpunt** (meest stroomafwaarts gelegen punt van 100m-segment). + Noteer het percentage van het 100m-segment dat een overwelving bevat of beschaduwd is. + Indien dit percentage \> 10 % (resp. 30 %) wordt het steekproefpunt random stroomopwaarts of stroomafwaarts verschoven. - STAP 3. - **Voer vegetatieopname uit**. - Afhankelijk van de waterdiepte gebeurt dit op een van volgende manieren: door het water wadend, harkend vanuit het doorwaadbare deel van de waterloop of harkend vanaf de oever. + Voer de volgende metingen uit: - - Wanneer het traject stroomopwaarts wordt afgelegd, noteert men (1) alle soorten (met wortels in water of waterbodem), (2) de groeivorm van de soorten wanneer deze afwijkt van wat doorgaans wordt aangetroffen (zie Bijlage \@ref(groeivormen)) en (3) het aantal vegetatievlekken van sleutelsoorten per oppervlakteklasse. - Soorten die niet ter plekke kunnen geïdentificeerd worden, bewaart men in gelabelde plastiek zakjes en worden later op naam gebracht. - - - Op het einde van het 100m-traject maakt men een inschatting van (1) de totale bedekking van de genoteerde planten, (2) de bedekking van de klassen van submerse vegetatieontwikkeling, (3) de bedekking van verstoringsindicatoren (helofyten, eutrofiëringsindicatoren en invasieve exoten), (4) de totale oppervlakte van vegetatievlekken met sleutelsoorten en (5) de oppervlakte van de grootste vegetatievlek met sleutelsoorten. - De geschatte bedekkingen worden gecontroleerd wanneer het traject stroomafwaarts wordt afgelegd. + - bepaling waterdiepte, breedte en slibdikte van een doorsnee dwarsprofiel, + - bepaling secchi-diepte, + - bepaling stroomsnelheid. - STAP 4. - Bepaal de **standplaatskarakteristieken** wanneer het traject stroomafwaarts wordt afgelegd: (1) Waterpeil (a.d.h.v. de categorieën in invulformulier), (2) % beschaduwing bomen en oevervegetatie, (3) helderheid waterkolom (met Secchi-schijf), (4) breedte (met rolmeter of SmartMeasure-app), diepte (met vouwmeter of telescopische steel) en slibdikte (met bamboestok met schaalverdeling) van een doorsnee dwarsprofiel, (5) dominant oeverprofiel per oeverzijde (a.d.h.v. de categorieën in invoerformulier) (6) recent beheer indien dit zichtbaar is op terrein. + **Voer vegetatieopname uit**. + Afhankelijk van de waterdiepte gebeurt dit op een van volgende manieren: door het water wadend, harkend vanuit het doorwaadbare deel van de waterloop of harkend vanaf de oever. + + - Wanneer het segment stroomopwaarts wordt afgelegd, noteert men (1) alle soorten (met wortels in water of waterbodem), (2) de groeivorm van de soorten wanneer deze afwijkt van wat doorgaans wordt aangetroffen (zie Bijlage \@ref(groeivormen)) en (3) het aantal vegetatievlekken van sleutelsoorten per oppervlakteklasse. Soorten die niet ter plekke kunnen geïdentificeerd worden, bewaart men in gelabelde zakjes en worden later op naam gebracht. + - Op het einde van het 100m-segment maakt men een inschatting van (1) de totale bedekking van de genoteerde planten, (2) de bedekking van de klassen van submerse vegetatieontwikkeling, (3) de bedekking van verstoringsindicatoren (helofyten, eutrofiëringsindicatoren en invasieve exoten), (4) de totale oppervlakte van vegetatievlekken met sleutelsoorten en (5) de oppervlakte van de grootste vegetatievlek met sleutelsoorten. De geschatte bedekkingen worden gecontroleerd wanneer het segment stroomafwaarts wordt afgelegd. - STAP 5. + Bepaal de **standplaatskarakteristieken** wanneer het segment stroomafwaarts wordt afgelegd: % beschaduwing bomen en oevervegetatie, dominant oeverprofiel per oeverzijde (a.d.h.v. de categorieën in invoerformulier) en recent beheer indien dit zichtbaar is op terrein. + +- STAP 6. Soorten die niet konden worden geïdentificeerd op terrein, worden binnen de week na bemonstering gedetermineerd. Gegevens worden ingegeven in INBOVEG indien dit nog niet is gebeurd op terrein. diff --git a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/11_referenties.Rmd b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/11_referenties.Rmd index 1db385e7..b9274a2b 100644 --- a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/11_referenties.Rmd +++ b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/11_referenties.Rmd @@ -1,5 +1,12 @@ # Referenties {.unnumbered} +Bijkerk R. +(2014). +Handboek hydrobiologie. +Deel 1. +Biologisch onderzoek voor de ecologische beoordeling van Nederlandse zoete en brakke oppervlaktewateren. +Stichting Toegepast Onderzoek Waterbeheer, Amersfoort. + Bird G.A., Kaushik N.K. (1981). Coarse Particulate Organic Matter in Streams. @@ -19,11 +26,24 @@ Denys L. Advies over de bepaling van de vegetatieontwikkeling van submerse vegetatie en enkele aanpassingen m.b.t. de beoordeling van macrofyten in Vlaamse meren voor de Europese Kaderrichtlijn Water. Instituut voor Natuur- en Bosonderzoek, Brussel. +Denys L., Leyssen A., Vanden Borre J. +(2016). +Advies over de effecten van beschaduwing op de EKC van macrofyten. +Instituut voor Natuur- en Bosonderzoek, Brussel. Environment Agency. (2003). River habitat survey in Britain and Ireland. Environment Agency, Warrington. +Flow-Tronic. +(1994). +FLO-MATE. +Manuel d'Installation & d'Utilisation. +Flow-Tronic nv., Welkenraedt. +Hartong H., Termes P. (2009). +Handboek debietmeten in open waterlopen. +STOWA, Utrecht. + Lambinon J., De Langhe J.E., Delvosalle L., Duvigneaud J. (1998). Flora van België, het Groothertogdom Luxemburg, Noord-Frankrijk en de aangrenzende gebieden (Pteridofyten en Spermatofyten). @@ -33,12 +53,14 @@ Leyssen A., Adriaens P., Denys L., Packet J., Schneiders A., Van Looy K., Vanhec (2005). Toepassing van verschillende biologische beoordelingssystemen op Vlaamse potentiële interkalibratielocaties overeenkomstig de Europese Kaderrichtlijn Water -- partim "Macrofyten". Instituut voor Natuurbehoud, Brussel. +Rapport van het Instituut voor Natuurbehoud 2005 (5). Leyssen A., Denys L., Packet J., Schneiders A., Van Looy K., Paelinckx D. (2010). -Indicatieve situering van het Natura 2000 habitattype 3260, submontane - en laaglandrivieren met vegetaties behorende tot het *Ranunculion fluitantis* en het *Callitricho-Batrachion*. +Indicatieve situering van het Natura 2000 habitattype 3260, submontane - en laaglandrivieren met vegetaties behorende tot het Ranunculion fluitantis en het Callitricho-Batrachion. Versie 1.3. Instituut voor Natuur- en Bosonderzoek, Brussel. +Rapporten van het Instituut voor Natuur- en Bosonderzoek 2010 (67). Leyssen A., Packet J., Denys L. (2007). @@ -46,10 +68,16 @@ Handleiding macrofyteninventarisatie en fytobenthosstaalname in waterlopen. Instituut voor Natuur- en Bosonderzoek, Brussel. Oosterlynck P., De Saeger S., Leyssen A., Provoost S., Thomaes A., Vandevoorde B., Wouters J., Paelinckx D. -(in voorbereiding). -Criteria voor de beoordeling van de lokale staat van instandhouding van de NATURA 2000-habitattypen, versie 3.0. +(2020). +Criteria voor de beoordeling van de lokale staat van instandhouding van de Natura 2000-habitattypen, versie 3.0. Instituut voor Natuur- en Bosonderzoek, Brussel. +Osté A.J., de Groot B., van Dam O. +(2013). +Handboek Hydromorfologie 2.0. +Afleiding en beoordeling hydromorfologische parameters Kaderrichtlijn Water. +Directoraat-Generaal Rijkswaterstaat, Den Haag. + RHS. (2003). River Habitat Survey in Britain and Ireland. @@ -58,6 +86,13 @@ Environment Agency Surrey. Schneiders A., Denys L., Jochems H., Vanhecke L., Triest L., Es K., Packet J., Knuysen K., Meire P. (2004). Ontwikkelen van een monitoringsysteem en een beoordelingssysteem voor macrofyten in oppervlaktewateren in Vlaanderen overeenkomstig de Europese Kaderrichtlijn Water. Instituut voor Natuurbehoud, Brussel. +Rapporten van het Instituut voor Natuurbehoud 2004 (1). + +Stone M.L., Rasmussen T.J., Bennett T.J., Poulton B.C., Ziegler A.C. +(2012). +Protocols for collection of streamflow, water-quality, streambed-sediment, periphyton, macroinvertebrate, fish and habitat data to describe stream quality for the hydrobiological monitoring Program, Equus Beds Aquifer Storage and Recovery Program, City of Wichita, Kansas. +U.S. Geological Survey, Virginia. +Open-File Report 2012--1055. T'jollyn F., Bosch H., Demolder H., De Saeger S., Leyssen A., Thomaes A., Wouters J., Paelinckx D., Hoffmann M. (2009). @@ -69,6 +104,18 @@ VMM. Hydromorfologie: handleiding veldwerkformulier. Vlaamse Milieumaatschappij, Brussel. +West Virginia Department of Environmental Protection. +(2018). +Stream flow measurement protocols. +Department of Environmental Protection, West-Virginia. + +Westra T., Oosterlynck P., Govaere L., Leyssen A., Denys L., Packet J., Scheers K., Vanderhaeghe F., Vanden Borre J. +(2022). +Monitoring scheme for biotic habitat quality of Natura 2000 habitat types in Flanders, Belgium. +Revision of the monitoring design. +Research Institute for Nature and Forest Brussels. +25. + ::: {#refs} ::: @@ -152,3 +199,4 @@ Instituut voor Natuur- en Bosonderzoek, Brussel. INBO.R.2014.1414229. --> ``` + diff --git a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/12_appendices.Rmd b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/12_appendices.Rmd index ce273508..9244a876 100644 --- a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/12_appendices.Rmd +++ b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/12_appendices.Rmd @@ -46,7 +46,7 @@ bijlage %>% # Veldformulier habitatkwaliteit waterlopen met habitattype 3260 {#veldformulier} -Het veldwerkformulier kan [hier](https://docs.google.com/document/d/0BwHLCKB3fXyDamgyRW1XUU5VbDQ/edit?usp=sharing&ouid=110742384115777694200&resourcekey=0-d6fWDWYUI81M-1H3F79dQg&rtpof=true&sd=true) gedownload worden. +Het veldwerkformulier kan [hier](https://docs.google.com/document/d/12lnKnR1vqXqlR8tRAa7a0_mOXD2Ur2jF/edit) gedownload worden. # Determinatiewerken {#determinatie} @@ -56,6 +56,7 @@ Duistermaat L. (2020) Heukels' Flora van Nederland. Noordhoff Naturalis Biodiversity Center. ISBN 978-90-01-58956-1. + Eggelte H. (2000) Veldgids Nederlandse Flora. KNNV. ISBN90 5011 135 1. diff --git a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/13_subprotocols.Rmd b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/13_subprotocols.Rmd index d40853c0..c03e51e6 100644 --- a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/13_subprotocols.Rmd +++ b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/13_subprotocols.Rmd @@ -1,5 +1,3 @@ -# (PART) Subprotocols {.unnumbered} - ```{r, results="asis"} if (exists("params")) { if (!is.null(params$dependencies)) { @@ -14,7 +12,8 @@ if (exists("params")) { if (length(child_docs) > 0) { res <- map(child_docs, knit_child, quiet = TRUE) - cat(unlist(res), sep = "\n") + cat( + c("# (PART) Subprotocols {.unnumbered}", "", unlist(res)), sep = "\n") } } } diff --git a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/NEWS.md b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/NEWS.md index 8440b953..642c8988 100644 --- a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/NEWS.md +++ b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/NEWS.md @@ -16,6 +16,18 @@ Gesorteerd van recent naar oud. - Eerste versie van het protocol --> ``` +## [2023.05](../2023.05/index.html) + +- Voor de aanwezigheid van grof organisch materiaal wordt voor bladeren en twijgjes een minimum van 1% bedekking vooropgesteld (sinds veldperiode 2019; zie \@ref(bedekking-verstoringsindicatoren)). + +- De stroomsnelheid wordt gemeten en genoteerd tijdens de vegetatieopname (sinds veldperiode 2020; zie \@ref(stroomsnelheid)). + +- Tot eind 2022 werd bij de inschatting van het % schaduw door bomen en struiken de houtige gewassen die in het water stonden uitgesloten. + Vanaf het veldseizoen 2023 zal dit meegerekend worden (zie \@ref(schaduw)). + Vanaf het veldseizoen van 2023 wordt de schaduw door overhangende oevervegetatie niet meer genoteerd. + +- De overige wijzigingen t.o.v. de vorige versie bestaan uit verduidelijkingen van begrippen; dit zijn geen fundamentele wijzigingen. + ## [2023.02](../2023.02/index.html) - Dit is de eerste versie van het protocol dat dateert van 07-02-2017. Het oorspronkelijk versienummer is 1.0. diff --git a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/_bookdown.yml b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/_bookdown.yml index 1bb482e7..1c087552 100644 --- a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/_bookdown.yml +++ b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/_bookdown.yml @@ -1,6 +1,5 @@ book_filename: sfp_403_nl_vegopname_lsvi_3260.Rmd delete_merged_file: true -edit: https://github.com/inbo/protocolsource/edit/main/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/%s rmd_files: - index.Rmd - NEWS.md diff --git a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/index.Rmd b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/index.Rmd index e8fea828..d6d8dbdf 100644 --- a/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/index.Rmd +++ b/source/sfp/4_vegetation/sfp_403_nl_vegopname_lsvi_3260/index.Rmd @@ -3,11 +3,11 @@ title: Vegetatieopname en LSVI-bepaling habitat 3260 author: - name: Leyssen, An orcid: 0000-0003-3537-286X -date: "`r Sys.Date()`" -reviewers: Luc Denys, Toon Westra, Hans Van Calster +date: '`r Sys.Date()`' +reviewers: Luc Denys, Toon Westra, Hans Van Calster, Jo Packet, Kevin Scheers file_manager: Toon Westra protocol_code: sfp-403-nl -version_number: '2023.02' +version_number: '2023.05' language: nl lang: nl template_name: sfp @@ -19,6 +19,13 @@ bibliography: csl: https://raw.githubusercontent.com/citation-style-language/styles/master/research-institute-for-nature-and-forest.csl url: https://inbo.github.io/protocols/ github_repo: inbo/protocolsource +params: + dependencies: + value: + - protocol_code: sfp-113-nl + version_number: '2023.04' + params: .na + appendix: false --- ```{=html} diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/01_afhankelijkheden.Rmd b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/01_afhankelijkheden.Rmd new file mode 100644 index 00000000..5dd74435 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/01_afhankelijkheden.Rmd @@ -0,0 +1,47 @@ +# Afhankelijkheden + +```{=html} + +``` +```{r dependencies} +empty_table <- tibble( + protocol_code = character(), + version_number = character(), + params = character(), + appendix = logical() + ) %>% + add_row() %>% + rename( + `Protocolcode` = protocol_code, + `Versienummer` = version_number, + `Opgenomen als subprotocol` = appendix) %>% + pander(split.tables = Inf) + +if (exists("params")) { + if (!is.null(params$dependencies)) { + transpose(params$dependencies) %>% + as_tibble() %>% + mutate(protocol_code = as.character(protocol_code), + version_number = as.character(version_number), + params = as.character(params), + version_number = ifelse(params == "NA", + paste0("[", version_number, "](../", + version_number, "/", "index.html)"), + version_number), + appendix = as.logical(appendix)) %>% + rename( + `Protocolcode` = protocol_code, + `Versienummer` = version_number, + `Opgenomen als subprotocol` = appendix) %>% + pander(split.tables = Inf) + } else { + empty_table + } +} else { + empty_table +} +rm(empty_table) +``` diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/02_onderwerp.Rmd b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/02_onderwerp.Rmd new file mode 100644 index 00000000..e0c35852 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/02_onderwerp.Rmd @@ -0,0 +1,52 @@ +# Onderwerp + +## Definities en afkortingen + +```{=html} + +``` +**LSVI**: lokale staat van instandhouding. + +***Luronium*****-vlek**: vegetatievlek van *Luronium natans*; deze ligt minstens 2 m verwijderd van een andere vlek. +De locatie van deze vlek wordt op kaart vastgelegd om bij een volgende monitoringsronde de vindplaats in het waterlichaam terug te vinden en de evolutie op te volgen. + +**populatie**: Populaties of deelpopulaties van *Luronium* worden hier onderscheiden op basis van afwijkingen in de fysische of chemische kenmerken van de groeiplaatsen; concreet betekent dit dat één plas of waterloop meestal één populatie bevat. + +**PVI:** 'plant volume infested': het percentage van het watervolume dat wordt ingenomen door ondergedoken vegetatie (Canfield et al. 1984). + +**veldlocatie:** de te monitoren locatie met aanwijzingen van voorkomen van *Luronium natans.* + +**waterdiepte**: verticale afstand tussen het wateroppervlak en het bodemoppervlak. + +**waterlichaam** of oppervlaktewaterlichaam: een onderscheiden oppervlaktewater van aanzienlijke omvang, zoals een meer, een waterbekken, een stroom, een rivier, een kanaal, of een deel ervan, een overgangswater of een strook kustwater (KRW 2000). +Hier wordt de term gebruikt als verzamelnaam voor een plas of een waterloop. + +## Doelstelling en toepassingsgebied + +```{=html} + +``` +Het doel van het veldprotocol is veldgegevens te verzamelen van de populaties van de habitatrichtlijnsoort *Luronium natans* (drijvende waterweegbree) om de verspreiding en kwaliteit van de soort op Vlaams niveau te bepalen voor de EU-rapportage (artikel 17; European Commission, 1992). +De gehanteerde methode is beschreven in het rapport over de monitoring van de soorten (Van Landuyt 2014) en de beoordeling van de lokale staat van instandhouding van de habitatrichtlijnsoorten (Denys et al. 2008; Lommaert et al. 2020). + +Het veldprotocol kan toegepast worden op locaties waar *Luronium natans* voorkomt of verdwenen is, zowel in stilstaande als in stromende wateren. +Aangezien de soort op een beperkt aantal plaatsen voorkomt, worden alle populaties opgevolgd en wordt er geen steekproef van op te volgen populaties getrokken. +Bij de bemonstering is het niet nodig om de volgorde aan te houden van het randomgrid (Westra et al. 2014). +Er wordt bijgevolg voorrang gegeven aan locaties die het langst geleden werden geïnventariseerd. + +De soort is gekend van een 40-tal locaties (Bijlage \@ref(veldlocaties); datum 2020-11-24). +Er worden 3 vindplaatsen jaarlijks opgevolgd (Roskampsputje, Heuvelsven en Daelemansloop) om korte-termijn-fluctuaties te kunnen inschatten. +Nieuwe meldingen van *Luronium natans* worden - indien haalbaar - in hetzelfde jaar bezocht. +De overige vindplaatsen worden 6-jaarlijks opgevolgd. +Van Landuyt (2014) raadt echter een 3-jaarlijkse monitoringscyclus aan, terwijl andere monitoringsinitiatieven 12-jaarlijks meten. + +Er is een grote overlap tussen de vindplaatsen van *Luronium natans* en de habitatwaardige plassen die opgenomen zijn in het habitatkwaliteitsmeetnet voor stilstaande wateren (Westra et al. 2014). +De veldkenmerken van *Luronium natans* kunnen gelijktijdig met het veldwerk voor habitattype 3130 bepaald worden. +Een extra voordeel hierbij is dat de gegevens gelinkt kunnen worden aan de resultaten van de abiotische staalname van deze locaties. diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/03_beperkingen.Rmd b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/03_beperkingen.Rmd new file mode 100644 index 00000000..13612727 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/03_beperkingen.Rmd @@ -0,0 +1,17 @@ +# Beperkingen van het protocol + +```{=html} + +``` +In sommige omstandigheden kan er geen opname worden gemaakt en kan het veldformulier niet volledig worden ingevuld, bijvoorbeeld doordat de vindplaats onbereikbaar is, ontoegankelijk is (privaat domein zonder toestemming) of bij extreem hoog waterpeil. +Dit wordt steeds gedocumenteerd op het veldformulier. +Bij extreem hoog waterpeil wordt de locatie later dat jaar of het daaropvolgende jaar opnieuw bezocht. + +Indien geen *Luronium natans* wordt aangetroffen op de locatie, wordt slechts een deel van het veldformulier ingevuld (zie \@ref(veldformulier)). + +Vanuit praktische overwegingen (weersomstandigheden, identificatie, begeleidende vegetatie) gebeurt de monitoring best gedurende het hoogtepunt van de bloeiperiode (juni-juli). +Populaties op tijdelijk droogvallende standplaatsen worden best tussen mei en juni bemonsterd. diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/04_principe.Rmd b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/04_principe.Rmd new file mode 100644 index 00000000..dbfebb6a --- /dev/null +++ b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/04_principe.Rmd @@ -0,0 +1,13 @@ +# Principe + +```{=html} + +``` +De LSVI geeft inzichten in de toestand van de populatie en de kwaliteit van het leefgebied. +De LSVI-indicatoren worden ingedeeld in criteria voor bepaling van de toestand van de populatie en de habitatkwaliteit; ze omvatten de populatiegrootte, populatiestructuur, vegetatiestructuur, habitatkenmerken en verstoringsindicatoren. +Voor elke indicator wordt een drempelwaarde gegeven die een beoordeling tussen een gunstige en ongunstige toestand toelaat (Denys et al. 2008, Lommaert et al. 2020). +Via dit veldprotocol worden de nodige gegevens verzameld om de LSVI-indicatoren voor de habitatrichtlijnsoort *Luronium natans* te kunnen bepalen. + diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/05_competenties.Rmd b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/05_competenties.Rmd new file mode 100644 index 00000000..48454b7f --- /dev/null +++ b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/05_competenties.Rmd @@ -0,0 +1,31 @@ +# Vereiste competenties + +```{=html} + +``` +De veldwerker is vertrouwd met volgende deelprotocollen: + +- veiligheid in en rond water; + +- bepaling doorzicht waterkolom oppervlaktewater op basis van de Secchi-diepte ([sfp-113 2023.04](../2023.04/index.html)); + +- bioveiligheidsmaatregelen. + +Daarnaast zijn volgende algemene competenties vereist (naar Bijkerk 2014): + +- voldoende kennis van veldkenmerken van macrofyten in stilstaande en stromende wateren en vertrouwd zijn met technieken om ze te kunnen identificeren; + +- nauwkeurigheid: de uitvoering van veldobservaties en het vastleggen van veldwaarnemingen vereisen een grote mate van accuratesse; + +- vermogen te plannen en te organiseren: bij de uitvoering van veldcampagnes moeten tal van werkzaamheden gepland, georganiseerd en op elkaar afgestemd worden. + De veldmedewerker moet in staat zijn om hier zelfstandig of in overleg met de projectleider uitvoering aan te geven; + +- zelfstandigheid: de veldmedewerker moet in staat zijn om het merendeel van de werkzaamheden zelfstandig (op locatie) uit te voeren; + +- vermogen tot samenwerken en communiceren; + +- de veldmedewerker moet fysiek in staat kunnen zijn om het protocol in veilige omstandigheden te kunnen uitvoeren (kunnen zwemmen, ...). diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/06_benodigdheden.Rmd b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/06_benodigdheden.Rmd new file mode 100644 index 00000000..f04dab8e --- /dev/null +++ b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/06_benodigdheden.Rmd @@ -0,0 +1,103 @@ +# Benodigdheden + +Onderstaand veldmateriaal dient tijdens het veldwerk beschikbaar te zijn (Tabel \@ref(tab:Tabel1) ); enkele daarvan specifiëren we. + +| Benodigdheden | +|:----------------------------------------------------------------------------------| +| $\square$ veldformulieren en relevante protocollen | +| $\square$ documentatie van de veldlocatie om deze te kunnen lokaliseren | +| $\square$ klembord, potlood, slijper | +| $\square$ auto-gps, tablet, smartphone, fototoestel, handcomputer | +| $\square$ laarzen, lieslaarzen, waadpak (site-afhankelijk) | +| $\square$ hersluitbare zakjes, alcoholstift of papier en potlood | +| $\square$ vegetatiehark of dreghark bij diepe plassen | +| $\square$ boot met zwemvesten, \...(site-afhankelijk) | +| $\square$ determinatiewerken, loep | +| $\square$ waterdichte handschoenen, ontsmettende zeep, reddingsvest, reddingstouw | +| $\square$ secchi-schijf: zie materiaal van deelprotocol sfp-113 | +| $\square$ stokken voorzien van gekleurde wimpel | + +: (#tab:Tabel1) Checklist veldmateriaal + +## Apparatuur + +```{=html} + +``` +### Binoculaire stereomicroscoop en/of lichtmicroscoop + +Planten die tijdens het veldwerk niet geïdentificeerd kunnen worden, kunnen in het labo met een binoculaire stereomicroscoop bekeken worden. +Met vergrotingen tot minimaal 80x kunnen detailkenmerken zoals stengelharen, sporenkapsels, ... bekeken worden. +Beschikbaarheid van een tegenlichtbron is hierbij aan te raden. +Voor sommige kenmerken kan een lichtmicroscoop (100x en meer) gebruikt worden (stuifmeelkorrels, structuren op sporenkapsels, ...). + +### standaard GPS + +Voor de positiebepaling van de opname is een afwijking van enkele meter geen groot probleem; een gewone gps met een nauwkeurigheid van 3 à 6 m is bijgevolg voldoende (dus hand/pols-GPS, tablet-GPS, smartphone-GPS of veldcomputer). +Een RTK-GPS is niet nodig voor dit type veldwerk. + +### Handcomputer, tablet of smartphone + +Voor de positiebepaling of de invoer van veldgegevens op terrein kan gebruik gemaakt worden van een handcomputer, (rugged) tablet of smartphone. +Het toestel zelf of de hoes errond dient geschikt te zijn voor veldomstandigheden (schokbestendig, stofvrij en (spat)waterdicht). + +## Materiaal + +```{=html} + +``` +### Veldloep + +Voor de determinatie van planten is een goede loep nodig. +De loep moet minstens 10x vergroten. +Met een loep van 20x kunnen detailkenmerken (kranswieren, sterrenkroos, ...) tijdens het veldwerk bekeken worden. + +### Vegetatiehark en dreghark + +Een hark met telescopische steel maakt het mogelijk om waterplanten op te halen uit het water indien deze niet met de hand te bemonsteren zijn. +Hiervoor wordt een hark van ca. +50 cm breed op een tot 3,9 m uitschuifbare steel, bijv. +van het merk Gardena, gemonteerd (Figuur \@ref(fig:Figuur1)). +Op de hark wordt volièredraad (1 cm brede mazen) bevestigd met ijzerdraad om kleine en fijne waterplanten te kunnen bemonsteren (Figuur \@ref(fig:Figuur2)). +Op het vaste deel van de steel kan om de 20 cm kleefband bevestigd worden om de waterdiepte te bepalen. + +![(#fig:Figuur1) Hark met uitschuifbare steel van het merk Gardena (foto Jo Packet).](./media/image3.png){width="3.09375in" height="1.9791666666666667in"} + +![(#fig:Figuur2) Hark met volièredraad (foto Jo Packet).](./media/image2.png){width="3.1458333333333335in" height="1.1979166666666667in"} + +In diepe delen van plassen wordt de vegetatieopname vanop een boot uitgevoerd. +Een dreghark (figuur 3) wordt gebruikt om de aanwezige macrofyten puntsgewijs langsheen de transecten te bemonsteren. + +![(#fig:Figuur3) Dubbelzijdige dreghark, voorzien van een houten steel, bevestigd aan een lang nylonkoord (foto Jo Packet).](./media/image1.png){width="3.0722659667541556in" height="2.315625546806649in"} + +### Hersluitbare zakjes + +Soms is identificatie in het veld niet mogelijk en wordt het plantenmateriaal naar het labo gebracht voor verdere determinatie. +Voor het tijdelijk bewaren van plantenmateriaal wordt gebruik gemaakt van (diepvries-)zakjes met sluiting. +De zakjes worden gelabeld met alcoholstift of voorzien van een papier met veldcode en datum (in potlood aangebracht). + +### stokken met wimpel + +Stokken (type bamboestokken) van ca. +1,5 m hoogte, voorzien van een felgekleurde wimpel worden gebruikt om de eindpunten van de transecten tijdelijk te markeren. + +## Reagentia en oplossingen (indien van toepassing) + +```{=html} + +``` +Niet van toepassing. diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/07_werkwijze.Rmd b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/07_werkwijze.Rmd new file mode 100644 index 00000000..5a529816 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/07_werkwijze.Rmd @@ -0,0 +1,156 @@ +# Werkwijze + +## Uitvoering + +```{=html} + +``` +### Voorbereiding terreinwerk + +- vooraf worden de XY-coördinaten van de veldlocatie ingevoerd in een standaard GPS of in een smartphone-applicatie; + +- navigeer met behulp van een standaard GPS naar de oever van de veldlocatie. + +- de soort is het gemakkelijkst te herkennen en op te sporen wanneer deze in bloei is; het terreinwerk wordt bijgevolg idealiter uitgevoerd tijdens het hoogtepunt van de bloeiperiode, in juni en juli, maar kan naargelang de weersomstandigheden ook al vroeger of later in het veldseizoen plaatsvinden. + +### Zoeken naar *Luronium natans* (naar Van Landuyt 2014) + +- De waterdiepte bepaalt of bij de opname een boot vereist is of niet; de werkwijze is in beide gevallen gelijkaardig. + +- Bij het speuren naar rozetten van *Luronium natans* wordt de groeiplaats doorzocht door deze systematisch af te lopen in transecten van ongeveer 3 à 4 meter breed[^07_werkwijze-1]. + De (bamboe)stokken, voorzien van een gekleurde wimpel, worden hierbij gebruikt om de transecten te begrenzen. + + - bij opname in een plas (Figuur \@ref(fig:Figuur4)), wordt eerst de oever afgespeurd; daarna wordt het open water in transecten doorwaad. + Diepere delen kunnen puntsgewijs met een dreghark vanuit een boot worden gecontroleerd, afhankelijk van de veldsituatie. + + - bij opname in een waterloop (Figuur \@ref(fig:Figuur5)) wordt tegen de stroming in gewaad, zodat omgewoeld substraat het zicht niet belemmert. + Hierbij wordt zig-zag-gewijs van de éne oever naar de andere oever gewaad om de volledige breedte van de waterloop te kunnen overzien. + +[^07_werkwijze-1]: Door Van Landuyt (2014) worden transecten van 5 meter breedte aangeraden, maar deze breedte is in aquatische omgeving moeilijk te overzien; er wordt bijgevolg een smaller transect voorzien. + +![(#fig:Figuur4) Schets van het systematisch doorzoeken van een plas met transecten](./media/image4.png){width="6in"} + +![(#fig:Figuur5) Schets van het systematisch doorzoeken van een waterloop](./media/image5.png){width="6in"} + +- Indien *Luronium natans* wordt waargenomen, wordt deze *Luronium*-vlek als punt met een GPS of de Collector-app ingevoerd (feature class: InvPatchLuronium_20xx). Van elke vlek wordt het aantal rozetten in klassen ingeschat. Ook de oppervlakte die de rozetten innemen wordt ingeschat in klassen (zie Tabel \@ref(tab:Tabel2)). Indien slechts enkele schaars verspreide rozetten in een zone wordt waargenomen, zal de oppervlakteklasse van *Luronium* daar laag zijn, terwijl de effectieve contour van de vlek er groter is. + +| code | aantal rozetten | oppervlakte | +|:-----|:----------------|:-----------------| +| A | 1 | \< 1 dm² | +| B | 2 - 5 | 1 dm² - 0,5 m² | +| C | 6 - 25 | 0,5 - 1 m² | +| D | 26 - 50 | 1 - 5 m² | +| E | 51 - 100 | 5 - 25 m² | +| F | 101 - 500 | 25 - 50 m² | +| G | 501 - 1000 | 50 - 500 m² | +| H~a~ | 1001 - 2000 | H: 500 - 5000 m² | +| H~b~ | 2001 - 5000 | | + +: (#tab:Tabel2) Klassen voor inschatting aantal rozetten en oppervlakte die de rozetten innemen (klassegrenzen gebaseerd op Van Landuyt (2014) en Mergeay et al. (2020)) + +- Van grotere *Luronium*-vlekken worden de contouren ingetekend op kaart (analoog of digitaal). + +- Indien de opname met meerdere personen wordt uitgevoerd, kan één persoon de *Luronium*-vlekken met een bamboestok markeren en de andere persoon deze met GPS inmeten. + Of er kan samengewerkt worden om bredere transecten te doorwaden door deze samen op één lijn af te stappen. + +- De aanwezigheid van overige soorten in het waterlichaam kan op het veldformulier genoteerd worden of via een audiofragment geregistreerd. + Dit is echter niet vereist voor de LSVI-bepaling van *Luronium natans* (Lommaert et al. 2020). + +### Secchi-diepte bepalen en registratie van overige kenmerken + +Voor de technische uitvoering van de secchi-diepte-bepaling wordt verwezen naar protocol [sfp-113 2023.04](../2023.04/index.html). +De secchi-diepte wordt op twee plaatsen bepaald: één bepaling voor het volledige waterlichaam (in het midden van de waterloop of plas) en één in een representatieve zone van de *Luronium natans*-populatie of op de plek waar de soort vroeger is waargenomen. +Bij voorkeur wordt de secchi-diepte bepaald in een vegetatieloze of vegetatiearme zone. +De waterdiepte waar de secchi-diepte werd bepaald, wordt eveneens genoteerd. + +Vervolgens worden de overige kenmerken geregistreerd op het veldformulier (zie volgende paragraaf). + +## Registratie en bewaring van resultaten + +```{=html} + +``` +### Registratie van resultaten in veldformulier + +Het veldformulier kan ingedeeld worden in 3 onderdelen ( Bijlage \@ref(veldformulier)), waarvan het eerste deel de kopgegevens bevat. +De overige 2 hebben betrekking op twee schaalniveau's waarvan kenmerken worden genoteerd: het waterlichaam en de groeiplaats van *Luronium*. +Enkel de niet voor de hand liggende kenmerken worden hieronder toegelicht. + +**deel 1 - kopgegevens**: locatiecode (afgekort zoals in Bijlage \@ref(veldlocaties)), veldmedewerker, datum, \... + +**deel 2 - schaalniveau waterlichaam** + +- dynamische processen die zorgen voor pionierscondities: zowel natuurlijke (windwerking, overstroming) als menselijke ingrepen (peilbeheer) worden hieronder gerekend. + Indicaties van windwerking in plassen zijn: waterbeweging bij sterke wind, golfwerking, opstapeling van organisch materiaal in de luwe zones, indicaties van oevererosie door waterbeweging. + Peilbeheer kan in het veld herkend worden bij aanwezigheid van (regelbare) stuwen of andere constructies die aan- of afvoer van water mogelijk maken. + Bij aanwezigheid van meerdere dynamische processen wordt de frequentie van het proces dat het frequentst plaatsvindt genoteerd. + De vaststelling van dynamische processen is bij een éénmalig veldbezoek soms moeilijk in te schatten. + Eventueel kunnen orthofoto's van voorafgaande jaren of een gesprek met de beheerder duidelijkheid bieden. + +- oeverprofiel (% oever met volgend profiel): inschatting van het percentage van de omtrek van het waterlichaam voor de verschillende oeverhellings-klassen: zeer zwak hellend (\< 15°); zwak hellend (15°-45°); steil (45°-90°) en recht (90°). + De oeverhelling van waterlijn tot daarboven bij normaal waterpeil wordt hierbij beoogd; niet het onderwaterprofiel. + +- waterdiepte: ook bij uitzonderlijk hoge of lage waterstand wordt de huidige waterstand genoteerd. + Op deze plek wordt eveneens de secchi-diepte bepaald. + +- slib en org. + mat.: zowel de dikte van de sliblaag als van het grof organisch materiaal wordt ingeschat. + Hierbij wordt dikte van een representatief meetpunt of de gemiddelde dikte beoogd, niet de extreme metingen. + +- PVI: het percentage van de waterkolom dat opgevuld is met macrofyten. + Dit wordt bepaald in een representatieve zone van het waterlichaam of ingeschat voor het volledige watervolume. + +- beschaduwing: loodrechte projectie van bomen en struiken op het wateroppervlak; + +- hogere vegetatie: het percentage vegetatie hoger dan *Luronium natans* wordt genoteerd om competitie in te schatten. + Afhankelijk van de in het veld vastgestelde dominante groeivorm van *Luronium*, worden hieronder niet enkel helofyten, maar ook submerse vegetatie of een kroosdek gerekend (bv. bij isoëtide groeivorm). + +- verstoringsindicatoren (achterkant veldformulier): + + - de procentuele bedekking van alle verzurings-, eurtofiëringsindicatoren en invasieve soorten van de hele plas of waterloop wordt aan de rechterkant van het formulier genoteerd; + + - het voorkomen wordt per soort aangekruist in de vakjes aan de linkerzijde; + + - de lijst van verstoringsindicatoren stemt overeen met deze voor de LSVI-bepaling van habitattypen 3130 en 3260 (Oosterlynck et al. 2020). + + - de eutrofiëringsindicatoren zijn verschillend voor plassen (habitattype 3130) en waterlopen (habitattype 3260); dit wordt aangeduid met 'P(las)' of 'W(aterloop)'. + Indien leeg geldt dit voor beide typen. + Enkel de relevante verstoringsindicatoren tellen mee voor de inschatting van het percentage eutofiëringsindicatoren. + +- overige soorten (achterkant veldformulier): een soortenlijst van het waterlichaam kan toegevoegd worden, dit is echter niet vereist voor de LSVI-bepaling van *Luronium.* + +**deel 3 - schaalniveau populatie** (onderzijde voorkant veldformulier); delen hieronder gemarkeerd met \* worden niet ingevuld bij afwezigheid van *Luronium natans*, deze met (\*) enkel als de vroegere vindplaats van *Luronium natans* gekend is. + +- waterdiepte(\*), PVI(\*), beschaduwing(\*), hogere vegetatie(\*): zie hoger; bij meerdere *Luronium*-vlekken wordt een representatieve vlek uitgekozen voor de meting van de water- en secchi-diepte. + +- vitaliteit\*: kruis aan: bloei, zaadvorming en/of uitlopers aanwezig (foto's: zie Lansdown & Wade 2003); + +- morfologische kenmerken\*: kruis aan welk type bladeren aanwezig zijn: lijnvormige ondergedoken bladeren, drijfbladen en/of terrestrische bladeren van de landvorm (voor foto's: zie Lansdown & Wade 2003 en Lucassen et al. 2007); + +- aantal en oppervlakte\*: + + - wordt als klasse per afzonderlijke *Luronium*-vlek ingeschat met codes A-Hb (Tabel \@ref(tab:Tabel2)); + + - onderaan (som) wordt voor het volledige waterlichaam het aantal rozetten en oppervlakte in dezelfde klassen ingeschat; + + - betrouwbaarheid inschatting van aantal rozetten per waterlichaam: goed (valt zeker in deze klasse), matig (valt mogelijk in deze klasse of is aan klasse verkeerd ingeschat) of slecht (mogelijk twee klassen verkeerd ingeschat). + +### Registratie van resultaten in Recorder + +Voor elke locatie worden op het terrein de veldgegevens analoog of digitaal genoteerd op het veldformulier (Bijlage \@ref(veldformulier)). +Afwijkingen van de beschreven werkwijze worden eveneens genoteerd bij opmerkingen. +Na het veldseizoen worden de gegevens ingevoerd of geïmporteerd in Recorder (Survey: *Luronium natans* standplaatsonderzoek). + +### Opslag van foto's + +Opslag van foto's op google drive met aanduiding van opnamedatum, code van veldlocatie en watervlakkencode (Leyssen et al. 2020; ) of naam waterloop (volgens de Vlaamse Hydrografische Atlas; ) diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/08_kwaliteitszorg.Rmd b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/08_kwaliteitszorg.Rmd new file mode 100644 index 00000000..56615efb --- /dev/null +++ b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/08_kwaliteitszorg.Rmd @@ -0,0 +1,20 @@ +# Kwaliteitszorg + +```{=html} + +``` +Zie kwaliteitszorg van protocol [sfp-113 2023.04](../2023.04/index.html). + +Neem steeds alle relevante protocollen mee in het veld en kijk voor het vertrek steeds na of al het materiaal aanwezig is en of op batterijen werkende toestellen voldoende zijn opgeladen. +De checklist van het veldmateriaal staat in Tabel \@ref(tab:Tabel1). + +Specimens die op het terrein niet op naam kunnen worden gebracht, worden meegenomen naar het labo ter identificatie; bij twijfel wordt dit specimen voorgelegd aan derden ter controle. + +Voor elke in Recorder ingevoerde opname wordt gecontroleerd of het aantal ingevoerde soorten overeenkomt met het aantal op het veldformulier. + +Nadat alle metingen van een veldseizoen zijn geregistreerd in Recorder, wordt een kwaliteitscontrole uitgevoerd met behulp van een R-script (kwaliteitscontrole_datainvoer.Rmd; download [hier](https://drive.google.com/file/d/1ytxdQIP0Lbw7cXASoeXTHmfMsKXoqk5z)). diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/09_veiligheid.Rmd b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/09_veiligheid.Rmd new file mode 100644 index 00000000..fbef3c66 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/09_veiligheid.Rmd @@ -0,0 +1,23 @@ +# Veiligheid + +```{=html} + +``` +Tijdens het veldwerk gelden volgende veiligheidsregels: + +- algemene veiligheidsregels voor het werken in en nabij water (sfp-112; protocol te ontwikkelen); + +- bioveiligheidsmaatregelen voor het voorkomen van de verspreiding van invasieve exoten (sfp-015; protocol te ontwikkelen). + +Voorzichtigheid is ten zeerste geboden bij diepe en snelstromende waterlopen, bij weke waterbodem en bij gladde taluds. +Gebruik een veiligheidstouw of reddingsvest wanneer de situatie dit vereist. +Bij vegetatieopname vanop een boot dient deze volledig in orde te zijn en worden te allen tijde zwemvesten gedragen door alle opzittenden. + +Neem een hark of stevige stok mee als steun bij het doorwaden van de waterloop of plas wanneer de situatie dit vereist. +Deze kan gebruikt worden om de waterdiepte te peilen, om je evenwicht te behouden of om een steile oever te beklimmen. + +Tijdens een vegetatieopname in water draagt men waterdichte handschoenen; na de opname wast men de handen met ontsmettende, fosfaatvrije zeep om het risico op besmetting te beperken. + +De veldmedewerker beschikt steeds over een GSM en een lijst van nuttige telefoonnummers. diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/10_samenvatting.Rmd b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/10_samenvatting.Rmd new file mode 100644 index 00000000..3933f9f5 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/10_samenvatting.Rmd @@ -0,0 +1,25 @@ +# Samenvatting + +```{=html} + +``` +Een samenvattende opsomming van de te volgen stappen: + +1. controleer de lijst met benodigdheden en het niveau van de batterijen voor vertrek; + +2. navigeer met een GPS naar de veldlocatie; + +3. zoek naar *Luronium natans* door systematisch transecten van 3 à 4 meter breedte af te lopen; + +4. bepaal de secchi- en waterdiepte volgens het protocol sfp-113; + +5. vul het veldformulier in en controleer de volledigheid, voeg eventuele uitzonderlijke veldwaarnemingen toe; + +6. soorten die niet konden worden geïdentificeerd op terrein, worden binnen de week na bemonstering gedetermineerd; + +7. registreer de veldgegevens in Recorder; + +8. klasseer de foto's. diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/11_referenties.Rmd b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/11_referenties.Rmd new file mode 100644 index 00000000..c3d382f1 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/11_referenties.Rmd @@ -0,0 +1,87 @@ +# Referenties {.unnumbered} + +::: {#refs} +::: + +```{=html} + +``` +Bijkerk R. +(red) (2014) Handboek Hydrobiologie. +Biologisch onderzoek voor de ecologische beoordeling van Nederlandse zoete en brakke oppervlaktewateren. +Deels aangepaste versie (Rapport 2014 - 02). +Stichting Toegepast Onderzoek Waterbeheer, Amersfoort. + +Canfield D.E., Shireman J.V., Colle D.E., Haller W.T., Watkins C.E., & Maceina M. J., 1984. +Prediction of chlorophyll *a* concentrations in Florida lakes: Importance of aquatic macrophytes. +Canadian Journal of Fisheries and Aquatic Sciences,41(3), 497--501. + + +Denys L., Packet J., Leyssen A., Adriaens D. +(2008). +Drijvende waterweegbree (Luronium natans). +In: Adriaens D., Adriaens T., Ameeuw G. +(editors). +Ontwikkeling van criteria voor de beoordeling van de lokale staat van instandhouding van de habitatrichtlijnsoorten. +Instituut voor Natuur- en Bosonderzoek, Brussel. +p 32-36. + +European Commission. +(1992). +Council Directive 92/43/EEC of 21 May 1992 on the conservation of natural habitats and of wild fauna and flora. +Official Journal of the European Communities L206: 7-50. + +KRW (2000). +Richtlijn 2000/60/EG van het Europees parlement en de raad van 23 oktober 2000 tot vaststelling van een kader voor communautaire maatregelen betreffende het waterbeleid. +Publicatieblad van de Europese Gemeenschappen. + +Lansdown R.V., Wade P.M. +(2003). +Ecology of the Floating Water-plantain. +English Nature, Peterborough. + +Leyssen A., Scheers K., Smeekens V., Wils C., Packet J., De Knijf G., Denys L. +(2020). +Watervlakken versie 1.1: polygonenkaart van stilstaand water in Vlaanderen. +Uitgave 2020. +Instituut voor Natuur- en Bosonderzoek, Brussel. +Rapporten van het Instituut voor Natuur- en Bosonderzoek 2020 (40). + +Lommaert L., Adriaens D., Pollet M. +(2020). +Criteria voor de beoordeling van de lokale staat van instandhouding van de Habitatrichtlijnsoorten in Vlaanderen. +Versie 2.0. +Instituut voor Natuur- en Bosonderzoek, Brussel. + +Lucassen E.C.H.E.T., van den Munckhof P.J.J., Brouwer E., Roelofs J.G.M. (2007). +Een soortbeschermingsplan voor de Drijvende waterweegbree (*Luronium natans*) in Noord-Brabant. +Provincie Noord-Brabant. + +Mergeay & Vanden Broeck (2020) Algemene genetische criteria voor de instandhouding van populaties. +In: Lommaert L., Adriaens D., Pollet M. +(2020). +Criteria voor de beoordeling van de lokale staat van instandhouding van de Habitatrichtlijnsoorten in Vlaanderen. +Versie 2.0. +Instituut voor Natuur- en Bosonderzoek, Brussel. + +Oosterlynck P., De Saeger S., Leyssen A., Provoost S., Thomaes A., Vandevoorde B., Wouters J., Paelinckx D. +(2020). +Criteria voor de beoordeling van de lokale staat van instandhouding van de Natura2000 habitattypen in Vlaanderen. +Instituut voor Natuur- en Bosonderzoek, Brussel. + +Van Landuyt W. +(2014). +Blauwdruk vaatplanten, mossen en lichenen. +In: De Knijf G., Westra T., Onkelinx T., Quataert P., Pollet M. +(editors). +Monitoring Natura 2000-soorten en overige soorten prioritair voor het Vlaams beleid Blauwdrukken soortenmonitoring in Vlaanderen. +Instituut voor Natuur- en Bosonderzoek Brussel. +p 102-113. + +Westra T., Oosterlynck P., Van Calster H., Paelinckx D., Denys L., Leyssen A., Packet J., Onkelinx T., Louette G., Waterinckx M., Quataert P. (2014). +Monitoring Natura 2000 - habitats. +Meetnet habitatkwaliteit. +Instituut voor Natuur- en Bosonderzoek, Brussel. +Rapporten van het Instituut voor Natuur- en Bosonderzoek 2014 (1414229). diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/12_appendices.Rmd b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/12_appendices.Rmd new file mode 100644 index 00000000..ef678bfd --- /dev/null +++ b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/12_appendices.Rmd @@ -0,0 +1,10 @@ +# (APPENDIX) Bijlagen {.unnumbered} + +# Bijlage 1: veldformulier {#veldformulier} + +Het veldwerkformulier kan [hier](https://docs.google.com/spreadsheets/d/1sWFkdzMlyaL4iSN8bBfETIbfSq_ITkyC) gedownload worden. + +# Bijlage 2: lijst van veldlocaties (inclusief unieke locatiecode) {#veldlocaties} + +De lijst van veldlocaties kan [hier](https://docs.google.com/spreadsheets/d/1FrFj9HyFkdN8Kb_ws-wXzxQCY7-vAg9L) door INBO-medewerkers gedownload worden. +Personen die niet tot het INBO behoren moeten eerst toegang vragen tot dit bestand. diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/13_subprotocols.Rmd b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/13_subprotocols.Rmd new file mode 100644 index 00000000..c03e51e6 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/13_subprotocols.Rmd @@ -0,0 +1,20 @@ +```{r, results="asis"} +if (exists("params")) { + if (!is.null(params$dependencies)) { + mdfiles <- paste0(map_chr(params$dependencies, "protocol_code"), + "-", + map_chr(params$dependencies, "version_number"), + ".md") + child_docs <- file.path(map_chr(params$dependencies, "version_number"), + mdfiles) + + child_docs <- child_docs[map_lgl(params$dependencies, "appendix")] + + if (length(child_docs) > 0) { + res <- map(child_docs, knit_child, quiet = TRUE) + cat( + c("# (PART) Subprotocols {.unnumbered}", "", unlist(res)), sep = "\n") + } + } +} +``` diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/NEWS.md b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/NEWS.md new file mode 100644 index 00000000..67c86488 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/NEWS.md @@ -0,0 +1,22 @@ +# Wijzigingen t.o.v. vorige versies + +## [2023.06](../2023.06/index.html) + +- Dit is de eerste versie van het protocol dat dateert van 09-02-2022. Het oorspronkelijk versienummer is 1.0 + +```{=html} + +``` diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/_bookdown.yml b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/_bookdown.yml new file mode 100644 index 00000000..0b3db4fc --- /dev/null +++ b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/_bookdown.yml @@ -0,0 +1,33 @@ +book_filename: sfp_406_nl_vegopname_luronium.Rmd +delete_merged_file: true +rmd_files: +- index.Rmd +- NEWS.md +- 01_afhankelijkheden.Rmd +- 02_onderwerp.Rmd +- 03_beperkingen.Rmd +- 04_principe.Rmd +- 05_competenties.Rmd +- 06_benodigdheden.Rmd +- 07_werkwijze.Rmd +- 08_kwaliteitszorg.Rmd +- 09_veiligheid.Rmd +- 10_samenvatting.Rmd +- 11_referenties.Rmd +- 12_appendices.Rmd +- 13_subprotocols.Rmd +output_dir: ../../../../../protocoldocs/docs/sfp/4_vegetation/sfp_406_nl_vegopname_luronium +language: + label: + fig: 'Figuur ' + tab: 'Tabel ' + eq: 'Vergelijking ' + thm: 'Theorema ' + lem: 'Lemma ' + def: 'Definitie ' + cor: 'Bijgevolg ' + prp: 'Propositie ' + ex: 'Voorbeeld ' + proof: 'Bewijs. ' + remark: 'Opmerking. ' + diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/_output.yml b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/_output.yml new file mode 100644 index 00000000..eeecbe1c --- /dev/null +++ b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/_output.yml @@ -0,0 +1,19 @@ +bookdown::gitbook: + split_by: none + split_bib: false + template: !expr protocolhelper:::protocol_css() + css: css/inbo_rapport.css + config: + toc: + before: + - + - + after: + -
  • +bookdown::pdf_book: + keep_tex: false + pandoc_args: --top-level-division=chapter + template: !expr protocolhelper:::protocol_tex() + diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/index.Rmd b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/index.Rmd new file mode 100644 index 00000000..d41967b9 --- /dev/null +++ b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/index.Rmd @@ -0,0 +1,79 @@ +--- +title: Vegetatieopname en LSVI-bepaling *Luronium natans* +author: +- name: Leyssen, An + orcid: 0000-0003-3537-286X +date: '`r Sys.Date()`' +reviewers: Kevin Scheers, Toon Westra +file_manager: Toon Westra +protocol_code: sfp-406-nl +version_number: '2023.06' +language: nl +lang: nl +template_name: sfp +theme: vegetation +site: bookdown::bookdown_site +bibliography: referenties.yaml +csl: https://raw.githubusercontent.com/citation-style-language/styles/master/research-institute-for-nature-and-forest.csl +url: https://inbo.github.io/protocols/ +github_repo: inbo/protocolsource +params: + dependencies: + value: + - protocol_code: sfp-113-nl + version_number: '2023.04' + params: .na + appendix: false +--- + +```{=html} + +``` +```{r setup, include=FALSE} +library(knitr) +opts_chunk$set( + echo = FALSE, + eval = TRUE, + dpi = 300, + fig.width = 150 / 25.4, + fig.height = 100 / 25.4, + out.width = "100%", + warning = FALSE, + error = TRUE, + message = FALSE +) +library(dplyr) +library(purrr) +library(protocolhelper) +library(pander) +panderOptions("table.alignment.default", "left") +metadata <- rmarkdown::metadata +path_to_protocol <- get_path_to_protocol(metadata$protocol_code) +type <- get_protocol_type(metadata$protocol_code, auto_identifier = TRUE) +``` + +# Metadata {.unnumbered} + +```{r metadata-table} +tibble( + reviewers = metadata[["reviewers"]] |> paste(collapse = ", "), + documentbeheerder = metadata[["file_manager"]], + protocolcode = metadata[["protocol_code"]], + versienummer = metadata[["version_number"]], + taal = metadata[["language"]], + thema = metadata[["theme"]] +) %>% + pander::pander(split.tables = Inf) +``` + +```{r results="asis"} +sprintf("Controleer [deze tabel](../%s.html){target=\"_blank\"} om te zien of een meer recente versie beschikbaar is.", type) |> cat() # nolint +``` diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/media/image1.png b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/media/image1.png new file mode 100644 index 00000000..4fc92ef9 Binary files /dev/null and b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/media/image1.png differ diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/media/image2.png b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/media/image2.png new file mode 100644 index 00000000..3f758013 Binary files /dev/null and b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/media/image2.png differ diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/media/image3.png b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/media/image3.png new file mode 100644 index 00000000..78f325b6 Binary files /dev/null and b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/media/image3.png differ diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/media/image4.png b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/media/image4.png new file mode 100644 index 00000000..b26315ae Binary files /dev/null and b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/media/image4.png differ diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/media/image5.png b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/media/image5.png new file mode 100644 index 00000000..eeb7539a Binary files /dev/null and b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/media/image5.png differ diff --git a/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/referenties.yaml b/source/sfp/4_vegetation/sfp_406_nl_vegopname_luronium/referenties.yaml new file mode 100644 index 00000000..e69de29b