Hungary/osm-gimmisn

From OpenStreetMap Wiki
Jump to navigation Jump to search

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.