Suomalaisten rakennusten osoitteet, postinumerot ja WGS84-koordinaatit

R
open data
spatial
paikkatieto
avoin data
suomeksi
Tekijä
Julkaistu

3. helmikuuta 2025

Digi- ja väestövirasto (DVV) on julkaissut viimeisen kerran uuden version Suomalaisten rakennusten osoitteet, postinumerot ja WGS84-koordinaatit-aineistosta. Julkaisun https://www.avoindata.fi/data/fi/dataset/postcodes yhteydessä ilmoitetaan

Koko Suomen rakennusten osoitetiedot sisältävän väestötietojärjestelmästä poimitun rakennustietoaineiston jakelu päättyy 14.3.2025. Aineisto päivitetään vielä kerran 14.2.2025, jonka jälkeen se on ladattavissa kuukauden ajan.

Huomautus

Viimeisimmäksi jäänyt aineisto ladattavissa tästä linkistä:

Arkistoin kyseisin datan tähän blogipostaukseen ja kirjoitan lyhyesti miten käsitellä aineisto Geopackage-muotoon R-kielellä, jotta dataa voi käsitellä eri paikkatieto-ohjelmissa. Yksityiskohtaisempi läpikäynti viiden vuoden takaa: https://markuskainu.fi/posts/2020-08-02-dvv-kitkatondata-r/

library(dplyr) # CRAN
library(sf) # CRAN
library(fs) # CRAN
library(glue) # CRAN
library(archive) # remotes::install_github("jimhester/archive")
library(jsonlite) # CRAN

# Aluksi ladataan zipattu paketti levylle, puretaan se kansioon sekä listataan paketista löytyvät data.
datazip <- './finland_addresses_2024-11-14.7z'
# Ladataan paketti
download.file("https://www.avoindata.fi/data/en_GB/dataset/941b70c8-3bd4-4b4e-a8fb-0ae29d2647a1/resource/3c277957-9b25-403d-b160-b61fdb47002f/download/finland_addresses_2024-11-14_json.7z",
              destfile = datazip)
# Puretaan paketti
archive_extract(datazip, dir = "./")

# Listataan paketin tiedostot
dir_info("./", recurse = TRUE) %>% 
  select(path,size,modification_time) %>% 
  arrange(size) -> flies
flies

# Paketissa siis on 46 tiedostoa ja yksi kansio `./data`. 
# Paketissa on `.json`-tiedostoa ja katsotaan ensin niiden sisältö.

# Printataan .JSON tiedostojen sisältö
flies %>% 
  filter(grepl("json", path)) %>% 
  pull(path) -> jsons
jsons %>% sub("^.+dvv_", "dvv_", .)

# finland_addresses_2024-11-14_json/csv_dialect.json
# finland_addresses_2024-11-14_json/json_table_schema.json
# finland_addresses_2024-11-14_json/datapackage.json
# finland_addresses_2024-11-14_json
# finland_addresses_2024-11-14_json/data
# finland_addresses_2024-11-14_json/data/19_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/15_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/17_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/08_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/07_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/04_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/06_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/13_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/14_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/11_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/09_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/03_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/18_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/12_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/10_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/16_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/05_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/02_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/01_addresses_2024-11-14.csv
# finland_addresses_2024-11-14_json/data/Finland_addresses_2024-11-14.csv

# `json_table_schema.json` -tiedostossa taas kerrotaan datatiedostojen sarakkeiden nimet, datatyypit ja kuvaukset.

plyr::ldply(fromJSON(jsons[2]), data.frame) %>% 
  as_tibble()

# `datapackage.json` -tiedostossa puolestaan on yleistä metatietoa datasta ja julkaisijasta kuten datan lisenssi.

jsonlite::prettify(readLines(jsons[3]))

# {
#     "name": "finnish-addresses-postalcodes-and-coordinates",
#     "title": "Data of finnish addresses with postal codes and coordinates",
#     "description": "The data is provided for separately for each region (e.g.: xx_addresses_yyyy-mm-dd.csv) and alternatively as a single csv file (e.g.: Finland_addresses_yyyy-mm-dd.csv). See this link for region codes: https://dvv.fi/tilastot-ja-luettelot, file Maakunnat.xlsx",
#     "licenses": [
#         {
#             "url": "https://creativecommons.org/licenses/by/4.0/",
#             "name": "Creative Commons Attribution 4.0 International",
#             "version": "4.0"
#         },
#         {
#             "url": "http://www.jhs-suositukset.fi/suomi/jhs189",
#             "name": "Finnish public sector open data license"
#         }
#     ],

# Nyt kun on tiedossa datojen sijainnit, voimme ladata datat R:ään. Sivun alussa olevasta tiedostolistauksesta saattoi huomata että datat ovat sekä maakunnittaisina tiedostoina maakuntakoodilla merkittynä sekä koko maan tiedostona. 
# Maakuntatatoista suurin on Uudenmaan data ja tehdään sen pohjalta pieni kartta.

# Koska sarake-erottimena on pilkku, R:ssä meille riittää kun luetaan data normaalilla `read.csv`-funktiolla. Koska datat ovat melko suuria, käytän `readr`-paketin funktioita tässä esimerkissä

# Ja siis valitaan paketin suurin csv-tiedosto, joka siis pitää sisällään koko Suomen rakennukset.

library(readr)
drakennukset <- read_csv(flies %>% filter(size == max(size)) %>% pull(path))
head(drakennukset)

# Lopuksi tehdään data.frame objektista sf-objekti
rak_sf <- st_as_sf(drakennukset,
                   coords = c("longitude_wgs84", 
                                       "latitude_wgs84"),
                            crs = "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs")

# ja talletaan se geopackage-muotoon ja viedään internetiin jaettavaksi!
sf::st_write(rak_sf, dsn = "finland_addresses_2024-11-14.gpkg")
file_delete(dir_ls("./", glob = "*.csv", ))

Uudelleenkäyttö

Viittaus

BibTeX-viittaus:
@online{kainu2025,
  author = {Kainu, Markus},
  title = {Suomalaisten rakennusten osoitteet, postinumerot ja
    WGS84-koordinaatit},
  date = {2025-02-03},
  url = {https://markuskainu.fi/posts/2025-02-03-dvv-rakennusten-osoitetiedot/},
  langid = {fi}
}
Viitatkaa tähän teokseen seuraavasti:
Kainu, Markus. 2025. “Suomalaisten rakennusten osoitteet, postinumerot ja WGS84-koordinaatit.” February 3, 2025. https://markuskainu.fi/posts/2025-02-03-dvv-rakennusten-osoitetiedot/.