Commit bc1743a4 authored by Roelofsen, Hans's avatar Roelofsen, Hans
Browse files

README update

parent aeea3700
# DOREN 2019
# Dosis Effect Relaties Natuur (DOREN)
Dit repository bevat python code voor selectie van Vegetatieopnames uit de EVA database en ruimtelijke-koppeling met diverse GIS bestanden. Deze code is onderdeel van het DOREN project van Wageningen Environenmental Research (WEnR).
Dit repository bevat python code voor selectie van Vegetatieopnames uit de EVA database en ruimtelijke-koppeling met diverse GIS bestanden. Deze code is onderdeel van het DOREN project van Wageningen Environenmental Research (WEnR). Deze repository is onderdeel van Wamelink *et al* (2021) *Responsecurven van habitattypen voor stikstofdepositie*.
Code door: Hans Roelofsen, Wageningen Environmental Research
Project leider: Wieger Wamelink, Wageningen Environmental Research
Datum: begonnen september 2019.
###Brongegevens
Projectleider: Wieger Wamelink, Wageningen Environmental Research
Datum: september 2019 - januari 2021
### Brongegevens
* Export van de EVA vegetetieopname database uit, bestaande uit:
* kopgegevens (headers) met opnameID, datum, latitude, longitude en andere metadata per plot
* inventarisgegevens met soortnaam, soortnummer en bedekking voor alle soorten in elke opname
......@@ -36,7 +38,7 @@ In `create_doren.py` worden de gewenste selecties op de EVA opnames toegepast en
De `pickle` wordt vervolgens gekopieerd naar de WUR [Anunna High Performance Computer](https://wiki.anunna.wur.nl/index.php/Main_Page). Hier wordt voor elke gewenste soort een soort-file gegenereerd middels het `run_species.py` script. Dit gebeurt gedistribueerd over meerdere HPC nodes, zodat de totale doorlooptijd beperkt blijft. Dit process wordt aangestuurd via `doren_batch.sh`.
### requirements
### Benodigdheden
* [python 3.5.6](https://www.python.org/)
* [geopandas 0.6.3](https://geopandas.org/install.html)
* [numpy 1.15.2](https://numpy.org/)
......@@ -49,8 +51,6 @@ De `pickle` wordt vervolgens gekopieerd naar de WUR [Anunna High Performance Com
Neem contact op met [Hans Roelofsen](https://www.wur.nl/en/Persons/Hans-dr.-HD-Hans-Roelofsen.htm).
### Copyright
Deze repository is onderdeel van Wamelink *et al* (2021) *Responsecurven van habitattypen voor stikstofdepositie*.
Copyright 2021 Wageningen Environmental Research (instituut binnen de rechtspersoon Stichting Wageningen Research), Postbus 47, 6700 AA Wageningen, T 0317 48 07 00, [Wageningen Environmental Research](www.wur.nl/environmental-research). Wageningen Environmental Research is onderdeel van Wageningen University & Research.
* Overname, verveelvoudiging of openbaarmaking van deze uitgave is toegestaan mits met duidelijke bronvermelding.
......
......@@ -31,7 +31,6 @@ doren = dc.Doren(header_src=param_header_src, sp_src=param_sp_src)
doren.initiate(sample=testing)
doren.apply_requirements('req1', 'req2', 'req3', 'req4', 'req8', 'req9', 'req10',
aoi_src=None if testing else param_aoi_src, dem_src=param_dem_src)
doren.overwrite_eunis(source_file=r'W:\PROJECTS\Doren19\a_brondata\EVA\delivery_20210112\Calluna_Avenula.csv',
col='PlotObservationID', target_eunis='S42')
doren.overwrite_eunis(source_file=r'W:\PROJECTS\Doren19\a_brondata\EVA\delivery_20210112\Calluna_Molinea.csv',
......@@ -44,6 +43,7 @@ doren.overwrite_eunis(source_file=r'W:\PROJECTS\Doren19\a_brondata\EVA\delivery_
col='PlotObservationID', target_eunis='S41')
doren.overwrite_eunis(source_file=r'W:\PROJECTS\Doren19\a_brondata\EVA\delivery_20210112\Erica_Molinea.csv',
col='PlotObservationID', target_eunis='S41')
doren.merge_eunis()
doren.get_requested_species(xls=sp_req_src, sheet=sp_req_sheet, col=column, skip=skip, simplify_names=True)
doren.add_covar(covar_dir=cv_cntr_dir, covar_src=cv_cntr_src, covar_name='country', raster=False, column='SOV_A3')
......
......@@ -18,7 +18,7 @@ n_batches = int(args.n_batches)
# Recover the Pickled doren object
pkl_src = os.path.join('./pkl_src/', args.pkl)
# pkl_src = r'c:\Users\roelo008\OneDrive - WageningenUR\a_projects\DOREN\b_compiled_data\a_pkl\doren_20201209.pkl'
# pkl_src = r'c:\Users\roelo008\OneDrive - WageningenUR\a_projects\DOREN\b_compiled_data\a_pkl\doren_20210113.pkl'
with open(pkl_src, 'rb') as handle:
doren = pickle.load(handle)
......
......@@ -134,22 +134,11 @@ class Doren:
eva.eunis_old = eva.eunis_old.str.replace(',', '-')
eva.eunis_new = eva.eunis_new.str.replace(',', '-')
# Assign final EUNIS code using EUNIS_new where possible else EUNIS_old
use_old_indx = eva.loc[(eva.eunis_new.isna()) | (eva.eunis_new == '?') | (eva.eunis_new == 'I')].index
use_new_indx = eva.index.difference(use_old_indx)
eva.loc[use_new_indx, 'eunis_code'] = eva.loc[use_new_indx, 'eunis_new']
eva.loc[use_old_indx, 'eunis_code'] = eva.loc[use_old_indx, 'eunis_old']
eva.loc[use_new_indx, 'eunis_src'] = 'eunis_new'
eva.loc[use_old_indx, 'eunis_src'] = 'eunis_old'
eva.eunis_code.fillna('?', inplace=True) # Fill NAs where EUNIS_Old was also NA
# Attach as attribute
self.eva = gp.GeoDataFrame(eva, geometry='plot_coordinates_3035', crs={"init": "epsg:3035"})
del eva
self.update_status()
'''
Note: Integer kolommen kunnen geen NAs bevatten. Dus procedure zou moeten zijn:
1. inlezen
......@@ -157,6 +146,20 @@ class Doren:
3. kolommen parsen naar gewenste datatype
'''
def merge_eunis(self):
"""
combine old and new EUNIS data to a final EUNIS class
:return:
"""
# Assign final EUNIS code using EUNIS_new where possible else EUNIS_old
use_old_indx = self.eva.loc[(self.eva.eunis_new.isna()) | (self.eva.eunis_new == '?') | (self.eva.eunis_new == 'I')].index
use_new_indx = self.eva.index.difference(use_old_indx)
self.eva.loc[use_new_indx, 'eunis_code'] = self.eva.loc[use_new_indx, 'eunis_new']
self.eva.loc[use_old_indx, 'eunis_code'] = self.eva.loc[use_old_indx, 'eunis_old']
self.eva.loc[use_new_indx, 'eunis_src'] = 'eunis_new'
self.eva.loc[use_old_indx, 'eunis_src'] = 'eunis_old'
self.eva.eunis_code.fillna('?', inplace=True) # Fill NAs where EUNIS_Old was also NA
def get_requested_species(self, xls, sheet, col, skip, simplify_names=False):
"""
......@@ -785,7 +788,7 @@ class Doren:
plot_ids = df[col]
sel_plot_ids = set(plot_ids).intersection(self.eva.index)
self.eva.loc[sel_plot_ids, 'EUNIS_New'] = target_eunis
self.eva.loc[sel_plot_ids, 'eunis_new'] = target_eunis
msg = 'Manual overwrite EUNIS type for {0} plots to {1} based on {2}\n' \
.format(len(sel_plot_ids), target_eunis, source_file)
self.report += msg
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment