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',
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