4

I'm trying to relate a near shore tidal signal (point A) to 3 points along a long model boundary (points B C D). I want to possibly have a relationship between B C D with which we can convert A predictions into B C and D. At the moment I'm doing a single phase shift, an amplitude ration for levels above zeros, an amplitude ration for levels below zero and a mean level shift.

This creates a kink in the Tidal signal at Peak ebb and Peak flood and results in the model over predicting ebb currents. I was wondering if anyone is aware of a more complex relationship for this sort of transformation?

One thing I would like to capture is the difference in phase shift between high and low water (for example the ration of period of the positives to the period of the negatives might be different for the different points).

An example algorithm for current process.

A = vector (size n x 1 ) units meters

time_A = vector (size n x 1 )

ph_B = phase shift for AvsB.

pos_amp_B = positive amplitude ration.
neg_amp_B = negative amplitude ration.

B_mean = long term mean of B.

A_mean = long term mean of A.

for i = 1:n
    a = A(i) - A_mean
    if a > 0
       B(i) = a*pos_amp_B
    else
       B(i) = a*neg_amp_B
    end
    time_B(i) = time_A(i) = ph_B
    B(i) = B(i) + B_mean
end

BTW: The relationship is based on about 6 months of data.

EDIT 1: Well, firstly just think of two sinusoidal signals (ie. amplitude, phase shift), but not regular, so for example the period is 12.5 hrs but the slopes and periods of the positive half and negative half aren't all the same. You don't need any contextual knowledge. Im just looking for a transformation algorithm.

EDIT 2:

Here's a pic of the timeseries and the fft comparisons (fft focused on frequencies of high energy (12.5 hrs (semidiurnal)), just to give idea not all frequencys are so scaled nicely). Black is A. green in zeros line.

Water Level [m] timeseries (top) and fft analysis (bottom)

Alex Byasse
  • 322
  • 2
  • 5
  • 16
  • 1
    Can you give a link to information on what the source and target signals are supposed resemble? Or maybe a plot of what you'd like the relationship to look like? Or ideally, can you couch your question in a way that doesn't require domain-specific knowledge? – Andy Jones Dec 19 '13 at 01:37
  • This is out of my box of knowledge but I think some measured data are necessary to share. Also will be superb to distinct normal tidal values, earthquake values, tsunami values, + other parameters like temperature of air/water and wind direction/speed/variation + a little map sketch of measuring stations and relation to table values in time (like where is North). without these data is a prediction not possible I think. O and also the properties of water measured not all seas have the same salts concentrations which affects all ... – Spektre Jan 08 '14 at 10:05
  • when you correlate the data (of the same class) only then you should see the relations between points ... So after that is just the mater of identify the class and use the correct relation equation ... Do not forget that if you do this for one place ... it can be wrong for another – Spektre Jan 08 '14 at 10:11
  • Well, firstly just think of two sinusoidal signals (ie. amplitude, phase shift), but not regular, so for example the period is 12.5 hrs but the slopes and periods of the positive half and negative half aren't all the same. You don't need any contextual knowledge. Im just looking for a transformation algorithm. – Alex Byasse Jan 09 '14 at 00:43

3 Answers3

2

Without a more detailed knowledge of your domain, it's difficult to provide a definitive answer for you. I will make the assumption here that your tidal behaviour is a linear time invariant (LTI) system. From the data you have shown in your question, this looks to be a reasonable assumption.

So now you can create your B, C and D signals by simply applying an amplitude and phase adjustment to your signal A. There are several ways to do this; below I have done it by multiplying A by a complex number. Adjust the amplitude and phase of the complex number to give the result you need. Here's an example written in Matlab code:

% Create an example signal at location 'A'
t = 0:0.1:10;
A = 0.35.*sin(2.*pi.*0.5.*t) + 1.*sin(2.*pi.*0.5175.*t) + 0.3.*sin(0.5255.*t);

% We want a complex version of A, so let's apply a Hilbert transform to it
A = hilbert(A);

% Now we can create the other signals by transforming the amplitude and
% phase. Exactly what amplitude and phase to apply needs to be determined.
B = 0.9*exp(j*0.1).*A;
C = 0.8*exp(j*0.4).*A;
D = 0.7*exp(j*0.6).*A;

% Plot what these signals look like
figure(1); hold on;
plot(t,real(A),'k');
plot(t,real(B),'r');
plot(t,real(C),'g');
plot(t,real(D),'b');
xlabel('Time');
ylabel('Amplitude');
legend('A','B','C','D');

This will produce a plot very similar in appearance to the picture you posted in your question. If your tidal behaviour cannot be approximated by an LTI system, then you may have to perform some more complex non-linear modelling.

Hope that helps!

Siskin
  • 163
  • 9
  • Thanks for the answer, but what do you mean by "detailed knowledge of my domain"? I've given you the fact that they are tide signals and that the relationships are not linear. The rising and dropping levels have different slopes and and already my current algorithm already puts a different amplitude factor for positive and negative. Why do you use complex numbers? – Alex Byasse Jan 16 '14 at 23:04
  • I think its just kind of sin shifting in complex form (but I am too lazy to look for the equation so i may be wrong). PS. do not forget that FFT is complex so you have to apply the imaginary part which 'corresponds' to shift. if you do not want to use complex domain then you have to compute the shift your self (look my answer there is one way to do it) – Spektre Jan 26 '14 at 10:26
2

Models for tidal predictions are very very complex.

For more precise predictions you will need more data. Have a look at the following paper (unfortunately written in German; I'm not aware of an english translation):

Das Nordseemodell der BAW zur Simulation der Tide in der Deutschen Bucht

Fortunately this paper contains lot of tables and pictures which can be understood without knowing the German language.

In summary: Beside the tidal levels at point A, B, C, D you certainly need some approximation of the depth profile of the sea floor and you will need wind data for your computations. And only six months of real world data are not enough: You will need at least a year of data to cover all seasons.

The software referenced on page 93 of the paper has been put under the GPLv2 in 2010 and can be found here

pefu
  • 480
  • 4
  • 12
0

This looks similar to a forced oscillation (driven by the moon) with disturbances in the sea-air system.

Could you set up a system of four ODE's and an external source of force, like:

   <<< tidal force field >>>

|         |         |         |
o -vvvvv- o -vvvvv- o -vvvvv- o
A         B         C         D

where the -vvvvv- is supposed to resemble mechanical springs.

All the springs are also affected by the moon, probably with some slight phase shift if the points are further apart.

You could likely decide the constants in the resulting matrix for the system by using some method-I-wish-I-knew given in stochastic differential equations. The approach with stochastical differential equations seems to be used in hydrology (paywall), so maybe I'm not too far off.

If you want to live on the edge, you could try to make the couplings behave slightly non-linear (ie, flatten out slightly when reaching max, which could be thought of as the increasing surface of the sea when it rises).

claj
  • 5,172
  • 2
  • 27
  • 30