Tuomas Yrttimaa
Perinteisesti metsän rakennetta kuvaavien puustotunnusten aluepohjaisessa mallinnuksessa hyödynnetään laserpiirteiden ja maastokoealatiedon välistä tilastollista riippuvuutta (ks. White ym. 2013). Tämä vaatii, että tarkastelualueelta kerätään ensin tarkka maastokoeala-aineisto, joka kattaa tarkastelualueen metsien rakenteellisen vaihtelun. Menetelmää hyödynnetään Suomessa jo operatiivisen metsävaratiedon tuottamiseen (https://www.metsakeskus.fi/metsatiedon-keruu). Mittavien maastotöiden sijaan metsikön rakennetta kuvaavat puustotunnukset voidaan ennustaa pelkän ALS-aineiston ja valtakunnallisten puustotunnusmallien avulla. Puustotunnusmalleissa metsikön latvuston rakennetta hilaruudussa kuvaavien ALS-piirteiden avulla voidaan ennustaa metsikön puustoa kuvaavia tunnuksia ilman maastokoeala-aineistoja. Puustotunnukset ennustetaan regressiomalleilla puuston pituutta ja tiheyttä kuvaavien piirteiden avulla. Suomessa metsän rakenteen kaukokartoitukseen kehitettyjä puustotunnusmalleja ovat Kotivuoren ym. (2016) laatimat valtakunnalliset mallit puuston tilavuudelle, valtapituudelle ja biomassalle, sekä Suvannon ym. (2005) mallit puuston tilavuudelle, pohjapinta-alalle ja runkoluvulle sekä pohjapinta-alalla painotetuille keskiläpimitalle ja -pituudelle.
Tätä projektia varten käytimme Kotivuoren ym. (2016) laatimia tilavuus-, valtapituus- ja biomassamalleja sekä Suvannon ym. (2005) laatimia tilavuus- ja pohjapinta-alamalleja ennustaessamme puustotunnukset mallimetsälön ja SMEAR:in alueille. Puustotunnusten ennustamista varten ALS-aineistosta lasketaan mallinnuksessa tarvittavat puustotunnuksia selittävät ALS-piirteet 16 m x 16 m hilaruutuihin. Tarkempi kuvaus piirteiden laskennasta: http://www.helsinki.fi/~korpela/FOR254/html/als-piirteet.html
# Piirteet Kotivuoren ym. (2016) malleihin
f(paste0("lascanopy -i clip.las -step 16 -keep_scan_angle -15 15 -avg -p 95 -first_only -odix _kotivuori_first -otif -etrs89 -utm 35north"))
f(paste0("lascanopy -i clip.las -step 16 -keep_scan_angle -15 15 -max -p 95 -last_only -odix _kotivuori_last -otif -etrs89 -utm 35north"))
# Piirteet Suvannon ym. (2005) malleihin
f(paste0("lascanopy -i clip.las -step 16 -p 5 20 50 60 80 -cov -avg -b 50 70 -keep_scan_angle -15 15 -first_only -cover_cutoff 2.00005 -fractions -height_cutoff 2.00001 -odix _suvanto_first -otif -etrs89 -utm 35north"))
f(paste0("lascanopy -i clip.las -step 16 -p 70 -cov -avg -std -b 70 -keep_scan_angle -15 15 -last_only -cover_cutoff 2.00005 -fractions -height_cutoff 2.00001 -odix _suvanto_last -otif -etrs89 -utm 35north"))
# Luetaan piirrerasterit, muodostetaan raster-stack, tarkastetaan rasteritasojen nimet.
# Esim. Raster-stack Kotivuoren mallin rastereihin:
(kotivuori <- stack(list.files(pattern="*kotivuori")))
substr(names(kotivuori), nchar(tunniste)+12, nchar(names(kotivuori))) -> n
names(kotivuori) <- n # set temp names for R environment
kotivuori
# Metsikkotunnusten laskenta gridille (valtapituus (m), tilavuus (m3/ha), pohjapinta-ala (m2/ha) ja biomassa (t/ha))
# Ks. tarkemmat tiedot malleista alkuperäisistä tutkimusjulkaisuista.
kotivuori[["Hdom"]] <- (3.1475 + 0.9855 * kotivuori[["first_p95"]])
kotivuori[["Vol"]] <- (0.7622 + 3.3582 * sqrt(kotivuori[["first_avg"]]) +
0.0100 * kotivuori[["last_p95"]]^2)^2 +2.09721
kotivuori[["Bm"]] <- (-0.4247 + 0.1494 * kotivuori[["last_max"]] +
2.5196 * sqrt(kotivuori[["first_avg"]]))^2 + 1.1161
suvanto[["vol"]] <- exp(0.788 + 0.704*log(suvanto[["first_p50"]]) + 1.090*sqrt(suvanto[["first_cov"]]) +
0.735*log(suvanto[["last_avg"]]) + 0.267*log(suvanto[["last_cov"]]))+ 0.00781/2
suvanto[["ppa"]] <-(-0.795 + 1.329*log(suvanto[["first_avg"]]) + 1.342*suvanto[["first_cov"]] +
2.270*sqrt(suvanto[["last_cov"]]) - 1.773*(1/suvanto[["first_p05"]]))^2+ 0.02987
# Tallennetaan puustotunnusrasterit
writeRaster(kotivuori[["Hdom"]],"kotivuori_Hdom.tif"); writeRaster(kotivuori[["Vol"]],"kotivuori_Vol.tif")
writeRaster(kotivuori[["Bm"]],"kotivuori_Bm.tif"); writeRaster(Suvanto[["Vol"]],"Suvanto_Vol.tif")
writeRaster(Suvanto[["G"]],"Suvanto_G.tif")
# Plotataan lopuksi kartta puuston runkotilavuudesta mallimetsälön alueella
mycols <- rasterTheme(region=colorRampPalette(brewer.pal(9,'Greens'))(100))
# Kotivuori ym. (2016)
p1<-levelplot(kotivuori[["Vol"]], margin = FALSE, main = "Tilavuus m3/ha 16 x 16m (Kotivuori ym. 2016)", par.settings = mycols, zlim = c(0,100)) + layer(sp.lines(vjsuo_rajat, lwd=0.8, col='black'))
# Pituus
p2<-levelplot(Suvanto[["Vol"]], margin = FALSE, main = "Tilavuus m3/ha 16 x 16m (Suvanto ym. 2004)", par.settings = mycols, zlim = c(0,35)) + layer(sp.lines(vjsuo_rajat, lwd=0.8, col='black'))
# Tulostetaan kartat vierekkäin
grid.arrange(p1, p2, ncol=2)
Kuva 1. Kartat puuston tilavuusestimaateista 16 m hilassa mallimetsälön alueella. Kotivuoren ym. (2016) tilavuusmalli on valtakunnallinen, ja siinä tilavuusestimaatin RMSE oli metsikön maantieteellisestä sijainnista riippuen 23,0-32,9 % Suvannon ym. (2004) mallissa RMSE oli 19,9 % koealatasolla, mutta mallinnusaineisto ei ollut maantieteellisesti kattava (kerätty Pohjois-Savosta).
Rasterimuotoinen hila-aineisto voidaan viedä edelleen kuviotasolle. Tässä tarvitaan kuviorajat sisältävä shapefile sekä puustotunnusrasterit.Esimerkki mallimetsälön alueella puuston keskitilavuuden laskemiseksi:
# Luetaan kuviorajat shapefilena
kuviot<-readOGR("kuviot.shp")
# Lasketaan kuviotiedot kuvioille osuneiden rasteriarvojen perusteella.
# Tallennetaan kuviotiedot suoraan shapefilen ominaisuustiedoiksi
tilavuuslista<-extract(raster("Kotivuori_Vol.tif"),kuviot)
i<-0
for (i in 1:nrow(kuviot)){kuviot@data$vol_als[i]<-mean(tilavuuslista[[i]])}
# Kuviotietojen tallennus takaisin shapefileksi
writeOGR(kuviot_asema,dsn="kuviotiedot",layer="kuviotiedot", driver = "ESRI Shapefile")
# Kuviokartta, varitys kuviotietojen perusteella
colordata<-kuviot@data$vol_als
plot(kuviot,border = "red",lwd = 1,col = gray((max(colordata)-colordata)/(max(colordata)-min(colordata))))
Kuva 2. Puustotunnukset hilasta kuviolle: esimerkki keskitilavuuden vaihtelusta kuviotasolla, tummempi väri kuvaa suurempaa tilavuutta
Tuomas Yrttimaa
ALS- piirre- ja puustotunnusrastereiden avulla voidaan tarkasteltavalta alueelta tehdä erilaisia paikkatietoanalyysejä. Yksinkertaisimmillaan analyysi voidaan toteuttaa ns. kyselynä.Tällöin muodostetaan binaarirastereita, joissa hilaruutu saa arvon 1, jos se toteuttaa halutun ehdon, ja arvon 0, jos ehto ei hilaruudussa toteudu. Näin saadaan helposti kartoitettua esimerkiksi järeät, yli 30 m puustot sekä nuoremmat, vielä kasvatusvaiheessa olevat metsät, joissa tilavuus on alle 100 m3/ha:
# Yli 30 m puut?
yli30<-(raster("vjsuo_2016_16m_p95.tif") > 30)
mycols <- rasterTheme(region=colorRampPalette(brewer.pal(6,'Greens'))(100))
p1<-levelplot(yli30, margin = FALSE, colorkey=F,main = "Yli 30 m puusto", par.settings = mycols) +
layer(sp.lines(vjsuo_rajat, lwd=0.8, col='darkgray'))
# tilavuus alle 100 m3/ha?
alle100<-(raster("vjsuo_2016_16m_Vol.tif") < 100)
p2<-levelplot(alle100, margin = FALSE, colorkey=F,main = "Tilavuus alle 100 m3/ha", par.settings = mycols) +
layer(sp.lines(vjsuo_rajat, lwd=0.8, col='darkgray'))
grid.arrange(p1, p2, ncol=2)
Henri Riihimäki
Avohakkuuala-analyysi tehtiin laserkeilausaikasarjasta. R-ohjelmistossa rakennettiin funktio, joka käyttää kahden ajankohdan laserkeilausaineistosta laskettuja latvuspeittävyyksiä, sekä ensimmäisen ajankohdan p95-piirrettä. Käyttäjä antaa funktiolle haluamansa raja-arvot latvuspeittävyyden muutokselle sekä minimikorkeuden, mitä puuston on täytynyt olla ennen hakkuuta (p95). Analyysi tehtiin asettamalla raja-arvoiksi 70% latvuspeittävyysmuutos, sekä minimikorkeudeksi 8 m. Koska aineistoihin sisältyy luontaista hajontaa (16 m ruutujen sisällä), täytyy hilaan ajaa moodi-filtteri. Tällöin kuvioiden sisäinen vaihtelu vähenee merkittävästi. Tämä poistaa satunnaisuutta huomattavasti, ja antaa lopputuloksena yhtenäisempiä, todenmukaisempia kuvioita. Samasta syystä annettu minimiarvo pidettiin matalana, sillä yksittäiset hilaruudut voivat olla varsin matalia myös avohakkuualoilla. Funktio antaa lopputuloksena NA niille hilaruuduille, joissa muutosta ei ole, ja keskimääräisen hakkuuvuoden niille ruuduille jossa muutos on tapahtunut. (esim. t1 = 2010, t2 = 2012; tällöin havaitun muutoksen pikseli saa arvoksi 2011). Lopuksi aikasarjarasteri (R:n raster stack -objekti) summataan, jolloin hakatut ruudut saavat keskimääräisen hakkuuvuoden arvokseen ja muut hilaruudut NA. Lopuksi tarkastetaan vielä, että samaa ruutua ei ole hakattu kahdesta (rasterin arvo > 2015), ja jos on, annetaan näille ruuduille arvoksi ensimmäinen hakkuuvuosi. Analyysissä havaittiin muutama yksittäinen hilaruutu missä näin oli tapahtunut.
# Detect clear cut areas from multitemporal LiDAR data
# Data processed with ALS-piirteet_v2.R script
# script by Henri Riihimaki, 09.05.2018
# Load libraries
library(raster)
library(sp)
library(rgdal)
#library(colorRamps)
# Clear workspace
rm(list = ls(all = T))
# load boundary shapefile
vjsuo <- readOGR("vjsuo_rajat.shp")
vjsuo
# Time series
# 2011 leaf-off, 2004 has no data areas
yrs <- c(2006,2007,2010,2012, 2013, 2015, 2016)
# create list for rasters
list() -> fp95 -> cov
for ( y in yrs) {
fp95[[paste0("fp95_",y)]] <- raster(paste0("vjsuo", y,"/vjsuo",y,"_kotivuori_first_p95.tif"),
proj4string = CRS("+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defs"))
cov[[paste0("cov_",y)]] <- raster(paste0("vjsuo", y,"/vjsuo",y,"_suvanto_first_cov.tif"),
proj4string = CRS("+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defs"))
print(paste0("Year", y ," ok!"))
}
# stack rasters
cov <- stack(cov)
fp95 <- stack(fp95)
s1 <- stack(cov, fp95)
# Function for detecting clearcuts
als_log <- function(cover_t1, cover_t2, first_only_p95_t1,cover_change_threshold, t1_tree_height_threshold,code) {
# cover change between years / original cover. Mark as logged if exceeds threshold and original tree height was above given threshold
# obs: use low(ish) treeheight to include variability within a stand
x1 <- ( (cover_t2 - cover_t1) / cover_t1 ) < cover_change_threshold & first_only_p95_t1 > t1_tree_height_threshold
# use focal mode function to create consist areas and mask random cells (i.e. small storm damages)
x2<- focal(x1, w=matrix(1,3,3), fun=modal)
x2[x2 == 1] <- code
return(x2)
}
par(mai=rep(0.25, 4), mfrow=c(2,3))
logged <- list()
plot( logged[[1]] <- als_log(s1[["cov_2015"]],s1[["cov_2016"]],s1[["fp95_2015"]], -0.7 , 8, 2015 ) , main = "logged between 2015-2016" )
plot( logged[[2]] <- als_log(s1[["cov_2013"]],s1[["cov_2015"]],s1[["fp95_2013"]], -0.7 , 8, 2014 ) , main = "logged between 2013-2015")
plot( logged[[3]] <- als_log(s1[["cov_2012"]],s1[["cov_2013"]],s1[["fp95_2012"]], -0.7 , 8, 2012 ) , main = "logged between 2012-2013")
plot( logged[[4]] <- als_log(s1[["cov_2010"]],s1[["cov_2012"]],s1[["fp95_2010"]], -0.7 , 8, 2011 ) , main = "logged between 2010-2012")
plot( logged[[5]] <- als_log(s1[["cov_2007"]],s1[["cov_2010"]],s1[["fp95_2007"]], -0.7 , 8, 2008 ) , main = "logged between 2007-2010")
plot( logged[[6]] <- als_log(s1[["cov_2006"]],s1[["cov_2007"]],s1[["fp95_2006"]], -0.7 , 8, 2006 ) , main = "logged between 2006-2007")
tmp<- stack(logged)
sum(tmp) -> logged # value as approx. logging year
logged[logged== 0] <- NA
# Multiple loggins?
logged[logged > 2015] <- 2015 # set value for such cases
# for further implementation, make this part smarter...
# Check result
par(mfrow=c(1,1))
plot(logged);plot(vjsuo, add = T)
# write results:
writeRaster(logged, "avohakkuut_2006_2015.tif", datatype='INT2U', overwrite = T)
Henri Riihimäki
Lehtipuuanalyysi tehtiin hyödyntämällä leaf-off ja leaf-on laserkeilausaineistoja vuosilta 2011 (off) ja 2013 (on). Keilausparametrit ovat samat (geometria, keilain jne.), jolloin periaatteessa pitäisi nähdä vain luonnossa tapahtunut muutos.Ensimmäinen lehtipuuluokitus tehtiin käyttäen seuraavia kriteereitä: Latvuspeitto on yli 15% suurempi leaf-on keilauksen aikana. Suhteellinen pituusmuutos on ollut alle 25%. *Ruutu ei ole kasvanut minimikriteerin yli tarkastelujakson aikana (tästä seuraisi latvuspeiton välitön nousu, ja mahdollinen virheluokitus)
Toinen lehtipuuluokitus tehtiin hyödyntämällä vääräväri-ilmakuvan CIR-kanavaa. GIS-ohjelmistossa tarkasteltiin lehtipuille tyypillistä heijastusarvoa (DN) ja valittiin karkea kynnysarvo jonka ylittävät arvot luokiteltiin lehtipuiksi. Tätä ennen aineisto keskiarvoistettiin 16 metrin hilaruutuun, alkuperäisestä 30 cm resoluutiosta. Tämä tehtiin kaksivaiheisesti, sillä 0.3 m hilaa ei voida aggregoida kokonaisluvulla 16 m hilaan. Ensiksi aineisto keskiarvoistettiin 8.1 metrin ruutukokoon. Tämän jälkeen käytettiin bilineaarista interpolointia, jonka avulla sävyarvo laskettiin 16 m hilaan.
Lehtipuuluokituksen raja-arvona käytettiin DN > 150. Lisäksi puuston minimikorkeudeksi (p95, v. 2016) asetettiin 8 m, sillä nuorten taimikoiden aluskasvillisuus sekoittaa luokituksen herkästi. Molemmat analyysit vaikuttavat varsin hyviltä, joskin aivan kaikkia ruutuja kumpikaan niistä ei löydä.
library(raster)
library(sp)
library(rgdal)
library(RColorBrewer)
# leaf-off (2011), leaf-on (2013), most recent 2016
yrs <- c(2011,2013, 2016)
# Read data
# shp
vjsuo <- readOGR("vjsuo_rajat.shp")
vjsuo
# load lascanopy results from results folder:
setwd("F:/FOR254/Data/results")
# ALS
cov <- list() -> vol -> fp95 -> hdom
for ( y in yrs) {
cov[[paste0("cov_",y)]] <- raster(paste0("vjsuo", y,"/vjsuo",y,"_suvanto_first_cov.tif"), proj4string = CRS("+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defs"))
fp95[[paste0("fp95_",y)]] <- raster(paste0("vjsuo", y,"/vjsuo",y,"_kotivuori_first_p95.tif"), proj4string = CRS("+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defs"))
hdom[[paste0("hdom_",y)]] <- raster(paste0("vjsuo", y,"/vjsuo",y,"_kotivuori_Hdom.tif"), proj4string = CRS("+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defs"))
}
# make stacks
cov <- stack(cov)
fp95 <- stack(fp95)
hdom <- stack(hdom) # not used
# aerial imagery
cir_2015 <- stack("F:/FOR254/Deciduous/vjsuo_2015_30cm_CIR_copy.tif")# stack("F:/FOR254/Data/Imagery/georef/vjsuo_2015_30cm_CIR/vjsuo_2015_30cm_CIR.tif")
cir_2015
b1 <- aggregate(cir_2015[[1]], fact = 8/0.3)
b2 <- aggregate(cir_2015[[2]], fact = 8/0.3)
b3 <- aggregate(cir_2015[[3]], fact = 8/0.3)
tmp1 <- stack(b1,b2,b3)
# resample to same grid
tmp2 <- resample(tmp1, cov[["cov_2013"]], method="bilinear")
cir_2015_16m <- mask(tmp2, cov[["cov_2013"]])
writeRaster(cir_2015_16m, "cir_2015_16m_bilinear_resample.tif", overwrite = T)
# CIR threshold
b1_over_140 <- cir_2015_16m[[1]] > 140
# ALS changes 2011-2013
plot(growth_over2m <- under_2m_2011-under_2m_2013 == 1)
## fp95
fp95_change <- fp95[["fp95_2013"]]-fp95[["fp95_2011"]]
fp95_rel_change <- (fp95[["fp95_2013"]]-fp95[["fp95_2011"]])/fp95[["fp95_2013"]]
# Plot
par(mfrow=c(1,3))
plot(fp95_change, zlim = c (-3,3), main = "absolute change", col = colorRampPalette(brewer.pal(9,"RdYlGn"))(10))
plot(fp95_rel_change, zlim = c(-1,1), main = "relative change (to 2013", col = colorRampPalette(brewer.pal(9,"RdYlGn"))(10))
plot(fp95_rel_change < 0.1, main = "relative change < 0.1 in comparison to 2013")
## cov
cov_change <- cov[["cov_2013"]]-cov[["cov_2011"]]
par(mfrow=c(1,2))
plot(cov_change, col = colorRampPalette(brewer.pal(9,"RdYlGn"))(10))
s1 <- stack(cov_change, fp95_rel_change, growth_over2m)
names(s1) <- c("cov_change", "fp95_rel_change", "growth_over2m")
# ALS
dec1 <- s1[["cov_change"]] > 0.15 &
s1[["fp95_rel_change"]] < 0.25 &
s1[["fp95_rel_change"]] > -0.25 &
s1[["growth_over2m"]] == 0 # cover cutoff is at two meters (lascanopy), mask out pixels that have grown over the threshold between the flights
# CIR
s2 <- stack(fp95[["fp95_2016"]], cir_2015_16m[[1]], growth_over2m)
names(s2) <- c("fp95", "b1","growth_over2m")
dec2 <- s2[["fp95"]] > 8 &
s2[["b1"]] > 150
plot(dec1)
plot(dec2)
writeRaster(dec1, "deciduous_als.tif", datatype='INT1U', overwrite = T)
writeRaster(dec2, "deciduous_cir.tif", datatype='INT1U', overwrite = T)
Henri Riihimäki
Laserkeilaus tuottaa tietoa paitsi puustosta, myös maanpinnanmuodoista. DEM-analyysissä käytettiin vuoden 2015 laserkeilauksesta tuotettua 1 m digitaalista korkeusmallia. Korkeusmalli muutettiin aluksi .bin -tiedostomuodosta geotiff-tiedostomuotoon, jonka jälkeen DEM tuotiin SAGA GIS -ohjelmistoon (v. 2.1.2.). SAGA GIS on avoimen lähdekoodin ohjelmisto, joka on erityisen hyvä topografisiin analyyseihin. SAGA GIS-ohjelmistossa voidaan helposti laskea erinäisiä topografisia muuttujia, jotka tuottavat hyödyllistä tietoa metsänomistajalla, tai esimerkiksi puunkorjuun suunnitteluun. Pohja-aineistona käytettiin 1 m resoluution korkeusmallia (DEM), joka aggregoitiin muutamaan eri resoluutioon (4 ja 16 m). Resoluutio vaikuttaa ratkaisevasti saataviin tuloksiin. Lopulliseen aineistoon laskettiin rinteen kaltevuuden keskeisiä tunnuslukuja 4 metrin korkeusmallista, 16 metrin hilan sisällä. Esimerkiksi kaltevuuden vaihteluväli ja maksimi 16 m hilaruudun sisällä. Mikäli 16 m ruutua käytettäisiin suoraan, jäisi informaatio pienipiirteisestä topografisesta vaihtelusta huomaamatta (keskiarvoistuminen), mikä saattaa olla keskeistä esim. maaston kuljettavuuden kannalta. Jyrkännetietoa voidaan käyttää myös esimerkiksi metsälain erityisen arvokkaiden elintympäristöjen paikantamiseen (kalliojyrkänteet, kurut).
Lisäksi SAGA GIS -ohjelmistossa laskettiin topografinen positio-indeksi (TPI). Indeksi kuvaa kunkin pikselin suhteellista sijaintia annetulla säteellä. TPI laskettiin kahdella säteellä 50 ja 250 m. Näin saadaan tarkasteltua sijaintia kahdella eri mittakaavalla. Topografinen positio vaikuttaa osaltaan muun muassa tuulituhoriskiin. Negatiiviset arvot kuvaavat sijainteja, jotka ovat ympäristöön alempana (tuulelta suojassa).
Henri Riihimäki
Lopputuotteena tuotettiin metsälön alueelta 16 m hila polygon-muodossa (ESRI shapefile), johon koottiin kasatusti kaikki lasketut ALS-rasterit, sekä laserkeilauspiirteiden ja Suvannon (2005) sekä Kotivuoren (2016) malleilla tuotettut rasterit. Rasteritieto liitettiin polygoneihin 1. luomalla päällekkäinen hila rastereiden kanssa, sekä hilaruuduille keskipiste. Tämän jälkeen ArcMap 10.3 Extract multivalues to polygon -työkalulla haettiin rasteritieto hilakeskipisteille, jotka liitettiin ID-numeron avulla hilatietoon. Rinteen kaltevuustieto (slope) laskettiin 4 metrin rastereista. Kaltevuusanalyysi tehtiin SAGA GIS v. 2.1.2 ohjelmassa. 16 metrin hilaan laskettiin minimi (min), maksimi (max), vaihteluväli (range), ja keskihajonta (std) kaltevuusarvot, jotka kuvaavat esimerkiksi hilaruudun kulkukelpoisuutta. Aineisto on esillä Paikkatietoikkunassa sekä ladattavissa OneDrive-kansiosta.
ESRI shapefile löytyy vuorijarvi_data.zip kansiosta kokonaisuudessaan. Hilaan on rajattu ruudut, jotka esiintyvät rajojen sisälle.
Muuttuja: | Kuvaus: |
---|---|
slope_min | 4 m kaltevuusrasterin minimiarvo 16 m hilaruudussa |
slope_max | 4 m kaltevuusrasterin maksimiarvo 16 m hilaruudussa |
slope_range | 4 m kaltevuusrasterin vaihteluväli 16 m hilaruudussa |
slope_mean | 4 m kaltevuusrasterin keskiarvo 16 m hilaruudussa |
DirInsMa31 | Auringon potentiaalinen suora säteily maaliskuun 31 päivä. |
TPI50m_16m | Topographic Position Index, 50 m säde (pikselin sijainti vrt. ympäröivä maasto) * Negatiivinen arvo = alempana ympäristöä, Positiivinen = ylempänä ympäristöä. Arvot metrejä. |
TPI250m_16m | Topographic Position Index, 250 m säde (pikselin sijainti vrt. ympäröivä maasto) |
p95 | Ensimmäisten laserkaikujen (first return) 95 persentiili |
ppa | Pohjapinta-ala, laskettu Suvannon et al. 2005 mallilla. |
s_vol | Tilavuus, laskettu Suvannon et al. 2005 mallilla. |
k_vol | Tilavuus, laskettu Kotivuoren et al. 2016 mallilla. |
cov | Latvuspeittävyys; 1. kaiut yli 2 m / kaikki 1. kaiut 16 m hilassa |
bm | Biomassa, laskettu Kotivuoren et al. 2016 mallilla |
dec_als | Lehtipuuluokitus leaf-on & leaf-off keilauksista laskettuna (vuodet 2011, 2013) |
dec_cir | Lehtipuuluokitus, perustuu 2015 CIR-ilmakuvasta tehtyyn kynnysarvoluokitukseen. |
clearcut | Avohakkuuvuosi (arvio) perustuen laserkeilausaikasarjan muutosanalyysiin |
peatland | Turvemaaluokitus perustuen maastotietokannan kohteisiin (35411, 35412, 354212). |
road | Osuuko hila tiehen |
road_dist | Etäisyys tiestä hilaruutuun |
Binääriset luokitukset: 1 = kyllä, 0 = ei.
Vuosi nimen perässä kertoo minkä vuoden laserkeilausaineistosta muuttuja on laskettu.
HUOM. Eri vuosien keilaukset eivät ole keskenään täysin vertailukelpoisia! Keilauksia on toteutettu eri keilaimilla ja keilausgeometria ja ajankohta vaihtelee. Aikasarjavertailua voidaan siis pitää suuntaa-antavana. Keilausten dokumentointi: http://www.helsinki.fi/%7Ekorpela/HYDE_REF/ http://www.helsinki.fi/%7Ekorpela/HYDE_REF/English_documentation.pdf
Kotivuori, E., Korhonen, L. and Packalen, P., 2016. Nationwide airborne laser scanning based models for volume, biomass and dominant height in Finland. Silva Fennica, 50(4), p.28
Suvanto, A., Maltamo, M., Packalén, P. & Kangas, J. 2005. Kuviokohtaisten puustotunnusten ennustaminen laserkeilauksella. Metsätieteen aikakauskirja 4/2005: 413-428.
White, J.C., Wulder, M.A., Varhola, A., Vastaranta, M., Coops, N.C., Cook, B.D., Pitt, D. and Woods, M., 2013. A best practices guide for generating forest inventory attributes from airborne laser scanning data using an area-based approach. The Forestry Chronicle, 89(6), pp.722-723.