--- a/origin-src/transitfeed-1.2.6/examples/filter_unused_stops.py +++ b/origin-src/transitfeed-1.2.6/examples/filter_unused_stops.py @@ -1,1 +1,63 @@ +#!/usr/bin/python2.5 +# Copyright (C) 2007 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +"""Filter the unused stops out of a transit feed file.""" + +import optparse +import sys +import transitfeed + + +def main(): + parser = optparse.OptionParser( + usage="usage: %prog [options] input_feed output_feed", + version="%prog "+transitfeed.__version__) + parser.add_option("-l", "--list_removed", dest="list_removed", + default=False, + action="store_true", + help="Print removed stops to stdout") + (options, args) = parser.parse_args() + if len(args) != 2: + print >>sys.stderr, parser.format_help() + print >>sys.stderr, "\n\nYou must provide input_feed and output_feed\n\n" + sys.exit(2) + input_path = args[0] + output_path = args[1] + + loader = transitfeed.Loader(input_path) + schedule = loader.Load() + + print "Removing unused stops..." + removed = 0 + for stop_id, stop in schedule.stops.items(): + if not stop.GetTrips(schedule): + removed += 1 + del schedule.stops[stop_id] + if options.list_removed: + print "Removing %s (%s)" % (stop_id, stop.stop_name) + if removed == 0: + print "No unused stops." + elif removed == 1: + print "Removed 1 stop" + else: + print "Removed %d stops" % removed + + schedule.WriteGoogleTransitFeed(output_path) + +if __name__ == "__main__": + main() +