[R] Spatial: number of independent components?
Nikhil Kaza
nikhil.list at gmail.com
Mon Jun 21 02:43:06 CEST 2010
I am sure this can be written in a much more elegant and faster code.
One way I can think of, is to modify cell2nb code and create a new
function that creates the neighbour lists of only cells that are not
0. These are best directed to R-sig-Geo list.
However, the following might work.
library(spdep)
library(igraph)
> x=matrix(c(0,1,0,0,0,
> 0,1,1,0,0,
> 0,0,0,0,0,
> 0,0,0,1,0,
> 0,0,0,1,0),nrow=5)
a <- nb2mat(cell2nb(nrow(x),ncol(x)), style="B", torus="TRUE")
g <- delete.vertices(graph.adjacency(a), which(x!=1)-1)
plot(g)
clusters(g)
Nikhil
---
Nikhil Kaza
Asst. Professor,
City and Regional Planning
University of North Carolina
nikhil.list at gmail.com
On Jun 20, 2010, at 7:17 PM, Daniel Malter wrote:
>
> Hi all, I am sorry if this is a very basic quesion, but I have no
> experience
> with analyzing spatial data and could not find the right function/
> package
> quickly. Any hints would be much appreciated. I have a matrix of
> spatial
> point patterns like the one below and want to find the number of
> independent
> components (if that's the right term) in that matrix (or in that
> image).
>
> x=matrix(c(0,1,0,0,0,
> 0,1,1,0,0,
> 0,0,0,0,0,
> 0,0,0,1,0,
> 0,0,0,1,0),nrow=5)
>
> image(x)
>
> I can find the number of populated points easily
>
> table(x) #or more generally
> sum(x!=0)
>
> But I want to find the number of independent components. The answer
> in this
> example should be 2. There are three criteria to the function I am
> seeking:
>
> 1. Points that have a neighboring nonzero point should be counted as
> one
> contiguous component.
>
> 2. The function should respect that the matrix is projected on a
> torso. That
> is, points in the leftmost column border points in the rightmost
> column and
> points in the top row border points in the bottom row (if they are
> contiguous when you wrap the image around a cylinder).
>
> 3. The function should be fast/efficient since I need to run this over
> thousands of images/matrices.
>
> Is anyone aware of an implementation of such a function?
>
> Thanks much for your help,
> Daniel
> --
> View this message in context: http://r.789695.n4.nabble.com/Spatial-number-of-independent-components-tp2262018p2262018.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list