Skip to content

Commit a045584

Browse files
committed
Correct issues with pcraster conversion
1 parent ae0afc1 commit a045584

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+181
-495
lines changed

settings_tpl.xml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,15 +120,12 @@ You can use $(SettingsDir) or $(SettingsPath) to refer directory containing the
120120
</lfuser>
121121

122122
<lfoptions>
123-
<setoption name="readNetcdfStack" choice="1"/>
124-
<setoption name="writeNetcdfStack" choice="1"/>
125123
<setoption name="TemperatureInKelvinFlag" choice="0"/>
126124

127125
<setoption name="repE0Maps" choice="1"/>
128126
<setoption name="repES0Maps" choice="0" />
129127
<setoption name="repET0Maps" choice="0" />
130128
<setoption name="repTAvgMaps" choice="0"/>
131-
<setoption name="repAvTimeseries" choice="0"/>
132129

133130
<setoption name="output6hourly" choice="0"/>
134131
<setoption name="splitInput" choice="0"/>

settings_tpl.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,12 @@ prefixes-input-variables:
6464
PrefixTAvg: ta
6565

6666
operational-parameters:
67-
readNetcdfStack: 1
68-
writeNetcdfStack: 1
6967
TemperatureInKelvinFlag: 0
7068
input-output-setup:
7169
repE0Maps: 1
7270
repES0Maps: 0
7371
repET0Maps: 0
7472
repTAvgMaps: 0
75-
repAvTimeseries: 0
7673
output6hourly: 0
7774
splitInput: 0
7875
splitOutput: 0

src/lisvap/hydrological/readmeteo.py

Lines changed: 40 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -93,47 +93,46 @@ def dynamic(self):
9393
# ************************************************************
9494
# ***** READ METEOROLOGICAL DATA *****************************
9595
# ************************************************************
96-
if self.settings.get_option('readNetcdfStack'):
97-
self.read_temperature()
98-
self.read_windspeed()
99-
100-
if self.settings.get_option('TemperatureInKelvinFlag'):
101-
self.var.TAvg = self.var.TAvg - self.var.ZeroKelvin
102-
if not self.settings.get_option('useTAvg'):
103-
self.var.TMin = self.var.TMin - self.var.ZeroKelvin
104-
self.var.TMax = self.var.TMax - self.var.ZeroKelvin
105-
106-
# ESat=.0610588*exp((17.32491*self.TAvg)/(self.TAvg+238.102))
107-
# the formula above returns value in pascal, not mbar
108-
# Goudriaan equation (1977)
109-
# saturated vapour pressure [mbar]
110-
# TAvg [deg Celsius]
111-
# exp is correct (e-power) (Van Der Goot, pers. comm 1999)
112-
self.var.ESat = 6.10588 * exp((17.32491 * self.var.TAvg) / (self.var.TAvg + 238.102))
113-
114-
if self.settings.get_option('CORDEX'):
115-
self.var.Psurf = readnetcdf(self.settings.binding['PSurfMaps'], self.var.currentTimeStep(), variable_binding='PSurfMaps', splitIO=self.splitIO)
116-
self.var.Qair = readnetcdf(self.settings.binding['QAirMaps'], self.var.currentTimeStep(), variable_binding='QAirMaps', splitIO=self.splitIO)
117-
# Downward short wave radiation [W/m2]
118-
self.var.Rds = readnetcdf(self.settings.binding['RdsMaps'], self.var.currentTimeStep(), variable_binding='RdsMaps', splitIO=self.splitIO)
119-
# Down long wave radiation [W/m2]
120-
self.var.Rdl = readnetcdf(self.settings.binding['RdlMaps'], self.var.currentTimeStep(), variable_binding='RdlMaps', splitIO=self.splitIO)
121-
# upward short wave radiation [W/m2]
122-
self.var.Rus = readnetcdf(self.settings.binding['RusMaps'], self.var.currentTimeStep(), variable_binding='RusMaps', splitIO=self.splitIO)
123-
# upward long wave radiation [W/m2]
124-
self.var.Rul = readnetcdf(self.settings.binding['RulMaps'], self.var.currentTimeStep(), variable_binding='RulMaps', splitIO=self.splitIO)
125-
else: # EFAS or GLOFAS
126-
self.read_vapor_pressure()
127-
128-
# calculated radiation [J/m2/day]
129-
# Incoming (downward surface) solar radiation [J/m2/d] (SSRD variable in ERA40)
130-
# typical vale: 29410560 J/m2/day = 340.4 W/m2 (1 W = 1 J/s)
131-
self.var.Rgd = readnetcdf(self.settings.binding['RgdMaps'], self.var.currentTimeStep(), variable_binding='RgdMaps', splitIO=self.splitIO)
132-
133-
if self.settings.get_option('GLOFAS'):
134-
# set of forcings (rg, rn, ta, td, wu, wv)
135-
# Net long wave radiation [J/m2/day]
136-
self.var.Rnl = readnetcdf(self.settings.binding['RNMaps'], self.var.currentTimeStep(), variable_binding='RNMaps', splitIO=self.splitIO) * -1
96+
self.read_temperature()
97+
self.read_windspeed()
98+
99+
if self.settings.get_option('TemperatureInKelvinFlag'):
100+
self.var.TAvg = self.var.TAvg - self.var.ZeroKelvin
101+
if not self.settings.get_option('useTAvg'):
102+
self.var.TMin = self.var.TMin - self.var.ZeroKelvin
103+
self.var.TMax = self.var.TMax - self.var.ZeroKelvin
104+
105+
# ESat=.0610588*exp((17.32491*self.TAvg)/(self.TAvg+238.102))
106+
# the formula above returns value in pascal, not mbar
107+
# Goudriaan equation (1977)
108+
# saturated vapour pressure [mbar]
109+
# TAvg [deg Celsius]
110+
# exp is correct (e-power) (Van Der Goot, pers. comm 1999)
111+
self.var.ESat = 6.10588 * exp((17.32491 * self.var.TAvg) / (self.var.TAvg + 238.102))
112+
113+
if self.settings.get_option('CORDEX'):
114+
self.var.Psurf = readnetcdf(self.settings.binding['PSurfMaps'], self.var.currentTimeStep(), variable_binding='PSurfMaps', splitIO=self.splitIO)
115+
self.var.Qair = readnetcdf(self.settings.binding['QAirMaps'], self.var.currentTimeStep(), variable_binding='QAirMaps', splitIO=self.splitIO)
116+
# Downward short wave radiation [W/m2]
117+
self.var.Rds = readnetcdf(self.settings.binding['RdsMaps'], self.var.currentTimeStep(), variable_binding='RdsMaps', splitIO=self.splitIO)
118+
# Down long wave radiation [W/m2]
119+
self.var.Rdl = readnetcdf(self.settings.binding['RdlMaps'], self.var.currentTimeStep(), variable_binding='RdlMaps', splitIO=self.splitIO)
120+
# upward short wave radiation [W/m2]
121+
self.var.Rus = readnetcdf(self.settings.binding['RusMaps'], self.var.currentTimeStep(), variable_binding='RusMaps', splitIO=self.splitIO)
122+
# upward long wave radiation [W/m2]
123+
self.var.Rul = readnetcdf(self.settings.binding['RulMaps'], self.var.currentTimeStep(), variable_binding='RulMaps', splitIO=self.splitIO)
124+
else: # EFAS or GLOFAS
125+
self.read_vapor_pressure()
126+
127+
# calculated radiation [J/m2/day]
128+
# Incoming (downward surface) solar radiation [J/m2/d] (SSRD variable in ERA40)
129+
# typical vale: 29410560 J/m2/day = 340.4 W/m2 (1 W = 1 J/s)
130+
self.var.Rgd = readnetcdf(self.settings.binding['RgdMaps'], self.var.currentTimeStep(), variable_binding='RgdMaps', splitIO=self.splitIO)
131+
132+
if self.settings.get_option('GLOFAS'):
133+
# set of forcings (rg, rn, ta, td, wu, wv)
134+
# Net long wave radiation [J/m2/day]
135+
self.var.Rnl = readnetcdf(self.settings.binding['RNMaps'], self.var.currentTimeStep(), variable_binding='RNMaps', splitIO=self.splitIO) * -1
137136

