|
|
(2 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
| [[Category:Opasnet]] | | [[Category:Opasnet]] |
| [[Category:Code under inspection]] | | [[Category:Code under inspection]] |
− | {{variable|moderator=Jouni|stub=Yes}} | + | [[Category:R tool]] |
| + | [[Category:Modelling]] |
| + | {{method|moderator=Jouni|stub=Yes}} |
| | | |
| == Question == | | == Question == |
Line 96: |
Line 98: |
| | | |
| ==== GoogleMaps Sorvi MML ==== | | ==== GoogleMaps Sorvi MML ==== |
− |
| |
− | {{attack|#|Something wrong with sorvi.|--[[User:Jouni|Jouni]] ([[User talk:Jouni|talk]]) 12:54, 23 December 2013 (EET)}}
| |
| | | |
| <rcode name='gmapspsqltest3'> | | <rcode name='gmapspsqltest3'> |
Line 423: |
Line 423: |
| * [https://gist.github.com/2292662 Plotting sp-objects to Google Maps with different CRSs] | | * [https://gist.github.com/2292662 Plotting sp-objects to Google Maps with different CRSs] |
| * [http://semantic-mediawiki.org/wiki/Special:MapEditor Map editor] | | * [http://semantic-mediawiki.org/wiki/Special:MapEditor Map editor] |
| + | * [http://www.findlatitudeandlongitude.com/batch-geocode/ Batch geocoding]: give addresses, the website will provide geolocations. Works for a few hundred addresses. |
| | | |
| ==Keywords== | | ==Keywords== |
Latest revision as of 11:29, 1 November 2016
Question
How should GIS data be handled and visualised in Opasnet?
Answer
- Original GIS data is stored in a PostgreSQL database.
- Data is accessed by R using the RGDAL package and ?? connection.
- Data in manipulated in R.
- Ovariables are converted to SpatialPointsDataFrame objects using ova2spat function.
- Data is displayed by producing a KML file with ?? package.
- The KML file is created with MyPointKML function, if pins are shown.
- The KML file is saved at the R-tools server.
- Google Maps is used to show the KML file on a web page.
Currently, ova2spat and MyPointKML functions are located in OpasnetUtils/Drafts. Therefore, you need this command:
objects.latest("Op_en6007", code_name = "answer") # OpasnetUtils/Drafts. We need MyPointsKML and ova2spat.
This is the projection that the National Land Survey Finland uses: [1].
Key guidance:
Rationale
Wiki maps
Loading map...
{"minzoom":false,"mappingservice":"googlemaps3","type":"ROADMAP","types":["ROADMAP","SATELLITE","HYBRID","TERRAIN"],"geoservice":"geonames","maxzoom":false,"width":"auto","height":"350px","centre":{"text":"","title":"","link":"","lat":62.918265445576,"lon":28.695259094238,"icon":""},"title":"","label":"","icon":"","visitedicon":"","lines":[],"polygons":[],"circles":[],"rectangles":[{"text":"\u003Cp\u003ELuikonlahden kaivos\n\u003C/p\u003E","title":"Luikonlahden kaivos\n","link":"","strokeColor":"#FF0000","strokeOpacity":"1","strokeWeight":"2","fillColor":"#FF0000","fillOpacity":"0.5","ne":{"lon":28.726844787598,"lat":62.940686125422},"sw":{"lon":28.702983856201,"lat":62.923735487049}}],"wmsoverlay":false,"copycoords":false,"static":false,"zoom":10,"layers":[],"controls":["pan","zoom","type","scale","streetview"],"zoomstyle":"DEFAULT","typestyle":"DEFAULT","autoinfowindows":false,"resizable":false,"kmlrezoom":false,"poi":true,"markercluster":false,"clustergridsize":60,"clustermaxzoom":20,"clusterzoomonclick":true,"clusteraveragecenter":true,"clusterminsize":2,"tilt":0,"imageoverlays":[],"kml":[],"gkml":[],"fusiontables":[],"searchmarkers":"","enablefullscreen":false,"locations":[{"text":"\u003Cp\u003EValuma-alue\n\u003C/p\u003E","title":"","link":"","lat":62.918265445576,"lon":28.695259094238,"icon":""},{"text":"","title":"","link":"","lat":62.926470124762,"lon":28.637065887451,"icon":""}]}
Loading map...
{"minzoom":false,"mappingservice":"googlemaps3","type":"ROADMAP","types":["ROADMAP","SATELLITE","HYBRID","TERRAIN"],"geoservice":"geonames","maxzoom":false,"width":"auto","height":"350px","centre":false,"title":"","label":"","icon":"","visitedicon":"","lines":[],"polygons":[],"circles":[],"rectangles":[],"wmsoverlay":false,"copycoords":false,"static":false,"zoom":false,"layers":[],"controls":["pan","zoom","type","scale","streetview"],"zoomstyle":"DEFAULT","typestyle":"DEFAULT","autoinfowindows":false,"resizable":false,"kmlrezoom":false,"poi":true,"markercluster":false,"clustergridsize":60,"clustermaxzoom":20,"clusterzoomonclick":true,"clusteraveragecenter":true,"clusterminsize":2,"tilt":0,"imageoverlays":[],"kml":[],"gkml":[],"fusiontables":[],"searchmarkers":"","enablefullscreen":false,"locations":[{"text":"","title":"","link":"","lat":62.928986,"lon":28.706245,"icon":""},{"text":"","title":"","link":"","lat":62.937734,"lon":28.712769,"icon":""}]}
Map editor and instructions
Calculations
Kuopio buildings with Google pin map
⇤#: In function google.point_kml, parameter name is not used for anything! --Jouni (talk) 08:42, 26 December 2013 (EET)
←#: What we need is a function that eats SpatialPointDataFrames and gives KML files with the data points in different formats (pins, coloured marks etc. --Jouni (talk) 08:42, 26 December 2013 (EET)
GoogleMaps Sorvi MML
Google with shapefiles
Google show data from url on map
Google circles
Rasters on Google maps
+ Show code- Hide code
library(OpasnetUtils)
library(OpasnetUtilsExt)
library(rgdal)
library(maptools)
library(RColorBrewer)
library(classInt)
library(raster)
altiste <- "Ni"
pitoisuus <- new("ovariable",
name = "pitoisuus",
data = tidy(op_baseGetData("opasnet_base", "Op_fi3280", series_id = 5509), objname= "pitoisuus")
)
# Remove empty rows.
pitoisuus@data <- pitoisuus@data[pitoisuus@data$pitoisuusResult != "" , ]
# Convert values that are below detection limit to ranges 0 - detection limit.
pitoisuus@data$pitoisuusResult <- gsub("<", "0-", pitoisuus@data$pitoisuusResult)
# Convert different time formats used to POSIXct time format.
temp <- as.POSIXct(pitoisuus@data$Aika, format = "%d.%m.%Y %H:%M")
temp <- ifelse(is.na(temp), as.POSIXct(pitoisuus@data$Aika, format = "%d.%m.%Y %H.%M"), temp)
temp <- ifelse(is.na(temp), as.POSIXct(pitoisuus@data$Aika, format = "%d.%m.%Y"), temp)
temp <- as.POSIXct(temp, origin = "1970-01-01 02:00.00 UTC")
pitoisuus@data$Aika <- temp
pitoisuus <- EvalOutput(pitoisuus, N = 1)
data <- pitoisuus@output[pitoisuus@output$Altiste == altiste, ]
data.time <- data
########### Concentrations on map
locs <- data.frame(Paikka = c(
"Lumijärvi",
"Ylä-Lumijärvi",
"Kivijärvi",
"Lumijoki, Kivijärveä lähin piste",
"Lumijoki, keskimmäinen piste",
"Lumijoki, Lumijärveä lähin piste",
"Lampi kaivosalueen reunalla 1",
"Lampi kaivosalueen reunalla 2",
"Puro Kalliojärven ja Salmisen välillä",
"Tuhkajoki",
"Kortelampi",
"Kärsälampi",
"Rengaskaivo, Pappila",
"Kalliojärvi",
"Kalliojoki",
"Lumijoki",
"Salmisenpuro"
),
LA = c(
63.942533,
63.945662,
63.931893,
63.925618,
63.936103,
63.945605,
63.986605,
63.992419,
64.004996,
64.044465,
63.950091,
63.992843,
63.968536,
64.012646,
64.018907,
63.935284,
64.003882
),
LO = c(
27.936602,
27.971964,
27.907677,
27.929521,
27.926474,
27.953424,
27.971706,
27.983251,
28.002756,
28.104916,
27.984538,
27.984581,
27.953897,
28.001447,
28.022261,
27.937717,
27.999601
))
oprint(locs)
data <- merge(data, locs)
result <- "pitoisuusResult"
title <- paste(altiste, "Talvivaaran läheisyydessä (", data$pitoisuusUnit[1], ")", sep = "")
coordinates(data)=c("LO","LA")
# Plot the data
proj4string(data)<-("+init=epsg:4326")
epsg4326String <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
shp<-spTransform(data,epsg4326String)
#Create blank raster
rast<-raster()
#Set raster extent to that of point data
extent(rast)<-extent(shp)
#Choose number of columns and rows
ncol(rast) <- 32
nrow(rast) <- 32
#Rasterize point data
rast2<-rasterize(shp, rast, shp[[result]], fun=mean)
start <- 0 # min(shp[[result]])
end <- max(shp[[result]])
steps <- approx(c(start,end),n=6)$y
colors <- rev(rainbow(length(steps), start=0, end=0.50))
par(mfrow=c(6,1), mar=c(3,1,0,1), cex=1.5)
colorstrip <- function(colors, labels)
{
count <- length(colors)
m <- matrix(1:count, count, 1)
image(m, col=colors, ylab="", axes=FALSE)
axis(1,approx(c(0, 1), n=length(labels))$y, labels)
}
cat("<span style='font-size: 1.2em;font-weight:bold;'>", title, "</span>\n")
colorstrip(colors, steps)
#Plot data
google.show_raster_on_maps(rast2, col=colors, style="height:500px;")
ggplot(data.time, aes(x = Paikka, y = pitoisuusResult, colour = pitoisuusResult)) +
geom_point(size = 5) + # point size
theme_grey(base_size = 24) + # font etc. http://sape.inf.usi.ch/quick-reference/ggplot2/themes
labs(
title = paste(altiste, "Talvivaaran läheisyydessä"),
y = paste("Pitoisuus,", data$pitoisuusUnit[1]),
x = "Mittauspaikka"
)
########### Concentrations in time
ggplot(data.time, aes(x = Aika, y = pitoisuusResult, colour = Paikka)) +
geom_point(size = 5) +
theme_grey(base_size = 24) +
labs(
title = paste(altiste, "Talvivaaran läheisyydessä"),
y = paste("Pitoisuus,", data$pitoisuusUnit[1]),
x = "Aika"
)
| |
Static GoogleMaps
See also
Keywords
References
Related files
<mfanonymousfilelist></mfanonymousfilelist>