tulsawebdevs / django-multi-gtfs

Django app to import and export General Transit Feed Specification (GTFS)
http://tulsawebdevs.org/
Apache License 2.0
50 stars 32 forks source link

Bug in shape geometry #25

Closed araichev closed 10 years ago

araichev commented 10 years ago

I was playing around with the Bowen GTFS feed (https://data.qld.gov.au/dataset/general-transit-feed-specification-gtfs-qconnect/resource/999196bf-8815-47b5-ac90-e8caa9a7aee3) and discovered a bug, i think, in the geometry assigned to shape objects: the linestrings aren't following the shape point sequence.

One solution is to replace line https://github.com/tulsawebdevs/django-multi-gtfs/blob/master/multigtfs/models/shape.py#L109 with

points = trip.shape.points.order_by('sequence').values_list('point', flat=True)

Here's an example bug based on the Bowen feed. Consider the following code.

feed = Feed.objects.get(name='Bowen')    
route = Route.objects.in_feed(feed).get(short_name='1')
trip = route.trip_set.all()[0]
points = trip.shape.points.order_by('sequence').values_list('point', flat=True)
geometry1 = [p.coords for p in points]
geometry2 = trip.shape.geometry
if geometry1 != geometry2:
    print('Unequal!')
    print(list(geometry1))
    print(list(geometry2))

It produces

Unequal!
[(148.246743818, -20.0129421084), (148.246227635, -20.012129696), (148.245502961, -20.0109899199), (148.244779167, -20.0098528702), (148.244056335, -20.0087158452), (148.243457358, -20.0077723199), (148.243391096, -20.0076930275), (148.243365345, -20.0076932358), (148.243335021, -20.0076870121), (148.24330584, -20.0076745103), (148.243280632, -20.0076567078), (148.243260269, -20.0076363318), (148.243252973, -20.0076253202), (148.241397251, -20.0086776183), (148.240644127, -20.0075343612), (148.240644127, -20.0075343612), (148.241397251, -20.0086776183), (148.243155966, -20.0076803907), (148.243155966, -20.0076803907), (148.243252973, -20.0076253202), (148.243243907, -20.0076097547), (148.243235221, -20.0075815815), (148.243232278, -20.0075526617), (148.243235051, -20.0075238958), (148.243244467, -20.0074962098), (148.243253502, -20.0074811314), (148.243158811, -20.007301033), (148.242524452, -20.0062979717), (148.242144592, -20.0057091332), (148.24187069, -20.0052745594), (148.24187069, -20.0052745594), (148.241540381, -20.0047501429), (148.240978317, -20.003848165), (148.239027616, -20.0049528633), (148.238890113, -20.0047382638), (148.238890113, -20.0047382638), (148.238307378, -20.0038267106), (148.237865093, -20.0031586764), (148.237706276, -20.0028921303), (148.237706276, -20.0028921303), (148.237386791, -20.0023571856), (148.237093742, -20.0018941527), (148.237093742, -20.0018941527), (148.236891672, -20.0015759703), (148.236461129, -20.0008983371), (148.2384994, -20.0013786406), (148.238601531, -20.0014381709), (148.238601531, -20.0014381709), (148.239621019, -20.0020307185), (148.240095063, -20.0022778117), (148.240324778, -20.0024065687), (148.242094433, -20.0010752644), (148.242516258, -20.0006819464), (148.242713316, -19.9996471845), (148.2430853, -19.9958421197), (148.243239065, -19.9943762852), (148.243410338, -19.9934372625), (148.242856975, -19.9927851811), (148.242856975, -19.9927851811), (148.242221706, -19.9920353609), (148.242221706, -19.9920353609), (148.242114889, -19.9919099149), (148.240825937, -19.991782405), (148.240825937, -19.991782405), (148.239691913, -19.9916707724), (148.239691913, -19.9916707724), (148.238849718, -19.991587718), (148.236868882, -19.9913883788), (148.236868882, -19.9913883788), (148.23656949, -19.9913577842), (148.236770194, -19.9895696757), (148.236792574, -19.9893647903), (148.236792574, -19.9893647903), (148.236894282, -19.9884572531), (148.237091715, -19.9867772063), (148.237191768, -19.9862724886), (148.236490429, -19.9865465155), (148.236490429, -19.9865465155), (148.236121933, -19.9866898071), (148.235212908, -19.9844914816), (148.235129991, -19.9843008847), (148.235129991, -19.9843008847), (148.234851, -19.9836570799), (148.233320172, -19.9830174061), (148.23382151, -19.9820088828), (148.23325794, -19.9817611757), (148.23325794, -19.9817611757), (148.231700818, -19.9810775234), (148.231640616, -19.9810506658), (148.231640616, -19.9810506658), (148.230262237, -19.9804466242), (148.230159333, -19.9803816635), (148.230156312, -19.9803869897), (148.230131684, -19.9804133635), (148.230102484, -19.9804333052), (148.230067758, -19.9804467892), (148.230032243, -19.9804548444), (148.229995067, -19.9804547435), (148.229958136, -19.9804465379), (148.229924225, -19.9804330061), (148.229894315, -19.9804132734), (148.229870336, -19.9803864906), (148.229851202, -19.9803571346), (148.229839825, -19.9803234813), (148.229836094, -19.980289133), (148.229838923, -19.9802585665), (148.229851494, -19.9802210527), (148.229870515, -19.9801909227), (148.229894164, -19.9801654238), (148.229921405, -19.9801472318), (148.229924344, -19.9801446072), (148.229958117, -19.9801310975), (148.229993632, -19.9801230424), (148.23003176, -19.9801231689), (148.230067739, -19.9801313488), (148.23010165, -19.9801448806), (148.230132513, -19.9801646389), (148.230160138, -19.9801969276), (148.230992094, -19.9796686835), (148.229891255, -19.9780176508), (148.229891255, -19.9780176508), (148.2298648, -19.9779781836), (148.229001285, -19.9766769244), (148.229001285, -19.9766769244), (148.228740467, -19.9762850567), (148.227385609, -19.974271173), (148.227385609, -19.974271173), (148.227205874, -19.9740040613), (148.227599416, -19.9740408095), (148.226738271, -19.9726305583), (148.22653369, -19.9723023925), (148.22653369, -19.9723023925), (148.226049987, -19.9715259861), (148.225534337, -19.9707027536), (148.225342353, -19.9708102319), (148.225342353, -19.9708102319), (148.224679181, -19.9711798811), (148.225194827, -19.9720031154), (148.225416007, -19.9723812989), (148.225416007, -19.9723812989), (148.225847456, -19.9731202474), (148.226112646, -19.9735563965), (148.226112646, -19.9735563965), (148.226338756, -19.973929305), (148.225742689, -19.973875375), (148.225941608, -19.9741700427), (148.225941608, -19.9741700427), (148.227299465, -19.9761786076), (148.227299465, -19.9761786076), (148.227763014, -19.9768652463), (148.228765242, -19.97837123), (148.228765242, -19.97837123), (148.22888927, -19.9785575289), (148.229921405, -19.9801472318), (148.229924344, -19.9801446072), (148.229958117, -19.9801310975), (148.229993632, -19.9801230424), (148.23003176, -19.9801231689), (148.230067739, -19.9801313488), (148.23010165, -19.9801448806), (148.230132513, -19.9801646389), (148.230160138, -19.9801969276), (148.230174672, -19.980220752), (148.23018605, -19.9802544053), (148.230189781, -19.9802887536), (148.230185864, -19.980323797), (148.230175334, -19.9803568597), (148.230159333, -19.9803816635), (148.230262237, -19.9804466242), (148.231001747, -19.9807711819), (148.231001747, -19.9807711819), (148.231700818, -19.9810775234), (148.233102698, -19.9816930039), (148.233102698, -19.9816930039), (148.23382151, -19.9820088828), (148.233320172, -19.9830174061), (148.234632585, -19.9835655773), (148.234632585, -19.9835655773), (148.234851, -19.9836570799), (148.235212908, -19.9844914816), (148.236283111, -19.9840931028), (148.237121341, -19.9860786233), (148.237191768, -19.9862724886), (148.23808016, -19.9872895983), (148.23808016, -19.9872895983), (148.241909342, -19.9916754631), (148.241909342, -19.9916754631), (148.242114889, -19.9919099149), (148.240825937, -19.991782405), (148.240825937, -19.991782405), (148.239691913, -19.9916707724), (148.239691913, -19.9916707724), (148.238849718, -19.991587718), (148.236868882, -19.9913883788), (148.236868882, -19.9913883788), (148.23656949, -19.9913577842), (148.236488689, -19.9920775196), (148.236478245, -19.9921709697), (148.236478245, -19.9921709697), (148.236418602, -19.9926947995), (148.23628759, -19.9938466894), (148.23628759, -19.9938466894), (148.236264118, -19.9940560513), (148.236139765, -19.9951450317), (148.235886344, -19.99738415), (148.235808278, -19.9980760184), (148.235808278, -19.9980760184), (148.235784994, -19.9982790762), (148.235708693, -19.9989439541), (148.235520594, -20.0006602954), (148.23576377, -20.0007218255), (148.236461129, -20.0008983371), (148.2384994, -20.0013786406), (148.238601531, -20.0014381709), (148.238601531, -20.0014381709), (148.239621019, -20.0020307185), (148.240095063, -20.0022778117), (148.240349707, -20.0026550882), (148.241057685, -20.0038088433), (148.241624513, -20.0047109493), (148.242226084, -20.0056626581), (148.242604011, -20.0062523458), (148.243211146, -20.0072096107), (148.243211146, -20.0072096107), (148.24323848, -20.0072518047), (148.24335176, -20.0074161805), (148.243365207, -20.0074129373), (148.243396673, -20.0074128829), (148.243426997, -20.0074191065), (148.243456206, -20.0074307078), (148.243481387, -20.0074494108), (148.243501749, -20.0074697867), (148.24350812, -20.0074798722), (148.243518112, -20.0074963639), (148.243526825, -20.0075236365), (148.243529768, -20.0075525563), (148.243526967, -20.0075822228), (148.243518505, -20.0076099344), (148.243502475, -20.0076356399), (148.243495616, -20.0076417642), (148.243480864, -20.0076566888), (148.243456477, -20.0076749591), (148.243427516, -20.0076867975), (148.243396812, -20.0076931814), (148.243391096, -20.0076930275), (148.243365345, -20.0076932358), (148.243335021, -20.0076870121), (148.24330584, -20.0076745103), (148.243280632, -20.0076567078), (148.243260269, -20.0076363318), (148.243252973, -20.0076253202), (148.241397251, -20.0086776183), (148.240644127, -20.0075343612), (148.240644127, -20.0075343612), (148.241397251, -20.0086776183), (148.239404677, -20.0098091224), (148.237790375, -20.0107272791), (148.237790375, -20.0107272791), (148.2374188, -20.0109389767), (148.238141611, -20.0120751206), (148.238862472, -20.0132130133), (148.239585275, -20.0143500558), (148.240307134, -20.0154870718), (148.241032704, -20.0166277916), (148.242477181, -20.0158095869), (148.242477181, -20.0158095869), (148.243011705, -20.0155067322), (148.243740238, -20.0166448201), (148.244471801, -20.0177775808), (148.245890147, -20.0169721625), (148.245890147, -20.0169721625), (148.246462506, -20.016647783), (148.245738688, -20.015510731), (148.245256075, -20.0147550972), (148.245256075, -20.0147550972), (148.245010197, -20.0143708482), (148.245899819, -20.013864838), (148.245899819, -20.013864838), (148.246841807, -20.0133295876), (148.246830889, -20.0133121697), (148.246821331, -20.0132812694), (148.24681659, -20.013248696), (148.24682135, -20.0132172795), (148.246830874, -20.0131859911), (148.246847939, -20.0131576094), (148.246854825, -20.0131505845), (148.246800232, -20.0130319506), (148.246743818, -20.0129421084)]
[(148.246743818, -20.0129421084), (148.246800232, -20.0130319506), (148.246854825, -20.0131505845), (148.246847939, -20.0131576094), (148.246830874, -20.0131859911), (148.24682135, -20.0132172795), (148.24681659, -20.013248696), (148.246821331, -20.0132812694), (148.246830889, -20.0133121697), (148.246841807, -20.0133295876), (148.245899819, -20.013864838), (148.245899819, -20.013864838), (148.245010197, -20.0143708482), (148.245256075, -20.0147550972), (148.245256075, -20.0147550972), (148.245738688, -20.015510731), (148.246462506, -20.016647783), (148.245890147, -20.0169721625), (148.245890147, -20.0169721625), (148.244471801, -20.0177775808), (148.243740238, -20.0166448201), (148.243011705, -20.0155067322), (148.242477181, -20.0158095869), (148.242477181, -20.0158095869), (148.241032704, -20.0166277916), (148.240307134, -20.0154870718), (148.239585275, -20.0143500558), (148.238862472, -20.0132130133), (148.238141611, -20.0120751206), (148.2374188, -20.0109389767), (148.237790375, -20.0107272791), (148.237790375, -20.0107272791), (148.239404677, -20.0098091224), (148.241397251, -20.0086776183), (148.240644127, -20.0075343612), (148.240644127, -20.0075343612), (148.241397251, -20.0086776183), (148.243252973, -20.0076253202), (148.243260269, -20.0076363318), (148.243280632, -20.0076567078), (148.24330584, -20.0076745103), (148.243335021, -20.0076870121), (148.243365345, -20.0076932358), (148.243391096, -20.0076930275), (148.243396812, -20.0076931814), (148.243427516, -20.0076867975), (148.243456477, -20.0076749591), (148.243480864, -20.0076566888), (148.243495616, -20.0076417642), (148.243502475, -20.0076356399), (148.243518505, -20.0076099344), (148.243526967, -20.0075822228), (148.243529768, -20.0075525563), (148.243526825, -20.0075236365), (148.243518112, -20.0074963639), (148.24350812, -20.0074798722), (148.243501749, -20.0074697867), (148.243481387, -20.0074494108), (148.243456206, -20.0074307078), (148.243426997, -20.0074191065), (148.243396673, -20.0074128829), (148.243365207, -20.0074129373), (148.24335176, -20.0074161805), (148.24323848, -20.0072518047), (148.243211146, -20.0072096107), (148.243211146, -20.0072096107), (148.242604011, -20.0062523458), (148.242226084, -20.0056626581), (148.241624513, -20.0047109493), (148.241057685, -20.0038088433), (148.240349707, -20.0026550882), (148.240095063, -20.0022778117), (148.239621019, -20.0020307185), (148.238601531, -20.0014381709), (148.238601531, -20.0014381709), (148.2384994, -20.0013786406), (148.236461129, -20.0008983371), (148.23576377, -20.0007218255), (148.235520594, -20.0006602954), (148.235708693, -19.9989439541), (148.235784994, -19.9982790762), (148.235808278, -19.9980760184), (148.235808278, -19.9980760184), (148.235886344, -19.99738415), (148.236139765, -19.9951450317), (148.236264118, -19.9940560513), (148.23628759, -19.9938466894), (148.23628759, -19.9938466894), (148.236418602, -19.9926947995), (148.236478245, -19.9921709697), (148.236478245, -19.9921709697), (148.236488689, -19.9920775196), (148.23656949, -19.9913577842), (148.236868882, -19.9913883788), (148.236868882, -19.9913883788), (148.238849718, -19.991587718), (148.239691913, -19.9916707724), (148.239691913, -19.9916707724), (148.240825937, -19.991782405), (148.240825937, -19.991782405), (148.242114889, -19.9919099149), (148.241909342, -19.9916754631), (148.241909342, -19.9916754631), (148.23808016, -19.9872895983), (148.23808016, -19.9872895983), (148.237191768, -19.9862724886), (148.237121341, -19.9860786233), (148.236283111, -19.9840931028), (148.235212908, -19.9844914816), (148.234851, -19.9836570799), (148.234632585, -19.9835655773), (148.234632585, -19.9835655773), (148.233320172, -19.9830174061), (148.23382151, -19.9820088828), (148.233102698, -19.9816930039), (148.233102698, -19.9816930039), (148.231700818, -19.9810775234), (148.231001747, -19.9807711819), (148.231001747, -19.9807711819), (148.230262237, -19.9804466242), (148.230159333, -19.9803816635), (148.230175334, -19.9803568597), (148.230185864, -19.980323797), (148.230189781, -19.9802887536), (148.23018605, -19.9802544053), (148.230174672, -19.980220752), (148.230160138, -19.9801969276), (148.230132513, -19.9801646389), (148.23010165, -19.9801448806), (148.230067739, -19.9801313488), (148.23003176, -19.9801231689), (148.229993632, -19.9801230424), (148.229958117, -19.9801310975), (148.229924344, -19.9801446072), (148.229921405, -19.9801472318), (148.22888927, -19.9785575289), (148.228765242, -19.97837123), (148.228765242, -19.97837123), (148.227763014, -19.9768652463), (148.227299465, -19.9761786076), (148.227299465, -19.9761786076), (148.225941608, -19.9741700427), (148.225941608, -19.9741700427), (148.225742689, -19.973875375), (148.226338756, -19.973929305), (148.226112646, -19.9735563965), (148.226112646, -19.9735563965), (148.225847456, -19.9731202474), (148.225416007, -19.9723812989), (148.225416007, -19.9723812989), (148.225194827, -19.9720031154), (148.224679181, -19.9711798811), (148.225342353, -19.9708102319), (148.225342353, -19.9708102319), (148.225534337, -19.9707027536), (148.226049987, -19.9715259861), (148.22653369, -19.9723023925), (148.22653369, -19.9723023925), (148.226738271, -19.9726305583), (148.227599416, -19.9740408095), (148.227205874, -19.9740040613), (148.227385609, -19.974271173), (148.227385609, -19.974271173), (148.228740467, -19.9762850567), (148.229001285, -19.9766769244), (148.229001285, -19.9766769244), (148.2298648, -19.9779781836), (148.229891255, -19.9780176508), (148.229891255, -19.9780176508), (148.230992094, -19.9796686835), (148.230160138, -19.9801969276), (148.230132513, -19.9801646389), (148.23010165, -19.9801448806), (148.230067739, -19.9801313488), (148.23003176, -19.9801231689), (148.229993632, -19.9801230424), (148.229958117, -19.9801310975), (148.229924344, -19.9801446072), (148.229921405, -19.9801472318), (148.229894164, -19.9801654238), (148.229870515, -19.9801909227), (148.229851494, -19.9802210527), (148.229838923, -19.9802585665), (148.229836094, -19.980289133), (148.229839825, -19.9803234813), (148.229851202, -19.9803571346), (148.229870336, -19.9803864906), (148.229894315, -19.9804132734), (148.229924225, -19.9804330061), (148.229958136, -19.9804465379), (148.229995067, -19.9804547435), (148.230032243, -19.9804548444), (148.230067758, -19.9804467892), (148.230102484, -19.9804333052), (148.230131684, -19.9804133635), (148.230156312, -19.9803869897), (148.230159333, -19.9803816635), (148.230262237, -19.9804466242), (148.231640616, -19.9810506658), (148.231640616, -19.9810506658), (148.231700818, -19.9810775234), (148.23325794, -19.9817611757), (148.23325794, -19.9817611757), (148.23382151, -19.9820088828), (148.233320172, -19.9830174061), (148.234851, -19.9836570799), (148.235129991, -19.9843008847), (148.235129991, -19.9843008847), (148.235212908, -19.9844914816), (148.236121933, -19.9866898071), (148.236490429, -19.9865465155), (148.236490429, -19.9865465155), (148.237191768, -19.9862724886), (148.237091715, -19.9867772063), (148.236894282, -19.9884572531), (148.236792574, -19.9893647903), (148.236792574, -19.9893647903), (148.236770194, -19.9895696757), (148.23656949, -19.9913577842), (148.236868882, -19.9913883788), (148.236868882, -19.9913883788), (148.238849718, -19.991587718), (148.239691913, -19.9916707724), (148.239691913, -19.9916707724), (148.240825937, -19.991782405), (148.240825937, -19.991782405), (148.242114889, -19.9919099149), (148.242221706, -19.9920353609), (148.242221706, -19.9920353609), (148.242856975, -19.9927851811), (148.242856975, -19.9927851811), (148.243410338, -19.9934372625), (148.243239065, -19.9943762852), (148.2430853, -19.9958421197), (148.242713316, -19.9996471845), (148.242516258, -20.0006819464), (148.242094433, -20.0010752644), (148.240324778, -20.0024065687), (148.240095063, -20.0022778117), (148.239621019, -20.0020307185), (148.238601531, -20.0014381709), (148.238601531, -20.0014381709), (148.2384994, -20.0013786406), (148.236461129, -20.0008983371), (148.236891672, -20.0015759703), (148.237093742, -20.0018941527), (148.237093742, -20.0018941527), (148.237386791, -20.0023571856), (148.237706276, -20.0028921303), (148.237706276, -20.0028921303), (148.237865093, -20.0031586764), (148.238307378, -20.0038267106), (148.238890113, -20.0047382638), (148.238890113, -20.0047382638), (148.239027616, -20.0049528633), (148.240978317, -20.003848165), (148.241540381, -20.0047501429), (148.24187069, -20.0052745594), (148.24187069, -20.0052745594), (148.242144592, -20.0057091332), (148.242524452, -20.0062979717), (148.243158811, -20.007301033), (148.243253502, -20.0074811314), (148.243244467, -20.0074962098), (148.243235051, -20.0075238958), (148.243232278, -20.0075526617), (148.243235221, -20.0075815815), (148.243243907, -20.0076097547), (148.243252973, -20.0076253202), (148.243155966, -20.0076803907), (148.243155966, -20.0076803907), (148.241397251, -20.0086776183), (148.240644127, -20.0075343612), (148.240644127, -20.0075343612), (148.241397251, -20.0086776183), (148.243252973, -20.0076253202), (148.243260269, -20.0076363318), (148.243280632, -20.0076567078), (148.24330584, -20.0076745103), (148.243335021, -20.0076870121), (148.243365345, -20.0076932358), (148.243391096, -20.0076930275), (148.243457358, -20.0077723199), (148.244056335, -20.0087158452), (148.244779167, -20.0098528702), (148.245502961, -20.0109899199), (148.246227635, -20.012129696), (148.246743818, -20.0129421084)]
jwhitlock commented 10 years ago

I'm seeing the same thing. Time for v0.3.3...