Ero sivun ”Keko-laskuri” versioiden välillä
Siirry navigaatioon
Siirry hakuun
(raakile näkemysverkon esittelemiseksi) |
(koodi lukee myös funktioiden tulokset) |
||
(4 välissä olevaa versiota samalta käyttäjältä ei näytetä) | |||
Rivi 2: | Rivi 2: | ||
[[Luokka:Ilmansaasteet]] | [[Luokka:Ilmansaasteet]] | ||
{{ensyklopedia|moderaattori=Jouni}} | {{ensyklopedia|moderaattori=Jouni}} | ||
'''Keko-laskuri''' on kaupunkien ja kuntien alueellisten ilmastopäästöjen laskemiseen Suomen | '''Keko-laskuri''' on kaupunkien ja kuntien alueellisten ilmastopäästöjen laskemiseen Suomen ympäristökeskuksen, Aalto-yliopiston ja VTT:n yhteistyönä kehittämä laskentamalli. Sen kuvaus ja koodi on saatavissa osoitteesta http://www.ymparisto.fi/keko. Laskurin on koodannut Maija Mattinen-Yuryev vuonna 2015. | ||
[[Kuva:Keko-laskurin näkemysverkko.svg|thumb|600px|center|Keko-laskurin näkemysverkko. Mallissa käytetyt lähtödatat on merkitty valkoisilla ympyröillä ja | [[Kuva:Keko-laskurin näkemysverkko.svg|thumb|600px|center|Keko-laskurin näkemysverkko. Mallissa käytetyt lähtödatat on merkitty valkoisilla ympyröillä, funktiot violeteilla kuusikulmioilla ja mallitetut ilmiöt sinisillä ympyröillä. Nuolet kertovat, mitä tietoja funktiot käyttävät.]] | ||
=== Laskenta === | |||
<rcode label="Näkemysverkko Keko-laskurista (ajettava omalla koneella)"> | |||
library(OpasnetUtils) | |||
library(DiagrammeR) | |||
objects.latest("Op_en3861",code_name="ecd_create") # splizzeria, ecd_create | |||
## Code for KEKO analysis | |||
cod <- readLines("KEKO_code_all.txt", encoding = "UTF-8") | |||
funs <- grep("^def ", cod) # First row of function | |||
tmp <- funs # Last row of input parameters | |||
for(i in 1:10) { | |||
tmp <- ifelse(grepl(":",cod[tmp]),tmp, tmp+1) | |||
} | |||
tmp2 <- sapply(1:length(funs), FUN=function(i) paste0(cod[funs[i]:tmp[i]],collapse="")) | |||
tmp2 <- gsub("):$","",gsub("^def ","",tmp2)) | |||
tmp2 <- data.frame( | |||
Oldid=paste0("Keko.",1:length(funs)), | |||
type = "method", | |||
t(as.data.frame(strsplit(tmp2,"\\("))), | |||
Relation = "uses", | |||
Description = cod[tmp+1], | |||
URL="http://www.ymparisto.fi/keko", | |||
stringsAsFactors = FALSE | |||
) | |||
colnames(tmp2)[3:4] <- c("Item","Object") | |||
rets <- grep("^ +return ",cod) # Return row(s) of function | |||
retfun <- floor(approx(funs,1:length(funs),rets)$y) | |||
retfun <- ifelse(is.na(retfun),length(funs),retfun) # Respective function of return objects | |||
tmp3 <- data.frame( | |||
Oldid=paste0("Keko.", seq(length(funs)+1, length.out=length(rets))), | |||
type="substance", | |||
Item=gsub("]","",gsub("\\[","",gsub("#.*$","",gsub("return","",cod[rets])))), | |||
Relation="is produced by", | |||
Object=tmp2$Item[retfun], | |||
URL="http://www.ymparisto.fi/keko", | |||
stringsAsFactors = FALSE | |||
) | |||
#tmp2 <- orbind( # Problematic because created duplicate nodes | |||
# tmp2, | |||
# data.frame( | |||
# Item = tmp2$Object, | |||
# type = "data", | |||
# stringsAsFactors = FALSE | |||
# ) | |||
#) | |||
out <- orbind(tmp2, tmp3) | |||
out <- splizzeria(out, c("Item","Object"), ",") | |||
out$label <- out$Item | |||
out <- ecd_create(out) | |||
out[[1]] <- out[[1]][!grepl("^Keko.",out[[1]]$label),] # Remove redundant nodes created in ecd_create. Why are they even here? | |||
gr2 <- create_graph( | |||
nodes_df = out$nodes_df, | |||
edges_df = out$edges_df | |||
) | |||
render_graph(gr2) | |||
export_graph(gr2, "Keko-laskurin näkemysverkko.svg") | |||
</rcode> |
Nykyinen versio 4. syyskuuta 2018 kello 08.33
Tämä sivu on ensyklopedia-artikkeli.
Sivutunniste: Op_fi5847 |
---|
Moderaattori:Jouni (katso kaikki)
Sivun edistymistä ei ole arvioitu. Arvostuksen määrää ei ole arvioitu (ks. peer review). |
Lisää dataa
|
Keko-laskuri on kaupunkien ja kuntien alueellisten ilmastopäästöjen laskemiseen Suomen ympäristökeskuksen, Aalto-yliopiston ja VTT:n yhteistyönä kehittämä laskentamalli. Sen kuvaus ja koodi on saatavissa osoitteesta http://www.ymparisto.fi/keko. Laskurin on koodannut Maija Mattinen-Yuryev vuonna 2015.