Siffer — Mullaliigi koodi parser¶
Mis on Šifri väli?¶
Iga Eesti mullakaardi polügoon on varustatud ühe või mitme šifri (siffer) koodiga — tähtnumbrilise tähisega, mis tuvastab selle kaardistusüksuse domineeriva(d) mullaliigi(d). Üks polügoon võib kanda kuni nelja šifri koodi, mis on eraldatud semikooloniga ja loetletud domineerimise järjekorras:
Ko;D;LPe;LP
See näide kodeerib neli mullaliiki:
| Kood | Eestikeelne nimetus | Ligikaudne rahvusvaheline vaste |
|---|---|---|
Ko |
Korestikmaa | Skeletic Leptosol / shallow rocky soil |
D |
Deluviaalmuld | Colluvic Regosol / slope deposit soil |
LPe |
Leetjas-paepealne erosioonimuld | Eroded Albeluvisol on limestone |
LP |
Leetjas-paepealne muld | Albeluvisol on limestone |
Šifri sõnavara koosneb mitmest tuhandest riiklikus mulla klassifikatsioonisüsteemis määratletud koodist. Praeguse andmestiku kehtivad koodid on toodud failis updated_uniq_jan25_2026.csv.
Miks toorandmed parandamist vajavad¶
Mullakaart digitaliseeriti analooglehtedelt paljude erinevate operaatorite poolt mitme aastakümne jooksul. See tekitas laia valiku kodeerimise artefakte:
Segatud eraldajad — semikoolonite asemel esineb komasid, tühikuid, kooloneid või kriipse (nt Ko Ko LP või Ko,LP asemel Ko;LP).
Erosiooniastme märkused — mulla koodidele on lisatud numbrilised erosiooni intensiivsuse klassid, mis sinna ei kuulu (nt E1, E(1;2), C3 variandid baaskoodidest E ja C).
OCR- ja transkriptsioonivead — märgiülekanded, ühinenud märgid, juhuslikud sulud, mis tekkisid analoogteksti skannimisel või uuesti tippimisel.
Ajaloolised lühendid — vanemad kaardistusringid kasutasid veidi erinevat koodide kirjapilti, mis ei kuulu enam praegusesse standardisse.
Parser rakendab enne grammatika valideerimist mitmeastmelist parandamise töövoogu:
- Terve sõne otsing ~700 kureeritud täpse vastega asenduse hulgast.
- Erosiooniastme eemaldamine (E-tüüpi, C-tüüpi ja sulgudes olevad numbrid).
- Kooloniga eraldatud numbriraaride eemaldamine (viimase abinõuna).
- Eraldajate normaliseerimine (kõik eraldajad →
;). - Märgi-tasemel otsing iga märgi kohta (~200 kirjet).
Alles pärast neid samme valideeritakse sõne ametliku Arpeggio grammatika vastu.
Väljundväljad¶
Parser tagastab 7 tulpa iga mullapolügooni rea kohta:
| Väli | Tüüp | Kirjeldus |
|---|---|---|
siffer_1 |
str | Esimene (domineeriv) mullaliigi kood, standardiseeritud. Tühi, kui puudub. |
siffer_2 |
str | Teine mullaliigi kood. Tühi, kui puudub. |
siffer_3 |
str | Kolmas mullaliigi kood. Tühi, kui puudub. |
siffer_4 |
str | Neljas mullaliigi kood. Tühi, kui puudub. |
n_siffers |
int | Selles polügoonis leitud mullaliikide koodide arv (0–4). |
parse_ok_s |
bool | True, kui grammatika tuvastas kõik koodid. Kasutatakse kaardivaaturi veaülevaates koos parse_ok_l ja parse_ok_h veergudega. |
parse_error |
str | Kirjeldus sellest, mida ei saanud parsida. Edukuse korral tühi. |
Tühi vs puudub
Väljad siffer_1 kuni siffer_4 täidetakse järjestikku. Kui polügoonil on ainult kaks mullaliiki, kannavad koodid siffer_1 ja siffer_2 ning siffer_3, siffer_4 on tühjad sõned.
Näide¶
Toores välja väärtus: "Ko Ko LP"
| Samm | Tulemus |
|---|---|
| Täpse vaste otsing | muudatuseta |
| Erosiooni eemaldamine | muudatuseta |
| Eraldajate normaliseerimine | "Ko;Ko;LP" |
| Grammatika parsimine | siffer_1=Ko, siffer_2=Ko, siffer_3=LP |
| Duplikaatide eemaldamine | siffer_1=Ko, siffer_2=LP |
Väljund: siffer_1="Ko", siffer_2="LP", n_siffers=2, parse_ok=True
Parsimise kattuvus¶
Kogu andmestiku puhul (~800 000 polügooni rida) lahendab šifri parandamise töövoog valdava enamuse mittestandardsetest kirjetest. Read, kus parse_ok=False, tähistavad koode, mis puuduvad praegusest viitesõnavarast või on lahendamatud artefaktid; need märgistatakse manuaalseks kontrolliks.