--- a/busroute.py Tue Jun 20 10:32:50 2017 +0300 +++ b/busroute.py Wed Jun 21 18:24:34 2017 +0300 @@ -1,53 +1,42 @@ #!/usr/bin/env python3 + +replacements = { + "Ylioppilaskylä-Itä": "Ylioppilaskylä", + "Ylioppilaskylä-Länsi": "Ylioppilaskylä", + "Caribia": "Ylioppilaskylä", + "Jokila": "Lieto", + "Piispala": "Lieto", + 'Saaro': 'Ruissalo', + 'Silvola': 'Vahto', + 'Hemmola': 'Vahto', + 'Paasniittu': 'Ruskon keskusta', + 'Kahari': 'Ruskon keskusta', + 'Kemiö': 'Kemiönsaari', + 'Kasnäs': 'Kemiönsaari', +} + +# nimiä joista voidaan joustaa tarvittaessa +abbreviations = { + 'Raision keskusta': 'Raisio', + 'Ruskon keskusta': 'Rusko', + 'Naantalin keskusta': 'Naantali', + 'Kaarinan keskusta': 'Kaarina', + 'Kauppakeskus Mylly': 'Mylly', +} + +def simplify_name(name): + name = replacements.get(name, name) + name = abbreviations.get(name, name) + return name + def reduce_schedule(reitti, trip_length, whole = False): length = ((trip_length / 600) + len(reitti)) / 2 - def abstract_sign(sign): - abstractions = { - 'Moikoinen': 'Hirvensalo', - 'Maanpää': 'Hirvensalo', - 'Papinsaari': 'Hirvensalo', - 'Häppilä': 'Hirvensalo', - 'Friskala': 'Hirvensalo', - 'Kukola': 'Hirvensalo', - 'Oriniemi': 'Hirvensalo', - 'Haarla': 'Hirvensalo', - 'Lauttasaari': 'Hirvensalo', - 'Pikisaari': 'Hirvensalo', - 'Pernon telakka': 'Perno', - } - try: - start = sign.index('Kauppatori') - except ValueError: - return sign - result = [] - for i, place in enumerate(sign): - if i >= start: - abstract_place = abstractions.get(place, place) - if abstract_place not in result: - result.append(abstract_place) - else: - result.append(place) - return result if not reitti: return '' eksoalueet = { 'Turku', 'Naantali', 'Lieto', 'Aura', 'Kaarina', 'Pargas', 'Marttila', 'Somero', 'Koski Tl', 'Tarvasjoki', 'Kaivopuisto', } - replacements = { - "Ylioppilaskylä-Itä": "Ylioppilaskylä", - "Ylioppilaskylä-Länsi": "Ylioppilaskylä", - "Caribia": "Ylioppilaskylä", - "Jokila": "Lieto", - "Piispala": "Lieto", - 'Saaro': 'Ruissalo', - 'Silvola': 'Vahto', - 'Hemmola': 'Vahto', - 'Paasniittu': 'Ruskon keskusta', - 'Kahari': 'Ruskon keskusta', - 'Kemiö': 'Kemiönsaari', - 'Kasnäs': 'Kemiönsaari', - } have_already = set() i = 0 while i < len(reitti): @@ -91,7 +80,7 @@ 'Ilmarinen': 50, 'Vahto': 50, 'Ruskon keskusta': 200, - 'Oriketo': 30, + 'Oriketo': 50, 'Harittu': 40, 'Jäkärlä': 50, 'Paattinen': 100, @@ -101,7 +90,7 @@ 'Piikkiö': 100, 'Paimio': 100, 'Pargas': 50, - 'Yli-Maaria': 50, + 'Yli-Maaria': 70, 'Saramäki': 50, 'Tarvasjoki': 100, 'Marttila': 100, @@ -124,15 +113,6 @@ if 'Kauppatori' not in reitti: priorities['Länsikeskus'] = priorities['Skanssi'] = priorities['Kauppatori'] - # nimiä joista voidaan joustaa tarvittaessa - abbreviations = { - 'Raision keskusta': 'Raisio', - 'Ruskon keskusta': 'Rusko', - 'Naantalin keskusta': 'Naantali', - 'Kaarinan keskusta': 'Kaarina', - 'Kauppakeskus Mylly': 'Mylly', - } - from_place = reitti[0] destination = reitti[-1] reitti_arvot = {} @@ -159,7 +139,7 @@ weights = weights[:3] # jos kolmas kylttiarvo ei ole tarpeeksi merkittävä suhteessa reitin pituuteen niin otetaan se pois try: - if weights[2][0] != destination and weights[2][1] < (1000 / length ** 1.15): + if weights[2][0] != destination and weights[2][1] < (1200 / length ** 0.9): del weights[2] except IndexError: pass @@ -172,7 +152,6 @@ weights = sorted(weights, key = lambda paino: paino[2]) # muodostetaan sign.. sign = [paino[0] for paino in weights] - #sign = abstract_sign(sign) # supista nimet jos mahdollista def finalise(sign, abbreviation_level = 0): if abbreviation_level > 0: