Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
The problem was that I only had a point shapefile, so I googled a way to transform a shapefile into a ppp object (which is the point pattern object used by spatstat).
I found a method that involves the use of
as.ppp(X)
to transform both spatial points
and spatial points data frames
into ppp
objects. The problem is when I tested with my dataset I received an error and I was not able to perform the transformation.So I decided to do it myself and I now want to share my two lines of code for doing it, maybe someone has has encountered the same problem and does not know how to solve it. Is this not the purpose of these blogs?
First of all, you need to create the window for the ppp
object, which I think it is like a bounding box. To do that you need to use the function owin
.
This functions takes 3 arguments: xrange
, yrange
and units
.
Because I assumed you need to give spatstat
a sort of bounding box for your data, I imported a polygon shapefile with the border of my area for creating the window.
The code therefore looks like this:
library(raster)
library(spatstat)
border <- shapefile("Data/britain_UTM.shp")
window <- owin(xrange=c(bbox(border[1,1],bbox(border[1,2]),
yrange=c(bbox(border)[2,1],bbox(border)[2,2]),
unitname=c("metre","metres"))
Then I loaded my datafile (i.e. WindData) and used the window object to transform it into a point pattern object, like so:
WindData <- shapefile("Data/WindMeanSpeed.shp")
WindDataPP <- ppp(x=WindData@coords[,1],
y=WindData@coords[,2],
marks=WindData@data$MEAN,
window=window)
Now I can use all the functions available in spatstat
to explore my dataset.
< face="arial"> summary(WindDataPP)
< >
< face="arial">< >
< face="arial">< >
< face="monospace">@fveronesi_phd< >
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.