vmiklos / osm-gimmisn

Finds objects missing from the OpenStreetMap DB
https://osm-gimmisn.vmiklos.hu/
MIT License
9 stars 15 forks source link

Kiszűrt, de OSM-en meglévő házszámok megjelenítése #3073

Closed urbalazs closed 11 months ago

urbalazs commented 1 year ago

A gimmisn több mint 3 éves fennállása alatt sok házszámot kiszűrtünk az aktuális felmérések alapján. Az idő múlásával a valóság is változik, és előfordulhat, hogy egy korábban kiszűrt házszám mégis valóssá válik, és megjelenik az OSM-en. Jó lenne, ha ezt valahogy jelezné a program, hogy a szűrő felülvizsgálata szükséges. Ez az információ megjelenhetne a hiányzó házszámok táblázata alatt egy figyelmeztetésként, hasonlóan a sérült utcaleképezésekhez.

  1. használati eset: az utca páratlan oldalán 5 épület volt a személyes bejáráskor, és a tartományszűrűvel ki lett szűrve minden 9-nél nagyobb házszám. Időközben az utcát továbbépítették, és további épületeket húztak fel. Egy lelkes térképező felvitte az új házszámokat az OSM-re, de a tartományszűrő miatt ez számunkra láthatatlan, a korábban megadott szűrő valós házszámokat szűr ki.

  2. használati eset: egy sarokteleknek két házszáma van, de nagyon gyakran csak az egyiket táblázzák ki. Ilyenkor a másik számot kiszűrjük. Többször találkoztam viszont azzal, hogy évek múlva mégis kikerült a másik házszám is, amelyet mások felvittek OSM-re, így a korábbi szűrővel valós házszámot szűrünk ki.

  3. használati eset: egy ikerházon a hivatalos címzés 1/a és 1/b. A valóságban azonban 1 és 1/b volt kitáblázva, így az 1/a kiszűrésre került. Időközben a tulajdonosok lecserélték a táblákat, és a helyes 1/a és 1/b lett kitáblázva. Ekkor a korábban kiszűrt 1/a-val egy valós házszámot szűrünk ki a rendszerből.

vasony commented 1 year ago

Támogatom! De valami áttekinthető formában jelenjen meg. Jobb lenne neki egy külön oldal (is), ahol át lehet tekinteni az összeset.

De kérném, hogy a részleteket tegyük egy táblázatba, mondjuk pont olyanba mint a hiányzó házszámok, csak itt a hibás szűrő értékek és a kiszűrt házszámok szerepelnének.

vmiklos commented 1 year ago

Első körben az működne, hogy marad a /missing-housenumbers/.../view-result oldal, de az utolsó oszlopban minden cellába a hiányzó házszámok után külön sorban mondjuk pirossal megjelennek a kiszűrt házszámok is? Ez lehet egy hidden <span>-ben, az oldal tetejére meg mehet egy link ami ki-be kapcsolja a láthatóságát, alapból rejtve.

Ha ez megvan, lehet gondolkodni a külön oldalon.

vasony commented 1 year ago

De ne az összes kiszűrt házszámot jelenítse meg, csak azokat amik léteznek osm-ben. Én nem keverném bele. Mi van ha az utcában nincs hiányzó házszám, csak kiszűrt házszám? Akkor üres lesz a hiányzó rész, félek elég bután fog kinézni. Ha már úgyis van listád a kiszűrtekről, akkor mi szól ellene, hogy külön táblázatba tegyük?

vmiklos commented 1 year ago

Bocs, félreolvastam, először azt hittem, hogy az a cél, hogy a kiszűrt házszámok jelenjenek meg valahol, de most már látom, hogy az lenne a cél, hogy csak azok jelenjenek meg amik közben megjöttek OSM-re.

Két irányból lehet ezt megközelíteni: a szűrők meg a házszámok. Vagy az OSM-ben lévő házszámokon megyek végig és megnézem, hogy van-e olyan szűrő ami ezt próbálja meg kiszűrni (pedig nem kell, hiszen ott van az OSM-en) vagy a szűrőn megyek végig és azt nézem, hogy az egyes elemek olyat szűrnek-e ami már ott van az OSM-en.

Gondolom akkor hasznos egy ilyen lint kimenet ha könnyű rá reagálni, ez alapján alapvetően a szűrőkön kéne végigmenni és abból jelezni, hogy mi az ami már nem kell manapság.

Ebből a szempontból egy teljesen külön oldal (pl /missing-housenumbers/.../view-unnecessary-filters) lenne szerintem is jó.

Még egy nyitott kérdés, hogy a filtereknél kétfajta házszám leírás van: az invalid és a range. Az invalid az egyszerűbb, az egyetlen házszámot jelöl. Ha időközben az szerepel az OSM-ben, azért tudunk szólni. Mi legyen a range-ekkel? Azokat egyelőre ne vizsgáljuk?

vasony commented 1 year ago

A range is kell, mert ha az utcát tovább építették akkor se tudjuk meg.

vmiklos commented 1 year ago

Egy nagyon kezdetleges verzióm már van, itt csak azt nézem, hogy az invalid listából mi az amit használunk is az összehasonlítás során. Ilyesmit talál:

$ cargo run missing-housenumbers budapest_01
debug, Relation::get_ref_housenumbers: street name is 'Fő utca', 'invalid' list item '54' is not used

Ez biztató, a találat valós, itt az volt, hogy a referenciából tűnt el, már nem kell kiszűrni. Igyekszem használható állapotba hozni meg webes felületet alkotni hozzá, aztán majd jöhetnek a range-ek is. Lényeg, hogy ezt az egyet most ne javítsátok, hogy tudjak vele egyszerűen tesztelni. :)

vasony commented 1 year ago

Ez is egy valós eset, hogy ref-ben nincs már, de az invalidokhoz még hozzá kell venni azt amit eredetileg kértünk, hogy az osm-en van, de kiszűrjük.

vmiklos commented 1 year ago

Vicces módon az a könnyebb része :) Ilyesmiket találok:

$ cargo run missing-housenumbers budapest_01
debug, Relation::get_ref_housenumbers: street name is 'Fő utca', 'invalid' list item '54' is not used
debug, Relation::get_osm_housenumbers: street name is 'Attila út', 'invalid' list item '4' is not necessary
...

És a 4 tényleg benne van az invalid listában és tényleg szerepel az OSM-en is. Következő lépés valahogy ezeket nyilvántartani, talán ilyesmi, hogy 1) reláció neve 2) utca neve 3) típus (invalid, lesz majd range is) 4) házszám 5) oka (referenciából tűnt el, osmben jelent meg).

Utána már lehet tárolni, weben mutatni.

vmiklos commented 1 year ago

Egyelőre így néz ki:

https://osm-gimmisn.vmiklos.hu/osm/missing-housenumbers/budapest_01/view-lints

Ez innen is linkelve van:

https://osm-gimmisn.vmiklos.hu/osm/missing-housenumbers/budapest_01/view-result a tetején van egy "view lints" link, a csekklista alatt.

A cron elvileg naponta frissíti, kézzel úgy lehet, hogy valamivel frissítitek a hiányzó házszámos cache-t (pl "update from osm" gomb), utána be kell tölteni a hiányzó házszámos oldalt (ez gyűjti össze a linteket), és utána már a view-lints mutatja.

Eddig 3 relációra próbáltam (bp01, bp11, bp12), mindegyiknél van bőven találat.

Ami még teendő / eldöntendő:

Ettől függetlenül ami már most megy azt lehet próbálgatni, konstruktív visszajelzés jöhet. :)

vasony commented 1 year ago

ez még csak az invalid listára vizsgál, a range vizsgálatát ki kell agyalni, hogy pontosan hogy legyen (mitől számít problémásnak egy range? ha mondjuk meg van adva, hogy 2-4 és az OSM-ben van 6?)

igen, attól biztosan. ha olyan szám szerepel, amit kiszűr a range

vmiklos commented 1 year ago

Frissítettem az al-feladatos checkbox listát, ezek jó ötletek szerintem.

vasony commented 1 year ago

a "frissítés osmből" random működik, még nem jöttem rá hogy mikor frissül, de nyomok a view-lint meg a sima hiányzó oldalon aztán egyszer csak kevesebb lesz a lista

vmiklos commented 1 year ago

Haha, leírom, hogy most hogy frissül, de ezen valóban van mit reszelni. :)

  1. a lintes oldalról átmész a hiányzó házszámokra
  2. ott "frissítés osmből"
  3. megvárod míg lefut, akkor is ha akár u.azt az eredményt adja; mellékhatásként ez törli a régi linteket és rakja be az újakat
  4. vissza a lintes oldalra

Helyette a "frissítés osmből" link az működhetne a lintes oldalon (van link, de a 3. pontot nem csinálja meg).

vmiklos commented 1 year ago

A #3248 után a lokalizációs rész megvan, a többi még mindig megoldandó.

vmiklos commented 1 year ago

A range prototípus ilyesmiket talál:

$ cargo run missing-housenumbers budapest_11
debug, get_osm_housenumbers: street is 'Gazdagréti tér', range, housenumber is '7'
debug, get_osm_housenumbers: street is 'Nagyszőlős utca', range, housenumber is '47'
debug, get_osm_housenumbers: street is 'Bogdánfy utca', range, housenumber is '10/B'
debug, get_osm_housenumbers: street is 'Eszék utca', range, housenumber is '19'
...

Most csak az első négyet néztem meg kézzel, ez mind érvényes találatnak tűnik. Következő lépés ezeket is eltárolni, weben mutatni.

vmiklos commented 1 year ago

