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

Opasnet Suomista
Siirry navigaatioon Siirry hakuun
 
(94 välissä olevaa versiota 3 käyttäjän tekeminä ei näytetä)
Rivi 14: Rivi 14:
* Vesivälitteisten epidemioiden lukumäärät ja sairastuneiden lukumäärät
* Vesivälitteisten epidemioiden lukumäärät ja sairastuneiden lukumäärät
* Elintarvikevä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. {{argument|relat1=comment|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)">
# Tämä on koodi Op_fi5810/shiny sivulla [[Ympäristöterveysindikaattori]]
############### Create global variables at file global.R
library(OpasnetUtils)
library(rvest)
#### Variables for user inteface
sel <- opbase.data("Op_fi5810", subset="Seed nodes in shiny")[-1] # Alunperin taulukko "Seed nodes in shiny" sivulla [[Ympäristöterveysindikaattori]]
objtypes <- c("ovariable","index","value judgement","graph","toimija")
#### Fetch the data for insight diagram
meta <- html_table(read_html("https://yhteistyotilat.fi/wiki08/x/1oGxAg"))[[3]] # Aiemmin kolmostaulu sivulla https://yhteistyotilat.fi/wiki08/x/1oGxAg
colnames(meta) <- c("Topic","Id","Type","URL","Table","Firstrow","Description")
objects.latest("Op_en3861",code_name="makeInsightTables") # [[Extended causal diagram]] makeInsightTables
insightTables <- makeInsightTables(meta)
## Use makegraphs to make graafilista from insightTables.
objects.latest("Op_fi5810",code_name="makegraphs") # Aiemmin [[Ympäristöterveysindikaattori]] makegraphs
########### This paragraph contains temporary code for updated YmpT so that you don't need to run whole network
# out <- scrape.webtable(meta$URL[3],meta$Table[3])
# coln <- c("Luokka", "Asia", "Lyhenne", "Relaatio", "Kohde", "Kuvaus", "URL")
# if(colnames(out)[1]=="Obs") coln <- c("Obs",coln)
# colnames(out) <- coln
# #meta$Topic <- gsub("[Öö]","o",gsub("[ÄÅäå]","a",meta$Topic))
# insightTables$Ymparistoterveys <- out
graafilista <- makegraphs(verbose=FALSE) # graphTable aiemmin nimeltään graafilista
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
)
################ Create Shiny user interface at file ui.R
ui <- basicPage(
  sidebarLayout(
    sidebarPanel(
      selectInput("topic","Topic",unique(sel$Topic)),
      selectizeInput(
        "addnodes",
        "Add seed nodes",
        sort(gr$nodes_df$label),
        selected = NULL,
        multiple = TRUE,
        options = NULL
      ),
      checkboxGroupInput("ignoreobj", "Ignore these object types", objtypes),
      checkboxGroupInput("formatting", "Format graph", "Hide labels"),
      sliderInput("steps", "Number of steps:", 
                  min = 0, max = 5, value = 0)
    ),
    mainPanel(
      grVizOutput("plot1")
    )
  )
)
#### Create shiny server at file server.R
server <- function(input, output) {
  output$plot1 <- renderGrViz({
    nods <- c(
      match(sel$Node[sel$Topic==input$topic], gr$nodes_df$Oldid),
      match(input$addnodes, gr$nodes_df$label)
    )
    nods <- nods[!is.na(nods)]
    gr <- deselect_nodes(gr, get_selection(gr))
    gr <- select_nodes_by_id(gr, nods)
    if(input$steps>0) {
      for(i in 1:input$steps) {
        gr <- trav_both(gr,add_to_selection = TRUE)
      }
    }
    gr <- deselect_nodes(gr, (1:nrow(gr$nodes_df))[gr$nodes_df$type %in% input$ignoreobj])
    gr2 <- gr
    gr2$nodes_df$label <- gsub("(.{1,18})(\\s|$)", "\\1\n", gr2$nodes_df$label) # Cut labels to max 18 characters long on one line (except if a word is longer)
    # Alternative possibility is to use strwrap function from {base} or stri_wrap from stringi.
    if("Hide labels" %in% input$formatting) gr2$nodes_df$label <- ""
    grViz(generate_dot(transform_to_subgraph_ws(gr2)))
  })
}
shinyApp(ui, server)
</rcode>


== Perustelut ==
== Perustelut ==
Rivi 24: Rivi 139:
=== Data ===
=== Data ===


