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

Opasnet Suomista
Siirry navigaatioon Siirry hakuun
(→‎Näkemysverkot Shinyssa: koodin osia siirretty järkevämpiin paikkoihin)
 
(31 välissä olevaa versiota samalta käyttäjältä ei näytetä)
Rivi 19: Rivi 19:
Tämä koodi piirtää näkemysverkkoja Shinylla. Koodi lukee alkuperäiset nettisivut ja muodostaa siitä tarvittavan datan. Koodi on ajettava omalla koneella.
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)}}
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)">
<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]]
############### Create global variables at file global.R
library(OpasnetUtils)
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]]


meta <- html_table(read_html("https://yhteistyotilat.fi/wiki08/x/1oGxAg"))[[3]]
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")
colnames(meta) <- c("Topic","Id","Type","URL","Table","Firstrow","Description")


Rivi 34: Rivi 47:
## Use makegraphs to make graafilista from insightTables.
## Use makegraphs to make graafilista from insightTables.


objects.latest("Op_fi5810",code_name="makegraphs") # [[Ympäristöterveysindikaattori]] makegraphs
objects.latest("Op_fi5810",code_name="makegraphs") # Aiemmin [[Ympäristöterveysindikaattori]] makegraphs


graafilista <- makegraphs(verbose=FALSE)
########### 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


### Create shiny server
graafilista <- makegraphs(verbose=FALSE) # graphTable aiemmin nimeltään graafilista


