toward better ID+coeffs management
authorBenjamin Auder <benjamin.auder@somewhere>
Fri, 3 Mar 2017 11:44:20 +0000 (12:44 +0100)
committerBenjamin Auder <benjamin.auder@somewhere>
Fri, 3 Mar 2017 11:44:20 +0000 (12:44 +0100)
epclust/R/computeCoeffs.R
epclust/R/main.R
epclust/R/utils.R

index 6ca55ee..fca3b91 100644 (file)
@@ -27,20 +27,17 @@ computeCoeffs = function(data, index, nb_series_per_chunk, wf)
        coeffs_chunk
 }
 
-#NOTE: always keep ID in first column (...? is it good ?!)
 curvesToCoeffs = function(series, wf)
 {
        if (!require(wavelets, quietly=TRUE))
                stop("Couldn't load wavelets library")
        L = length(series[1,])
-       D = ceiling( log2(L-1) )
+       D = ceiling( log2(L) )
        nb_sample_points = 2^D
        #TODO: parallel::parApply() ?!
-       res = apply(series, 1, function(x) {
-               interpolated_curve = spline(1:(L-1), x[2:L], n=nb_sample_points)$y
+       as.data.frame( 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
-               nrj_coeffs = rev( sapply( W, function(v) ( sqrt( sum(v^2) ) ) ) )
-               return ( c(x[1], nrj_coeffs) )
-       })
-       return (as.data.frame(res))
+               rev( sapply( W, function(v) ( sqrt( sum(v^2) ) ) ) )
+       }) )
 }
index 4159941..f5ad81a 100644 (file)
@@ -68,6 +68,7 @@ epclust = function(data, K1, K2, ntasks=1, nb_series_per_chunk=50*K1, min_series
 
        # Serialize all wavelets coefficients (+ IDs) onto a file
        coeffs_file = ".coeffs"
+       ids_files = ".ids"
        index = 1
        nb_curves = 0
        nb_coeffs = NA
index 5c09b56..347c2c6 100644 (file)
@@ -19,7 +19,7 @@ serialize = function(coeffs, file, append)
 #TODO: appendCoeffs() en C --> serialize et append to file
 }
 
-deserialize = function(file, range, serie_length)
+deserialize = function(file, range, ncoefs)
 {
        #......
        #C function (from file name)