wfs (Web Feature Service) on vektorimuotoisen paikkatietodatan rajapintastandardi ja Suomessa monet organisaatiot jakavat paikkatietodataan sen avulla.
Tässä postissa listataan ensin muutaman viranomaisten ja suuren kaupungin rajapintojen sisällöt. Lopuksi piirretään kartta Tilastokeskuksen aineistosta R:llä.
[/kode]
# Tarvittavat kirjastotlibrary(ows4R)library(dplyr)# Data apien endpointeista ja versioistaapis <-tibble(api_url =c("http://geo.stat.fi/geoserver/wfs","http://avaa.tdata.fi/geoserver/paituli/wfs","http://geoserver.ymparisto.fi/geoserver/wfs?","https://kartta.hsy.fi/geoserver/wfs","https://kartta.hel.fi/ws/geoserver/avoindata/wfs","http://geoserver.hel.fi/geoserver/ows","https://kartat.espoo.fi/teklaogcweb/wfs.ashx","http://gis.vantaa.fi/geoserver/wfs","http://geodata.tampere.fi/geoserver/ows","https://opaskartta.turku.fi/TeklaOGCWeb/WFS.ashx","https://e-kartta.ouka.fi/TeklaOGCWeb/WFS.ashx","http://kartta.kuopio.fi/TeklaOgcWeb/WFS.ashx","https://kartta.rovaniemi.fi/teklaogcweb/WFS.ashx","https://kartta.jkl.fi/TeklaOgcWeb/WFS.ashx","http://lipas.cc.jyu.fi/geoserver/lipas/ows"),ver =c("1.0.0","2.0.0","2.0.0","2.0.0","1.0.0","2.0.0","1.0.0","2.0.0","2.0.0","1.0.0","1.0.0","1.0.0","1.0.0","1.0.0","1.0.0"),provider =c("Tilastokeskus","Paituli","Syke","HSY","Helsinki","Helsinki geoserver","Espoo","Vantaa","Tampere","Turku","Oulu","Kuopio","Rovaniemi","Jyväskylä","LIPAS"))# käydään apit läpi ja kootaan saatavilla olevat datatapi_content_lst <-list()for (ii in1:nrow(apis)){ errori <-try(wfs <- WFSClient$new(apis$api_url[ii], serviceVersion = apis$ver[ii], logger ="INFO") )if ("try-error"%in%class(errori)) next() caps <- wfs$getCapabilities() ft <- caps$findFeatureTypeByName("", exact =FALSE) data_lst <-list()if (length(ft) ==0) next()for (i in1:length(ft)){ data_lst[[i]] <-tibble(name = ft[[i]]$getName(),title = ft[[i]]$getTitle()) }api_content_lst[[ii]] <-do.call(bind_rows, data_lst) %>%mutate(provider = apis$provider[ii],api_url = apis$api_url[ii],api_ver = apis$ver[ii])}
[ows4R][INFO] OWSGetCapabilities - Fetching http://geo.stat.fi/geoserver/wfs?service=WFS&version=1.0.0&request=GetCapabilities
[ows4R][INFO] OWSGetCapabilities - Fetching http://avaa.tdata.fi/geoserver/paituli/wfs?service=WFS&version=2.0.0&request=GetCapabilities
StartTag: invalid element name
Extra content at the end of the document
Error : 1: StartTag: invalid element name
2: Extra content at the end of the document
[ows4R][INFO] OWSGetCapabilities - Fetching http://geoserver.ymparisto.fi/geoserver/wfs?service=WFS&version=2.0.0&request=GetCapabilities
Opening and ending tag mismatch: hr line 5 and body
Opening and ending tag mismatch: body line 5 and html
EndTag: '</' not found
Error : 1: Opening and ending tag mismatch: hr line 5 and body
2: Opening and ending tag mismatch: body line 5 and html
3: EndTag: '</' not found
[ows4R][INFO] OWSGetCapabilities - Fetching https://kartta.hsy.fi/geoserver/wfs?service=WFS&version=2.0.0&request=GetCapabilities
[ows4R][INFO] OWSGetCapabilities - Fetching https://kartta.hel.fi/ws/geoserver/avoindata/wfs?service=WFS&version=1.0.0&request=GetCapabilities
[ows4R][INFO] OWSGetCapabilities - Fetching http://geoserver.hel.fi/geoserver/ows?service=WFS&version=2.0.0&request=GetCapabilities
[ows4R][INFO] OWSGetCapabilities - Fetching https://kartat.espoo.fi/teklaogcweb/wfs.ashx?service=WFS&version=1.0.0&request=GetCapabilities
[ows4R][INFO] OWSGetCapabilities - Fetching http://gis.vantaa.fi/geoserver/wfs?service=WFS&version=2.0.0&request=GetCapabilities
[ows4R][INFO] OWSGetCapabilities - Fetching http://geodata.tampere.fi/geoserver/ows?service=WFS&version=2.0.0&request=GetCapabilities
[ows4R][INFO] OWSGetCapabilities - Fetching https://opaskartta.turku.fi/TeklaOGCWeb/WFS.ashx?service=WFS&version=1.0.0&request=GetCapabilities
[ows4R][INFO] OWSGetCapabilities - Fetching https://e-kartta.ouka.fi/TeklaOGCWeb/WFS.ashx?service=WFS&version=1.0.0&request=GetCapabilities
[ows4R][INFO] OWSGetCapabilities - Fetching http://kartta.kuopio.fi/TeklaOgcWeb/WFS.ashx?service=WFS&version=1.0.0&request=GetCapabilities
[ows4R][INFO] OWSGetCapabilities - Fetching https://kartta.rovaniemi.fi/teklaogcweb/WFS.ashx?service=WFS&version=1.0.0&request=GetCapabilities
[ows4R][INFO] OWSGetCapabilities - Fetching https://kartta.jkl.fi/TeklaOgcWeb/WFS.ashx?service=WFS&version=1.0.0&request=GetCapabilities
[ows4R][INFO] OWSGetCapabilities - Fetching http://lipas.cc.jyu.fi/geoserver/lipas/ows?service=WFS&version=1.0.0&request=GetCapabilities
[/kode]
api_content <-do.call(bind_rows, api_content_lst) %>%mutate(provider =factor(provider)) %>%select(provider,title,name,api_url,api_ver)# Aineistojen määrä per organisaatioapi_content %>%count(provider,api_url,api_ver) %>%arrange(desc(n)) %>%rename(aineistoja = n) %>% knitr::kable()
provider
api_url
api_ver
aineistoja
Tilastokeskus
http://geo.stat.fi/geoserver/wfs
1.0.0
306
HSY
https://kartta.hsy.fi/geoserver/wfs
2.0.0
276
Helsinki
https://kartta.hel.fi/ws/geoserver/avoindata/wfs
1.0.0
231
Espoo
https://kartat.espoo.fi/teklaogcweb/wfs.ashx
1.0.0
201
Turku
https://opaskartta.turku.fi/TeklaOGCWeb/WFS.ashx
1.0.0
188
Tampere
http://geodata.tampere.fi/geoserver/ows
2.0.0
153
LIPAS
http://lipas.cc.jyu.fi/geoserver/lipas/ows
1.0.0
145
Helsinki geoserver
http://geoserver.hel.fi/geoserver/ows
2.0.0
105
Oulu
https://e-kartta.ouka.fi/TeklaOGCWeb/WFS.ashx
1.0.0
100
Jyväskylä
https://kartta.jkl.fi/TeklaOgcWeb/WFS.ashx
1.0.0
93
Vantaa
http://gis.vantaa.fi/geoserver/wfs
2.0.0
34
Rovaniemi
https://kartta.rovaniemi.fi/teklaogcweb/WFS.ashx
1.0.0
2
Aineistot yhdessä taulukossa
Alla olevasta taulukosta voit hakea aineistoja tai vaihtoehtoisesti viedä datan ekseliin.
Ylläolevassa taulukossa on ylimmäisenä Tilastokeskuksen tarjoama AVI-alueet 2013 (1:1 000 000) aineisto, jonka name on tilastointialueet:avi1000k_2013. Tämän postin alusta löytyy Tilastokeskuksen wfs-rajapinnan osoite ja versio. Näillä tiedoilla voit hakea alla olevan esimerkin mukaisesti ko. aineiston ja piirtää siitä kartan ggplot2-kirjaston avulla.
@online{kainu2019,
author = {Kainu, Markus},
title = {ows4R-paketti ja Tilastokeskuksen, suurimpien kaupunkien ja
muiden organisaatioiden wfs-rajapintojen datat R:ssä},
date = {2019-06-24},
url = {https://markuskainu.fi/posts/2019-06-24-ows4R-paketti-ja-tk-wfs/},
langid = {fi}
}