Menetelmät & tausta

Tietoja sovelluksesta

Vuosirengaslaskuri arvioi puun iän kannon valokuvasta selaimessa. Tämä sivu kuvaa, miten arvio tehdään, mihin menetelmävalinnat perustuvat ja mitä rajoituksia arviolla on. Sovellus on tarkoitettu harrastus- ja opetuskäyttöön, ei tieteelliseen ajoitukseen.

Takaisin laskuriin

Mitä vuosirenkaat ovat

Puun runko kasvaa joka kasvukausi yhden uuden solukerroksen verran jällen (kambiumin) tuottamana. Keväällä syntyy vaaleaa, harvaa kevätpuuta ja loppukesästä tiheämpää, tummempaa kesäpuuta. Yksi vuosirengas = yksi kevätpuu–kesäpuu-pari, eli yksi kasvuvuosi. Renkaiden lukumäärä ytimestä kuoreen vastaa siten puun ikää vuosina.

Poikkileikkauksessa tämä näkyy vuorottelevana vaalea–tumma-kuviona: kesäpuun tumma raja erottuu radiaalisesti toistuvana intensiteetin laskuna. Tämä on koko laskennan fysikaalinen perusta — sovellus etsii nimenomaan näitä tummia kesäpuurajoja.

Renkaan leveys kertoo kasvuoloista

Renkaan leveys vaihtelee vuosittain kasvuolojen mukaan. Tämä on dendrokronologian ydinajatus: leveä rengas tarkoittaa hyvää kasvuvuotta, kapea rengas stressivuotta. Ratkaisevaa Suomen oloissa on kasvupaikan sijainti:

  • Pohjois-Suomessa ja tunturirajalla kasvua rajoittaa lämpötila. Lämmin kesä = leveä rengas.
  • Keski- ja Etelä-Suomen matalilla kasvupaikoilla kasvua rajoittaa useammin kosteus. Lämmin ja kuiva kesä aiheuttaa kuivuusstressiä, joka kaventaa rengasta.

Sovellus on viritetty Keski-Suomen näkökulmaan: se tulkitsee poikkeuksellisen kapeat renkaat todennäköisinä kuivuus- tai stressivuosina ja vertaa niitä Suomen tunnettuihin kuiviin ja kuumiin kesiin. Tämä on tietoinen rajaus, ei yleispätevä sääntö.

Miksi tämä on arvio eikä ajoitus

Oikea dendrokronologinen ajoitus (crossdating, ristiinajoitus) perustuu siihen, että saman alueen puiden leveysvaihtelu korreloi keskenään, ja mittausta verrataan alueelliseen referenssikalenteriin tilastollisesti. Pelkkä renkaiden laskeminen yhdestä näytteestä ei takaa, että jokainen rengas saa oikean kalenterivuoden.

Yksi valokuva tuottaa karkean arvion. Vino kuvakulma, epätasainen valaistus, lahokohdat ja epätarkka ytimen sijainti voivat siirtää tai vääristää tulosta useita vuosia. Tulos on suuntaa antava lähtökohta, ei mittaustulos.

Laskenta etenee neljässä vaiheessa: ytimen ja reunan paikannus, radiaalinen näytteenotto, renkaiden tunnistus signaalista, ja monen suunnan yhdistäminen luotettavaksi lukemaksi.

2.1 Kuvan esikäsittely

Värikuva muunnetaan harmaasävyksi luminanssipainoilla (standardi Rec. 601):

L = 0.299·R + 0.587·G + 0.114·B

Kesäpuun tummuus näkyy luminanssin laskuna riippumatta puun sävystä. Koko kuva puretaan harmaasävypuskuriin kerran latauksen yhteydessä — keskeinen suorituskykyratkaisu (ks. luku 3).

2.2 Radiaalinen intensiteettiprofiili

Kun ydin ja reunapiste on annettu, sovellus ottaa näytteitä suoraa pitkin ytimestä ulospäin:

x(r) = x₀ + r·cos(θ)
y(r) = y₀ + r·sin(θ)

Tuloksena on 1-ulotteinen profiili, jossa jokainen tumma kesäpuuraja näkyy paikallisena minimiarvona. Ytimen lähin ~6 % säteestä jätetään pois, koska aivan ytimen ympärillä renkaat ovat epäselviä.

