-
Notifications
You must be signed in to change notification settings - Fork 18
Open
Labels
Description
Hey guys,
I've used your objective mapping function scaloa and noticed there is a simple way to reduce memory usage.
The variables d2 and dc2 can occupy a huge memory space, so deleting them after defining both correlation and cross correlation matrices (A,C, respectively) and before inverting the matrix is useful. In one of my cases, it it frees up a few gbs of memory (of course, this depends on both grid and data).
(...)
d2 = ((np.tile(x, (n, 1)).T - np.tile(x, (n, 1))) ** 2 +
(np.tile(y, (n, 1)).T - np.tile(y, (n, 1))) ** 2)
nv = len(xc)
xc, yc = np.reshape(xc, (1, nv)), np.reshape(yc, (1, nv))
# Squared distance between the observations and the grid points.
dc2 = ((np.tile(xc, (n, 1)).T - np.tile(x, (nv, 1))) ** 2 +
(np.tile(yc, (n, 1)).T - np.tile(y, (nv, 1))) ** 2)
# Correlation matrix between stations (A) and cross correlation (stations
# and grid points (C))
A = (1 - err) * np.exp(-d2 / corrlen ** 2)
C = (1 - err) * np.exp(-dc2 / corrlen ** 2)
if 0: # NOTE: If the parameter zc is used (`scaloa2.m`)
A = (1 - d2 / zc ** 2) * np.exp(-d2 / corrlen ** 2)
C = (1 - dc2 / zc ** 2) * np.exp(-dc2 / corrlen ** 2)
# here!!!!!!!!! <----------
del(d2, dc2)
(...)