Ejemplo n.º 1
0
    def fit_piecewise_linear_trace(cls, tr):
        ranges = TraceApproximator.find_levels(tr.data_pts_np)

        pieces = []
        for r0, r1 in ranges:
            x = np.mean(tr.data_pts[r0:r1])
            p = TracePieceFunctionFlat(time_window=(tr.time_pts[r0],
                                                    tr.time_pts[r1]),
                                       x=x)
            pieces.append(p)

        tr = TracePiecewise(pieces,
                            name=tr.name,
                            comment=tr.comment,
                            tags=tr.tags)
        return tr
Ejemplo n.º 2
0
def _clone_piecewise(tr):
    tr_new = TracePiecewise(pieces = [copy.copy(piece) for piece in tr.pieces])
    copy_trace_attrs(tr, tr_new, comment='+(cloned)')
    return tr_new
Ejemplo n.º 3
0
def do_op_piecewise_pow_scalar(lhs, rhs):
    pieces = [PiecewiseOperationLHS.visit(lhs_piece=piece, operator_type=operator.__pow__, rhs_scalar=rhs) for piece in lhs.pieces]
    return TracePiecewise(pieces)
Ejemplo n.º 4
0
 def do_div(cls, lhs, rhs):        
     return TracePiecewise( [PiecewiseOperationLHS.visit(lhs_piece=piece, operator_type=operator.__div__, rhs_scalar=rhs) for piece in lhs.pieces] )        
Ejemplo n.º 5
0
 def do_mul(cls, lhs, rhs):        
     return TracePiecewise( [PiecewiseOperationRHS.visit(rhs_piece=piece, operator_type=operator.__mul__, lhs_scalar=lhs) for piece in rhs.pieces] )