2.3 Trendin poisto (detrending)

Raaka profiili sisältää hitaan yleistrendin (valaistus, sävyn muutos) ja nopean rengasvaihtelun. Vain jälkimmäinen kiinnostaa. Trendi poistetaan vähentämällä liukuva keskiarvo:

profiili_tasoitettu = liukuva_keskiarvo(profiili, ikkuna = 5 px)
perustaso           = liukuva_keskiarvo(profiili_tasoitettu, ikkuna = 41 px)
detrend             = profiili_tasoitettu − perustaso

Lyhyt tasoitus poistaa kohinaa; pitkä arvioi paikallisen perustason. Erotus jättää jäljelle puhtaan rengassignaalin nollan ympärille.

2.4 Renkaiden tunnistus huippuina

Tummat renkaat ovat detrend-signaalin minimejä, eli −detrend-signaalin maksimeja. Huippu hyväksytään renkaaksi, jos:

  • se on aito paikallinen maksimi (suurempi kuin naapurit molemmin puolin),
  • sen prominenssi (korkeus suhteessa ympäröiviin laaksoihin) ylittää herkkyyskynnyksen, ja
  • se on vähintään 8 pikselin päässä edellisestä renkaasta (estää kaksoislaskennan).

Prominenssi mittaa, kuinka selvästi huippu erottuu taustasta, ei pelkkää korkeutta. Termi on lainattu topografiasta (prominenssi); sama määritelmä on signaalinkäsittelyssä (esim. SciPyn find_peaks). Herkkyysliuku säätää suoraan prominenssikynnystä — pienempi arvo löytää enemmän renkaita. Oletus on 2.

2.5 Monen suunnan yhdistäminen ja "paras viiva"

Yksittäinen säde voi osua lahokohtaan, halkeamaan tai oksaan. Siksi sovellus skannaa 21 suuntaa, ±30° viuhkana 3° välein. Kullekin suunnalle lasketaan rengasmäärä ja laatupistemäärä:

laatu = keskim. prominenssi × 1 / (1 + rengasvälien variaatiokerroin)

Suunta saa korkean pisteen, jos sen renkaat ovat sekä selkeitä että tasavälisiä (variaatiokerroin on mittakaavasta riippumaton). Lopullinen lukema valitaan näin:

  • Lasketaan kaikkien suuntien rengasmäärien mediaani.
  • Valitaan suunnat, joiden rengasmäärä on enintään 2 mediaanin päässä.
  • Näistä valitaan laadukkain suunta lopulliseksi mittaviivaksi.

Näin yhdistyvät robusti enemmistöpäätös (mediaani) ja paras yksittäinen signaali (laatu).

2.6 Iästä kalenterivuosiin

Rengasmäärä n on puun ikä. Annetusta kaatovuodesta lasketaan itämisvuosi ≈ kaatovuosi − n. Peräkkäisten renkaiden säde-erot antavat rengasleveydet, joista rakennetaan vuosittainen aikajana. Poikkeuksellisen kapeat vuodet (leveys alle keskiarvo − 0,6 × keskihajonta) merkitään stressivuosiksi ja verrataan Suomen sääkalenteriin ±1 vuoden ikkunalla.

3.1 Kaikki selaimessa, ilman palvelinta

Koko laskenta tapahtuu selaimessa puhtaalla JavaScriptillä. Kuvaa ei lähetetä mihinkään. Valinta tehtiin kolmesta syystä: yksityisyys (kuvat pysyvät laitteella), julkaisun yksinkertaisuus (staattinen sivu) ja kustannukset (ei palvelinkuluja).

3.2 Suorituskyky: pikselien purku kerran

Varhainen versio purki koko kuvan pikselidatan joka kerta säteen näytteenotossa. 21 suunnan skannaus suurella kuvalla (esim. 4624×3472 px) tarkoitti yli 1,3 gigatavun purkamista yhdellä painalluksella — käyttöliittymä jäätyi. Ratkaisu: kuva puretaan kertaalleen harmaasävypuskuriin (Float32Array), ja kaikki näytteenotto lukee siitä. Työmäärä putosi ~1349 MB:stä 64 MB:hen. Raskas laskenta ajetaan latausindikaattorin takaa (kaksi requestAnimationFrame-kehystä), jotta selain ehtii piirtää tilan.

