Difference between revisions of "Wikisym 2012 Demo"

From Testiwiki
Jump to: navigation, search
(Water model)
m
 
(8 intermediate revisions by one other user not shown)
Line 1: Line 1:
== Polygons on dynamic Google Maps ==
+
[[Category:Code under inspection]]
This example plots municipalities of Finland on Google Maps using data from National Land Survey of Finland.
 
<rcode name="polygons_on_google_maps">
 
 
 
library(OpasnetUtilsExt)
 
library(sorvi)
 
library(rgdal)
 
 
 
# Get the shape data of Finnish municipalities using soRvi library
 
data(MML)
 
shp <- MML[["1_milj_Shape_etrs_shape"]][["kunta1_p"]]
 
 
 
# Set the projection
 
epsg4326String <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
 
proj4string(shp)<-("+init=epsg:3047")
 
shp2<-spTransform(shp,epsg4326String)
 
 
 
# Create the KML data using the shape
 
out<-sapply(slot(shp2,"polygons"),function(x){kmlPolygon(x,name="name",col='#df0000aa',lwd=1,border='black',description="desc") })
 
data<-paste(
 
paste(kmlPolygon(kmlname="This will be layer name", kmldescription="<i>More info about layer here</i>")$header, collapse="\n"),
 
paste(unlist(out["style",]), collapse="\n"),
 
paste(unlist(out["content",]), collapse="\n"),
 
paste(kmlPolygon()$footer, collapse="\n"),
 
sep=''
 
)
 
 
 
# Show the KML data on Google Maps
 
google.show_kml_data_on_maps(data)
 
 
 
</rcode>
 
 
 
== Points on dynamic Google Maps ==
 
This examples plots buildings of Kuopio on Google Maps. User can give the minimum age of buildings to plot as an input parameter.
 
 
 
 
 
<rcode name='plots_on_dynamic_maps' variables="name:age|description:Building minimum age|default:120">
 
 
 
library(rgdal)
 
library(RColorBrewer)
 
library(classInt)
 
library(OpasnetUtilsExt)
 
library(RODBC)
 
 
 
if (age > 190)
 
{
 
age <- 190
 
}
 
 
 
shp <- spatial_db_query(paste('SELECT * FROM kuopio_house WHERE ika >= ',age,';',sep=''))
 
 
 
coordinates(shp)=c("y_koord","x_koord")
 
 
 
plotvar<-shp@data$ika
 
nclr<-8
 
plotclr<-brewer.pal(nclr,"BuPu")
 
class<-classIntervals(plotvar,nclr,style="quantile")
 
colcode<-findColours(class,plotclr)
 
 
 
epsg4326String <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
 
proj4string(shp)<-("+init=epsg:3067")
 
shp2<-spTransform(shp,epsg4326String)
 
 
 
 
 
kmlname<-"Kuopio house data"
 
kmldescription<-"Random stuff about here"
 
icon<-"http://maps.google.com/mapfiles/kml/pal2/icon18.png"
 
name<-paste("Value: ",shp2$ika)
 
description <- paste("<b>Age:</b>",shp2$ika,"<br><b>Building ID:</b>",shp2$rakennustunnus)
 
 
 
data <- google.point_kml(shp2,kmlname,kmldescription,name,description,icon,colcode)
 
google.show_kml_data_on_maps(data)
 
 
 
</rcode>
 
 
 
== Large quantity of points on a static Google Maps ==
 
This example plots large number of point data on static Google Maps. The map produced in this example shows the age (in years) distribution of buildings within Kuopio. User can select the number of age classes (4,6 or 8) and the type of classification.
 
 
 
<rcode name='static_gmaps_test'
 
graphics='1'
 
Variables="name:myclasses|description:Number of classes|type:selection|options:4;4;6;6;8;8|default:8|
 
name:classtype|description:Type of classification|type:selection|options:'equal';Equal Int;'quantile';Quantile;'sd';Standard deviation;'jenks';Jenks|default:'quantile'
 
"
 
>
 
#code goes here
 
library(RgoogleMaps)
 
library(rgdal)
 
library(maptools)
 
