如何使用ObsPy向StationXML文件添加多个地震台站
解决ObsPy添加多个台站到StationXML的问题
核心逻辑是:ObsPy的Inventory→Network→多个Station层级结构,每个台站需要单独创建Station实例,再添加到同一个Network对象中。
以下是修正后的完整代码示例:
from obspy import UTCDateTime from obspy.core.inventory import Inventory, Network, Station, Site # 创建根Inventory对象 inv = Inventory( networks=[], source="Your Source Name" ) # 创建Network对象(示例代码设为"XX",可按需修改) net = Network( code="XX", stations=[], description="Test Network", start_date=UTCDateTime(2016, 1, 1) ) # 第一个台站(示例参数,可替换你自己的初始台站配置) sta1 = Station( code="ABC", latitude=15.0, longitude=10.0, elevation=1000.0, creation_date=UTCDateTime(2016, 1, 2), site=Site(name="First station") ) net.add(sta1) # 第二个台站(使用你提供的DEF台站参数) sta2 = Station( code="DEF", latitude=10.0, longitude=20.0, elevation=3450.0, creation_date=UTCDateTime(2016, 1, 3), site=Site(name="Second station") ) net.add(sta2) # 将Network添加到Inventory inv.add(net) # 写入StationXML文件 inv.write("multiple_stations.xml", format="STATIONXML")
关键说明:
- 每个台站必须是独立的
Station实例,不能把多个台站的参数混在同一个Station对象里。 - 用
network.add(station_instance)方法将每个台站依次添加到网络中。 - 最终通过
Inventory对象统一写入文件,确保输出结构符合StationXML规范。
内容的提问来源于stack exchange,提问作者Ric
相关产品推荐
相关产品推荐

