-
Notifications
You must be signed in to change notification settings - Fork 320
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
High resolution regional simulations #1773
Comments
@wwieder thanks!
No, the resolution is different, and the WRF data is on a non-lat/lon grid. But we can probably make use of the NUOPC runtime interpolation? Assuming that we also need to translate the native WRF output to DATM format (and subset it at the same time to match the boundaries of the CTSM simulation), and that the format hasn't changed at all with the NUOPC update. cc @XiulinGao |
@wwieder Thanks Will! and Charlie is correct. WRF is on curvilinear grid. In the forcing data file, lon/lat are only index of each grid, one needs an external file to refer back to the actual grid center. Also, WRF has a very differnt formating that their time information is hiding in the file name, so each file is only for one hour and there's no actual time dimension in the data (if file name does not count). For running CLM1PT, we might still need to reprocess these huge amount of files so they are in the correct format required by CLM1PT DATM mode. |
@XiulinGao during a conversation with @wwieder in a separate email thread, he was wondering if you or Lara have experience with high res regional cases using WFR forcing. Having some example cases using this would be helpful. |
@glemieux Actually no. This idea about using WRF for high res regional simulation just came up during our coversation few weeks ago. The purpose of doing this is to get more pixels for running our grass only simulations in California so that we can do model benchmark with enough pixels for only grasslands regions.I do have the archived WFR forcing available on cloud if that's something also can be helpful. Polly might be the person to ask as I know she has done some high resolution regional runs but not with WRF forcing I assume. |
As Xiulin says, Polly has been running regional CLM-FATES simulations in California for an irregular domain. She is not using NUOPC. She is running at a fine resolution (4km) using custom boundary conditions. I've asked our WRF collaborators (Stefan Rahimi and Alex Hall) if they have any other collaborators who have used their WRF output for land surface model simulations. Will let you know. |
@ekluzek mentioned this in an email, but it seemed worth noting here too. Actually following through with this suggestion may require some additional discussion. The issue already has this, but subset_data should be able to subset our NLDAS2 data fine, but they need to provide WRF data for the forcing. So they'll have to convert WRF history files into datasets that look like our forcing datasets. That's likely to be a non-trivial task. |
I posted a comment in #1408 about successfully generating this surface dataset using the new mksurfdata_esmf tool: |
I think this is the same as the mesh file that I see in the mksurfdata_esmf namelist (mentioned in the previous post when I generated the fsurdat): |
True, so generating a nldas2 surface dataset (my second-to-last post) is unnecessary because the subset_data tool can subset an existing nldas2 fsurdat file. |
According to Mariana's talk this morning at the CESM workshop, it seems that to use WRF forcing we should use CDEPS: https://escomp.github.io/CDEPS/html/index.html. And it also seems like we have to reprocess the WRF forcing into data files that can be used. |
@XiulinGao - I want to confirm that you are aiming to using WRF forcing in an "I" compset simulation where the input forcing comes from DATM. Is the WRF output on the same grid as CLM? |
@mvertens Yes, correct. No, the WRF output is on a curvilinear grid not the regular longitude and latitude used by CLM. So one of the questions we have is that does the NUOPC regridding is able to handle this curvelinear grid used by WRF and do the regridding at runtime or we have to reproject WRF to regular, even spaced grid ourselves offline. I also have a very specific question about what exact format the forcing should be in? I know that with the mct driver to run DATM with CLM1PT (assuming we are still using the same DATM mode for this case?) mode there's specific requirement for how one should prepare their own forcing files in certain way, but I didn't see that information when I went o checkout CDEPS. But very likely that we still have to reprocess our WRF foricng files even reprojection is nor required. Thanks! |
@XiulinGao - |
Thanks @mvertens ! That makes it more clear now. I think one of the most important things to do now is to reformat all the WRF forcing files into the data files that can be read in. One last question, by any chance that you know what will be the easist way to mask out regions based on vegetation cover? For instance, we'd like to run land only simulations withtin grid cells that have grass cover > 80% in California region. I assume we'll have to make changes to both the mesh and surface files. But how should we do that with NUOPC? |
@XiulinGao we have new capability to collapse vegetation types in gridcells down to remove complexity. I think this might be part of what you are referring to. If I understand your statement "only run grid cells where grass is > 80% of the gridcell" I think you want to only run grass PFT gridcells. So you'd mask out non-grass gridcells. One way to do this would be to tell CTSM to run for only the dominant landunit type in the gridcell, as well as only for the dominant vegetation type in the gridcell. This would still run for non-grass grid cells (including urban and lake, and other landunits, as well as other vegetation types), but it would only run with one type so would be faster. The next step would be to mask out running for the non-grass gridcells, which you would then do by changing the mesh file. So I would suggest start with adding this to your user_nl_clm n_dom_landunits = 1 and run that way. Then you could figure out what gridcells you want to mask out and create a new mesh file that masks out the non-grass gridcells. |
This may be a good idea, @ekluzek, but since they're interested in FATES I'm not sure single PFT grid cells are desired? |
n_dom_landunits should work with FATES (although we don't test it). n_dom_pfts won't help for FATES nor work correctly for FATES, but you could do a non-FATES simulation just to figure out what gridcells to mask out. We are adding something that will prevent users from trying to use n_dom_pfts with FATES. It will likely work that way, just not really do anything. But ,doing a small non-FATES simulation should help you to figure out the grid-cells you want to focus on though. |
You'd want to use the same approach as the sparse grid, where the
sparseness is just the grass grid cells (presumably they can be
pre-defined). I'm not sure if the sparse grid has been replicated in NUOPC?
…On Wed, Jun 15, 2022 at 2:58 PM Erik Kluzek ***@***.***> wrote:
n_dom_landunits should work with FATES (although we don't test it).
n_dom_pfts won't help for FATES nor work correctly for FATES, but you could
do a non-FATES simulation just to figure out what gridcells to mask out. We
are adding something that will prevent users from trying to use n_dom_pfts
with FATES. It will likely work that way, just not really do anything. But
,doing a small non-FATES simulation should help you to figure out the
grid-cells you want to focus on though.
—
Reply to this email directly, view it on GitHub
<#1773 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AFABYVCKYYOSUKQABICWOF3VPI7WJANCNFSM5XZISM4A>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
@ekluzek I'm running FATES with only one grass PFT, and interested in using only grassland regions for model benchmarking (so exclude forested area, croplands etc.). So yes, basically we'd want to have a mesh file where non-grass grids are masked out using a threshold value of grass cover. We could of course just run the whole CA regions and then mask out non-grassland grids using land cover data (e.g. NLCD), but since we are doing high resolution runs this would be computationally expensive. I think this might be a good way to go. But what about using land cover information to mask out non-grass grids in the mesh file directly? Is that possible? if it is possible, any change need to be made for surface data as well? David mentioned sparse grid, which I'm not familiar with. but it seems that with this approach we can turn off selectively run in certain grids with some dort of definition? Thank you all for the thoughts on this, the discussion has been very informative and helpful! |
Update of progress (working on cheyenne) TODO This workflow should ultimately appear in the User's Guide. @XiulinGao provided three WRF files with three grids of interest:
To proceed with steps B, one needs the ctsm5.2.mksurfdata branch where the new mksurfdata_esmf is located:
B) Next made surface datasets (fsurdat files) using the mksurfdata_esmf tool
C) Now run the CTSM with the new fsurdat files
P.S. CTSM version: |
@slevisconsulting Thank you Sam for the great work! Just for your information that wrfinput_d01 is in 45km resolution, so it's not a high resolution grids. But the whole workflow seems working pretty well! I'm still working on the reprocessing of the 9km res WRF forcing, which is moving quite slow. Hopefully we can put everything together to do a test run in California soon using WRF forcing. Of course, still have to figure out how to run the 'sparse grid' using some vegetation cover mask. cheers |
Documenting process similar to above but starting from @XiulinGao's @XiulinGao provided monthly datm files for 1981 for testing. I can jump ahead to step A4. I'm documenting here only steps that differ from above:
C7) Simulation successful (5 days). CTSM version: D1) Update user_nl_datm_streams to include the next 3 lines three times (i.e. repeated for Precip and for TPQW):
D2) Update env_run.xml
Simulation successful (30 days)! PS. @mvertens recommended changing PIO_TYPENAME to pnetcdf for faster i/o (that is, writing to history and restarts). I haven't tested, yet. |
Next steps from 2022/7/19 meeting with @XiulinGao @lmkueppers @ckoven @pollybuotte In the case that I described above (wrf_CA_01) which runs on a wrf grid (147x151), I will limit the simulation to grid cells with C3 grass >= 80% according to the fsurdat pft data:
Simulation completed successfully: |
I am consolidating the instructions that I have posted over time in this issue |
I have updated the above mentioned google doc to include a simpler set of instructions for running regional CTSM on a regular 1-degree grid. Comments always welcome. |
How about transfering the google doc to a Github Discussion in the Q&A section? I.e similar to @adrifoster single point NUOPC instructions: #1833 |
Seems like a good idea. I'm open to that. |
Performance optimization is:
|
We need a clearer workflow for how users can run high resolution regional cases.
Briefly, Xiulin is wanting to run a high resolution CTSM-FATES case over regions of California with DATM inputs that are archived from a WRF simulation. @lmkueppers and @ckoven is this something you've done previously? Moving forward, encouraged use of nuopc, and thought the following would need to be done:
Here are the questions that may trip us up.
I'm sure there are additional considerations I'm not thinking about here, but wanted to move this discussion onto github to avoid confusion
The text was updated successfully, but these errors were encountered: