f.zz.de
archives / 2023 /

10

10 years OSM routing quality assurance

Posted Wed 11 Oct 2023 12:28:44 PM CEST Florian Lohoff in

As a surprise i today found out that its 10 years since i started doing routing quality assurance:

routeqa=> select min(osmdbtimestamp) from route;
     min
---------------------
 2013-05-28 08:00:00

So i started automatically calculating routes every 1-2 hours in May 2013 ... I now have 483525 individual routes in the database, so geometries which are "unique" and have shown up over the last 10 years.

I started with a small cluster, just 20 nodes in my hometown which i monitored for changes.

Over the years most of "Ostwestfalen-Lippe" a part of Northrhine-Westfalia in Germany was added.

Currently i monitor routes between >1500 locations in 61 clusters. So every 1-2 hours i check for changes in those routes.

Total routes calculated 46064 in 820 seconds 56.18/s

As the locations are selected by hand using QGis, its a tedious task to add them to the database. And sometimes you have a location pair which has multiple routes with equal travel time so they start flapping on every calculation. So it takes maintenance every week to keep going. Every other day you search for changes where somebody broke something by accident, mostly turn restrictions, sometimes road deletes, wrong taggings or the like.

This is just some random image/link i get when something changes. Here you see a fix of mine, taking care that through traffic stays on the higher class roads.

So .. Happy birthday ...

Segfault perl with Clone::clone

Posted Thu 12 Oct 2023 06:48:32 PM CEST Florian Lohoff in

Interesting - Using clone on a datastructure containing a ref to a dbh e.g. result from DBI->connect and using that ref from the cloned object lets perl segfault:

Short form:

$dbh=DBI->connect(...);
$a={ dbh => $dbh };
$b=Clone::clone($a);
$b->{dbh}->prepare(...)

gdb backtrace shows:

(gdb) bt
#0  0x00007f409c5e387b in XS_DBI_dispatch () from /usr/lib/x86_64-linux-gnu/perl5/5.36/auto/DBI/DBI.so
#1  0x0000561f3f0a5f18 in Perl_pp_entersub ()
#2  0x0000561f3f09bef6 in Perl_runops_standard ()
#3  0x0000561f3effa779 in perl_run ()
#4  0x0000561f3efcc4b2 in main ()

Quitte Teil 2

Posted Tue 24 Oct 2023 04:39:52 PM CEST Florian Lohoff in

W├╝rzburger Quitten von Henri mitgebracht wird verarbeitet.