Hungary/osm-gimmisn
Az osm-gimmisn használata
Hiányzó házszámok naprakész listája
Videó: osm-gimmisn alapú házszám szerkesztés (TODO: tükrözni máshova is)
A weboldalon ötleteket találsz, hogy hol érdemes házszámokat felmérni. A főoldalnak a következő oszlopai vannak:
1) Hiányzó házszám kereső.
2) Házszámlista (street-housenumbers) egy területre, ez az OSM adatbázisból származik.
3) Hiányzó utca kereső.
4) Utcalista (streets) egy területre, ez is az OSM adatbázisból származik.
5) A terület az OSM weboldalán, ahol jól látszik a határa.
A hiányzó házszám szekciót érdemes elsőre nézni, ha ott szerepel olyan terület ami érdekel, akkor ott találsz javaslatot arra, hogy milyen hiányzó házszámokat próbálj meg felmérni. Tegyük fel, hogy a terület már szerepel a listában, a házszám valóban hiányzott, és most szerkesztetted fel az OSM-re. A weboldal automatikusan frissül naponta, kézi frissítéshez a következőt kell tenned:
1) Várj pár percet. Ha most szerkesztettél, akkor ha azonnal fut egy overpass lekérdezés, valószínű, hogy még nem dolgozik a te szerkesztésed eredményével.
2) A street-housenumbers szekcióban keresd ki a területed és kattints az overpass lekérdezés (overpass query) linkre. Ez egy kis időt vesz igénybe, addig ne töltsd újra az oldalt, a böngészőt ne zárd be.
3) A lekérdezés lefutása után az osm-gimmisn automatikusan átirányít a hiányzó házszám szekcióban a terület oldalára és most már el kell tűnjön a listából a felszerkesztett házszámod.
A hiányzó házszámok színesek:
- a feketék lakóházak
- a kékek kereskedelmi épületek
Mi a teendő, ha nem találod a keresett utcát a listában? Vagy minden házszám fel van mérve, vagy az utca neve eltér a referenciától, ld. Hiányzó utcák
Új reláció hozzáadása
Település, falu, budapesti városrész az OSM adatbázisában relációként jelenik meg, így az osm-gimmisn a kezelt területeket relációknak hívja. Új reláció hozzáadásához a következő lépések szükségesek:
1) A git repó szerkesztésére készülj fel. Ez lehet egy `git clone` parancssorból vagy webes szerkesztés.
2) Az osm.org-on keress rá a relációra, pl. `Kelenföld, Budapest`. Az első találat lesz valószínűleg egy reláció link, pl. https://www.openstreetmap.org/relation/2700869. Innen tudod a reláció OSM azonosítóját.
Szükséged lesz még a terület megye és település referenciájára, ebben lehet megkeresni: A git repó refcodes file-jában tudod megkeresni. Amennyiben egy új települést akarsz felvenni (nem városrészt), a data/relations.yaml.template fileban megtalálsz mindent amire szükséged van, csak át kell másolnod. (Ékezet nélkül kell keresned!)
3) A git repó data/relations.yaml file-jába vegyél fel egy új bejegyzést a következő formában:
kelenfold: missing-streets: "no" osmrelation: 2700869 refcounty: "01" refsettlement: "011"
Ahol a név alapvetően szabadon választható, pl `kelenfold` megfelel, a többi mező pedig fontos, hogy stimmeljen az előző pontban kinyert értékekkel. (A missing-streets azt jelzi, hogy ez a reláció nem felel meg egy valós világbeli teljes településnek, tehát hiányzó utcákat nem keresünk benne.)
4) Ez után a módosítást pull request formájában beküldheted, jóváhagyás után be fog kerülni.
Téves információ kiszűrése
Videó: osm-gimmisn 2. rész: téves házszám javaslat kiszűrése (TODO: tükrözni máshova is)
Ez hasonló az új reláció felvételéhez, csak a reláció nevéből származtatott szűrő file-ba kell felvenni információt, például `relation-magasut.yaml`. Tegyük fel, hogy Magasúton a Magasúti köz páratlan oldalán az osm-gimmisn javasol egy 999 házszámot, és ez hibásnak bizonyul. Lépések ennek elnémításához:
1) Menj ki a terepre és mérd fel, hogy a Magasúti köz páros és páratlan oldalon milyen tartományokban vannak valós házszámok. Általában a sarkokon vannak utcatáblák, abból ezt fel lehet mérni.
2) Például azt találtad, hogy a páratlan oldalon 1-9 a tartomány, a páros oldalon pedig 2-8. Most már csak ezt az információt kell rögzíteni, és ezzel automatikusan el fog tűnni a hibás 999 jelzés.
3) Szerkeszd a `relation-magasut.yaml` file-t. Ha még nincs ilyen, akkor a legegyszerűbb, ha egy létezőt lemásolsz és kitörlöd az összes utcát.
4) A Magasúti közt így tudod leírni:
Magasúti köz: ranges: - {start: '1', end: '9'} - {start: '2', end: '8'}
Ez program által értelmezhetően a 2) pontban leírt információt rögzíti. Ha az utca OSM-beli és referenciabeli neve eltér, itt az OSM-beli nevet használd.
5) pull request formájában visszaküldheted az információt, és akkor a webes felület is ennek megfelelően frissül.
Más szavakkal, alapból csak minimális szűrés van a potenciálisan hiányzó házszámokon (1-999, 2-998), a hibás javaslatot úgy lehet kiszűrni, hogy lefedjük a valós tartományokat, és ami ebbe nem tartozik bele, az kiszűrésre kerül.
A fenti módszer alternatívája expliciten kiszűrni az érvénytelen javaslatokat:
Magasúti köz: invalid: ['7', '11']
Egyes esetekben az tömörebb kifejezés, mint a fenti ranges
megoldás.
`housenumber-letters: true` beállításnál alkalmazható módszertant lásd lejebb.
Haladóbb témák
A hibás riasztások kiszűrésén kívül még más beállításokat is meg tudsz adni, bár ezekre ritkábban van szükség:
Hiányzó utcák riasztásainak szűrése
- `refstreets`: ez a kulcs a reláció file gyökerében adható meg, akkor használatos ha az OSM jól tartalmazza egy utca nevét, de a referenciában más néven szerepel. (Példa: `sashegy`.)
- `street-filters`: ez a kulcs a reláció file gyökerében adható meg, akkor használatos ha a referenciában található utca valóságban nem létezik, vagy nem igazi utca (pl. dűlő), és az OSM-ben területként van felrajzolva. (Példa: `budapest_03`.)
További utcák riasztásainak szűrése
A fejezet célja, hogy az utcanév elírásokat (addr:street != utcanév) és a fals neveket megtaláljuk. Fals név alatt értjük, hogy a szerkesztő a kulcsból következő funkciót felveszi a névbe is. (pl. name=Tömeges fakidőlés miatt járhatatlan!, name=Árvízvédelmi töltés) Amennyiben a fentiek kijavításra kerültek, mégis valós a név, az alábbi módon szűrhető a maradék:
- `osm-street-filters`: ez a kulcs a reláció file gyökerében adható meg, akkor használatos ha az OSM-ben található utca valóságban tényleg létezik de a referencia ezt nem tartalmazza. Jellemzően ilyenek a nem igazi utcák (ösvények, sétányok, parkok, hidak, felüljárók) és a házszám nélküli kis összekötő utcák, terek. (Példa: Érzékek ösvénye, Piactér). Előfordulhat, hogy az utca a területhatáron fut és a területünkön nem tartalmaz házszámot.
Egyéb beállítások
- `refsettlement`: ez a kulcs egy utcára adható meg. Ha egy reláció többségében egy adott `refsettlement` értékkel rendelkezik, az megadható az összes utcára. Ezt a felülbírálást akkor érdemes használni ha az utcák közül néhánynak más a `refsettlement` értéke. (Példa: `sashegy`.)
- `refsettlement` tartomány szinten: ez akkor hasznos ha egy utca két oldala más településhez/kerülethez tartozik. (Példa: `krisztinavaros`.)
- `interpolation`: ez a kulcs egy utcára adható meg. Ha az értéke `all`, akkor páros/páratlan oldal helyett egyetlen tartományt elég megadni ahol folyamatos a számozás.
- `inactive: true`: ez egy relációra adható meg, kikapcsolja az esetleg pazarló napi frissítést (hasznos, ha amúgy is 100%-on van a terület például). Kézzel ezeket továbbra is lehet frissíteni.
- `show-refstreets: false`: ez a kulcs egy utcára adható meg, kikapcsolja a referenciában található utcanév megjelenítését. Ennek akkor van értelme, ha egyértelműen helyesírási hibás a referencia, és nincs értelme azt pluszban megjeleníteni.
- Lehetőség van GPX formátumban letölteni azokat az utcákat amiknek vannak hiányzó házszámai. Ennek a következő a menete. A hiányzó házszámok oldalon az Overpass lekérdezés a lenti utcákra linkre kell kattintani, a lekérdezést pedig bemásolni az Overpass turbo linken (fenti eszköztár) nyíló oldalra. Ott futtatni kell a lekérdezést, majd az Exportálás -> GPX letöltése pontot választva kapunk egy GPX-et, amit pl. a telefonon az OsmAndba be lehet tölteni.
- `housenumber-letters: true`: ez a kulcs egy relációra adható meg, micro-mappelni lehet vele, azaz tudja detektálni a pl. 42/B hiányát ha a 42/A már térképezve van. (Az alapértelmezett viselkedés az, hogy a szám utána zajt figyelmen kívül hagyjuk a házszámban.)
Ennél a beállításnál a téves információk szűrése kicsit összetettebb. A program az összetett házszámokat felbontja és egyszerűsíti, így mindig ezt az egyszerűsített formát kell megadni a szűrőben. Egyszerűsítés elvei:
- Az egytagú betűjelet és számot megtartja (47a, 47/a, 47 a, 47/1), a többit levágja (47/abc).
- Kötőjeles formánál, ha a paritás egyezik (47-51) vagy az `interpolation:all` meg van adva, akkor a számokat felbontja tagokra, így azokat egyesével kell kezelni.
- Kötőjeles formánál, ha a paritás nem egyezik (47-52) és az `interpolation:all` nincs megadva, akkor az első és az utolsó tagot külön számként veszi figyelembe.
- Összetettebb kötőjeles házszámok esetén (47-51/a) csak a legelső tagot veszi figyelembe.
Példák:
Házszám | Filter |
---|---|
47/A, 47 A, 47a | invalid: ['47a'] |
47-51 | invalid: ['47', '49', '51'] vagy ranges: ... |
47-52 | invalid: ['47', '52'] |
47-51a, 47-51/a, 47abcd, 47/C 1, 47/C A | invalid: ['47'] |
47/1 | invalid: ['47/1'] |
47/10, 47/49 | invalid: ['47'] |
Automerge munkafolyamat committereknek
Ha gyakran küldesz változtatásokat az osm-gimmisnhez, akkor valószínűleg kapsz commit jogot. Ha eddig jutottál, akkor ezt a munkafolyamatot használhatod arra, hogy a változtatásaid automatikusan elfogadásra kerüljenek, miután a tesztek lefutottak. A teljes menet ez:
Parancssor:
Egyszer (ha a git clone nem megy, az ssh kulcsot állítsd be, https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account ):
git clone git@github.com:vmiklos/osm-gimmisn cd osm-gimmisn
Minden egyes PR-hoz, ismételhető ha több commitot akarsz 1 PR-ba vagy a CI hibát talál:
git fetch --prune # ha a serveren a PR merge-elve lett akkor a távoli private/$USER/master törlésre került, erről itt értesülünk git rebase origin/master # friss masteren dolgozunk ... hack hack hack ... git commit -a -m "data: blabla" git show # opcionális, de ajánlott, itt meg tudod nézni, hogy mit fogsz beküldeni, a less-ből a "q" lép ki git push origin master:private/$USER/master
Utána böngészőben megnyit: https://github.com/vmiklos/osm-gimmisn/pull/new/private/$USER/master
Leokézod a létrehozást, ráteszed az 'automerge' címkét.
Hiányzó utcák keresése
A hiányzó utcák szekció alatt a referenciában szereplő, de az OSM-ben nem szereplő utcákat találod meg. Fontos, hogy amíg egy utca ebben a listában szerepel, hiányzó házszámok az adott utcára nem fognak megjelenni.
A problémákat általánosságban ezeket az alábbi csoportra lehet osztani:
- a referenciában és az OSM-ben más az utca neve: Pl. Kossuth Lajos utca <> Kossuth Lajos út. Javítás módja: Mérd fel az utca nevét, ellenőrizd az OSM-ben lévő értéket. Ha továbbra is eltér, vegyél fel hozzá egy refstreets sort.
- külterületi és/vagy dűlő jellegű terület, amin általában csak helyrajzi számok vannak, ezért az OSM-ben területként szerepel, nem utcaként, így nem fog párt találni. Győződj meg róla, hogy az utca tényleg nem ábrázolható `highway` kulccsal. Vegyél fel hozzá egy street filters sort, és többé nem fog hiányzóként megjelenni.
- az utca tényleg létezik, de nincs az OSM-en: mérd fel, rajzold fel!
- az utca megszűnt vagy sosem létezett: Vegyél fel hozzá egy street filters sort, és többé nem fog hiányzóként megjelenni. Figyelem! Utca átnevezés esetén az első pontot kell alkalmazni, mintha eltérő lenne az írásmód.
A yaml formátum így néz ki:
- `missing-streets: only`: ezt a `relation-NÉV.yaml` file gyökerében lehet megadni egy relációra. Azt jelzi, hogy ebben a relációban csak hiányzó utcákat szándékozol keresni, hiányzó házszámokat nem. Érvényes még a `yes` érték (alapértelmezés), valamint a `no`.
Problémák jelzése
Problémákat (hiba, hiányzó funkció) a GitHub felületén lehet jelezni. Kéretik mindig egyszerre csak egy problémát tárgyalni.
Itt egy minimális sablon:
Lépések reprodukáláshoz
1. Első lépés
2. Második lépés
3. Harmadik lépés
Jelenlegi eredmény
Leírás, hogy jelenleg mi történik.
Várt viselkedés
Leírás, hogy ehelyett minek kellett volna történnie.