| 1 | source("minimal.r") |
---|
| 2 | |
---|
| 3 | hellor <- function(a,b,c) { |
---|
| 4 | # Create a useless graph |
---|
| 5 | cars <- c(1,2,3,4,5) |
---|
| 6 | filePath <- paste(a[["main"]][["tmpPath"]],paste("cars",zoo[["conf"]][["lenv"]][["usid"]],".png",sep=""),sep="/") |
---|
| 7 | png(filePath) |
---|
| 8 | plot(cars) |
---|
| 9 | quartzFonts(avenir = c("Avenir Book", "Avenir Black", "Avenir Book Oblique", "Avenir Black Oblique")) |
---|
| 10 | par(family = 'avenir') |
---|
| 11 | title("Hello from R World!") |
---|
| 12 | dev.off() |
---|
| 13 | # Set the result |
---|
| 14 | zoo[["outputs"]][["Result"]][["value"]] <<- paste("Hello",b[["S"]][["value"]],"from the R World! (plot ref:",filePath,")",sep=" ") |
---|
| 15 | # Update the main conf settings |
---|
| 16 | zoo[["conf"]][["lenv"]][["message"]] <<- "Running from R world!" |
---|
| 17 | # Return SERVICE_SUCCEEDEED |
---|
| 18 | return(zoo[["SERVICE_SUCCEEDEED"]]) |
---|
| 19 | } |
---|
| 20 | |
---|
| 21 | failR <- function(conf,inputs,outputs){ |
---|
| 22 | zoo[["conf"]][["lenv"]][["message"]] <<- ZOOTranslate("Failed running from R world!") |
---|
| 23 | return(zoo[["SERVICE_FAILED"]]) |
---|
| 24 | } |
---|
| 25 | |
---|
| 26 | voronoipolygons <- function(x,poly) { |
---|
| 27 | require(deldir) |
---|
| 28 | if (.hasSlot(x, 'coords')) { |
---|
| 29 | crds <- x@coords |
---|
| 30 | } else crds <- x |
---|
| 31 | bb = bbox(poly) |
---|
| 32 | rw = as.numeric(t(bb)) |
---|
| 33 | z <- deldir(crds[,1], crds[,2],rw=rw) |
---|
| 34 | w <- tile.list(z) |
---|
| 35 | polys <- vector(mode='list', length=length(w)) |
---|
| 36 | require(sp) |
---|
| 37 | finalCoordinates <- c() |
---|
| 38 | for (i in seq(along=polys)) { |
---|
| 39 | pcrds <- cbind(w[[i]]$x, w[[i]]$y) |
---|
| 40 | pcrds <- rbind(pcrds, pcrds[1,]) |
---|
| 41 | finalCoordinates[[i]] <- i |
---|
| 42 | polys[[i]] <- Polygons(list(Polygon(pcrds)), ID=as.character(i)) |
---|
| 43 | } |
---|
| 44 | SP <- SpatialPolygons(polys) |
---|
| 45 | voronoi <- SpatialPolygonsDataFrame(SP, data=data.frame(identifier=finalCoordinates)) |
---|
| 46 | return(voronoi) |
---|
| 47 | } |
---|
| 48 | |
---|
| 49 | RVoronoi <- function(conf,inputs,outputs){ |
---|
| 50 | require(rgdal) |
---|
| 51 | require(rgeos) |
---|
| 52 | message(names(inputs[["InputPoints"]])) |
---|
| 53 | message(inputs[["InputPoints"]]) |
---|
| 54 | myGeoData <- readOGR(inputs[["InputPoints"]][["cache_file"]],layer=ogrListLayers(inputs[["InputPoints"]][["cache_file"]])[1], verbose = FALSE); |
---|
| 55 | voronoiData <- voronoipolygons(myGeoData,myGeoData) |
---|
| 56 | filePath <- paste(conf[["main"]][["tmpPath"]],paste("RBuffer_",zoo[["conf"]][["lenv"]][["usid"]],".shp",sep=""),sep="/") |
---|
| 57 | writeOGR(voronoiData, dsn=filePath, layer="Voronoi", driver="ESRI Shapefile", verbose = FALSE) |
---|
| 58 | zoo[["outputs"]][["Result"]][["storage"]] <<- filePath |
---|
| 59 | return(zoo[["SERVICE_SUCCEEDEED"]]) |
---|
| 60 | } |
---|
| 61 | |
---|