From 1a9435f1dffc7e846578b10f862731e277c2d52d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jean-Michel=20Nirgal=20Vourg=C3=A8re?= Date: Thu, 20 Jan 2011 15:33:27 +0000 Subject: [PATCH] Added filters --filter-sog-le --filter-farfrom --filter-closeto --- bin/show_targets_ships.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/bin/show_targets_ships.py b/bin/show_targets_ships.py index da1ba6f..7336ad9 100755 --- a/bin/show_targets_ships.py +++ b/bin/show_targets_ships.py @@ -497,6 +497,15 @@ def main(): parser.add_option('--filter-area', action='store', type='str', dest='area_file', metavar="FILE.KML", help="only process a specific area as defined in a kml polygon file.") + parser.add_option('--filter-farfrom', + action='store', dest='far_from', nargs=3, metavar='LAT LONG MILES', + help="only show ships farther than MILES miles from LAT,LONG") + parser.add_option('--filter-closeto', + action='store', dest='close_to', nargs=3, metavar='LAT LONG MILES', + help="only show ships closer than MILES miles from LAT,LONG") + parser.add_option('--filter-sog-le', + action='store', dest='sog_le', metavar='KNOTS', + help='only show ships when speed over ground is less or equal to KNOTS.') # parser.add_option('--format', @@ -641,6 +650,29 @@ def main(): area = load_area_from_kml_polygon(options.area_file) filters.append(lambda nmea: filter_area(nmea, area)) + if options.close_to: + try: + lat = clean_latitude(unicode(options.close_to[0], 'utf-8')) + lon = clean_longitude(unicode(options.close_to[1], 'utf-8')) + except LatLonFormatError as err: + print >> sys.stderr, err.args + sys.exit(1) + miles = float(options.close_to[2]) + filters.append(lambda nmea: filter_close_to(nmea, lat, lon, miles)) + + if options.far_from: + try: + lat = clean_latitude(unicode(options.far_from[0], 'utf-8')) + lon = clean_longitude(unicode(options.far_from[1], 'utf-8')) + except LatLonFormatError as err: + print >> sys.stderr, err.args + sys.exit(1) + miles = float(options.far_from[2]) + filters.append(lambda nmea: filter_far_from(nmea, lat, lon, miles)) + + if options.sog_le: + filters.append(lambda nmea: filter_sog_le(nmea, float(options.sog_le))) + if options.type_list: def filter_type(nmea): #print nmea.type, repr(options.type_list), nmea.type in options.type_list -- 2.30.2