Ero sivun ”Ympäristöterveysindikaattori” versioiden välillä

Opasnet Suomista
Siirry navigaatioon Siirry hakuun
(→‎Syykaaviot: makegraphs)
Rivi 17: Rivi 17:
=== Näkemysverkot Shinyssa ===
=== Näkemysverkot Shinyssa ===


Tämä koodi piirtää näkemysverkkoja Shinylla. Aluksi valitaan aihepiiri, sen jälkeen askelien määrä verkossa aiheen mukaisista kiintopisteistä lähtien. Koodi vaatii paketit OpasnetUtils, DiagrammeR ja Shiny. {{argument|relat1=relevant comment|selftruth1=true|id=arg5167|type=|content=Uusi koodi, jossa shinyssa on jo kelvollinen käyttöliittymä.|sign=--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 29. heinäkuuta 2018 kello 20.05 (UTC)}}
Tämä koodi piirtää näkemysverkkoja Shinylla. Koodi lukee alkuperäiset nettisivut ja muodostaa siitä tarvittavan datan. Koodi on ajettava omalla koneella.
 
Shinyssa aluksi valitaan aihepiiri, sen jälkeen askelien määrä verkossa aiheen mukaisista kiintopisteistä lähtien. Koodi vaatii paketit OpasnetUtils, DiagrammeR ja Shiny. {{argument|relat1=relevant comment|selftruth1=true|id=arg5167|type=|content=Uusi koodi, jossa shinyssa on jo kelvollinen käyttöliittymä.|sign=--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 29. heinäkuuta 2018 kello 20.05 (UTC)}}


<rcode name="shiny" label="Piirrä graafi Shinylla (ajettava omalla koneella)">
<rcode name="shiny" label="Piirrä graafi Shinylla (ajettava omalla koneella)">
# Tämä on koodi Op_fi5810/shiny sivulla [[Ympäristöterveysindikaattori]]
# Tämä on koodi Op_fi5810/shiny sivulla [[Ympäristöterveysindikaattori]]
library(OpasnetUtils)
library(rvest)
objects.latest("Op_en3861",code_name="discograph") # [[Extended causal diagram]] discograph
#objects.latest("Op_en3861",code_name="odag") # [[Extended causal diagram]] scrape.assessment # Code must be run on own computer
##########################################################
### This is just a temporary copy of scrape.assessment function for technical reasons.
# This is code Op_en3861/odag on page [[Extended causal diagram]]


library(OpasnetUtils)
library(OpasnetUtils)
library(DiagrammeR)
library(shiny)


objects.latest("Op_fi5810",code_name="graphs")
#' @title Creates a unique URL based on wiki page id and object name. Used to create hyperlinks to the knowledge crystal pages.
#' @param page wiki_page_id: character vector format "Op_en7748"  
#' @param name name of the knowledge crystals: character vector


gr <- create_graph(
makeurl <- function(  
   nodes_df = graafilista$nodes_df,
   page,
   edges_df = graafilista$edges_df
  name
)
) {
  if(is.null(page)|is.null(name)) return(NA) else
    out <- paste0(
      c(
        en = "http://en.opasnet.org/w/index.php?curid=",
        fi = "http://fi.opasnet.org/fi/index.php?curid="
      )[substr(page, 4,5)], # is it en or fi?
      substr(page, 6,11), # id
      "#", gsub(" ", "_", name)
    )
   out <- ifelse(is.na(page)|is.na(name), NA, out)
  return(out)
}
 
#' @title Makes standard data.frame for insight diagram out of all ovariables, odecisions, and data.frames and their dependencies in the global environment.
#' @param assessment ovariable that contains other assessment objects as dependencies
#' @param objectives names of ovariables that are objectives in the model
#' @param excl.nodetypes make a column Subgraph that is TRUE for nodes included in a subgraph. This is based on node type selection. Default types NOT included are assessment and index.


if(FALSE) {
scrape.assessment <- function(
  assessment,
  objectives = character(),
  excl.nodetypes = c("assessment","index")
) {
  #  require(DiagrammeR)
  require(OpasnetUtils)
  nod <- data.frame()
  ova <- character()
  dec <- character()
  dat <- character()
  plo <- character()
  dep <- assessment@dependencies
  URLass <- assessment@meta$wiki_page_id
 
  #### Find all objects (decisions, ovariables, data.frames and graphs)
  for(i in dep$Name) {
    cl <- class(get(i))
    if("ovariable" %in% cl) ova <- c(ova, i)
    if("odecision" %in% cl) dec <- c(dec, i)
    if("data.frame" %in% cl) dat <- c(dat, i)
    if(any(c("ggplot","dgr_graph") %in% cl)) plo <- c(plo, i)
  }
 
  ###### Add all decisions and options
 
  for(i in dec) {
    deci <- get(i)@dectable
    if(nrow(deci)>0) {
      tst <- !duplicated(deci[c("Option","Decision")])
      nod <- rbind(
        nod,
        data.frame(
          Oldid = paste("Opt", match(i, dec), sep=""),
          type = "option",
          Item = as.character(deci$Option[tst]),
          label = as.character(deci$Option[tst]),
          Relation = "is option for",
          Object = as.character(deci$Decision[tst]),
          Description = if(is.null(deci$Description)) NA else
            as.character(deci$Description[tst]),
          URL = makeurl(URLass, deci$Option)[tst],
          stringsAsFactors = FALSE
        )
      )
     
      tst <- !duplicated(deci[c("Decision","Variable")])
      nod <- rbind(
        nod,
        data.frame(
          Oldid = paste("Dec", match(i, dec), sep=""),
          type = "decision",
          Item = as.character(deci$Decision[tst]),
          label = as.character(deci$Decision[tst]),
          Relation = "affects",
          Object = as.character(deci$Variable[tst]),
          Description = if(is.null(deci$Description)) NA else
            as.character(deci$Description[tst]),
          URL = makeurl(URLass, deci$Decision)[tst],
          stringsAsFactors = FALSE
        )
      )
    }
  }
    
    
   meta <- opasnet.csv( # Väärä koodaus jos ajetaan Windows-koneella.
   ####### Add all ovariables
    "3/3e/N%C3%A4kemysverkkojen_tietotauluja.zip",
    wiki="opasnet_fi",
    unzip="meta.csv",
    sep=",",row.names=NULL,header=TRUE,stringsAsFactors=FALSE,fileEncoding = "UTF-8"
  )
    
    
   conditions <- unique(meta$Id)
   for(i in ova) {
  #conditions <- "HNH2035"
    obj <- get(i)
  for(i in conditions) {
    nod <- rbind( # Add dependencies
    print(i)
      nod,
    gr <- deselect_edges(gr, get_selection(gr))
      data.frame(
     gr <- select_edges(gr, conditions = grepl(i, gr$edges_df$Oldid))
        Oldid = paste("Ova",match(i,ova),sep=""),
     if(!is.na(get_selection(gr))) print(render_graph(transform_to_subgraph_ws(gr)))
        type = "ovariable",
        Item = obj@name,
        label = obj@name,
        Relation = "is affected by",
        Object = if(nrow(obj@dependencies)==0) NA else as.character(obj@dependencies$Name),
        Description = if(is.null(obj@meta$Description)) NA else
          obj@meta$Description,
        URL = makeurl(obj@meta$wiki_page_id, obj@name),
        stringsAsFactors = FALSE
      )
    )
     tmp <- colnames(obj@output)[                          # Add indices
      obj@marginal &
        !grepl("Source$", colnames(obj@output)) &
        ! colnames(obj@output) %in% c(deci, "Iter")
      ]
     if(length(tmp)>0) {
      nod <- rbind(
        nod,
        data.frame(
          Oldid = paste0("Ova",match(i,ova),tmp),
          type = "index",
          Item = tmp,
          label = tmp,
          Relation = "is index for",
          Object = obj@name,
          Description = NA,
          URL = makeurl(URLass, tmp),
          stringsAsFactors = FALSE
        )
      )
    }
   }
   }
    
    
   ####################################
   ### Add graphs
    
    
   ## Preselect key nodes from a topic
   nod <- rbind(
  sel <- gr$nodes_df$id[grepl("HNH2035",gr$nodes_df$Oldid)]
    nod,
  gr <- deselect_nodes(gr, get_selection(gr))
    data.frame(
  gr <- select_nodes_by_id(gr,sel)
      Oldid = paste0("Plo", 1:length(plo)),
   render_graph(transform_to_subgraph_ws(gr))
      type = "graph",
      Item = plo,
      label = plo,
      Relation = "describes",
      Object = if(is.null(dep$Child)) NA else dep$Child[match(plo, dep$Name)],
      Description = NA,
      URL = NA,
      stringsAsFactors = FALSE
    )
   )
    
    
  # V(dag)$Size[V(dag)$name == i] <- nrow(obj@output)    # Size
  # vertex.size = log(V(dag)$Size)+2, # Vertex size is (non-linearly) relative to rows in output.
 
  ### Add data.frames
 
  nod <- rbind(
    nod,
    data.frame(
      Oldid = paste("Dat", 1:length(dat), sep=""),
      type = "data",
      Item = dat,
      label = dat,
      Relation = "is data for",
      Object = assessment@name,
      Description = NA,
      URL = NA,
      stringsAsFactors = FALSE
    )
  )
 
  nod$type[nod$Item %in% objectives] <- "objective"
  nod$type[nod$Item %in% assessment@name] <- "assessment"
  if(!is.null(dep$Page)) {
    tst <- is.na(nod$Description)
    nod$Description[tst] <- as.character(dep$Description[match(nod$Item, dep$Name)][tst])
    tst <- is.na(nod$URL)
    nod$URL[tst] <- makeurl(
      dep$Page[match(nod$Item[tst], dep$Name)],
      dep$Name[match(nod$Item[tst], dep$Name)]
    )
  }
  tst <- is.na(nod$Description)
  nod$Description[tst] <- nod$type[tst]
  nod$Subgraph <- !nod$type %in% excl.nodetypes | is.na(nod$type) 
  return(nod)
}
}
######################################### End of scrape.assessment
types <- opbase.data("Op_en3861", subset="Table types")
meta <- html_table(read_html("https://yhteistyotilat.fi/wiki08/x/1oGxAg"))[[3]]
savecsv <- FALSE
gr <- data.frame() # This is needed because goherr fetches an old version with gr for some reason.
insightTables <- list()
for(i in 1:nrow(meta)) {
  cat(i, meta$Ilmio[i],"\n")
  if(grepl("google.com", meta$URL[i])) out <- scrape.gsheet(meta$URL[i], meta$Alkurivi[i])
  else {
    if(meta$Tyyppi[i]=="keskustelu") {
      if(is.na(meta$Taulu[i])) j <- NULL else j <- as.numeric(meta$Taulu[i])
      out <- scrape.discussion(meta$URL[i], j)[[1]]
    } else {
      if(meta$Tyyppi[i] %in% c("arviointi","assessment")) {
        tmp <- strsplit(meta$URL[i], split="/")[[1]]
        objects.latest(tmp[1],tmp[2])
        dummy <- EvalOutput(get(tmp[3]))
        out <- scrape.assessment(get(tmp[3]))
        rm(dummy)
      } else {
        out <- scrape.webtable(meta$URL[i],meta$Taulu[i])
      }
    }
  }
  coln <- trimws(strsplit(as.character(types$`Column names`[types$Type==meta$Tyyppi[i]]),split=",")[[1]])
  if(colnames(out)[1]=="Obs") coln <- c("Obs",coln)
  colnames(out) <- coln
  meta$Ilmio <- gsub("[Öö]","o",gsub("[ÄÅäå]","a",meta$Ilmio))
  insightTables[[meta$Ilmio[i]]] <- out
  if(savecsv) {
    write.csv(
      out,
      paste0(meta$Ilmio[i],".csv"),
      quote=TRUE, row.names=FALSE, fileEncoding="UTF-8"
    )
  }
}
if(savecsv) {
  write.csv(meta, "meta.csv",fileEncoding = "UTF-8")
  # Zippaus ei jostain syystä toimi minun koneella
  # zip("~/Näkemysverkkojen tietotauluja.zip", paste0(c("meta",meta$Ilmio),".csv"))
}
insightTables$meta <- meta
############################################
## Use makegraphs to make graafilista from insightTables.
objects.latest("Op_fi5810",code_name="graphs") # [[Ympäristöterveysindikaattori]] makegraphs
graafilista <- makegraphs(verbose=FALSE)
############################################
### Create shiny server
# Tämä on koodi Op_fi5810/shiny sivulla [[Ympäristöterveysindikaattori]]
library(OpasnetUtils)
dummy <- EvalOutput(Ovariable( # Fetch graafilista if it does not exist already
  "dummy",
  dependencies = data.frame(
    Name = "graafilista",
    Ident = "Op_fi5810/graphs"
  ),
  formula = function(...) {
    require(DiagrammeR)
    require(shiny)
    return(data.frame(Result=1))
  }
))
gr <- create_graph(
  nodes_df = graafilista$nodes_df,
  edges_df = graafilista$edges_df
)


sel <- list(
sel <- list(
  `Politiikan avoimuus` = c(
    "Avoimuudesta on vakavaa haitta",
    "Ulkoinen uhka mahdollistaa sulkemisen",
    "Avoimuus estää päättämästä huolella",
    "Some pakottaa poliitikot jatkuvaan rooliin",
    "Avoimuuden rajoittaminen vähentäisi haittoja, mutta hyötyjä ehkä liikaakin",
    "Avoimuus haittaa politiikan laatua kytkeytyessään ykköstyypin ajatteluun",
    "Avoimuusjatkumolla länsimaiden"
  ),
   `Ympäristöterveys` = c(
   `Ympäristöterveys` = c(
     "melu",
     "melu",

Versio 6. elokuuta 2018 kello 10.53




Ympäristöterveysindikaattori on elinympäristön tiettyä ominaisuutta mittaava asia, joka kertoo ympäristön terveellisyydestä ihmiselle.

Kysymys

Mitkä ovat hyödyllisiä indikaattoreita Suomen ympäristöterveystilanteen seuraamiseksi ja parantamiseksi?

Vastaus

Ympäristötervyden keskeiset tekijät, toimenpiteet ja mittarit.

Nämä indikaattorit ovat olemassa tai suunnitteilla:

  • Pienhiukkaspitoisuuden väestöpainotettu vuosikeskiarvo (Yhteistyötilat)
  • Sisätilaongelmista koulussa raportoivat koululaiset
  • Vesivälitteisten epidemioiden lukumäärät ja sairastuneiden lukumäärät
  • Elintarvikevälitteisten epidemioiden lukumäärät ja sairastuneiden lukumäärät

Näkemysverkot Shinyssa

Tämä koodi piirtää näkemysverkkoja Shinylla. Koodi lukee alkuperäiset nettisivut ja muodostaa siitä tarvittavan datan. Koodi on ajettava omalla koneella.

Shinyssa aluksi valitaan aihepiiri, sen jälkeen askelien määrä verkossa aiheen mukaisista kiintopisteistä lähtien. Koodi vaatii paketit OpasnetUtils, DiagrammeR ja Shiny. arg5167: . Uusi koodi, jossa shinyssa on jo kelvollinen käyttöliittymä. --Jouni Tuomisto (keskustelu) 29. heinäkuuta 2018 kello 20.05 (UTC) (type: ; paradigms: science: relevant comment)

+ Näytä koodi

Perustelut

Data

Näkemysverkkojen tietotauluja

Data on muodostettu koodilla:

+ Näytä koodi

Graafilista 4.8.2018 [1]

+ Näytä koodi

Työlista

Ajankohtaisia töitä tärkeysjärjestyksessä

  • Lukekaa vastine Homströmille ja kommentoikaa a) tekstin selkeyttä ja b) sisältöä. Koetetaan saada juttu lähtemään sunnuntaina.
    • Kirjoittakaa eri keskustelijoiden argumentit päätöksenteon avoimuuteen liittyen saman sivun alkuun.
  • Indikaattorin ja ilmiön välinen suhde on "kuvaa" (käänteisrelaatio "kuvautuu") Taulukoista löytyy tämmöisessä tilanteessa relaatiota "omistaa osan", ja nämä pitäisi vaihtaa oikeaan relaatioon.
  • HNH2035-ohjelman (ks alla) lopussa on listattu organisaatioiden pitkät nimet. Nämä pitäisi täydentää taulukkoon toimijat sivulla Hiilineutraali Helsinki 2035#Data. Nykyään taulukko sisältää erilaisia nimiversioita samasta organisaatiosta, mutta ne voi poistaa, koska ne korjataan alkuperäiseen googlesheetiin. arg5114: . Tehty. Toimijoista jotka olivat yhdistetty kauttaviivalla (esim. Kanslia/Aluerakentaminen) oletin jälkimmäisen kuuluvan ensimmäiseen, ja liitin ne toisiinsa relaatiolla "on osana". --Pieta Tuomisto (keskustelu) 29. heinäkuuta 2018 kello 10.10 (UTC) (type: ; paradigms: science: relevant comment)
  • Asentakaa koneillenne R, Rstudio ja paketit OpasnetUtils, rvest, ggplot2, DiagrammeR ja Shiny. Sen jälkeen kuvien piirtämisen pitäisi onnistua ajamalla omalla koneella koodi kohdassa #Vastaus.
  • Ilmasto-ohjelman toimenpiteitä pitää alkaa liittämään niiden valmistelemiin päätöksiin, niistä koituviin kustannuksiin/investointeihin tai muihin yleisempiin ilmiöihin. Näistä päätöksistä, kustannuksista ja ilmiöistä pitää siis tehdä omat olionsa. Oliot listataan Goherr-kaaviot-taulukon Ruuhkamaksu-sheetille.
    • Uudet relaatiot 'valmistelee/prepares' ja 'kustantaa/pays'. Käänteisrelaatiot (inverse) ovat 'valmistelijana/prepared by' ja 'maksajana/paid by'. Nämä ovat toiminnallisia relaatioita (operational link).
    • Uusi substanssiolio 'kustannus/expense'. Tavanomainen kustannus substanssityypin olio (tummanvihreän värinen ympyrä) mutta lisäksi on 'kustannustavoite/expense objective' joka on yhdistelmä kaikista kustannuksista ja jota pyritään päätöksenteossa minimoimaan. Kustannustavoite on tyyppiä objective. ----#: . Näiden kuvaaminen oikeisiin taulukoihin tuli Pietalle tehtäväksi. --Jouni Tuomisto (keskustelu) 25. heinäkuuta 2018 kello 07.17 (UTC) (type: truth; paradigms: science: comment) ----#: . Uudet relaatiot liitetty op_en:Structure of shared understanding sivulla olevaan taulukkoon. --Pieta Tuomisto(keskustelu) 27. heinäkuuta 2018 kello 09.30 (UTC) (type: truth; paradigms: science: comment)
    • Uusi relaatio 'omistaa perustelun/has rationale', käänteisrelaationa 'perustelee/is rationale for'. Nämä ovat toiminnallisia relaatioita (operational link).
  • Luo uusia solmuja ja linkkejä, jotka kytkevät yhteen Helsingin ilmasto-ohjelman ja a) ruuhkamaksukeskustelua, b) Sitran 100 ilmastotekoa, tai c) ympäristöterveysindikaattoreita. Myös muita kaavioita voi yhdistellä jos löytyy kytkentöjä. Kaikki aihepiirit ja linkit taulukoihin on lueteltu Yhteistyötiloissa.
  • Katso sivun op_en:Congestion charge keskusteluja ja täydennä niihin eri paradigman mukaisia relaatioita.arg6137: . Tehty. Kaikki argumentit on myös vaihdettu uuden templaatin mukaisiksi ja korjattu niiden totuuksia ja relevansseja. --Pieta Tuomisto (keskustelu) 29. heinäkuuta 2018 kello 12.09 (UTC) (type: ; paradigms: science: relevant comment) Käytettävät paradigmat:
    • science: templaatissa mainittu relaatio on science-paradigman mukainen. Perussääntö: argumentti on epäpätevä, jos siinä ei ole viittausta taustatietoon (havaintoihin) tai jos sitä vastaan hyökätään pätevällä argumentilla.
    • unattackedstand: Perussääntö: argumentti on epäpätevä, jos sitä vastaan hyökätään pätevällä argumentilla.
    • personaltine: Perussääntö: argumentti on epäpätevä, jos sen on esittänyt Tine Bizjak tai Tamara Gajst tai jos sitä vastaan hyökätään pätevällä argumentilla.
  • Tutustu uuteen kuvaukseen Helsingin ilmastopolitiikasta:
  • Tutustu sanastoon sivulla op_en:Structure of shared understanding ja kommentoi kummallisuuksia ja epäselvyyksiä.
  • Tutustu ympäristöterveyden indikaattoreihin sivulla Ympäristöterveys
  • Käytä uutta argument-templaattia toimintonapeista, kun haluat kommentoida sivun sisältöä Opasnetissä. ←--#: . Huom! Ohje muuttunut. --Jouni Tuomisto (keskustelu) 24. heinäkuuta 2018 kello 04.47 (UTC) (type: truth; paradigms: science: defence)