{{#l:Näkemysverkkojen tietotauluja.zip}}
* [https://docs.google.com/spreadsheets/d/1EZBqzTlm3cWOGlplhTUvazm45NJ3wBNuWjlhrRoJajA/edit Ympäristöterveysindikaattorit Google sheetillä]
* {{#l:Näkemysverkkojen tietotauluja.zip}}


Data on muodostettu koodilla:
Data on muodostettu koodilla:


<rcode label="Ajettava omalla koneella">
<rcode name="zipping" label="Ajettava omalla koneella">
# Tämä on koodi Op_fi5810/ sivulla [[Ympäristöterveysindikaattori]]
# Tämä on koodi Op_fi5810/zipping sivulla [[Ympäristöterveysindikaattori]]
library(OpasnetUtils)
library(OpasnetUtils)
library(rvest)
library(gsheet)
library(gsheet)
library(rvest)


objects.latest("Op_en3861",code_name="discograph") # [[Extended causal diagram]] discograph
#objects.latest("Op_en3861",code_name="odag") # [[Extended causal diagram]] discograph # Code must be run on own computer
types <- opbase.data("Op_en3861", subset="Table types")
types <- opbase.data("Op_en3861", subset="Table types")
meta <- html_table(read_html("https://yhteistyotilat.fi/wiki08/x/1oGxAg"))[[3]]
meta <- html_table(read_html("https://yhteistyotilat.fi/wiki08/x/1oGxAg"))[[3]]


for(i in 1:nrow(meta)) {
for(i in 1:nrow(meta)) {
  cat(i, meta$Ilmio[i],"\n")
   if(grepl("google.com", meta$URL[i])) {
   if(grepl("google.com", meta$URL[i])) {
     out <- gsheet2tbl(meta$URL[i])[-(1:(meta$Alkurivi[i]-2)) , ]
     out <- gsheet2tbl(meta$URL[i])
    if(meta$Alkurivi[i]>2) out <- out[-(1:(meta$Alkurivi[i]-2)) , ]
   } else {
   } else {
     out <- html_table(read_html(meta$URL[i]),fill=TRUE)[[meta$Taulu[i]]]
     if(meta$Tyyppi[i]=="keskustelu") {
      if(is.na(meta$Taulu[i])) j <- NULL else j <- as.numeric(meta$Taulu[i])
      out <- discograph(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 <- odag(get(tmp[3]))
        rm(dummy)
      } else {
      out <- html_table(read_html(meta$URL[i]),fill=TRUE)[[meta$Taulu[i]]]
      }
    }
   }
   }
   coln <- as.character(types$`Column names`[types$Type==meta$Tyyppi[i]])
   coln <- trimws(strsplit(as.character(types$`Column names`[types$Type==meta$Tyyppi[i]]),split=",")[[1]])
   if(colnames(out)[1]=="Obs") coln <- paste0("Obs,",out)
   if(colnames(out)[1]=="Obs") coln <- c("Obs",coln)
   colnames(out) <- trimws(strsplit(coln,split=",")[[1]])
   colnames(out) <- coln
   write.csv(
   write.csv(
     out,
     out,
     gsub("[Öö]","o",gsub("[ÄÅäå]","a",paste0(meta$Ilmio[i],".csv"))),
     gsub("[Öö]","o",gsub("[ÄÅäå]","a",paste0(meta$Ilmio[i],".csv"))),
     fileEncoding="UTF-8"
     quote=TRUE, row.names=FALSE, fileEncoding="UTF-8"
   )
   )
}
}
write.csv(meta, "meta.csv",fileEncoding = "UTF-8")
write.csv(meta, "meta.csv",fileEncoding = "UTF-8")
# Zippaus ei jostain syystä toimi minun koneella
# Zippaus ei jostain syystä toimi minun koneella
zip("Näkemysverkkojen tietotaulut.zip", paste0(c("meta",meta$Ilmio),".zip"))
# zip("Näkemysverkkojen tietotaulut.zip", paste0(c("meta",meta$Ilmio),".zip"))
</rcode>
 
Graafilista 4.8.2018 [http://fi.opasnet.org/fi-opwiki/index.php?title=Toiminnot:RTools&id=tiV6h43jGBYKK12Z]
<rcode label="Graafin sisältö">
# Tämä on koodi Op_fi5810/ sivulla [[Ympäristöterveysindikaattori]]
library(OpasnetUtils)
 
objects.latest("Op_fi5810",code_name="graphs")
oprint(graafilista$nodes_df, show_all=TRUE)
oprint(graafilista$edges_df, show_all=TRUE)
</rcode>
</rcode>


=== Työlista ===
=== Työlista ===


* Katso sivun [[:op_en:Congestion charge]] keskusteluja ja täydennä niihin eri paradigman mukaisia relaatioita. Käytettävät paradigmat:
'''Ajankohtaisia töitä tärkeysjärjestyksessä
* [https://ktstrat.dokku.teamy.fi/insight?indicator=142 Näkemysverkko] (jossa metsämittareita)
* Janne Hukkinen: miksi sääntelyä tarvitaan ilmastoasioissa
* Metsäteollisuuden puunkäyttö:
** Kannattaako sellunkeittoa lisätä, kun silloin käytetään nuorta ja ohutta puuta, joka on huono hiilinielu ja hiilivarasto?
** Ilmastohyötyjä, rikkaampi luonto ja metsänomistajille lisää rahaa – Metsäprofessori: avohakkuut voidaan lähes unohtaa menettämättä mitään
#uutisvahti
 
https://yle.fi/uutiset/3-10777521
** Riittääkö puuta kaikkiin teollisuuden tarpeisiin?
** Onko vaarana, että puuta hakataan liikaa ja vanhat metsät häviävät liikaa? Biodiversiteetti riippuu nimenomaan vanhoista metsistä.
** [https://statdb.luke.fi/PXWeb/pxweb/fi/LUKE/LUKE__04%20Metsa__02%20Rakenne%20ja%20tuotanto__08%20Teollisuuspuun%20hakkuut%20alueittain/03_Teollisuuspuun_hakkuut_v_koko_maa.px/table/tableViewLayout1/?rxid=cfbfd295-0d62-4da2-8d8c-8d732d5e1a70 Teollisuuspuun hakkuut]
** https://tietokayttoon.fi/julkaisu?pubid=31402 
**https://stat.luke.fi/puun-kokonaiskaytto
**https://smy.fi/forest-fi/graafit/metsavarat/ 
**http://www.metla.fi/ohjelma/vmi/vmi-moni.htm
** http://www.metla.fi/ohjelma/vmi/vmi-moni.htm 
** https://www.luke.fi/ruokaminimi/tekijat/
* ilmastoystävällinen ruokavalio
** https://tietokayttoon.fi/julkaisu?pubid=31402 
* Kuka päättää ilmastoveroista? Ovatko ne epäreiluja? Onko ihmisillä oikeus kuluttaa vai onko valtiolla oikeus rajoittaa?
** [https://yle.fi/uutiset/3-10697378 Luulitko tekeväsi ilmastovalintasi itse?] 
** [https://www.sitra.fi/tapahtumat/kestavan-kehityksen-verouudistus-selvityksen-julkistustilaisuus/ Kestävän kehityksen verotuksen julkistustilaisuus]
* Kivihiili ja biopolttoaineet: Ovatko biopolttoaineiden ilmastopäästöt jopa suuremmat kuin fossiilisilla? Riittääkö biopolttoaineita edes kaikille halukkaille?
** [https://yle.fi/uutiset/3-10766814 Kivihiilen poltto loppuu Helsingissä. Korvautuuko se biopolttoaineilla?]
 
'''Kesän 2018 töitä
* T2b-taulukot uusitaan sivulle [[:op_en:Open policy ontology]]
* Näkemysverkkojen muotoiluun liittyviä töitä:
** Solmujen reunojen vaalentaminen. Musta otetaan pois käytöstä.
** Sellaisen fontin etsiminen, jossa on joko valkoiset reunat tai valkoinen tekstin mustalla reunuksella.
** Toiminnallisuus, jolla voi zoomailla näkemysverkossa. Kaksi mahdollista ratkaisua:
*** Shinyssa säätö, jolla voi zoomata kuvaa isommaksi kuin käytettävissä oleva alue.
*** DiagrammeRiin dynaamisuus, jolla voidaan valita pois solmuja kaaviosta. Tämä kuitenkin edellyttää jotain ratkaisua, jossa käyttäjän klikkaus välittyy tiedoksi Diagrammerille.
** Näkemysverkkoihin legend. Tämä edellyttää, että perustetaan uusi taulukko, johon tulee jokaista oliotyyppiä yksi solmu, ja sen Kuvaukseen laitetaan tarvittavat selitykset. Voi aloittaa Gsheetiin.
* Numerointi ja nimeäiminen on ollut epäjohdonmukaista. Korjatkaa tämän ohjeen mukaisesti. {{argument|relat1=comment|id=arg5748|type=truth|content=Helsinki kytkennät -taulukko käyty läpi, tosin muutama epäselvyys oli.|sign=--[[Käyttäjä:Mikomiko|Pieta Tuomisto]] ([[Keskustelu käyttäjästä:Mikomiko|keskustelu]]) 21. elokuuta 2018 kello 16.58 (UTC)}}
** Taulujen nimeäminen: Aiemmin joka taululla oli oma muutaman merkin mittainen tunniste eli Id. Sitten luovuttiin taulukohtaisuudesta ja siirryttiin aihekohtaisiin tunnisteisiin. Tämän takia on nyt varmistettava, että esim. lukuisissa Goherr-tauluissa on jokaisessa oma juokseva numerointinsa eikä samoja numeroita käytetä, PAITSI tietenkin jos asia on sama eli:
** Saman solmun numeron pitäisi olla jokaisessa taulussa sama. Myös samassa taulussa toistuva asia saa aina saman vanhan numeron. Esim. Ruuhkamaksu-taulussa tämä on virheellisesti.
** Google-sheeteillä Ruuhkamaksu ja Helsinki kytkennät 2.0 ei ole taulun Id:tä ollenkaan. Tämä johtuu siitä, että tauluissa yhdistetään eri taulujen ja aiheiden asioita toisiinsa ja siksi eri riveillä voi olla asioita eri tauluista. Niinpä näihin kahteen tauluun on merkittävä myös taulun tunniste Obs-sarakkeeseen. Laitoin jo muutaman esimerkin valmiiksi. Huom1. Jos taulussa ei ole Obs- tai muuta numerosaraketta (kuten Sitra100), juokseva numerointi lisätään automaattisesti ja se alkaa ykkösestä ensimmäiseltä datariviltä. Huom2. Ne ilmiöt, jotka yhdistävät HNH2035- ja Sitra100-toimenpiteitä tai ruuhkamaksukeskustelua mutta eivät esiinny niissä suoraan, saavat tunnisteeksi "Ilmasto".
** Tähän saakka Sitran toimenpiteet eivät ole linkkautuneet oikein. Syitä on ainakin kaksi: edellä mainitut numeroinnin epäjohdonmukaisuudet ja toisaalta se, etteivät eri esiintymät ole täsmälleen samalla tavalla kirjoitettuja. Esim. isoissa alkukirjaimissa pitää olla tarkkana. Kielioppisääntöjen mukaan mennään eli sanat pienellä elleivät ne ole erisnimiä, mutta kokonaiset lauseet voi kirjoittaa isolla alkukirjaimella. Itemissä, Namessa ja labelissa ei kuitenkaan laiteta pistettä loppuun vaikka olisi lausekin. Sen sijaan Descriptionissa on suositeltavaa käyttää pisteitä lauseen lopussa. Joihinkin kirjoitusasuihin emme voi vaikuttaa, kuten HNH2035-toimenpiteisiin, joten niissä on mukauduttava Helsingin käytäntöihin.
* Lista kaikista taulukoista, joita käytetään näkemysverkkojen piirtämiseen: [https://yhteistyotilat.fi/wiki08/x/1oGxAg]
* Kirjoittakaa google docsiin kuvaus tähän astisesta työstä ja mitä siitä on opittu. Ladataan kokeilun paikkaan, kunhan saadaan ensimäminen versio valmiiksi. Koetetaan saada muokkausoikeudet koko tiimille. [htps://docs.google.com/document/d/1W-AcKL-4sFyiTqNlSy0tF7a3FFI0rItuMgUrlvFZDrA/edit]
* Katsokaa ja kommentoikaa ilmasto-ohjelman seuranta- ja vaikutusarviointityökalua. Sen avulla on tarkoitus seurata, miten toimenpiteet etenevät ja millaisia vaikutuksia niillä on tärkeisiin asioihin kuten ilmastopäästöihin. Linkkejä tähän arviointityöhön:
** Hakemisto, jossa olennaiset vaikutusarviointityökalun materiaalit ovat  [https://drive.google.com/drive/folders/11Vki4nqBoOe9P4HkNehQmUptoHobv9q1]
** Toimenpiteen seurantataulukko [https://docs.google.com/spreadsheets/d/1nCJwaFQ2PEcPhJ2jnfGJSj1JK36KczGObuLNxKBSFfw/edit#gid=0]
** Seurantatyökalun kuvaus (ei aivan ajan tasalla) [https://docs.google.com/document/d/1VKXVzs4YmwLKgnrTifV4XnCqX4ceJ-d5KBrb8S2-nxI/edit#heading=h.59an82rd17jh]
* 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 [https://docs.google.com/spreadsheets/d/1qX_nUpFhV99joP285xROA6k0E5tzuEySH4DT1RNpYHM/edit#gid=1985478904 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).
* 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 [https://yhteistyotilat.fi/wiki08/pages/viewpage.action?pageId=45187542#Ilmi%C3%B6ty%C3%B6nrajauksenpohdintaa-Yhteisettieto-oliot lueteltu Yhteistyötiloissa].
* Katso sivun [[:op_en:Congestion charge]] keskusteluja ja täydennä niihin eri paradigman mukaisia relaatioita.{{argument|relat1=comment|id=arg6137|type=|content=Tehty. Kaikki argumentit on myös vaihdettu uuden templaatin mukaisiksi ja korjattu niiden totuuksia ja relevansseja.|sign=--[[Käyttäjä:Mikomiko|Pieta Tuomisto]] ([[Keskustelu käyttäjästä:Mikomiko|keskustelu]]) 29. heinäkuuta 2018 kello 12.09 (UTC)}} 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.
** 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.
** 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.
** 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.  
* 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.
* Kommentoi ideaa sivulla [[:op_en:Template:Argument]] <span> ja <div> tägien käytöstä parametrien löytymiseksi sivulta. (Koskee Pietaa tai muitakin jos osaatte html:ää).
* Kommentoi paradigmaidean käytettävyyttä ja mielekkyyttä yleensä ja sen sovellettavuutta eri paradigmojen osalta erityisesti.
* Tee Google sheet, jonne listataan kaikki [https://www.sitra.fi/hankkeet/100-fiksua-arjen-tekoa/#100-fiksua-tekoa Sitran 100 fiksua tekoa] siten, että sarakkeisiin tulevat. Mieti yhteisesti kattava teemalista ja käytä sitä yhdistämään Helsingin ja Sitran toimepiteitä.
** Nimi (arjen teon nimi)
** Suuruus (onko vaikutus pieni, keskisuuri vai suuri)
** Aihepiiri (liittyykö teko asumiseen, matkustamiseen jne)
** URL sivulle, jossa teko esitellään
* Tutustu uuteen kuvaukseen Helsingin ilmastopolitiikasta:
* Tutustu uuteen kuvaukseen Helsingin ilmastopolitiikasta:
** Toimenpideohjelman virallinen dokumentti [https://www.hel.fi/static/liitteet/kaupunkiymparisto/julkaisut/julkaisut/HNH-2035-toimenpideohjelma.pdf] {{argument|relat1=comment|id=arg6137|type=|content=Uusi linkki.|sign=[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 24. heinäkuuta 2018 kello 04.47 (UTC)}}
** [[Hiilineutraali Helsinki 2035]] ohjelman sivu Opasnetissä
** [[Hiilineutraali Helsinki 2035]] ohjelman sivu Opasnetissä
** [ja kustannukset (tämä linkki lähetetään whatsappissa koska ei vielä julkinen) Kuvaus toimenpidetyökalusta] (luonnos)
** Kuvaus toimenpidetyökalusta] (luonnos) [https://docs.google.com/document/d/1VKXVzs4YmwLKgnrTifV4XnCqX4ceJ-d5KBrb8S2-nxI/edit#heading=h.59an82rd17jh]
** Esimerkkisivuja toimenpiteistä [https://docs.google.com/document/d/1RyHSBaIjBvEz-5fxS4TCXQfx5ARG_Ws34x6lV1bB7GU/edit# Toimenpide 1], [https://docs.google.com/document/d/1XBDOvh_rIgY8hF7VBITtLeImb9rPnXx4F-4d5u0LJCw/edit#heading=h.t4rc3yfldav6 Toimenpide 2]
*** Esimerkkisivuja toimenpiteistä [https://docs.google.com/document/d/1RyHSBaIjBvEz-5fxS4TCXQfx5ARG_Ws34x6lV1bB7GU/edit# Toimenpide 1], [https://docs.google.com/document/d/1XBDOvh_rIgY8hF7VBITtLeImb9rPnXx4F-4d5u0LJCw/edit#heading=h.t4rc3yfldav6 Toimenpide 2]
** [https://docs.google.com/spreadsheets/d/1ejh-esNcuTjhoPWWqN7rC80xFtKKXu2n7PIUCDSOR98/edit#gid=885669064 ilmasto-ohjelman toimepiteet] ja kustannukset (tämä linkki lähetetään whatsappissa koska ei vielä julkinen)
** [https://docs.google.com/spreadsheets/d/1ejh-esNcuTjhoPWWqN7rC80xFtKKXu2n7PIUCDSOR98/edit#gid=885669064 ilmasto-ohjelman toimepiteet] ja kustannukset (tämä linkki lähetetään whatsappissa koska ei vielä julkinen)
* Tutustu kuvaukseet ruuhkamaksuista (Decision analysis and risk management 2017 -kurssilla tehty)
** [[:op_en:Congestion charge]] pääsivu Opasnetissä. Kommentit ja kehitysideat tänne.
** [https://drive.google.com/drive/folders/0B5dY4ezoJ5FOWFdnT2NoS0tfa28 Google drive], jossa [https://docs.google.com/spreadsheets/d/10EuSt-YonlHQyNELCAftSiZ72jAsPKhw5q5MqQhbY10/edit#gid=0 gsheet olioista ja niiden relaatioista] ja [https://docs.google.com/drawings/d/18PJNYL91_xAgygDKuITptISnUFMWh3K5SUtxqn0w0y0/edit syykaavio aiemman keskustelun pohjalta].
* Tutustu sanastoon sivulla [[:op_en:Structure of shared understanding]] ja kommentoi kummallisuuksia ja epäselvyyksiä.
* Tutustu sanastoon sivulla [[:op_en:Structure of shared understanding]] ja kommentoi kummallisuuksia ja epäselvyyksiä.
* Tutustu kaavioiden muotoiluihin sivulla [[:op_en:Extended causal diagram]] ja kommentoi kummallisuuksia ja epäselvyyksiä. Kaavioiden toteutus R-paketilla DiagrammeR [http://rich-iannone.github.io/DiagrammeR/ nettisivu], [https://cran.r-project.org/web/packages/DiagrammeR/DiagrammeR.pdf dokumentaatio].
* Tutustu ympäristöterveyden indikaattoreihin sivulla [https://yhteistyotilat.fi/wiki08/x/w4W7Ag Ympäristöterveys]
* Tutustu ympäristöterveyden indikaattoreihin sivulla [https://yhteistyotilat.fi/wiki08/x/w4W7Ag Ympäristöterveys]
* Käytä näitä keskustelumuotoiluja kun haluat kommentoida sivun sisältöä Opasnetissä: {{comment|#|Huom! Joihinkin on lisätty lisäparametreja muita paradigmoja varten. Parametrien järjestys on ratkaiseva.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 9. heinäkuuta 2018 kello 11.00 (UTC)}}
* Käytä uutta argument-templaattia toimintonapeista, kun haluat kommentoida sivun sisältöä Opasnetissä. {{argument|id=arg8375|relat1=defense|content=Huom! Ohje muuttunut.|sign=--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 24. heinäkuuta 2018 kello 04.47 (UTC)}}
** Kommentti: <pre>{{comment|# (tarvittaessa argumentin numero)|Kommentoiva argumentti.|--~~~~|unattackedstand|comment|invalid|personaltine|attack}}</pre>
 
** Puolusta: <pre>{{defend|# (tarvittaessa argumentin numero)|Puolustava argumentti.|--~~~~|personaltine|defend|invalid}}</pre>
'''Jounin työt
** Hyökkää (vastusta): <pre>{{attack|# (tarvittaessa argumentin numero)|Hyökkäävä argumentti.|--~~~~}}</pre>


==== Syykaaviot ====
* Labeleiden rivittäminen kuntoon: järkevän mittaisia eikä joka sanavälistä poikki. (Jouni)
* Ääkköset eivät toimi. Etsi vika ja korjaa. Johtunee graafin tallennusvaiheesta.


* Ehdotus sosiaali- ja terveyspalveluiden uudeksi kansalliseksi mittaristoksi VN-TEAS 15.3.2017 http://tietokayttoon.fi/julkaisu?pubid=18701
'''Tehdyt työt
* http://alueuudistus.fi/tietojohtaminen
* KUVA-mittaristo 23.4.2018 http://alueuudistus.fi/documents/1477425/4439893/Sote-KUVA-mittaristoluonnos+23.4.+2018.xlsx/3ffc2fce-04c9-4c96-a21d-fb217310dbd5
* Kuva-indikaattorit drivessä https://docs.google.com/spreadsheets/d/1OJntWc-ivrCDi9RkCAyWdggA3VCm-BM98rp6H5u3diI/edit#gid=0
* Hyte-indikaattorit drivessä https://docs.google.com/spreadsheets/d/1mVlLcvsDFHKivD8rSDyn3ijfvoUAjxnXOGb-nujLDak/edit#gid=0
* Tietoikkuna https://proto.thl.fi/tietoikkuna/#/chart?indicatorId=3775&regionId=953
* Sotkanet https://www.sotkanet.fi/sotkanet/fi/metadata/indicators/3775
* Kouluterveyskysely https://sampo.thl.fi/pivot/prod/fi/ktk/ktk1/fact_ktk_ktk1/199464


* Palkat maksettu 12.5.2019 mennessä tehtyjen tuntien perusteella.
** 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. {{argument|id=arg7263|content=Näiden kuvaaminen oikeisiin taulukoihin tuli Pietalle tehtäväksi.|sign=--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 25. heinäkuuta 2018 kello 07.17 (UTC)}} {{argument|id=arg7263|content=Uudet relaatiot liitetty [[:op_en:Structure of shared understanding]] sivulla olevaan taulukkoon.|sign=--[[Käyttäjä:Mikomiko|Pieta Tuomisto]]([[Keskustelu käyttäjästä:Mikomiko|keskustelu]]) 27. heinäkuuta 2018 kello 09.30 (UTC)}}
** Uusi relaatio 'omistaa perustelun/has rationale', käänteisrelaationa 'perustelee/is rationale for'. Nämä ovat toiminnallisia relaatioita (operational link).
* Lukekaa [[Keskustelu:Jaettu ymmärrys#Holmströmille avoimuuden ongelmista| 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. {{argument|relat1=comment|id=arg5114|type=|content=Tehty. Toimijoista jotka olivat yhdistetty kauttaviivalla (esim. Kanslia/Aluerakentaminen) oletin jälkimmäisen kuuluvan ensimmäiseen, ja liitin ne toisiinsa relaatiolla "on osana".|sign=--[[Käyttäjä:Mikomiko|Pieta Tuomisto]] ([[Keskustelu käyttäjästä:Mikomiko|keskustelu]]) 29. heinäkuuta 2018 kello 10.10 (UTC)}}
* 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]].
* Goherr
** Täydennä Goherr-projektin [https://drive.google.com/drive/folders/0B5dY4ezoJ5FOXzRoOE81UEh0ckU käsin piirrettyjen kaavioiden] tiedot Google-taulukkoon Goherr-kaaviot [https://drive.google.com/drive/folders/1ZlchbmZm5MeHBCRIqkSRKhpUFNIYhts2 tässä hakemistossa]. {{argument|id=arg7263|relat1=defense|content=Tehty.|sign=[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 24. heinäkuuta 2018 kello 04.47 (UTC)}}
** 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. {{argument|id=arg7263|relat1=defense|content=Korjattu.|sign=[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 24. heinäkuuta 2018 kello 04.47 (UTC)}}
* 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. {{argument|id=arg7263|relat1=defense|content=Tehty.|sign=[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 24. heinäkuuta 2018 kello 04.47 (UTC)}}
* Ilmastonmuutos
** Tee Google sheet, jonne listataan kaikki [https://www.sitra.fi/hankkeet/100-fiksua-arjen-tekoa/#100-fiksua-tekoa Sitran 100 fiksua tekoa] siten, että sarakkeisiin tulevat. Mieti yhteisesti kattava teemalista ja käytä sitä yhdistämään Helsingin ja Sitran toimepiteitä. {{argument|id=arg7263|relat1=defense|content=Tehty.|sign=[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 24. heinäkuuta 2018 kello 04.47 (UTC)}}
** 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 [http://rich-iannone.github.io/DiagrammeR/ nettisivu], [https://cran.r-project.org/web/packages/DiagrammeR/DiagrammeR.pdf dokumentaatio].
** Kommentoi ideaa sivulla [[:op_en:Template:Argument]] <span> ja <div> tägien käytöstä parametrien löytymiseksi sivulta. (Koskee Pietaa tai muitakin jos osaatte html:ää). {{argument|id=arg7263|relat1=defense|content=Valmis.|sign=[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 24. heinäkuuta 2018 kello 04.47 (UTC)}}
** Kommentoi paradigmaidean käytettävyyttä ja mielekkyyttä yleensä ja sen sovellettavuutta eri paradigmojen osalta erityisesti. {{argument|id=arg7263|relat1=defense|content=Valmis.|sign=[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 24. heinäkuuta 2018 kello 04.47 (UTC)}}
* Tutustu kuvaukseen ruuhkamaksuista (Decision analysis and risk management 2017 -kurssilla tehty) {{argument|id=arg7263|relat1=attack|content=Ei kannata tutustua näihin vaan uudempiin sisältöihin.|sign=[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 25. heinäkuuta 2018 kello 07.17 (UTC)}}
** [[:op_en:Congestion charge]] pääsivu Opasnetissä. Kommentit ja kehitysideat tänne.
** [https://drive.google.com/drive/folders/0B5dY4ezoJ5FOWFdnT2NoS0tfa28 Google drive], jossa [https://docs.google.com/spreadsheets/d/10EuSt-YonlHQyNELCAftSiZ72jAsPKhw5q5MqQhbY10/edit#gid=0 gsheet olioista ja niiden relaatioista] ja [https://docs.google.com/drawings/d/18PJNYL91_xAgygDKuITptISnUFMWh3K5SUtxqn0w0y0/edit syykaavio aiemman keskustelun pohjalta].


* Malliajo 10.7.2018 [http://fi.opasnet.org/fi-opwiki/index.php?title=Toiminnot:RTools&id=hssS6hPED3pQb1tE] perustuen dataan tiedostossa {{#l:Näkemysverkkojen tietotauluja.zip}}
=== Laskenta ===


<rcode label="Analysoi Opasnet-keskustelu">
==== Syykaaviot ====
# Tämä on koodi Op_fi5810/ sivulla [[Ympäristöterveysindikaattori]]
library(OpasnetUtils)
library(rvest)


objects.latest("Op_en3861",code_name="ecd_create") # [[Extended causal diagram]] ecd_create, fillprev, splizzeria
* Taulukko näkemysverkoiksi soveltuvista taulukoista Yhteistyötiloissa [https://yhteistyotilat.fi/wiki08/pages/viewpage.action?pageId=45187542#Ilmi%C3%B6ty%C3%B6nrajauksenpohdintaa-Yhteisettieto-oliot]
* Ehdotus sosiaali- ja terveyspalveluiden uudeksi kansalliseksi mittaristoksi VN-TEAS 15.3.2017 [http://tietokayttoon.fi/julkaisu?pubid=18701]
* Alueuudistus: tietojohtaminen [http://alueuudistus.fi/tietojohtaminen]
* KUVA-mittaristo 23.4.2018 [http://alueuudistus.fi/documents/1477425/4439893/Sote-KUVA-mittaristoluonnos+23.4.+2018.xlsx/3ffc2fce-04c9-4c96-a21d-fb217310dbd5]
* Tietoikkuna [https://proto.thl.fi/tietoikkuna/#/chart?indicatorId=3775&regionId=953]
* Sotkanet [https://www.sotkanet.fi/sotkanet/fi/metadata/indicators/3775]


page <- "http://en.opasnet.org/w/Discussion"
dat <- read_html(page)
disc <- html_nodes(dat, css="div.discussion")
out <- data.frame()
i <- 2
#for(i in 1:length(disc)) {
  stat <- html_text(html_nodes(disc[[i]], css=".statements"), trim=TRUE)
  reso <- html_text(html_nodes(disc[[i]], css=".resolution"), trim=TRUE)
  resd <- html_text(html_nodes(disc[[i]], css=".resolved"), trim=TRUE)
  id <- html_attr(disc[[i]], "id")
  disc.id <- paste(id, c("statement","resolution"),sep=".")
 
  # This version would maintain the hierarchy but I don't know how to implement it full. It is done manually now.
  # .argumentation > dl > dd > .argument
 
  arg.id <- html_attr(html_nodes(disc[[i]], css=".argumentation .argument"), "id")
  arg.content <- html_text(html_nodes(disc[[i]], css=".argumentation .argument .content"))
  arg.sign <- html_text(html_nodes(disc[[i]], css=".argumentation .argument .sign a:first-of-type"))
  arg.relat1 <- html_text(html_nodes(disc[[i]], css=".argumentation .argument .relat1"))
  arg.relev1 <- html_attr(html_nodes(disc[[i]], css=".argumentation .argument .relat1"), "color")
  arg.truth1 <- html_attr(html_nodes(disc[[i]], css=".argumentation .argument .truth1"), "color")
  arg.parad1 <- html_text(html_nodes(disc[[i]], css=".argumentation .argument .parad1"))
  arg.parent <- c(rep(disc.id[1], 4),"4",disc.id[1],"11:24")
 
  arg.relat1 <- c("attack","defense","comment")[match(substr(arg.relat1,1,3), c("\U21E4--","\U2190--","---"))]
  arg.truth1 <- ifelse(arg.truth1=="gray","false","true")
  arg.relev1 <- ifelse(arg.relev1=="gray","irrelevant","relevant")
 
  out <- data.frame(  ### Arguments
    Oldid = paste(id,arg.id,sep="."),
    type = paste(arg.truth1,"argument"),
    Item = arg.id,
    label = substr(arg.content, 1, 30),
    Relation = paste(arg.relev1, arg.relat1),
    Object = arg.parent,
    Description = arg.content,
    URL = paste(page, arg.id,sep="#"),
    stringsAsFactors=FALSE
  )
  out <- orbind(
    out,
    data.frame(
      Oldid = disc.id,
      type = c("statement","resolution"),
      Item = disc.id,
      label = substr(c(stat,reso),1, 30),
      Relation = c("produces",""),
      Object = c(disc.id[2],""),
      Description = c(stat, reso),
      URL = paste(page, id, sep="#"),
      stringsAsFactors=FALSE
    )
  )


# }
* Malliajo 10.7.2018 [http://fi.opasnet.org/fi-opwiki/index.php?title=Toiminnot:RTools&id=hssS6hPED3pQb1tE] perustuen dataan tiedostossa {{#l:Näkemysverkkojen tietotauluja.zip}}
* Malliajo 17.7.2018 [http://fi.opasnet.org/fi-opwiki/index.php?title=Toiminnot:RTools&id=8EdefyYKnMKb5Pt1]
* Malliajo 24.7.2018 [http://fi.opasnet.org/fi-opwiki/index.php?title=Toiminnot:RTools&id=ZjPIJ5gJv6AyDGnH]
* Malliajo 29.7.2018 [http://fi.opasnet.org/fi-opwiki/index.php?title=Toiminnot:RTools&id=BRYGKNEpoXYqqCcJ]
* Malliajo 4.8.2018 [http://fi.opasnet.org/fi-opwiki/index.php?title=Toiminnot:RTools&id=Ry8KUGVzaxoh4xdG]


gr <- ecd_create(out)
<rcode name="graphs" label="Luo graafilista zipatusta datasta" embed=1>
render_graph(gr)
# This is code Op_fi5810/graphs on page [[Ympätistöterveysindikaattori]]
</rcode>


<rcode name="graphs" label="Tallenna graafiolio gr" graphics=0>
# Tämä on koodi Op_fi5810/graphs sivulla [[Ympäristöterveysindikaattori]]
library(OpasnetUtils)
library(OpasnetUtils)


objects.latest("Op_en3861",code_name="ecd_create") # [[Extended causal diagram]] ecd_create, fillprev, splizzeria
############################################
 
## Use makegraphs to make graafilista from insightTables.
sotkanet <- "http://www.sotkanet.fi/sotkanet/fi/metadata/indicators/"
kouluterveyskysely <- "https://sampo.thl.fi/pivot/prod/fi/ktk/ktk1/summary_perustulokset?alue_0=87869&mittarit_0=200138&mittarit_1=187196&mittarit_2=199373&vuosi_2017_0=v2017"
kouluterveyskysely <- "https://sampo.thl.fi/pivot/prod/fi/ktk/ktk1/fact_ktk_ktk1?row=measure-200346.199405.199681.199445.199678.199701.199935.200120.199469.199308.199973.200279.200316.199604.&column=time-199465&column=stage_of_stady-161293.161123.161219.#" # Keskeiset ympäristöterveyden oire- ja olosuhdeindikaattorit eri kouluasteilla
tietoikkuna <- "https://proto.thl.fi/tietoikkuna/#/chart?indicatorId="
# Sotkanet.ID = tietoikkuna.indicatorID
 
meta <- opasnet.csv(
  "3/3e/N%C3%A4kemysverkkojen_tietotauluja.zip",
  wiki="opasnet_fi",
  unzip="meta.csv",
  sep=",",header=TRUE,stringsAsFactors=FALSE,fileEncoding="UTF-8"
)
oprint(meta)
 
out <- list()
for(i in 1:nrow(meta)) {
  temp  <- opasnet.csv(
    "3/3e/N%C3%A4kemysverkkojen_tietotauluja.zip",
    wiki="opasnet_fi",
    unzip=gsub("[Öö\xf6]","o",gsub("[ÄÅäå\xe4]","a",paste0(meta$Ilmio[i],".csv"))),
    sep=",",header=TRUE,stringsAsFactors=FALSE,fileEncoding="UTF-8"
  )
  # Convert structural names to English
  colnames(temp)[colnames(temp)=="Lyhenne"] <- "label" # Columns defined by DiagrammeR start with small letter
  colnames(temp)[colnames(temp)=="Luokka"] <- "type"
  colnames(temp)[colnames(temp)%in% c("Toimenpide","Nimi","Asia")] <- "Item"
  colnames(temp)[colnames(temp) %in% c("Predikaatti","Relaatio")] <- "Relation"
  colnames(temp)[colnames(temp) %in% c("Objekti","Kohde")] <- "Object"
  colnames(temp)[colnames(temp) %in% c("Kuvaus","Lisatietoa","Kommentteja")] <- "Description"
  colnames(temp)[colnames(temp) %in% c("Aihe1","Tehtavakokonaisuus")] <- "Teema"
  colnames(temp)[colnames(temp) %in% c("Tunnistenumero","Obs")] <- "Nro"
  if(!"label" %in% colnames(temp)) temp$label <- NA
  temp$label <- ifelse(is.na(temp$label), substr(temp$Item,1,50), temp$label)
  temp$Oldid = paste(meta$Id[i],{if("Nro" %in% colnames(temp)) temp$Nro else 1:nrow(temp)},sep=".")
  out[[i]] <- temp
}
# Table-specific adjustments
out[[5]] <- splizzeria(out[[5]], cols = c("Ulottuvuus","Osiotyyppi","JHS.luokka"), split = "/") # HYTE
out[[6]] <- splizzeria(out[[6]], cols = c("JHS.luokka"), split = ",") # LAPE
# temp$Object <- tolower(temp$Object) # Tämä ei haluta tehdä kaikille. mutta mille?
 
# Aikuisten lihavuuden säätöjä
#for(i in 1:4) out[[7]][[i]] <- tolower(out[[7]][[i]])
 
# HYTE JA LAPE ELI SOTEARV
 
d3 <- data.frame()
for(i in (1:nrow(meta))[meta$Tyyppi=="sotearv"]) {
  if(nrow(d3)==0) d3 <- out[[i]] else d3 <- orbind(d3, out[[i]])
}
 
d3 <- orbind(orbind(orbind(
  data.frame(
    Oldid = d3$Oldid,
    type = paste(d3$Tehtavakokonaisuus, "indikaattori",sep="-"),
    Item = d3$Item,
    Relation = "ulottuvuus",
    Object = d3$Ulottuvuus,
    URL = ifelse(
      is.na(as.numeric(substr(d3$Sotkanet.id,1,4))),
      NA,
      paste0(sotkanet, substr(d3$Sotkanet.id,1,4))
    ),
    Description = d3$Ryhman.perustelut,
    label = ifelse(is.na(d3$label),substr(d3$Item,1,30),d3$label),
    stringsAsFactors = FALSE
  ),
  data.frame(
    Item = d3$Item,
    Relation = "osiotyyppi",
    Object = d3$Osiotyyppi,
    stringsAsFactors = FALSE
  )),
  data.frame(
    Item = d3$Item,
    Relation = "discussed in",
    Object = d3$Tietolahde,
    stringsAsFactors = FALSE
  )),
  data.frame(
    Item = d3$Item,
    Relation = "JHS-luokka",
    Object = d3$JHS.luokka,
    stringsAsFactors = FALSE
  )
)
 
## Oletusmuotoiset taulut (Ympäristöterveys, Lasten ja aikuisten lihavuus, Yleiset ja erityiset luokittelut)
 
d2 <- data.frame()
for(i in (1:nrow(meta))[meta$Tyyppi=="oletus"]) {
  if(nrow(d2)==0) d2 <- out[[i]] else d2 <- orbind(d2, out[[i]])
}
 
d2 <- fillprev(d2, cols=c("type","Relation","Object"))
d2 <- splizzeria(d2, cols="Object", split=",")
d2$URL <- ifelse(
  is.na(as.numeric(substr(d2$URL,1,4))),
  NA,
  paste0(sotkanet, substr(d2$URL,1,4))
)
 
####### HNH2035-toimenpiteet
 
# Tämä koodi on tilapäinen ja pitäisi korjata alkuperäiseen taulukkoon. Sano Sonjalle.
repl <- array(c(
  "S&C säätiö","Smart&Clean",
  "yhteistyössä","",
  "yhteistyö","",
  "Yhteistyö:","",
  "ja","",
  "HSY Ilmastoinfo","HSY/Ilmastoinfo",
  "HSY:n Ilmastoinfo","HSY/Ilmastoinfo",
  "Kanslia ELO/Hanki","Kanslia/ELO",
  "GEO","Geo",
  "kasko","Kasko",
  "sote","Sote",
  "palvelukeskus","Palvelukeskus",
  "ympa","Ympa",
  "RYA","Rya",
  "PALU","Palu",
  "YMPA","Ympa",
  "MAKA","Maka",
  "KYMP","Kymp",
  "Smart&Clean -säätiö","Smart&Clean",
  "Smart & Clean -säätiö","Smart&Clean",
  "virium","Virium",
  "nuorisopalvelur","Nuorisopalvelut",
  "kanslia","Kanslia",
  "Kaupunginkanslia","Kanslia",
  "kaupunginkanslia","Kanslia",
  "(HSL), (HSY)",",",
  "ympa","Ympa",
  "Palu/Ympa","Ympa"
),
dim=c(2,28)
)
 
d1 <- out[[8]]
for(i in 1:ncol(repl)) {
  d1$Vastuu <- gsub(repl[1,i],repl[2,i],d1$Vastuu)
}
d1 <- fillprev(d1,"Teema")
d1 <- d1[!is.na(d1$Nro) , ]
 
# d1 <- splizzeria(d1, cols="Kustannukset", split="/") # Not used because doubles relations
 
temp <- splizzeria(d1, cols="Vastuu", split=",")
 
d1 <- orbind(
  cbind(
    Oldid=paste0("HNH2035/tp.", d1$Nro),
    type="HNH2035-toimenpide",
    Item=d1$Item,
    label=substr(d1$Item,1,30),
    Relation="teema",
    Object=d1$Teema,
    Description = paste(d1$Aikajanne, d1$Vaativuus, d1$Kustannukset, sep=". ")
  ),
  data.frame(
    Item=temp$Item,
    Relation="vastuullisena",
    Object=temp$Vastuu
  )
)
 
########################### Create ecd_graph
 
d <- orbind(orbind(d3, d2), d1)
d$label <- ifelse(is.na(d$label), substr(d$Item,1,30), d$label)
 
gr <- ecd_create(d)


gr <- deselect_edges(gr, get_selection(gr))
objects.latest("Op_fi5810",code_name="makegraphs") # [[Ympäristöterveysindikaattori]] makegraphs
gr <- select_edges(gr, conditions = grepl("Hyte", gr$edges_df$Oldid))


#gr <- deselect_nodes(gr, get_selection(gr))
graafilista <- makegraphs(verbose=FALSE)
#gr <- select_nodes(gr, conditions = grepl("HNH2035", gr$nodes_df$Oldid))


#gr <- select_nodes_in_neighborhood(
objects.store(graafilista)
#  gr,
cat("Graafilista stored.\n")
#  node=gr$nodes_df$id[gr$nodes_df$label=="koulutervhuolto"][1],
#  distance=2
#)
#get_selection(gr)
objects.store(gr)
cat("dgr_graph gr stored.\n")
#render_graph(gr)
render_graph(transform_to_subgraph_ws(gr))
#export_graph(transform_to_subgraph_ws(gr), "test7.svg")
#export_graph(gr, "test7.pdf")
</rcode>
</rcode>


Rivi 373: Rivi 340:
* [https://thl.fi/fi/tutkimus-ja-kehittaminen/tutkimukset-ja-hankkeet/kouluterveyskysely/kyselyn-toteuttaminen/kyselylomakkeet Kyselylomakkeet]
* [https://thl.fi/fi/tutkimus-ja-kehittaminen/tutkimukset-ja-hankkeet/kouluterveyskysely/kyselyn-toteuttaminen/kyselylomakkeet Kyselylomakkeet]
* [https://thl.fi/fi/web/lapset-nuoret-ja-perheet/tutkimustuloksia/kaikki-kouluterveyskyselyn-tulokset Kaikki kouluterveyskyselyn tulokset] [https://sampo.thl.fi/pivot/prod/fi/ktk/ktk1/fact_ktk_ktk1?row=area-87869.161055.235597.235713.236211.259770.259803.259692.259710.236112.259753.259815.235780.236146.236002.259679.259682.236133.236222.259675.259733.236051.235920.235827.235885.236295.259709.236200.235707.259808.259713.235708.235976.236233.259789.235797.236081.259685.235622.235906.259723.259810.235955.235793.236073.259787.235869.235881.235892.259725.259765.235947.236255.259697.235616.236189.235907.236122.259744.236140.235580.235913.259712.235685.235812.235714.161061.235679.259773.259783.235940.259737.235805.259807.235657.259730.235829.259800.236015.259740.235857.235639.259711.259772.236190.235592.259729.235832.235769.259680.259742.236283.235993.259700.236239.235721.259721.235701.235643.259797.236117.259818.235924.259688.259795.259708.235799.236240.259761.161009.235959.259793.259724.259756.259776.235678.259813.236155.259678.259769.235854.259821.259747.236173.259781.235649.236205.235731.259762.236066.259757.235742.236187.235781.235876.259739.259716.259718.236025.235866.235610.259774.259734.236287.235801.236159.236033.259771.259767.259806.236041.259704.236291.259727.259754.235871.259746.259811.161075.235939.235737.236149.259804.235662.259683.236171.259707.235962.235579.235659.235603.235589.259798.259715.259749.235933.235794.259705.235971.235951.235689.259743.236215.235979.259817.235875.259694.259720.236142.235824.259695.259684.236286.259696.259703.259759.259699.259825.236069.259755.259690.236281.259701.236271.259676.259750.235686.235994.235918.259792.235606.236032.259731.236191.235833.235877.236144.236213.235909.235992.259686.259717.235675.235915.236244.236258.259782.236253.259748.235647.235922.235998.259814.259736.259677.236027.259784.259780.259691.259766.235680.235849.235646.235740.236265.235811.161092.236127.259819.235984.235851.259763.259790.259732.236262.236214.235658.259778.235786.235691.259752.259758.235599.236096.236139.259791.235963.259760.259751.235848.235577.235956.236237.236277.259805.235820.259777.235784.259801.259809.236124.236249.236034.259702.259681.259714.235620.161039.235602.259802.235738.236102.236076.236030.236116.235896.236045.259738.236090.259706.259689.235850.259687.259785.236279.235926.235637.235739.259820.236288.161044.235598.259741.259726.259812.235732.259779.259698.236174.266765.&column=time-199465.&column=stage_of_stady-161293.161123.161219.&filter=measure-199935# dataportaali]
* [https://thl.fi/fi/web/lapset-nuoret-ja-perheet/tutkimustuloksia/kaikki-kouluterveyskyselyn-tulokset Kaikki kouluterveyskyselyn tulokset] [https://sampo.thl.fi/pivot/prod/fi/ktk/ktk1/fact_ktk_ktk1?row=area-87869.161055.235597.235713.236211.259770.259803.259692.259710.236112.259753.259815.235780.236146.236002.259679.259682.236133.236222.259675.259733.236051.235920.235827.235885.236295.259709.236200.235707.259808.259713.235708.235976.236233.259789.235797.236081.259685.235622.235906.259723.259810.235955.235793.236073.259787.235869.235881.235892.259725.259765.235947.236255.259697.235616.236189.235907.236122.259744.236140.235580.235913.259712.235685.235812.235714.161061.235679.259773.259783.235940.259737.235805.259807.235657.259730.235829.259800.236015.259740.235857.235639.259711.259772.236190.235592.259729.235832.235769.259680.259742.236283.235993.259700.236239.235721.259721.235701.235643.259797.236117.259818.235924.259688.259795.259708.235799.236240.259761.161009.235959.259793.259724.259756.259776.235678.259813.236155.259678.259769.235854.259821.259747.236173.259781.235649.236205.235731.259762.236066.259757.235742.236187.235781.235876.259739.259716.259718.236025.235866.235610.259774.259734.236287.235801.236159.236033.259771.259767.259806.236041.259704.236291.259727.259754.235871.259746.259811.161075.235939.235737.236149.259804.235662.259683.236171.259707.235962.235579.235659.235603.235589.259798.259715.259749.235933.235794.259705.235971.235951.235689.259743.236215.235979.259817.235875.259694.259720.236142.235824.259695.259684.236286.259696.259703.259759.259699.259825.236069.259755.259690.236281.259701.236271.259676.259750.235686.235994.235918.259792.235606.236032.259731.236191.235833.235877.236144.236213.235909.235992.259686.259717.235675.235915.236244.236258.259782.236253.259748.235647.235922.235998.259814.259736.259677.236027.259784.259780.259691.259766.235680.235849.235646.235740.236265.235811.161092.236127.259819.235984.235851.259763.259790.259732.236262.236214.235658.259778.235786.235691.259752.259758.235599.236096.236139.259791.235963.259760.259751.235848.235577.235956.236237.236277.259805.235820.259777.235784.259801.259809.236124.236249.236034.259702.259681.259714.235620.161039.235602.259802.235738.236102.236076.236030.236116.235896.236045.259738.236090.259706.259689.235850.259687.259785.236279.235926.235637.235739.259820.236288.161044.235598.259741.259726.259812.235732.259779.259698.236174.266765.&column=time-199465.&column=stage_of_stady-161293.161123.161219.&filter=measure-199935# dataportaali]
 
* Kouluterveyskysely [https://sampo.thl.fi/pivot/prod/fi/ktk/ktk1/fact_ktk_ktk1/199464]
* kouluterveyskysely [https://sampo.thl.fi/pivot/prod/fi/ktk/ktk1/summary_perustulokset?alue_0=87869&mittarit_0=200138&mittarit_1=187196&mittarit_2=199373&vuosi_2017_0=v2017]
* kouluterveyskysely [https://sampo.thl.fi/pivot/prod/fi/ktk/ktk1/fact_ktk_ktk1?row=measure-200346.199405.199681.199445.199678.199701.199935.200120.199469.199308.199973.200279.200316.199604.&column=time-199465&column=stage_of_stady-161293.161123.161219.#]  Keskeiset ympäristöterveyden oire- ja olosuhdeindikaattorit eri kouluasteilla


<rcode name="koulukysely" label="Koodi on ajettava omalla koneella">
<rcode name="koulukysely" label="Koodi on ajettava omalla koneella">
Rivi 399: Rivi 368:
     cbind(
     cbind(
       Kys = measure[2,i],
       Kys = measure[2,i],
       read.csv(paste(url,measure[1,i],sep=""),sep=";",encoding="UTF-8")
       ad.csv(paste(url,measure[1,i],sep=""),sep=";",encoding="UTF-8")
     )
     )
   )
   )
Rivi 426: Rivi 395:
</rcode>
</rcode>


==== Indikaattorien lataus Sotkanettiin ====
==== Aluejaottelun muodostava koodi ====
 
Tämä koodi ottaa Sotkanetin aluejaottelun ja muodostaa siitä data.framen [https://quiltdata.com/package/jtuomsto/thl Quilt-palveluun], josta se on helppo noukkia aluejaottelua vaativaan laskentaan R:ään käyttämällä quiltr-pakettia.
 
<rcode label="Aja omalla koneella">
# This is code Op_fi5810/ on page [[Ympäristöterveysindikaattori]]
 
library(jsonlite)
library(quiltr)
library(thlVerse)


<rcode>
# Get regional classifications from Sotkanet and convert to data.frame
# This is code Op_fi5810/ on page [[Ympäristöterveysindikaattori]].
# Vanha versio käytti suoraan CREATE TABLE ja INSERT INTO. Uusi versio käyttää peaJdbcWrite.


library(pea)
reg <- read_json("https://sotkanet.fi/rest/1.1/regions") # Does not work with Kauko
library(tcltk2)
library(rvest) # For html import


# Fetch data from Yhteistyötilat.
reg <- data.frame(
dat <- html_table(read_html("https://yhteistyotilat.fi/wiki08/x/SLHFAg"))[[3]] # Pienhiukkaspitoisuuden väestöpainotettu vuosikeskiarvo
   id = sapply(reg, function(x) x$id),
dat <- data.frame(
   code = sapply(reg, function(x) x$code),
   Vuosi = 2015,
   category= sapply(reg, function(x) x$category),
   Alue = dat$Alue,
   title = sapply(reg, function(x) x$title$fi),
   Aluekoodi = dat[[2]],
   memberOf = sapply(reg, function(x) paste0(",", paste(unlist(x$memberOf),collapse=","), ",")),
   Sukupuoli = 4,
   Mittari = 678,
  Mittarin_arvo = dat[[7]],
  Paivamaara = "31.5.2018",
   stringsAsFactors = FALSE
   stringsAsFactors = FALSE
)
)


con <- peaJdbcConnect("common") # Tässä kohdassa kysytään käyttäjätunnus ja salasana
# Add columns for each larger regional system to which a region belongs. Note: the code assumes
# that for each category, only one set is applicable; therefore e.g. EU-25 drops out.
 
for(i in unique(reg$category)) {
  reg[[paste0(i,"_id")]] <- NA
  for(j in unique(reg[reg$category==i,"id"])) {
    reg[[paste0(i,"_id")]] <- ifelse(
      grepl(paste0(",",j,","), reg$memberOf),
      j,
      reg[[paste0(i,"_id")]]
    )
  }
  reg[[i]] <- reg$title[match(reg[[paste0(i,"_id")]], reg$id)]
}


# Useful queries that you may need.
reg$KUNTA <- NULL
# View(dbGetQuery(con, "select * from pg_catalog.pg_tables where schemaname = 'sotkanet_lataus';"))
reg$KUNTA_id <- NULL
# View(dbGetQuery(con, "select distinct schemaname from pg_catalog.pg_tables;")) # Listaa skeemat
# koo <- peaGetKoodisto('d_alue_2_sote')$data # Kuntien ja maakuntien aluekoodit.
# d_alue_2_sote sisältää HE2017-esityksen mukaiset maakunnat, d_alue_2 puolestaan 2018 voimassa olleet.


# Luodaan taulu ja kirjoitetaan datat siihen.
# Get Ympäristöterveyden valvontayksiköt (environmental health districts) from a THL database
# Taulun nimi on muotoa indikaattori_XXXX, jossa XXXX  on indikaattorin Sotkanet_id.


peaJdbcWrite(
dbi <- thlDbInfo("pubhealth", dbengine="postgresql")
  con,
yteval <- merge(
  dat=dat,
   thlDbQuery(dbi,"SELECT * FROM envhealth.valvontayksikko_kunta;"),
  tablename="indikaattori_678",
   thlDbQuery(dbi,"SELECT * FROM envhealth.valvontayksikot;"),
   schema="sotkanet_lataus",
   by="koodi"
   batch_size=10000,
  role="public_sotkanet_reader",
   grant="select"
)
)
</rcode>
colnames(yteval) <- c("YMPARISTOTERVEYS_id","KUNTA_id","KUNTA","YMPARISTOTERVEYS")
yteval <- yteval[c(2,3,1,4)]
yteval$code <- yteval$KUNTA_id
yteval$KUNTA_id <- as.numeric(yteval$KUNTA_id)
yteval$YMPARISTOTERVEYS_id <- as.numeric(yteval$YMPARISTOTERVEYS_id)


==== Sotearvioinnin koodi liittyen ympäristöterveyteen ====
reg <- merge(reg, yteval, all.x=TRUE)
reg <- reg[order(reg$category, reg$code),]


<rcode>
# Quilt does not like factors
# This is code Op_fi5810/ on page [[Ympäristöterveysindikaattori]]
for(i in 1:ncol(reg)) {
  if("factor" %in% class(reg[[i]])) reg[[i]] <- as.character(reg[[i]])
}


library(rvest) # For html import
# Only Quilt user jtuomsto can do this.
qbuild("jtuomsto/thl/admin_regions", reg)
qpush("jtuomsto/thl", public=TRUE)


tx <- function(x, prec = 2) gsub("\\.", ",", as.character(signif(x, prec))) # Converts numbers to nice Finnish format
# To download (everyone can download the data):
write(
# admin_regions <- qload("jtuomsto/thl", "admin_regions")
  "Sote-arviointi, hyvinvointi ja terveys: ympäristöterveyden osa-alue\n\n",
</rcode>
  file="sotearviointi.txt"
)
# Fetch data from Yhteistyötilat.
dat <- html_table(read_html("https://yhteistyotilat.fi/wiki08/x/SLHFAg"))[[3]] # Pienhiukkaspitoisuuden väestöpainotettu vuosikeskiarvo
colnames(dat) <- c("Alue","Mid","Municipality","Pid","Province","Pop","PM",
                  "Daly","Comment","Genetive","Adessive")


for(i in c(2,4,6,7,8)) dat[[i]] <- as.numeric(gsub(" ", "", dat[[i]]))
==== Indikaattorien lataus Sotkanettiin ====


# Data about disease burden of PM2.5 from Lehtomäki et al 2018 https://doi.org/10.3390/ijerph15040736
Katso yksityiskohtaiset ohjeet lataamisesta [https://terho.thl.fi/wiki01/x/_FcyCQ Terhosta]. {{argument|relat1=attack|id=arg7508|type=|content=Nämä pitäisi siirtää yhteistyötiloihin tai muualle avoimeen sijaintiin.|sign=--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 10. elokuuta 2018 kello 06.55 (UTC)}}
mort <- "1600 - 2000"
daly <- 26000


for(i in sort(unique(dat$Pid))) {
Tässä ollut koodi käytti vanhentunutta pea-pakettia. Katso sen sijaan uudempi esimerkki [[Pienhiukkaspitoisuuden väestöpainotettu vuosikeskiarvo#Upload aggregate data to Sotkanet]].
  j <- (1:nrow(dat))[dat$Pid==i & dat$Alue=="HE-maakunta"]
  mk <- dat$Province[j]
  ka <- sum(dat$Pop * dat$PM / sum(dat$Pop))
  kam <- dat$PM[j]
  s1 <- paste("Pienhiukkaset ovat Suomessakin kaikkein merkittävin ympäristötekijä, joka aiheuttaa ",
  "terveyshaittaa. Pienhiukkaset ovat pääasiassa peräisin liikenteestä ja puun pienpoltosta. ",
  "Myös energiantuotanto ja teollisuus ovat suurehkoja lähteitä mutta niiden ominaispäästöt ",
  "ovat pienet (eli tuotantolaitokset puhdistavat jo tehokkaasti päästöjään) ja päästöt ",
  "tyypillisesti leviävät korkeista piipuista laajalle aiheuttamatta asutuskeskuksiin korkeita ",
  "pitoisuuksia. Muita kuin polttoperäisiä päästölähteitä ovat mm. katupöly varsinkin keväisin, ",
  "maatalouden pölyt sekä monista hajalähteistä syntyvät orgaaniset hiilivedyt, jotka ",
  "muuttuvat hiukkasiksi vasta ilmakehässä.\n",
  sep="")
 
  s2 <- paste(
    "Pienhiukkaspitoisuuksien vuosikeskiarvo on arvioitu kunnittain THL:n koordinoimassa ",
    "tutkimushankkeessa vuodelle 2015. Tämä on hyvä haitan mittari, koska tyypilliset ",
    "terveyshaitat kuten sydäntaudit, krooninen bronkiitti ja keuhkosyöpä kehittyvät ",
    "pitkäaikaisen altistuksen seurauksena. Kansainvälisesti verrattuna Suomen ",
    "pienhiukkaspitoisuudet ovat pienet, mutta silti niiden arvioidaan aiheuttavan ",
    tx(daly),
    " terveen elinvuoden menetyksen tai vastaavasti ",
    mort,
    " kuolemantapausta ",
    "(Lehtomäki ym., 2018 https://doi.org/10.3390/ijerph15040736).\n",
    sep=""
  )
 
  s3 <- "Väestöpainotettu pienhiukkaspitoisuus oli "
  s4 <- paste(
    dat$Adessive[j],
    ifelse(
      kam < 0.8*ka ," pieni ",
      ifelse(kam < 1.2*ka,
            " keskimääräinen ",
            " suomalaisittain suurehko "
      )
    ),
    " (", tx(kam), " µg/m3)",
    sep=""
  )
  s5 <- paste(", kun koko maan keskiarvo oli ", tx(ka), " µg/m3 (Sotkanet, id=678)", sep="")
  s6 <- ". Päästölähteet ja asutus keskittyvät tyypillisesti samoille alueille. Koko maan keskiarvo ylittyi "
  s7 <- dat[dat$PM > ka & dat$Alue=="HE-maakunta",]
  s7 <- s7[order(-s7$PM),]#[1:min(4,nrow(s7)),]
  s7 <- paste(s7$Adessive, " (", tx(s7$PM)," µg/m3)",sep="")
  s7 <- paste(s7, c(rep(", ", length(s7)-2), " ja ", ""), sep="", collapse="")
  s7 <- paste(s7, " (Sotkanet, id=678). ", sep="")
 
  s8 <- paste(
    dat$Genetive[j],
    " kunnista korkeimmat pitoisuudet olivat ",
    sep=""
  )
  s9 <- dat[dat$Pid == i & dat$Alue=="Kunta", ]
  s9 <- s9[order(-s9$PM),][1:4,]
  s9 <- paste(s9$Adessive, " (", tx(s9$PM)," µg/m3)",sep="")
  s9 <- paste(s9, c(rep(", ", length(s9)-2), " ja ",""), sep="", collapse="")
  s9 <- paste(s9, " (Sotkanet, id=678). ", sep="")
 
  s10 <- "Valtakunnallisesti suurin pitoisuus oli "
  s11 <- dat[dat$Alue=="Kunta",]
  s11 <- s11[order(-s11$PM)[1],]
  s11 <- paste(s11$Adessive, " (", tx(s11$PM)," µg/m3).",sep="")
 
  s12 <- paste(" ", dat$Comment[j], " ")
 
  expofr <- dat$Pop[j]*dat$PM[j]/sum(dat$Pop[dat$Alue=="HE-maakunta"]*dat$PM[dat$Alue=="HE-maakunta"])
#  s13 <- dat$Daly[j]/sum(dat$Daly[dat$Alue=="HE-maakunta"])
  s13 <- paste(
    "\nSuomessa pienhiukkasten aiheuttamasta tautitaakasta ",
    cut(expofr, breaks=c(0,0.03,0.06,0.09,0.12,0.18,0.23,0.29,0.39,0.54,0.7,1),labels=c(
      "alle kolmaskymmenesosa",
      "kahdeskymmenesosa",
      "alle kymmenesosa",
      "noin kymmenesosa",
      "noin seitsemäsosa",
      "noin viidesosa",
      "noin neljäsosa",
      "noin kolmasosa",
      "noin puolet",
      "yli puolet",
      "suurin osa"
    )), " (", tx(expofr*100), " %) syntyy ", dat$Adessive[j],
    ", eli siellä menetetään noin ",
    tx(expofr*daly),
    " tervettä elinvuotta pienhiukkasten takia. ",
    sep="")
  hel <- (1:nrow(dat))[dat$Municipality=="Helsinki"]
  s14 <- paste(
    "Helsingissä tämä luku on noin ",
    tx(daly*dat$Pop[hel]*dat$PM[hel]/sum(dat$Pop[dat$Alue=="Kunta"]*dat$PM[dat$Alue=="Kunta"])),
    " eli merkittävä osa koko Suomen tautitaakasta (",
    tx(daly),
    " haittapainotettua elinvuotta). ",
    "Tautitaakka on arvioitu syyosuusmenetelmällä (http://en.opasnet.org/w/HIA). ",
    "Epävarmuudet ovat melko suuria ja liittyvät annosvasteen muotoon pienillä pitoisuuksilla, ",
    "kilpailevien syytekijöiden rooliin kokonaisuudessa sekä pienhiukkaspitoisuuden ",
    "arviointiin käytettyjen mallien epävarmuuksiin. Siitä ei kuitenkaan ",
    "ole epävarmuutta, etteivätkö pienhiukkasten haittavaikutukset Suomessa olisi merkittäviä ",
    "ja niiden vähentäminen tarpeellista.",
    sep=""
  )
 
  write(
    paste("\n\n",mk,"\n",s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,sep=""),
    file="sotearviointi.txt",
    append=TRUE
  )
}
</rcode>


== Katso myös ==
== Katso myös ==


* [[Teemasivu:Ympäristöterveys]]
* [[Indikaattorit ja tietovarannot]] (osa [[Laki-IVA opas|Laki-IVA-opasta]])
* [[Indikaattorit ja tietovarannot]] (osa [[Laki-IVA opas|Laki-IVA-opasta]])
* [[Tautitaakka Suomessa]]
* [[Tautitaakka Suomessa]]

Nykyinen versio 6. kesäkuuta 2019 kello 08.31




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: comment)

+ Näytä koodi

Perustelut

Data

Data on muodostettu koodilla:

+ Näytä koodi

Graafilista 4.8.2018 [1]

+ Näytä koodi

Työlista

Ajankohtaisia töitä tärkeysjärjestyksessä

  • Näkemysverkko (jossa metsämittareita)
  • Janne Hukkinen: miksi sääntelyä tarvitaan ilmastoasioissa
  • Metsäteollisuuden puunkäyttö:
    • Kannattaako sellunkeittoa lisätä, kun silloin käytetään nuorta ja ohutta puuta, joka on huono hiilinielu ja hiilivarasto?
    • Ilmastohyötyjä, rikkaampi luonto ja metsänomistajille lisää rahaa – Metsäprofessori: avohakkuut voidaan lähes unohtaa menettämättä mitään
  1. uutisvahti

https://yle.fi/uutiset/3-10777521

Kesän 2018 töitä

  • T2b-taulukot uusitaan sivulle op_en:Open policy ontology
  • Näkemysverkkojen muotoiluun liittyviä töitä:
    • Solmujen reunojen vaalentaminen. Musta otetaan pois käytöstä.
    • Sellaisen fontin etsiminen, jossa on joko valkoiset reunat tai valkoinen tekstin mustalla reunuksella.
    • Toiminnallisuus, jolla voi zoomailla näkemysverkossa. Kaksi mahdollista ratkaisua:
      • Shinyssa säätö, jolla voi zoomata kuvaa isommaksi kuin käytettävissä oleva alue.
      • DiagrammeRiin dynaamisuus, jolla voidaan valita pois solmuja kaaviosta. Tämä kuitenkin edellyttää jotain ratkaisua, jossa käyttäjän klikkaus välittyy tiedoksi Diagrammerille.
    • Näkemysverkkoihin legend. Tämä edellyttää, että perustetaan uusi taulukko, johon tulee jokaista oliotyyppiä yksi solmu, ja sen Kuvaukseen laitetaan tarvittavat selitykset. Voi aloittaa Gsheetiin.
  • Numerointi ja nimeäiminen on ollut epäjohdonmukaista. Korjatkaa tämän ohjeen mukaisesti. ----arg5748: . Helsinki kytkennät -taulukko käyty läpi, tosin muutama epäselvyys oli. --Pieta Tuomisto (keskustelu) 21. elokuuta 2018 kello 16.58 (UTC) (type: truth; paradigms: science: comment)
    • Taulujen nimeäminen: Aiemmin joka taululla oli oma muutaman merkin mittainen tunniste eli Id. Sitten luovuttiin taulukohtaisuudesta ja siirryttiin aihekohtaisiin tunnisteisiin. Tämän takia on nyt varmistettava, että esim. lukuisissa Goherr-tauluissa on jokaisessa oma juokseva numerointinsa eikä samoja numeroita käytetä, PAITSI tietenkin jos asia on sama eli:
    • Saman solmun numeron pitäisi olla jokaisessa taulussa sama. Myös samassa taulussa toistuva asia saa aina saman vanhan numeron. Esim. Ruuhkamaksu-taulussa tämä on virheellisesti.
    • Google-sheeteillä Ruuhkamaksu ja Helsinki kytkennät 2.0 ei ole taulun Id:tä ollenkaan. Tämä johtuu siitä, että tauluissa yhdistetään eri taulujen ja aiheiden asioita toisiinsa ja siksi eri riveillä voi olla asioita eri tauluista. Niinpä näihin kahteen tauluun on merkittävä myös taulun tunniste Obs-sarakkeeseen. Laitoin jo muutaman esimerkin valmiiksi. Huom1. Jos taulussa ei ole Obs- tai muuta numerosaraketta (kuten Sitra100), juokseva numerointi lisätään automaattisesti ja se alkaa ykkösestä ensimmäiseltä datariviltä. Huom2. Ne ilmiöt, jotka yhdistävät HNH2035- ja Sitra100-toimenpiteitä tai ruuhkamaksukeskustelua mutta eivät esiinny niissä suoraan, saavat tunnisteeksi "Ilmasto".
    • Tähän saakka Sitran toimenpiteet eivät ole linkkautuneet oikein. Syitä on ainakin kaksi: edellä mainitut numeroinnin epäjohdonmukaisuudet ja toisaalta se, etteivät eri esiintymät ole täsmälleen samalla tavalla kirjoitettuja. Esim. isoissa alkukirjaimissa pitää olla tarkkana. Kielioppisääntöjen mukaan mennään eli sanat pienellä elleivät ne ole erisnimiä, mutta kokonaiset lauseet voi kirjoittaa isolla alkukirjaimella. Itemissä, Namessa ja labelissa ei kuitenkaan laiteta pistettä loppuun vaikka olisi lausekin. Sen sijaan Descriptionissa on suositeltavaa käyttää pisteitä lauseen lopussa. Joihinkin kirjoitusasuihin emme voi vaikuttaa, kuten HNH2035-toimenpiteisiin, joten niissä on mukauduttava Helsingin käytäntöihin.
  • Lista kaikista taulukoista, joita käytetään näkemysverkkojen piirtämiseen: [2]
  • Kirjoittakaa google docsiin kuvaus tähän astisesta työstä ja mitä siitä on opittu. Ladataan kokeilun paikkaan, kunhan saadaan ensimäminen versio valmiiksi. Koetetaan saada muokkausoikeudet koko tiimille. [htps://docs.google.com/document/d/1W-AcKL-4sFyiTqNlSy0tF7a3FFI0rItuMgUrlvFZDrA/edit]
  • Katsokaa ja kommentoikaa ilmasto-ohjelman seuranta- ja vaikutusarviointityökalua. Sen avulla on tarkoitus seurata, miten toimenpiteet etenevät ja millaisia vaikutuksia niillä on tärkeisiin asioihin kuten ilmastopäästöihin. Linkkejä tähän arviointityöhön:
    • Hakemisto, jossa olennaiset vaikutusarviointityökalun materiaalit ovat [3]
    • Toimenpiteen seurantataulukko [4]
    • Seurantatyökalun kuvaus (ei aivan ajan tasalla) [5]
  • 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).
  • 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: 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ä. ←--arg8375: . Huom! Ohje muuttunut. --Jouni Tuomisto (keskustelu) 24. heinäkuuta 2018 kello 04.47 (UTC) (type: truth; paradigms: science: defense)

Jounin työt

  • Labeleiden rivittäminen kuntoon: järkevän mittaisia eikä joka sanavälistä poikki. (Jouni)
  • Ääkköset eivät toimi. Etsi vika ja korjaa. Johtunee graafin tallennusvaiheesta.

Tehdyt työt

  • Palkat maksettu 12.5.2019 mennessä tehtyjen tuntien perusteella.
    • 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. ----arg7263: . 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) ----arg7263: . 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).
  • 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: 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.
  • Goherr
    • Täydennä Goherr-projektin käsin piirrettyjen kaavioiden tiedot Google-taulukkoon Goherr-kaaviot tässä hakemistossa. ←--arg7263: . Tehty. Jouni Tuomisto (keskustelu) 24. heinäkuuta 2018 kello 04.47 (UTC) (type: truth; paradigms: science: defense)
    • 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. ←--arg7263: . Korjattu. Jouni Tuomisto (keskustelu) 24. heinäkuuta 2018 kello 04.47 (UTC) (type: truth; paradigms: science: defense)
  • 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. ←--arg7263: . Tehty. Jouni Tuomisto (keskustelu) 24. heinäkuuta 2018 kello 04.47 (UTC) (type: truth; paradigms: science: defense)
  • 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ä. ←--arg7263: . Tehty. Jouni Tuomisto (keskustelu) 24. heinäkuuta 2018 kello 04.47 (UTC) (type: truth; paradigms: science: defense)
    • 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:ää). ←--arg7263: . Valmis. Jouni Tuomisto (keskustelu) 24. heinäkuuta 2018 kello 04.47 (UTC) (type: truth; paradigms: science: defense)
    • Kommentoi paradigmaidean käytettävyyttä ja mielekkyyttä yleensä ja sen sovellettavuutta eri paradigmojen osalta erityisesti. ←--arg7263: . Valmis. Jouni Tuomisto (keskustelu) 24. heinäkuuta 2018 kello 04.47 (UTC) (type: truth; paradigms: science: defense)
  • Tutustu kuvaukseen ruuhkamaksuista (Decision analysis and risk management 2017 -kurssilla tehty) ⇤--arg7263: . 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 [8]
  • Ehdotus sosiaali- ja terveyspalveluiden uudeksi kansalliseksi mittaristoksi VN-TEAS 15.3.2017 [9]
  • Alueuudistus: tietojohtaminen [10]
  • KUVA-mittaristo 23.4.2018 [11]
  • Tietoikkuna [12]
  • Sotkanet [13]


+ 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

Aluejaottelun muodostava koodi

Tämä koodi ottaa Sotkanetin aluejaottelun ja muodostaa siitä data.framen Quilt-palveluun, josta se on helppo noukkia aluejaottelua vaativaan laskentaan R:ään käyttämällä quiltr-pakettia.

+ Näytä koodi

Indikaattorien lataus Sotkanettiin

Katso yksityiskohtaiset ohjeet lataamisesta Terhosta. ⇤--arg7508: . Nämä pitäisi siirtää yhteistyötiloihin tai muualle avoimeen sijaintiin. --Jouni Tuomisto (keskustelu) 10. elokuuta 2018 kello 06.55 (UTC) (type: ; paradigms: science: attack)

Tässä ollut koodi käytti vanhentunutta pea-pakettia. Katso sen sijaan uudempi esimerkki Pienhiukkaspitoisuuden väestöpainotettu vuosikeskiarvo#Upload aggregate data to Sotkanet.

Katso myös