[seiscomp, scanloc] Install, add .gitignore

This commit is contained in:
2025-10-09 15:07:02 +02:00
commit 20f5301bb1
2848 changed files with 1315858 additions and 0 deletions

84
bin/scdumpobject Executable file
View File

@ -0,0 +1,84 @@
#!/usr/bin/env seiscomp-python
# -*- coding: utf-8 -*-
############################################################################
# Copyright (C) GFZ Potsdam #
# All rights reserved. #
# #
# GNU Affero General Public License Usage #
# This file may be used under the terms of the GNU Affero #
# Public License version 3.0 as published by the Free Software Foundation #
# and appearing in the file LICENSE included in the packaging of this #
# file. Please review the following information to ensure the GNU Affero #
# Public License version 3.0 requirements will be met: #
# https://www.gnu.org/licenses/agpl-3.0.html. #
############################################################################
import sys
import seiscomp.client, seiscomp.datamodel, seiscomp.io
class ObjectDumper(seiscomp.client.Application):
def __init__(self):
seiscomp.client.Application.__init__(self, len(sys.argv), sys.argv)
self.setMessagingEnabled(True)
self.setDatabaseEnabled(True, False)
self.setMessagingUsername("")
def createCommandLineDescription(self):
seiscomp.client.Application.createCommandLineDescription(self)
self.commandline().addGroup("Dump")
self.commandline().addStringOption("Dump", "public-id,P", "publicID")
def loadEventParametersObject(self, publicID):
for tp in (
seiscomp.datamodel.Pick,
seiscomp.datamodel.Amplitude,
seiscomp.datamodel.Origin,
seiscomp.datamodel.Event,
seiscomp.datamodel.FocalMechanism,
seiscomp.datamodel.Magnitude,
seiscomp.datamodel.StationMagnitude,
):
obj = self.query().loadObject(tp.TypeInfo(), publicID)
obj = tp.Cast(obj)
if obj:
ep = seiscomp.datamodel.EventParameters()
ep.add(obj)
return ep
def loadInventoryObject(self, publicID):
for tp in (
seiscomp.datamodel.Network,
seiscomp.datamodel.Station,
seiscomp.datamodel.Sensor,
seiscomp.datamodel.SensorLocation,
seiscomp.datamodel.Stream,
):
obj = self.query().loadObject(tp.TypeInfo(), publicID)
obj = tp.Cast(obj)
if obj:
return obj
def run(self):
publicID = self.commandline().optionString("public-id")
obj = self.loadEventParametersObject(publicID)
if obj is None:
obj = self.loadInventoryObject(publicID)
if obj is None:
raise ValueError("unknown object '" + publicID + "'")
# dump formatted XML archive to stdout
ar = seiscomp.io.XMLArchive()
ar.setFormattedOutput(True)
ar.create("-")
ar.writeObject(obj)
ar.close()
return True
if __name__ == "__main__":
app = ObjectDumper()
app()