library(RColorBrewer)
 
library(classInt)
 
library(OpasnetUtilsExt)
 
 
 
shp<-readOGR('PG:host=localhost user=postgres dbname=spatial_db','kuopio_house')
 
plotvar<-shp@data$ika
 
nclr<-myclasses
 
plotclr<-brewer.pal(nclr,"Reds")
 
class<-classIntervals(plotvar,nclr,style=classtype)
 
colcode<-findColours(class,plotclr)
 
 
 
epsg4326String <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
 
proj4string(shp)<-("+init=epsg:3067")
 
shp2<-spTransform(shp,epsg4326String)
 
#get marker information for all points
 
mymarkers<-cbind.data.frame(lat=c(shp2@coords[,2]),lon=c(shp2@coords[,1]),color=colcode);
 
 
 
#get the bounding box:
 
bb <- qbbox(lat = mymarkers[,"lat"], lon = mymarkers[,"lon"])
 
 
 
#MyMap function without the "file destination" parameter
 
MyRmap<-function (lonR, latR, center, size = c(640, 640), 
 
    MINIMUMSIZE = FALSE, RETURNIMAGE = TRUE, GRAYSCALE = FALSE,
 
    NEWMAP = TRUE, zoom, verbose = 1, ...)
 
{
 
    if (missing(zoom))
 
        zoom <- min(MaxZoom(latR, lonR, size))
 
    if (missing(center)) {
 
        lat.center <- mean(latR)
 
        lon.center <- mean(lonR)
 
    }
 
    else {
 
        lat.center <- center[1]
 
        lon.center <- center[2]
 
    }
 
    if (MINIMUMSIZE) {
 
        ll <- LatLon2XY(latR[1], lonR[1], zoom)
 
        ur <- LatLon2XY(latR[2], lonR[2], zoom)
 
        cr <- LatLon2XY(lat.center, lon.center, zoom)
 
        ll.Rcoords <- Tile2R(ll, cr)
 
        ur.Rcoords <- Tile2R(ur, cr)
 
        if (verbose > 1) {
 
            cat("ll:")
 
            print(ll)
 
            print(ll.Rcoords)
 
            cat("ur:")
 
            print(ur)
 
            print(ur.Rcoords)
 
            cat("cr:")
 
            print(cr)
 
        }
 
        size[1] <- 2 * max(c(ceiling(abs(ll.Rcoords$X)), ceiling(abs(ur.Rcoords$X)))) +
 
            1
 
        size[2] <- 2 * max(c(ceiling(abs(ll.Rcoords$Y)), ceiling(abs(ur.Rcoords$Y)))) +
 
            1
 
        if (verbose)
 
            cat("new size: ", size, "\n")
 
    }
 
    return(google.get_map(center = c(lat.center, lon.center), zoom = zoom,
 
        size = size, RETURNIMAGE = RETURNIMAGE,
 
        GRAYSCALE = GRAYSCALE, verbose = verbose, ...))
 
}
 
 
 
MyMap<-MyRmap(bb$lonR,bb$latR,maptype="mobile",scale="2")
 
 
 
PlotOnStaticMap(MyMap,size=c(640,640))
 
 
 
PlotOnStaticMap(MyMap,size=c(640,640),lat=mymarkers[,"lat"],lon=mymarkers[,"lon"],pch=19,cex=0.3,col=colcode,add=T)
 
  
legend("topleft", legend=names(attr(colcode, "table")),title="Building Age (Yr)", fill=attr(colcode, "palette"),  cex=1.0, bty="y",bg="white")
+
==Health effects of Drinking Water Model==
</rcode>
 
  
==Water model==
+
This example is model which is built for calculating health effects of drinking water and how water treatment processess affect to the outcome.
  
* [[Ground water pathogen concentration]]
+
* [[Ground water pathogen concentrations]]
  
 
<rcode  
 
<rcode  
Line 168: Line 12:
 
         name:i.raw.class|description:Water resource|type:selection|
 
         name:i.raw.class|description:Water resource|type:selection|
 
             options:
 
             options:
                 'Pohjavesi - Puhdas';Ground water - Clean;
