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

SCHISM and WW3 RT system cases (main issue) #95

Open
1 of 5 tasks
janahaddad opened this issue May 21, 2024 · 29 comments
Open
1 of 5 tasks

SCHISM and WW3 RT system cases (main issue) #95

janahaddad opened this issue May 21, 2024 · 29 comments
Assignees

Comments

@janahaddad
Copy link
Collaborator

janahaddad commented May 21, 2024

General plan:

Plan is to separate "official" RT system, which we'll keep light-weight and attached to the model-level. The heavier cases will eventually live on the app-level as a separate testing-suite, and are being tracked in #92

this issue is specific to RT system cases for SCHISM and WW3 coupling. The setup guidelines are: Shinnecock mesh + real hurricane winds. (updated below based on 8/19 discussions)

Background

@uturuncoglu @yunfangsun @mansurjisan @anntsay @saeed-moghimi-noaa
During our meeting this week (8/19) we discussed doing a much-needed clean up and reset of the RT system. We want to eventually replace these existing RTs to use real atmospheric forcing from hurricanes, such that they can be properly baselined using observational data (i.e. a validated baseline can be created). This is a pressing need to enable the SCHISM+WW3 coupling work being done (see #125), and also to enable the ufs-coastal AWS S3 bucket by EPIC team (see #84). The current priority is therefore the SCHISM and WW3 configurations, then ROMS and ADCIRC configurations.

Domain options

Our current SCHISM, WW3, and ADCIRC RTs are using the Shinnecock Inlet, NY domain (with synthetically generated atm forcing, "ike"). However @yunfangsun found that historical observations within this domain are very limited.

We talked about possibly using a very coarse full basin domain like ADCIRC EC2001 mesh, but after discussions with @aliabdolali, this is still too large (>200k nodes) for RTs. We may want to build up the RT cases to include full basin domains for testing particular physics in the future, but our current goal is to keep things as light as possible to test the basic coupling.

@aliabdolali suggested using the ~23k node Duck, NC domain that USACE-ERDC has used/validated for WW3, with BCs and forcing for I believe the H. Sandy case (right @aliabdolali ?). There are ample observations in this area along the USACE Field Research Facility pier. @josephzhang8, would you be able to provide a similar Duck, NC domain case for SCHISM?

wavewatchiii_mesh

@uturuncoglu let us know what you think of the draft plan below.

[draft] RT system development plan (SCHISM, WW3 for now):

Related:

Future step:

@janahaddad
Copy link
Collaborator Author

moving these comments to this relevant issue:

@yunfangsun which storm are you planning on for the Shinnecock case? I realized yesterday we said H. Ian but that wouldn't make much sense for that domain. Sandy?

@janahaddad

I think ELSA 2021 and HENRI 2021 could fit the Shinnecock mesh.

https://en.wikipedia.org/wiki/Hurricane_Henri#/media/File:Henri_2021_path.png https://en.wikipedia.org/wiki/Hurricane_Elsa#/media/File:Elsa_2021_path.png

@janahaddad janahaddad moved this from Todo to Backlog in ufs-coastal project Jun 17, 2024
@janahaddad janahaddad changed the title SCHISM+WW3 RT system cases (Shinnecock domain) SCHISM and WW3 RT system cases Aug 20, 2024
@janahaddad
Copy link
Collaborator Author

@uturuncoglu @mansurjisan @yunfangsun see updated Issue above...

@josephzhang8 would you have available to share with us a SCHISM case for a similar Duck NC domain for Hurricane Sandy?

@aliabdolali
Copy link

@janahaddad yes, we have continues observations at Duck covering a couple of major events like Irene 2011, Sandy 2022, Florence 2018, Dorian 2019, ... and a couple of Nor'easters.
We have a workflow to crop wind, water level, wave for any period of time and use it for our VV.
@josephzhang8 indicated SCHISM has a case for Duck, we can use it instead of our existing meshes. WW3 is quite robust and can take any mesh.

@josephzhang8
Copy link
Collaborator

Yes I can set up Duck for Sandy. The Duck domain in SCHISM test suite is small so we'd need good b.c. for WW3.
@aliabdolali: Dan in my team is learning to set up WW3, but he's having trouble generating b.c. for real cases like this. Would you be willing to help?

@josephzhang8
Copy link
Collaborator

You can see the Duck case here (accept the warning):
https://columbia.vims.edu/schism/schism_verification_tests/Test_WWM_Duck/

@josephzhang8
Copy link
Collaborator

I'd mention that it's in Cartesian system with unknown projection. I'm contacting our French collaborators for lon/lat.

@aliabdolali
Copy link

Yes I can set up Duck for Sandy. The Duck domain in SCHISM test suite is small so we'd need good b.c. for WW3. @aliabdolali: Dan in my team is learning to set up WW3, but he's having trouble generating b.c. for real cases like this. Would you be willing to help?

@josephzhang8 the code to generate BCs for WW3 are all avaiable on wave-tools repo https://github.com/erdc/wave-tools
where you can generate spec from hs, tp and th1m.
let me know if you need help using it.

@danishyo
Copy link

Thanks @aliabdolali , the link seems not working (404 error), after searching online, and I found https://github.com/erdc/proteus/blob/main/docs/source/tools/wave_tools.rst
Is this the right one to generate BCs nest.ww3?

For the BCs generation, now I can produce nest.ww3 by using buoy spec ascii file (e.g: mww3.13130.spec) with ww3_bound.
But I just wonder if we have WW3 outputs nc files (dir, hs, fp, spr, t02), could these files being transform into WW3 require one ( efth, frequency, direction)?
Or we can directly use WW3 outputs (nc files or out_*.ww3) to derive nest.ww3 (and restart.ww3 for i.c. )?

@aliabdolali
Copy link

Thanks @aliabdolali , the link seems not working (404 error), after searching online, and I found https://github.com/erdc/proteus/blob/main/docs/source/tools/wave_tools.rst Is this the right one to generate BCs nest.ww3?

For the BCs generation, now I can produce nest.ww3 by using buoy spec ascii file (e.g: mww3.13130.spec) with ww3_bound. But I just wonder if we have WW3 outputs nc files (dir, hs, fp, spr, t02), could these files being transform into WW3 require one ( efth, frequency, direction)? Or we can directly use WW3 outputs (nc files or out_*.ww3) to derive nest.ww3 (and restart.ww3 for i.c. )?

I added you to this private repo, you can access that link if you try again.
There is no option to use wave bulk statistics directly as BC, so you need to preprocess them and the scrips are in the wave-tools.

@danishyo
Copy link

Thanks @aliabdolali , the link seems not working (404 error), after searching online, and I found https://github.com/erdc/proteus/blob/main/docs/source/tools/wave_tools.rst Is this the right one to generate BCs nest.ww3?
For the BCs generation, now I can produce nest.ww3 by using buoy spec ascii file (e.g: mww3.13130.spec) with ww3_bound. But I just wonder if we have WW3 outputs nc files (dir, hs, fp, spr, t02), could these files being transform into WW3 require one ( efth, frequency, direction)? Or we can directly use WW3 outputs (nc files or out_*.ww3) to derive nest.ww3 (and restart.ww3 for i.c. )?

I added you to this private repo, you can access that link if you try again. There is no option to use wave bulk statistics directly as BC, so you need to preprocess them and the scrips are in the wave-tools.

@aliabdolali many thanks, I will have a look.

@uturuncoglu
Copy link
Collaborator

I'd mention that it's in Cartesian system with unknown projection. I'm contacting our French collaborators for lon/lat.

Yes, it would be nice to have Lon/lat since CMEPS will complain about Cartesian.

@janahaddad janahaddad self-assigned this Aug 26, 2024
@josephzhang8
Copy link
Collaborator

Hi all-
I've got the lon/lat mesh for Duck and added it to the SCHISM svn:

https://columbia.vims.edu/schism/schism_verification_tests/Test_WWM_Duck/hgrid.ll

@yunfangsun
Copy link
Collaborator

Hi @aliabdolali ,

I see the duck_case_1.tgz you shared, it only has the results as follows.

ww3.201210.nc
ww3.P02_201210_src.nc
ww3.P03_201210_src.nc
ww3.P04_201210_src.nc
ww3.P05_201210_src.nc
ww3.P06_201210_src.nc
ww3.P08_201210_src.nc
ww3.P11_201210_src.nc
ww3.P17_201210_src.nc
ww3.P26_201210_src.nc

Could you please share us the configuration files, such as switch, namelists, forcings, points, etc.?

Thank you!

@yunfangsun
Copy link
Collaborator

The current WW3 mesh has 33586 cells and 17054 nodes: Image

The significant wave height is as follows, and the maximum hs is less than 5cm for this case.

https://drive.google.com/drive/folders/1b8iDJ5rOpB2Zf6YZFteMLab4G03t-UgT

@danishyo
Copy link

danishyo commented Sep 9, 2024

Hi @yunfangsun, I have similar result, see the following figure (SCHISM-WW3):
image

SCHISM-WWM results (Longuet-Higgins coupling) looks like
image

I notice currently only SCHISM surface U/V coupling to WW3 (So_u & So_v), elevation is missing (So_h).
But this should not affect results so much, right?

@yunfangsun
Copy link
Collaborator

Hi @danishyo , Thank you for letting us know!

The elevation exchange part should not change the SWH from 3m to 5cm, and from today's discussion with @uturuncoglu , the elevation exchange capability will be included in the coming ufs-coastal release.

Therefore, the WW3 results should come from the WW3 configuration. Could you please share the SCHISM-WWM configuration (including the results), and what are the differences in the configuration between the SCHISM-WW3 and SCHISM-WWM cases? Also, where do the spectra:DUCK94_wave_spectra_8m_array_6.nc come from?

@mansurjisan, I have copied @danishyo 's folder /scratch1/06923/hyu05/FV3/ufs-coastal/Test_Duck/couple_test on Frontera to /work2/noaa/nosofs/yunfangs/duck/couple_test on Hercules, you can see the results there.

Thank you!

@danishyo
Copy link

danishyo commented Sep 9, 2024

Hi @yunfangsun, thanks for the information.
You can find my test results & settings on Frontera.

SCHISM-WWM: /scratch1/06923/hyu05/FV3/ufs-coastal/Test_Duck/Test_WWM_Duck, you can find coupling results (Longuet-Higgins) in outputs_LON (out2d_?.nc), this test comes from SCHISM WWM standard test and has DUCK94_wave_spectra_8m_array.nc as inputs.

Standard-alone WW3: /scratch1/06923/hyu05/FV3/ufs-coastal/Test_Duck/ww3_run, this one has similar results like SCHISM-WW3, also used to generate inputs for UFS inputs, DUCK94_wave_spectra_8m_array_6.nc is coming from SCHISM-WWM test case, I have to did some modification to original nc file to let ww3_bounc run without problem.
Please let me know if I missed any WW3 setting.

I do have 1 question about WW3 setting, is there any difference between using ww3_grid.inp & ww3_grid.nml when generating mod_def.ww3? I notice you are using ww3_grid.inp in ian_hsofs case.

@danishyo
Copy link

danishyo commented Sep 9, 2024

I also noticed radial stress (like wavImp_Sw_wavsuu) in CMEPS history outputs (ufs.cpld.cpl.hi*nc) has weird large values (like >100000.), but in WW3 nc outputs (like SXX), the values are usually < 1.0.
And CMEPS output currents (wavExp_So_u, wavExp_So_v) are 0.

@yunfangsun
Copy link
Collaborator

Hi @danishyo ,

The ww3_grid.inp and ww3_grid.nml make no differences in producing mod_def.ww3.

@yunfangsun
Copy link
Collaborator

There are totally 3 hurricanes passed the Duck region since 2010, maybe we could work for these 3 hurricanes for the RT.

Image

@yunfangsun
Copy link
Collaborator

Hi @danishyo ,

Could I know how to convert the location in DUCK94_wave_spectra_8m_array.nc to longitude and latitude? as the location in the spectra is (910.45,828.77,7.9), I think this is the problem.

@danishyo
Copy link

I didn't touch that part, I believe it is in Cartesian in original nc, thanks for pointing out.
There is a matlab script to convert mesh to lat/lon, you can try this one, frfCoord.m (in Test_WWM_Duck folder)

@yunfangsun
Copy link
Collaborator

Hi @danishyo ,

Thank you for letting me know, I will try it.

@danishyo
Copy link

I create an update nc DUCK94_wave_spectra_8m_array_ll.nc on frontera, the location in the nc should be -75.7429, 36.1873.
I will re-run all tests with this update nc to see if any difference.

@janahaddad
Copy link
Collaborator Author

janahaddad commented Sep 10, 2024

see also the update here from Ufuk to test this with vortex formalism (and surface elev exchange): oceanmodeling/WW3#11 (comment)

@janahaddad
Copy link
Collaborator Author

Updates as of 9/10:

@janahaddad janahaddad moved this from Backlog to In Progress in ufs-coastal project Sep 10, 2024
@janahaddad janahaddad changed the title SCHISM and WW3 RT system cases SCHISM and WW3 RT system cases (main issue) Sep 11, 2024
@mansurjisan
Copy link

Hi @danishyo , thank you for your assistance in setting up the Duck, NC test case for the UFS Coastal App. I am currently trying to generate the elev.th file used in this case. Could you share the code you used to create this file or provide guidance on the steps necessary to generate it? I attempted to use PySCHISM but couldn't locate a function for generating the time-varying surface water elevation in ASCII format.

@saeed-moghimi-noaa
Copy link

Hi @danishyo , thank you for your assistance in setting up the Duck, NC test case for the UFS Coastal App. I am currently trying to generate the elev.th file used in this case. Could you share the code you used to create this file or provide guidance on the steps necessary to generate it? I attempted to use PySCHISM but couldn't locate a function for generating the time-varying surface water elevation in ASCII format.

@mansurjisan
Please initiate an issue on Pyschism side as a requested feature if you made sure the functionality is not exist.

@danishyo
Copy link

Hi @mansurjisan, my DUCK test case is from standard SCHISM-WWM test case, elev.th is already inside, if you like to generate it for your own case, it is only 2 columns ascii file, 1st column represent time (sec), 2nd is elevation (m). You can also find more details at schism online manual https://schism-dev.github.io/schism/master/input-output/optional-inputs.html#th-ascii

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Development

No branches or pull requests

8 participants