TSM - Pregătirea hărților Open-Street-Map pentru navigație.

Andrei Sima - Map Analyst @ Telenav


Tehnologia GPS și industria hărților se află într-o creștere rapidă. Pe piața actuală, există o multitudine de aplicații pentru navigație, multe încercând să se afirme prin diferite tehnologii și baze de date cartografice. După cum știți, în spatele proceselor și algoritmilor de rutare, o aplicație eficientă de navigație trebuie să aibă o hartă de bună calitate, cât mai detaliată și completă.

Echipa noastră, dezvoltă o aplicație de navigație ce utilizează hărțile Open-Street-Map, numită Scout. De ce Open-Street-Map ? OSM este o alegere potrivită deoarece este o opțiune open-source, în creștere rapidă și clădită pe baza unei comunități foarte implicate de cartografi. Prin implicare și entuziasm, comunitatea OSM încearcă să păstreze actualizate toate caracteristicile hărților (map features).

Prezentarea proiectului

Prin atingerea obiectivelor menționate mai sus, Telenav vizează îmbunătățirea calității map feature-urilor OSM utilizate în navigație, din zona Phoenix, Arizona.

Din septembrie și până în prezent, proiectul s-a desfășurat în trei etape :

Etapa #1. Cercetarea zonei de interes și contactarea comunității locale OSM (căutarea și studierea surselor de date open-source, contactarea utilizatorilor OSM locali, studierea regulilor și semnelor locale de circulație, studierea drumurilor cu taxa (toll roads) și a benzilor destinate autovehiculelor cu +2 persoane (HOV lanes), drumuri în construcție, alte aspecte specifice drumurilor din Arizona).

Etapa #2. Procesul de editare :

Geometrie, nume, sens unic, bariere/porți și alte aspecte ce țin de geometria drumurilor (turning circles, turning loops etc.) ;

  1. Indicatoare de direcție pe autostrăzi (signposts) ;

  2. Restricții de manevre și semafoare (turn restrictions and traffic lights) ;

  3. Benzi de circulație (lanes) și informații de încadrare (turning lanes), inclusiv benzi specializate pentru autovehiculele+2 persoane (HOV lanes) și drumuri cu taxă ;

  4. Restricții de viteză (speed limit).

Etapa #3. Quality Assurance (QA pentru toate feature-urile editate de echipa noastră în OSM, rezolvarea unor probleme de numire a străzilor, repararea legăturilor stricate (broken way relations), editări finale și completări pe baza erorilor obținute prin plug-in-urile ImproveOSM, Osmose și Keep Right, verificare tile-by-tile).

Prima etapa a fost foarte importantă deoarece echipa a trebuit să ia legătura cu comunitatea locală și să descopere de la aceștia regulile locale de cartare. De asemenea, s-au identificat și studiat date open-source și gratuite pentru a completa deja bine cunoscuta bază de date folosită adesea de utilizatorii OSM (TIGER Roads, Bing, Digital Globe, Open-Street-Cam, Mapillary). În această etapă s-au identificat drumurile în construcție pentru a putea fi monitorizate pe perioada proiectului și pentru a pute fi editate odată cu finalizarea lor.

A doua etapă a durat cel mai mult și a cuprins editarea și revizuirea celor mai importante artere navigabile și map feature-uri, începând cu autostrăzi, drumuri principale, secundare, terțiare, residențiale și alte drumuri funcționale (motorway, trunk, primary, secondary, tertiary, residential, service way). Tot procesul de editare a durat aproximativ 3 luni și s-a bazat în principal pe metoda tile-by-tile. S-au realizat editări, de asemenea, bazate pe categorii de drum (way category) sau pe categorii de rute (route reference). În această etapă am participat alături de comunitate, la creșterea calității hărților OSM, lucru dovedit tabelar, prin statistica de mai jos:

A treia etapă a fost ultima din proiect, dar nu mai puțin importantă ca restul. Deoarece încercăm să menținem un standard ridicat al datelor introduse de noi, a fost necesară o verificare mai amănunțită a editărilor noastre, deja realizate în procesul propriu-zis de editare, pentru a completa sau corecta, după caz, map feature-urile în cauză. Pentru aceasta am utilizat diferite proceduri de Quality Assurance, query-uri, plug-in-uri, identificatori de erori, chiar și revizuirea tile-by-tile.

Pentru QA-ul bazat pe query-uri, am rulat un set de query-uri predefinite de noi, bazate pe date OSM, utilizând pgAdmin și PostgreSQL. Query-urile sunt axate în principal pe:

Principalul plug-in JOSM utilizat pentru completarea OSM-ului cu drumuri lipsă a fost ImproveOSM, dezvoltat de Telenav (accesibil pe https://improveosm.org). Plug-in-ul se axează în special pe drumuri lipsă, sensuri unice și restricții de manevre.

De asemenea, o bază de date utilă ce reprezintă erori din OSM se poate accesa pe site-urile http://osmose.openstreetmap.fr/en/map/ și https://keepright.at/.

Procesul de QA a oferit echipei Telenav o importantă privire de ansamblu asupra tuturor editărilor sale, cu preponderanță asupra greșelilor realizate pe parcursul proceselor anterioare. În această etapă s-au corectat și probleme de numire a drumurilor din OSM, întâlnite în etapa #2. Într-un final, etapa #3 a reprezentat pentru echipa Telenav o siguranță și o estimare calitativă a procesului de editare.

Implicarea comunității OSM

Când a fost nevoie de un feedback pertinent sau un sfat prietenos, comunitatea OSM ne-a fost de mare ajutor. În următoarea perioadă de mentenanță vom ține legătura în continuare cu comunitatea și cu userii OSM locali din zona Phoenix, Arizona.

Studiu de caz

Din punctul de vedere al unui map analyst, restricțiile de manevre sunt unele dintre cele mai importante map feature-uri pe care o hartă le poate avea. Restricțiile pot influența foarte mult felul în care o rutare este realizată. Dacă acestea sunt eronat editate, restricțiile pot cauza rutări greșite, cu efecte grave asupra timpului de călătorie, a direcțiilor, a manevrelor și a altor aspecte ce țin de rutare. De aceea, am ales să discutăm mai departe despre acest caz: editarea restricțiilor de manevre.

Acest proces a început din noiembrie 2017 și a durat 3 luni. În acest timp echipa Telenav a reușit să revizuiască o cantitate mare de intersecții dintre autostrăzi, drumuri principale, secundare, terțiare și rezidențiale din zona Phoenix.

În timpul proiectului am reușit :

Principalele surse pentru adăugarea sau editare restricțiilor au fost open-source :

Softul utilizat pentru editarea în OSM a fost JOSM, un editor OSM extensibil pentru Java 8. De asemenea, pentru o vizualizare mai bună a layerelor s-au utilizat diferite Map Paint Styles (MapCSS), iar pentru editare, diferite layere tematice (Open-Street-Cam, Mapillary, Mapillary object layer).

Prin diferite proceduri dezvoltate în cadrul Telenav, s-au identificat tot ce a putut fi identificat în trafic ca indicator de restricție, în toate pozele OSC din trackurile suprapuse zonei noastre de interes. În prima parte a taskului s-au revizuit 1723 de restricții identificate în Open-Street-Cam, distribuite spațial conform hărții de mai jos. Înainte de a adăuga orice restricție de manevră, fiecare detecție din OSC a trecut mai întâi printr-un proces de validare realizat pe baza datelor open-source menționate mai sus.

În a doua parte a taskului, am reușit să identificăm și să adăugăm restricții și pe baza Mapillary Imagery și Mapillary Object Layer.

Totalul de semne revizuite au însumat în final un număr de 3289 restricții de manevre (turn restrictions), din care 350 lipseau din OSM si au fost adăugate de echipa Telenav. Pe perioada acestui task am reușit să revizuim de asemenea 11932 semafoare, din care s-au adăugat în OSM 376.

Ultimul pas al taskului a fost realizare unor teste de QA. Mai întâi am realizat un QA bazat pe query-uri, pentru a verifica calitatea tuturor restricțiilor existente în Phoenix. Pentru aceasta am rulat patru query-uri pe baza datelor OSM, utilizând pgAdmin:

Exemplu de query utilizat pentru identificarea restricțiilor neobișnuite din OSM:

create table unusual_restrictions as {
select count (*} members, relation_id 
from relation_members
where relation_id in (
  select id from relations 
  where tags->'type'='restriction')
group by relation_id order by members DESC);

delete from unusual_restrictions where members=3;

Pentru o dublă verificare, s-a utilizat plug-in-ul Telenav, ImproveOSM, pentru a identifica posibilele restricții omise în etapele anterioare. Plug-in-ul scoate în evidență posibile restricții bazate pe geometria drumurilor și alte probe data.

Acest gen de erori identificate prin query-uri, se pot identifica și descărcând bazele de date disponibile pe site-urile http://osmose.openstreetmap.fr/en/map/ și https://keepright.at/. Aceste două site-uri conțin seturi de date cu diferite tipuri de erori din OSM. Datele au fost descărcate, extrase cu un script Python, decupate după zona de interes și filtrate cu diferite query-uri SQL în pgAdmin. Rezultatele au fost exportate și comparate cu erorile inițiale rezultate în urma procesului inițial. Unde a fost necesar, restricțiile au fost modificate și corectate.

În harta de mai jos sunt reprezentate prin metoda heatmap toate restricțiile editate de echipa Telenav, din noiembrie 2017 și până în prezent, în Phoenix. Culorile mai închise reprezintă o densitate mai mare a editărilor, iar culorile mai deschise o densitate mai mică.

Concluzie

După cum se poate observa Open-Street-Map își îmbunătățește zilnic calitatea datelor datorită implicării necondiționate a comunității OSM din întreaga lume.

Echipa Telenav formată din 25 de Map Analysts este implicată direct și constant în acest proces, încercând pe cât posibil să pregătească datele din OSM pentru navigația GPS, în toate zonele în care își desfășoară proiectele. Ca o concluzie, vreau să subliniez importanța calității map feature-urilor ce oferă consistență hărții, layerul de bază din orice aplicație GPS de navigație. În hărțile de mai jos, este reprezentată prin metoda heatmap evoluția editărilor realizate de echipa Telenav, în ultimele trei luni, în Phoenix, Arizona.