Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to code for Esoil in sparse vegetation. #315

Merged
merged 5 commits into from
Dec 9, 2015

Conversation

tbohn
Copy link
Contributor

@tbohn tbohn commented Nov 30, 2015

I had intended to add this update to the original 4.2 release, but forgot about it until now. This addresses issue #306.

…this update to the original 4.2 release, but forgot about it until now.
@jhamman
Copy link
Member

jhamman commented Nov 30, 2015

@tbohn - can you address the comments in #309?

@@ -85,6 +85,7 @@ double arno_evap(layer_data_struct *layer,
double max_infil;
double Evap;
double tmpsum;
double rarc_soil = 100.0;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jhamman commented: why 100.0?
@tbohn's reply: 100 gives better results than 0 or 200, from tests I conducted at eddy covariance towers. I didn't do a fancy Bayesian parameter estimation, not enough time for that. I apologize for making this a hard-wired value - I considered making it another input soil parameter, but we have so many of those already. And this likely won't noticeably affect anyone who has been using the traditional VIC set-up, since bare soil rarely occurs in the traditional parameters.

@@ -85,6 +85,9 @@ double arno_evap(layer_data_struct *layer,
double max_infil;
double Evap;
double tmpsum;
/* best-fitting value of architectural resistance, determined from
evaluation of model performance at eddy covariane tower sites */
double rarc_soil = 100.0; // [s/m]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I still don't love this but if @bartnijssen is okay with it, we can keep it for now. Maybe we should #define this in vicNl_def.h?

When we port these changes to VIC.5, rarc_soil needs to go into the parameters_struct or into the soil_con_struct.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I'm defining a constant RARC_SOIL in vicNl_def.h...

@jhamman
Copy link
Member

jhamman commented Dec 5, 2015

@bartnijssen - ready for you.

tmp_wind[0] = wind[0];
tmp_wind[1] = -999.; // unused
tmp_wind[2] = -999.; // unused
tmp_height = soil_con->rough/0.123; // eqn from calc_veg_roughness()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No hardcoded values - if this is a constant, it needs to be set in one of the header files.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I'm going to replace the -999s with ERROR (which is defined as -999 in vicNl_def.h), both here and in full_energy(), which is where I copied these lines from.

I'm defining a few other constants too:
RATIO_DH_HEIGHT_VEG 0.67 - used in calc_veg_displacement() and calc_veg_height()
RATIO_RL_HEIGHT_VEG 0.123 - used both here and in calc_veg_roughness()
WINDH_SOIL 10.0

@bartnijssen
Copy link
Member

@tbohn: Can you show what the results of this change is?

@jhamman: Go ahead and merge after comments are addressed.

@tbohn
Copy link
Contributor Author

tbohn commented Dec 6, 2015

How should I show the results - should I attach a plot of ET before/after?

Added the following constants:
RARC_SOIL   100.0
RATIO_DH_HEIGHT_VEG 0.67
RATIO_RL_HEIGHT_VEG 0.123
WINDH_SOIL  10.0
@jhamman
Copy link
Member

jhamman commented Dec 7, 2015

@tbohn - a plot of ET separate plots of E and T would be great.

@tbohn
Copy link
Contributor Author

tbohn commented Dec 7, 2015

First, some performance statistics at eddy covariance towers - mostly Ameriflux but also 5 other towers in Mexico:

Class N Old Median NSE New Median NSE Change
ENF 8 0.53 0.51 -0.02
DBF 2 0.61 0.57 -0.04
CSH 4 0.23 0.25 +0.02
OSH 8 0.61 0.62 +0.01
WSA 2 0.40 0.49 +0.09
SAV 1 0.50 0.53 +0.03
GRA 21 0.38 0.55 +0.17

(ENF = Evergreen Needleleaf Forest; DBF = Deciduous Broadleaf Forest; CSH = Closed Shrubland; OSH = Open Shrubland; WSA = Woody Savanna; SAV = Savanna; GRA = Grassland)

So, you can see that changes are minimal in forest biomes, but a big improvement in more sparsely-vegetated biomes such as savannas and grasslands.

(Note: I tried to use Github-flavored markdown to make a nice table, but it doesn't appear to have worked)

@jhamman
Copy link
Member

jhamman commented Dec 7, 2015

(I fixed you table - nice try though 😉 )

@tbohn
Copy link
Contributor Author

tbohn commented Dec 7, 2015

Ah, so I just needed to insert a blank line between the non-table text and table text?

@tbohn
Copy link
Contributor Author

tbohn commented Dec 7, 2015

Here's an example of before and after the change, at the Santa Rita Mesquite Ameriflux Tower (Open Shrubland). NSEs pertain to daily ET over the entire observed record (generally more than one year, despite my showing only a single year in the plots). Also, "Ebare" in the plot really means "Esoil".

Old Model (NSE = 0.64):
plot et srm 2008 fix_ra_test old_model

New Model (NSE = 0.73):
plot et srm 2008 fix_ra_test new_model

As you can see, the main effect is to reduce Esoil a bit (primarily due to the RARC_SOIL of 100 s/m). Since Esoil usually peaks earlier than Transp during the rainy season, having Esoil too high at the beginning can lead to lower ET (both Esoil and Transp) later in the season due to depleted soil mositure.

Here's another example, from Diablo (Grassland).

Old Model (NSE = 0.32):
plot et dia 2011 fix_ra_test old_model

New Model (NSE = 0.53):
plot et dia 2011 fix_ra_test new_model

I can include plots of other sites if you'd like to see more...

@tbohn
Copy link
Contributor Author

tbohn commented Dec 8, 2015

@jhamman and @bartnijssen - do you need me to provide any more test results for this?

@jhamman
Copy link
Member

jhamman commented Dec 8, 2015

This looks good to me. Thanks for showing some results @tbohn. @bartnijssen?

@bartnijssen
Copy link
Member

@tbohn: Thanks for the plots and explanations

bartnijssen added a commit that referenced this pull request Dec 9, 2015
Update to code for Esoil in sparse vegetation.
@bartnijssen bartnijssen merged commit c5a2294 into UW-Hydro:hotfix/4.2.c Dec 9, 2015
@tbohn tbohn deleted the fix_ra branch January 19, 2016 06:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants