UMEP-dev / SUEWS

Surface Urban Energy and Water Balance Scheme
https://suews.readthedocs.io/
Mozilla Public License 2.0
12 stars 8 forks source link

modelled vegetation albedo incosistent with min/max value assignment #285

Closed DimitrisTsi closed 3 weeks ago

DimitrisTsi commented 2 months ago

Hello I have been trying to set up the model parameters based on flux tower observations, The observed albedo for the source area gives me an albedo of around 0.095 for the area before the leaf growth period so that would approximately be Jan-Feb-March. So I am trying to match the model outputs to give me a bulk albedo of 0.095 for that period. Irrespective of the LAI parameters used in this model run which do not capture the growth and senescence accurately (I have not looked into that in detail yet), I have assigned the following albedo values for my model run (using SUEWS prepare) paved: 0.10 buildings: 0.12 evergreen: 0.07 - 0.09 deciduous: 0.09 - 0.13 grass: 0.14 - 0.19 bare soil: 0.18 water: 0.10

So what I have noticed is that the modelled albedo values for vegetation (and especially for grass) are very far off the min/max limits set. I am using supy 2022.4.7 and here are my input files image What causes this and can this be fixed without changing the LAI submodel parameters?

DimitrisTsi commented 1 month ago

Hello again

I was able to adress the issue of albedo values larger than the max value assigned by changing the following parameters to values lower than the actual minimum albedo value assigned to each vegetation class (using supy): df_state_init.loc[0, ('albevetr_id', '0')] df_state_init.loc[0, ('albdectr_id', '0')] df_state_init.loc[0, ('albgrass_id', '0')]

Looking at the SUEWS albedo calculation equation from Omidvar et al.2022 (https://gmd.copernicus.org/articles/15/3041/2022/ - equation 6), It seems that there is no constraint for the calculated albedo to show values higher/lower than the albmin and albmax variables (contrary to the case of the min/max LAI), hence this issue can arise when proper initial conditions are not assigned. So using a constraint (similar to the min max LAI) constraint would be an enhancement that would fix this.

I understand that all the above are calculated in the suews_phys_dailystate.f95 code.

Is this addressed in later versions (i am using supy 2022.4.7 and the corresponding suews version)?

suegrimmond commented 1 month ago

Have you tried the latest version of SUEWS to be consistent with @MatthewPaskin etc

DimitrisTsi commented 1 month ago

@suegrimmond keen to do this in the future, but i am using the latest stable version, the development versions traditionally do not work with the same input files/python libraries as the previous ones and it would take some time to set this up properly all over again with no documentation available of the changes. I can run some tests nonethess.

Still this should be looked into as no relevant issue has been raised in the past.

suegrimmond commented 1 month ago

Just looked at results in current version - problem still need fixing

DimitrisTsi commented 1 month ago

Lines 1204-1210 from the file suews_phys_dailystate.f95:

  ! update albedo values while limiting these to valid ranges
  !albDecTr_id = min(max(albDecTr_id + albChangeDecTr, AlbMin_DecTr), AlbMax_DecTr)
  !albEveTr_id = min(max(albEveTr_id + albChangeEveTr, AlbMin_EveTr), AlbMax_EveTr)
  !albGrass_id = min(max(albGrass_id + albChangeGrass, AlbMin_Grass), AlbMax_Grass)
  albDecTr_id = albDecTr_id + albChangeDecTr
  albEveTr_id = albEveTr_id + albChangeEveTr
  albGrass_id = albGrass_id + albChangeGrass

These lines would prevent this issue, but have been commented out. So there might be a reason that this has been changed, Ting will probably be able to give more insight on this.

XiaoxiongXie commented 1 month ago

Edit - problem solved - initial albedo was not set correctly


A similar issue was found with vegetation albedos. I have been testing different albedo values for evergreen trees and found that changes in albedo are not fully reflected in Kup.

The test was done using supy 2023.7.3.dev0 with sample inputs with the evergreen tree fraction set to 1. When the albedo for evergreen trees was changed from 0.1 to 0.8 (together with max and min albedo), the peak Kup (magnitude ~ 50 W m⁻²) increased by less than 0.1 W m⁻², despite a peak Kdown of around 500 W m⁻² on that day. The output bulk albedo remains around 0.1, far lower than expected.

I've changed alb, albmax_evetr and albmin_evetr. I wonder if there are any other variables that I may have overlooked and should be changed too?

sunt05 commented 3 weeks ago

fixed in #293