diff --git a/geomagio/Controller.py b/geomagio/Controller.py index 019386fdbbfc59dfd55b38bfcd0a8e20a61c6960..0614474dbe841ac46b8eb6c9aeef75965626d84b 100644 --- a/geomagio/Controller.py +++ b/geomagio/Controller.py @@ -274,7 +274,8 @@ def main(args): type=args.type, interval=args.interval, locationCode=locationcode, - tag=args.output_edge_tag) + tag=args.output_edge_tag, + forceout=args.forceout) else: print >> sys.stderr, "Missing required output directive" @@ -382,8 +383,13 @@ def parse_args(args): parser.add_argument('--realtime', action='store_true', default=False, - help='Flag to run last hour if interval is minute, ' + - 'or last 10 minutes if interval is seconds') + help='Flag to run the last hour if interval is minute, ' + + 'or the last 10 minutes if interval is seconds') + parser.add_argument('--forceout', + action='store_true', + default=False, + help='Flag to force data into miniseed blocks. Should only ' + + 'be used when certain the data is self contained.') # Input group input_group = parser.add_mutually_exclusive_group(required=True) diff --git a/geomagio/edge/EdgeFactory.py b/geomagio/edge/EdgeFactory.py index 32ee18c9c9e0e489ce3eadf92d762ae8ed119148..d74e441d51c96a6de8f055c3f9d2d843d844b826 100644 --- a/geomagio/edge/EdgeFactory.py +++ b/geomagio/edge/EdgeFactory.py @@ -52,6 +52,9 @@ class EdgeFactory(TimeseriesFactory): tag: str A tag used by edge to log and associate a socket with a given data source + forceout: bool + Tells edge to forceout a packet to miniseed. Generally used when + the user knows no more data is coming. See Also -------- @@ -68,7 +71,7 @@ class EdgeFactory(TimeseriesFactory): def __init__(self, host=None, port=None, write_port=None, observatory=None, channels=None, type=None, interval=None, observatoryMetadata=None, locationCode=None, - cwbhost=None, cwbport=0, tag='GeomagAlg'): + cwbhost=None, cwbport=0, tag='GeomagAlg', forceout=False): TimeseriesFactory.__init__(self, observatory, channels, type, interval) self.client = earthworm.Client(host, port) @@ -81,6 +84,7 @@ class EdgeFactory(TimeseriesFactory): self.write_port = write_port self.cwbhost = cwbhost or '' self.cwbport = cwbport + self.forceout = forceout def get_timeseries(self, starttime, endtime, observatory=None, channels=None, type=None, interval=None): @@ -618,7 +622,8 @@ class EdgeFactory(TimeseriesFactory): trace_send.data) trace_send = self._convert_trace_to_int(trace_send) ric.send_trace(interval, trace_send) - ric.forceout() + if self.forceout: + ric.forceout() ric.close() def _set_metadata(self, stream, observatory, channel, type, interval):