3.3 Vuorovaikutus: zoom, panorointi ja kiikaritähtäin

Pienelle pisteelle osuminen sormella on mobiilissa epätarkkaa. Siksi käytössä on kiikaritähtäin-malli: tähtäin pysyy ruudun keskellä, ja käyttäjä liikuttaa ja zoomaa kuvaa sen alla, kunnes tähtäin osuu kohtaan. Pisteet tallennetaan kuvakoordinaateissa, joten ne pysyvät paikallaan zoomatessa ja panoroidessa.

4.1 Renkaiden laskenta: signaalipohjainen menetelmä

Renkaat lasketaan signaalipohjaisesti (radiaaliprofiili + prominenssi, ks. luku 2). Menetelmä valittiin, koska se on läpinäkyvä (jokainen vaihe on tarkasteltavissa), säädettävä (herkkyysliuku vaikuttaa suoraan kynnykseen) ja kevyt (toimii selaimessa ilman malleja tai riippuvuuksia).

4.2 Ytimen automaattinen tunnistus: massakeskipiste vs. etäisyysmuunnos

Ensimmäinen tunnistus käytti puualueen massakeskipistettä, mutta se hyppäsi sivuun epäsäännöllisillä kannoilla. Ratkaisuksi vaihdettiin etäisyysmuunnoksen maksimi — puualueen sisään mahtuvan suurimman ympyrän keskus — joka ei reagoi muodon epäsymmetriaan. Toteutus on kevyt kaksivaiheinen chamfer-algoritmi. Puualue segmentoidaan HSV-väriavaruudessa, siivotaan morfologisilla operaatioilla ja valitaan suurin yhtenäinen alue.

4.3 Reunan tunnistus

Reuna haetaan kävelemällä ytimestä ulospäin neljään suuntaan puualueen rajalle ja ottamalla säteiden mediaani — kestää yksittäisen ulokkeeseen tai lahokohtaan osuvan suunnan paremmin kuin keskiarvo.

4.4 Tiedostomuoto ja julkaisu

Sovellus on toteutettu erillisinä HTML-, CSS- ja JS-tiedostoina selkeyden ja ylläpidettävyyden vuoksi, ja se sopii suoraan staattiseen julkaisuun ilman käännösvaihetta.

  • Yksi kuva, yksi näkökulma. Ilman alueellista referenssikalenteria ajoitus voi heittää useita vuosia.
  • Kuvan laatu ratkaisee. Vino kuvakulma, varjot ja heijastukset heikentävät rengassignaalia. Paras tulos: suoraan ylhäältä, tasaisesti valaistuna.
  • Lahokohdat ja halkeamat katkaisevat renkaita ja voivat aiheuttaa yli- tai aliarviointia.
  • Ulommat renkaat ovat usein hyvin tiheässä; jos ne sulautuvat yhteen, ikä aliarvioituu. Herkkyyden pienentäminen voi auttaa.
  • Ilmastovertailu on havainnollistava. ±1 vuoden osumaikkuna tarttuu myös sattumaan, ja kapea rengas voi johtua paikallisista syistä yhtä hyvin kuin säästä.
Käytä lukemaa uteliaisuuden lähtökohtana ja oppimisen välineenä — ei virallisena puun ikänä.

Tieteellinen tausta

Kuvankäsittely ja matematiikka

Lähteet on tarkistettu kesäkuussa 2026.

  • Kuva harmaasävyksi, pikselit puskuriin (kerran).
  • Käyttäjä (tai automaatti) asettaa ytimen ja reunan.
  • 21 sädettä ytimestä reunaan, kullekin intensiteettiprofiili.
  • Profiilista trendi pois → renkaat tunnistetaan prominenssihuippuina.
  • Suunnista valitaan mediaanin lähellä oleva laadukkain "paras viiva".
  • Rengasmäärä = ikä; säde-erot = vuosittaiset leveydet.
  • Kapeat vuodet verrataan Suomen sääkalenteriin → ilmastotulkinta ja aikajana.
Takaisin laskuriin