Compare commits
1 Commits
nilmtools-
...
nilmtools-
Author | SHA1 | Date | |
---|---|---|---|
739da3f973 |
@@ -5,10 +5,10 @@ by Jim Paris <jim@jtan.com>
|
|||||||
Prerequisites:
|
Prerequisites:
|
||||||
|
|
||||||
# Runtime and build environments
|
# Runtime and build environments
|
||||||
sudo apt-get install python2.7 python2.7-dev python-setuptools
|
sudo apt-get install python2.7 python2.7-dev python-setuptools python-pip
|
||||||
sudo apt-get install python-numpy python-scipy python-matplotlib
|
sudo apt-get install python-numpy python-scipy
|
||||||
|
|
||||||
nilmdb (1.5.0+)
|
nilmdb (1.6.3+)
|
||||||
|
|
||||||
Install:
|
Install:
|
||||||
|
|
||||||
|
1
setup.py
1
setup.py
@@ -79,6 +79,7 @@ setup(name='nilmtools',
|
|||||||
'nilm-copy-wildcard = nilmtools.copy_wildcard:main',
|
'nilm-copy-wildcard = nilmtools.copy_wildcard:main',
|
||||||
'nilm-sinefit = nilmtools.sinefit:main',
|
'nilm-sinefit = nilmtools.sinefit:main',
|
||||||
'nilm-cleanup = nilmtools.cleanup:main',
|
'nilm-cleanup = nilmtools.cleanup:main',
|
||||||
|
'nilm-median = nilmtools.median:main',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
zip_safe = False,
|
zip_safe = False,
|
||||||
|
43
src/median.py
Executable file
43
src/median.py
Executable file
@@ -0,0 +1,43 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
import nilmtools.filter, scipy.signal
|
||||||
|
|
||||||
|
def main(argv = None):
|
||||||
|
f = nilmtools.filter.Filter()
|
||||||
|
parser = f.setup_parser("Median Filter")
|
||||||
|
group = parser.add_argument_group("Median filter options")
|
||||||
|
group.add_argument("-z", "--size", action="store", type=int, default=25,
|
||||||
|
help = "median filter size (default %(default)s)")
|
||||||
|
group.add_argument("-d", "--difference", action="store_true",
|
||||||
|
help = "store difference rather than filtered values")
|
||||||
|
|
||||||
|
try:
|
||||||
|
args = f.parse_args(argv)
|
||||||
|
except nilmtools.filter.MissingDestination as e:
|
||||||
|
print "Source is %s (%s)" % (e.src.path, e.src.layout)
|
||||||
|
print "Destination %s doesn't exist" % (e.dest.path)
|
||||||
|
print "You could make it with a command like:"
|
||||||
|
print " nilmtool -u %s create %s %s" % (e.dest.url,
|
||||||
|
e.dest.path, e.src.layout)
|
||||||
|
raise SystemExit(1)
|
||||||
|
|
||||||
|
meta = f.client_src.stream_get_metadata(f.src.path)
|
||||||
|
f.check_dest_metadata({ "median_filter_source": f.src.path,
|
||||||
|
"median_filter_size": args.size,
|
||||||
|
"median_filter_difference": repr(args.difference) })
|
||||||
|
|
||||||
|
f.process_numpy(median_filter, args = (args.size, args.difference))
|
||||||
|
|
||||||
|
def median_filter(data, interval, args, insert, final):
|
||||||
|
(size, diff) = args
|
||||||
|
(rows, cols) = data.shape
|
||||||
|
for i in range(cols - 1):
|
||||||
|
filtered = scipy.signal.medfilt(data[:, i+1], size)
|
||||||
|
if diff:
|
||||||
|
data[:, i+1] -= filtered
|
||||||
|
else:
|
||||||
|
data[:, i+1] = filtered
|
||||||
|
insert(data)
|
||||||
|
return rows
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
Reference in New Issue
Block a user