obspy.io.gse2.bulletin._read_gse2¶
- _read_gse2(filename, inventory=None, default_network_code='XX', default_location_code=None, default_channel_code=None, res_id_prefix='smi:local', fields=None, event_point_separator=False, agency=None)[source]¶
Read a GSE2.0 bulletin file and returns an ObsPy Catalog object.
Warning
This function should NOT be called directly, it registers via the ObsPy read_events() function, call this instead.
Parameters: - filename (str) File or file-like object in text mode.
- inventory (Inventory) Inventory used to retrieve network code, location code and channel code of stations.
- default_network_code (str) Default network code used if stations are not found in the inventory.
- default_location_code (str) Location code used if stations are not found in the inventory.
- default_channel_code (str) Default channel code used if stations are not found in the inventory.
- res_id_prefix (str) Prefix used in ResourceIdentifier attributes.
- fields (dict) dictionary of positions of input fields, used if input file is non-standard
- event_point_separator (bool) True if events are separated by point rather than 2 empty lines.
- agency (str) Agency that generated the file.
Return type: Returns: An ObsPy Catalog object.
Example
>>> from obspy import read_events >>> default_fields = { ... 'line_1': { ... 'time': slice(0, 21), ... 'time_fixf': slice(22, 23), ... 'lat': slice(25, 33), ... 'lon': slice(34, 43), ... 'epicenter_fixf': slice(44, 45), ... 'depth': slice(47, 52), ... 'depth_fixf': slice(53, 54), ... 'n_def': slice(56, 60), ... 'n_sta': slice(61, 65), ... 'gap': slice(66, 69), ... 'mag_type_1': slice(71, 73), ... 'mag_1': slice(73, 77), ... 'mag_n_sta_1': slice(78, 80), ... 'mag_type_2': slice(82, 84), ... 'mag_2': slice(84, 88), ... 'mag_n_sta_2': slice(89, 91), ... 'mag_type_3': slice(93, 95), ... 'mag_3': slice(95, 99), ... 'mag_n_sta_3': slice(100, 102), ... 'author': slice(104, 112), ... 'id': slice(114, 122), ... }, ... 'line_2': { ... 'rms': slice(5, 10), ... 'ot_error': slice(15, 21), ... 's_major': slice(25, 31), ... 's_minor': slice(32, 38), ... 'az': slice(40, 43), ... 'depth_err': slice(49, 54), ... 'min_dist': slice(56, 62), ... 'max_dist': slice(63, 69), ... 'mag_err_1': slice(74, 77), ... 'mag_err_2': slice(85, 88), ... 'mag_err_3': slice(96, 99), ... 'antype': slice(104, 105), ... 'loctype': slice(106, 107), ... 'evtype': slice(108, 110), ... }, ... 'arrival': { ... 'sta': slice(0, 5), ... 'dist': slice(6, 12), ... 'ev_az': slice(13, 18), ... 'picktype': slice(19, 20), ... 'direction': slice(20, 21), ... 'detchar': slice(21, 22), ... 'phase': slice(23, 30), ... 'time': slice(31, 52), ... 't_res': slice(53, 58), ... 'azim': slice(59, 64), ... 'az_res': slice(65, 71), ... 'slow': slice(72, 77), ... 's_res': slice(78, 83), ... 't_def': slice(84, 85), ... 'a_def': slice(85, 86), ... 's_def': slice(86, 87), ... 'snr': slice(88, 93), ... 'amp': slice(94, 103), ... 'per': slice(104, 109), ... 'mag_type_1': slice(110, 112), ... 'mag_1': slice(112, 116), ... 'mag_type_2': slice(117, 119), ... 'mag_2': slice(119, 123), ... 'id': slice(124, 132), ... }, ... } >>> # Only non-standard field indexes are required >>> fields = { ... 'line_1': { ... 'author': slice(105, 113), ... 'id': slice(114, 123), ... }, ... 'line_2': { ... 'az': slice(40, 46), ... 'antype': slice(105, 106), ... 'loctype': slice(107, 108), ... 'evtype': slice(109, 111), ... }, ... 'arrival': { ... 'amp': slice(94, 104), ... }, ... } >>> catalog = read_events('/path/to/bulletin/gse_2.0_non_standard.txt', ... default_network_code='FR', res_id_prefix='quakeml:abc', ... fields=fields, event_point_separator=True) >>> print(catalog) 2 Event(s) in Catalog: 1995-01-16T07:26:52.400000Z | +39.450, +20.440 | 3.6 mb | manual 1995-01-16T07:27:07.300000Z | +50.772, -129.760 | 1.2 Ml | manual