[R-sig-Geo] polygon neighbor matrix
boB Rudis
bob at rudis.net
Mon Aug 31 20:24:32 CEST 2015
I second the `gTouches` suggestion. There's a ref here:
http://stackoverflow.com/a/26499134/1457051 but the gist of it is
(this user needed adjacent polygons in ghana):
library(rgeos)
library(rgdal)
# using http://data.biogeo.ucdavis.edu/data/diva/adm/GHA_adm.zip
ghana <- readOGR("GHA_adm", "GHA_adm1")
gTouches(ghana, byid=TRUE)
## 0 1 2 3 4 5 6 7 8 9
## 0 FALSE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE TRUE
## 1 TRUE FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE TRUE
## 2 TRUE FALSE FALSE TRUE TRUE FALSE FALSE FALSE FALSE TRUE
## 3 TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE FALSE
## 4 FALSE FALSE TRUE TRUE FALSE FALSE FALSE FALSE TRUE FALSE
## 5 FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE TRUE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE
## 7 FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE
## 8 FALSE TRUE FALSE TRUE TRUE TRUE FALSE FALSE FALSE FALSE
## 9 TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
On Mon, Aug 31, 2015 at 2:19 PM, Roger Bivand <Roger.Bivand at nhh.no> wrote:
> On Mon, 31 Aug 2015, Paul Lantos wrote:
>
>> Hi,
>>
>> I'm trying to use the cluster analysis program Flexscan, which I gather is
>> similar to Satscan but it computes irregular clusters. This program requires
>> a polygon adjacency matrix (termed a 'matrix definition file'). The example
>> they provide has a row for every polygon, and for each row every neighboring
>> polygon is listed in successive columns. So for instance if row 1 / polygon
>> 1 has 3 neighbors there will be three polygons listed in columns 2-4.
>>
>> I have tried some techniques like the spatial weights matrix tools in
>> ArcGIS and in Spatstat, but I cannot get the output in this kind of format.
>> Was wondering if there is some obvious way to do this in R.
>>
>> The documentation for Flexscan is here:
>>
>>
>> https://sites.google.com/site/flexscansoftware/download_e/FleXScan%20User%20Guide_e31.pdf?attredirects=0&d=1
>
>
> Something like:
>
> library(spdep)
> example(nc.sids)
> out <- sapply(seq(along=ncCR85_nb), function(i) paste(attr(ncCR85_nb,
> "region.id")[i], paste(attr(ncCR85_nb, "region.id")[ncCR85_nb[[i]]],
> collapse=" ")))
> writeLines(out, tf)
> file.show(tf)
>
> See also:
>
> vignette("nb")
>
> Roger
>
>>
>> Thanks for any help,
>> Paul
>>
>> _______________________________________
>> Paul M. Lantos, MD, FIDSA, FAAP, FACP
>> Departments of Internal Medicine and Pediatrics
>> Pediatric Infectious Diseases
>> Hospital Medicine Program
>> Duke University School of Medicine
>> _______________________________________
>>
>>
>> [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-sig-Geo mailing list
>> R-sig-Geo at r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>
>
> --
> Roger Bivand
> Department of Economics, Norwegian School of Economics,
> Helleveien 30, N-5045 Bergen, Norway.
> voice: +47 55 95 93 55; fax +47 55 95 91 00
> e-mail: Roger.Bivand at nhh.no
>
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
More information about the R-sig-Geo
mailing list