コード例 #1
0
 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)
コード例 #2
0
ファイル: eventbank.py プロジェクト: seisman/obsplus
    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
コード例 #3
0
ファイル: fetcher.py プロジェクト: seisman/obsplus
    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
コード例 #4
0
 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)
コード例 #5
0
 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)
コード例 #6
0
 def test_from_event_bank(self, default_ebank):
     """Test getting events from an eventbank."""
     out = get_event_client(default_ebank)
     assert isinstance(out, EventClient)
コード例 #7
0
 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)