138137
if self.settings.get_option('CORDEX'):
139138
self.var.Rds = self.var.Rds * 86400

src/lisvap/lisvapdynamic.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -75,24 +75,15 @@ def angot_radiation(self):
7575
"""
7676
ANGOT RADIATION
7777
"""
78-
np.set_printoptions(precision=16)
7978
# solar declination [degrees]
8079
declin = -23.45 * cos((360. * (self.calendar_day + 10)) / 365.)
8180
# solar constant at top of the atmosphere [J/m2/s]
8281
solar_constant = self.AvSolarConst * (1 + (0.033 * cos(360. * self.calendar_day / 365.)))
8382
bld = ((-sin(self.PD / 180.)) + sin(declin) * sin(self.Lat)) / (cos(declin) * cos(self.Lat))
8483

85-
print('self.PD / 180.=', self.PD / 180., 'self.PD / self.Pi=', self.PD / self.Pi)
86-
print('sin(self.PD / 180.)=', sin(self.PD / 180.), 'np.sin(self.PD / self.Pi)=', np.sin(self.PD / self.Pi))
87-
print('###### bld sin min:', np.nanmin(((-sin(self.PD / 180.)) + sin(declin) * sin(self.Lat))), 'bld sin max:', np.nanmax(((-sin(self.PD / 180.)) + sin(declin) * sin(self.Lat))))
88-
print('###### bld cos max:', np.nanmin((cos(declin) * cos(self.Lat))), 'bld cos max:', np.nanmax((cos(declin) * cos(self.Lat))))
89-
print('###### bld min:', np.nanmin(bld), 'bld max:', np.nanmax(bld))
90-
9184
tmp2 = ifthenelse(bld < 0, scalar(asin(bld))-360., scalar(asin(bld)))
92-
print('###### tmp2 min:', np.nanmin(tmp2), 'tmp2 max:', np.nanmax(tmp2))
9385

9486
abs_bld = abs(bld)
95-
abs_bld_gt_1 = abs_bld[abs_bld > 1]
9687
# daylength [hour]
9788
# abs(bld) > 1. corrects the day length at higher altitudes to 24h
9889
day_length = ifthenelse(abs_bld > 1., scalar(24.), 12. + (24. / 180.) * tmp2)

src/lisvap/lisvapinitial.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
from .utils import LisSettings, NetcdfMetadata, CutMap, FileNamesManager, DynamicModel
2323
from .utils.readers import loadsetclone
24-
from .utils.output import OutputTssMap
24+
from .utils.output import OutputMap
2525
from .utils.operators import scalar
2626
from .hydrological.miscinitial import MiscInitial
2727
from .hydrological.readmeteo import ReadMeteo
@@ -56,17 +56,15 @@ def __init__(self):
5656
elif self.settings.binding.get('TMinMaps'):
5757
map_for_metadata = fileManager.get_file_name('TMinMaps')
5858

59-
if self.settings.get_option('readNetcdfStack'):
60-
# CutMap defines the extent to read from input netcdf data (cropping)
61-
CutMap.register(map_for_metadata)
59+
# CutMap defines the extent to read from input netcdf data (cropping)
60+
CutMap.register(map_for_metadata)
6261

63-
if self.settings.get_option('writeNetcdfStack') or self.settings.get_option('writeNetcdf'):
64-
# if NetCDF is written, the pr.nc is read to get the metadata
65-
# like projection
66-
NetcdfMetadata.register(map_for_metadata)
62+
# if NetCDF is written, the pr.nc is read to get the metadata
63+
# like projection
64+
NetcdfMetadata.register(map_for_metadata)
6765

6866
# ----------------------------------------
69-
self.output_module = OutputTssMap(self)
67+
self.output_module = OutputMap(self)
7068
self.misc_module = MiscInitial(self)
7169
self.readmeteo_module = ReadMeteo(self)
7270
self.ReportSteps = None

0 commit comments

Comments
 (0)