Skip to content

Commit

Permalink
trying to fix it
Browse files Browse the repository at this point in the history
  • Loading branch information
defreitasL committed Aug 13, 2024
1 parent 2e08e13 commit 5112f03
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 42 deletions.
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"workbench.colorTheme": "Dracula Soft"
"workbench.colorTheme": "Monokai"
}
9 changes: 8 additions & 1 deletion IHSetShoreFor.egg-info/PKG-INFO
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: IHSetShoreFor
Version: 1.5.2
Version: 1.5.3
Summary: IH-SET Miller and Dean (2004)
Home-page: https://github.com/defreitasL/IHSetShoreFor
Author: Lucas de Freitas Pereira
Expand All @@ -14,3 +14,10 @@ Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: xarray
Requires-Dist: scipy
Requires-Dist: datetime
Requires-Dist: spotpy
Requires-Dist: IHSetCalibration@ git+https://github.com/defreitasL/IHSetCalibration.git
Requires-Dist: IHSetUtils@ git+https://github.com/IHCantabria/IHSetUtils.git
14 changes: 11 additions & 3 deletions IHSetShoreFor/calibration.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,15 +61,23 @@ def __init__(self, path):

self.split_data()

if self.switch_Yini == 0:
self.Yini = self.Obs_splited[0]

cfg.close()
wav.close()
ens.close()

mkIdx = np.vectorize(lambda t: np.argmin(np.abs(self.time - t)))
self.idx_obs = mkIdx(self.time_obs)

over_length = len(np.arange(1, (self.phi*2*24)+1, self.dt))

self.idx_obs = self.idx_obs[self.idx_obs>over_length]
self.idx_obs_splited = self.idx_obs_splited[self.idx_obs_splited>over_length]
self.Obs_splited = self.Obs_splited[over_length:]
self.time_obs_splited = self.time_obs_splited[over_length:]

if self.switch_Yini == 0:
self.Yini = self.Obs_splited[0]

if self.switch_Yini == 0 and self.switch_D == 0:
def model_simulation(par):
phi = par['phi']
Expand Down
49 changes: 13 additions & 36 deletions IHSetShoreFor/shoreFor.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,53 +3,30 @@

def shoreFor(P, Omega, dt, phi=0, D=0, Sini=0, cp=0, cm=0):
'''
This function calculates the equilibrium profile and the profile evolution
This function apply the ShoreFor (Davidson et al. 2013) model
'''

ii = np.arange(0, (D-1)*24, dt)
phivecP = 10 ** (-np.abs(ii) / (phi * 24))
IDX = len(phivecP)

phivecP = np.hstack((np.zeros(IDX), phivecP))

filter_c = np.flip(phivecP / np.sum(phivecP))

OmegaEQ = convolve(Omega - np.mean(Omega), filter_c, mode='same') + np.mean(Omega)

ii = np.arange(1, (D*24)+1, dt)
filter = 10 ** (-np.abs(ii) / (phi * 24))
OmegaEQ = convolve(Omega, filter, mode='same')
OmegaEQ = OmegaEQ / np.sum(filter)
F = (P ** 0.5) * (OmegaEQ - Omega) / np.std(OmegaEQ)

# F[:IDX - 1] = 0
IDX = len(filter)
F[:IDX - 1] = np.nan

S = np.full(len(Omega), np.nan)

rero = F < 0
racr = F >= 0
S[0] = Sini
S[IDX] = Sini

# if flag_r == 0:

# # filter_r = np.hstack((np.zeros(int(N*24/dt)), np.ones(int(N*24/dt))))
# # filter_r = np.ones(int(N*24/dt))
# # F_plus = convolve(F * racr, filter_r, mode='same')
# # F_minus = convolve(F * rero, filter_r, mode='same')
# F_plus = np.sum(F * racr)
# F_minus = np.sum(F * rero)
# r = np.absolute(F_plus / F_minus)
# # r_rero_F = r[1:] * rero[1:] * F[1:]
# r_rero_F = r * rero[1:] * F[1:]
# racr_F = racr[1:] * F[1:]
# # r_rero_F_prev = r[:-1] * rero[:-1] * F[:-1]
# r_rero_F_prev = r * rero[:-1] * F[:-1]
# racr_F_prev = racr[:-1] * F[:-1]
# S[1:] = 0.5 * dt * c * np.cumsum(r_rero_F + racr_F + r_rero_F_prev + racr_F_prev) + S[0]
# else:
rero_F = cm * rero[1:] * F[1:]
racr_F = cp * racr[1:] * F[1:]
rero_F = cm * rero[IDX+1:] * F[IDX+1:]
racr_F = cp * racr[IDX+1:] * F[IDX+1:]

rero_F_prev = cm * rero[:-1] * F[:-1]
racr_F_prev = cp * racr[:-1] * F[:-1]
rero_F_prev = cm * rero[IDX:-1] * F[IDX:-1]
racr_F_prev = cp * racr[IDX:-1] * F[IDX:-1]

S[1:] = 0.5 * dt * np.cumsum(rero_F + racr_F + rero_F_prev + racr_F_prev) + S[0]
S[IDX+1:] = 0.5 * dt * np.cumsum(rero_F + racr_F + rero_F_prev + racr_F_prev) + S[IDX]


return S, OmegaEQ
Binary file added dist/ihsetshorefor-1.5.3.tar.gz
Binary file not shown.
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

setup(
name='IHSetShoreFor',
version='1.5.2',
version='1.5.3',
packages=find_packages(),
include_package_data=True,
install_requires=[
Expand Down

0 comments on commit 5112f03

Please sign in to comment.