80 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
#!/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 os
 | 
						|
import seiscomp.client
 | 
						|
import seiscomp.datamodel
 | 
						|
import seiscomp.io
 | 
						|
 | 
						|
 | 
						|
class EventParameterLog(seiscomp.client.Application):
 | 
						|
    def __init__(self, argc, argv):
 | 
						|
        seiscomp.client.Application.__init__(self, argc, argv)
 | 
						|
 | 
						|
        self.setMessagingEnabled(True)
 | 
						|
        self.setDatabaseEnabled(False, False)
 | 
						|
        self.setMessagingUsername("")
 | 
						|
        self.setPrimaryMessagingGroup(seiscomp.client.Protocol.LISTENER_GROUP)
 | 
						|
        self.addMessagingSubscription("EVENT")
 | 
						|
        self.addMessagingSubscription("LOCATION")
 | 
						|
        self.addMessagingSubscription("MAGNITUDE")
 | 
						|
        self.addMessagingSubscription("AMPLITUDE")
 | 
						|
        self.addMessagingSubscription("PICK")
 | 
						|
 | 
						|
        self.setAutoApplyNotifierEnabled(True)
 | 
						|
        self.setInterpretNotifierEnabled(True)
 | 
						|
 | 
						|
        # EventParameter object
 | 
						|
        self._eventParameters = seiscomp.datamodel.EventParameters()
 | 
						|
 | 
						|
    def printUsage(self):
 | 
						|
 | 
						|
        print(
 | 
						|
            """Usage:
 | 
						|
  sceplog [options]
 | 
						|
 | 
						|
Receive event parameters from messaging and write them to stdout in SCML"""
 | 
						|
        )
 | 
						|
 | 
						|
        seiscomp.client.Application.printUsage(self)
 | 
						|
 | 
						|
        print(
 | 
						|
            """Examples:
 | 
						|
Execute sceplog with debug output
 | 
						|
  sceplog --debug
 | 
						|
"""
 | 
						|
        )
 | 
						|
 | 
						|
    def run(self):
 | 
						|
        if not seiscomp.client.Application.run(self):
 | 
						|
            return False
 | 
						|
 | 
						|
        ar = seiscomp.io.XMLArchive()
 | 
						|
        ar.setFormattedOutput(True)
 | 
						|
        if ar.create("-"):
 | 
						|
            ar.writeObject(self._eventParameters)
 | 
						|
            ar.close()
 | 
						|
            # Hack to avoid the "close failed in file object destructor"
 | 
						|
            # exception
 | 
						|
            #     print ""
 | 
						|
            sys.stdout.write("\n")
 | 
						|
 | 
						|
        return True
 | 
						|
 | 
						|
 | 
						|
app = EventParameterLog(len(sys.argv), sys.argv)
 | 
						|
sys.exit(app())
 |