dummy <- EvalOutput(Ovariable( # Fetch graafilista if it does not exist already
dummy <- EvalOutput(Ovariable( # Fetch graafilista if it does not exist already
Rivi 58: Rivi 77:
)
)


sel <- opbase.data("Op_fi5810", subset="Seed nodes in shiny")[-1]
################ Create Shiny user interface at file ui.R
 
objtypes <- c("ovariable","index","value judgement","graph","toimija")


ui <- basicPage(
ui <- basicPage(
Rivi 66: Rivi 83:
     sidebarPanel(
     sidebarPanel(
       selectInput("topic","Topic",unique(sel$Topic)),
       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("ignoreobj", "Ignore these object types", objtypes),
       checkboxGroupInput("formatting", "Format graph", "Hide labels"),
       checkboxGroupInput("formatting", "Format graph", "Hide labels"),
Rivi 76: Rivi 101:
   )
   )
)
)
#### Create shiny server at file server.R


server <- function(input, output) {
server <- function(input, output) {
   output$plot1 <- renderGrViz({
   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 <- deselect_nodes(gr, get_selection(gr))
     gr <- select_nodes_by_id(gr, match(sel$Node[sel$Topic==input$topic],gr$nodes_df$Oldid))
     gr <- select_nodes_by_id(gr, nods)
     if(input$steps>0) {
     if(input$steps>0) {
       for(i in 1:input$steps) {
       for(i in 1:input$steps) {
Rivi 88: Rivi 120:
     gr <- deselect_nodes(gr, (1:nrow(gr$nodes_df))[gr$nodes_df$type %in% input$ignoreobj])
     gr <- deselect_nodes(gr, (1:nrow(gr$nodes_df))[gr$nodes_df$type %in% input$ignoreobj])
     gr2 <- gr
     gr2 <- gr
     gr2$nodes_df$label <- gsub(" ", "\n", gr2$nodes_df$label)
     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 <- ""
     if("Hide labels" %in% input$formatting) gr2$nodes_df$label <- ""
     grViz(generate_dot(transform_to_subgraph_ws(gr2)))
     grViz(generate_dot(transform_to_subgraph_ws(gr2)))
Rivi 106: 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:
Rivi 167: Rivi 201:
oprint(graafilista$edges_df, show_all=TRUE)
oprint(graafilista$edges_df, show_all=TRUE)
</rcode>
</rcode>
<t2b name="Seed nodes in shiny" index="Topic,Node" obs="Label" unit="-">
Politiikan avoimuus|AvoHark.julkisuushaitta.statement|Avoimuudesta on vakavaa haitta
Politiikan avoimuus|AvoHark.julkisuusjatkumo.arg13|Ulkoinen uhka mahdollistaa sulkemisen
Politiikan avoimuus|AvoHark.julkisuushaitta.arg2|Avoimuus estää päättämästä huolella
Politiikan avoimuus|AvoHark.julkisuushaitta.arg1|Some pakottaa poliitikot jatkuvaan rooliin
Politiikan avoimuus|AvoHark.julkisuusjatkumo.resolution|Julkisuuden rajoittaminen vähentäisi haittoja mutta ehkä aiheuttaisi isoja ongelmia avoimuudelle
Politiikan avoimuus|AvoHark.julkisuushaitta.resolution|Julkisuus haittaa politiikan laatua kytkeytyessään ykköstyypin ajatteluun
Politiikan avoimuus|AvoHark.julkisuusjatkumo.statement|Avoimuusjatkumolla länsimaiden
Ymparistoterveys|YmpT.7|melu
Ymparistoterveys|YmpT.8|radon
Ymparistoterveys|YmpT.9|tupakointi
Ymparistoterveys|YmpT.12|ruokamyrkytys
Ymparistoterveys|YmpT.13|vesiepidemia
Ymparistoterveys|YmpT.36|hengityselinoire
Ymparistoterveys|YmpT.37|vatsatauti
Lasten lihavuus|LasL.1|lasten lihavuus
Lasten lihavuus|LasL.5|ravitsemus
Lasten lihavuus|LasL.8|aktiivisuus
Lasten lihavuus|LasL.12|muu mekanismi
Aikuisten lihavuus|AikL.33|lihavuus
Aikuisten lihavuus|AikL.34|diabetes
Helsingin ilmasto-ohjelma  |HNH2035.42000|Kymp
Helsingin ilmasto-ohjelma  |HNH2035.4|Ruokapalveluiden reseptiuudistus
Helsingin ilmasto-ohjelma  |HNH2035.28000|Kanslia
Helsingin ilmasto-ohjelma  |HNH2035.139|Kaupungin omassa toiminnan ja
Helsingin ilmasto-ohjelma  |HNH2035.47000|Maka
Helsingin ilmasto-ohjelma  |HNH2035.10|Ajoneuvoliikenteen hinnoittelu
Helsingin ilmasto-ohjelma  |Ilmasto.50|Sähköautojen julkinen latausinfra
Helsingin ilmasto-ohjelma  |Ilmasto.51|Sähköautoilu
Helsingin ilmasto-ohjelma  |HNH2035.1|Liikenteen solmukohtien palvel
Helsingin ilmasto-ohjelma  |HNH2035.2|Pyöräliikenteen kantakaupungin tavoiteverkko 2025
Benefit-risk assessment of fish|Gohbra.Ova6|BoD
Benefit-risk assessment of fish|Gohbra.Ova36|info
Benefit-risk assessment of fish|Gohbra.Ova31|exposure
Benefit-risk assessment of fish|Goherr.104|Disease burden
Benefit-risk assessment of fish|Gohbra.Ova2|amount
Baltic fish governance|Goherr.509|EFSA
Baltic fish governance|Goherr.511|European Commission
Baltic fish governance|Goherr.507|Scientific opinion
Baltic fish governance|Goherr.508|Max dioxin lvls
Ruuhkamaksu|CongC.airquality.resolution|CC improves air quality               
Ruuhkamaksu|CongC.health.resolution|CC may improve health                 
Ruuhkamaksu|CongC.indivchoice.resolution|CC may constrain choice               
Ruuhkamaksu|CongC.caruse.resolution|CC does not increase traffic         
Ruuhkamaksu|CongC.capital.resolution|CC does not restrict mobility or growth
Ruuhkamaksu|CongC.toxicity.resolution|Toxicity charge is problematic       
Ruuhkamaksu|CongC.tragedy.resolution|CC prevents tragedy of commons       
Ruuhkamaksu|CongC.dynamic.resolution|CC needs to be dynamic               
Ruuhkamaksu|CongC.inefficient.resolution|CC is innefficient in the future     
Ruuhkamaksu|CongC.equality.resolution|Inhabitants must be subsidised       
Ruuhkamaksu|CongC.airquality.statement|Congestion charge scheme doesn
Ruuhkamaksu|CongC.health.statement|Congestion charge scheme will
Pandemrix flu vaccine discussion|H1N1.Pandemrix.resolution|Not accepted. Pandemrix is sti       
Pandemrix flu vaccine discussion|H1N1.Pandemrix.statement|Pandemrix should not be used a
Sitran 100 ilmastotekoa|Sitra100.17|Vegaanihaaste/lihaton lokakuu                           
Sitran 100 ilmastotekoa|HNH2035.93|Kaupungin ruokapalveluiden reseptien kehitys           
Sitran 100 ilmastotekoa|Ilmasto.4|Ruokapalveluiden reseptiuudistus                       
Sitran 100 ilmastotekoa|Sitra100.12|Vaihdan veden ruokajuomaksi                             
Sitran 100 ilmastotekoa|Sitra100.20|Vaihdan pun. lihan kalaan/kanaan                       
Sitran 100 ilmastotekoa|Sitra100.4|Yhden lautasen taktiikka                               
Sitran 100 ilmastotekoa|HNH2035.100|Merellisen strategian ilmastohuomiot                   
Sitran 100 ilmastotekoa|Ilmasto.7|Uusi merellinen strategia                               
Sitran 100 ilmastotekoa|Sitra100.75|Suppaan melon soudan                                 
Sitran 100 ilmastotekoa|Sitra100.80|Lomailen viikonlopun kotona                             
Sitran 100 ilmastotekoa|Sitra100.83|Lomailen junailemalla                                   
Sitran 100 ilmastotekoa|Sitra100.37|Luovun autostani
Sitran 100 ilmastotekoa|Ilmasto.36|Hyvä teko -teema
Sitran 100 ilmastotekoa|Ilmasto.37|Liikkumisteema
Sitran 100 ilmastotekoa|Ilmasto.33|Asumisteema
Sitran 100 ilmastotekoa|Ilmasto.34|Palveluteema
Sitran 100 ilmastotekoa|Ilmasto.35|Matkailuteema
Sitran 100 ilmastotekoa|Ilmasto.32|Ruokateema
</t2b>


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


'''Ajankohtaisia töitä tärkeysjärjestyksessä
'''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ä:
* Näkemysverkkojen muotoiluun liittyviä töitä:
** Solmujen reunojen vaalentaminen. Musta otetaan pois käytöstä.
** Solmujen reunojen vaalentaminen. Musta otetaan pois käytöstä.
Rivi 253: Rivi 239:
*** DiagrammeRiin dynaamisuus, jolla voidaan valita pois solmuja kaaviosta. Tämä kuitenkin edellyttää jotain ratkaisua, jossa käyttäjän klikkaus välittyy tiedoksi Diagrammerille.
*** 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.
** 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=relevant comment|selftruth1=true|id=arg5748|type=|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)}}
* 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:
** 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.
** 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.
Rivi 267: Rivi 253:
** 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).
** 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].  
* 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=relevant comment|selftruth1=true|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:
* 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.  
* 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] {{comment|# |Uusi linkki.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 24. heinäkuuta 2018 kello 04.47 (UTC)}}
** 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ä
** Kuvaus toimenpidetyökalusta] (luonnos) [https://docs.google.com/document/d/1VKXVzs4YmwLKgnrTifV4XnCqX4ceJ-d5KBrb8S2-nxI/edit#heading=h.59an82rd17jh]
** Kuvaus toimenpidetyökalusta] (luonnos) [https://docs.google.com/document/d/1VKXVzs4YmwLKgnrTifV4XnCqX4ceJ-d5KBrb8S2-nxI/edit#heading=h.59an82rd17jh]
Rivi 279: Rivi 265:
* 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 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ä uutta argument-templaattia toimintonapeista, kun haluat kommentoida sivun sisältöä Opasnetissä. {{defend|# |Huom! Ohje muuttunut.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 24. heinäkuuta 2018 kello 04.47 (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)}}


'''Jounin työt
'''Jounin työt
Rivi 285: Rivi 271:
* Labeleiden rivittäminen kuntoon: järkevän mittaisia eikä joka sanavälistä poikki. (Jouni)
* 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.
* Ääkköset eivät toimi. Etsi vika ja korjaa. Johtunee graafin tallennusvaiheesta.
* Name ei näy hoveratessa hiirellä, nimenomaan Goherr-taulukoissa. Lisää Item tooltipiin. {{defend|# |Tehty.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 25. heinäkuuta 2018 kello 07.17 (UTC)}}
* Lisää argumenttinapppulat myös suomenkieliseen Opasnettiin. {{defend|# |Tehty.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 25. heinäkuuta 2018 kello 07.17 (UTC)}}


'''Tehdyt työt
'''Tehdyt työt


* Palkat maksettu 15.8.2018 asti.
* 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. {{comment|# |Näiden kuvaaminen oikeisiin taulukoihin tuli Pietalle tehtäväksi.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 25. heinäkuuta 2018 kello 07.17 (UTC)}} {{comment|# |Uudet relaatiot liitetty [[:op_en:Structure of shared understanding]] sivulla olevaan taulukkoon.|--[[Käyttäjä:Mikomiko|Pieta Tuomisto]]([[Keskustelu käyttäjästä:Mikomiko|keskustelu]]) 27. heinäkuuta 2018 kello 09.30 (UTC)}}
** 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).
** 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.
* 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.
** 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.
* 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=relevant comment|selftruth1=true|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)}}
* 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]].
* 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
* 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]. {{defend|# |Tehty.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 24. heinäkuuta 2018 kello 04.47 (UTC)}}
** 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. {{defend|# |Korjattu.|--[[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
* 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. {{defend|# |Tehty.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 24. heinäkuuta 2018 kello 04.47 (UTC)}}
** 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
* 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ä. {{defend|# |Tehty.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 24. heinäkuuta 2018 kello 04.47 (UTC)}}
** 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)
** Nimi (arjen teon nimi)
** Suuruus (onko vaikutus pieni, keskisuuri vai suuri), tämän voisi merkata descriptioniin
** Suuruus (onko vaikutus pieni, keskisuuri vai suuri), tämän voisi merkata descriptioniin
Rivi 311: Rivi 295:
* Menetelmällisiä töitä
* 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].
** 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:ää). {{defend|# |Valmis.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 24. heinäkuuta 2018 kello 04.47 (UTC)}}
** 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. {{defend|# |Valmis.|--[[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) {{attack|# |Ei kannata tutustua näihin vaan uudempiin sisältöihin.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 25. heinäkuuta 2018 kello 07.17 (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.
** [[: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].
** [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].
Rivi 349: Rivi 333:
objects.store(graafilista)
objects.store(graafilista)
cat("Graafilista stored.\n")
cat("Graafilista stored.\n")
</rcode>
<rcode name="makegraphs" label="Luo funktio makegraphs joka tekee graafilistan (vain kehittäjille)" embed=1>
# Tämä on koodi Op_fi5810/graphs sivulla [[Ympäristöterveysindikaattori]]
library(OpasnetUtils)
#' @title makegraphs function converts scraped data.frames into a standard data.frames for graphs (nodes and edges separately)
#' @param verbose if TRUE, show intermediate results and explanations
#' @return a list with two data.frames for making a diagram: first for nodes, second for edges
makegraphs <- function(verbose=FALSE) {
  dummy <- EvalOutput(Ovariable(
    "dummy",
    dependencies=data.frame(
      Name = c("ecd_create", "fillprev", "splizzeria"),
      Ident = rep("Op_en3861/ecd_create",3)
    ),
    formula = function(...) {
      return(data.frame(Result=1))
    }
  ))
 
  sotkanet <- "http://www.sotkanet.fi/sotkanet/fi/metadata/indicators/"
 
  if(exists("insightTables")) {
    meta <- insightTables$meta
  } else {
    meta <- opasnet.csv( # Väärä koodaus mutta miksi? Tiedosto on oikein.
      "3/3e/N%C3%A4kemysverkkojen_tietotauluja.zip",
      wiki="opasnet_fi",
      unzip="meta.csv",
      sep=",",row.names=NULL,header=TRUE,stringsAsFactors=FALSE,fileEncoding = "UTF-8"
    )
  }
 
  out <- list()
  for(i in 1:nrow(meta)) {
    if(verbose) print(i)
    if(exists("insightTables")) {
      temp <- insightTables[[i]]
    } else {
      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=",",row.names=NULL,header=TRUE,stringsAsFactors=FALSE,fileEncoding = "UTF-8"
      )
    }
   
    if(verbose) oprint(head(temp))
   
    # 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")] <- "Oldid"
    if(!"label" %in% colnames(temp)) temp$label <- NA
    temp$label <- ifelse(is.na(temp$label), substr(temp$Item,1,50), temp$label)
    tmp3 <- if("Oldid" %in% colnames(temp)) temp$Oldid else 1:nrow(temp)
    tmp3 <- if(is.na(meta$Id[i]) | meta$Id[i]=="") tmp3 else paste(meta$Id[i],tmp3,sep=".")
    temp$Oldid = tmp3
    temp[is.na(colnames(temp))] <- NULL
    colnames(temp) <- gsub("[- ]", ".", colnames(temp))
    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
  out[[13]]$Oldid <- paste0(out[[13]]$Oldid, "000")
 
  # HYTE JA LAPE ELI SOTEARV
 
  tmp <- data.frame()
  for(i in (1:nrow(meta))[meta$Type=="sotearv"]) {
    if(nrow(tmp)==0) tmp <- out[[i]] else tmp <- orbind(tmp, out[[i]])
  }
  tmp <- orbind(orbind(orbind(orbind(
    data.frame(
      Oldid = tmp$Oldid,
      type = paste(tmp$Teema, "indikaattori",sep="-"),
      Item = tmp$Item,
      Relation = "ulottuvuus",
      Object = tmp$Ulottuvuus,
      URL = ifelse(
        is.na(as.numeric(substr(tmp$Sotkanet.id,1,4))),
        NA,
        paste0(sotkanet, substr(tmp$Sotkanet.id,1,4))
      ),
      Description = tmp$Ryhman.perustelut,
      label = ifelse(is.na(tmp$label),substr(tmp$Item,1,30),tmp$label),
      stringsAsFactors = FALSE
    ),
    data.frame(
      Item = tmp$Item,
      Relation = "osiotyyppi",
      Object = tmp$Osiotyyppi,
      stringsAsFactors = FALSE
    )),
    data.frame(
      Item = tmp$Item,
      Relation = "discussed in",
      Object = tmp$Tietolahde,
      stringsAsFactors = FALSE
    )),
    data.frame(
      Item = tmp$Item,
      Relation = "JHS-luokka",
      Object = tmp$JHS.luokka,
      stringsAsFactors = FALSE
    )),
    data.frame(
      type = "index",
      Item = unique(c(tmp$Ulottuvuus, tmp$JHS.luokka, tmp$Osiotyyppi)),
      stringsAsFactors=FALSE
    )
  )
  if(verbose) oprint(head(tmp))
  d <- tmp
 
  #### Hyvinvointikertomukset
 
  tmp <- data.frame()
  for(i in (1:nrow(meta))[meta$Type=="hvkertomus"]) {
    if(nrow(tmp)==0) tmp <- out[[i]] else tmp <- orbind(tmp, out[[i]])
  }
  tmp <- data.frame(
    Oldid=tmp$Oldid,
    type="indikaattori",
    Item=tmp$Item,
    label=substr(tmp$Item,1,30),
    Relation="omistaa kontekstin",
    Object=tmp$Teema,
    Description = paste(tmp$Item, tmp$Teema, tmp$Vaestoryhma, sep=". "),
    URL = "https://www.hyvinvointikertomus.fi/#/welcome",
    stringsAsFactors=FALSE
  )
  if(verbose) oprint(head(tmp))
  d <- orbind(d, tmp)
 
  ########## KUVA-indikaattorit
 
  tmp <- data.frame()
  for(i in (1:nrow(meta))[meta$Type=="kuvaind"]) {
    if(nrow(tmp)==0) tmp <- out[[i]] else tmp <- orbind(tmp, out[[i]])
  }
  tmp <- data.frame(
    Oldid=tmp$Oldid,
    type="indikaattori",
    Item=tmp$Item,
    label=substr(tmp$Item,1,30),
    Relation="omistaa kontekstin",
    Object=tmp$Teema,
    Description = paste(tmp$Item, tmp$Teema, sep=". "),
    URL = "https://thl.fi/fi/tutkimus-ja-kehittaminen/tutkimukset-ja-hankkeet/sote-tietopohjan-kehittamishanke/kansallisen-mittariston-valmistelu-kuva-indikaattorit-",
    stringsAsFactors=FALSE
  )
  if(verbose) oprint(head(tmp))
  d <- orbind(d, tmp)
 
  ## Oletusmuotoiset taulut (Ympäristöterveys, Lasten ja aikuisten lihavuus, Yleiset ja erityiset luokittelut)
 
  tmp <- data.frame()
  for(i in (1:nrow(meta))[meta$Type %in% c("oletus", "keskustelu","arviointi")]) {
    if(nrow(tmp)==0) tmp <- out[[i]] else tmp <- orbind(tmp, out[[i]])
  }
  tmp <- splizzeria(tmp, cols="Object", split=",")
  tmp$URL <- ifelse(
    grepl("http",tmp$URL),
    tmp$URL,
    ifelse(
      is.na(as.numeric(substr(tmp$URL,1,4))),
      NA,
      paste0(sotkanet, substr(tmp$URL,1,4))
    )
  )
  if(verbose) oprint(head(tmp))
  d <- orbind(d, tmp)
 
  ####### 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",
    "Maka/Like Kanslia","Maka,Kanslia"
  ),
  dim=c(2,28)
  )
 
  tmp <- out[[8]]
  for(i in 1:ncol(repl)) {
    tmp$Vastuu <- gsub(repl[1,i],repl[2,i],tmp$Vastuu)
  }
  tmp <- fillprev(tmp,"Teema")
  tmp <- tmp[!is.na(tmp$Item) , ]
 
  toimet <- opbase.data("Op_fi5767", subset="Toimenpiteiden linkit") # This is done until URL is directly on gsheet.
  toimet$Oldid <- paste(meta$Id[8], toimet$Obs,sep=".")
  tmp <- merge(tmp,toimet, all.x=TRUE)
  tmp$URL <- ifelse(!is.na(tmp$Result), as.character(tmp$Result), "https://www.hel.fi/static/liitteet/kaupunkiymparisto/julkaisut/julkaisut/HNH-2035-toimenpideohjelma.pdf")
 
  # tmp <- splizzeria(tmp, cols="Kustannukset", split="/") # Not used because doubles relations
 
  temp2 <- splizzeria(tmp, cols="Vastuu", split=",")
 
  tmp <- orbind(orbind(
    data.frame(
      Oldid=tmp$Oldid,
      type="toimenpide 1",
      Item=tmp$Item,
      label=substr(tmp$Item,1,30),
      Relation="omistaa kontekstin",
      Object=tmp$Teema,
      Description = paste(tmp$Item, tmp$Aikajanne, tmp$Vaativuus, tmp$Kustannukset, sep=". "),
      URL = tmp$URL,
      stringsAsFactors=FALSE
    ),
    data.frame(
      Oldid=temp2$Oldid,
      Item=temp2$Item,
      label=substr(temp2$Item,1,30),
      Relation="vastuullisena",
      Object=temp2$Vastuu,
      stringsAsFactors=FALSE
    )
  ),
  data.frame(
    Oldid=paste0("HNH2035teema.", 1:length(unique(tmp$Teema))),
    type="index",
    Item=unique(tmp$Teema),
    Description = paste("HNH2035-ohjelman teema", unique(tmp$Teema))
  )
  )
  if(verbose) oprint(head(tmp))
  d <- orbind(d, tmp)
 
  ########################### Create graph list with everything needed for ecd_graph
 
  d$label <- ifelse(is.na(d$label), substr(d$Item,1,30), d$label)
 
  fix <- matrix(c(
    "Kustannukset ja RR",  "Kustannukset ja rahoituksen riittävyys",
    "Saatavuua",  "saatavuus"
  ),nrow=2)
  tmp <- d$Object[!is.na(d$Relation) & !is.na(d$Object) & d$Relation=="ulottuvuus"]
  for(i in 1:ncol(fix)) {
    tmp <- ifelse(tmp==fix[1,i],fix[2,i],tmp)
  }
  d$Object[!is.na(d$Relation) & !is.na(d$Object) & d$Relation=="ulottuvuus"] <- tmp
 
  for(i in 1:ncol(d)) {
    d[[i]] <- gsub("[\"']", " ", d[[i]])
  }
 
  graafilista <- ecd_create(d)
 
  if(verbose) {
    cat("Datataulukko.\n")
    oprint(head(d))
   
    cat("Graafin solmuja\n")
    oprint(head(graafilista$nodes_df))
    cat("Graafin nuolia\n")
    oprint(head(graafilista$edges_df))
  }
 
  return(graafilista)
}
objects.store(makegraphs)
cat("Function makegraphs stored.\n")
</rcode>
</rcode>


Rivi 712: 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]]


Katso yksityiskohtaiset ohjeet lataamisesta [https://terho.thl.fi/wiki01/x/_FcyCQ Terhosta]. {{argument|relat1=relevant attack|selftruth1=true|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)}}
library(jsonlite)
library(quiltr)
library(thlVerse)


<rcode label="Ajettava omalla koneella tai Linux-klusterista">
# 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
# View(dbGetQuery(con, "select * from sotkanet_lataus.indikaattori_678")) # Listaa taulun sisällön
# 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
# Jos taulu jo on olemassa, se pitää poistaa pgAdminilla. Tai voi käyttää alla olevaa SQL-komentoa, vaikka se antaa virheilmoituksen
# (koska funktio antaa tyhjän). Ehkä pitäisi käyttää dbSendQuery().
# dbGetQuery(con, "DROP TABLE sotkanet_lataus.indikaattori_678")


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