def test_from_file(self, simple_event_dir): """Test getting events from a file.""" # get first file first = list(Path(simple_event_dir).rglob("*.xml"))[0] out = get_event_client(first) assert isinstance(out, EventClient) assert isinstance(out, obspy.Catalog)
def put_events( self, events: Union[ev.Event, ev.Catalog, EventClient], update_index: bool = True, bar: Optional[ProgressBar] = None, overwrite_existing=True, ) -> "EventBank": """ Put events into the EventBank. If the event_id already exists the old event will be overwritten on disk. Parameters ---------- events An objects which contains event data (e.g. Catalog, Event, EventBank, etc.) update_index Flag to indicate whether or not to update the event index after writing the new events. Note: Only events added through this method call will get indexed. Default is True. {bar_parameter_description} overwrite_existing If True, overwrite any existing events in the EventBank which share an event id with the new events. Notes ----- If any of the events do not have an extractable reference time a ``ValueError`` will be raised. """ self.ensure_bank_path_exists(create=True) # get catalog from any event client events = get_event_client(events).get_events() # get index only with needed resource_ids event_ids = [str(x.resource_id) for x in events] df = self.read_index(event_id=event_ids).set_index("event_id") # create an iterator and apply over potential pool event_feeder = self._measure_iterator(events, bar) new_func = partial( self._put_event, index=df, bank_path=self.bank_path, path_structure=self.path_structure, name_structure=self.name_structure, format=self.format, overwrite_existing=overwrite_existing, ) paths_raw = list(self._map(new_func, event_feeder)) # can include None if update_index: # parse newly saved files and update index paths = [x for x in paths_raw if x is not None] # remove None self.update_index(paths=paths) return self
def set_events(self, events: fetcher_event_type): """ Set event state in fetcher. Parameters ---------- events Data representing events, from which a client or dataframe can be obtained. """ # set event and dataframe try: self.event_client = get_event_client(events) except TypeError: self.event_client = getattr(self, "event_client", None) try: self.event_df = events_to_df(events) except TypeError: self.event_df = None self._picks_df = None
def test_from_event(self): """An event should be converted to a catalog.""" event = obspy.read_events()[0] out = get_event_client(event) assert isinstance(out, EventClient)
def test_from_directory(self, simple_event_dir): """Test getting events from a directory.""" out = get_event_client(simple_event_dir) assert isinstance(out, EventClient)
def test_from_event_bank(self, default_ebank): """Test getting events from an eventbank.""" out = get_event_client(default_ebank) assert isinstance(out, EventClient)
def test_from_catalog(self): """Tests for getting client from a catalog.""" cat = obspy.read_events() out = get_event_client(cat) assert cat == out assert isinstance(cat, EventClient)