[R-sig-Geo] Extract xy coordinates from raster of interesting neighborhood cells

ASANTOS @lex@ndre@@nto@br @ending from y@hoo@com@br
Wed May 30 23:04:46 CEST 2018


Thanks so much Vijay and Ben, now it works!!!

             Originally, I expect 24 for each 4 point (96 total). 
Apologies, in my example preparation I changed the raster objects 
'land_mask' and 'r' and the idea of my second point [45.12069, 
-88.369745] is to force NA results.

             The code below is a solution that I expected:

### Alternative to what Ben suggested!
## Set neighborhood matrix.  Focal cell is 0 while neighbors are 1!!
neigh <- matrix(1L, nrow=5, ncol=5); neigh[3,3] <- 0L
e1<-adjacent(r, N_cells , directions=neigh, pairs=FALSE)
ng_coords1 <- xyFromCell(r, e1)
plot(r);
points(pts, col='red', pch=16);
points(ng_coords, col='black', pch=16);
points(ng_coords1, col='blue', pch=16)
### END

-- 
======================================================================
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 using 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/
======================================================================

Em 30/05/2018 16:29, Vijay Lulla escreveu:
> Or you can try something like this?
>
> ### START
> require(raster)
> require(sp)
>
> r <- raster(nc=30, nr=30)
> r <- setValues(r, round(runif(ncell(r))* 255))
>
> 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)
>
> N_cells <- cellFromXY(r, pts_s)
> e<-adjacent(r, N_cells , directions='bishop', pairs=FALSE)
>
> ng_coords <- xyFromCell(r, e)
> plot(r)
> points(pts, col='red', pch=16)
> points(ng_coords, col='black', pch=16)
>
>
[[elided Yahoo spam]]
[[elided Yahoo spam]]
> neigh <- matrix(1L, nrow=5, ncol=5); neigh[3,3] <- 0L
> e1<-adjacent(r, N_cells , directions=neigh, pairs=FALSE)
> ng_coords1 <- xyFromCell(r, e1)
> plot(r);
> points(pts, col='red', pch=16);
> points(ng_coords, col='black', pch=16);
> points(ng_coords1, col='blue', pch=16)
> ### END
>
> HTH,
> Vijay.
>
> On Wed, May 30, 2018 at 4:22 PM, Ben Tupper <btupper using bigelow.org 
> <mailto:btupper using bigelow.org>> wrote:
>
>     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>
>     <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 using r-project.org <mailto:r-sig-geo using 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 using cas.ifmt.edu.br
>     <mailto:alexandre.santos using cas.ifmt.edu.br>
>     > Lattes: http://lattes.cnpq.br/1360403201088680
>     <http://lattes.cnpq.br/1360403201088680>
>     > OrcID: orcid.org/0000-0001-8232-6722
>     <http://orcid.org/0000-0001-8232-6722>
>     > Researchgate: www.researchgate.net/profile/Alexandre_Santos10
>     <http://www.researchgate.net/profile/Alexandre_Santos10>
>     > LinkedIn: br.linkedin.com/in/alexandre-dos-santos-87961635
>     <http://br.linkedin.com/in/alexandre-dos-santos-87961635>
>     > Mendeley:www.mendeley.com/profiles/alexandre-dos-santos6/
>     <http://www.mendeley.com/profiles/alexandre-dos-santos6/>
>     >
>     > _______________________________________________
>     > R-sig-Geo mailing list
>     > R-sig-Geo using r-project.org <mailto:R-sig-Geo using r-project.org>
>     > https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>     <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/
>
>
>
>
>
>
>             [[alternative HTML version deleted]]
>
>     _______________________________________________
>     R-sig-Geo mailing list
>     R-sig-Geo using r-project.org <mailto:R-sig-Geo using r-project.org>
>     https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>     <https://stat.ethz.ch/mailman/listinfo/r-sig-geo>
>
>
>
>
> -- 
> Vijay Lulla, Ph.D.
>
> Assistant Professor,
> Dept. of Geography, IUPUI
> 425 University Blvd, CA-207C.
> Indianapolis, IN-46202
> vlulla using iupui.edu <mailto:vlulla using iupui.edu>
>
> <http://vijaylulla.com>
> http://vijaylulla.com


	[[alternative HTML version deleted]]



More information about the R-sig-Geo mailing list