2026 Finnish Landuse Import

From OpenStreetMap Wiki
Jump to navigation Jump to search

The 2026 Finnish Landuse Import imports the Finnish forest stand register (metsävarakuviot, Metsäkeskus) and the agricultural parcel register (kasvulohkot, Ruokavirasto). The datasets are preprocessed offline into PBF files in 12 km × 12 km map sheet files and manually conflated into existing data in JOSM via a currently in-development conflation plugin.

Status: planning (August 2026). Preprocessing pipeline is ready. Conflation/review plugin is under development.

  • Import frequency: one-time.
  • Import method: semi-automated. Offline preprocessing with Python scripts, then manual per-sheet review, conflation and upload in JOSM.
  • Area: nationwide (Finland), one map sheet at a time.

Goals

The import adds register-based data for:

  • Metsäkeskus forest stand register: productive forest stands (landuse=forest, leaf_type=*, leaf_cycle=*, genus=*, species=*), clearcuts (man_made=clearcut), low-productivity and open stands (natural=scrub, natural=heath, natural=bare_rock), mires (natural=wetland, wetland=*), water bodies (natural=water).
  • Ruokavirasto parcel register: farmland (landuse=farmland, organic=*, produce=* on orchards only), with landuse overrides for semi-natural grassland, orchards and plant nurseries, and environmental-agreement areas (buffer zones, biodiversity areas, an agreement wetland).
  • Geometry: register boundaries are more precise than existing OSM mapping; a 3 m snap pass and shared-node handling keep the result edge-to-edge with adjacent landuse, roads and water.
  • Scale: ~11.9 million forest stands and ~985,000 farmland parcels, one 12 km sheet at a time.

Only area features are imported. Roads, buildings, water and other linear features are not touched.

The earlier 2011 import of Corine 2006 landcover data and 2019 forest import (reverted 2021) were based on coarse raster data. This import uses official vector-based stand-level registers.

Timeline

  • Data preparation: data processing pipeline is ready as of 2026-08-06.
  • Community consultation: pending.
  • Sample imports: pending conflation plugin completion.
  • Full import: pending community approval and conflation plugin completion.

Import Data

Two official datasets published with a CC BY 4.0 license:

Dataset Provider Description License
Forest stand data (metsävarakuviot) (2026) Metsäkeskus (Finnish Forest Centre) Nationwide forest stand layer: geometry, soil type, stand development class, tree species, wetland and mire classes, water bodies within the forest landscape. CC BY 4.0
Agricultural parcels (paikkatietoja sisältävät kasvulohkot) (2025) Ruokavirasto (Finnish Food Authority) Nationwide agricultural parcel layer from the subsidy register: geometry, crop codes for orchards, organic indicators. CC BY 4.0

Additionally, the TM35 map sheet division system is used in the segmentation of data for ease of manual processing.

Download and license pages:

ODbL Compliance verified: pending. Waiver request emails sent to both providers. Verbal confirmation received from Ruokavirasto, with apparent enthusiasm.

Data preparation

Data is chunked into TM35 map sheet quadrants (12 km × 12 km, e.g. M3343L) and delivered as OSM PBF files. Preprocessing runs offline, before any OSM editing, in a Python pipeline (GeoPandas, Shapely, Mapshaper, pyogrio). The pipeline is version-controlled and reproducible from the public source datasets. The script repository for the data processing pipeline and the conflation plugin will be added before full rollout.

The data prepartion pipeline runs in three stages.

Stage Script Purpose Output
1 01_forest_prep.py Mapshaper cleanup and simplification, tag mapping, tiling to TM35 sheets. {sheet}_forest.gpkg
2 02_farmland_prep.py Same processing for farmland parcels. {sheet}_farm.gpkg
3 03_osm_merge.py Forest and farmland data merged, nodes snapped to edges and merged within tolerance, converted to OSM format. {sheet}.osm.pbf

Stage 1: forest prep

01_forest_prep.py:

  1. Mapshaper -clean snap-interval=0.1 (repairs invalid geometries), -simplify interval=6.0 keep-shapes, in EPSG:3067.
  2. Assign TM35 sheets by centroid (features are not clipped).
  3. Tag from scripts/tag_mapping_forest.xlsx (LANDCOVER / DEVELOPMENT / SPECIES sheets): landuse/natural/wetland per maingroup × subgroup × fertilityclass; A0 → man_made=clearcut (landuse dropped, natural kept); T1/T2/Y1 → landuse=forest where no landcover applies, natural=scrub where no natural applies, wetland:vegetation=scrub on mire classes; leaf_type/leaf_cycle/genus/species per maintreespecies.
  4. Add source=Metsäkeskus and source:date=* (register update date); ref:FI:metsakeskus=* with --include-refs.
  5. Write per-sheet output/staged_tiles/{sheet}_forest.gpkg. --sheet processes only that one TM35 sheet (e.g. M3343L).

Stage 2: farmland prep

02_farmland_prep.py:

  1. Read the national parcel GPKG; mapshaper clean and simplify as in stage 1.
  2. Assign TM35 sheets by centroid.
  3. Tag from scripts/tag_mapping_farmland.xlsx (one row per KASVIKOODI): landuse (farmland/meadow/plant_nursery/orchard), produce, natural; organic=yes where LUOMUVILJELY = 1.; source:date=* from the register inspection date.
  4. Write per-sheet output/staged_tiles/{sheet}_farm.gpkg.

Stage 3: merge and OSM export

03_osm_merge.py, per sheet:

  1. Merge the sheet's corresponding farm and forest files. Mapshaper -clean snap-interval=3.0 snaps shared boundaries across both datasets.
  2. Convert to EPSG:4326. Drop non-polygon artifacts and the mapshaper fid column.
  3. Dissolve adjacent features with identical tags.
  4. Export OSM XML: node coordinates rounded to 7 decimals (node cache), ways split at 2000 nodes, holes and multiparts as multipolygon relations (tags on the relation).
  5. Convert to PBF with osmconvert64output/osm_pbf/{sheet}.osm.pbf.

Import data tagging

The mapping is defined in two spreadsheets read by the pipeline: scripts/tag_mapping_farmland.xlsx (farmland, one row per KASVIKOODI) and scripts/tag_mapping_forest.xlsx (forest: LANDCOVER, DEVELOPMENT and SPECIES sheets). The farmland table below lists the KASVIKOODI.codes that carry a produce=* tag. The forest table mirrors the forest spreadsheet. produce=* is emitted only for orchards, as crop rotation makes crop= meaningless on annual fields.

Farmland tagging plan (Ruokavirasto)

Most farmland features receive landuse=farmland, source=Ruokavirasto and source:date=* (register inspection date). organic=yes is added where LUOMUVILJELY = 1.

OSM tag combination English description Finnish name / description (selite) Source attribute condition (KASVIKOODI) Parcels (2025)
landuse=orchard
produce=apple
Apple orchard Omenatarha = 5210 764
landuse=orchard
produce=rowanberry
Rowanberry Pihlajanmarja = 5212 3
landuse=orchard
produce=pear
Pear orchard Päärynätarha = 5213 72
landuse=orchard
produce=fruit
Other fruit trees Muut hedelmäpuut = 5220 73
landuse=orchard
produce=plum
Plum orchard Luumutarha = 5221 72
landuse=orchard
produce=grape
Vineyard / grapes Viinirypäle = 5222 18
landuse=orchard
produce=cherry
Cherry orchard Kirsikkatarha = 5452 31

Forest tagging plan (Metsäkeskus)

Forest features receive source=Metsäkeskus and source:date=* (register update date). The table mirrors the LANDCOVER / DEVELOPMENT / SPECIES sheets of scripts/tag_mapping_forest.xlsx:

