Skip to content

Commit

Permalink
Merge pull request #27 from inbo/check-final-data
Browse files Browse the repository at this point in the history
setup final data checks
  • Loading branch information
wlangera authored Aug 8, 2024
2 parents ffceffa + cfc5672 commit 61734ea
Show file tree
Hide file tree
Showing 3 changed files with 120 additions and 11 deletions.
5 changes: 5 additions & 0 deletions inst/nl_be.dic
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
Akkervogelgemeenschappen
Amersfoord
Avimap
Avimap-versie
BO's
BSCX00
Bosonderzoek
Expand Down Expand Up @@ -44,6 +45,7 @@ Langeraert
MAS-data
MBAG
Matkop
NOVN00
Natuur-
OL
OLA
Expand All @@ -65,6 +67,7 @@ SBP’s
SOVON
Sovon
Surface
Telpunt-
Telrondes
Terrain
Union
Expand Down Expand Up @@ -135,6 +138,7 @@ multipolygon
names
occurrence
openness
opvalllende
perceelsgrootte
perimeters.gpkg
periods
Expand Down Expand Up @@ -188,6 +192,7 @@ version
viewshed
visibility
vlaanderen
waarneminglocaties
wikipedia
within
x-
Expand Down
120 changes: 112 additions & 8 deletions source/markdown/data_controle_2024.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,13 @@ In deze markdown controleren we ...

We doen dit in dit rapport voor de data van 2018-2024.

# Data preparatie pipeline
# Controle data preparatie pipeline {#controle-pipeline}
## Amersfoord naar Lambert coördinaten (crs_pipeline)

In de eerste stap worden Amersfoord coördinaten naar Lambert coördinaten omgezet.
Dit gebeurt via een functie die op verschillende datasets goed getest is.

## Selectie punten MBAG steekproefkader (select_sampled_points)
## Selectie punten MBAG steekproefkader (select_sampled_points) {#steekproefkader}

In de tweede stap selecteren we de punten uit de totale dataset die tot het MBAG steekproefkader behoren.
Dit gebeurt via een "inner join" wat wil zeggen dat we kunnen nagaan of telpunten uit het steekproefkader niet bezocht zijn (bewust of onbewust).
Expand Down Expand Up @@ -125,7 +125,7 @@ Notities manuele controle Johannes:

- Pl_45612.2: OK geen privé weg maar langs bedrijf

## Selecteer data binnen de telperiodes (select_time_periods)
## Selecteer data binnen de telperiodes (select_time_periods) {#time-periods}

We selecteren data binnen de correcte telperiodes.
Er zijn 4 telrondes:
Expand Down Expand Up @@ -558,8 +558,9 @@ leaflet_map
```

Het ziet ernaar uit dat Pl_49572 dezelfde naam heeft voor 2 locaties.
In plaats van: Pl_25053.16 (x: 50279.09, y: 210998)
In plaats van: Pl_25053.16 (x: 50279.09, y: 210998).
Deze afstanden zijn dus wel ok, maar het label van het telpunt moet aangepast worden.
De afwezigheid van dit telpunt werd opgemerkt in Subsectie \@ref(steekproefkader).

**Oostelijke leemstreek**

Expand Down Expand Up @@ -927,7 +928,8 @@ outside_observations_new %>%
```

Het ziet ernaar uit dat Pl_49572 dezelfde naam heeft voor 2 locaties.
In plaats van: Pl_25053.16 (x: 50279.09, y: 210998)
In plaats van: Pl_25053.16 (x: 50279.09, y: 210998).
De afwezigheid van dit telpunt werd opgemerkt in Subsectie \@ref(steekproefkader).

**Oostelijke leemstreek**

Expand Down Expand Up @@ -1263,7 +1265,7 @@ roofvogels_f()
mas_data_full <- tar_read("mas_data_full", store = targets_store)
```

Zijn alle punten zijn nog altijd aanwezig?
Zijn alle telpunten zijn nog altijd aanwezig?

```{r}
# Show number of locations per stratum
Expand All @@ -1282,10 +1284,112 @@ Ja.

# Controle finale dataset

