Tidal Forcing File
Tidal Forcing File
I am just starting to create my first tidal forcing file and I have a few questions. I have created a blank file based off of frc_tides.cdl. Where is time in this file? Do I need to add it manually? To me it seems a tidal forcing file should contain spatial arrays of tidal heights over time. Is this not how it works? I also would be interested to hear any suggestions as to which sites to download data from. Thanks.
Re: Tidal Forcing File
I believe most people get their tides from TPXO.
There's matlab software and other options for extracting them into ROMS format. ROMS wants the tidal constituents, not a time-series. ROMS is not expecting to do the long-period tidal corrections, so it's probably best to have matlab take care of that and then run for up to a year or two for each tidal file (there's a challenging 18-year cycle).
There's matlab software and other options for extracting them into ROMS format. ROMS wants the tidal constituents, not a time-series. ROMS is not expecting to do the long-period tidal corrections, so it's probably best to have matlab take care of that and then run for up to a year or two for each tidal file (there's a challenging 18-year cycle).
Re: Tidal Forcing File
Great. I was looking at TPXO Atlas 8. Unfortunately, I do not have a Matlab license available. I have seen a Python script here:
https://github.com/ESMG/pyroms/blob/mas ... ke_tide.py
Also, I see another package that may be of use here:
https://ocefpaf.github.io/python4oceano ... 7/pytides/
But basically, for each grid point I should end up with several time-invariant tidal components?
https://github.com/ESMG/pyroms/blob/mas ... ke_tide.py
Also, I see another package that may be of use here:
https://ocefpaf.github.io/python4oceano ... 7/pytides/
But basically, for each grid point I should end up with several time-invariant tidal components?
Re: Tidal Forcing File
Yes, tidal elevation and phase. There's no reason not to do the tidal currents as well, which involve four fields per tidal constituent.
Re: Tidal Forcing File
So you mean the UV data? I have found a DAP server for the hf data:
http://geoport.whoi.edu/thredds/dodsC/u ... talog.html
But unfortunately, I don't see the UV data. Would you happen to know any DAP servers for TPXO8? I would like to avoid downloading 20 GB of data if possible.
http://geoport.whoi.edu/thredds/dodsC/u ... talog.html
But unfortunately, I don't see the UV data. Would you happen to know any DAP servers for TPXO8? I would like to avoid downloading 20 GB of data if possible.
Re: Tidal Forcing File
So I decided to go with ADCIRC. It gives me higher resolution, required less hard drive space to install, and has decent documentation online. I created the dataset, and now I just need to get the data into my forcing file. I get two output files, elev_hc.out and vel_hc.out. In elev_hc.out the first couple lines look like this:
The columns represent amplitude and phase angle of the M2 tidal component, respectively. For vel_hc.out, the first couple lines look like:
The fours columns represent the u and v velocities and phase angles, respectively. Hopefully, this is in meters, but the included documentation doesn't seem to mention that.
The elevation and phase angle are straightforward enough. I assume I put the vector sum of the O1, K1, N2, M2, S2, M4, and M6 components into the variables tide_Eamp and tide_Ephase. I'm not quite as sure with velocities. Would I also just do the vector sums of the velocity components and put those into tide_Cangle and tide_Cphase? If this is the case, what am I supposed to put into tide_Cmin and tide_Cmax?
EDIT: hmm, it appears the default tide CDL provided is missing tide_Uamp, tide_Uphase, tide_Vamp, and tide_Vphase, but those may should be calculated internally. I have come across this... https://www.myroms.org/documentation/tidal_ellipse.ps. I hope I can find an easier solution than having to make the calculations manually.
Code: Select all
M(2)
0.021839 190.317454
Code: Select all
M(2)
0.025250 51.880 0.018063 233.536
The elevation and phase angle are straightforward enough. I assume I put the vector sum of the O1, K1, N2, M2, S2, M4, and M6 components into the variables tide_Eamp and tide_Ephase. I'm not quite as sure with velocities. Would I also just do the vector sums of the velocity components and put those into tide_Cangle and tide_Cphase? If this is the case, what am I supposed to put into tide_Cmin and tide_Cmax?
EDIT: hmm, it appears the default tide CDL provided is missing tide_Uamp, tide_Uphase, tide_Vamp, and tide_Vphase, but those may should be calculated internally. I have come across this... https://www.myroms.org/documentation/tidal_ellipse.ps. I hope I can find an easier solution than having to make the calculations manually.
Re: Tidal Forcing File
I managed to get the data I needed by translating the MATLAB code from here into Python:
https://www.myroms.org/index.php?page=forcing
I can't make any guarantees, but it seems to work.
https://www.myroms.org/index.php?page=forcing
I can't make any guarantees, but it seems to work.
Code: Select all
def ap2ep(Au, PHIu, Av, PHIv):
PHIu = PHIu / 180. * np.pi
PHIv = PHIv / 180. * np.pi
# Make complex amplitudes for u and v
i = np.sqrt(-1+0j)
u = Au * np.exp(-i * PHIu)
v = Av * np.exp(-i * PHIv)
# Calculate complex radius of anticlockwise and clockwise circles
wp = (u + i * v) / 2. # for anticlockwise circles
wm = np.conj(u - i * v) / 2. # for clockwise circles
# and thier amplitudes and angles
Wp = np.abs(wp)
Wm = np.abs(wm)
THETAp = np.angle(wp)
THETAm = np.angle(wm)
# calculate the ellipse parameters
SEMA = Wp + Wm
SEMI = Wp - Wm
ECC = SEMI / SEMA
PHA = (THETAm - THETAp) / 2.
INC = (THETAm + THETAp) / 2.
PHA = PHA / np.pi * 180
INC = INC / np.pi * 180
THETAp = THETAp / np.pi * 180
THETAm = THETAm / np.pi * 180
THETAp[THETAp < 0] = THETAp[THETAp < 0] + 360
THETAm[THETAm < 0] = THETAm[THETAm < 0] + 360
PHA[PHA < 0] = PHA[PHA < 0] + 360
INC[INC < 0] = INC[INC < 0] + 360
return(PHA, INC, SEMI, SEMA)
Re: Tidal Forcing File
So something is wrong with my tidal forcing. I am getting an extremely tidally dominated system, when in reality, my system is mixed between wind and tide. Do I need to adjust viscosity if I add tides? I think it is a units problem. Something is way off. My tidal forcing netcdf file has amplitudes in meters and currents in m/s. The ADCIRC documentation says amplitudes are in units of distance consistent with gravity. I do not know what this means. I am doing O1, K1, N2, M2, S2, M4, and M6 and I have the tide periods as 25.82, 23.93, 12.66, 12.42, 12.00, 6.21, and 4.14 hours, respectively. Does this sound like a units problem, or could something else be causing these outrageous tides?
Re: Tidal Forcing File
Greetings,
I am also having - let's say - a similar problem.
When I am applying tides on my model I get almost
2 times higher amplitude than the actual (I am
comparing with a tide gauge data, see attached figure).
During my tests I change several things and rerun
but the results in all of the cases are more or less
the same. First I tried different values for the
quadratic drag, even high values with very small
timesteps for stability but nothing changed. I tried
the same with log drag and linear drag and again I had
no luck. I also used relative high values for viscosity
(nl_visc2 in ocean.in) and different sponge layers -
from modest factor (3-4) to high (10+) - for my boundaries
but again the problem insists. One last solution was to
smooth a bit more my bathymetry (rx1 from ~ 5 to 4.5),create
new boundary files and rerun. No luck again. I must also
say that the standard model setup - without tidal forcing -
is stable and validated and I don't have reasons to doubt
about it's solution/results.
I am using TPXO8 data and John Luick matlab script to create the
tidal forcing file and I am sure that my phase is the proper one.
I am using 8 constituents, 4 diurnal(O1,K1,Q1,P1) and 4 semi-diurnal
(M2,S2,K2,N2) and running only for a year. My grid resolution is
2km x 2km and covers a part of the Mediterranean sea (Aegean sea).
The cpp flags I use for the tidal run are
ADD_FSOBC
ADD_M2OBC
SSH_TIDES
UV_TIDES
RAMP_TDES
Any help or suggestion will be highly appreciated.
Regards
Giannis
I am also having - let's say - a similar problem.
When I am applying tides on my model I get almost
2 times higher amplitude than the actual (I am
comparing with a tide gauge data, see attached figure).
During my tests I change several things and rerun
but the results in all of the cases are more or less
the same. First I tried different values for the
quadratic drag, even high values with very small
timesteps for stability but nothing changed. I tried
the same with log drag and linear drag and again I had
no luck. I also used relative high values for viscosity
(nl_visc2 in ocean.in) and different sponge layers -
from modest factor (3-4) to high (10+) - for my boundaries
but again the problem insists. One last solution was to
smooth a bit more my bathymetry (rx1 from ~ 5 to 4.5),create
new boundary files and rerun. No luck again. I must also
say that the standard model setup - without tidal forcing -
is stable and validated and I don't have reasons to doubt
about it's solution/results.
I am using TPXO8 data and John Luick matlab script to create the
tidal forcing file and I am sure that my phase is the proper one.
I am using 8 constituents, 4 diurnal(O1,K1,Q1,P1) and 4 semi-diurnal
(M2,S2,K2,N2) and running only for a year. My grid resolution is
2km x 2km and covers a part of the Mediterranean sea (Aegean sea).
The cpp flags I use for the tidal run are
ADD_FSOBC
ADD_M2OBC
SSH_TIDES
UV_TIDES
RAMP_TDES
Any help or suggestion will be highly appreciated.
Regards
Giannis
Re: Tidal Forcing File
Giannis,
It might be timely to mention that I have not updated TPXO2ROMS.m since before 19 April 2017, when Hernan updated the way ROMS keeps time (I haven't updated my ROMS yet either). It isn't obvious to me, from ticket 724, whether TPXO2ROMS.m actually requires updating. First, the ticket says that for time_ref = -2 (which TPXO2ROMS.m assumes is being used), ROMS uses a new and different calendar (one that runs from Jan 1, 4713 BC); then right below that it implies that it still uses the original (NASA) calendar (one that runs from May 23, 1968). If the latter is the case, then TPXO2ROMS.m should still be fine. Perhaps Hernan can clarify.
Of course, if you are using the earlier ROMS, the above is irrelevant.
Looking at your graph, my first suspicion would be that the global TPXO8 solution is too large in the Mediterranean (I assume that the domain is in the Med.). There may be a local high resolution solution on the OSU website for the Mediterranean that would be more accurate.
John
It might be timely to mention that I have not updated TPXO2ROMS.m since before 19 April 2017, when Hernan updated the way ROMS keeps time (I haven't updated my ROMS yet either). It isn't obvious to me, from ticket 724, whether TPXO2ROMS.m actually requires updating. First, the ticket says that for time_ref = -2 (which TPXO2ROMS.m assumes is being used), ROMS uses a new and different calendar (one that runs from Jan 1, 4713 BC); then right below that it implies that it still uses the original (NASA) calendar (one that runs from May 23, 1968). If the latter is the case, then TPXO2ROMS.m should still be fine. Perhaps Hernan can clarify.
Of course, if you are using the earlier ROMS, the above is irrelevant.
Looking at your graph, my first suspicion would be that the global TPXO8 solution is too large in the Mediterranean (I assume that the domain is in the Med.). There may be a local high resolution solution on the OSU website for the Mediterranean that would be more accurate.
John
Re: Tidal Forcing File
Greetings John
first of all many thanks for your reply.
I am using the latest version of ROMS code
and time_ref = -2 still uses the same calendar
with the older versions. Yes my domain
is inside the Mediterranean sea. I forgot to
mention to my previous post that I had already
used the regional solutions of OSU for the
Mediterranean sea. For the 8 constituents that
I am using the resolution is the same with the
global model (1/30 degrees) and the results
were similar with the attached figure.
Any other suggestion?
Kind Regards
Giannis
first of all many thanks for your reply.
I am using the latest version of ROMS code
and time_ref = -2 still uses the same calendar
with the older versions. Yes my domain
is inside the Mediterranean sea. I forgot to
mention to my previous post that I had already
used the regional solutions of OSU for the
Mediterranean sea. For the 8 constituents that
I am using the resolution is the same with the
global model (1/30 degrees) and the results
were similar with the attached figure.
Any other suggestion?
Kind Regards
Giannis
Re: Tidal Forcing File
My second suspicion would be that there is something wrong with the tide gauge. Do you have a reliable set of harmonics? If the amplitudes of the two major harmonics (probably M2 and S2) sum to about .15 m, then the data is in error.
Re: Tidal Forcing File
John
The sum of M2 and S2 harmonics is a bit bigger than 0.15m...
I suppose that I can't use this dataset to validate my results.
Once more any suggestions???
Kind Regards
Giannis
P.S. Sorry editing the post multiple times. I had to double check the harmonics
because I was looking on the wrong dataset
The sum of M2 and S2 harmonics is a bit bigger than 0.15m...
I suppose that I can't use this dataset to validate my results.
Once more any suggestions???
Kind Regards
Giannis
P.S. Sorry editing the post multiple times. I had to double check the harmonics
because I was looking on the wrong dataset
Last edited by ymamoutos on Mon May 15, 2017 12:20 am, edited 1 time in total.
Re: Tidal Forcing File
My suggestion would be to assume your tides are ok, and move on to whatever process you are really interested in. At some point, use t_tide or something to analyse the ROMS hourly data for a point near where your harmonics are from, but don't get too hung up on an exact match to amplitude or phase. By the way most published phases (e.g. Admiralty) are in the local time zone, whereas you are probably running ROMS in UT. For S2 (for example) if the published phases are in a time zone 3 hours ahead of UT, then you have to subtract 90 degrees to match the ROMS/t_tide phase. (Since 3 hours x 30 degrees/hour = 90 degrees.)
Good luck!
John
Good luck!
John
-
- Posts: 12
- Joined: Mon Jan 30, 2012 8:02 pm
- Location: University of Texas at Dallas
Re: Tidal Forcing File
Giannis,
Another thing you might want to look at are your barotropic boundary conditions. If you are using ADD_FSOBC & ADD_U2OBC as well as SSH_TIDES/UV_TIDES, and if the regional model you are downscaling from is not de-tied (i.e. it has tides) you might be giving ROMS the tidal forcing twice, which might also explain why your standard model setup without the tidal forcing works well. If this is the case you can apply a low-pass filter to your barotropic OBC's (SSH/UBAR/VBAR) and combine it with your tide forcing file to get the right solution.
Hope this helps,
-Miguel
Another thing you might want to look at are your barotropic boundary conditions. If you are using ADD_FSOBC & ADD_U2OBC as well as SSH_TIDES/UV_TIDES, and if the regional model you are downscaling from is not de-tied (i.e. it has tides) you might be giving ROMS the tidal forcing twice, which might also explain why your standard model setup without the tidal forcing works well. If this is the case you can apply a low-pass filter to your barotropic OBC's (SSH/UBAR/VBAR) and combine it with your tide forcing file to get the right solution.
Hope this helps,
-Miguel
Re: Tidal Forcing File
So looking at my zeta vs tide gauge data, it seems that the amplitudes of my tides are reasonable, although I must have miscalculated my TIDE_START. Let me show you an example of what I have, and maybe someone can tell me if it looks ridiculous to them. Tides certainly have a big effect on our system. Although the tides are small (1–2 ft usually), the MS Sound is shallow. Still, a little wind can have tremendous affects on currents, so this is just not believable to me. Each frame of this animation represents 3 hours over a 12-day period. The horizontal extent is somewhere on the order of 60–80 miles. Does the model just need more time before wind-driven circulation starts to dampen the tide-driven circulation? I was hoping to test without doing a full model run.
Without tides, the model shows what appears to be reasonable geostrophic current patterns, but I haven't gotten my model to the point where I'm ready to start validating.
Without tides, the model shows what appears to be reasonable geostrophic current patterns, but I haven't gotten my model to the point where I'm ready to start validating.
Re: Tidal Forcing File
Greetings
Miguel thanks for your reply. I am using two different regional models (Global Mercator with 1/12 degrees resolution and MFS 1/16 degrees resolution) to create the input data for mine and to check for any significant differences on my results. According to myocean Copernicus service documentation none of the models include tides. I will check my results with another tide gauge data that I have for the same time period and then I will decide what I am going to do...
Again many thanks for your suggestion and willingness to help. I appreciated.
Kind Regards
Giannis
Miguel thanks for your reply. I am using two different regional models (Global Mercator with 1/12 degrees resolution and MFS 1/16 degrees resolution) to create the input data for mine and to check for any significant differences on my results. According to myocean Copernicus service documentation none of the models include tides. I will check my results with another tide gauge data that I have for the same time period and then I will decide what I am going to do...
Again many thanks for your suggestion and willingness to help. I appreciated.
Kind Regards
Giannis