Skip to content
Merged
11 changes: 11 additions & 0 deletions .zenodo.json
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,17 @@
"email": "florian.vanhecke@inbo.be",
"orcid": "0009-0004-3499-2279",
"affiliation": "Instituut voor Natuur- en Bosonderzoek (INBO)"
},
{
"name": {
"given": "Anouk",
"family": "Ollevier"
},
"type": "Researcher",
"email": "anouk.ollevier@inbo.be",
"orcid": "0000-0003-2758-4723",
"affiliation": "Instituut voor Natuur- en Bosonderzoek (INBO)",
"corresponding": true
}
]
}
7 changes: 7 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
### First version of protocol: sop-040-nl

- Title: Abundantie- en oppervlaktebepaling van groepsfoto’s met ongewervelden in ImageJ
- Published on: 2025-12-02
- Version number: 2025.04
- Link to this version: [sop-040-nl version 2025.04](2025.04/index.html)

### First version of protocol: sfp-408-nl

- Title: Veldprotocol LSVI stilstaande wateren
Expand Down
31 changes: 31 additions & 0 deletions source/sop/sop_040_nl_imagej_ongewervelden/.zenodo.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"description": "<p>Binnen het Procesbeheerproject [1] worden in elk subplot twee keer per jaar stalen van ongewervelden verzameld: één keer in mei-juni en één keer in augustus-september. In het labo worden de ongewervelden via triage uit het strooisel gescheiden en vervolgens per taxonomische groep gesorteerd. Met dit materiaal worden (a) groepsfoto’s gemaakt, waarop per taxonomische groep het aantal individuen en het oppervlak wordt bepaald in ImageJ (zie hiervoor deze SOP), en (b) de exemplaren gedetermineerd en ingevoerd in waarnemingen.be.<\/p>",
"title": "Abundantie- en oppervlaktebepaling van groepsfoto’s met ongewervelden in ImageJ.",
"upload_type": "publication",
"access_right": "open",
"license": "CC-BY-4.0",
"keywords": [
"imagej; beeldverwerking"
],
"publisher": "Instituut voor Natuur- en Bosonderzoek (INBO)",
"contributors": [
{
"name": "Ollevier, Anouk",
"affiliation": "Instituut voor Natuur- en Bosonderzoek (INBO)",
"orcid": "0000-0003-2758-4723",
"type": "contactperson"
}
],
"creators": [
{
"name": "Ollevier, Anouk",
"affiliation": "Instituut voor Natuur- en Bosonderzoek (INBO)",
"orcid": "0000-0003-2758-4723"
}
],
"communities": [
{
"identifier": "inbo"
}
]
}
49 changes: 49 additions & 0 deletions source/sop/sop_040_nl_imagej_ongewervelden/01_afhankelijkheden.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Afhankelijkheden

```{=html}
<!--
Hier niets invullen.
Indien er afhankelijkheden zijn deze invullen in de yaml sectie van `index.Rmd`
-->
```
```{r dependencies}
empty_table <- tibble(
protocol_code = character(),
version_number = character(),
params = character(),
appendix = logical()
) %>%
add_row() %>%
rename(
`Protocolcode` = protocol_code,
`Versienummer` = version_number,
`Opgenomen als subprotocol` = appendix
) %>%
pander::pander(split.tables = Inf)

if (exists("params")) {
if (!is.null(params$dependencies)) {
transpose(params$dependencies) %>%
as_tibble() %>%
mutate(protocol_code = as.character(protocol_code),
version_number = as.character(version_number),
params = as.character(params),
version_number = ifelse(params == "NA",
paste0("[", version_number, "](../",
version_number, "/", "index.html)"),
version_number),
appendix = as.logical(appendix)) %>%
rename(
`Protocolcode` = protocol_code,
`Versienummer` = version_number,
`Opgenomen als subprotocol` = appendix
) %>%
pander::pander(split.tables = Inf)
} else {
empty_table
}
} else {
empty_table
}
rm(empty_table)
```
18 changes: 18 additions & 0 deletions source/sop/sop_040_nl_imagej_ongewervelden/02_onderwerp.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Onderwerp

```{=html}
<!--
Doelstelling en toepassingsgebied
Doelstelling: omschrijving in woorden waarvoor het protocol dient.
Voorbeelden wat er met de gegevens kan gedaan worden.
Probeer de doelstelling zo veel mogelijk generiek te beschrijven en vermijd projectspecifieke doelstellingen.
Toepassingsgebied: bespreek hier onder welke condities het protocol kan gebruikt worden.
-->
```

<!-- description: start -->

Binnen het Procesbeheerproject [1] worden in elk subplot twee keer per jaar stalen van ongewervelden verzameld: één keer in mei-juni en één keer in augustus-september.
In het labo worden de ongewervelden via triage uit het strooisel gescheiden en vervolgens per taxonomische groep gesorteerd.
Met dit materiaal worden (a) groepsfoto’s gemaakt, waarop per taxonomische groep het aantal individuen en het oppervlak wordt bepaald in ImageJ (zie hiervoor deze SOP), en (b) de exemplaren gedetermineerd en ingevoerd in waarnemingen.be.
<!-- description: end -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Definities en afkortingen

```{=html}
<!--
Definities van begrippen en afkortingen die noodzakelijk zijn om dit document te begrijpen en het protocol op een gepaste manier te kunnen uitvoeren.
-->
```

N.v.t.

11 changes: 11 additions & 0 deletions source/sop/sop_040_nl_imagej_ongewervelden/04_competenties.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Vereiste competenties en opleidingen

```{=html}
<!--
Omschrijving van de basiskennis en vaardigheden, die de gebruiker van het protocol moet hebben om het protocol op een gepaste manier te kunnen uitvoeren.
Eventueel kan er verwezen worden naar bepaalde opleidingen.
-->
```

N.v.t.

11 changes: 11 additions & 0 deletions source/sop/sop_040_nl_imagej_ongewervelden/05_proces.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Proces

```{=html}
<!-- schematische voorstelling van het proces
gebruik bijvoorbeeld `draw.io` en exporteer als png
of maak het schema met een R package zoals `visNetwork`
-->
```

N.v.t.

93 changes: 93 additions & 0 deletions source/sop/sop_040_nl_imagej_ongewervelden/06_werkwijze.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Werkwijze

```{=html}
<!--
Gedetailleerde omschrijving van alle stappen die doorlopen moeten worden om het protocol uit te voeren.
Deze stappen staan schematisch weergegeven in het processchema.
Subtitels gebruiken om elke stap te omschrijven.
-->
```

## Openen van de foto

Open ImageJ [2]

Laad de groepsfoto in via File \> Open

De groepsfoto’s bevinden zich in de map: G:\\ Gedeelde drives\\ Procesbeheer\\ PB11_Plotbemonstering\\ PB_Plot_Invertebraten\\ FOTO_SubPlot_Invertebraten\\ Groepsfoto

## Schaal instellen

Gebruik de Straight line tool en trek een lijn tussen de twee aangeduide referentiepunten.
In het labo werden de punten zo geplaatst dat ze op een afstand van 50 of 150 mm van elkaar liggen.
Als de punten in een vierkant liggen, zijn beide zijden 150 mm lang.
Als ze een balk vormen, dan is de korte zijde 50 mm en de lange zijde 150 mm.

Klik vervolgens op Analyze \> Set Scale.
De waarde in pixels verschijnt automatisch.
Vul bij Known distance 5 of 15 in, afhankelijk van de werkelijke afstand, en noteer bij Unit of length “cm”.

Klik op OK.

## Threshold instellen

Klik op Image \> Adjust \> Color Threshold.

Pas alleen de twee waarden onder Brightness aan: zet de eerste waarde op 0 en kies voor de tweede een waarde tussen 160 en 220.
De bedoeling is dat de organismen duidelijk rood gemarkeerd zijn, zonder dat de achtergrond te sterk meekleurt.
Een paar rode puntjes in de achtergrond zijn geen probleem, want die kunnen later worden uitgefilterd.

## Analyse per taxonomische groep

Groepeer en selecteer de organismen van één bepaalde taxonomische groep via de polygon tool.
Trek een polygon rondom de groep.

Klik op Analyze \> Analyze particles