+
                 'Ground water - Clean';Ground water - Clean;
                 'Pohjavesi - Pintavesikuormitus';Ground water - Surface water stress;
+
                 'Ground water - Surface water stress';Ground water - Surface water stress;
                 'Pintavesi - Vähäinen kuormitus';Surface water - Low stress;
+
                 'Surface water - Low stress';Surface water - Low stress;
                 'Pintavesi - Keskisuuri kuormitus';Surface water - Medium stress;
+
                 'Surface water - Medium stress';Surface water - Medium stress;
                 'Pintavesi - Suuri kuormitus';Surface water - High stress|
+
                 'Surface water - High stress';Surface water - High stress|
 
             category:Ground water: Pathogenic concentrations|
 
             category:Ground water: Pathogenic concentrations|
 
                 name:Kampylo|description:Cambylobacter-concentration estimation (microbe/l)|default:'Use water source specific classification'|
 
                 name:Kampylo|description:Cambylobacter-concentration estimation (microbe/l)|default:'Use water source specific classification'|
Line 219: Line 63:
 
     #Fetch2(data.frame(Name = "RaaPatPitLuo", Key = "AEmnj6ZNfhIHAt2X"), evaluate = TRUE)
 
     #Fetch2(data.frame(Name = "RaaPatPitLuo", Key = "AEmnj6ZNfhIHAt2X"), evaluate = TRUE)
 
     # fetching data from english Opasnet
 
     # fetching data from english Opasnet
     Fetch2(data.frame(Name = "RaaPatPitLuo", Key = "eJKTtosJiyZKwUs8"), evaluate = TRUE)
+
     #Fetch2(data.frame(Name = "RaaPatPitLuo", Key = "kjRoRPqqAzhaG8qR"), evaluate = TRUE)
 +
    temp <- tidy(op_baseGetData("opasnet_base", "Op_en5800"), objname = "RaaPatPitLuo")
 +
    print(xtable(temp), type = "html")
 +
 
 +
    RaaPatPitLuo <- new("ovariable",
 +
name        = "RaaPatPitLuo",
 +
data        = temp
 +
    )
 
      
 
      
    RaaPatPitLuo@output <- RaaPatPitLuo@output[RaaPatPitLuo@output$Raakavesilähde == i.raw.class, ]