https://osm-gimmisn.vmiklos.hu/osm/missing-housenumbers/budapest_11/view-lints még kicsit bénácska (0-s házszámok, üres utcanevek, lokalizáció), de alakulnak a range-ek is

vmiklos commented 1 year ago

https://osm-gimmisn.vmiklos.hu/osm/missing-housenumbers/budapest_11/view-lints az üres, 0-s, csak-angol kiment most már jó.

vasony commented 1 year ago

a Gazdagréti tér 7 vagy 6 szor szerepel a listában és másiknál is van duplázódás. Gondolom azért, mert több objektum is van a 7-es számon. Ha lesz mellette osm link akkor már kevésbé lesz zavaró, viszont a további utcáknál is csak 1 előfordulást linkelünk, nem az összeset.

egyébként nagyon jók a találatok, már egy elírt utcán találtam vele

vmiklos commented 1 year ago

a további utcáknál is csak 1 előfordulást linkelünk, nem az összeset.

Ja nem volt szándékos a dolog, csak így sikerült :) A duplikátumokat most már szűröm sql insert időben (tehát ahol újragenerálódik, ott már jó lesz).

vmiklos commented 1 year ago

^ filter/egyéb forrás után változtatás után most automatikus a lintek számítása

vmiklos commented 1 year ago

https://osm-gimmisn.vmiklos.hu/osm/missing-housenumbers/budapest_11/view-lints

A range esetén már vannak OSM linkek is. Most egyelőre hagytam, hogy mutassa az összeset, de ha nagyon zavar, vissza lehet térni ahhoz, hogy egyszerre csak egyet mutasson.

vasony commented 1 year ago

az igazi az lenne, ha felgrouppolnád házszámra és a linkek egymás mellett lennének, mint itt.

https://data2.openstreetmap.hu/utcanev.php?utcanevek=Balatonalm%C3%A1di

Gazdagréti tér 7 w26014201, n268405583, n6389118392

Ha nem akarsz vele kínlódni, akkor térjünk vissza az 1 szám 1 sorhoz.

vmiklos commented 1 year ago

OK, fenti pipa-listába felvettem.

vmiklos commented 11 months ago

3337 után a deduplikálás most már jó lesz (generáláskor, tehát csak arra jó ami most lesz újra-generálva)

invalid esetén osm link még mindig TODO

vasony commented 11 months ago
invalid: ['3', '12', '13', '15', 45a', '45b', '63b']
ranges:
  - {start: '5', end: '19'}

a 3 duplán szűrődik ki, így azt mondja rá hogy

Hadak útja érvénytelen házszámok 3 törölve a referenciából  
vmiklos commented 11 months ago

Hm, igazából jó, hogy ezt jelezzük, 5-19 miatt a 3 valóban felesleges, nem?

Inkább az okot kéne kevésbé félrevezetően fogalmazni. "törölve a referenciából" helyett mondjuk "nem használt szűrő"?

vasony commented 11 months ago

igen, a jelzés ok, a szöveg lehetne amit írtál

vmiklos commented 11 months ago

3340 után már ez a szöveg.

vasony commented 11 months ago

A kettőt esetet nem tudjuk megkülönböztetni? Hogy tényleg nincs a referenciában, vagy csak a szűrő nem jó?

vmiklos commented 11 months ago

Megnézem mit tehetek.

vmiklos commented 11 months ago

3356 után a fenti bp11 és Hadak útja 3 példa már "out of range" típussal lesz jelentve, a többi marad a "deleted from reference":

https://osm-gimmisn.vmiklos.hu/osm/missing-housenumbers/budapest_11/view-lints

vmiklos commented 11 months ago

A bp11 véletlenül housenumber-letters: true, és a fenti csak azzal ment. #3359 után az alapértelmezett beállításokkal is megtaláljuk ezeket az out of range invalid elemeket.

vasony commented 11 months ago

Az alábbit nem látom a listában:

Fardrusz utca 11/b: https://www.openstreetmap.org/way/252396568

Fadrusz utca: invalid: ['11', '11b']

vmiklos commented 11 months ago

Gondolom valami 11/b vs 11b dolog lesz. Elég macera, mert az összehasonlításnál a tartományok alapján való kiszűrés meg az egységes formátumra hozás az egy lépés, itt meg ki kéne jelezni, hogy valami tartományon kívül van (tehát nem lehet eldobni), de az egységes formátumra hozást, meg a "-" menti darabolást akarjuk. (Ez utóbbi amúgy működik). Majd keresgélek. Addig is a #3364 után created-in-osm + invalid kombóra most már vannak osm linkek.

vmiklos commented 11 months ago

Lehet tesztelni:

https://osm-gimmisn.vmiklos.hu/osm/missing-housenumbers/budapest_11/view-lints

vasony commented 11 months ago

Szerintem funkcionalitásban most teljes, hibát jelenleg nem tudok így zárható. Ha később lesz valami hiba, akkor külön jegyet nyitunk rá.