Om ervoor te zorgen dat de kleine rode spikkels op de achtergrond niet worden mee geanalyseerd stel je Size (cm\^2) in op ‘0.015-Infinity’.
Dit zorgt ervoor dat objecten kleiner dan 0.015 cm² er worden uit gefilterd.

Kies bij Show voor Overlay Masks, zodat de geselecteerde organismen na de analyse zichtbaar en genummerd zijn.

Klik op OK.\

(ref:afbeelding1) Analyze Particles scherm

```{r afbeelding1, fig.cap="(ref:afbeelding1)", out.width="33%"}
knitr::include_graphics(file.path(path_to_protocol, "media/Afbeelding1.png"))
```

Via Analyze Particles worden de objecten – hier dus de organismen – automatisch geteld en gemeten (o.a. oppervlakte) (zie figuur \@ref(fig:afbeelding1)).
De resultaten verschijnen in twee vensters: Results, waarin de metingen per individueel object binnen de polygon worden weergegeven, en Summary, dat een samenvatting toont van alle metingen voor de geselecteerde groep.

## Opslaan van resultaten

Sla zowel het bestand Summary als Results op.
Gebruik daarbij een vaste naamgeving:

*foto-analyse-typeoutput-subplotcode-diergroep-datum(YYYY-MM-DD)*

*Bijvoorbeeld: foto-analyse-summary-dwhp-03c-kevers-2022-06-01*

```{r}
df <- data.frame(
Onderdeel = c("foto-analyse", "typeoutput", "subplotcode", "diergroep", "datum (YYYY-MM-DD)"),
Omschrijving = c(
"Vast voorvoegsel, zodat alle bestanden van dezelfde analyse makkelijk terug te vinden zijn.",
"Geeft aan welk type bestand het is: summary of results.",
"De code die verwijst naar de subplot.",
"De onderzochte diergroep.",
"De datum van staalname (dus niet de datum van de analyse in ImageJ)."
),
Waarde = c("foto-analyse", "summary", "dwhp-03c", "kevers, wantsen, spinnen, ...", "2022-06-01"),
stringsAsFactors = FALSE
)

pander(df, caption = add_label("Overzicht naamgeving"), split.tables = Inf)

```

## Herhalen

Voer stap 4 en 5 opnieuw uit voor elke taxonomische groep die aanwezig is op de groepsfoto.
Zorg ervoor dat alle resultaten op dezelfde manier benoemd en opgeslagen worden.
10 changes: 10 additions & 0 deletions source/sop/sop_040_nl_imagej_ongewervelden/07_veiligheid.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Veiligheid

```{=html}
<!--
Alle aandachtspunten in verband met veilig werken.
-->
```

N.v.t.

13 changes: 13 additions & 0 deletions source/sop/sop_040_nl_imagej_ongewervelden/08_referenties.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Referenties {.unnumbered}

[1] Instituut voor Natuur- en Bosonderzoek.
(z.d.).
Doel.
Procesbeheer INBO.
<https://sites.google.com/inbo.be/procesbeheer/doel>

[2] Schneider, C. A., Rasband, W. S., & Eliceiri, K. W.
(2012).
NIH Image to ImageJ: 25 years of image analysis.
Nature Methods, 9(7), 671–675.
<doi:10.1038/nmeth.2089>
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# (APPENDIX) Bijlagen {.unnumbered}
21 changes: 21 additions & 0 deletions source/sop/sop_040_nl_imagej_ongewervelden/10_subprotocols.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
```{r, results="asis"}
if (exists("params")) {
if (!is.null(params$dependencies)) {
mdfiles <- paste0(map_chr(params$dependencies, "protocol_code"),
"-",
map_chr(params$dependencies, "version_number"),
".md")
child_docs <- file.path(map_chr(params$dependencies, "version_number"),
mdfiles)

child_docs <- child_docs[map_lgl(params$dependencies, "appendix")]

if (length(child_docs) > 0) {
res <- map(child_docs, knit_child, quiet = TRUE)
cat(
c("# (PART) Subprotocols {.unnumbered}", "", unlist(res)), sep = "\n"
)
}
}
}
```
Loading