def sanitize_downloads(self, logger): """ Should be run after the MiniSEED and StationXML downloads finished. It will make sure that every MiniSEED file also has a corresponding StationXML file. It will delete MiniSEED files but never a StationXML file. The logic of the download helpers does not allow for a StationXML file with no data. """ from obspy.io.mseed.util import get_start_and_end_time # All or nothing for each channel. for id in self.miss_station_information.keys(): logger.warning("Station information could not be downloaded for " "%s.%s.%s.%s. MiniSEED files outside of the " "station information period " "will be deleted!" % ( self.network, self.station, id[0], id[1])) channel = [_i for _i in self.channels if (_i.location, _i.channel) == id][0] for time_interval in channel.intervals: # Check that the time_interval.start and end are correct! time_interval.start, time_interval.end = \ get_start_and_end_time(time_interval.filename) # Only delete downloaded things! if time_interval.status == STATUS.DOWNLOADED: # Only delete if the station data are actually missing # for this time miss_start, miss_end = self.miss_station_information[id] if miss_start <= time_interval.start <= miss_end and \ miss_start <= time_interval.end <= miss_end: utils.safe_delete(time_interval.filename) time_interval.status = STATUS.DOWNLOAD_REJECTED
def test_getStartAndEndTime(self): """ Tests getting the start- and endtime of a file. The values are compared with the results of reading the full files. """ mseed_filenames = ['BW.BGLD.__.EHE.D.2008.001.first_10_records', 'test.mseed', 'timingquality.mseed'] for _i in mseed_filenames: filename = os.path.join(self.path, 'data', _i) # Get the start- and end time. (start, end) = util.get_start_and_end_time(filename) # Parse the whole file. stream = _read_mseed(filename) self.assertEqual(start, stream[0].stats.starttime) self.assertEqual(end, stream[0].stats.endtime)
def test_getStartAndEndTime(self): """ Tests getting the start- and endtime of a file. The values are compared with the results of reading the full files. """ mseed_filenames = [ 'BW.BGLD.__.EHE.D.2008.001.first_10_records', 'test.mseed', 'timingquality.mseed' ] for _i in mseed_filenames: filename = os.path.join(self.path, 'data', _i) # Get the start- and end time. (start, end) = util.get_start_and_end_time(filename) # Parse the whole file. stream = _read_mseed(filename) self.assertEqual(start, stream[0].stats.starttime) self.assertEqual(end, stream[0].stats.endtime)