Skip to content

Commit 88b2a86

Browse files
committed
fix data path
1 parent 41aad43 commit 88b2a86

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

data/process.jl

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
using Pkg
2+
Pkg.activate("..")
3+
using TSML
4+
using TSML.TSMLTransformers
5+
using DataFrames
6+
using Dates
7+
using CSV
8+
using Plots
9+
10+
fname ="testdata.csv"
11+
dat = CSV.read(fname)
12+
rename!(dat,names(dat)[1]=>:Date,names(dat)[2]=>:Value)
13+
dat[:Date] = DateTime.(dat[:Date],"d/m/y H:M")
14+
orig = deepcopy(dat)
15+
filter1 = DateValgator()
16+
filter2 = DateValNNer(Dict(:nnsize=>1))
17+
18+
fit!(filter1,dat,[])
19+
res1=transform!(filter1,dat)
20+
21+
fit!(filter2,res1,[])
22+
res2=transform!(filter2,res1)
23+
24+
mypipeline = Pipeline(Dict(
25+
:transformers => [csvreader,filter1,filter2]
26+
)
27+
)
28+
29+
fit!(mypipeline)
30+
res = transform!(mypipeline)
31+
32+
Plots.plot(res[:Value][end-3000:end])
33+
34+
rfname = replace(fname,".csv"=>"-result.csv")
35+
res |> CSV.write(rfname)
36+
37+
using TSML.TSMLTypes
38+
import TSML.TSMLTypes.fit!
39+
import TSML.TSMLTypes.transform!
40+
41+
mutable struct CSVDateValReader <: Transformer
42+
model
43+
args
44+
function CSVDateValReader(args=Dict())
45+
default_args = Dict(
46+
:filename => "",
47+
:dateformat => ""
48+
)
49+
new(nothing,mergedict(default_args,args))
50+
end
51+
end
52+
53+
function fit!(csvrdr::CSVDateValReader,x::T=[],y::Vector=[]) where {T<:Union{DataFrame,Vector,Matrix}}
54+
fname = csvrdr.args[:filename]
55+
fmt = csvrdr.args[:dateformat]
56+
(fname != "" && fmt != "") || error("missing filename or date format")
57+
model = csvrdr.args
58+
end
59+
60+
function transform!(csvrdr::CSVDateValReader,x::T=[]) where {T<:Union{DataFrame,Vector,Matrix}}
61+
fname = csvrdr.args[:filename]
62+
fmt = csvrdr.args[:dateformat]
63+
df = CSV.read(fname)
64+
ncol(df) == 2 || error("dataframe should have only two columns: Date,Value")
65+
rename!(df,names(df)[1]=>:Date,names(df)[2]=>:Value)
66+
df[:Date] = DateTime.(df[:Date],fmt)
67+
df
68+
end
69+
70+
csvreader = CSVDateValReader(Dict(:filename=>"testdata.csv",:dateformat=>"d/m/y H:M"))
71+
72+
fit!(csvreader)
73+
transform!(csvreader)

0 commit comments

Comments
 (0)