Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

Vegetation issues when using LCZs in WRF 4.4

Rtsquared

New member
I have been running WRF at urban scale and have recently added a local climate zone map to my innermost domain. When looking at the output from test runs I have come across some issues with the vegetation parameters for the urban classes, the most glaring of which being that all the values are exactly the same for every urban class (Leaf area index = 4.29 m^2/m^2, shade fraction = 27-56%, vegetation fraction= 55.5%). They were most likely drawn from LANDUSE.TBL as it has values for the LCZ classes that are exactly the same for every category (which I could try changing myself to make more sense, but I can't tell what most of those categories actually are or what values would be reasonable). The other reason I think this is the case is because I was initially using NLCD land use data and it doesn't have categories for LCZ classes so the vegetation categories output by those runs are negative indicating missing data.

Logically, the vegetation fraction for the urban LCZ classes should be 1 - FRC_URB, a variable that can be found in URBPARM_LCZ.TBL. How do I go about fixing the values in the tables to produce reasonable output that matches 1-FRC_URB?
 
The issue does not appear to be related to LANDUSE.TBL. In testing none of the variables changed the vegetation variables any and those that did have an obvious effect (albedo and emissivity) were overwritten by the values in URBPARM_LCZ.TBL. Looking through the code it is difficult to determine where VEGFRAC comes from, but it might be the SHDFAC variable found in VEGPARM.TBL (which has no values for the LCZ classes beyond mentions that they exist). One possible reason why all the LCZ classes have the exact same vegetation parameters might be because of how the land surface model code (in this case module_sf_noahlsm.F as that is what I am using) has several if statements for vegtype == isurban, but that is supposed to have SHDFAC = 0.05 (line 433) so I'm not sure how it ended up having a value of 55.5% if it is indeed treating all LCZs as "isurban" (the only place they appear is in line 32, not sure if that has any impact on how things run). There are references to FRC_URB2D in module_sf_bep.F and module_bl_ysu.F (the urban parameterization and PBL schemes I am using), but nothing that seems to connect to vegetation variables. Would adding vegetation values to VEGPARM.TBL for the LCZ classes do anything? Are there a few lines of code that could be added to module_sf_noahlsm.F that could allow for different vegetation values for different LCZ classes?
 
I tried updating the VEGPARM.TBL file to have a line with values for LCZ class 1 (dense highrise) like the rest of the land use classes, but WRF refused to run after I had so that's not a solution. There also appear to be some other issues with the implementation of local climate zones in WRF as model output is showing more periodicity (see plots of vertical velocity over NYC below). Maybe fixing the vegetation issues would help this, but it seems like the implementation of LCZs in WRF needs a little more work.
LCZ + YSU.PNGNLCD + YSU compare.PNG
 
Hello, I'm just wondering if you ever found an answer as to why the vegetation fraction for the urban LCZ classes do not equal 1 - FRC_URB2D?
 
Please take a look at the codes in phys/module_sf_noahdrv.F:

IF(SF_URBAN_PHYSICS == 1) THEN
IF( IVGTYP(I,J) == ISURBAN .or. IVGTYP(I,J) == LCZ_1 .or. IVGTYP(I,J) == LCZ_2 .or. &
IVGTYP(I,J) == LCZ_3 .or. IVGTYP(I,J) == LCZ_4 .or. IVGTYP(I,J) == LCZ_5 .or. &
IVGTYP(I,J) == LCZ_6 .or. IVGTYP(I,J) == LCZ_7 .or. IVGTYP(I,J) == LCZ_8 .or. &
IVGTYP(I,J) == LCZ_9 .or. IVGTYP(I,J) == LCZ_10 .or. IVGTYP(I,J) == LCZ_11 ) THEN
Noah_call = .TRUE.
VEGTYP = NATURAL
SHDFAC = SHDTBL(NATURAL)
ALBEDOK =0.2 ! 0.2
ALBBRD =0.2 ! 0.2
EMISSI = 0.98 ! for VEGTYP=5
LWDN = GLW(I,J) * EMISSI
SOLNET = SOLDN * (1.0 - ALBEDOK)
.....
......
This explains why SHDFAC is the same for various urban types. Many information for initialization of urban variables can also be found in the subroutine "urban_var_init".

Please look at those relevant codes for more details. LCZ data is a relatively new urban dataset and we don't have many experiences working with it. Please keep us updated for any insights about LCZ and urban schemes, which I suppose would be helpful for the broad community. Thanks in advance.
 
Top