WFS teenus haridusasutuste kohta

WFS teenus haridusasutuste kohta

Läbi Pikseli GeoServeri saab kätte Arno (Tallinnas Laur) haridusasutuste loendi koos asukoha koordinaatidega (punkt ADS/AKS järgi).

Koolide, lasteaedade ja huvikoolide põhiandmed on avaandmeid (neid näeb Arno’de kasutajaliideselt anonüümsena).

WFS (Web Feature Service) on OGC (Open Geospatial Consortium) poolt standardiseeritud veebiteenus geoobjektide väljastamiseks. GIS-tarkvarad (nagu vabavara QGIS või kommetrsvara ArcGIS) suudavad pöörduda WFS teenuse pakkuja poole ja küsida/värskendada mingi grupi (geokeeles: kihi) objektide andmeid.

GeoServer on geo-andmeteenuseid pakkuv vabavara (https://geoserver.org/) ja Pikseli juures on selle üks paigaldus (hetkel ver 2.x, ver 3.0 avalikustati eelmisel nädalal, 11.06.2026).

Arno on mitme andmebaasiga lahendus (igal KOV-il on oma andmebaas). Tavaolukorras ei ole võimalik küsida korraga kõigi Arnode käest midagi. Isegi kui need on IP-turvata täiesti avalikud andmed. Aga Arno pakub avaandmeid (vahest puudulikult dokumenteeritud) JSON kujul. Pikselil on lahendus, mis käib eelmääratud Arnod läbi küsides avaandmeid ja tehes need GeoServerile kättesaadavaks kui üks tervik(geo)andmestik.

Läbi GeoServeri (GS) serveeritakse Arnodest väikese intervalliga kogutud avaandmeid haridusasutuste kohta (koolid, lasteaiad, huvikoolid). Haridusasutuste andmed muutuvad harva ja veel harvemini muutuvad nende asukohad, seega tuleb eeldada väikest viivitust andmete uuendamisel (aga kiiret sellega pole). Hetkel uuendatakse 2 korda ööpäevas (00:17 ja 12:17), aga see võib muutuda ära kiiremini kui siinse dokumentatsiooni muutumine. Ilmselt võiks tarbija eeldada korra nädalas muutumist ja vastavalt sättida omapoolset uuendamisvajadust.

 

KOV võib oma GIS-tarkvarast küsida kõigi KOV-ide (piiratud ikkagi Arnot kasutavate KOV-idega) kõiki haridusasutusi (piiratud sellega, mida KOV haldab Arnoga).

Ilmselt on mõistlik, et KOV küsib oma GIS-i ainult enda haridusasutused, et neid näidata oma kodulehel kaardina.

 

Andmestik

Kiht xa:haridusasutus

xa = eXtended Arno

haridusasutus = lasteaed, lastehoid, põhikool, gümnaasium, huvikool

element

tähendus

element

tähendus

kov_kood

täisarv, tähistab KOV-i

arno_id

asutuse (maja) ID Arnos, tehniline, unikaalsuse tagamiseks/tuvastamiseks

reg_nr

tekst 8 numbriga, võib olla kahel majal sama (juriidiline isik)

ehis_id

täisarv haridusasutuse tuvastamiseks EHIS-es (või korduda, nt gümnaaium ja põhikool on Arnos eraldi kirjed erinevate haldusreeglite tõttu, aga EHIS-es on nad üks asutus)

nimi

 

adr_id

7-8 kohaline täisarv. Arno side AKS-iga.

taisaadress

AKS info (võib ise olla kaua värskendamata)

on_kool, on_huvikool, on_lasteaed, on_lastehoid

4 elementi 0/1 väärtustega (linnukestega), head filteerimiseks (Arno praeguse ülesehitusega ei saa objekt omada kahte linnukest, aga see võib tulevikus muutuda)

on_munitsipaal

mõned KOV-id registreerivad Arnos ka eraasutusi (eralasteaedasid, erahuvikoole), see linnuke võimaldab eristada.

liik

tekstiline info, mis võiks vastata eelmisele 5 linnukesele (parem seda mitte üle tähtsustada)

veebileht, yldtelefon, peamine_epost

natuke avalikke kontaktandmeid

lisainfo

üle-KOV-iliselt parem mitte kasutada – eri KOV-idel võib olla erinev poliitika, mida siin kajastada

kuju

geoinfo, PUNKT, vaikimisi SRID 3301 ehk L-EST97, aga teenuse abil saab lasta tõlkida WGS84-ks (SRID 4326)

 

Tarbimine

Järgnevalt üldised juhised. Piksel ei paku WFS tarbimise õpetust/tuge. Kes tahab arendada andmete tõmbamist, tutvub ise standardiga ja vahest ka GS iseärasustega selle standardi piires/ümber.

Avaandmete tarbijatelt eeldame “mõistlikku” kasutamist. Arendada/häälestada oma tarkvaratoode nii, et lauspommitamist ei toimu. Agressiivselt käituvad IP-d võib Piksel ette hoiatamata sulgeda (pole ju teada, keda hoiatada). SAmas, kui KOV paneb WFS tarbimise püsti, võiks Pikselit informeerida IP osas, kust päringud tulevad.

 

Üldjuhul piisab valmistarkvarale WFS juurikast: https://geo.loc.piksel.ee/geoserver/ows

See otsib üles kõik, mida GS pakub (sh nimeruumis "xa") WFS-ina. 

  • Järgnevad näited on versioon 2.0.0 kohta,kuigi GS toetab ka vanu versioone 1.0.0 ja 1.1.0, aga seal on pisierinevused, mida tuleb siis tarbijal teada (typeName (1.x) vs typeNames (v2), count vs maxFeatures)

Omaduste otsimise teenus: https://geo.loc.piksel.ee/geoserver/xa/ows?service=WFS&version=2.0.0&request=GetCapabilities

  • annab FeatureTypeList (kust leiab xa:haridusasutus) ja hulga tehnilist infot, milleks konkreetne server (meie juhul GS praegune versioon) võimeline on.

Ühe kihi metaandmete küsimine: https://geo.loc.piksel.ee/geoserver/xa/ows?service=WFS&version=2.0.0&typeNames=xa:haridusasutus&request=DescribeFeatureType (usutavasti brauser laeb alla failina, kuna XSD loetakse uuemal ajal tundmatuks laiendiks)

  • typeNames on kaheosaline:

    • nimeruum, meie näitel "xa" 

    • kiht nimeruumis, meie näitel "haridusasutus" 

  • annab XSD faili (XML), kus on loetletud (kui “sequence”, st järjekord loeb) propertied ehk omadused ehk elemendid, st ka geo element asukoha punktiga (AKS andmed, tõlgednust teab MaRu):

    • <xsd:element maxOccurs="1" minOccurs="0" name="kuju" nillable="true" type="gml:GeometryPropertyType"/>

Mingi hulga objektide (featuuride) küsimine, vaikimisi XML (vist GML3) mis on piisav ja hea ArcGIS jaoks (inimvaatleja brauseriga või python arendaja võivad tahta juhtida ouputFormat abil (=json korral näeb ka brauseris kenasti (raw, prettyprint, struktuurne)) https://geo.loc.piksel.ee/geoserver/xa/ows?service=WFS&version=2.0.0&request=GetFeature&typeName=xa:haridusasutus&CQL_FILTER=kov_kood=784%20AND%20on_huvikool=1&count=20&startIndex=0&sortBy=arno_id%20D&outputFormat=json 

  • CQL filter abil andmete sisuline piiramine:

    • Tallinna (kov_kood=784) huvikoolid (on_huvikool=1)

    • CQL-is on mõistlik avaldis protsent-kodeerida (kui ise tarbija kirjutada) tühikud (%20), ülakomad (%27), võrdusmärgid (%3D), protsendimärgid (%25) jms.

  • Pagineerimine (mitu, mitmendast alates, mis sorteerimisalusega)

    • count=6

    • startIndex=0

    • sortBy=arno_id A (arno_id%20A – või D, kui üldse ära jätta, siis Geoserver sorteerib oma sisemise feature_id abil)

Projektsiooniteisenduseks lisa URLi parameeter: &srsName=EPSG:4326 (kraadid)

 

Märkused

Arendajad, kes pole veel WFS-i maailmaga tuttavad, võivad sellega tutvuda läbi GeoServeri prisma: https://docs.geoserver.org/main/en/user/services/wfs/reference/

Kui andmeid pole üldse (filter KOV järgi andis tühja nimekirja, aga tehniliselt töötas), siis võib-olla, et selle KOV-i andmeid ei laeta, või laetakse nad teise (nt ajaloolise) KOV EHAK koodiga. Rääkida KOV-i haridusosakonnaga, kes vajadusel räägib Pikseliga.

Kui andmeid on hiljuti saadud, aga enam ei saa, siis tasuks mitte rutata enda poolt kustutamisega. WFS teenus ise võib maas olla (tehniline tõrge), aga võib olla ka tarkvaraline andmete ümberehitus, või KOV ümberkodeerimine. Uurida Pikselist.