Extract xy coordinates from raster of interesting neighborhood cells
Hi, I'm not sure why you expect 24 points - you have 4 locations and for each you want the 4 bishop's directions - so, I think at most you should expect 16 points. See http://www.lpc.uottawa.ca/publications/moransi/moran.htm <http://www.lpc.uottawa.ca/publications/moransi/moran.htm> for where I expect 4 points for bishop's for each input location; perhaps you have a different idea of bishop's direction? Your second point [45.12069, -88.369745] is on to the southern edge of the raster - so it can't find points southward - only the 2 northward. Finally, it may not make any difference at all, but your pts_s has no coordinate reference. Below I show where I assign the same projection as your raster. I also don't have 'land_mask' so I reused 'r' and used xyFromCell to backwards extract the adjacent cell coordinates. Does that do the trick for you? Cheers, Ben ### START require(raster) require(sp) ## Create a raster r <- raster(nc=30, nr=30) r <- setValues(r, round(runif(ncell(r))* 255)) plot(r) ##Given interesting points coordinates xd <- c( -24.99270, 45.12069, 99.40321, 73.64419) yd <- c(-45.435267, -88.369745, -7.086949, 44.174530) pts <- data.frame(xd,yd) pts_s<- SpatialPoints(pts) projection(pts_s) <- projection(r) points(pts_s, col="red", pch=16) ## Find pixels center of each point N_cells <- cellFromXY(r, pts_s) e <- adjacent(r, N_cells , directions='bishop', id=TRUE, sorted = TRUE) xy <- xyFromCell(r, e[,'to'], spatial = TRUE) #Visualization plot(r) points(pts_s, col="red", pch=16) points(xy, col="black", pch=16) ### END
On May 30, 2018, at 3:11 PM, ASANTOS via R-sig-Geo <r-sig-geo at r-project.org> wrote:
Dear R-Sig-Geo Members,
I've like to extract xy coordinates from raster of 24 neigborhood cells that surround the 4 given points (pts_s) pixels and for this I used:
#Packages
require(raster)
require(sp)
## Create a raster
r <- raster(nc=30, nr=30)
r <- setValues(r, round(runif(ncell(r))* 255))
plot(r)
##Given interesting points coordinates
xd <- c(-24.99270,45.12069,99.40321,73.64419)
yd <- c(-45.435267,-88.369745,-7.086949,44.174530)
pts <- data.frame(xd,yd)
pts_s<- SpatialPoints(pts)
points(pts_s, col="red", pch=16)
## Find pixels center of each point (My idea is not to use the original point coordinates, but coordinates of the center of interesting pixel).
N_cells <- cellFromXY(r, pts_s)
# Extract xy coordinates from raster of 24 neighborhood cells given pixel number N_cells
e<-adjacent(r, N_cells , directions='bishop', id=TRUE)
coordinates(land_mask)[e[,1],] ## Doesn't return 24 neighborhood by N_cells object
ng_coords<-coordinates(land_mask)[e[,1],]
#
#Visualization
plot(r)
points(pts_s, col="red", pch=16)
points(ng_coords, col="black", pch=16)
##
But I don't have success because the ng_coords object is not a 24 neighborhood cells of each point that I search. There are solution for this?
Thanks in advance,
Alexandre
--
======================================================================
Alexandre dos Santos
Prote??o Florestal
IFMT - Instituto Federal de Educa??o, Ci?ncia e Tecnologia de Mato Grosso
Campus C?ceres
Caixa Postal 244
Avenida dos Ramires, s/n
Bairro: Distrito Industrial
C?ceres - MT CEP: 78.200-000
Fone: (+55) 65 99686-6970 (VIVO) (+55) 65 3221-2674 (FIXO)
alexandre.santos at cas.ifmt.edu.br
Lattes: http://lattes.cnpq.br/1360403201088680
OrcID: orcid.org/0000-0001-8232-6722
Researchgate: www.researchgate.net/profile/Alexandre_Santos10
LinkedIn: br.linkedin.com/in/alexandre-dos-santos-87961635
Mendeley:www.mendeley.com/profiles/alexandre-dos-santos6/
_______________________________________________ R-sig-Geo mailing list R-sig-Geo at r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Ben Tupper Bigelow Laboratory for Ocean Sciences 60 Bigelow Drive, P.O. Box 380 East Boothbay, Maine 04544 http://www.bigelow.org Ecological Forecasting: https://eco.bigelow.org/