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

(RESOLVED) what is the land/water threshold in a grid cell to define it as land or water?

This post was from a previous version of the WRF&MPAS-A Support Forum. New replies have been disabled and if you have follow up questions related to this post, then please start a new thread from the forum home page.


New member

I am trying to change the land use of some specific grid cells in the shoreline of my domain. I do this by changing the variable 'LANDMASK' and 'LU_INDEX' in either the "geo_em.d0*.nc" file or the "" files. From previous topics, I realized that I do not need to modify the 'LANDUSEF' variable since it is used to derive the 'LU_INDEX'.

Because of the domain grid resolution (3km*3km), a grid cell may contain both land and water. However, it should be assigned as either land or water in the input files. My question is, is there a threshold of land percent in every grid cell to define that cell as entirely land or water? For example, if 25% of a grid cell is land and 75% water, would WRF consider this grid cell as land or water? I understand that this may not be the procedure that the model takes to assess a grid cell's land use. If so, I would appreciate it if you introduce a document that may describe this procedure.

Thank you very much,
Maryam Golbazi
Hi Maryam,
Looking at the code (e.g., WPS/geogrid/src/process_tile_module.F - line ), it looks like for LANDMASK the percentage is 50% for the grid cell, and if it were to be exactly 50%, it would be declared a water point. See line ~568.
Thank you for your reply! I was not sure which code to look at but this helped so much.

Following this question, I am trying to change some cells type (that are defined as water in a normal run) to land. It seems like geogrid doesn't catch the very thin strip of lands for example, in the south of Long Island, NY, or east of NJ. My grid resolution is 800*800m so I was expecting to see some land in those areas.

I wrote a Matlab code to assign land/water to the grid cells based on a high-resolution shoreline shapefile. Using my code, I can calculate the fraction of the land in every grid cell, and based on that modify the "LANDMASK" variable, and I can assign a land category to the cells for the "LU_INDEX" variable. I can do this on either geo_em.d0* file or the wrfinput_d0* file.
However, I am not sure if it is sufficient to apply these changes to these files. I read some comments in the forum and I got some mixed ideas on this matter. I was wondering if I need to change the "LANDUSEF" or any other variables too? If so, I don't understand why the "LANDUSEF" variable is changing hourly and I could not find a comprehensive description of this variable in the WRF users guide.

I would appreciate any comment on this.

Thank you!
It should be perfectly fine to modify LANDUSE in the geo_em.* files or the wrfinput* files. We actually have an NCL program that allows you to modify landuse types in the geo_em* files. I know you have your program already, but if you are interested in that, take a look at this presentation (around slide 40).

As for LANDUSEF, where are you seeing this changing hourly? I just took a look at some of my met_em* files and while there is a value for every hour, it is the same at all times.
I am checking the wrfinput_d0* files. When I check it in VERDI, there is a 3rd dimension which is the 'layer', not 'time-step' and it changes per layer which I think is every land category. However, because the WRF user's guide defines it as "LANDUSEF(Time, land_cat, south_north, west_east)" I thought it should be a time-variant. Sorry for the confusion!

Now, because the 'LANDUSEF' variable exists in the 'wrfinput_d0*' file, I am not sure if I am supposed to modify it as well when modifying the 'LANDMASK' and 'LU_INDEX'. I would appreciate any suggestions or comments on this.

Thank you!
I think this would depend on which surface option you're using. Can you attach your namelist.input file so that I can take a look? Thanks!

Sorry for the delay! I have attached my namelist.input to this post.

I actually realized that I needed to modify the "landusef" variable in the wrfinput files as well. Because when I don't, the LANDMASK and LU_INDEX variables change to the original values in the wrfout files as if there were no modifications. Seems like when running WRF, the model uses the "landusef" variable to redefine the "landmask" and the "lu_index" variables.

However, I would gladly consider any suggestions or comments.

Thank you!


  • namelist.input
    6.5 KB · Views: 45
I believe it's correct to change the values in the wrfinput files. Are you getting the results you expect now?
Yes, I do. It seems correct now. In summary:

LANDMASK should be modified.
LU_INDEX should be modified.
LANDUSEF should be modified in the corresponding category. Meaning that we need to assign the land fraction/percent in every cell that we are modifying in its own corresponding layer (which is the same as the land category that the cell represents).

Thank you!