|
|
@@ -0,0 +1,37 @@ |
|
|
|
#!/usr/bin/python |
|
|
|
|
|
|
|
import nilmtools.filter |
|
|
|
import nilmdb.client |
|
|
|
import numpy as np |
|
|
|
import sys |
|
|
|
|
|
|
|
def main(): |
|
|
|
f = nilmtools.filter.Filter() |
|
|
|
parser = f.setup_parser("Copy a stream") |
|
|
|
group = parser.add_argument_group("Copy options") |
|
|
|
|
|
|
|
# Parse arguments |
|
|
|
try: |
|
|
|
args = f.parse_args() |
|
|
|
except nilmtools.filter.MissingDestination as e: |
|
|
|
print "Source is %s (%s)" % (e.src, e.layout) |
|
|
|
print "Destination %s doesn't exist" % (e.dest) |
|
|
|
print "You could make it with a command like:" |
|
|
|
print " nilmtool create", e.dest, e.layout |
|
|
|
raise SystemExit(1) |
|
|
|
|
|
|
|
# Copy metadata |
|
|
|
meta = f.client.stream_get_metadata(args.srcpath) |
|
|
|
f.check_dest_metadata(meta) |
|
|
|
|
|
|
|
# Copy all rows of data as ASCII strings |
|
|
|
extractor = nilmdb.client.Client(args.url).stream_extract |
|
|
|
inserter = nilmdb.client.Client(args.url).stream_insert_context |
|
|
|
for (start, end) in f.intervals(): |
|
|
|
print "Processing", f.interval_string((start, end)) |
|
|
|
with inserter(args.destpath, start, end) as insert_ctx: |
|
|
|
for row in extractor(args.srcpath, start, end): |
|
|
|
insert_ctx.insert(row + "\n") |
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
|
main() |