obspy.io.mseed.util.set_flags_in_fixed_headers
- set_flags_in_fixed_headers(filename, flags)[source]
Updates a given MiniSEED file with some fixed header flags.
- Parameters
filename (str) – Name of the MiniSEED file to be changed
flags (dict) –
The flags to update in the MiniSEED file
Flags are stored as a nested dictionary:
{ trace_id: { flag_group: { flag_name: flag_value, ... }, ... }, ... }
with:
trace_id
A string identifying the trace. A string looking like
NETWORK.STATION.LOCATION.CHANNEL
is expected, the values will be compared to those found in the fixed header of every record. An empty field will be interpreted as “every possible value”, so"..."
will apply to every single trace in the file. Padding spaces are ignored.
flag_group
Which flag group is to be changed. One of
'activity_flags'
,'io_clock_flags'
,'data_qual_flags'
is expected. Invalid flag groups raise aValueError
.
flag_name
The name of the flag. Possible values are matched with
obspy.io.mseed.headers.FIXED_HEADER_ACTIVITY_FLAGS
,FIXED_HEADER_IO_CLOCK_FLAGS
orFIXED_HEADER_DATA_QUAL_FLAGS
depending on the flag_group. Invalid flags raise aValueError
.
flag_value
The value you want for this flag. Expected value is a bool (always
True
/False
) or a dict to store the moments and durations when this flag isTrue
. Expected syntax for this dict is accurately described inobspy.io.mseed.util._check_flag_value
.
- Raises
IOError – if the file is not a MiniSEED file
ValueError – if one of the flag group, flag name or flag value is incorrect
Example: to add a Calibration Signals Present flag (which belongs to the Activity Flags section of the fixed header) to every record, flags should be:
{ "..." : { "activity_flags" : { "calib_signal" : True }}}
Example: to add a Event in Progress flag (which belongs to the Activity Flags section of the fixed header) from 2009/12/23 06:00:00 to 2009/12/23 06:30:00, from 2009/12/24 10:00:00 to 2009/12/24 10:30:00 and at precise times 2009/12/26 18:00:00 and 2009/12/26 18:04:00, flags should be:
date1 = UTCDateTime("2009-12-23T06:00:00.0") date2 = UTCDateTime("2009-12-23T06:30:00.0") date3 = UTCDateTime("2009-12-24T10:00:00.0") date4 = UTCDateTime("2009-12-24T10:30:00.0") date5 = UTCDateTime("2009-12-26T18:00:00.0") date6 = UTCDateTime("2009-12-26T18:04:00.0") { "..." : { "activity_flags" : { "event_in_progress" : {"INSTANT" : [date5, date6], "DURATION" : [(date1, date2), (date3, date4)]}}}}
Alternative way to mark duration:
{ "..." : { "activity_flags" : { "event_in_progress" : { "INSTANT" : [date5, date6], "DURATION" : [date1, date2, date3, date4]}}}}