X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=epclust%2FR%2Futils.R;h=708367482bbd093ff18166d29d5df1968bdfb77b;hb=0e2dce80a3fddaca50c96c6c27a8b32468095d6c;hp=347c2c6d9c1de10bb366de56ca83b0bc7ab99181;hpb=23844f603a363475e85ed1cb4b8620f139bcffdf;p=epclust.git diff --git a/epclust/R/utils.R b/epclust/R/utils.R index 347c2c6..7083674 100644 --- a/epclust/R/utils.R +++ b/epclust/R/utils.R @@ -10,8 +10,9 @@ toInteger <- function(x, condition) x } -serialize = function(coeffs, file, append) +writeCoeffs = function(coeffs) { + file = ".coeffs" #......... #C function (from data.frame, type of IDs ??! force integers ? [yes]) #return raw vector @@ -19,9 +20,10 @@ serialize = function(coeffs, file, append) #TODO: appendCoeffs() en C --> serialize et append to file } -deserialize = function(file, range, ncoefs) +readCoeffs = function(indices) { #...... + file = ".coeffs" #C function (from file name) } @@ -30,7 +32,14 @@ getSeries(data, rank=NULL, id=NULL) #TODO: } -getCoeffs(.....) #FROM BINARY FILE !!! +curvesToCoeffs = function(series, wf) { - + L = length(series[1,]) + D = ceiling( log2(L) ) + nb_sample_points = 2^D + apply(series, 1, function(x) { + interpolated_curve = spline(1:L, x, n=nb_sample_points)$y + W = wavelets::dwt(interpolated_curve, filter=wf, D)@W + rev( sapply( W, function(v) ( sqrt( sum(v^2) ) ) ) ) + }) }