예제 #1
0
    def build_traces(cls, header_info, data_array):
        n_cols = data_array.shape[1]

        # Get the time column:
        time_data_raw = data_array[:, 0]
        time_unit = unit(str(header_info.column_data[0]['unit']))
        time_data = time_data_raw * time_unit

        # Do we build as fixed or variable array:
        trace_builder = (TraceFixedDT
                         if TraceFixedDT.is_array_fixed_dt(time_data) else
                         TraceVariableDT)

        trcs = []
        for i in range(1, n_cols):
            d_i = data_array[:, i]
            column_metadict = header_info.column_data[i]
            dataUnit = unit(str(column_metadict.get('unit', '')))
            data_label = str(column_metadict.get('label', 'Column%d' % i))
            data_tags = str(column_metadict.get('tags', '')).split(',')
            d = d_i * dataUnit

            tr = trace_builder(time_data, d, name=data_label, tags=data_tags)
            trcs.append(tr)
        return trcs
예제 #2
0
 def rebase_to_fixed_dt(cls, original_trace, dt):
     print 'dt', dt
     from morphforge.core.quantities.wrappers import NpPqWrappers
     print original_trace
     time = NpPqWrappers.arange(start=original_trace.get_min_time(),
                                stop=original_trace.get_max_time(),
                                step=dt)
     data = original_trace.get_values(time)
     return TraceFixedDT(time,
                         data,
                         name=original_trace.name,
                         comment=original_trace.comment,
                         tags=original_trace.tags)
예제 #3
0
    def build_traces(cls, header_info, data_array):
        n_cols = data_array.shape[1]

        # Get the time column:
        time_data_raw = data_array[:, 0]
        time_unit = qty(str(header_info.column_data[0]['unit']))
        time_data = time_data_raw * time_unit

        # Do we build as fixed or variable array:
        trace_builder = (TraceFixedDT if TraceFixedDT.is_array_fixed_dt(time_data) else TraceVariableDT)

        trcs = []
        for i in range(1, n_cols):
            d_i = data_array[:, i]
            column_metadict = header_info.column_data[i]
            dataUnit = qty(str(column_metadict.get('unit', '')))
            data_label = str(column_metadict.get('label', 'Column%d' % i))
            data_tags = str(column_metadict.get('tags', '')).split(',')
            d = d_i * dataUnit

            tr = trace_builder(time_data, d, name=data_label, tags=data_tags)
            trcs.append(tr)
        return trcs
예제 #4
0
 def do_div(cls, lhs, rhs):
     time_axis = cls.get_new_time_axis(lhs, rhs)
     return TraceFixedDT(
         time_axis,
         lhs.get_values(time_axis) / rhs.get_values(time_axis))
예제 #5
0
def _clone_fixed(tr):
    tr_new = TraceFixedDT( 
            time = np.copy( tr.time_pts_np) * tr.time_units,
            data = np.copy( tr.data_pts_np) * tr.data_units )
    copy_trace_attrs(tr, tr_new, comment='+(cloned)')
    return tr_new
예제 #6
0
 def do_sub(cls, lhs, rhs):
     assert type(rhs) == TraceFixedDT and type(lhs) == float
     assert isinstance(rhs.data_pts, pq.Dimensionless)
     return TraceFixedDT(rhs.time_pts, lhs - rhs.data_pts)
예제 #7
0
 def do_div(cls, lhs, rhs):
     assert type(rhs) == TraceFixedDT and type(lhs) == float
     return TraceFixedDT(rhs.time_pts, lhs / rhs.data_pts)
예제 #8
0
 def do_pow(cls, lhs, rhs):
     assert (type(lhs) == TraceFixedDT
             and (type(rhs) == float or type(rhs) == int))
     return TraceFixedDT(lhs.time_pts, lhs.data_pts**rhs)
예제 #9
0
 def do_mul(cls, lhs, rhs):
     assert (type(lhs) == TraceFixedDT and type(rhs) == float)
     return TraceFixedDT(lhs.time_pts, lhs.data_pts * rhs)
예제 #10
0
 def do_add(cls, lhs, rhs):
     assert (type(lhs) == TraceFixedDT and type(rhs) == float)
     assert isinstance(lhs.data_pts, pq.Dimensionless)
     return TraceFixedDT(lhs.time_pts, lhs.data_pts + rhs)
예제 #11
0
 def do_mul(cls, lhs, rhs):
     assert type(rhs) == TraceFixedDT and type(lhs) == pq.Quantity
     return TraceFixedDT(rhs.time_pts, lhs * rhs.data_pts)
예제 #12
0
 def do_div(cls, lhs, rhs):
     assert (type(lhs) == TraceFixedDT and type(rhs) == pq.Quantity)
     return TraceFixedDT(lhs.time_pts, lhs.data_pts / rhs)