def get(self, id, pack_id): uphase = Uphase.model(motor_id=id) vphase = Vphase.model(motor_id=id) wphase = Wphase.model(motor_id=id) feature = Feature.model(motor_id=id) session = Session() data = session. \ query(uphase.wave.label('u'), vphase.wave.label('v'), wphase.wave.label('w'), feature.uharmonics, feature.uthd, feature.vharmonics, feature.vthd, feature.wharmonics, feature.wthd). \ join(vphase, vphase.pack_id == uphase.pack_id). \ join(wphase, wphase.pack_id == uphase.pack_id). \ join(feature, feature.pack_id == uphase.pack_id). \ filter_by(pack_id=pack_id).one() session.close() data = data._asdict() data['ufft'] = np.around(fftransform( np.fromstring(data['u'], dtype=np.float32)), decimals=3) data['vfft'] = np.around(fftransform( np.fromstring(data['v'], dtype=np.float32)), decimals=3) data['wfft'] = np.around(fftransform( np.fromstring(data['w'], dtype=np.float32)), decimals=3) return FeatureSchema().dump(data)
def get(self, id): session = Session() bearings = session.query(Bearing.inner_race_diameter, Bearing.inner_race_width, Bearing.outter_race_diameter, Bearing.outter_race_width, Bearing.roller_diameter, Bearing.roller_number, Bearing.contact_angle).filter_by(id=id).one() return BearingSchema().dump(bearings)
def get(self, id): session = Session() data = session.query(Motor.name, WarningLog.cr_time, WarningLog.description, WarningLog.severity). \ join(Motor). \ filter(WarningLog.motor_id == id).all() session.close() return WarningSchema().dump(data, many=True).data
def get(self, id): session = Session() rotors = session.query(Rotor.inner_diameter, Rotor.length, Rotor.outer_diameter, Rotor.slot_number).filter_by(id=id).one() session.close() return RotorSchema().dump(rotors)
def get(self, id): args = trend_parser.parse_args() if args['timeafter'] is not None or args['timebefore'] is not None: args['timeafter'] = parse.unquote(args['timeafter']) args['timebefore'] = parse.unquote(args['timebefore']) result = retrieve_model.get_motor_trend(id, args) dic = {} for row in result: for key, value in row.items(): if key == 'time': dic.setdefault(key, []).append(str(value)) else: dic.setdefault(key, []).append(value) return dic elif args['newest'] is True: feature = Feature.model(motor_id=id) uphase = Uphase.model(motor_id=id) session = Session() data = session. \ query(feature.urms, feature.vrms, feature.wrms, feature.n_rms, feature.p_rms, uphase.frequency). \ join(uphase, feature.pack_id == uphase.pack_id). \ order_by(feature.id.desc()).first() session.close() return FeatureSchema().dump(data).data else: return {'Error message': 'Unproper query'}, 400
def get(self, id): args = pack_parser.parse_args() pack = CurrentsPack.model(motor_id=id) session = Session() data = session. \ query(pack.id, pack.time, pack.rpm).filter(pack.time.between(args['timeafter'], args['timebefore'])). \ all() session.close() return PackSchema(only=('id', 'time', 'rpm')).dump(data, many=True).data
def get(self, id): session = Session() motor = session.query(Motor). \ options(joinedload(Motor.rotors), joinedload(Motor.stators), joinedload(Motor.bearings)). \ filter_by(id=id). \ one() session.close() return EquipGroupSchema().dump(motor)[0]
def get(self, id): phase = self.model_factory.model(motor_id=id) args = phase_parser.parse_args() if args['newest'] == True: session = Session() data = session. \ query(phase.frequency, phase.amplitude, phase.initial_phase). \ order_by(phase.id.desc()). \ first() session.close() return PhaseSchema(only=( 'frequency', 'amplitude', 'initial_phase', )).dump(data) elif args['pack_id']: session = Session() data = session. \ query(phase.frequency, phase.amplitude, phase.initial_phase). \ filter_by(pack_id=args['pack_id']). \ first() session.close() return PhaseSchema(only=( 'frequency', 'amplitude', 'initial_phase', )).dump(data) else: return 400
def get(self, id, pack_id): uphase = Uphase.model(motor_id=id) vphase = Vphase.model(motor_id=id) wphase = Wphase.model(motor_id=id) session = Session() data = session. \ query(uphase.frequency.label('ufrequency'), vphase.frequency.label('vfrequency'), wphase.frequency.label('wfrequency'), uphase.amplitude.label('uamplitude'), vphase.amplitude.label('vamplitude'), wphase.amplitude.label('wamplitude'), uphase.initial_phase.label('uinitial_phase'), vphase.initial_phase.label('vinitial_phase'), wphase.initial_phase.label('winitial_phase')). \ join(vphase, vphase.pack_id == uphase.pack_id). \ join(wphase, wphase.pack_id == uphase.pack_id). \ filter_by(pack_id=pack_id).one() session.close() complex_list = [] for item in ['u', 'v', 'w']: complex_phase, _ = make_phase( getattr(data, item + 'amplitude'), 2 * np.pi * getattr(data, item + 'frequency'), getattr(data, item + 'initial_phase'), samples=1024, end_time=1024 / 20480) # Append to the list complex_list.append(complex_phase) (phaseA_pos, phaseB_pos, phaseC_pos, phaseA_neg, phaseB_neg, phaseC_neg, phaseZero) = cal_symm(complex_list[1], complex_list[0], complex_list[2]) return { key: Array.static_serialize(value) for key, value in { 'pAp_real': phaseA_pos.real, 'pAp_imag': phaseA_pos.imag, 'pBp_real': phaseB_pos.real, 'pBp_imag': phaseB_pos.imag, 'pCp_real': phaseC_pos.real, 'pCp_imag': phaseC_pos.imag, 'pAn_real': phaseA_neg.real, 'pAn_imag': phaseA_neg.imag, 'pBn_real': phaseB_neg.real, 'pBn_imag': phaseB_neg.imag, 'pCn_real': phaseC_neg.real, 'pCn_imag': phaseC_neg.imag, 'zero_real': phaseZero.real, 'zero_imag': phaseZero.imag, }.items() }
def patch(self, id): args = parser.parse_args() session = Session() session.query(Bearing).filter(Bearing.id == id).update({'lr_time': args['lr_time']}) Session.commit() session.close() return {'message': 'Success'}
def patch(self, id): args = motor_parser.parse_args() session = Session() session.query(Motor).filter(Motor.id == id).update( {'lr_time': args['lr_time']}) session.commit() session.close() return {'message': 'Success'}
def get(self): args = motor_parser.parse_args() if args['group_by'] == 'statu': data = retrieve_model.get_statu_statistic() return MotorStatuStatisticSchema().dump(data, many=False) elif args['group_by'] == 'comps': data = retrieve_model.get_comp_statistic() return MotorCompStatisticSchema().dump(data, many=True) else: session = Session() motors = session.query(Motor.name, Motor.sn, Motor.statu, Motor.lr_time, Motor.id, Motor.health_indicator, User.name.label('admin')). \ join(User).all() session.close() return MotorSchema().dump(motors, many=True)
def get(self, id): uphase = Uphase.model(motor_id=id) vphase = Vphase.model(motor_id=id) wphase = Wphase.model(motor_id=id) args = phase_parser.parse_args() session = Session() data = \ session.query(uphase.wave.label('u'), vphase.wave.label('v'), wphase.wave.label('w')). \ join(vphase, vphase.pack_id == uphase.pack_id). \ join(wphase, wphase.pack_id == uphase.pack_id). \ filter_by(pack_id=args['pack_id']).first() session.close() return PhaseSchema(only=('u', 'v', 'w')).dump(data)
def get(self, id): phase = self.model_factory.model(motor_id=id) args = phase_parser.parse_args() if args['newest'] == True: session = Session() data = session.query(phase.wave).order_by(phase.id.desc()).first() session.close() return PhaseSchema(only=('wave', )).dump(data) elif args['pack_id']: session = Session() data = session.query( phase.wave).filter_by(pack_id=args['pack_id']).first() session.close() return PhaseSchema(only=('wave', )).dump(data) else: return 400
def get(self, id, pack_id): uphase = Uphase.model(motor_id=id) vphase = Vphase.model(motor_id=id) wphase = Wphase.model(motor_id=id) session = Session() data = session. \ query(uphase.wave.label('u'), vphase.wave.label('v'), wphase.wave.label('w')). \ join(vphase, vphase.pack_id == uphase.pack_id). \ join(wphase, wphase.pack_id == uphase.pack_id). \ filter_by(pack_id=pack_id).one() session.close() u, v, w = threephase_deserialize(data.u, data.v, data.w) d, q = dq0_transform(u, v, w) return { 'd': Blob.myserialize(d), 'q': Blob.myserialize(q), 'd_rms': float(np.sqrt(np.dot(d, d) / d.size)), 'q_rms': float(np.sqrt(np.dot(q, q) / d.size)) }
def get(self, id, pack_id): uphase = Uphase.model(motor_id=id) vphase = Vphase.model(motor_id=id) wphase = Wphase.model(motor_id=id) session = Session() data = session.query(uphase.wave.label('u'), vphase.wave.label('v'), wphase.wave.label('w')). \ join(vphase, vphase.pack_id == uphase.pack_id). \ join(wphase, wphase.pack_id == uphase.pack_id). \ filter_by(pack_id=pack_id).one() session.close() data = data._asdict() for key in ['u', 'v', 'w']: data[key] = np.fromstring(data[key], dtype=np.float32) data[key + 'envelope'] = np.abs( signal.hilbert(data[key])[1024:1024 + 4096]) data[key + 'fft'] = np.around(fftransform( signal.detrend(data[key + 'envelope'])), decimals=3) data[key] = data[key][1024:1024 + 4096] return EnvelopeSchema().dump(data)
def get(self, id): args = parser.parse_args() if args['info']: session = Session() rotors = session.query( Rotor.inner_diameter, Rotor.length, Rotor.outer_diameter, Rotor.slot_number).filter_by(motor_id=id).all() return RotorSchema().dump(rotors, many=True) else: session = Session() rotors = Session.query(Rotor).filter_by(motor_id=id).all() session.close() return RotorSchema().dump(rotors, many=True)
def get(self, id): args = parser.parse_args() if args['info']: session = Session() bearings = session.query(Bearing.inner_race_diameter, Bearing.inner_race_width, Bearing.outter_race_diameter, Bearing.outter_race_width, Bearing.roller_diameter, Bearing.roller_number, Bearing.contact_angle).filter_by(motor_id=id).all() return BearingSchema().dump(bearings, many=True) else: session = Session() bearings = session.query(Bearing).filter_by(motor_id=id).all() session.close() return BearingSchema().dump(bearings, many=True)
def get(self, id): args = motor_parser.parse_args() if args['info']: session = Session() motor = session.query(Motor.phase_number, Motor.pole_pairs_number, Motor.turn_number, Motor.rated_voltage, Motor.rated_speed).filter_by(id=id).one() return MotorSchema().dump(motor) else: session = Session() motor = session.query(Motor.id, Motor.name, Motor.health_indicator, Motor.lr_time, Motor.sn, Motor.memo, Motor.statu).filter_by(id=id).one() session.close() return MotorSchema().dump(motor)
def get(self, id): args = pack_parser.parse_args() pack = CurrentsPack.model(motor_id=id) uphase = Uphase.model(motor_id=id) vphase = Vphase.model(motor_id=id) wphase = Wphase.model(motor_id=id) if args['newest']: session = Session() q = session. \ query(pack.id, pack.time, pack.rpm, pack.sampling_rate, pack.rpm, Motor.name, Motor.statu, Motor.sn, uphase.wave.label('usignal'), vphase.wave.label('vsignal'), wphase.wave.label('wsignal'), uphase.amplitude.label('uamp'), vphase.amplitude.label('vamp'), wphase.amplitude.label('wamp'), uphase.frequency.label('ufreq'), vphase.frequency.label('vfreq'), wphase.frequency.label('wfreq'), uphase.initial_phase.label('uip'), vphase.initial_phase.label('vip'), wphase.initial_phase.label('wip')). \ join(Motor, Motor.id == pack.motor_id). \ join(uphase, uphase.pack_id == pack.id). \ join(vphase, vphase.pack_id == pack.id). \ join(wphase, wphase.pack_id == pack.id). \ order_by(pack.id.desc()). \ first() data = q._asdict() data['usignal'] = np.fromstring(data['usignal'], dtype=np.float32) data['vsignal'] = np.fromstring(data['vsignal'], dtype=np.float32) data['wsignal'] = np.fromstring(data['wsignal'], dtype=np.float32) data['ufft'] = np.around(fftransform(data['usignal']), decimals=3) data['vfft'] = np.around(fftransform(data['vsignal']), decimals=3) data['wfft'] = np.around(fftransform(data['wsignal']), decimals=3) session.close() return PackSchema().dump(data) elif args['pack_id']: session = Session() data = session. \ query(pack.id, pack.time, pack.rpm, pack.sampling_rate, pack.rpm, Motor.name, Motor.statu, Motor.sn). \ join(Motor, Motor.id == pack.motor_id). \ filter(pack.id == args['pack_id']). \ first() data = data._asdict() session.close() return PackSchema().dump(data)
def get(self): args = warning_parser.parse_args() if args['group_by'] == 'motor': session = Session() data = session. \ query(Motor.name, func.count(WarningLog.motor_id)). \ join(Motor). \ group_by(Motor.name).all() session.close() return [{'name': item[0], 'value': item[1]} for item in data] if args['group_by'] == 'date': data = retrieve_model.get_warning_calendar() return data else: session = Session() data = session. \ query(Motor.name, WarningLog.cr_time, WarningLog.description, WarningLog.severity). \ join(Motor). \ order_by(WarningLog.cr_time.desc()). \ slice(0, args['limit']).all() session.close() return WarningSchema().dump(data, many=True).data
def get(self): args = equipgroup_parser.parse_args() session = Session() if args['iftree']: treejson = {'name': 'Induction Motor Monitoring Platform', 'children': []} for motor in session.query(Motor.id, Motor.name).all(): treejson['children'].append({'name': motor.name, 'children': []}) for bearing in session.query(Bearing.name).filter_by(motor_id=motor.id).all(): treejson['children'][-1]['children'].append({'name': bearing.name}) for rotor in session.query(Rotor.name).filter_by(motor_id=motor.id).all(): treejson['children'][-1]['children'].append({'name': rotor.name}) for stator in session.query(Stator.name).filter_by(motor_id=motor.id).all(): treejson['children'][-1]['children'].append({'name': stator.name}) session.close() return treejson, 200 else: session = Session() motors = session. \ query(Motor). \ options(joinedload(Motor.rotors), joinedload(Motor.stators), joinedload(Motor.bearings)). \ all() data = EquipGroupSchema().dump(motors, many=True) session.close() return data