[R-sig-Geo] Rasterize point process using specific rule

Ege Rubak rub@k @end|ng |rom m@th@@@u@dk
Wed Aug 21 11:06:34 CEST 2019


If I understand your question correctly you can simply use the spatstat 
function `discs()`. Given `syn.ppp` created from your code the call is 
something like:

     D <- discs(syn.ppp, radii = marks(syn.ppp)/2, mask = TRUE, eps = 1)

For your dataset this covers almost the entire window if both the 
coordinates and the marks are in meters as I assume, but that is up to 
you to investigate.

/Ege

On 20/08/2019 15.12, ASANTOS via R-sig-Geo wrote:
> Dear members,
> 
> I've like to create a raster using my event coordinates and information
> about the size in this coordinates as a rule for my raster creation.
> First, I make:
> 
> library(raster)
> library(spatstat)
> 
> #Points coordinates in UTM
> xp<-c(371278.588,371250.722,371272.618,371328.421,371349.974,
> 371311.95,371296.265,371406.46,371411.551,371329.041,371338.081,
> 371334.182,371333.756,371299.818,371254.374,371193.673,371172.836,
> 371173.803,371153.73,371165.051,371140.417,371168.279,371166.367,
> 371180.575,371132.664,371129.791,371232.919,371208.502,371289.462,
> 371207.595,371219.008,371139.921,371133.215,371061.467,371053.69,
> 371099.897,371108.782,371112.52,371114.241,371176.236,371159.185,
> 371159.291,371158.552,370978.252,371120.03,371116.993)
> 
> yp<-c(8246507.94,8246493.176,8246465.974,8246464.413,8246403.465,
> 8246386.098,8246432.144,8246394.827,8246366.201,8246337.626,
> 8246311.125,8246300.039,8246299.594,8246298.072,8246379.351,
> 8246431.998,8246423.913,8246423.476,8246431.658,8246418.226,
> 8246400.161,8246396.891,8246394.225,8246400.391,8246370.244,
> 8246367.019,8246311.075,8246255.174,8246255.085,8246226.514,
> 8246215.847,8246337.316,8246330.197,8246311.197,8246304.183,
> 8246239.282,8246239.887,8246241.678,8246240.361,8246167.364,
> 8246171.581,8246171.803,8246169.807,8246293.57,8246183.194,8246189.926)
> 
> #Now I have the size of each nest in meters (marked process)
> 
> area<-c(117,30,4,341,15,160,35,280,108,168,63,143,2,48,182,42,
> 88,56,27,156,288,45,49,234,72,270,91,40,304,56,35,4,56.7,9,4.6,
> 105,133,135,23.92,190,12.9,15.2,192.78,104,255,24)
> 
> # Make a contour for the window creation
> W <- convexhull.xy(xp,yp)
> 
> #Create ppm object
> syn.ppp <- ppp(x=xp,y=yp,window=W, marks=area)
> 
> # Plot the point process
> plot(syn.ppp)
> 
> #Definition of raster resolution - 1 meter square
> ext <- as(extent(c(W$xrange,W$yrange)), "SpatialPolygons")
> syn.ras.res<-rasterToPoints(raster(ext, resolution = 1), spatial = TRUE)
> 
> #Now Rasterize
> syn.ras<- rasterize(syn.ras.res using coords, raster(syn.ras.res), *?????*)
> 
> I' ve like to create some kind of rule in *?????*, where pixel values in
> my final raster was 1 when inside de area (marks=area) and zero for
> outside de circular area given by points coordinates
> (syn.ras.res using coords) using 1 meter as resolution?
> 
> Any ideas, please
> 
> Thanks,
>



More information about the R-sig-Geo mailing list