...
Nadat we de pipeline hebben doorlopen bekomen we de finale dataset.
Ook hierop doen we enkele controlestappen.
Zijn alle soorten correct (bv. Blauwe Pauw i.p.v. Blauwe Reiger)? Zijn er opvallend veel individuen opgegeven (bv. 300 i.p.v. 30)? ...

```{r}
mas_data_clean <- tar_read("mas_data_clean", store = targets_store)
```

## Telpunt- en waarneminglocaties

Zie Sectie \@ref(controle-pipeline).

## Timing observaties

De data bevatten geen info over precieze tijdstippen van tellingen, enkel datums.
De datums werden gecontroleerd in Subsectie \@ref(time-periods).

## Aantal individuen

In sommige gevallen worden meer dan 50 individuen gezien.

```{r}
mas_data_clean %>%
st_drop_geometry() %>%
filter(aantal >= 50) %>%
count(aantal, name = "aantal keer in dataset") %>%
rename("aantal vogels" = aantal) %>%
kable()
```

Een opvalllende is ook een uitschieter van 3000 individuen.
We zien dat de meeste waarnemingen wel gaan over soorten die in groep voorkomen, zoals Spreeuw, Grauwe Gans, Roek, Houtduif ...

```{r}
mas_data_clean %>%
st_drop_geometry() %>%
select(aantal, naam, plotnaam, waarnemer, datum) %>%
filter(aantal >= 50) %>%
arrange(aantal) %>%
kable()
```

We schrijven deze waarnemingen weg zodat ze toch gecontroleerd kunnen worden.

```{r}
mas_data_clean %>%
filter(aantal >= 50) %>%
arrange(aantal) %>%
write_csv(file.path(mbag_dir, "output", "data_controle",
"waarnemingen_met_hoge_aantallen.csv"))
```

> zie werkwijze pilootproject
## Soortnamen

De volgende soorten werden gezien.
Deze lijst moet gecontroleerd worden op vreemde namen die mogelijks fout zijn.

```{r}
mas_data_clean %>%
st_drop_geometry() %>%
count(naam, name = "aantal waarnemingen") %>%
arrange(naam) %>%
kable()
```

## Broedcodes

Broedcodes zijn ook belangrijk voor verdere data analyse.

Communicatie Simon Desmet:

*In de Avimap-versie voor Android kan een teller enkel het aantal wijzigen als de vogel broedcode 0 krijgt, maar met een iPhone is dat wel mogelijk bij vogels die met een hogere broedcode dan 0 ingevoerd werden. Sommige tellers hebben dit blijkbaar effectief gedaan, hoewel wij op voorhand gevraagd hadden dit niet te doen.*

Het is echter moeilijk om deze te controleren.
Wel kunnen we de aantallen visualiseren.

```{r}
mas_data_clean %>%
st_drop_geometry() %>%
count(wrntype, wrntype_omschrijving, name = "n_obs") %>%
rename(
"broedcode" = wrntype,
"omschrijving" = wrntype_omschrijving,
) %>%
kable()
```

**Broedcode 1-5**

Er is inderdaad een aantal keer hogere aantallen dan 1 ingevoerd bij broedcodes 1-5.

```{r}
mas_data_clean %>%
st_drop_geometry() %>%
filter(aantal > 1,
wrntype > 0) %>%
count(wrntype, aantal, name = "aantal keer in dataset") %>%
rename(
"broedcode" = "wrntype",
"aantal vogels" = aantal) %>%
kable()
```

# Controle data publicatie

De finale dataset wordt verder in de pipeline klaar gemaakt voor publicatie op GBIF.
We controleren deze stappen voor data publicatie.

...
6 changes: 3 additions & 3 deletions source/targets/data_preparation/_targets/meta/meta
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name|type|data|command|depend|seed|path|time|size|bytes|format|repository|iteration|parent|children|seconds|warnings|error
.Random.seed|object|3aa74d6d6c528f99|||||||||||||||
.Random.seed|object|6c87693f442ee2d9|||||||||||||||
add_predator_variable|pattern|30289b49cf6fe61b|7f80da6da30be403||-1919973047||||1047848|qs|local|list||add_predator_variable_80e9cadf25bbe03f*add_predator_variable_c431a571df92f158*add_predator_variable_83ebbeb707d6d411|0.1||
add_predator_variable_39059f3c53f47f4b|branch|6c937055c3fcd832|7f80da6da30be403|dbbd857a814196a3|-1128578533||t19942.3123521215s|45dd9cbb207ba273|2658580|qs|local|list|add_predator_variable||0.14||
add_predator_variable_80e9cadf25bbe03f|branch|b92f234cb6478d2c|7f80da6da30be403|c422b74708b01902|1371437452||t19943.5274358193s|29baaba1feb1aab7|1047848|qs|local|list|add_predator_variable||0.1||
Expand Down Expand Up @@ -34,14 +34,14 @@ mas_counts_sovon_files_6733f8687ec63581|branch|831977f95150d0f5|d2fc191cb33d8683
mas_counts_sovon_files_9614b5c06a1d9488|branch|e2ce90957c9dbd3b|d2fc191cb33d8683|2c530c1562a7fbd1|1078798271|C:/R/git_repositories/mbag-mas/source/targets/data_preparation/data/2025/20240805_qgis_export_sovon_wfs_2025.geojson|t19940.5103537778s|149c11230d07a1dd|50027389|file|local|vector|mas_counts_sovon_files||0||
mas_counts_sovon_files_efd70fac45d19b0d|branch|cf87eeaff24d23bb|d2fc191cb33d8683|2c530c1562a7fbd1|570686772|C:/R/git_repositories/mbag-mas/source/targets/data_preparation/data/2018_2022/20240424_qgis_export_sovon_wfs_2018_2022.geojson|t19837.3739489539s|58109b1a3ec8817b|32800565|file|local|vector|mas_counts_sovon_files||0||
mas_counts_sovon_files_files|stem|cb946689d55a2995|5c0c70d7920d11b4|2c530c1562a7fbd1|1663214924||t19940.6205023349s|0ce3c220c282aef6|192|rds|local|list||mas_counts_sovon_files_files_6b553758911bce46*mas_counts_sovon_files_files_2572d1be005a0c97*mas_counts_sovon_files_files_9db9b91e29d40fdc|0||
mas_data_clean|stem|598f4cbbb353f9c0|3fc9eef94244aa1d|403f071dfee77c38|-1942276229||t19943.5274495189s|ad8619538621a08f|4860642|qs|local|vector|||0.1||
mas_data_clean|stem|598f4cbbb353f9c0|3fc9eef94244aa1d|3a42a738db7dea10|-1942276229||t19943.6205262704s|ad8619538621a08f|4860642|qs|local|vector|||0.19||
mas_data_full|stem|96353357f5e29289|1c0319408b035a8c|c266fcda50aedae6|693198966||t19943.5274426707s|7029a33f683a0c37|4865789|qs|local|vector|||0.21||
mbag_dir|object|6f7a62ceac79d40c|||||||||||||||
path_to_samples|function|13303b230b24fb97|||||||||||||||
paths_to_counts_sovon|function|a381ae222a6f3fde|||||||||||||||
predatoren_f|function|e0a123d0ad124cae|||||||||||||||
process_double_counted_data|function|54bad175e5754ed4|||||||||||||||
remove_columns|function|53a0573601bb96b9|||||||||||||||
remove_columns|function|55e5849d4f251e49|||||||||||||||
remove_double_counts|pattern|0696bbc27e60252c|b2201c6fccf902b4||-48525810||||4866325|qs|local|list||remove_double_counts_cb0a03f97a3c6452*remove_double_counts_f656ca7c8a8eeb02*remove_double_counts_71fab235372c4037|0.96||
remove_double_counts_102e9280bff012e1|branch|7bb61116bc369d64|b2201c6fccf902b4|7434c64cc290ddf2|-1812123624||t19940.6079538963s|8ac7492402bd138c|1035049|qs|local|list|remove_double_counts||0.26||
remove_double_counts_13d093d912db7c9f|branch|df098a646b0b7762|b2201c6fccf902b4|dfb1a792e43e1948|894457210||t19942.3123411777s|05dbc5a984531d60|2625670|qs|local|list|remove_double_counts||0.42||
Expand Down

0 comments on commit 61734ea

Please sign in to comment.