Jounin työt

  • Ääkköset eivät toimi. Etsi vika ja korjaa. Johtunee graafin tallennusvaiheesta.
  • Name ei näy hoveratessa hiirellä, nimenomaan Goherr-taulukoissa. Lisää Item tooltipiin. ←--#: . Tehty. --Jouni Tuomisto (keskustelu) 25. heinäkuuta 2018 kello 07.17 (UTC) (type: truth; paradigms: science: defence)
  • Lisää argumenttinapppulat myös suomenkieliseen Opasnettiin. ←--#: . Tehty. --Jouni Tuomisto (keskustelu) 25. heinäkuuta 2018 kello 07.17 (UTC) (type: truth; paradigms: science: defence)

Tehdyt työt

  • Palkat maksettu 23.7.2018 asti.
  • Goherr
    • Täydennä Goherr-projektin käsin piirrettyjen kaavioiden tiedot Google-taulukkoon Goherr-kaaviot tässä hakemistossa. ←--#: . Tehty. --Jouni Tuomisto (keskustelu) 24. heinäkuuta 2018 kello 04.47 (UTC) (type: truth; paradigms: science: defence)
    • Ohjelma täyttää tyhjiä rivejä edellisillä samasta sarakkeesta, sillä Helsingin taulukossa teemarivi. Muodostuu ongelmaksi Goherreissa kun käsitellään oliota joka ei tee itse yhtään nuolta. ←--#: . Korjattu. --Jouni Tuomisto (keskustelu) 24. heinäkuuta 2018 kello 04.47 (UTC) (type: truth; paradigms: science: defence)
  • Ruuhkamaksu
    • Lisää kaikkiin sivun op_en:Talk:Congestion charge keskusteluihin argumenttien tunnisteet, jotka ovat muotoa keskustelunnimi.juoksevanumero eli esim. health.4. Keskustelut nimetään ylhäältä alas seuraavasti: airquality, health, choice, economy, mobility, unfair, tragedy, dynamic, inefficient, distribution. ←--#: . Tehty. --Jouni Tuomisto (keskustelu) 24. heinäkuuta 2018 kello 04.47 (UTC) (type: truth; paradigms: science: defence)
  • Ilmastonmuutos
    • Tee Google sheet, jonne listataan kaikki Sitran 100 fiksua tekoa siten, että sarakkeisiin tulevat. Mieti yhteisesti kattava teemalista ja käytä sitä yhdistämään Helsingin ja Sitran toimepiteitä. ←--#: . Tehty. --Jouni Tuomisto (keskustelu) 24. heinäkuuta 2018 kello 04.47 (UTC) (type: truth; paradigms: science: defence)
    • Nimi (arjen teon nimi)
    • Suuruus (onko vaikutus pieni, keskisuuri vai suuri), tämän voisi merkata descriptioniin
    • Aihepiiri (liittyykö teko asumiseen, matkustamiseen jne)
    • URL sivulle, jossa teko esitellään
  • Menetelmällisiä töitä
    • Tutustu kaavioiden muotoiluihin sivulla op_en:Extended causal diagram ja kommentoi kummallisuuksia ja epäselvyyksiä. Kaavioiden toteutus R-paketilla DiagrammeR nettisivu, dokumentaatio.
    • Kommentoi ideaa sivulla op_en:Template:Argument ja
      tägien käytöstä parametrien löytymiseksi sivulta. (Koskee Pietaa tai muitakin jos osaatte html:ää). ←--#: . Valmis. --Jouni Tuomisto (keskustelu) 24. heinäkuuta 2018 kello 04.47 (UTC) (type: truth; paradigms: science: defence)
    • Kommentoi paradigmaidean käytettävyyttä ja mielekkyyttä yleensä ja sen sovellettavuutta eri paradigmojen osalta erityisesti. ←--#: . Valmis. --Jouni Tuomisto (keskustelu) 24. heinäkuuta 2018 kello 04.47 (UTC) (type: truth; paradigms: science: defence)
  • Tutustu kuvaukseen ruuhkamaksuista (Decision analysis and risk management 2017 -kurssilla tehty) ⇤--#: . Ei kannata tutustua näihin vaan uudempiin sisältöihin. --Jouni Tuomisto (keskustelu) 25. heinäkuuta 2018 kello 07.17 (UTC) (type: truth; paradigms: science: attack)

Laskenta

Syykaaviot

  • Taulukko näkemysverkoiksi soveltuvista taulukoista Yhteistyötiloissa [4]
  • Ehdotus sosiaali- ja terveyspalveluiden uudeksi kansalliseksi mittaristoksi VN-TEAS 15.3.2017 [5]
  • Alueuudistus: tietojohtaminen [6]
  • KUVA-mittaristo 23.4.2018 [7]
  • Tietoikkuna [8]
  • Sotkanet [9]


+ Näytä koodi

Sisäilma kouluissa

Kouluterveyskysely tuottaa jotakin tietoa myös sisäilmasta, oppimisympäristöstä yleensä ja oppilaiden raportoimista yleisistä oireista. Katso lisätietoa näistä linkeistä:

+ Näytä koodi

Indikaattorien lataus Sotkanettiin

+ Näytä koodi

Sotearvioinnin koodi liittyen ympäristöterveyteen

+ Näytä koodi

Katso myös