OSM tag combination English description Finnish name / description (selite) Source attribute condition
landuse=forest Productive forest stand on mineral soil Metsämaa (kangas) maingroup = 1, subgroup = 1
natural=scrub Low-productivity scrubland Kitumaa (kangas) maingroup = 2, subgroup = 1
natural=heath Dwarf-shrub heathland Joutomaa (kangas / varvukko) maingroup = 3, subgroup = 1
natural=bare_rock Exposed bedrock / rocky ground Kalliomaa / hietikko maingroup = 3, fertility class = 7
natural=heath Treeline fell zone (lakimetsä / tunturi) — mapped as heath Lakimetsä / tunturi maingroup = 3, fertility class = 8
landuse=forest
natural=wetland
wetland=swamp
Wooded spruce mire / difficult wooded mire Metsämaa ja kitumaa, korpi maingroup IN (1, 2), subgroup = 2
natural=wetland
wetland=swamp
Spruce mire on waste land Joutomaa, korpi maingroup = 3, subgroup = 2
landuse=forest
natural=wetland
wetland=bog
Wooded pine mire / wooded bog Metsämaa ja kitumaa, räme maingroup IN (1, 2), subgroup = 3
landuse=forest
natural=wetland
wetland=bog
Open bog on forest land Metsämaa, neva maingroup = 1, subgroup = 4
landuse=forest
natural=wetland
wetland=fen
Open fen on forest land Metsämaa, letto maingroup = 1, subgroup = 5
natural=wetland
wetland=bog
Open treeless bog Avosuo (neva / räme-joutomaa) (maingroup IN (2, 3), subgroup = 4) or (maingroup = 3, subgroup = 3)
natural=wetland
wetland=fen
Open rich fen Avosuo / letto maingroup IN (2, 3), subgroup = 5
natural=water Water body (within forest dataset) Vesistö maingroup = 8
man_made=clearcut Forest clearcut area Aukea / uudistusala (hakkuutauko) developmentclass = A0
leaf_type=needleleaved
leaf_cycle=evergreen
Evergreen coniferous trees Havupuu / havumetsä (mänty, kuusi, kataja, pihta jne.) maintreespecies IN (1, 2, 8, 10, 11, 12, 16, 19, 22, 23, 30)
leaf_type=needleleaved
leaf_cycle=deciduous
Deciduous coniferous trees Lehtikuusi maintreespecies = 14
leaf_type=broadleaved
leaf_cycle=deciduous
Deciduous broadleaved trees Lehtipuu / lehtimetsä (koivu, haapa, leppä, tammi, paju jne.) maintreespecies IN (3, 4, 5, 6, 7, 9, 13, 15, 17, 18, 20, 21, 24, 25, 26, 27, 28, 29)

Notes:

  • Development classes: A0man_made=clearcut; landuse is dropped (a clearcut is not forest cover), natural kept. T1/T2/Y1 (sapling stands) → landuse=forest where no landcover applies, natural=scrub where no natural applies, wetland:vegetation=scrub on mire classes. plant_community=saplings is not an established tag and is not emitted.
  • Species: named species additionally get genus=*/species=* (e.g. Pinus sylvestris, Picea abies, Betula pendula) per code reference 622; generic classes (8, 9, 29, 30) get leaf_type/leaf_cycle only.
  • Fertility classes: fc 7 ("Kalliomaa ja hietikko") → natural=bare_rock; fc 8 ("Lakimetsä ja tunturi") → natural=heath, as the fell zone is dwarf-shrub vegetation.
  • maingroup 4–7 and missing values (186 stands nationally) receive no landcover tag and are excluded.

Changeset Tags

Key Value
import=* yes
mechanical=* yes (required by the Automated Edits code of conduct)
source=* Metsäkeskus; Ruokavirasto
source:url=* https://www.metsakeskus.fi; https://www.ruokavirasto.fi
source:date=* 2026
import:page=* https://wiki.openstreetmap.org/wiki/2026_Finnish_Landuse_Import
source:license=* CC-BY-4.0

Discussion

The proposal has been posted onto the community forum. [1]