From 49b1b2817665d4761569d7a4e473bdc18fada9c5 Mon Sep 17 00:00:00 2001 From: LOMMELEN Date: Mon, 29 Jun 2020 14:12:40 +0200 Subject: [PATCH 01/12] add forrescalc to inbo software --- content/articles/inbo_software/index.Rmd | 8 +++--- content/articles/inbo_software/index.md | 34 +++++++++++++----------- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/content/articles/inbo_software/index.Rmd b/content/articles/inbo_software/index.Rmd index 5069ac081..af499e1b9 100644 --- a/content/articles/inbo_software/index.Rmd +++ b/content/articles/inbo_software/index.Rmd @@ -29,12 +29,12 @@ The following table gives a **quick overview**: |:-------------|:--------------------------------------| | Study design | [grts](https://github.com/ThierryO/grts) | | Retrieve data: environmental | [wateRinfo](https://ropensci.github.io/wateRinfo/), [pydov](https://pydov.readthedocs.io/), [watina](https://inbo.github.io/watina) | -| Retrieve data: biological | [pyinaturalist](https://github.com/inbo/pyinaturalist), [uvabits](https://inbo.github.io/uvabits/), [etn](https://inbo.github.io/etn/), [n2khab](https://inbo.github.io/n2khab) | +| Retrieve data: biological | [pyinaturalist](https://github.com/inbo/pyinaturalist), [uvabits](https://inbo.github.io/uvabits/), [etn](https://inbo.github.io/etn/), [n2khab](https://inbo.github.io/n2khab), [forrescalc](https://github.com/inbo/forrescalc) | | Store data | [git2rdata](https://inbo.github.io/git2rdata/) | | Validate data | [pywhip](https://inbo.github.io/pywhip/) | | Analyze data: graphs | [inboggvegan](https://github.com/inbo/inboggvegan) | | Analyze data: models | [inlatools](https://inlatools.netlify.com/), [multimput](https://github.com/inbo/multimput), [effectclass](https://effectclass.netlify.com), [niche_vlaanderen](https://inbo.github.io/niche_vlaanderen/) | -| Analyze data: indices | [LSVI](https://github.com/inbo/LSVI) | +| Analyze data: indices | [LSVI](https://inbo.github.io/LSVI) | | Publish | [INBOmd](https://inbomd.netlify.com/articles/introduction.html), [INBOtheme](https://inbo.github.io/INBOtheme/) | | Miscellaneous (mixed content) | [inborutils](https://inbo.github.io/inborutils/) | @@ -71,6 +71,8 @@ It also allows to download the data in a format that can easily be uploaded to [ provides functionality to access and process data from the [European Tracking Network (ETN)](http://www.lifewatch.be/etn/) database hosted by the Flanders Marine Institute (VLIZ) as part of the Flemish contribution to LifeWatch. - **R package [n2khab](https://inbo.github.io/n2khab)**: provides preprocessed reference data _(including checklists, spatial habitat distribution, administrative & environmental layers, GRTSmaster_habitats)_ and preprocessing functions, supporting reproducible and transparent analyses on Flemish Natura 2000 (_n2k_) habitats (_hab_) and regionally important biotopes (RIBs). +- **R package [forrescalc](https://github.com/inbo/forrescalc)**: +provides aggregated values on dendrometry, regeneration and vegetation of the flemish forest reserve monitoring network, and functions to derive these data starting from individual tree measurements in Fieldmap. ## Store data @@ -120,7 +122,7 @@ The package is a redevelopment of an existing ArcGIS plugin in Python, without e ### Calculate indices -- **R package [LSVI](https://github.com/inbo/LSVI)**: +- **R package [LSVI](https://inbo.github.io/LSVI)**: bundles a number of functions to support researchers in determining the local conservation status ('LSVI') of Natura 2000 habitats in Flanders. Several functions retrieve the criteria and/or associated species lists for determining the LSVI. A specific function allows to calculate the LSVI. diff --git a/content/articles/inbo_software/index.md b/content/articles/inbo_software/index.md index 1907339c4..ffe2898ec 100644 --- a/content/articles/inbo_software/index.md +++ b/content/articles/inbo_software/index.md @@ -28,21 +28,20 @@ website**, if available. When there is no documentation website, often one or more **vignettes** are available within the package, describing the package’s purpose and demonstrating its use. -The following table gives a **quick -overview**: - -| Research stage | Related INBO packages | -| :---------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Study design | [grts](https://github.com/ThierryO/grts) | -| Retrieve data: environmental | [wateRinfo](https://ropensci.github.io/wateRinfo/), [pydov](https://pydov.readthedocs.io/), [watina](https://inbo.github.io/watina) | -| Retrieve data: biological | [pyinaturalist](https://github.com/inbo/pyinaturalist), [uvabits](https://inbo.github.io/uvabits/), [etn](https://inbo.github.io/etn/), [n2khab](https://inbo.github.io/n2khab) | -| Store data | [git2rdata](https://inbo.github.io/git2rdata/) | -| Validate data | [pywhip](https://inbo.github.io/pywhip/) | -| Analyze data: graphs | [inboggvegan](https://github.com/inbo/inboggvegan) | -| Analyze data: models | [inlatools](https://inlatools.netlify.com/), [multimput](https://github.com/inbo/multimput), [effectclass](https://effectclass.netlify.com), [niche\_vlaanderen](https://inbo.github.io/niche_vlaanderen/), [gwloggeR](https://dov-vlaanderen.github.io/groundwater-logger-validation/gwloggeR/docs/articles/gwloggeR.html) | -| Analyze data: indices | [LSVI](https://inbo.github.io/LSVI) | -| Publish | [INBOmd](https://inbomd.netlify.com/articles/introduction.html), [INBOtheme](https://inbo.github.io/INBOtheme/) | -| Miscellaneous (mixed content) | [inborutils](https://inbo.github.io/inborutils/) | +The following table gives a **quick overview**: + +| Research stage | Related INBO packages | +| :---------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Study design | [grts](https://github.com/ThierryO/grts) | +| Retrieve data: environmental | [wateRinfo](https://ropensci.github.io/wateRinfo/), [pydov](https://pydov.readthedocs.io/), [watina](https://inbo.github.io/watina) | +| Retrieve data: biological | [pyinaturalist](https://github.com/inbo/pyinaturalist), [uvabits](https://inbo.github.io/uvabits/), [etn](https://inbo.github.io/etn/), [n2khab](https://inbo.github.io/n2khab), [forrescalc](https://github.com/inbo/forrescalc) | +| Store data | [git2rdata](https://inbo.github.io/git2rdata/) | +| Validate data | [pywhip](https://inbo.github.io/pywhip/) | +| Analyze data: graphs | [inboggvegan](https://github.com/inbo/inboggvegan) | +| Analyze data: models | [inlatools](https://inlatools.netlify.com/), [multimput](https://github.com/inbo/multimput), [effectclass](https://effectclass.netlify.com), [niche\_vlaanderen](https://inbo.github.io/niche_vlaanderen/) | +| Analyze data: indices | [LSVI](https://inbo.github.io/LSVI) | +| Publish | [INBOmd](https://inbomd.netlify.com/articles/introduction.html), [INBOtheme](https://inbo.github.io/INBOtheme/) | +| Miscellaneous (mixed content) | [inborutils](https://inbo.github.io/inborutils/) | ## Study design @@ -100,6 +99,11 @@ overview**: GRTSmaster\_habitats)* and preprocessing functions, supporting reproducible and transparent analyses on Flemish Natura 2000 (*n2k*) habitats (*hab*) and regionally important biotopes (RIBs). + - **R package [forrescalc](https://github.com/inbo/forrescalc)**: + provides aggregated values on dendrometry, regeneration and + vegetation of the flemish forest reserve monitoring network, and + functions to derive these data starting from individual tree + measurements in Fieldmap. ## Store data From 5c1ee4eee9ff87cc3dd1da4995dc9f17b0d67cd2 Mon Sep 17 00:00:00 2001 From: LOMMELEN Date: Mon, 29 Jun 2020 14:18:26 +0200 Subject: [PATCH 02/12] replace 'inborutils' with 'inbodb' in tutorials on databases --- content/tutorials/r_database_access/index.Rmd | 12 +- content/tutorials/r_database_access/index.md | 146 ++++-- content/tutorials/r_inboveg/index.Rmd | 57 +-- content/tutorials/r_inboveg/index.md | 435 +++++++++--------- 4 files changed, 365 insertions(+), 285 deletions(-) diff --git a/content/tutorials/r_database_access/index.Rmd b/content/tutorials/r_database_access/index.Rmd index 18e7606f8..a2bf6d24c 100644 --- a/content/tutorials/r_database_access/index.Rmd +++ b/content/tutorials/r_database_access/index.Rmd @@ -28,20 +28,20 @@ library(tidyverse) To create a database connection, different approaches are available as explained in the next section: -1. Use the dedicated `connect_inbo_dbase` function in the inborutils package +1. Use the dedicated `connect_inbo_dbase` function in the inbodb package 2. Setup the required parameters yourself 3. Reuse existing registered connections on your computer -### Inborutils function +### Inbodb function -To support the connection to INBO databases, a dedicated function is available in the [inborutils package](https://inbo.github.io/inborutils/index.html), called `connect_inbo_dbase`. The function provides support to connect to INBO databases and uses the _Connections pane_ in the Rstudio interface: +To support the connection to INBO databases, a dedicated function is available in the [inbodb package](https://inbo.github.io/inbodb), called `connect_inbo_dbase`. The function provides support to connect to INBO databases and uses the _Connections pane_ in the Rstudio interface: ![odbc-connecties](./database-R/connections_pane.png) -To use the `connect_inbo_dbase` function, make sure to install the `inborutils` package, following the [installation instructions](https://inbo.github.io/inborutils/#installation). After a successfull installation, load the library and create a database connection: +To use the `connect_inbo_dbase` function, make sure to install the `inbodb` package, following the [installation instructions](https://inbo.github.io/inbodb/#installation). After a successfull installation, load the library and create a database connection: ```{r connect-fn-default} -library(inborutils) +library(inbodb) my_connection <- connect_inbo_dbase("D0021_00_userFlora") ``` @@ -51,7 +51,7 @@ __Remark for Linux users__: When working in Linux, this setup (using `Trusted co ### Setting up the connection yourself -In case you want to setup the connection yourself (e.g. errors using inborutils), +In case you want to setup the connection yourself (e.g. errors using inbodb), you can do so by providing the necessary parameters: diff --git a/content/tutorials/r_database_access/index.md b/content/tutorials/r_database_access/index.md index 731bc9fe6..5de54f888 100644 --- a/content/tutorials/r_database_access/index.md +++ b/content/tutorials/r_database_access/index.md @@ -14,7 +14,11 @@ output: Connection to INBO database --------------------------- -Here we provide the approach using the package DBI, which is also used by RStudio.[1]. This package enables the link between R and the (remote) database. After installation of the needed packages (`install.packages(c("DBI", "glue", "tidyverse"))`), the packages can be loaded: +Here we provide the approach using the package DBI, which is also used +by RStudio.[1]. This package enables the link between R and the (remote) +database. After installation of the needed packages +(`install.packages(c("DBI", "glue", "tidyverse"))`), the packages can be +loaded: ``` r library(DBI) @@ -22,32 +26,47 @@ library(glue) library(tidyverse) ``` -To create a database connection, different approaches are available as explained in the next section: +To create a database connection, different approaches are available as +explained in the next section: -1. Use the dedicated `connect_inbo_dbase` function in the inborutils package +1. Use the dedicated `connect_inbo_dbase` function in the inbodb + package 2. Setup the required parameters yourself 3. Reuse existing registered connections on your computer -### Inborutils function +### Inbodb function -To support the connection to INBO databases, a dedicated function is available in the [inborutils package](https://inbo.github.io/inborutils/index.html), called `connect_inbo_dbase`. The function provides support to connect to INBO databases and uses the *Connections pane* in the Rstudio interface: +To support the connection to INBO databases, a dedicated function is +available in the [inbodb package](https://inbo.github.io/inbodb), called +`connect_inbo_dbase`. The function provides support to connect to INBO +databases and uses the *Connections pane* in the Rstudio interface: ![odbc-connecties](./database-R/connections_pane.png) -To use the `connect_inbo_dbase` function, make sure to install the `inborutils` package, following the [installation instructions](https://inbo.github.io/inborutils/#installation). After a successfull installation, load the library and create a database connection: +To use the `connect_inbo_dbase` function, make sure to install the +`inbodb` package, following the [installation +instructions](https://inbo.github.io/inbodb/#installation). After a +successfull installation, load the library and create a database +connection: ``` r -library(inborutils) +library(inbodb) my_connection <- connect_inbo_dbase("D0021_00_userFlora") ``` -Once the connection is successfully established, the database can be queried. +Once the connection is successfully established, the database can be +queried. -**Remark for Linux users**: When working in Linux, this setup (using `Trusted connection`) requires an active *kerberos* session. More information about the setup and functionality is to be found in the [tutorial on kerberos installation](https://inbo.github.io/tutorials/installation/user/user_install_kerberos/). +**Remark for Linux users**: When working in Linux, this setup (using +`Trusted connection`) requires an active *kerberos* session. More +information about the setup and functionality is to be found in the +[tutorial on kerberos +installation](https://inbo.github.io/tutorials/installation/user/user_install_kerberos/). ### Setting up the connection yourself -In case you want to setup the connection yourself (e.g. errors using inborutils), you can do so by providing the necessary parameters: +In case you want to setup the connection yourself (e.g. errors using +inbodb), you can do so by providing the necessary parameters: ``` r my_connection <- DBI::dbConnect(odbc::odbc(), @@ -58,25 +77,46 @@ my_connection <- DBI::dbConnect(odbc::odbc(), trusted_connection = "Yes") ``` -The most important parameters are `server` and `database`, the others should normally be kept as such. For the first one, remember that database names starting with `M`, `S` or `W` can be accessed using the `inbo-sql08-prd.inbo.be` server and others (mostly with `D`) use the `inbo-sql07-prd.inbo.be` server. The database name is the name of the database (if you can't remember the name, connect with a database you do know, e.g. *D0021\_00\_userFlora* and you'll see an overview of the existing databases on that server after connecting.) +The most important parameters are `server` and `database`, the others +should normally be kept as such. For the first one, remember that +database names starting with `M`, `S` or `W` can be accessed using the +`inbo-sql08-prd.inbo.be` server and others (mostly with `D`) use the +`inbo-sql07-prd.inbo.be` server. The database name is the name of the +database (if you can’t remember the name, connect with a database you do +know, e.g. *D0021\_00\_userFlora* and you’ll see an overview of the +existing databases on that server after connecting.) ### Use existing MSAccess connection name -When you query data from a SQL database that is already accessible using MSAccess, such a database is also accessible from R. For Windows users, the most important element is to know the so-called `DSN` (i.e. a registered Data Source Name). Actually, it is just the name of the database as it is known by your computer (and MS Access). The easiest way to check the `DSN` is to check the [*registered ODBC connections*](http://www.stata.com/support/faqs/data-management/configuring-odbc-win/) in the administrator tools menu. +When you query data from a SQL database that is already accessible using +MSAccess, such a database is also accessible from R. For Windows users, +the most important element is to know the so-called `DSN` (i.e. a +registered Data Source Name). Actually, it is just the name of the +database as it is known by your computer (and MS Access). The easiest +way to check the `DSN` is to check the [*registered ODBC +connections*](http://www.stata.com/support/faqs/data-management/configuring-odbc-win/) +in the administrator tools menu. For Dutch-speaking Windows 7 users: > Kies in het Configuratiescherm van Windows de optie Systeembeheer > Gegevensbronnen (ODBC). De optie Systeembeheer verschijnt in de categorie Systeem en onderhoud. -You should see a list similar to the list underneath, with the names of the available DSN names enlisted: +You should see a list similar to the list underneath, with the names of +the available DSN names enlisted: ![odbc-connecties](./database-R/odbc_gegevensbron.png) -An alternative way to check the DSN name of a database already working on with Access, is to check the DSN inside MS Access (in dutch, check menu item *Koppelingsbeheer*): +An alternative way to check the DSN name of a database already working +on with Access, is to check the DSN inside MS Access (in dutch, check +menu item *Koppelingsbeheer*): ![access-dsn](./database-R/access_dsn.png) -For example, the DSN name `UserFlora` or `Cydonia-prd` can be used to query these databases and extract data from it with similar queries to the one used in MSAccess. First of all, the connection with the database need to be established, by using the `odbcConnect` function, providing the DSN name as argument: +For example, the DSN name `UserFlora` or `Cydonia-prd` can be used to +query these databases and extract data from it with similar queries to +the one used in MSAccess. First of all, the connection with the database +need to be established, by using the `odbcConnect` function, providing +the DSN name as argument: For Windows users: @@ -84,12 +124,15 @@ For Windows users: my_connection <- odbcConnect("UserFlora") ``` -Once the connection is successfully established, the database can be queried. +Once the connection is successfully established, the database can be +queried. Get a complete table from the database -------------------------------------- -The function `dbReadTable` can be used to load an entire table from a database. For example, to extract the `tblTaxon` table from the flora database: +The function `dbReadTable` can be used to load an entire table from a +database. For example, to extract the `tblTaxon` table from the flora +database: ``` r rel_taxa <- dbReadTable(my_connection, "relTaxonTaxonGroep") @@ -105,14 +148,21 @@ head(rel_taxa) %>% knitr::kable() | 5| 4| 5| | 6| 4| 6| -The connection `my_connection`, made earlier, is used as the first argument. The table name is the second argument. +The connection `my_connection`, made earlier, is used as the first +argument. The table name is the second argument. -**Remark:** If you have no idea about the size of the table you're trying to load from the database, this could be rather tricky and cumbersome. Hence, it is probably better to only extract a portion of the table using a query. +**Remark:** If you have no idea about the size of the table you’re +trying to load from the database, this could be rather tricky and +cumbersome. Hence, it is probably better to only extract a portion of +the table using a query. Execute a query to the database ------------------------------- -The function `dbGetQuery` provides more flexibilty as it can be used to try any SQL-query on the database. A complete introduction to the SQL language is out of scope here. We will focus on the application and the reusage of a query. +The function `dbGetQuery` provides more flexibilty as it can be used to +try any SQL-query on the database. A complete introduction to the SQL +language is out of scope here. We will focus on the application and the +reusage of a query. ``` r meting <- dbGetQuery(my_connection, paste("SELECT TOP 10 * FROM dbo.tblMeting", @@ -132,9 +182,14 @@ head(meting) %>% knitr::kable() Create and use query templates ------------------------------ -When you regularly use similar queries, with some minimal alterations, you do not want to copy/paste each time the entire query. It is prone to errors and you're script will become verbose. It is advisable to create query *templates*, that can be used within the `dbGetQuery` function. +When you regularly use similar queries, with some minimal alterations, +you do not want to copy/paste each time the entire query. It is prone to +errors and you’re script will become verbose. It is advisable to create +query *templates*, that can be used within the `dbGetQuery` function. -Consider the execution of the following query. We are interested in those records with valid X and Y coordinates for the measurement, based on a given dutch name: +Consider the execution of the following query. We are interested in +those records with valid X and Y coordinates for the measurement, based +on a given dutch name: ``` r subset_meting <- dbGetQuery(my_connection, @@ -156,13 +211,19 @@ head(subset_meting) %>% knitr::kable() | COR\_X| Cor\_Y| MetingStatusCode | NaamNederlands | NaamWetenschappelijk | IFBLHokID| |-------:|-------:|:-----------------|:---------------|:-------------------------------------------------|----------:| | 88720| 208327| GDGA | Wilde hyacint | Hyacinthoides non-scripta (L.) Chouard ex Rothm. | 11195| -| 103111| 190915| GDGA | Wilde hyacint | Hyacinthoides non-scripta (L.) Chouard ex Rothm. | 6990| | 24106| 199925| GDGA | Wilde hyacint | Hyacinthoides non-scripta (L.) Chouard ex Rothm. | 9601| -| 77618| 175718| GDGK | Wilde hyacint | Hyacinthoides non-scripta (L.) Chouard ex Rothm. | 4043| -| 68959| 173070| GDGK | Wilde hyacint | Hyacinthoides non-scripta (L.) Chouard ex Rothm. | 3197| +| 103111| 190915| GDGA | Wilde hyacint | Hyacinthoides non-scripta (L.) Chouard ex Rothm. | 6990| +| 118123| 183942| GDGA | Wilde hyacint | Hyacinthoides non-scripta (L.) Chouard ex Rothm. | 5672| +| 106107| 182343| GDGA | Wilde hyacint | Hyacinthoides non-scripta (L.) Chouard ex Rothm. | 5217| | 105765| 180785| GDGA | Wilde hyacint | Hyacinthoides non-scripta (L.) Chouard ex Rothm. | 4830| -If we need this query regularly, but each time using a different `tax.NaamNederlands` (only the name changes), it is worthwhile to invest some time in the creation of a small custom function that uses this query as a template. Let's create a function `flora_records_on_dutch_name` that takes a valid database connection and a given Dutch name and returns the relevant subset of the data for this query: +If we need this query regularly, but each time using a different +`tax.NaamNederlands` (only the name changes), it is worthwhile to invest +some time in the creation of a small custom function that uses this +query as a template. Let’s create a function +`flora_records_on_dutch_name` that takes a valid database connection and +a given Dutch name and returns the relevant subset of the data for this +query: ``` r flora_records_on_dutch_name <- function(dbase_connection, dutch_name) { @@ -184,7 +245,8 @@ flora_records_on_dutch_name <- function(dbase_connection, dutch_name) { } ``` -Hence, instead of copy-pasting the whole query each time (which could be error-prone), we can reuse the function for different names: +Hence, instead of copy-pasting the whole query each time (which could be +error-prone), we can reuse the function for different names: ``` r hyacint <- flora_records_on_dutch_name(my_connection, "Wilde hyacint") @@ -193,12 +255,12 @@ head(hyacint) %>% knitr::kable() | Cor\_X| COr\_Y| MetingStatusCode | NaamNederlands | NaamWetenschappelijk | IFBLHokID| |-------:|-------:|:-----------------|:---------------|:-------------------------------------------------|----------:| +| 88720| 208327| GDGA | Wilde hyacint | Hyacinthoides non-scripta (L.) Chouard ex Rothm. | 11195| | 24106| 199925| GDGA | Wilde hyacint | Hyacinthoides non-scripta (L.) Chouard ex Rothm. | 9601| | 103111| 190915| GDGA | Wilde hyacint | Hyacinthoides non-scripta (L.) Chouard ex Rothm. | 6990| -| 88720| 208327| GDGA | Wilde hyacint | Hyacinthoides non-scripta (L.) Chouard ex Rothm. | 11195| -| 68959| 173070| GDGK | Wilde hyacint | Hyacinthoides non-scripta (L.) Chouard ex Rothm. | 3197| | 118123| 183942| GDGA | Wilde hyacint | Hyacinthoides non-scripta (L.) Chouard ex Rothm. | 5672| | 106107| 182343| GDGA | Wilde hyacint | Hyacinthoides non-scripta (L.) Chouard ex Rothm. | 5217| +| 105765| 180785| GDGA | Wilde hyacint | Hyacinthoides non-scripta (L.) Chouard ex Rothm. | 4830| ``` r bosanemoon <- flora_records_on_dutch_name(my_connection, "Bosanemoon") @@ -207,12 +269,12 @@ head(bosanemoon) %>% knitr::kable() | Cor\_X| COr\_Y| MetingStatusCode | NaamNederlands | NaamWetenschappelijk | IFBLHokID| |-------:|-------:|:-----------------|:---------------|:---------------------|----------:| +| 119247| 204936| GDGA | Bosanemoon | Anemone nemorosa L. | 10234| +| 73658| 199081| GDGA | Bosanemoon | Anemone nemorosa L. | 8823| +| 72752| 199010| GDGA | Bosanemoon | Anemone nemorosa L. | 8824| | 72921| 198828| GDGA | Bosanemoon | Anemone nemorosa L. | 8824| | 72874| 198735| GDGA | Bosanemoon | Anemone nemorosa L. | 8824| | 72887| 198660| GDGA | Bosanemoon | Anemone nemorosa L. | 8824| -| 72451| 199639| GDGA | Bosanemoon | Anemone nemorosa L. | 9423| -| 196274| 178260| GDGA | Bosanemoon | Anemone nemorosa L. | 4219| -| 118355| 185697| GDGA | Bosanemoon | Anemone nemorosa L. | 5670| **Remark:** Do not forget to close your connection when finished. @@ -223,7 +285,16 @@ dbDisconnect(my_connection) The `glue_sql` function ----------------------- -In order to accomplish the re-usage of a query for different input names (`dutch_name`), the `glue_sql` function is used from the [glue package](https://glue.tidyverse.org/reference/glue_sql.html). The `glue_sql` function (and the more general `glue` function) provides the ability to combine text and variable values in a single charactor string (i.e. the query to execute). For each variable name required in the query (any part of your query you want to have interchangeable), a representation in the query is given by the variable name you use in R, put in between curly brackets. For example, if you have the `dutch_name` variable in R, you can use it inside the query as `{dutch_name}`: +In order to accomplish the re-usage of a query for different input names +(`dutch_name`), the `glue_sql` function is used from the [glue +package](https://glue.tidyverse.org/reference/glue_sql.html). The +`glue_sql` function (and the more general `glue` function) provides the +ability to combine text and variable values in a single charactor string +(i.e. the query to execute). For each variable name required in the +query (any part of your query you want to have interchangeable), a +representation in the query is given by the variable name you use in R, +put in between curly brackets. For example, if you have the `dutch_name` +variable in R, you can use it inside the query as `{dutch_name}`: ``` r dutch_name <- 'Jan' @@ -234,6 +305,11 @@ glue('This prints a combination of a name: {dutch_name}, an integer: {an_integer ## This prints a combination of a name: Jan, an integer: 3 and a float value: 2.8 -Whereas the `glue` function is a general function for strings, the `glue_sql` function is specifically created to setup queries to databases. More information is provided [here](https://db.rstudio.com/best-practices/run-queries-safely/#using-glue_sql) and [here](https://glue.tidyverse.org/reference/glue_sql.html). +Whereas the `glue` function is a general function for strings, the +`glue_sql` function is specifically created to setup queries to +databases. More information is provided +[here](https://db.rstudio.com/best-practices/run-queries-safely/#using-glue_sql) +and [here](https://glue.tidyverse.org/reference/glue_sql.html). -[1] Formerly, connections were made using the package [RODBC](https://cran.r-project.org/web/packages/RODBC/index.html) +[1] Formerly, connections were made using the package +[RODBC](https://cran.r-project.org/web/packages/RODBC/index.html) diff --git a/content/tutorials/r_inboveg/index.Rmd b/content/tutorials/r_inboveg/index.Rmd index 19613cd19..1bb40f778 100644 --- a/content/tutorials/r_inboveg/index.Rmd +++ b/content/tutorials/r_inboveg/index.Rmd @@ -46,31 +46,32 @@ We have provided functions to query * qualifiers (management and site characteristics) # Packages and connection + In order to run the functionalities, some R packags need to be installed. -The main functions that we will use in this tutorial all start with `inboveg_*`. These functions are made available by loading the `inborutils` package. +The main functions that we will use in this tutorial all start with `inboveg_*`. These functions are made available by loading the `inbodb` package. -You can install inborutils from github with: +You can install inbodb from github with: ```{r, eval = FALSE} -install.packages("devtools") -devtools::install_github("inbo/inborutils") +install.packages("remotes") +remotes::install_github("inbo/inbodb") ``` This tutorial will only work for people with access to the INBO network. As an INBO employee, you should make sure you have reading-rights for CYDONIA, otherwise place an ICT-call. - + ```{r load_libraries, message = FALSE, warning = FALSE} library(glue) library(DBI) library(assertthat) library(dplyr) -library(inborutils) +library(inbodb) ``` The following R-code can be used to establish a connection to INBOVEG -by using 'connect_inbo_dbase' of the inborutils-package with the database 'Cydonia' +by using 'connect_inbo_dbase' of the inbodb-package with the database 'Cydonia' on the inbo-sql07-prd server: ```{r connection_inbo} @@ -81,7 +82,7 @@ con <- connect_inbo_dbase("D0010_00_Cydonia") ## Survey information -The function `inboveg_survey` queries the INBOVEG database for survey information +The function `get_inboveg_survey` queries the INBOVEG database for survey information (metadata about surveys) for one or more survey(s) by the name of the survey. ###Examples @@ -92,7 +93,7 @@ Three examples are given, this can be used as base to continue selecting the wan Get information of a specific survey and collect data. ```{r examples_survey} -survey_info <- inboveg_survey(con, +survey_info <- get_inboveg_survey(con, survey_name = "OudeLanden_1979", collect = TRUE) ``` @@ -105,7 +106,7 @@ survey_info Get information of all surveys. This time we will not use `collect = TRUE`, which will return a [lazy query](https://docs.lucee.org/guides/cookbooks/lazy_queries.html): ```{r} -allsurveys <- inboveg_survey(con) +allsurveys <- get_inboveg_survey(con) ``` ```{r} @@ -116,7 +117,7 @@ allsurveys If only a part of the survey name is known, you can make use of wildcards such as %. ```{r} -partsurveys <- inboveg_survey(con, +partsurveys <- get_inboveg_survey(con, survey_name = "%MILKLIM%", collect = TRUE) ``` @@ -128,7 +129,7 @@ head(partsurveys, 10) ## Recording information -The function `inboveg_recordings` queries the INBOVEG database for relevé +The function `get_inboveg_recordings` queries the INBOVEG database for relevé information (which species were recorded in which plots and in which vegetation layers with which cover) for one or more surveys. @@ -140,7 +141,7 @@ Four examples are given, this can be used as base to continue selecting the want Get the relevés from one survey and collect the data ```{r examples_recordings} -recording_heischraal2012 <- inboveg_recordings(con, +recording_heischraal2012 <- get_inboveg_recordings(con, survey_name = "MILKLIM_Heischraal2012", collect = TRUE) ``` @@ -153,7 +154,7 @@ head(recording_heischraal2012, 10) Get all recordings from MILKLIM surveys (partial matching), don't collect ```{r} -recording_milkim <- inboveg_recordings(con, +recording_milkim <- get_inboveg_recordings(con, survey_name = "%MILKLIM%") ``` @@ -165,7 +166,7 @@ recording_milkim Get recordings from several specific surveys ```{r} -recording_severalsurveys <- inboveg_recordings(con, +recording_severalsurveys <- get_inboveg_recordings(con, survey_name = c("MILKLIM_Heischraal2012", "NICHE Vlaanderen"), multiple = TRUE, collect = TRUE) @@ -179,7 +180,7 @@ head(recording_severalsurveys, 10) Get all relevés of all surveys, don't collect the data ```{r} -allrecordings <- inboveg_recordings(con) +allrecordings <- get_inboveg_recordings(con) ``` ```{r} @@ -189,7 +190,7 @@ allrecordings ## Header information -The function `inboveg_header` queries the INBOVEG database for header information +The function `get_inboveg_header` queries the INBOVEG database for header information (metadata for a vegetation-relevé) for one or more survey by the name of the survey(s) and the recorder type. @@ -201,7 +202,7 @@ Three examples are given, this can be used as base to continue selecting the wan Get header information from a specific survey and a specific recording type and collect the data: ```{r examples_header} -header_info <- inboveg_header(con, +header_info <- get_inboveg_header(con, survey_name = "OudeLanden_1979", rec_type = "Classic", collect = TRUE) @@ -215,7 +216,7 @@ head(header_info, 10) Get header information from several specific surveys by using multiple ```{r} -header_severalsurveys <- inboveg_header(con, +header_severalsurveys <- get_inboveg_header(con, survey_name = c("MILKLIM_Heischraal2012", "NICHE Vlaanderen"), multiple = TRUE) ``` @@ -228,7 +229,7 @@ header_severalsurveys Get header information of all surveys, don't collect the data ```{r} -all_header_info <- inboveg_header(con) +all_header_info <- get_inboveg_header(con) ``` ```{r} @@ -238,7 +239,7 @@ all_header_info ## Classification information -The function `inboveg_classification` queries the INBOVEG database for information +The function `get_inboveg_classification` queries the INBOVEG database for information on the field classification (N2000 or BWK-code) of the relevé for one or more survey(s) by the name of the survey. @@ -250,7 +251,7 @@ Two examples are given, this can be used as base to continue selecting the want Get a specific classification from a survey and collect the data: ```{r examples_classification} -classif_info <- inboveg_classification(con, +classif_info <- get_inboveg_classification(con, survey_name = "MILKLIM_Heischraal2012", classif = "4010", collect = TRUE) @@ -264,7 +265,7 @@ head(classif_info, 10) Get all surveys, all classifications, don't collect the data ```{r} -allecodes <- inboveg_classification(con) +allecodes <- get_inboveg_classification(con) ``` ```{r} @@ -275,7 +276,7 @@ allecodes ## Qualifiers information -This function `inboveg_qualifiers`queries the INBOVEG database for +This function `get_inboveg_qualifiers`queries the INBOVEG database for qualifier information on recordings for one or more surveys. These qualifiers give information on management (management qualifier 'MQ') or location description (site qualifier'SQ'). @@ -287,7 +288,7 @@ Four examples are given, this can be used as base to continue selecting the want Get the qualifiers from one survey ```{r examples_qualifiers} -qualifiers_heischraal2012 <- inboveg_qualifiers(con, +qualifiers_heischraal2012 <- get_inboveg_qualifiers(con, survey_name = "MILKLIM_Heischraal2012") ``` @@ -298,7 +299,7 @@ head(qualifiers_heischraal2012, 10) Get all site qualifiers (SQ) from MILKLIM surveys (partial matching): ```{r} -qualifiers_milkim <- inboveg_qualifiers(con, +qualifiers_milkim <- get_inboveg_qualifiers(con, survey_name = "%MILKLIM%", qualifier_type = "SQ") ``` @@ -309,7 +310,7 @@ head(qualifiers_milkim, 10) Get qualifiers from several specific surveys ```{r} -qualifiers_severalsurveys <- inboveg_qualifiers(con, +qualifiers_severalsurveys <- get_inboveg_qualifiers(con, survey_name = c("MILKLIM_Heischraal2012", "NICHE Vlaanderen"), multiple = TRUE) ``` @@ -322,7 +323,7 @@ head(qualifiers_severalsurveys, 10) Get all qualifiers of all surveys ```{r} -allqualifiers <- inboveg_qualifiers(con) +allqualifiers <- get_inboveg_qualifiers(con) ``` ```{r} diff --git a/content/tutorials/r_inboveg/index.md b/content/tutorials/r_inboveg/index.md index c785dd557..f77ffbf90 100644 --- a/content/tutorials/r_inboveg/index.md +++ b/content/tutorials/r_inboveg/index.md @@ -48,31 +48,35 @@ We have provided functions to query Packages and connection ======================= + + In order to run the functionalities, some R packags need to be installed. The main functions that we will use in this tutorial all start with -`inboveg_*`. These functions are made available by loading the -`inborutils` package. +`inboveg_*`. These functions are made available by loading the `inbodb` +package. -You can install inborutils from github with: +You can install inbodb from github with: - install.packages("devtools") - devtools::install_github("inbo/inborutils") + install.packages("remotes") + remotes::install_github("inbo/inbodb") This tutorial will only work for people with access to the INBO network. As an INBO employee, you should make sure you have reading-rights for CYDONIA, otherwise place an ICT-call. + + library(glue) library(DBI) library(assertthat) library(dplyr) - library(inborutils) + library(inbodb) The following R-code can be used to establish a connection to INBOVEG by -using 'connect\_inbo\_dbase' of the inborutils-package with the database -'Cydonia' on the inbo-sql07-prd server: +using ‘connect\_inbo\_dbase’ of the inbodb-package with the database +‘Cydonia’ on the inbo-sql07-prd server: con <- connect_inbo_dbase("D0010_00_Cydonia") @@ -82,80 +86,80 @@ Functionality Survey information ------------------ -The function `inboveg_survey` queries the INBOVEG database for survey -information (metadata about surveys) for one or more survey(s) by the -name of the survey. +The function `get_inboveg_survey` queries the INBOVEG database for +survey information (metadata about surveys) for one or more survey(s) by +the name of the survey. -### Examples +\#\#\#Examples Three examples are given, this can be used as base to continue selecting the wanted data. Get information of a specific survey and collect data. - survey_info <- inboveg_survey(con, + survey_info <- get_inboveg_survey(con, survey_name = "OudeLanden_1979", collect = TRUE) survey_info ## # A tibble: 1 x 5 - ## Id Name Description Owner creator - ## - ## 1 172 OudeLande~ Verlinden A, Leys G en Slembrouck J (1979~ els_de~ + ## Id Name Description Owner creator + ## + ## 1 172 OudeLanden~ Verlinden A, Leys G en Slembrouck J (1979) G~ els_deb~ Get information of all surveys. This time we will not use `collect = TRUE`, which will return a [lazy query](https://docs.lucee.org/guides/cookbooks/lazy_queries.html): - allsurveys <- inboveg_survey(con) + allsurveys <- get_inboveg_survey(con) allsurveys ## # Source: SQL [?? x 5] ## # Database: Microsoft SQL Server - ## # 13.00.5598[INBO\els_debie@INBO-SQL07-PRD\LIVE/D0010_00_Cydonia] - ## Id Name Description Owner creator - ## - ## 1 1 ZLB Opnamen Zandleembrabant en omg~ Gisèle ~ luc_vanhe~ - ## 2 2 Sigma_Biohab_~ Biohab opnames in Sigmagebied~ Wim Mer~ wim_merte~ - ## 3 3 Sigma_LSVI_20~ Perceelsopnamen van volledige ~ wim mer~ wim_merte~ - ## 4 4 MILKLIM_Alope~ Standplaatsonderzoek graslande~ MILKLIM maud_raman - ## 5 5 MILKLIM_WZ_Aa~ Opnamen van PQ's in regio Aals~ MILKLIM floris_va~ - ## 6 6 MILKLIM_Hei(s~ PQ's in kader van onderzoek na~ MILKLIM floris_va~ - ## 7 7 MILKLIM_Heide Standplaatsonderzoek heide MILKLIM jan_woute~ - ## 8 8 MILKLIM_W&Z_L~ Evaluatie maaibeheer Leieberme~ MILKLIM maud_raman - ## 9 9 MILKLIM_W&Z_G~ Vegetatieopnames in het kader ~ MILKLIM luc_vanhe~ - ## 10 10 MILKLIM_Heisc~ Vegetatieopnames in het kader ~ MILKLIM cecile_he~ + ## # 13.00.5598[INBO\els_lommelen@INBO-SQL07-PRD\LIVE/D0010_00_Cydonia] + ## Id Name Description Owner creator + ## + ## 1 1 ZLB Opnamen Zandleembrabant en omgev~ Gisèle W~ luc_vanher~ + ## 2 2 Sigma_Biohab_2~ Biohab opnames in Sigmagebieden~ Wim Mert~ wim_mertens + ## 3 3 Sigma_LSVI_2012 Perceelsopnamen van volledige so~ wim mert~ wim_mertens + ## 4 4 MILKLIM_Alopec~ Standplaatsonderzoek graslanden ~ MILKLIM maud_raman + ## 5 5 MILKLIM_WZ_Aal~ Opnamen van PQ's in regio Aalst ~ MILKLIM floris_van~ + ## 6 6 MILKLIM_Hei(sc~ PQ's in kader van onderzoek naar~ MILKLIM floris_van~ + ## 7 7 MILKLIM_Heide Standplaatsonderzoek heide MILKLIM jan_wouters + ## 8 8 MILKLIM_W&Z_Le~ Evaluatie maaibeheer Leiebermen ~ MILKLIM maud_raman + ## 9 9 MILKLIM_W&Z_Ge~ Vegetatieopnames in het kader va~ MILKLIM luc_vanher~ + ## 10 10 MILKLIM_Heisch~ Vegetatieopnames in het kader va~ MILKLIM cecile_herr ## # ... with more rows If only a part of the survey name is known, you can make use of wildcards such as %. - partsurveys <- inboveg_survey(con, + partsurveys <- get_inboveg_survey(con, survey_name = "%MILKLIM%", collect = TRUE) head(partsurveys, 10) ## # A tibble: 10 x 5 - ## Id Name Description Owner creator - ## - ## 1 4 MILKLIM_Alopecu~ Standplaatsonderzoek graslande~ MILKL~ maud_raman - ## 2 5 MILKLIM_WZ_Aals~ Opnamen van PQ's in regio Aals~ MILKL~ floris_va~ - ## 3 6 MILKLIM_Hei(sch~ PQ's in kader van onderzoek na~ MILKL~ floris_va~ - ## 4 7 MILKLIM_Heide Standplaatsonderzoek heide MILKL~ jan_woute~ - ## 5 8 MILKLIM_W&Z_Lei~ Evaluatie maaibeheer Leieberme~ MILKL~ maud_raman - ## 6 9 MILKLIM_W&Z_Ger~ Vegetatieopnames in het kader ~ MILKL~ luc_vanhe~ - ## 7 10 MILKLIM_Heischr~ Vegetatieopnames in het kader ~ MILKL~ cecile_he~ - ## 8 11 MILKLIM_W&Z_Var~ Losse opnamen in het kader van~ MILKL~ floris_va~ - ## 9 12 MILKLIM_W&Z_Ber~ Ecologische opvolging van berm~ MILKL~ els_debie - ## 10 14 MILKLIM_W&Z_Oev~ Oeveropnamen langs de Leie ter~ Maud ~ luc_vanhe~ + ## Id Name Description Owner creator + ## + ## 1 4 MILKLIM_Alopecur~ Standplaatsonderzoek graslanden b~ MILKL~ maud_raman + ## 2 5 MILKLIM_WZ_Aalst~ Opnamen van PQ's in regio Aalst e~ MILKL~ floris_van~ + ## 3 6 MILKLIM_Hei(schr~ PQ's in kader van onderzoek naar ~ MILKL~ floris_van~ + ## 4 7 MILKLIM_Heide Standplaatsonderzoek heide MILKL~ jan_wouters + ## 5 8 MILKLIM_W&Z_Leie~ Evaluatie maaibeheer Leiebermen g~ MILKL~ maud_raman + ## 6 9 MILKLIM_W&Z_Gera~ Vegetatieopnames in het kader van~ MILKL~ luc_vanher~ + ## 7 10 MILKLIM_Heischra~ Vegetatieopnames in het kader van~ MILKL~ cecile_herr + ## 8 11 MILKLIM_W&Z_Varia Losse opnamen in het kader van kl~ MILKL~ floris_van~ + ## 9 12 MILKLIM_W&Z_Berm~ Ecologische opvolging van bermveg~ MILKL~ els_debie + ## 10 14 MILKLIM_W&Z_Oeve~ Oeveropnamen langs de Leie ter ev~ Maud ~ luc_vanher~ Recording information --------------------- -The function `inboveg_recordings` queries the INBOVEG database for +The function `get_inboveg_recordings` queries the INBOVEG database for relevé information (which species were recorded in which plots and in which vegetation layers with which cover) for one or more surveys. @@ -166,7 +170,7 @@ the wanted data. Get the relevés from one survey and collect the data - recording_heischraal2012 <- inboveg_recordings(con, + recording_heischraal2012 <- get_inboveg_recordings(con, survey_name = "MILKLIM_Heischraal2012", collect = TRUE) @@ -188,35 +192,35 @@ Get the relevés from one survey and collect the data ## # ... with 4 more variables: PhenologyCode , CoverageCode , ## # PctValue , RecordingScale -Get all recordings from MILKLIM surveys (partial matching), don't +Get all recordings from MILKLIM surveys (partial matching), don’t collect - recording_milkim <- inboveg_recordings(con, + recording_milkim <- get_inboveg_recordings(con, survey_name = "%MILKLIM%") recording_milkim ## # Source: SQL [?? x 10] ## # Database: Microsoft SQL Server - ## # 13.00.5598[INBO\els_debie@INBO-SQL07-PRD\LIVE/D0010_00_Cydonia] + ## # 13.00.5598[INBO\els_lommelen@INBO-SQL07-PRD\LIVE/D0010_00_Cydonia] ## Name RecordingGivid LayerCode CoverCode OriginalName ScientificName ## - ## 1 MILK~ IV20120802135~ KH 99 Ranunculus ~ Ranunculus ac~ - ## 2 MILK~ IV20120802135~ KH 99 Ranunculus ~ Ranunculus re~ - ## 3 MILK~ IV20120802135~ KH 99 Alopecurus ~ Alopecurus pr~ - ## 4 MILK~ IV20120802135~ KH 99 Holcus lana~ Holcus lanatu~ - ## 5 MILK~ IV20120802135~ KH 99 Poa trivial~ Poa trivialis~ - ## 6 MILK~ IV20120802135~ KH 99 Anthoxanthu~ Anthoxanthum ~ - ## 7 MILK~ IV20120802135~ KH 99 Cardamine p~ Cardamine pra~ - ## 8 MILK~ IV20120802135~ KH 99 Trifolium p~ Trifolium pra~ - ## 9 MILK~ IV20120802135~ KH 99 Cerastium f~ Cerastium fon~ - ## 10 MILK~ IV20120802135~ KH 99 Rumex aceto~ Rumex acetosa~ + ## 1 MILK~ IV20120803144~ KH 99 Anthoxanthu~ Anthoxanthum ~ + ## 2 MILK~ IV20120803144~ KH 99 Glechoma he~ Glechoma hede~ + ## 3 MILK~ IV20120803144~ KH 99 Heracleum s~ Heracleum sph~ + ## 4 MILK~ IV20120803144~ KH 99 Agrostis ca~ Agrostis capi~ + ## 5 MILK~ IV20120803144~ KH 99 Trifolium r~ Trifolium rep~ + ## 6 MILK~ IV20120803144~ KH 99 Veronica ar~ Veronica arve~ + ## 7 MILK~ IV20120803144~ KH 99 Bromus moll~ Bromus hordea~ + ## 8 MILK~ IV20120803144~ KH 99 Festuca rub~ Festuca rubra~ + ## 9 MILK~ IV20120803144~ KH 99 Filipendula~ Filipendula u~ + ## 10 MILK~ IV20120803144~ KH 99 Veronica se~ Veronica serp~ ## # ... with more rows, and 4 more variables: PhenologyCode , ## # CoverageCode , PctValue , RecordingScale Get recordings from several specific surveys - recording_severalsurveys <- inboveg_recordings(con, + recording_severalsurveys <- get_inboveg_recordings(con, survey_name = c("MILKLIM_Heischraal2012", "NICHE Vlaanderen"), multiple = TRUE, collect = TRUE) @@ -239,15 +243,15 @@ Get recordings from several specific surveys ## # ... with 4 more variables: PhenologyCode , CoverageCode , ## # PctValue , RecordingScale -Get all relevés of all surveys, don't collect the data +Get all relevés of all surveys, don’t collect the data - allrecordings <- inboveg_recordings(con) + allrecordings <- get_inboveg_recordings(con) allrecordings ## # Source: SQL [?? x 10] ## # Database: Microsoft SQL Server - ## # 13.00.5598[INBO\els_debie@INBO-SQL07-PRD\LIVE/D0010_00_Cydonia] + ## # 13.00.5598[INBO\els_lommelen@INBO-SQL07-PRD\LIVE/D0010_00_Cydonia] ## Name RecordingGivid LayerCode CoverCode OriginalName ScientificName ## ## 1 ZLB IV20120524163~ B 75 Betula pend~ Betula pendul~ @@ -266,11 +270,11 @@ Get all relevés of all surveys, don't collect the data Header information ------------------ -The function `inboveg_header` queries the INBOVEG database for header -information (metadata for a vegetation-relevé) for one or more survey by -the name of the survey(s) and the recorder type. +The function `get_inboveg_header` queries the INBOVEG database for +header information (metadata for a vegetation-relevé) for one or more +survey by the name of the survey(s) and the recorder type. -### Examples +\#\#\#Examples Three examples are given, this can be used as base to continue selecting the wanted data. @@ -278,7 +282,7 @@ the wanted data. Get header information from a specific survey and a specific recording type and collect the data: - header_info <- inboveg_header(con, + header_info <- get_inboveg_header(con, survey_name = "OudeLanden_1979", rec_type = "Classic", collect = TRUE) @@ -286,25 +290,25 @@ type and collect the data: head(header_info, 10) ## # A tibble: 10 x 15 - ## RecordingGivid Name UserReference Observer LocationCode Latitude - ## - ## 1 IV20160210121~ Oude~ 5 Alex Ve~ Ekeren 500 - ## 2 IV20160210140~ Oude~ 1 Alex Ve~ Ekeren 500 - ## 3 IV20160210142~ Oude~ 2 Alex Ve~ Ekeren 500 - ## 4 IV20160210153~ Oude~ 4 Alex Ve~ Ekeren 500 - ## 5 IV20160210155~ Oude~ 81 Alex Ve~ Ekeren 500 - ## 6 IV20160210160~ Oude~ 20 Alex Ve~ Ekeren 500 - ## 7 IV20160210161~ Oude~ 17 Alex Ve~ Ekeren 500 - ## 8 IV20160210162~ Oude~ 19 Alex Ve~ Ekeren 500 - ## 9 IV20160210163~ Oude~ 18 Alex Ve~ Ekeren 500 - ## 10 IV20160210164~ Oude~ 23 Alex Ve~ Ekeren 500 - ## # ... with 9 more variables: Longitude , Area , Length , - ## # Width , VagueDateType , VagueDateBegin , - ## # VagueDateEnd , SurveyId , RecTypeID + ## RecordingGivid Name UserReference Observer LocationCode Latitude Longitude + ## + ## 1 IV20160210121~ Oude~ 5 Alex Ve~ Ekeren 500 500 + ## 2 IV20160210140~ Oude~ 1 Alex Ve~ Ekeren 500 500 + ## 3 IV20160210142~ Oude~ 2 Alex Ve~ Ekeren 500 500 + ## 4 IV20160210153~ Oude~ 4 Alex Ve~ Ekeren 500 500 + ## 5 IV20160210155~ Oude~ 81 Alex Ve~ Ekeren 500 500 + ## 6 IV20160210160~ Oude~ 20 Alex Ve~ Ekeren 500 500 + ## 7 IV20160210161~ Oude~ 17 Alex Ve~ Ekeren 500 500 + ## 8 IV20160210162~ Oude~ 19 Alex Ve~ Ekeren 500 500 + ## 9 IV20160210163~ Oude~ 18 Alex Ve~ Ekeren 500 500 + ## 10 IV20160210164~ Oude~ 23 Alex Ve~ Ekeren 500 500 + ## # ... with 8 more variables: Area , Length , Width , + ## # VagueDateType , VagueDateBegin , VagueDateEnd , + ## # SurveyId , RecTypeID Get header information from several specific surveys by using multiple - header_severalsurveys <- inboveg_header(con, + header_severalsurveys <- get_inboveg_header(con, survey_name = c("MILKLIM_Heischraal2012", "NICHE Vlaanderen"), multiple = TRUE) @@ -312,63 +316,63 @@ Get header information from several specific surveys by using multiple ## # Source: SQL [?? x 15] ## # Database: Microsoft SQL Server - ## # 13.00.5598[INBO\els_debie@INBO-SQL07-PRD\LIVE/D0010_00_Cydonia] - ## RecordingGivid Name UserReference Observer LocationCode Latitude - ## - ## 1 IV20120816094~ MILK~ HS_036 Cécile ~ Walenbos 50.9 - ## 2 IV20120816102~ MILK~ HS_037 Cécile ~ Walenbos 50.9 - ## 3 IV20120816103~ MILK~ HS_044 Cécile ~ Walenbos 50.9 - ## 4 IV20120816105~ MILK~ HS_140 Cécile ~ Walenbos 50.9 - ## 5 IV20120816112~ MILK~ HS_106 Cécile ~ Liereman 51.3 - ## 6 IV20120816113~ MILK~ HS_107 Cécile ~ Liereman 51.3 - ## 7 IV20120816113~ MILK~ HS_1001 Cécile ~ Liereman 51.3 - ## 8 IV20120816124~ MILK~ HS_1003 Cécile ~ Langdonken 51.0 - ## 9 IV20120816141~ MILK~ HS_1006 Cécile ~ Gulke Putten 51.1 - ## 10 IV20120816143~ MILK~ HS_1007 Cécile ~ Gulke Putten 51.1 - ## # ... with more rows, and 9 more variables: Longitude , Area , - ## # Length , Width , VagueDateType , VagueDateBegin , - ## # VagueDateEnd , SurveyId , RecTypeID - -Get header information of all surveys, don't collect the data - - all_header_info <- inboveg_header(con) + ## # 13.00.5598[INBO\els_lommelen@INBO-SQL07-PRD\LIVE/D0010_00_Cydonia] + ## RecordingGivid Name UserReference Observer LocationCode Latitude Longitude + ## + ## 1 IV20120816094~ MILK~ HS_036 Cécile ~ Walenbos 51.0 4.80 + ## 2 IV20120816102~ MILK~ HS_037 Cécile ~ Walenbos 51.0 4.80 + ## 3 IV20120816103~ MILK~ HS_044 Cécile ~ Walenbos 51.0 4.80 + ## 4 IV20120816105~ MILK~ HS_140 Cécile ~ Walenbos 51.0 4.80 + ## 5 IV20120816112~ MILK~ HS_106 Cécile ~ Liereman 51.1 5.45 + ## 6 IV20120816113~ MILK~ HS_107 Cécile ~ Liereman 51.1 5.45 + ## 7 IV20120816113~ MILK~ HS_1001 Cécile ~ Liereman 51.1 5.45 + ## 8 IV20120816124~ MILK~ HS_1003 Cécile ~ Langdonken 51.0 4.95 + ## 9 IV20120816141~ MILK~ HS_1006 Cécile ~ Gulke Putten 50.0 5.02 + ## 10 IV20120816143~ MILK~ HS_1007 Cécile ~ Gulke Putten 50.0 5.01 + ## # ... with more rows, and 8 more variables: Area , Length , + ## # Width , VagueDateType , VagueDateBegin , VagueDateEnd , + ## # SurveyId , RecTypeID + +Get header information of all surveys, don’t collect the data + + all_header_info <- get_inboveg_header(con) all_header_info ## # Source: SQL [?? x 15] ## # Database: Microsoft SQL Server - ## # 13.00.5598[INBO\els_debie@INBO-SQL07-PRD\LIVE/D0010_00_Cydonia] - ## RecordingGivid Name UserReference Observer LocationCode Latitude - ## - ## 1 IV20120524163~ ZLB ZLB-GW-2011-~ Weyembe~ Overijse 500 - ## 2 IV20120608135~ ZLB ZLB-GW-2011-~ Weyembe~ Overijse 500 - ## 3 IV20120608155~ Sigm~ wm2012-0001 wim mer~ Weymeerbroek 500 - ## 4 IV20120608161~ Sigm~ wm2012-0002 wim mer~ Weymeerbroek 500 - ## 5 IV20120608163~ ZLB ZLB-GW-2006-~ Weyembe~ Rosières 500 - ## 6 IV20120614155~ ZLB ZLB-GW-2005-~ Weyembe~ Rixensart 500 - ## 7 IV20120802135~ MILK~ 130 Jan Wou~ Heist op de~ 51.1 - ## 8 IV20120802143~ MILK~ 131 Jan Wou~ Heist op de~ 51.1 - ## 9 IV20120802150~ MILK~ 131B Jan Wou~ Heist op de~ 51.1 - ## 10 IV20120802153~ MILK~ 378 Jan Wou~ Schulens Br~ 51.0 - ## # ... with more rows, and 9 more variables: Longitude , Area , - ## # Length , Width , VagueDateType , VagueDateBegin , - ## # VagueDateEnd , SurveyId , RecTypeID + ## # 13.00.5598[INBO\els_lommelen@INBO-SQL07-PRD\LIVE/D0010_00_Cydonia] + ## RecordingGivid Name UserReference Observer LocationCode Latitude Longitude + ## + ## 1 IV20120524163~ ZLB ZLB-GW-2011-~ Weyembe~ Overijse 500 500 + ## 2 IV20120608135~ ZLB ZLB-GW-2011-~ Weyembe~ Overijse 500 500 + ## 3 IV20120608155~ Sigm~ wm2012-0001 wim mer~ Weymeerbroek 500 500 + ## 4 IV20120608161~ Sigm~ wm2012-0002 wim mer~ Weymeerbroek 500 500 + ## 5 IV20120608163~ ZLB ZLB-GW-2006-~ Weyembe~ Rosières 500 500 + ## 6 IV20120614155~ ZLB ZLB-GW-2005-~ Weyembe~ Rixensart 500 500 + ## 7 IV20120802135~ MILK~ 130 Jan Wou~ Heist op de~ 51.1 4.75 + ## 8 IV20120802143~ MILK~ 131 Jan Wou~ Heist op de~ 51.1 4.75 + ## 9 IV20120802150~ MILK~ 131B Jan Wou~ Heist op de~ 51.1 4.75 + ## 10 IV20120802153~ MILK~ 378 Jan Wou~ Schulens Br~ 51.0 5.17 + ## # ... with more rows, and 8 more variables: Area , Length , + ## # Width , VagueDateType , VagueDateBegin , VagueDateEnd , + ## # SurveyId , RecTypeID Classification information -------------------------- -The function `inboveg_classification` queries the INBOVEG database for -information on the field classification (N2000 or BWK-code) of the +The function `get_inboveg_classification` queries the INBOVEG database +for information on the field classification (N2000 or BWK-code) of the relevé for one or more survey(s) by the name of the survey. -### Examples +\#\#\#Examples Two examples are given, this can be used as base to continue selecting the wanted data. Get a specific classification from a survey and collect the data: - classif_info <- inboveg_classification(con, + classif_info <- get_inboveg_classification(con, survey_name = "MILKLIM_Heischraal2012", classif = "4010", collect = TRUE) @@ -376,52 +380,51 @@ Get a specific classification from a survey and collect the data: head(classif_info, 10) ## # A tibble: 1 x 9 - ## RecordingGivid Name Classif ActionGroup ListName LocalClassifica~ - ## - ## 1 IV20130318144~ MILK~ 4010 N2k Habitat~ - ## # ... with 3 more variables: Habitattype , Cover , - ## # PctValue + ## RecordingGivid Name Classif ActionGroup ListName LocalClassifica~ Habitattype + ## + ## 1 IV20130318144~ MILK~ 4010 N2k Habitat~ Noord-Atla~ + ## # ... with 2 more variables: Cover , PctValue -Get all surveys, all classifications, don't collect the data +Get all surveys, all classifications, don’t collect the data - allecodes <- inboveg_classification(con) + allecodes <- get_inboveg_classification(con) allecodes ## # Source: SQL [?? x 9] ## # Database: Microsoft SQL Server - ## # 13.00.5598[INBO\els_debie@INBO-SQL07-PRD\LIVE/D0010_00_Cydonia] + ## # 13.00.5598[INBO\els_lommelen@INBO-SQL07-PRD\LIVE/D0010_00_Cydonia] ## RecordingGivid Name Classif ActionGroup ListName LocalClassifica~ ## - ## 1 IV20120524163~ ZLB vc BWK Ecotoop~ elzen-essenbos ~ - ## 2 IV20120524163~ ZLB qa BWK Ecotoop~ eiken-haagbeuke~ + ## 1 IV20120524163~ ZLB vc BWK Ecotoop~ "elzen-essenbos~ + ## 2 IV20120524163~ ZLB qa BWK Ecotoop~ "eiken-haagbeuk~ ## 3 IV20120608155~ Sigm~ kd BWK Ecotoop~ "dijk " ## 4 IV20120608161~ Sigm~ kbj BWK Ecotoop~ "bomenrij met d~ - ## 5 IV20120608163~ ZLB vm BWK Ecotoop~ mesotroof elzen~ - ## 6 IV20120608135~ ZLB mk BWK Ecotoop~ alkalisch laagv~ - ## 7 IV20120614155~ ZLB msb- BWK Ecotoop~ zuur laagveen m~ - ## 8 IV20120802135~ MILK~ k(hf) BWK Ecotoop~ bermen, perceel~ - ## 9 IV20120802135~ MILK~ k(hc) BWK Ecotoop~ bermen, perceel~ - ## 10 IV20120802135~ MILK~ hp+ BWK Ecotoop~ soortenrijk per~ - ## # ... with more rows, and 3 more variables: Habitattype , - ## # Cover , PctValue + ## 5 IV20120608163~ ZLB vm BWK Ecotoop~ "mesotroof elze~ + ## 6 IV20120608135~ ZLB mk BWK Ecotoop~ "alkalisch laag~ + ## 7 IV20120614155~ ZLB msb- BWK Ecotoop~ "zuur laagveen ~ + ## 8 IV20120802135~ MILK~ k(hf) BWK Ecotoop~ "bermen, percee~ + ## 9 IV20120802135~ MILK~ k(hc) BWK Ecotoop~ "bermen, percee~ + ## 10 IV20120802135~ MILK~ hp+ BWK Ecotoop~ "soortenrijk pe~ + ## # ... with more rows, and 3 more variables: Habitattype , Cover , + ## # PctValue Qualifiers information ---------------------- -This function `inboveg_qualifiers`queries the INBOVEG database for +This function `get_inboveg_qualifiers`queries the INBOVEG database for qualifier information on recordings for one or more surveys. These -qualifiers give information on management (management qualifier 'MQ') or -location description (site qualifier'SQ'). +qualifiers give information on management (management qualifier ‘MQ’) or +location description (site qualifier’SQ’). -### Examples +\#\#\#Examples Four examples are given, this can be used as base to continue selecting the wanted data. Get the qualifiers from one survey - qualifiers_heischraal2012 <- inboveg_qualifiers(con, + qualifiers_heischraal2012 <- get_inboveg_qualifiers(con, survey_name = "MILKLIM_Heischraal2012") head(qualifiers_heischraal2012, 10) @@ -473,7 +476,7 @@ Get the qualifiers from one survey Get all site qualifiers (SQ) from MILKLIM surveys (partial matching): - qualifiers_milkim <- inboveg_qualifiers(con, + qualifiers_milkim <- get_inboveg_qualifiers(con, survey_name = "%MILKLIM%", qualifier_type = "SQ") @@ -515,49 +518,49 @@ Get all site qualifiers (SQ) from MILKLIM surveys (partial matching): Get qualifiers from several specific surveys - qualifiers_severalsurveys <- inboveg_qualifiers(con, + qualifiers_severalsurveys <- get_inboveg_qualifiers(con, survey_name = c("MILKLIM_Heischraal2012", "NICHE Vlaanderen"), multiple = TRUE) head(qualifiers_severalsurveys, 10) - ## Name RecordingGivid UserReference Observer - ## 1 NICHE Vlaanderen IV2013091209383088 1 . 3 O Els De Bie - ## 2 NICHE Vlaanderen IV2013091209230447 1 . 5 O Els De Bie - ## 3 NICHE Vlaanderen IV2013091208585526 1 . 7 D Els De Bie - ## 4 NICHE Vlaanderen IV2013091016243864 1.8 O Els De Bie - ## 5 NICHE Vlaanderen IV2013101009450362 15 Wim Mertens - ## 6 NICHE Vlaanderen IV2013101010054825 19 Wim Mertens - ## 7 NICHE Vlaanderen IV2013092409234825 2.1 O Els De Bie - ## 8 NICHE Vlaanderen IV2013092415280064 2.7 Els De Bie - ## 9 NICHE Vlaanderen IV2013092415561030 2.8 Els De Bie - ## 10 NICHE Vlaanderen IV2013092415460492 2.8 bis Els De Bie - ## QualifierType Q1Code Q1Description Q2Code Q2Description Q3Code - ## 1 SQ OLEP003X - ## 2 SQ OLEP005X - ## 3 SQ OLEP107X - ## 4 SQ OLEP108X - ## 5 SQ VIEP102X - ## 6 SQ VIEP151X - ## 7 SQ OLEP009X - ## 8 SQ LIEP014X - ## 9 SQ LIEP015X - ## 10 SQ LIEP015X - ## Q3Description Elucidation NotSure ParentID QualifierResource - ## 1 0 NA RS2012080211350655 - ## 2 0 NA RS2012080211350655 - ## 3 0 NA RS2012080211350655 - ## 4 0 NA RS2012080211350655 - ## 5 0 NA RS2012080211350655 - ## 6 0 NA RS2012080211350655 - ## 7 0 NA RS2012080211350655 - ## 8 0 NA RS2012080211350655 - ## 9 0 NA RS2012080211350655 - ## 10 0 NA RS2012080211350655 + ## Name RecordingGivid UserReference Observer QualifierType + ## 1 NICHE Vlaanderen IV2013091209383088 1 . 3 O Els De Bie SQ + ## 2 NICHE Vlaanderen IV2013091209230447 1 . 5 O Els De Bie SQ + ## 3 NICHE Vlaanderen IV2013091208585526 1 . 7 D Els De Bie SQ + ## 4 NICHE Vlaanderen IV2013091016243864 1.8 O Els De Bie SQ + ## 5 NICHE Vlaanderen IV2013101009450362 15 Wim Mertens SQ + ## 6 NICHE Vlaanderen IV2013101010054825 19 Wim Mertens SQ + ## 7 NICHE Vlaanderen IV2013092409234825 2.1 O Els De Bie SQ + ## 8 NICHE Vlaanderen IV2013092415280064 2.7 Els De Bie SQ + ## 9 NICHE Vlaanderen IV2013092415561030 2.8 Els De Bie SQ + ## 10 NICHE Vlaanderen IV2013092415460492 2.8 bis Els De Bie SQ + ## Q1Code Q1Description Q2Code Q2Description Q3Code Q3Description Elucidation + ## 1 OLEP003X + ## 2 OLEP005X + ## 3 OLEP107X + ## 4 OLEP108X + ## 5 VIEP102X + ## 6 VIEP151X + ## 7 OLEP009X + ## 8 LIEP014X + ## 9 LIEP015X + ## 10 LIEP015X + ## NotSure ParentID QualifierResource + ## 1 0 NA RS2012080211350655 + ## 2 0 NA RS2012080211350655 + ## 3 0 NA RS2012080211350655 + ## 4 0 NA RS2012080211350655 + ## 5 0 NA RS2012080211350655 + ## 6 0 NA RS2012080211350655 + ## 7 0 NA RS2012080211350655 + ## 8 0 NA RS2012080211350655 + ## 9 0 NA RS2012080211350655 + ## 10 0 NA RS2012080211350655 Get all qualifiers of all surveys - allqualifiers <- inboveg_qualifiers(con) + allqualifiers <- get_inboveg_qualifiers(con) head(allqualifiers,10) @@ -572,45 +575,45 @@ Get all qualifiers of all surveys ## 8 MILKLIM_LevelII_Londo IV2013082711054782 001_LevelII ## 9 LosseOpnames_IndraJacobs_Londo IV2017022410342012 001-KES ## 10 OudeKreken_Assenede IV2014090216034066 002 - ## Observer QualifierType Q1Code - ## 1 Maud Raman en Arthur De Haeck MQ A - ## 2 Leen Martens MQ 0 - ## 3 Henk Coudenys MQ 0 - ## 4 Leen Martens SQ Kalkense meersen - ## 5 Henk Coudenys SQ Krekengebied - ## 6 Hans Baeté SQ Ter Yde - ## 7 Onbekend SQ 11.01 - ## 8 Onbekend SQ 11.1 - ## 9 Indra Jacobs SQ Koningssteen - ## 10 Henk Coudenys MQ 0 - ## Q1Description Q2Code Q2Description Q3Code Q3Description - ## 1 Active PBuis Peilbuizen ASEP001X - ## 2 -9 geen peilbuis - ## 3 Geen informatie BEH BeheerIngrepen hooil hooiland - ## 4 - ## 5 - ## 6 - ## 7 - ## 8 - ## 9 - ## 10 Geen informatie BEH BeheerIngrepen hooil hooiland - ## Elucidation NotSure ParentID QualifierResource - ## 1 0 NA RS2012060811060080 - ## 2 0 NA - ## 3 0 NA RS2014070915553622 - ## 4 0 NA RS2012080211350639 - ## 5 0 NA RS2012080211350639 - ## 6 0 NA RS2012080211350639 - ## 7 0 NA RS2013082612251090 - ## 8 0 NA RS2013082612251090 - ## 9 0 NA - ## 10 0 NA RS2014070915553622 + ## Observer QualifierType Q1Code Q1Description + ## 1 Maud Raman en Arthur De Haeck MQ A Active + ## 2 Leen Martens MQ 0 + ## 3 Henk Coudenys MQ 0 Geen informatie + ## 4 Leen Martens SQ Kalkense meersen + ## 5 Henk Coudenys SQ Krekengebied + ## 6 Hans Baeté SQ Ter Yde + ## 7 Onbekend SQ 11.01 + ## 8 Onbekend SQ 11.1 + ## 9 Indra Jacobs SQ Koningssteen + ## 10 Henk Coudenys MQ 0 Geen informatie + ## Q2Code Q2Description Q3Code Q3Description Elucidation NotSure ParentID + ## 1 PBuis Peilbuizen ASEP001X 0 NA + ## 2 -9 geen peilbuis 0 NA + ## 3 BEH BeheerIngrepen hooil hooiland 0 NA + ## 4 0 NA + ## 5 0 NA + ## 6 0 NA + ## 7 0 NA + ## 8 0 NA + ## 9 0 NA + ## 10 BEH BeheerIngrepen hooil hooiland 0 NA + ## QualifierResource + ## 1 RS2012060811060080 + ## 2 + ## 3 RS2014070915553622 + ## 4 RS2012080211350639 + ## 5 RS2012080211350639 + ## 6 RS2012080211350639 + ## 7 RS2013082612251090 + ## 8 RS2013082612251090 + ## 9 + ## 10 RS2014070915553622 More complex queries -------------------- These functions give basis information out of INBOVEG. If more detailed -information is needed 'dplyr' is the magic word. In future more complex +information is needed ‘dplyr’ is the magic word. In future more complex functions can be build to help the inboveg-users. Closing the connection From 43aad41f91a5413f2c9e1793908291e1cf94e274 Mon Sep 17 00:00:00 2001 From: LOMMELEN Date: Mon, 29 Jun 2020 14:36:27 +0200 Subject: [PATCH 03/12] add description inbodb to inbo software --- content/articles/inbo_software/index.Rmd | 5 ++++- content/articles/inbo_software/index.md | 28 ++++++++++++++---------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/content/articles/inbo_software/index.Rmd b/content/articles/inbo_software/index.Rmd index af499e1b9..05607b531 100644 --- a/content/articles/inbo_software/index.Rmd +++ b/content/articles/inbo_software/index.Rmd @@ -29,7 +29,8 @@ The following table gives a **quick overview**: |:-------------|:--------------------------------------| | Study design | [grts](https://github.com/ThierryO/grts) | | Retrieve data: environmental | [wateRinfo](https://ropensci.github.io/wateRinfo/), [pydov](https://pydov.readthedocs.io/), [watina](https://inbo.github.io/watina) | -| Retrieve data: biological | [pyinaturalist](https://github.com/inbo/pyinaturalist), [uvabits](https://inbo.github.io/uvabits/), [etn](https://inbo.github.io/etn/), [n2khab](https://inbo.github.io/n2khab), [forrescalc](https://github.com/inbo/forrescalc) | +| Retrieve data: biological | [pyinaturalist](https://github.com/inbo/pyinaturalist), [uvabits](https://inbo.github.io/uvabits/), [etn](https://inbo.github.io/etn/), [n2khab](https://inbo.github.io/n2khab), [forrescalc](https://github.com/inbo/forrescalc), +[inbodb](https://inbo.github.io/inbodb) | | Store data | [git2rdata](https://inbo.github.io/git2rdata/) | | Validate data | [pywhip](https://inbo.github.io/pywhip/) | | Analyze data: graphs | [inboggvegan](https://github.com/inbo/inboggvegan) | @@ -73,6 +74,8 @@ provides functionality to access and process data from the [European Tracking Ne provides preprocessed reference data _(including checklists, spatial habitat distribution, administrative & environmental layers, GRTSmaster_habitats)_ and preprocessing functions, supporting reproducible and transparent analyses on Flemish Natura 2000 (_n2k_) habitats (_hab_) and regionally important biotopes (RIBs). - **R package [forrescalc](https://github.com/inbo/forrescalc)**: provides aggregated values on dendrometry, regeneration and vegetation of the flemish forest reserve monitoring network, and functions to derive these data starting from individual tree measurements in Fieldmap. +- **R package [inbodb]((https://inbo.github.io/inbodb)**: +connect to and retrieve data from databases on the INBO server, with dedicated functions to query databases INBOVEG and Florabank. ## Store data diff --git a/content/articles/inbo_software/index.md b/content/articles/inbo_software/index.md index ffe2898ec..f9ea3c857 100644 --- a/content/articles/inbo_software/index.md +++ b/content/articles/inbo_software/index.md @@ -30,18 +30,19 @@ the package’s purpose and demonstrating its use. The following table gives a **quick overview**: -| Research stage | Related INBO packages | -| :---------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Study design | [grts](https://github.com/ThierryO/grts) | -| Retrieve data: environmental | [wateRinfo](https://ropensci.github.io/wateRinfo/), [pydov](https://pydov.readthedocs.io/), [watina](https://inbo.github.io/watina) | -| Retrieve data: biological | [pyinaturalist](https://github.com/inbo/pyinaturalist), [uvabits](https://inbo.github.io/uvabits/), [etn](https://inbo.github.io/etn/), [n2khab](https://inbo.github.io/n2khab), [forrescalc](https://github.com/inbo/forrescalc) | -| Store data | [git2rdata](https://inbo.github.io/git2rdata/) | -| Validate data | [pywhip](https://inbo.github.io/pywhip/) | -| Analyze data: graphs | [inboggvegan](https://github.com/inbo/inboggvegan) | -| Analyze data: models | [inlatools](https://inlatools.netlify.com/), [multimput](https://github.com/inbo/multimput), [effectclass](https://effectclass.netlify.com), [niche\_vlaanderen](https://inbo.github.io/niche_vlaanderen/) | -| Analyze data: indices | [LSVI](https://inbo.github.io/LSVI) | -| Publish | [INBOmd](https://inbomd.netlify.com/articles/introduction.html), [INBOtheme](https://inbo.github.io/INBOtheme/) | -| Miscellaneous (mixed content) | [inborutils](https://inbo.github.io/inborutils/) | +| Research stage | Related INBO packages | +| :-------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Study design | [grts](https://github.com/ThierryO/grts) | +| Retrieve data: environmental | [wateRinfo](https://ropensci.github.io/wateRinfo/), [pydov](https://pydov.readthedocs.io/), [watina](https://inbo.github.io/watina) | +| Retrieve data: biological | [pyinaturalist](https://github.com/inbo/pyinaturalist), [uvabits](https://inbo.github.io/uvabits/), [etn](https://inbo.github.io/etn/), [n2khab](https://inbo.github.io/n2khab), [forrescalc](https://github.com/inbo/forrescalc), | +| [inbodb](https://inbo.github.io/inbodb) | | +| Store data | [git2rdata](https://inbo.github.io/git2rdata/) | +| Validate data | [pywhip](https://inbo.github.io/pywhip/) | +| Analyze data: graphs | [inboggvegan](https://github.com/inbo/inboggvegan) | +| Analyze data: models | [inlatools](https://inlatools.netlify.com/), [multimput](https://github.com/inbo/multimput), [effectclass](https://effectclass.netlify.com), [niche\_vlaanderen](https://inbo.github.io/niche_vlaanderen/) | +| Analyze data: indices | [LSVI](https://inbo.github.io/LSVI) | +| Publish | [INBOmd](https://inbomd.netlify.com/articles/introduction.html), [INBOtheme](https://inbo.github.io/INBOtheme/) | +| Miscellaneous (mixed content) | [inborutils](https://inbo.github.io/inborutils/) | ## Study design @@ -104,6 +105,9 @@ The following table gives a **quick overview**: vegetation of the flemish forest reserve monitoring network, and functions to derive these data starting from individual tree measurements in Fieldmap. + - **R package \[inbodb\](()**: connect + to and retrieve data from databases on the INBO server, with + dedicated functions to query databases INBOVEG and Florabank. ## Store data From 93af023ca9f52921a1c1f6a2fb6219761011d23e Mon Sep 17 00:00:00 2001 From: ElsLommelen Date: Tue, 30 Jun 2020 12:19:32 +0200 Subject: [PATCH 04/12] Update content/articles/inbo_software/index.md Co-authored-by: Floris Vanderhaeghe --- content/articles/inbo_software/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/articles/inbo_software/index.md b/content/articles/inbo_software/index.md index f9ea3c857..05c1b6fe2 100644 --- a/content/articles/inbo_software/index.md +++ b/content/articles/inbo_software/index.md @@ -102,7 +102,7 @@ The following table gives a **quick overview**: habitats (*hab*) and regionally important biotopes (RIBs). - **R package [forrescalc](https://github.com/inbo/forrescalc)**: provides aggregated values on dendrometry, regeneration and - vegetation of the flemish forest reserve monitoring network, and + vegetation of the Flemish forest reserve monitoring network, and functions to derive these data starting from individual tree measurements in Fieldmap. - **R package \[inbodb\](()**: connect From e5ce034ea6d23ac63dcd8991c9fd8f56eb2b4d6a Mon Sep 17 00:00:00 2001 From: ElsLommelen Date: Tue, 30 Jun 2020 12:19:55 +0200 Subject: [PATCH 05/12] Update content/articles/inbo_software/index.Rmd Co-authored-by: Floris Vanderhaeghe --- content/articles/inbo_software/index.Rmd | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/content/articles/inbo_software/index.Rmd b/content/articles/inbo_software/index.Rmd index 05607b531..be5bcc722 100644 --- a/content/articles/inbo_software/index.Rmd +++ b/content/articles/inbo_software/index.Rmd @@ -73,7 +73,7 @@ provides functionality to access and process data from the [European Tracking Ne - **R package [n2khab](https://inbo.github.io/n2khab)**: provides preprocessed reference data _(including checklists, spatial habitat distribution, administrative & environmental layers, GRTSmaster_habitats)_ and preprocessing functions, supporting reproducible and transparent analyses on Flemish Natura 2000 (_n2k_) habitats (_hab_) and regionally important biotopes (RIBs). - **R package [forrescalc](https://github.com/inbo/forrescalc)**: -provides aggregated values on dendrometry, regeneration and vegetation of the flemish forest reserve monitoring network, and functions to derive these data starting from individual tree measurements in Fieldmap. +provides aggregated values on dendrometry, regeneration and vegetation of the Flemish forest reserve monitoring network, and functions to derive these data starting from individual tree measurements in Fieldmap. - **R package [inbodb]((https://inbo.github.io/inbodb)**: connect to and retrieve data from databases on the INBO server, with dedicated functions to query databases INBOVEG and Florabank. @@ -156,4 +156,3 @@ The functions are either out of scope or just not mature enough to include as ex - From 736c1add23d1044c7a678f8ac9afe23856f8833f Mon Sep 17 00:00:00 2001 From: ElsLommelen Date: Tue, 30 Jun 2020 19:02:59 +0200 Subject: [PATCH 06/12] Update content/articles/inbo_software/index.Rmd Co-authored-by: Floris Vanderhaeghe --- content/articles/inbo_software/index.Rmd | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/content/articles/inbo_software/index.Rmd b/content/articles/inbo_software/index.Rmd index be5bcc722..6ea144fa3 100644 --- a/content/articles/inbo_software/index.Rmd +++ b/content/articles/inbo_software/index.Rmd @@ -29,8 +29,7 @@ The following table gives a **quick overview**: |:-------------|:--------------------------------------| | Study design | [grts](https://github.com/ThierryO/grts) | | Retrieve data: environmental | [wateRinfo](https://ropensci.github.io/wateRinfo/), [pydov](https://pydov.readthedocs.io/), [watina](https://inbo.github.io/watina) | -| Retrieve data: biological | [pyinaturalist](https://github.com/inbo/pyinaturalist), [uvabits](https://inbo.github.io/uvabits/), [etn](https://inbo.github.io/etn/), [n2khab](https://inbo.github.io/n2khab), [forrescalc](https://github.com/inbo/forrescalc), -[inbodb](https://inbo.github.io/inbodb) | +| Retrieve data: biological | [pyinaturalist](https://github.com/inbo/pyinaturalist), [uvabits](https://inbo.github.io/uvabits/), [etn](https://inbo.github.io/etn/), [n2khab](https://inbo.github.io/n2khab), [forrescalc](https://github.com/inbo/forrescalc), [inbodb](https://inbo.github.io/inbodb) | | Store data | [git2rdata](https://inbo.github.io/git2rdata/) | | Validate data | [pywhip](https://inbo.github.io/pywhip/) | | Analyze data: graphs | [inboggvegan](https://github.com/inbo/inboggvegan) | @@ -155,4 +154,3 @@ The functions are either out of scope or just not mature enough to include as ex - From fa3404ffabf312d84345dd0dc636880588282162 Mon Sep 17 00:00:00 2001 From: ElsLommelen Date: Tue, 30 Jun 2020 19:06:44 +0200 Subject: [PATCH 07/12] delete Rmd file of inbo_software --- content/articles/inbo_software/index.Rmd | 156 ----------------------- 1 file changed, 156 deletions(-) delete mode 100644 content/articles/inbo_software/index.Rmd diff --git a/content/articles/inbo_software/index.Rmd b/content/articles/inbo_software/index.Rmd deleted file mode 100644 index 6ea144fa3..000000000 --- a/content/articles/inbo_software/index.Rmd +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: "Software by INBO: packages for environmentalists and ecologists!" -date: 2020-01-30 -csl: ../inbo.csl -bibliography: ../reproducible_research.bib -categories: ["development", "r", "statistics", "databases"] -tags: ["open science", "packages", "r", "python"] -output: - md_document: - preserve_yaml: true - variant: gfm -weight: 1 ---- - -At the Research Institute for Nature and Forest (INBO), we are eager to sustain, promote and develop open-source software that is relevant to biodiversity researchers! -This page lists **R and Python packages** which INBO developed or made a significant contribution to. -Several of these packages continue being developed. - -Please, feel invited to **try out** packages! -If you encounter a problem or if you have a suggestion, we encourage you to post an issue on the package's code repository. -You can also directly contribute improvements with a pull request. - -The package hyperlinks below refer to the package's **documentation website**, if available. -When there is no documentation website, often one or more **vignettes** are available within the package, describing the package's purpose and demonstrating its use. - -The following table gives a **quick overview**: - -| Research stage | Related INBO packages | -|:-------------|:--------------------------------------| -| Study design | [grts](https://github.com/ThierryO/grts) | -| Retrieve data: environmental | [wateRinfo](https://ropensci.github.io/wateRinfo/), [pydov](https://pydov.readthedocs.io/), [watina](https://inbo.github.io/watina) | -| Retrieve data: biological | [pyinaturalist](https://github.com/inbo/pyinaturalist), [uvabits](https://inbo.github.io/uvabits/), [etn](https://inbo.github.io/etn/), [n2khab](https://inbo.github.io/n2khab), [forrescalc](https://github.com/inbo/forrescalc), [inbodb](https://inbo.github.io/inbodb) | -| Store data | [git2rdata](https://inbo.github.io/git2rdata/) | -| Validate data | [pywhip](https://inbo.github.io/pywhip/) | -| Analyze data: graphs | [inboggvegan](https://github.com/inbo/inboggvegan) | -| Analyze data: models | [inlatools](https://inlatools.netlify.com/), [multimput](https://github.com/inbo/multimput), [effectclass](https://effectclass.netlify.com), [niche_vlaanderen](https://inbo.github.io/niche_vlaanderen/) | -| Analyze data: indices | [LSVI](https://inbo.github.io/LSVI) | -| Publish | [INBOmd](https://inbomd.netlify.com/articles/introduction.html), [INBOtheme](https://inbo.github.io/INBOtheme/) | -| Miscellaneous (mixed content) | [inborutils](https://inbo.github.io/inborutils/) | - - - -## Study design - -- **R package [grts](https://github.com/ThierryO/grts)**: draw a sample from a sampling frame with the Generalized Random Tessellation Stratified (GRTS) sampling strategy. - -## Retrieve data - -### Environmental data - -- **R package [wateRinfo](https://ropensci.github.io/wateRinfo/)**: -facilitates access to [waterinfo.be](https://www.waterinfo.be/), a website managed by the [Flanders Environment Agency (VMM)](https://en.vmm.be/) and [Flanders Hydraulics Research](https://www.waterbouwkundiglaboratorium.be/). -The website provides access to real-time water and weather related environmental variables for Flanders (Belgium), such as rainfall, air pressure, discharge, and water level. -The package provides functions to search for stations and variables, and download time series. -- **Python package [pydov](https://pydov.readthedocs.io/)**: -to query and download data from [Databank Ondergrond Vlaanderen (DOV)](https://www.dov.vlaanderen.be/). -DOV aggregates data about soil, subsoil and groundwater of Flanders and makes them publicly available. -Interactive and human-readable extraction and querying of the data is provided by a web application, whereas the focus of this package is to support machine-based extraction and conversion of the data. -- **R package [watina](https://inbo.github.io/watina)**: -provides functions to query and process data from the Watina database (mainly groundwater data). - -### Biological data - -- **Python package [pyinaturalist](https://github.com/inbo/pyinaturalist)**: -Python client for the iNaturalist APIs. -- **R package [uvabits](https://inbo.github.io/uvabits/)**: -provides an R interface to the [UvA-BiTS database](http://www.uva-bits.nl/), which stores bird movement data collected with UvA-BiTS GPS trackers. -The package provides functionality to download data and metadata, calculate some metrics, and load the data into a query-optimized SQLite database for local analysis. -It also allows to download the data in a format that can easily be uploaded to [Movebank](https://www.movebank.org/), a free online database for animal tracking data. -- **R package [etn](https://inbo.github.io/etn/)**: -provides functionality to access and process data from the [European Tracking Network (ETN)](http://www.lifewatch.be/etn/) database hosted by the Flanders Marine Institute (VLIZ) as part of the Flemish contribution to LifeWatch. -- **R package [n2khab](https://inbo.github.io/n2khab)**: -provides preprocessed reference data _(including checklists, spatial habitat distribution, administrative & environmental layers, GRTSmaster_habitats)_ and preprocessing functions, supporting reproducible and transparent analyses on Flemish Natura 2000 (_n2k_) habitats (_hab_) and regionally important biotopes (RIBs). -- **R package [forrescalc](https://github.com/inbo/forrescalc)**: -provides aggregated values on dendrometry, regeneration and vegetation of the Flemish forest reserve monitoring network, and functions to derive these data starting from individual tree measurements in Fieldmap. -- **R package [inbodb]((https://inbo.github.io/inbodb)**: -connect to and retrieve data from databases on the INBO server, with dedicated functions to query databases INBOVEG and Florabank. - -## Store data - -- **R package [git2rdata](https://inbo.github.io/git2rdata/)**: -an R package for writing and reading dataframes as plain text files. -Important information is stored in a metadata file, -which allows to maintain the classes of variables. -`git2rdata` is ideal for storing R dataframes as plain text files under version control, as it strives to minimize row based diffs between two consecutive commits. -The package is intended to facilitate a reproducible and traceable workflow. - -## Validate data - -- **Python package [pywhip](https://inbo.github.io/pywhip/)**: -a package to validate data against [whip specifications](https://github.com/inbo/whip), a human and machine-readable syntax to express specifications for data. - -## Analyze data - -### Make graphs - -- **R package [inboggvegan](https://github.com/inbo/inboggvegan)**: -provides R functions for multivariate plots. -More specifically, extended biplot and screeplot functionality is offered for the `vegan` package. - - -### Fit models and make model predictions - -- **R package [inlatools](https://inlatools.netlify.com/)**: -provides a set of functions which can be useful to diagnose [INLA models](http://www.r-inla.org/): -calculating Pearson residuals, -simulation based checks for over- or underdispersion, -simulation based checks for the distribution, -visualising the effect of the variance or precision on random effects -(random intercept, -first order random walk, -second order random walk). -The functions can be useful to choose sensible priors and diagnose the fitted model. -- **R package [multimput](https://github.com/inbo/multimput)**: -an R package that assists with analysing datasets with missing values using multiple imputation. -- **R package [effectclass](https://effectclass.netlify.com)**: -an R package to classify and visualize modelled effects by comparing their confidence interval with thresholds. -- **Python package [niche_vlaanderen](https://inbo.github.io/niche_vlaanderen/)**: -Python package to run the NICHE Vlaanderen model. -Based on calculated abiotic properties of the location, NICHE Vlaanderen determines whether certain vegetation types can develop. -An additional flooding module allows the user to test whether the predicted vegetations are compatible with a particular flooding regime. -The package is a redevelopment of an existing ArcGIS plugin in Python, without external non-open source dependencies. - - -### Calculate indices - -- **R package [LSVI](https://inbo.github.io/LSVI)**: -bundles a number of functions to support researchers in determining the local conservation status ('LSVI') of Natura 2000 habitats in Flanders. -Several functions retrieve the criteria and/or associated species lists for determining the LSVI. -A specific function allows to calculate the LSVI. -The package is written in Dutch. - - -## Publish your workflow and discuss your results - -- **R package [INBOmd](https://inbomd.netlify.com/articles/introduction.html)**: -provides several styles for `rmarkdown` files -and several templates to generate reports, presentations and posters. -The styles are based on the corporate identity of INBO and the Flemish government. -All templates are based on `bookdown`, which is an extension of `rmarkdown`. -`bookdown` is taylored towards writing books and technical documentation. -- **R package [INBOtheme](https://inbo.github.io/INBOtheme/)**: -contains `ggplot2` themes for INBO, the Flemish government and Elsevier journals. -The documentation website includes a set of example figures for each available theme. - - -## Last but _not least_: miscellaneous! - -- **R package [inborutils](https://inbo.github.io/inborutils/)**: provides a collection of useful R utilities and snippets that we consider recyclable for multiple projects. -The functions are either out of scope or just not mature enough to include as extensions to existing packages. - - - - - - From ff98912e91902eabf9bbdd99af6e1793ad2b6a91 Mon Sep 17 00:00:00 2001 From: ElsLommelen Date: Tue, 30 Jun 2020 19:13:12 +0200 Subject: [PATCH 08/12] re-insert accidentally moved package --- content/articles/inbo_software/index.md | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/content/articles/inbo_software/index.md b/content/articles/inbo_software/index.md index 05c1b6fe2..6cb3af64c 100644 --- a/content/articles/inbo_software/index.md +++ b/content/articles/inbo_software/index.md @@ -30,19 +30,18 @@ the package’s purpose and demonstrating its use. The following table gives a **quick overview**: -| Research stage | Related INBO packages | -| :-------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Study design | [grts](https://github.com/ThierryO/grts) | -| Retrieve data: environmental | [wateRinfo](https://ropensci.github.io/wateRinfo/), [pydov](https://pydov.readthedocs.io/), [watina](https://inbo.github.io/watina) | -| Retrieve data: biological | [pyinaturalist](https://github.com/inbo/pyinaturalist), [uvabits](https://inbo.github.io/uvabits/), [etn](https://inbo.github.io/etn/), [n2khab](https://inbo.github.io/n2khab), [forrescalc](https://github.com/inbo/forrescalc), | -| [inbodb](https://inbo.github.io/inbodb) | | -| Store data | [git2rdata](https://inbo.github.io/git2rdata/) | -| Validate data | [pywhip](https://inbo.github.io/pywhip/) | -| Analyze data: graphs | [inboggvegan](https://github.com/inbo/inboggvegan) | -| Analyze data: models | [inlatools](https://inlatools.netlify.com/), [multimput](https://github.com/inbo/multimput), [effectclass](https://effectclass.netlify.com), [niche\_vlaanderen](https://inbo.github.io/niche_vlaanderen/) | -| Analyze data: indices | [LSVI](https://inbo.github.io/LSVI) | -| Publish | [INBOmd](https://inbomd.netlify.com/articles/introduction.html), [INBOtheme](https://inbo.github.io/INBOtheme/) | -| Miscellaneous (mixed content) | [inborutils](https://inbo.github.io/inborutils/) | +| Research stage | Related INBO packages | +| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Study design | [grts](https://github.com/ThierryO/grts) | +| Retrieve data: environmental | [wateRinfo](https://ropensci.github.io/wateRinfo/), [pydov](https://pydov.readthedocs.io/), [watina](https://inbo.github.io/watina) | +| Retrieve data: biological | [pyinaturalist](https://github.com/inbo/pyinaturalist), [uvabits](https://inbo.github.io/uvabits/), [etn](https://inbo.github.io/etn/), [n2khab](https://inbo.github.io/n2khab), [forrescalc](https://github.com/inbo/forrescalc), [inbodb](https://inbo.github.io/inbodb) | +| Store data | [git2rdata](https://inbo.github.io/git2rdata/) | +| Validate data | [pywhip](https://inbo.github.io/pywhip/) | +| Analyze data: graphs | [inboggvegan](https://github.com/inbo/inboggvegan) | +| Analyze data: models | [inlatools](https://inlatools.netlify.com/), [multimput](https://github.com/inbo/multimput), [effectclass](https://effectclass.netlify.com), [niche\_vlaanderen](https://inbo.github.io/niche_vlaanderen/), [gwloggeR](https://dov-vlaanderen.github.io/groundwater-logger-validation/gwloggeR/docs/articles/gwloggeR.html) | +| Analyze data: indices | [LSVI](https://inbo.github.io/LSVI) | +| Publish | [INBOmd](https://inbomd.netlify.com/articles/introduction.html), [INBOtheme](https://inbo.github.io/INBOtheme/) | +| Miscellaneous (mixed content) | [inborutils](https://inbo.github.io/inborutils/) | ## Study design From c56149eb00f586126b49d18ae963d27a4a4fbf51 Mon Sep 17 00:00:00 2001 From: ElsLommelen Date: Tue, 30 Jun 2020 19:19:41 +0200 Subject: [PATCH 09/12] move inbodb to new topic 'retrieve data: general' and generalise on databases --- content/articles/inbo_software/index.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/content/articles/inbo_software/index.md b/content/articles/inbo_software/index.md index 6cb3af64c..d27ffc196 100644 --- a/content/articles/inbo_software/index.md +++ b/content/articles/inbo_software/index.md @@ -33,8 +33,9 @@ The following table gives a **quick overview**: | Research stage | Related INBO packages | | :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Study design | [grts](https://github.com/ThierryO/grts) | +| Retrieve data: general | [inbodb](https://inbo.github.io/inbodb) | | Retrieve data: environmental | [wateRinfo](https://ropensci.github.io/wateRinfo/), [pydov](https://pydov.readthedocs.io/), [watina](https://inbo.github.io/watina) | -| Retrieve data: biological | [pyinaturalist](https://github.com/inbo/pyinaturalist), [uvabits](https://inbo.github.io/uvabits/), [etn](https://inbo.github.io/etn/), [n2khab](https://inbo.github.io/n2khab), [forrescalc](https://github.com/inbo/forrescalc), [inbodb](https://inbo.github.io/inbodb) | +| Retrieve data: biological | [pyinaturalist](https://github.com/inbo/pyinaturalist), [uvabits](https://inbo.github.io/uvabits/), [etn](https://inbo.github.io/etn/), [n2khab](https://inbo.github.io/n2khab), [forrescalc](https://github.com/inbo/forrescalc) | | Store data | [git2rdata](https://inbo.github.io/git2rdata/) | | Validate data | [pywhip](https://inbo.github.io/pywhip/) | | Analyze data: graphs | [inboggvegan](https://github.com/inbo/inboggvegan) | @@ -51,6 +52,13 @@ The following table gives a **quick overview**: ## Retrieve data +### General data + + - **R package \[inbodb\](()**: connect + to and retrieve data from databases on the INBO server, with + dedicated functions to query some of these databases. + + ### Environmental data - **R package [wateRinfo](https://ropensci.github.io/wateRinfo/)**: @@ -104,9 +112,6 @@ The following table gives a **quick overview**: vegetation of the Flemish forest reserve monitoring network, and functions to derive these data starting from individual tree measurements in Fieldmap. - - **R package \[inbodb\](()**: connect - to and retrieve data from databases on the INBO server, with - dedicated functions to query databases INBOVEG and Florabank. ## Store data From 310d673160d4752843427dd7ef1bde21df1eaf5d Mon Sep 17 00:00:00 2001 From: ElsLommelen Date: Wed, 1 Jul 2020 10:05:08 +0200 Subject: [PATCH 10/12] Update content/articles/inbo_software/index.md Co-authored-by: Floris Vanderhaeghe --- content/articles/inbo_software/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/articles/inbo_software/index.md b/content/articles/inbo_software/index.md index d27ffc196..cd6d7ba09 100644 --- a/content/articles/inbo_software/index.md +++ b/content/articles/inbo_software/index.md @@ -52,7 +52,7 @@ The following table gives a **quick overview**: ## Retrieve data -### General data +### General - **R package \[inbodb\](()**: connect to and retrieve data from databases on the INBO server, with From 3bc099912447b8ae83986a077fcef0f05accd986 Mon Sep 17 00:00:00 2001 From: ElsLommelen Date: Wed, 1 Jul 2020 10:10:59 +0200 Subject: [PATCH 11/12] remove spaces in table --- content/articles/inbo_software/index.md | 26 ++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/content/articles/inbo_software/index.md b/content/articles/inbo_software/index.md index cd6d7ba09..b96af71b5 100644 --- a/content/articles/inbo_software/index.md +++ b/content/articles/inbo_software/index.md @@ -30,19 +30,19 @@ the package’s purpose and demonstrating its use. The following table gives a **quick overview**: -| Research stage | Related INBO packages | -| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Study design | [grts](https://github.com/ThierryO/grts) | -| Retrieve data: general | [inbodb](https://inbo.github.io/inbodb) | -| Retrieve data: environmental | [wateRinfo](https://ropensci.github.io/wateRinfo/), [pydov](https://pydov.readthedocs.io/), [watina](https://inbo.github.io/watina) | -| Retrieve data: biological | [pyinaturalist](https://github.com/inbo/pyinaturalist), [uvabits](https://inbo.github.io/uvabits/), [etn](https://inbo.github.io/etn/), [n2khab](https://inbo.github.io/n2khab), [forrescalc](https://github.com/inbo/forrescalc) | -| Store data | [git2rdata](https://inbo.github.io/git2rdata/) | -| Validate data | [pywhip](https://inbo.github.io/pywhip/) | -| Analyze data: graphs | [inboggvegan](https://github.com/inbo/inboggvegan) | -| Analyze data: models | [inlatools](https://inlatools.netlify.com/), [multimput](https://github.com/inbo/multimput), [effectclass](https://effectclass.netlify.com), [niche\_vlaanderen](https://inbo.github.io/niche_vlaanderen/), [gwloggeR](https://dov-vlaanderen.github.io/groundwater-logger-validation/gwloggeR/docs/articles/gwloggeR.html) | -| Analyze data: indices | [LSVI](https://inbo.github.io/LSVI) | -| Publish | [INBOmd](https://inbomd.netlify.com/articles/introduction.html), [INBOtheme](https://inbo.github.io/INBOtheme/) | -| Miscellaneous (mixed content) | [inborutils](https://inbo.github.io/inborutils/) | +| Research stage | Related INBO packages | +| :------------- | :-------------------- | +| Study design | [grts](https://github.com/ThierryO/grts) | +| Retrieve data: general | [inbodb](https://inbo.github.io/inbodb) | +| Retrieve data: environmental | [wateRinfo](https://ropensci.github.io/wateRinfo/), [pydov](https://pydov.readthedocs.io/), [watina](https://inbo.github.io/watina) | +| Retrieve data: biological | [pyinaturalist](https://github.com/inbo/pyinaturalist), [uvabits](https://inbo.github.io/uvabits/), [etn](https://inbo.github.io/etn/), [n2khab](https://inbo.github.io/n2khab), [forrescalc](https://github.com/inbo/forrescalc) | +| Store data | [git2rdata](https://inbo.github.io/git2rdata/) | +| Validate data | [pywhip](https://inbo.github.io/pywhip/) | +| Analyze data: graphs | [inboggvegan](https://github.com/inbo/inboggvegan) | +| Analyze data: models | [inlatools](https://inlatools.netlify.com/), [multimput](https://github.com/inbo/multimput), [effectclass](https://effectclass.netlify.com), [niche\_vlaanderen](https://inbo.github.io/niche_vlaanderen/), [gwloggeR](https://dov-vlaanderen.github.io/groundwater-logger-validation/gwloggeR/docs/articles/gwloggeR.html) | +| Analyze data: indices | [LSVI](https://inbo.github.io/LSVI) | +| Publish | [INBOmd](https://inbomd.netlify.com/articles/introduction.html), [INBOtheme](https://inbo.github.io/INBOtheme/) | +| Miscellaneous (mixed content) | [inborutils](https://inbo.github.io/inborutils/) | ## Study design From 0cfe04d8f42294e935192a9d4565ac871feb7eda Mon Sep 17 00:00:00 2001 From: ElsLommelen Date: Wed, 1 Jul 2020 10:12:28 +0200 Subject: [PATCH 12/12] remove superfluous line --- content/articles/inbo_software/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/content/articles/inbo_software/index.md b/content/articles/inbo_software/index.md index b96af71b5..04991a128 100644 --- a/content/articles/inbo_software/index.md +++ b/content/articles/inbo_software/index.md @@ -58,7 +58,6 @@ The following table gives a **quick overview**: to and retrieve data from databases on the INBO server, with dedicated functions to query some of these databases. - ### Environmental data - **R package [wateRinfo](https://ropensci.github.io/wateRinfo/)**: