inbo / prius-radius

MIT License
0 stars 1 forks source link

Verspreidingskaartjes obv Occurrence cube #2

Closed SanderDevisscher closed 1 year ago

SanderDevisscher commented 2 years ago

https://zenodo.org/record/6341688#.YvC31HZByUk

@damianooldoni is it possible to update the occurrence cube ?

SanderDevisscher commented 2 years ago

@timadriaens plak je hier een voorbeeld van de manageability kaartjes?

SanderDevisscher commented 2 years ago

@bramdhondt @timadriaens een idee voor date cutoffs ?

SanderDevisscher commented 2 years ago

@timadriaens @bramdhondt op de EEA reference grid pagina vind ik het 1x1km (gebruikt voor de cube) en het 10x10km grid. Is dit voldoende of is het cruciaal om de 5x5km stap te voorzien ? In dat geval moet ik o.b.v. het 1x1km een 5x5km maken.

damianooldoni commented 2 years ago

@SanderDevisscher: yes, it is possible to update the cube. I was almost there. I have just to finalize it. I try to do it in the next days, I hope next week.

SanderDevisscher commented 2 years ago

@SanderDevisscher: yes, it is possible to update the cube. I was almost there. I have just to finalize it. I try to do it in the next days, I hope next week.

superb

bramdhondt commented 2 years ago

@SanderDevisscher @timadriaens - Sander, om op je vragen te antwoorden.

SanderDevisscher commented 2 years ago

https://www.eea.europa.eu/data-and-maps/data/eea-reference-grids-2/gis-files/belgium-shapefile/at_download/file

SanderDevisscher commented 2 years ago

https://zenodo.org/record/4299976/files/be_alientaxa_cube.csv?download=1

bramdhondt commented 2 years ago

@jrhillae (als trekker), @SanderDevisscher (als ondersteuning) -- Dag Jasmijn, gezien jouw beschikbaarheid (vanaf 4 juli) en het veldwerk van Sander, laat ik jou hier een doorstart maken.

De (eerste) drie grotere R-taken zijn (1) verspreidingskaartjes opmaken voor de PrIUS-soorten; (2) de TrIAS-GAM-methode toepassen op de PrIUS-soorten, (3) een climate matching uitvoeren. Dit issue behandelt het eerste.

De verspreidingskaartjes geven per soort voor (enkel) het Vlaamse Gewest de 1-op-1-km-rastercellen (EEA-raster) weer waarbinnen de soort sinds 1 januari 2015 is aangetroffen. We gebruiken de data van GBIF.

De soorten worden weergegeven in de main branch, data\input\prius_species_list.csv. Het zijn de GBIF-codes in dat bestand die als feitelijk vertrekpunt dienen. Het is de bedoeling dat voor elke Nederlandstalige naam in dat bestand één kaartje wordt opgemaakt. Immers zijn er meerdere GBIF-codes aan eenzelfde 'soort' gebonden. Dat zijn ofwel synoniemen (bv. Lespedeza cuneata en L. juncea) of verzamelsoorten (bv. de invasieve duizendknopen, een groep van drie soorten, bovendien elk met zijn eigen synoniem).

Soorten die nooit zijn waargenomen in die periode ('afwezige' soorten), behoeven geen verspreidingskaartje. Zij moeten wel als een lijst worden bijgehouden (ten behoeve van het rapport).

Bovendien zouden we graag die soorten in een lijstje krijgen die in sommige kalenderjaren wél, maar in andere niét zijn waargenomen (‘sporadische’ soorten). Dit vraagt allicht een aangepaste workflow.

Tenslotte willen we ook van elke soort weten welk aandeel van de bezette hokken binnen Speciale Beschermingszones vallen ("SBZ", i.e. het Natura2000-netwerk). Dat lijkt me een overlay, al zou je ook even kunnen kijken / navragen of dit niet ook één van de TrIAS-indicatoren is (Protected areas analysis). Ook relevant: het aandeel van hokken binnen SBZ dat bezet is door de soort.

Vormelijk zie ik (voorlopig) niet veel eisen. De titel is best de Nederlandstalige naam. De achtergrond kunnen de gemeentegrenzen zijn en/of de grotere waterlopen. De figuren krijgen een grootte / resolutie die gepast is voor publicatie in de soortenfiches van het PrIUS-rapport. Zie hoofdstuk 9 voor de inpasbaarheid.

Wat de verspreidingsdata betreft, laat ik je de keuze of je via de cube werkt, of niet. Dat is allicht aangewezen, maar ik ben daar minder mee vertrouwd (wél: Damiano, Sander). Hoe dan ook vind je binnen de branch een aanzet van een cube-gabaseerd script (cubeBased_spread_maps.Rmd, Sander), maar ook een niet-cube-gebaseerd script (alternative_spread_maps.Rmd, mezelf).

Ik laat jou en Sander zelf de commits formuleren.

jrhillae commented 1 year ago

@SanderDevisscher en @bramdhondt : Ok to work with the cube? As we said before, the only downside is that most recent data is not included. I think the last update of the cube occured in March.

bramdhondt commented 1 year ago

@jrhillae (@SanderDevisscher) : helemaal goed om met de cube te werken. De voordelen wegen door op de nadelen.

Ter info, ik ben vorige week zelf aan de slag gegaan met verspreidingskaartjes voor muntjak. Ik heb dat script van de fis-projecten repo opgeschoond, en alles naar sf omgezet (waar het voorheen in sp stond). Mocht je er inspiratie in vinden: https://github.com/inbo/fis-projecten/blob/278_Muntjak/Exoten/muntjak/scripts/Muntjak_verspreiding.Rmd

bramdhondt commented 1 year ago

@jrhillae -- De volgende soorten zijn louter marien, en hoeven in dit issue in feite niet worden behandeld: (1) Plotosus lineatus, (2) Rugulopteryx okamurae.

jrhillae commented 1 year ago

@bramdhondt , @SanderDevisscher : I am working in branch '2_verspreidings_kaartjes' in file CubeBased_spread_maps_jasmijn.R which is based on the script of Sander.

Please, let me know if you want me to change this. So far, everything is clear and the script of Sander works fine so no questions yet.

jrhillae commented 1 year ago

@bramdhondt : De Prius species list verschilt blijkbaar tss branch 2_verspreidingskaarjtes en de master. Vervang ik de soortenlijst op deze branch door de soortenlijst van de master?

Bedankt!

jrhillae commented 1 year ago

@SanderDevisscher : Voor dit onderdeel heb ik een laag nodig van SBZ, waar kan ik die vinden? Of overlapt dit met TrIAS?

Zie uitleg van Bram hierboven: "Tenslotte willen we ook van elke soort weten welk aandeel van de bezette hokken binnen Speciale Beschermingszones vallen ("SBZ", i.e. het Natura2000-netwerk). Dat lijkt me een overlay, al zou je ook even kunnen kijken / navragen of dit niet ook één van de TrIAS-indicatoren is (Protected areas analysis). Ook relevant: het aandeel van hokken binnen SBZ dat bezet is door de soort."

bramdhondt commented 1 year ago

@bramdhondt : De Prius species list verschilt blijkbaar tss branch 2_verspreidingskaarjtes en de master. Vervang ik de soortenlijst op deze branch door de soortenlijst van de master?

@jrhillae : inderdaad, je dient je te baseren op de PrIUS-soortenlijst van de master. Enkel daar wordt de meest up-to-date versie bijgehouden.

Let op: ik kwam er zonet met Sander op uit dat er nog wat verbeterwerk aan is. Dat wordt behandeld in een nog op te zetten issue (vannamiddag, door mij).

Concreet betekent dit voor jou: óf wachten om te runnen (tot bovengenoemde issue is gepusht); of voortwerken met provisionele data (pro forma) om dan later eens finaal te laten lopen.

bramdhondt commented 1 year ago

@jrhillae : de aanpassingen aan de PrIUS-soortenlijst zijn doorgevoerd op de master. Good to go!

bramdhondt commented 1 year ago

@jrhillae : nu we de kaart met de natuurbeheerplannen herontdekt hebben, zullen we er toch eens moeten over nadenken om de Natura2000-oefening (aandeel van areaal dat overlapt met gebied; aandeel gebied dat bezet is door soort) ook op deze laag uit te voeren.

De Natura2000-afbakening is een goed vertrekpunt voor de evaluatie van het belang van soorten in het Europees natuurbeleidskader (onze top-gebieden, maar met inbegrip van (landbouw)buffers). De natuurbeheerplannen-afbakening is een beter vertrekpunt voor de evaluatie van het belang van soorten voor de natuursector in zijn geheel (alle natuurgebieden, zonder buffer).

Als dit eenvoudig mee te nemen is in het script, zeker doen. Indien niet, later te bespreken.

jrhillae commented 1 year ago

@bramdhondt : First version of spread maps are available in https://github.com/inbo/prius/tree/2_verspreidings_kaartjes/data/output/spread_maps/. I will set resolution to dpi 200 and also add watercourses to the background of the figures. What dimensions would be best? I can als adapt this later on, if necessary. Remarks are welcome.

bramdhondt commented 1 year ago

@jrhillae : dat ziet er al goed uit!

Achtergrond: de waterlopen zijn maar voor een deel van de soorten relevant, dus ik kom op die keuze terug. Gezien we de nadruk leggen op het natuurbeleid, en daar ook cijfers over presenteren, is het misschien illustratiever om de gecombineerde (de unie van) habitat- en vogelrichtlijngebieden te gebruiken. Zie hieronder. In een licht, zacht groen, niet omrand.

Op deze link zie ik daar geen WFS'en van terug. (Opm. de "WFS (...) Natura 2000 Habitatkaart" is niet hetzelfde. Deze toont waar Natura 2000 habitat is herkend, maar dat kan ook buiten de afgebakende habitatrichtlijngebieden zijn). De kaarten circuleren wel op de INBO-schijven.

afbeelding

Denk je dat dit haalbaar is?

Ik twijfel nog of we voor (een deel van) de aquatische soorten misschien wél de waterlopen nemen als achtergrond. Ik begrijp dat dat onderscheid script-gewijs wel niet zo dankbaar is.

Formaat: Uiteindelijk dienen de figuren enkel voor druk. Breedte A4 (21 cm) minus marge (5 cm) geeft breedte van 16 cm.

bramdhondt commented 1 year ago

@jrhillae -- Ik voegde binnen deze branch in de input-map aqua_vs_terr.csv toe. Voor elke Nederlandstalige naam is aangegeven of dit een eerder aquatische (AQUA) of terrestrische (TERR) soort is. Bedoeling is dat het script voor de kaartjes daar een tweedeling kent: voor 'AQUA' is de achtergrond gelijk aan de waterlopen, voor 'TERR' de Natura2000-gebieden (kaart hierboven).

Je zult dus wel nog even moeten join'en op soortsnaam. Normaal zou dat geen problemen mogen geven (soortsnaam is overgenomen uit prius_species_list.csv). Maar let op: ik ontdekte wel dat er achter sommige namen per abuis een spatie staat.

Beschouw dit als experimenteel, want ik ben nog niet volledig overtuigd van de keuze voor de waterlopen als achtergrond. De ecologisch belangrijkste waterlopen zijn namelijk ook Natura2000, zodat het wel steek houdt bij dié ene keuze te blijven. Maar het zou toch goed zijn de beide opties in het script te hebben.

Daarenboven zou het goed zijn de provinciegrenzen te hebben (die sprak ik al eerder via WFS aan).

Dan denk ik dat we er zijn. Best eerst wat voorbeelden maken alvorens we het op alle soorten loslaten.

bramdhondt commented 1 year ago

@jrhillae -- Wat laatste input om de kaartjes af te werken.

Hieronder een render volgens huidig ontwerp van rapport ! Van zodra klaar, mag je een pull request zetten. Ik pik het van daaruit op.

afbeelding

bramdhondt commented 1 year ago

@jrhillae -- Wat de aanwezigheid van de soorten binnen Natura2000 betreft, stel ik het volgende voor. (I.t.t. eerder bericht, excuses. Laten we het op voortschrijdend inzicht houden.) Wat mij betreft kan dit binnen deze issue, of als nieuwe issue (deze issue dan of te sluiten op de kaartjes).

Ik zie 6 relevante variabelen per soort:

  1. Het percentage door de soort bezette hokken dat binnen habitatrichtlijngebied valt (of er gedeeltelijk mee overlapt).
  2. Het percentage door de soort bezette hokken dat binnen vogelrichtlijngebied valt (of er gedeeltelijk mee overlapt).
  3. Het percentage door de soort bezette hokken dat binnen Natura2000 valt (of er gedeeltelijk mee overlapt). (Natura2000 = unie van habitatrichtlijngebied en vogelrichtlijngebied.) (Doordat sommige locaties binnen beide vallen, is deze variabele niet zomaar de som van de vorige twee variabelen.)
  4. Het percentage van het habitatrichtlijngebied dat bezet is door de soort.
  5. Het percentage van het vogelrichtlijngebied dat bezet is door de soort.
  6. Het percentage van Natura2000 dat bezet is door de soort.

Bemerk dat voor variabelen 4-6 een kunstgreep nodig is: de kaart zal moeten gerasterd worden, volgens hetzelfde 1-km²-raster als van de cube. Van daaruit wordt dan bekeken hoeveel van die cellen ook bezet zijn door de soort. Het betekent dat we wat buiten de randjes kleuren, maar dat lijkt me verdedigbaar.

De variabelen worden best aangeleverd in een tabel (per soort, 6 kolommen voor 6 variabelen). We willen zeker ook eens variabelen 3 en 6 tegenover elkaar uit zetten, over de soorten heen. Dat kan interessant worden.

Indien mogelijk, graag tegen midden volgende week (ong. 10/08).

timadriaens commented 1 year ago

Die oefening is al gebeurd ikv TrIAS dus geen kunstgrepen nodig denk ik. Zie deze dataset op zenodo https://zenodo.org/record/3784227# dus de lijst van km hokken in n2000 is bekend.Yu063qRcIzY. Die groene achtergrond lijkt me ook niet het volledige n2000 te zijn? Persoonlijk denk ik dat n2000, provincies en hoofdwaterlopen genoeg zijn als achtergrond.

jrhillae commented 1 year ago

@bramdhondt : Final spread maps are pushed to this branch. I need to finalize extra calculations before I submit a pull request

jrhillae commented 1 year ago

https://zenodo.org/record/4299976/files/be_alientaxa_cube.csv?download=1

@bramdhondt, @SanderDevisscher : Is this the version of the cube I am supposed to use? For the moment the figures are based on this input, but includes only data until 2020. 2021 is not included. Maybe only the species cube for Belgium (https://zenodo.org/record/3637911#.YvCdmxzP02w) was updated on not the Alien CSI?

jrhillae commented 1 year ago

Die oefening is al gebeurd ikv TrIAS dus geen kunstgrepen nodig denk ik. Zie deze dataset op zenodo https://zenodo.org/record/3784227# dus de lijst van km hokken in n2000 is bekend.Yu063qRcIzY. Die groene achtergrond lijkt me ook niet het volledige n2000 te zijn? Persoonlijk denk ik dat n2000, provincies en hoofdwaterlopen genoeg zijn als achtergrond.

Ik vind in de files op deze link geen lijst terug met km hokken in Natura2000 gebied. Elke SiteCode verwijst naar het Natura2000 gebied zelf. Ik ga hier dus wel zelf mee starten

bramdhondt commented 1 year ago

@jrhillae -- Ok, lijkt me enkel kwestie van de juiste functie te vinden. st_join(Natura2000, vla_1km, left = FALSE) ?

@timadriaens -- "Die groene achtergrond lijkt me ook niet het volledige n2000 te zijn?" Laat weten wat je denkt dat hier ontbreekt. We willen dit juist hebben.

jrhillae commented 1 year ago

@jrhillae -- Ok, lijkt me enkel kwestie van de juiste functie te vinden. st_join(Natura2000, vla_1km, left = FALSE) ?

@timadriaens -- "Die groene achtergrond lijkt me ook niet het volledige n2000 te zijn?" Laat weten wat je denkt dat hier ontbreekt. We willen dit juist hebben.

De finale kaartjes hebben veel meer groen dan het voorbeeld hierboven. Wss is dat van hierboven een tijdelijk kaartje met enkel vogelrichtlijngebied, in data/output/spread_maps ziet het groen er veel uitgebreider uit.

bramdhondt commented 1 year ago

Ja, haha, dat kaartje was mijn eigen inkleuring, he (Paint, t.b.v. het kleurenpallet). :-)

jrhillae commented 1 year ago

Ja, haha, dat kaartje was mijn eigen inkleuring, he (Paint, t.b.v. het kleurenpallet). :-)

ok, dan is dat al opgelost ;)

jrhillae commented 1 year ago

@damianooldoni : Op basis van de GBIF_codes in deze file ('https://raw.githubusercontent.com/inbo/prius/f52fc4e0bb060d5a3d372d1650502602a0a562fd/data/input/prius_species_list.csv') moet ik data selecteren uit de cube. Gebruik ik het beste de alien cube met taxonkeys (https://zenodo.org/record/5819028/files/be_alientaxa_cube.csv?download=1) of de species cube met specieskeys (https://zenodo.org/record/6341688/files/be_species_cube.csv?download=1)? Wat is het verschil precies tussen beide?

Bedankt

damianooldoni commented 1 year ago

De alien cube bevat niet enkel soorten, maar ook subsoorten, varieties ezv. Niet veel, maar toch... De cube bevat ook enkel de taxa in de "unified checklist" (https://www.gbif.org/dataset/6d9e952f-948c-4483-9807-575348147c7e) De species cube aggregeert, zoals de naam zegt, op soortenniveau en bevat ALLE soorten, niet enkel de exoten.

Aangezien dat ik de alien cube gebruik voor de TrIAS indicatoren, dan kan al genieten van de preprocessing workflow die ik al heb geschreven: zie https://trias-project.github.io/indicators/05_occurrence_indicators_preprocessing.html. De output ervan (te groot voor GitHub) is ons startpunt (en dus ook jullie) voor de berekening van al de indicatoren.

Natuurlijk kan je een soortgelijke workflow toepassen aan de species cube uiteraard.

Ik hoop dat dit helpt.

jrhillae commented 1 year ago

@timadriaens : I found the file: https://github.com/trias-project/indicators/blob/master/data/interim/intersect_EEA_ref_grid_protected_areas.tsv

damianooldoni commented 1 year ago

Yes, @jrhillae, that's a good one and it is the output of this workflow analyzing the presence of IAS in protected areas: https://trias-project.github.io/indicators/10_species_observations_occupancy_in_protected_areas.html

The only point is that this file has not been updated: as you see last commit is from 2020. I should update these very last workflows (about PAs) based on the very last version of the cube as well.

damianooldoni commented 1 year ago

I was wrong in my last comment, this morning. The file pointed out by @jrhillae in previous comment didn't change after updating the cube as it is the intersection of the EEA 1kmx1km grid with the Natura2000 proteced areas. It's actually the output of this workflow: https://trias-project.github.io/indicators/09_define_overlay_grid_belgium_with_protected_areas.html I was also wrong when I said that I didn't update these very last workflows related to protected areas: I did it actually! 💪

What I have to do now is to update the data deposited at zenodo: https://zenodo.org/record/3784227.

jrhillae commented 1 year ago

I was wrong in my last comment, this morning. The file pointed out by @jrhillae in previous comment didn't change after updating the cube as it is the intersection of the EEA 1kmx1km grid with the Natura2000 proteced areas. It's actually the output of this workflow: https://trias-project.github.io/indicators/09_define_overlay_grid_belgium_with_protected_areas.html I was also wrong when I said that I didn't update these very last workflows related to protected areas: I did it actually! 💪

What I have to do now is to update the data deposited at zenodo: https://zenodo.org/record/3784227.

Good job Damiano!

jrhillae commented 1 year ago

@damianooldoni , @bramdhondt @SanderDevisscher : A few species are only present in species cube and not alien cube: gewone gunnera, marmerkreeft, gevlekte rivierkreeft and Afghaanse duizendknoop. For at least two of them, this is because they are not mentioned in the unified checklist. Therefore we will base the spread maps on the species cube. @damianooldoni: can the species cube also be used as input for the preprocessing of the TRIAS indicators? (if I rename the columnheaders correctly?)

damianooldoni commented 1 year ago

Well, the idea behind is exactly the same, yes. You will end up with slightly simplified workflows even as we don't have to take care about other taxon ranks except species.

jrhillae commented 1 year ago

@bramdhondt, @SanderDevisscher : a short summary

  1. spread maps:

    • Code is normally ok. You could review this for mistakes (script is here).
    • Output Maps are located here
    • Species present and species not present are listed here.
    • Taxonkeys not present are listed here.
    • Remark: the species cube was to heavy to push to the git. This will give an error when running the script. I needed to download it locally (making connection with zenodo within the script was too slow). So maybe best to download the most recent version of the species cube and put it in the folder data/input before running it?
  2. Sporadic species:

    • Code is normally ok. You could review this to be sure (script is here).
    • Output is here
  3. Natura2000:

    • Code is here. Would it be possible to carefully check this code? And also check if I interpreted the columnheaders ('% in' versus 'bezet') correctly? The natura2000 - EEA ref grid overlay is based on the file of Damiano.
    • Output file is here

If you have no further remarks on the code or output I can perform a pull request.

bramdhondt commented 1 year ago

@jrhillae -- Ziet er allemaal zeer goed uit. Bedankt voor het uitstekende overzicht.

Ik heb de volgende wijzigingen aangebracht:

  1. in script van de kaartjes heb ik je opmerking gezet van de zware species cube. Zo worden we herinnerd aan je voorgestelde aanpak om de cube in de input-folder te plaatsen alvorens te runnen.
  2. in script van de sporadische soorten heb ik workflow ingewerkt om alle data overheen de soorten weg te schrijven. Zie hier voor output.

De output inzake Natura2000 ziet er allemaal logisch uit (alles volgens verwachtingen, geen rare zaken), dus ik vertrouw er voorlopig op dat het script juist zit.

Je kan overgaan tot een pull request. Het volstaat om mij als reviewer aan te duiden.

We weten dat er nog enkele specifieke zaken scheef zitten (bv. Vespa, Ameiurus...), maar dat doe ik liever later. Ik wil nu eerst het rapport voeden.