![Daline](assets/images/dalinelogo-all.png)
Get Data. Find Methods. Linearize Models.
Free to use. Quick to deploy. Easy to code.
For data-driven power flow linearization and more.
model = daline.all('case118')
data = daline.generate('case.name', 'case118')
opt = daline.setopt('noise.SNR_dB', 45)
data = daline.noise(data, opt)
data = daline.outlier(data, 'outlier.switchTrain', 1, 'outlier.percentage', 2.5)
data = daline.denoise(data, 'filNoi.switchTrain', 1, 'filNoi.useARModel', false)
opt = daline.setopt('filNoi.useARModel', false, 'filNoi.zeroInitial', 0)
data = daline.deoutlier(data, opt)
data = daline.normalize(data, 'norm.switch', 1)
data = daline.data('num.trainSample', 500, 'num.testSample', 300)
opt = daline.setopt('data.baseType', 'TimeSeriesRand', 'method.name', 'RR')
data = daline.data('data.program', 'acpf', 'data.baseType', 'TimeSeriesRand')
model = daline.all('case118', 'method.name', 'RR')
data = daline.generate('case.name', 'case118')
data = daline.data('case.name', 'case39')
time_list = daline.time(data, {'LS', 'LS_SVD', 'RR'}, 'PLOT.repeat', 5, 'PLOT.style', 'light')
opt = daline.setopt('method.name', 'LS_PIN', 'variable.predictor', {'P', 'Q'}, 'variable.response', {'PF'})
model = daline.fit(data, opt)
opt = daline.setopt('method.name', 'LS_SVD', 'variable.response', {'PF'})
model = daline.fit(data, opt)
model = daline.fit(data, 'method.name', 'LS_COD')
model = daline.rank(data, method, opt)
opt = daline.setopt('data.program', 'acpf')
data = daline.data(opt)
model = daline.all('case118', 'method.name', 'RR')
data = daline.generate('data.baseType', 'TimeSeriesRand')
model = daline.fit(data, opt)
model = daline.fit(data, 'method.name', 'LS_COD')
model = daline.fit(data, 'method.name', 'LS_HBLE', 'HBL.language', 'yalmip', 'HBL.solver', 'quadprog', 'HBL.programType', 'whole')
model = daline.fit(data, 'method.name', 'LS_LIFX', 'variable.liftType', 'polyharmonic', 'variable.liftK', 2)
model = daline.fit(data, 'method.name', 'LS_WEI')
model = daline.fit(data, 'method.name', 'DRC_XYM', 'DRC.probThreshold', 90, 'DRC.gamma2', 0.5, 'DRC.language', 'cvx', 'DRC.solverM', 'Mosek', 'DRC.programType', 'whole')
model = daline.fit(data, 'method.name', 'LS_REC', 'LSR.recursivePercentage', 30, 'LSR.initializeP', 0)
model = daline.fit(data, 'method.name', 'LS_REP', 'LSR.recursivePercentage', 75)
model = daline.rank(data, {'DLPF_C', 'RR', 'PLS_REC'}, 'RR.lambdaInterval', 1e-5, 'RR.cvNumFold', 4, 'PLS.recursivePercentage', 40)
time_list = daline.time(data, {'LS', 'LS_SVD', 'RR'})
model = daline.fit(data, 'method.name', 'LS_PIN')
model = daline.fit(data, opt)
model = daline.fit(data, 'method.name', 'LS_COD')
model = daline.fit(data, 'method.name', 'LS_HBLE')
model = daline.fit(data, 'method.name', 'LS_LIFX')
model = daline.fit(data, 'method.name', 'LS_WEI')
model = daline.fit(dataN, 'method.name', 'DRC_XYM')
model = daline.fit(data, 'method.name', 'LS_REC')
model = daline.fit(data, 'method.name', 'LS_REP')
model = daline.rank(data, {'DLPF_C', 'RR', 'PLS_REC'})
time_list = daline.time(data, {'LS', 'LS_SVD', 'RR'})
model = daline.fit(data, 'method.name', 'LS_PIN')
model = daline.fit(data, 'method.name', 'LS_SVD')
model = daline.fit(data, 'method.name', 'LS_COD')
data = daline.data('case.name', 'case39')
opt = daline.setopt('variable.predictor', {'P', 'Q'}, 'variable.response', {'PF', 'Vm'})
daline.rank(data, methods)
daline.rank(data, methods, 'PLOT.response', {'Vm', 'PF'})
daline.rank(data, {'TAY', 'QR'}, 'PLOT.theme', 'commercial', 'PLOT.style', 'light')
daline.time(data, methods)
daline.time(datalist, methods)
data = daline.data('case.name', 'case39')
opt = daline.setopt('variable.predictor', {'P', 'Q'}, 'variable.response', {'PF', 'Vm'}, 'PLOT.repeat', 5, 'PLOT.style', 'light')
time_list = daline.time(data, 'LS', 'LS_SVD', 'RR', opt)
opt = daline.setopt('method.name', 'LS_PIN', 'variable.predictor', {'P', 'Q'}, 'variable.response', {'PF'})
model = daline.fit(data, opt)
opt = daline.setopt('method.name', 'LS_SVD', 'variable.predictor', {'P', 'Q'}, 'variable.response', {'PF'})
model = daline.fit(data, opt)
opt = daline.setopt('method.name', 'LS_COD', 'variable.predictor', {'P', 'Q'}, 'variable.response', {'PF'})
model = daline.fit(data, opt)
model = daline.rank(data, method, opt)
data = daline.generate('case.name', 'case118', 'data.program', 'acpf', 'data.baseType', 'TimeSeriesRand')
opt = daline.setopt('noise.switchTrain', 1, 'noise.switchTest', 1, 'noise.SNR_dB', 45)
data = daline.noise(data, opt)
data = daline.outlier(data, 'outlier.switchTrain', 1, 'outlier.percentage', 2.5)
data = daline.denoise(data, 'filNoi.switchTrain', 1, 'filNoi.useARModel', false)
opt = daline.setopt('filNoi.switchTrain', 1, 'filNoi.useARModel', false, 'filNoi.zeroInitial', 0)
data = daline.deoutlier(data, opt)
data = daline.normalize(data, 'norm.switch', 1)
data = daline.data('case.name', 'case118', 'num.trainSample', 500, 'num.testSample', 300, 'data.program', 'acpf', 'data.baseType', 'TimeSeries', 'noise.switchTrain', 1, 'outlier.switchTrain', 1, 'norm.switch', 1)
opt = daline.setopt('data.baseType', 'TimeSeries', 'method.name', 'RR')
data = daline.data('case.name', 'case118', 'data.program', 'acpf', 'data.baseType', 'TimeSeries')
opt = daline.setopt('case.name', 'case57', 'data.program', 'acpf', 'data.baseType', 'TimeSeries'); data = daline.data(opt)
model = daline.all('case118', 'data.baseType', 'Random', 'method.name', 'RR')
Utilize or compare over 55 linearization methods using one line of code in Daline
![Description of the image](/assets/images/daline-fig1-distribution.png)
Get accuracy ranking for any states of any methods by a simple Daline command
![Description of the image](/assets/images/daline-fig2-ranking-Vm.png)
One simple command in Daline can tell you which method is faster
![Description of the image](/assets/images/daline-fig4-ranking-time.png)
Or, tell you which method is more scalable
![Description of the image](/assets/images/daline-fig5-ranking-scalability.png)
Generate, pollute, clean, and normalize (optimal) power flow data with numerous customization in one Daline command
![Description of the image](/assets/images/daline-fig0-fluctuation.png)
-
Latest Advancements
Provides users with access to the latest advancements in power flow linearization, enabling rapid model acquisition and flexible customization and extension of accurate and computationally efficient approaches.
-
High Flexibility
With an user-friendly architecture that supports over 300 adjustable parameters and options, offering extensive flexibility to meet diverse research and educational needs.
-
Minimal Coding
Crafted for simplicity, enabling users to accomplish complex tasks with minimal coding, often requiring just one or two lines of code.