[seiscomp, scanloc] Install, add .gitignore
This commit is contained in:
72
share/plugins/seedlink/plugin.py
Normal file
72
share/plugins/seedlink/plugin.py
Normal file
@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- 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 struct
|
||||
|
||||
|
||||
_doy = (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365)
|
||||
|
||||
|
||||
def _is_leap(y):
|
||||
"""True if y is a leap year."""
|
||||
return (y % 400 == 0) or (y % 4 == 0 and y % 100 != 0)
|
||||
|
||||
|
||||
def _ldoy(y, m):
|
||||
"""The day of the year of the first day of month m, in year y.
|
||||
|
||||
Note: for January, m=1; for December, m=12.
|
||||
Examples:
|
||||
_ldoy(1900, 4) = 90
|
||||
_ldoy(1900, 1) = 0
|
||||
_ldoy(1999, 4) = 90
|
||||
_ldoy(2004, 4) = 91
|
||||
_ldoy(2000, 4) = 91
|
||||
|
||||
"""
|
||||
return _doy[m - 1] + (_is_leap(y) and m >= 3)
|
||||
|
||||
|
||||
def _mdy2dy(month, day, year):
|
||||
return _ldoy(year, month) + day
|
||||
|
||||
|
||||
class Seedlink(object):
|
||||
def __init__(self):
|
||||
self.__fd = os.fdopen(63, "wb")
|
||||
|
||||
def send_raw3(self, sta, cha, t, usec_corr, tqual, data):
|
||||
packet = struct.pack(
|
||||
"@i10s10s9i%di" % len(data),
|
||||
8,
|
||||
sta.encode(),
|
||||
cha.encode(),
|
||||
t.year,
|
||||
_mdy2dy(t.month, t.day, t.year),
|
||||
t.hour,
|
||||
t.minute,
|
||||
t.second,
|
||||
t.microsecond,
|
||||
usec_corr,
|
||||
tqual,
|
||||
len(data),
|
||||
*data
|
||||
)
|
||||
|
||||
self.__fd.write(packet)
|
||||
self.__fd.flush()
|
||||
|
Reference in New Issue
Block a user