def add_simulation(self, mtype, sim_param=None, idx=None, **options): """ add simulated measurements Parameters ---------- mtype: str - the type of simulated measurement idx: sim_param: dict of parameters to specifiy simulation :return: RockPy.measurement object """ mtype = mtype.lower() implemented = {i.__name__.lower(): i for i in Measurement.inheritors()} if idx is None: idx = len(self.measurements) # if there is no measurement index if mtype in implemented: self.logger.info(' ADDING\t << simulated measurement >> %s' % mtype) measurement = implemented[mtype].simulate(self, m_idx=idx, **options) if measurement.has_data: self.measurements.append(measurement) return measurement else: return None else: self.logger.error(' << %s >> not implemented, yet' % mtype)
def implemented_measurements(cls): return {i.__name__.lower(): i for i in Measurement.inheritors()}