本文整理汇总了Python中wfs_input_generator.InputFileGenerator.add_events方法的典型用法代码示例。如果您正苦于以下问题:Python InputFileGenerator.add_events方法的具体用法?Python InputFileGenerator.add_events怎么用?Python InputFileGenerator.add_events使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wfs_input_generator.InputFileGenerator
的用法示例。
在下文中一共展示了InputFileGenerator.add_events方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_adding_invalid_file_to_event_raises
# 需要导入模块: from wfs_input_generator import InputFileGenerator [as 别名]
# 或者: from wfs_input_generator.InputFileGenerator import add_events [as 别名]
def test_adding_invalid_file_to_event_raises():
"""
Adding some invalid things should of course raise.
"""
gen = InputFileGenerator()
with pytest.raises(ValueError):
gen.add_events("some_nonesense")
示例2: test_adding_events_as_URL
# 需要导入模块: from wfs_input_generator import InputFileGenerator [as 别名]
# 或者: from wfs_input_generator.InputFileGenerator import add_events [as 别名]
def test_adding_events_as_URL():
"""
QuakeMLs should be downloaded if necessary.
Mock the actual downloading.
"""
event = {"description": "FICTIONAL EVENT IN BAVARIA",
"latitude": 45.0,
"longitude": 12.1,
"depth_in_km": 13.0,
"origin_time": obspy.UTCDateTime(2012, 4, 12, 7, 15, 48, 500000),
"m_rr": -2.11e+18,
"m_tt": -4.22e+19,
"m_pp": 4.43e+19,
"m_rt": -9.35e+18,
"m_rp": -8.38e+18,
"m_tp": -6.44e+18,
"_event_id": "smi:local/Event/2013-01-05T20:19:58.727909"}
quake_ml_file = os.path.join(DATA, "event1.xml")
with open(quake_ml_file, "rb") as fh:
data = fh.read()
gen = InputFileGenerator()
# Mock the URL
with mock.patch("urllib2.urlopen") as patch:
class Dummy(object):
def read(self):
return data
patch.return_value = Dummy()
gen.add_events("http://some_url.com")
patch.assert_called_once_with("http://some_url.com")
assert [event] == gen._events
示例3: test_reading_QuakeML_files
# 需要导入模块: from wfs_input_generator import InputFileGenerator [as 别名]
# 或者: from wfs_input_generator.InputFileGenerator import add_events [as 别名]
def test_reading_QuakeML_files(self):
"""
Tests the reading of QuakeML Files.
"""
event_file_1 = os.path.join(self.data_dir, "event1.xml")
event_file_2 = os.path.join(self.data_dir, "event2.xml")
gen = InputFileGenerator()
gen.add_events([event_file_1, event_file_2])
# Sort to be able to compare.
events = sorted(gen._events)
self.assertEqual([{
"latitude": 45.0,
"longitude": 12.1,
"depth_in_km": 13.0,
"origin_time": UTCDateTime(2012, 4, 12, 7, 15, 48, 500000),
"m_rr": -2.11e+18,
"m_tt": -4.22e+19,
"m_pp": 4.43e+19,
"m_rt": -9.35e+18,
"m_rp": -8.38e+18,
"m_tp": -6.44e+18
}, {
"latitude": 13.93,
"longitude": -92.47,
"depth_in_km": 28.7,
"origin_time": UTCDateTime(2012, 11, 7, 16, 35, 55, 200000),
"m_rr": 1.02e+20,
"m_tt": -7.96e+19,
"m_pp": -2.19e+19,
"m_rt": 6.94e+19,
"m_rp": -4.08e+19,
"m_tp": 4.09e+19}],
events)
示例4: test_reading_events_from_dictionary
# 需要导入模块: from wfs_input_generator import InputFileGenerator [as 别名]
# 或者: from wfs_input_generator.InputFileGenerator import add_events [as 别名]
def test_reading_events_from_dictionary(self):
"""
Tests that events can also be passed as dictionaries.
"""
events = [{
"latitude": 45.0,
"longitude": 12.1,
"depth_in_km": 13.0,
"origin_time": UTCDateTime(2012, 4, 12, 7, 15, 48, 500000),
"m_rr": -2.11e+18,
"m_tt": -4.22e+19,
"m_pp": 4.43e+19,
"m_rt": -9.35e+18,
"m_rp": -8.38e+18,
"m_tp": -6.44e+18
}, {
"latitude": 13.93,
"longitude": -92.47,
"depth_in_km": 28.7,
"origin_time": UTCDateTime(2012, 11, 7, 16, 35, 55, 200000),
"m_rr": 1.02e+20,
"m_tt": -7.96e+19,
"m_pp": -2.19e+19,
"m_rt": 6.94e+19,
"m_rp": -4.08e+19,
"m_tp": 4.09e+19}]
gen = InputFileGenerator()
gen.add_events(events)
self.assertEqual(sorted(gen._events), sorted(events))
示例5: test_adding_multiple_events_JSON
# 需要导入模块: from wfs_input_generator import InputFileGenerator [as 别名]
# 或者: from wfs_input_generator.InputFileGenerator import add_events [as 别名]
def test_adding_multiple_events_JSON():
"""
Tests adding multiple events as JSON.
"""
events = [{
"latitude": 45.0,
"description": "Some description",
"longitude": 12.1,
"depth_in_km": 13.0,
"origin_time": str(obspy.UTCDateTime(2012, 4, 12, 7, 15, 48, 500000)),
"m_rr": -2.11e+18,
"m_tt": -4.22e+19,
"m_pp": 4.43e+19,
"m_rt": -9.35e+18,
"m_rp": -8.38e+18,
"m_tp": -6.44e+18
}, {
"latitude": 13.93,
"description": "Some other description",
"longitude": -92.47,
"depth_in_km": 28.7,
"origin_time": str(obspy.UTCDateTime(2012, 11, 7, 16, 35, 55, 200000)),
"m_rr": 1.02e+20,
"m_tt": -7.96e+19,
"m_pp": -2.19e+19,
"m_rt": 6.94e+19,
"m_rp": -4.08e+19,
"m_tp": 4.09e+19}]
gen = InputFileGenerator()
gen.add_events(json.dumps(events))
events[0]["origin_time"] = obspy.UTCDateTime(events[0]["origin_time"])
events[1]["origin_time"] = obspy.UTCDateTime(events[1]["origin_time"])
assert sorted(gen._events) == sorted(events)
示例6: main
# 需要导入模块: from wfs_input_generator import InputFileGenerator [as 别名]
# 或者: from wfs_input_generator.InputFileGenerator import add_events [as 别名]
def main():
gen = InputFileGenerator()
# SES3D 4.0 can only simulate one event at a time.
gen.add_events("../tests/data/event1.xml")
gen.add_stations(["../tests/data/dataless.seed.BW_FURT",
"../tests/data/dataless.seed.BW_RJOB"])
# Just perform a standard forward simulation.
gen.config.simulation_type = "normal simulation"
gen.config.output_folder = "../OUTPUT"
# Time configuration.
gen.config.number_of_time_steps = 700
gen.config.time_increment_in_s = 0.75
# SES3D specific configuration
gen.config.output_directory = "../DATA/OUTPUT/1.8s"
# SES3D specific discretization
gen.config.nx_global = 66
gen.config.ny_global = 108
gen.config.nz_global = 28
gen.config.px = 3
gen.config.py = 4
gen.config.pz = 4
# Specify some source time function.
gen.config.source_time_function = np.sin(np.linspace(0, 10, 700))
# Configure the mesh.
gen.config.mesh_min_latitude = -50.0
gen.config.mesh_max_latitude = 50.0
gen.config.mesh_min_longitude = -50.0
gen.config.mesh_max_longitude = 50.0
gen.config.mesh_min_depth_in_km = 0.0
gen.config.mesh_max_depth_in_km = 200.0
# Define the rotation. Take care this is defined as the rotation of the
# mesh. The data will be rotated in the opposite direction! The following
# example will rotate the mesh 5 degrees southwards around the x-axis. For
# a definition of the coordinate system refer to the rotations.py file. The
# rotation is entirely optional.
gen.config.rotation_angle_in_degree = 5.0
gen.config.rotation_axis = [1.0, 0.0, 0.0]
# Define Q
gen.config.is_dissipative = True
gen.config.Q_model_relaxation_times = [1.7308, 14.3961, 22.9973]
gen.config.Q_model_weights_of_relaxation_mechanisms = \
[2.5100, 2.4354, 0.0879]
# Finally write the file to a folder. If not output directory is given, a
# dictionary containing all the files will be returned.
gen.write(format="ses3d_4_0", output_dir="output")
print "Written files to 'output' folder."
示例7: test_wrong_stf_header_format
# 需要导入模块: from wfs_input_generator import InputFileGenerator [as 别名]
# 或者: from wfs_input_generator.InputFileGenerator import add_events [as 别名]
def test_wrong_stf_header_format():
"""
Simple test asserting that the correct exceptions get raised when
attempting to write invalid STF headers.
"""
station = {
"id": "KO.ADVT",
"latitude": 41.0,
"longitude": 33.1234,
"elevation_in_m": 10}
event = {
"latitude": 39.260,
"longitude": 41.040,
"depth_in_km": 5.0,
"origin_time": UTCDateTime(2012, 4, 12, 7, 15, 48, 500000),
"m_rr": 1.0e16,
"m_tt": 1.0e16,
"m_pp": 1.0e16,
"m_rt": 0.0,
"m_rp": 0.0,
"m_tp": 0.0}
gen = InputFileGenerator()
gen.add_stations(station)
gen.add_events(event)
# Configure it.
gen.config.number_of_time_steps = 4000
gen.config.time_increment_in_s = 0.13
gen.config.output_folder = "../DATA/OUTPUT/1.8s/"
gen.config.mesh_min_latitude = 34.1
gen.config.mesh_max_latitude = 42.9
gen.config.mesh_min_longitude = 23.1
gen.config.mesh_max_longitude = 42.9
gen.config.mesh_min_depth_in_km = 0.0
gen.config.mesh_max_depth_in_km = 471.0
gen.config.nx_global = 66
gen.config.ny_global = 108
gen.config.nz_global = 28
gen.config.px = 3
gen.config.py = 4
gen.config.pz = 4
gen.config.source_time_function = np.linspace(1.0, 0.0, 4000)
gen.config.is_dissipative = False
gen.config.stf_header = "simple string"
# Write the input files to a dictionary.
with pytest.raises(ValueError):
gen.write(format="ses3d_4_1")
gen.config.stf_header = ["1", "2", "3", "4", "5", "6"]
# Write the input files to a dictionary.
with pytest.raises(ValueError):
gen.write(format="ses3d_4_1")
示例8: test_event_filter
# 需要导入模块: from wfs_input_generator import InputFileGenerator [as 别名]
# 或者: from wfs_input_generator.InputFileGenerator import add_events [as 别名]
def test_event_filter():
"""
Tests the filtering of the events.
This is funky. If any filter is given, it will remove all events that do
not have an event_id.
"""
events = \
[{"latitude": 45.0,
"longitude": 12.1,
"depth_in_km": 13.0,
"origin_time": obspy.UTCDateTime(2012, 4, 12, 7, 15, 48, 500000),
"m_rr": -2.11e+18,
"m_tt": -4.22e+19,
"m_pp": 4.43e+19,
"m_rt": -9.35e+18,
"m_rp": -8.38e+18,
"m_tp": -6.44e+18,
"description": "FICTIONAL EVENT IN BAVARIA",
"_event_id": "smi:local/Event/2013-01-05T20:19:58.727909"},
{"latitude": 13.93,
"longitude": -92.47,
"depth_in_km": 28.7,
"origin_time": obspy.UTCDateTime(2012, 11, 7, 16, 35, 55, 200000),
"m_rr": 1.02e+20,
"m_tt": -7.96e+19,
"m_pp": -2.19e+19,
"m_rt": 6.94e+19,
"m_rp": -4.08e+19,
"m_tp": 4.09e+19,
"description": "GUATEMALA",
"_event_id": "smi:local/Event/2013-01-07T13:58:41.209477"}]
event_file_1 = os.path.join(DATA, "event1.xml")
event_file_2 = os.path.join(DATA, "event2.xml")
gen = InputFileGenerator()
gen.add_events([event_file_1, event_file_2])
assert sorted(gen._events) == sorted(events)
# No applied filter should just result in the same stations being available
# everywhere.
assert sorted(gen._filtered_events) == sorted(gen._events)
# Events filters are a simple list of URLS.
gen.event_filter = ["smi:local/Event/2013-01-07T13:58:41.209477"]
# Only the last event should now be available.
assert sorted(gen._filtered_events) == sorted(events[1:])
# Removing the filter should make the missing events reappear.
gen.event_filter = None
assert sorted(gen._filtered_events) == sorted(gen._events)
gen.station_filter = []
assert sorted(gen._filtered_events) == sorted(gen._events)
示例9: test_real_world_example
# 需要导入模块: from wfs_input_generator import InputFileGenerator [as 别名]
# 或者: from wfs_input_generator.InputFileGenerator import add_events [as 别名]
def test_real_world_example(self):
"""
Test that compares the created input files to those from a real world
example.
The only artificial thing is the source-time function but that is
trivial to verify.
This is a fairly comprehensive tests but should be used in comparision
with other unit tests.
"""
gen = InputFileGenerator()
axisem_example_path = os.path.join(self.data_dir, "axisem_example")
gen.add_stations([os.path.join(self.data_dir,"dataless.seed.BW_FURT"), os.path.join(self.data_dir,"dataless.seed.BW_RJOB")])
gen.add_events(os.path.join(self.data_dir,"event1.xml"))
# Configure it.
gen.config.dominant_period= 10.0
gen.config.seismogram_length=1000.0
gen.config.number_of_processors=12
gen.config.background_model = 'prem'
# Write the input files to a dictionary.
gen.write(format='axisem', output_dir = path)
# The rest is only for asserting the produced files.
for filename in glob.glob(os.path.join(path, "*_example")):
with open(filename, "rt") as open_file:
real_file = open_file.read()
filename = os.path.basename(filename[:-8])
if filename not in input_files:
msg = "File '%s' has not been generated" % filename
raise AssertionError(msg)
lines = real_file.splitlines()
new_lines = input_files[filename].splitlines()
if len(lines) != len(new_lines):
msg = ("File '%s' does not have the same number of lines "
"for the real (%i lines) and generated (%i lines) "
"input file") % (filename, len(lines), len(new_lines))
raise AssertionError(msg)
for line, new_line in zip(lines, new_lines):
if line != new_line:
msg = "Line differs in file '%s'.\n" % filename
msg += "Expected: \"%s\"\n" % line
msg += "Got: \"%s\"\n" % new_line
raise AssertionError(msg)
示例10: test_test_all_files_have_an_empty_last_line
# 需要导入模块: from wfs_input_generator import InputFileGenerator [as 别名]
# 或者: from wfs_input_generator.InputFileGenerator import add_events [as 别名]
def test_test_all_files_have_an_empty_last_line():
"""
Tests that all files have an empty last line.
"""
station = {
"id": "KO.ADVT",
"latitude": 41.0,
"longitude": 33.1234,
"elevation_in_m": 10}
event = {
"latitude": 39.260,
"longitude": 41.040,
"depth_in_km": 5.0,
"origin_time": UTCDateTime(2012, 4, 12, 7, 15, 48, 500000),
"m_rr": 1.0e16,
"m_tt": 1.0e16,
"m_pp": 1.0e16,
"m_rt": 0.0,
"m_rp": 0.0,
"m_tp": 0.0}
gen = InputFileGenerator()
gen.add_stations(station)
gen.add_events(event)
# Configure it.
gen.config.number_of_time_steps = 4000
gen.config.time_increment_in_s = 0.13
gen.config.output_folder = "../DATA/OUTPUT/1.8s/"
gen.config.mesh_min_latitude = 34.1
gen.config.mesh_max_latitude = 42.9
gen.config.mesh_min_longitude = 23.1
gen.config.mesh_max_longitude = 42.9
gen.config.mesh_min_depth_in_km = 0.0
gen.config.mesh_max_depth_in_km = 471.0
gen.config.nx_global = 66
gen.config.ny_global = 108
gen.config.nz_global = 28
gen.config.px = 3
gen.config.py = 4
gen.config.pz = 4
gen.config.source_time_function = np.linspace(1.0, 0.0, 4000)
gen.config.is_dissipative = False
# Write the input files to a dictionary.
input_files = gen.write(format="ses3d_4_0")
for input_file in input_files.itervalues():
assert input_file.endswith("\n\n") is True
示例11: test_adding_dict_with_missing_keys
# 需要导入模块: from wfs_input_generator import InputFileGenerator [as 别名]
# 或者: from wfs_input_generator.InputFileGenerator import add_events [as 别名]
def test_adding_dict_with_missing_keys():
"""
Tests the adding of a dictionary with missing keys.
"""
event = {
"latitude": 45.0,
"longitude": 12.1,
"depth_in_km": 13.0,
"origin_time": obspy.UTCDateTime(2012, 4, 12, 7, 15, 48, 500000),
"m_rr": -2.11e+18,
"m_pp": 4.43e+19,
"m_rt": -9.35e+18,
"m_rp": -8.38e+18,
"m_tp": -6.44e+18}
gen = InputFileGenerator()
with pytest.raises(ValueError):
gen.add_events(event)
示例12: test_adding_single_event_dictionary
# 需要导入模块: from wfs_input_generator import InputFileGenerator [as 别名]
# 或者: from wfs_input_generator.InputFileGenerator import add_events [as 别名]
def test_adding_single_event_dictionary():
"""
Adding a single event dictionary.
"""
event = {
"latitude": 45.0,
"longitude": 12.1,
"depth_in_km": 13.0,
"description": "Some description",
"origin_time": obspy.UTCDateTime(2012, 4, 12, 7, 15, 48, 500000),
"m_rr": -2.11e+18,
"m_tt": -4.22e+19,
"m_pp": 4.43e+19,
"m_rt": -9.35e+18,
"m_rp": -8.38e+18,
"m_tp": -6.44e+18}
gen = InputFileGenerator()
gen.add_events(event)
assert gen._events == [event]
示例13: test_reading_QuakeML_from_BytesIO
# 需要导入模块: from wfs_input_generator import InputFileGenerator [as 别名]
# 或者: from wfs_input_generator.InputFileGenerator import add_events [as 别名]
def test_reading_QuakeML_from_BytesIO():
"""
Tests the reading of QuakeML from BytesIO.
"""
event_file_1 = os.path.join(DATA, "event1.xml")
event_file_2 = os.path.join(DATA, "event2.xml")
with open(event_file_1, "rb") as fh:
event_file_1_mem = io.BytesIO(fh.read())
with open(event_file_2, "rb") as fh:
event_file_2_mem = io.BytesIO(fh.read())
gen = InputFileGenerator()
gen.add_events([event_file_1_mem, event_file_2_mem])
# Sort to be able to compare.
assert sorted(gen._events) == \
[{"description": "FICTIONAL EVENT IN BAVARIA",
"latitude": 45.0,
"longitude": 12.1,
"depth_in_km": 13.0,
"origin_time": obspy.UTCDateTime(2012, 4, 12, 7, 15, 48, 500000),
"m_rr": -2.11e+18,
"m_tt": -4.22e+19,
"m_pp": 4.43e+19,
"m_rt": -9.35e+18,
"m_rp": -8.38e+18,
"m_tp": -6.44e+18,
"_event_id": "smi:local/Event/2013-01-05T20:19:58.727909"},
{"description": "GUATEMALA",
"latitude": 13.93,
"longitude": -92.47,
"depth_in_km": 28.7,
"origin_time": obspy.UTCDateTime(2012, 11, 7, 16, 35, 55, 200000),
"m_rr": 1.02e+20,
"m_tt": -7.96e+19,
"m_pp": -2.19e+19,
"m_rt": 6.94e+19,
"m_rp": -4.08e+19,
"m_tp": 4.09e+19,
"_event_id": "smi:local/Event/2013-01-07T13:58:41.209477"}]
示例14: test_event_filter_removed_everything_without_an_id
# 需要导入模块: from wfs_input_generator import InputFileGenerator [as 别名]
# 或者: from wfs_input_generator.InputFileGenerator import add_events [as 别名]
def test_event_filter_removed_everything_without_an_id():
"""
An applied event filter will remove all events without an id.
"""
events = [{
"latitude": 45.0,
"longitude": 12.1,
"depth_in_km": 13.0,
"origin_time": obspy.UTCDateTime(2012, 4, 12, 7, 15, 48, 500000),
"m_rr": -2.11e+18,
"m_tt": -4.22e+19,
"m_pp": 4.43e+19,
"m_rt": -9.35e+18,
"m_rp": -8.38e+18,
"m_tp": -6.44e+18,
"description": "Some description"
}, {
"latitude": 13.93,
"longitude": -92.47,
"depth_in_km": 28.7,
"origin_time": obspy.UTCDateTime(2012, 11, 7, 16, 35, 55, 200000),
"m_rr": 1.02e+20,
"m_tt": -7.96e+19,
"m_pp": -2.19e+19,
"m_rt": 6.94e+19,
"m_rp": -4.08e+19,
"m_tp": 4.09e+19,
"description": None}]
gen = InputFileGenerator()
gen.add_events(events)
assert sorted(gen._filtered_events) == sorted(events)
# Applying a filter will remove everything.
gen.event_filter = ["smi://some/url"]
assert sorted(gen._filtered_events) == []
# Removing the filter should make the missing events reappear.
gen.event_filter = None
assert sorted(gen._filtered_events) == sorted(gen._events)
gen.station_filter = []
assert sorted(gen._filtered_events) == sorted(gen._events)
示例15: test_event_dictionary_automatic_type_conversion
# 需要导入模块: from wfs_input_generator import InputFileGenerator [as 别名]
# 或者: from wfs_input_generator.InputFileGenerator import add_events [as 别名]
def test_event_dictionary_automatic_type_conversion():
"""
The types for the event dictionary should also undergo automatic type
conversion.
"""
event = {
"description": 1,
"latitude": "1",
"longitude": "2",
"depth_in_km": "3",
"origin_time": "2012-01-01T00:00:00.000000Z",
"m_rr": "-2.11e+18",
"m_tt": "-4.22e+19",
"m_pp": "4.43e+19",
"m_rt": "-9.35e+18",
"m_rp": "-8.38e+18",
"m_tp": "-6.44e+18"}
gen = InputFileGenerator()
gen.add_events(event)
assert type(gen._events[0]["latitude"]) == float
assert type(gen._events[0]["longitude"]) == float
assert type(gen._events[0]["depth_in_km"]) == float
assert type(gen._events[0]["origin_time"]) == obspy.UTCDateTime
assert type(gen._events[0]["m_rr"]) == float
assert type(gen._events[0]["m_tt"]) == float
assert type(gen._events[0]["m_pp"]) == float
assert type(gen._events[0]["m_rt"]) == float
assert type(gen._events[0]["m_rp"]) == float
assert type(gen._events[0]["m_tp"]) == float
assert gen._events == [{
"description": "1",
"latitude": 1.0,
"longitude": 2.0,
"depth_in_km": 3.0,
"origin_time": obspy.UTCDateTime(2012, 1, 1),
"m_rr": -2.11e+18,
"m_tt": -4.22e+19,
"m_pp": 4.43e+19,
"m_rt": -9.35e+18,
"m_rp": -8.38e+18,
"m_tp": -6.44e+18}]