+
  # RaaPatPitLuo@output <- RaaPatPitLuo@output[RaaPatPitLuo@output$Raakavesilähde == i.raw.class, ]
 +
  RaaPatPitLuo@output <- RaaPatPitLuo@output[RaaPatPitLuo@output$Water_source == i.raw.class, ]
 
     RaaPatPitLuo@output <- merge(
 
     RaaPatPitLuo@output <- merge(
 
         RaaPatPitLuo@output,  
 
         RaaPatPitLuo@output,  
Line 600: Line 452:
  
 
cat(sum(Health.effects$DALYs, na.rm = TRUE), " DALY's from stomach flus \n")     
 
cat(sum(Health.effects$DALYs, na.rm = TRUE), " DALY's from stomach flus \n")     
 +
</rcode>
 +
 +
== Polygons on dynamic Google Maps ==
 +
This example plots municipalities of Finland on Google Maps using data from National Land Survey of Finland.
 +
<rcode name="polygons_on_google_maps">
 +
 +
library(OpasnetUtilsExt)
 +
library(sorvi)
 +
library(rgdal)
 +
 +
# Get the shape data of Finnish municipalities using soRvi library
 +
data(MML)
 +
shp <- MML[["1_milj_Shape_etrs_shape"]][["kunta1_p"]]
 +
 +
# Set the projection
 +
epsg4326String <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
 +
proj4string(shp)<-("+init=epsg:3047")
 +
shp2<-spTransform(shp,epsg4326String)
 +
 +
# Create the KML data using the shape
 +
out<-sapply(slot(shp2,"polygons"),function(x){kmlPolygon(x,name="name",col='#df0000aa',lwd=1,border='black',description="desc") })
 +
data<-paste(
 +
paste(kmlPolygon(kmlname="This will be layer name", kmldescription="<i>More info about layer here</i>")$header, collapse="\n"),
 +
paste(unlist(out["style",]), collapse="\n"),
 +
paste(unlist(out["content",]), collapse="\n"),
 +
paste(kmlPolygon()$footer, collapse="\n"),
 +
sep=''
 +
)
 +
 +
# Show the KML data on Google Maps
 +
google.show_kml_data_on_maps(data)
 +
 +
</rcode>
 +
 +
== Points on dynamic Google Maps ==
 +
This examples plots buildings of Kuopio on Google Maps. User can give the minimum age of buildings to plot as an input parameter.
 +
 +
 +
<rcode name='plots_on_dynamic_maps' variables="name:age|description:Building minimum age|default:120">
 +
 +
library(rgdal)
 +
library(RColorBrewer)
 +
library(classInt)
 +
library(OpasnetUtilsExt)
 +
library(RODBC)
 +
 +
if (age > 190)
 +
{
 +
age <- 190
 +
}
 +
 +
shp <- spatial_db_query(paste('SELECT * FROM kuopio_house WHERE ika >= ',age,';',sep=''))
 +
 +
coordinates(shp)=c("y_koord","x_koord")
 +
 +
plotvar<-shp@data$ika
 +
nclr<-8
 +
plotclr<-brewer.pal(nclr,"BuPu")
 +
class<-classIntervals(plotvar,nclr,style="quantile")
 +
colcode<-findColours(class,plotclr)
 +
 +
epsg4326String <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
 +
proj4string(shp)<-("+init=epsg:3067")
 +
shp2<-spTransform(shp,epsg4326String)
 +
 +
 +
kmlname<-"Kuopio house data"
 +
kmldescription<-"Random stuff about here"
 +
icon<-"http://maps.google.com/mapfiles/kml/pal2/icon18.png"
 +
name<-paste("Value: ",shp2$ika)
 +
description <- paste("<b>Age:</b>",shp2$ika,"<br><b>Building ID:</b>",shp2$rakennustunnus)
 +
 +
data <- google.point_kml(shp2,kmlname,kmldescription,name,description,icon,colcode)
 +
google.show_kml_data_on_maps(data)
 +
 +
</rcode>
 +
 +
== Large quantity of points on a static Google Maps ==
 +
This example plots large number of point data on static Google Maps. The map produced in this example shows the age (in years) distribution of buildings within Kuopio. User can select the number of age classes (4,6 or 8) and the type of classification.
 +
 +
<rcode name='static_gmaps_test'
 +
graphics='1'
 +
Variables="name:myclasses|description:Number of classes|type:selection|options:4;4;6;6;8;8|default:8|
 +
name:classtype|description:Type of classification|type:selection|options:'equal';Equal Int;'quantile';Quantile;'sd';Standard deviation;'jenks';Jenks|default:'quantile'
 +
"
 +
>
 +
#code goes here
 +
library(RgoogleMaps)
 +
library(rgdal)
 +
library(maptools)
 +
library(RColorBrewer)
 +
library(classInt)
 +
library(OpasnetUtilsExt)
 +
 +
shp<-readOGR('PG:host=localhost user=postgres dbname=spatial_db','kuopio_house')
 +
plotvar<-shp@data$ika
 +
nclr<-myclasses
 +
plotclr<-brewer.pal(nclr,"Reds")
 +
class<-classIntervals(plotvar,nclr,style=classtype)
 +
colcode<-findColours(class,plotclr)
 +
 +
epsg4326String <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
 +
proj4string(shp)<-("+init=epsg:3067")
 +
shp2<-spTransform(shp,epsg4326String)
 +
#get marker information for all points
 +
mymarkers<-cbind.data.frame(lat=c(shp2@coords[,2]),lon=c(shp2@coords[,1]),color=colcode);
 +
 +
#get the bounding box:
 +
bb <- qbbox(lat = mymarkers[,"lat"], lon = mymarkers[,"lon"])
 +
 +
#MyMap function without the "file destination" parameter
 +
MyRmap<-function (lonR, latR, center, size = c(640, 640), 
 +
    MINIMUMSIZE = FALSE, RETURNIMAGE = TRUE, GRAYSCALE = FALSE,
 +
    NEWMAP = TRUE, zoom, verbose = 1, ...)
 +
{
 +
    if (missing(zoom))
 +
        zoom <- min(MaxZoom(latR, lonR, size))
 +
    if (missing(center)) {
 +
        lat.center <- mean(latR)
 +
        lon.center <- mean(lonR)
 +
    }
 +
    else {
 +
        lat.center <- center[1]
 +
        lon.center <- center[2]
 +
    }
 +
    if (MINIMUMSIZE) {
 +
        ll <- LatLon2XY(latR[1], lonR[1], zoom)
 +
        ur <- LatLon2XY(latR[2], lonR[2], zoom)
 +
        cr <- LatLon2XY(lat.center, lon.center, zoom)
 +
        ll.Rcoords <- Tile2R(ll, cr)
 +
        ur.Rcoords <- Tile2R(ur, cr)
 +
        if (verbose > 1) {
 +
            cat("ll:")
 +
            print(ll)
 +
            print(ll.Rcoords)
 +
            cat("ur:")
 +
            print(ur)
 +
            print(ur.Rcoords)
 +
            cat("cr:")
 +
            print(cr)
 +
        }
 +
        size[1] <- 2 * max(c(ceiling(abs(ll.Rcoords$X)), ceiling(abs(ur.Rcoords$X)))) +
 +
            1
 +
        size[2] <- 2 * max(c(ceiling(abs(ll.Rcoords$Y)), ceiling(abs(ur.Rcoords$Y)))) +
 +
            1
 +
        if (verbose)
 +
            cat("new size: ", size, "\n")
 +
    }
 +
    return(google.get_map(center = c(lat.center, lon.center), zoom = zoom,
 +
        size = size, RETURNIMAGE = RETURNIMAGE,
 +
        GRAYSCALE = GRAYSCALE, verbose = verbose, ...))
 +
}
 +
 +
MyMap<-MyRmap(bb$lonR,bb$latR,maptype="mobile",scale="2")
 +
 +
PlotOnStaticMap(MyMap,size=c(640,640))
 +
 +
PlotOnStaticMap(MyMap,size=c(640,640),lat=mymarkers[,"lat"],lon=mymarkers[,"lon"],pch=19,cex=0.3,col=colcode,add=T)
 +
 +
legend("topleft", legend=names(attr(colcode, "table")),title="Building Age (Yr)", fill=attr(colcode, "palette"),  cex=1.0, bty="y",bg="white")
 
</rcode>
 
</rcode>

Latest revision as of 09:28, 27 August 2013


Health effects of Drinking Water Model

This example is model which is built for calculating health effects of drinking water and how water treatment processess affect to the outcome.

Ground water: Pathogenic concentrations

Water resource:

Cambylobacter-concentration estimation (microbe/l):

E.coli O157:H7 -concentration estimation (microbe/l):

Rotavirus-concentration estimation (microbe/l):

Norovirus-concentration estimation (microbe/l):

Cryptosporidium-concentration estimation (microbe/l):

Giardia-concentration estimation (microbe/l):

City default values:

Water purification: Purification processess and chlorinesation

Available purification methods:
Traditional purification
Highly effective purification
Enhanced purification
Slow sand filtration
Limestone filtration
Activated carbon filtration
UV filtration
Ozonisation

Chlorine dose (mg/l):

Water network and consumers

Water consumption (ml):

Population:

+ Show code

Polygons on dynamic Google Maps

This example plots municipalities of Finland on Google Maps using data from National Land Survey of Finland.

+ Show code

Points on dynamic Google Maps

This examples plots buildings of Kuopio on Google Maps. User can give the minimum age of buildings to plot as an input parameter.


Building minimum age:

+ Show code

Large quantity of points on a static Google Maps

This example plots large number of point data on static Google Maps. The map produced in this example shows the age (in years) distribution of buildings within Kuopio. User can select the number of age classes (4,6 or 8) and the type of classification.

Number of classes:

Type of classification:

+ Show code