On Fri, 14 Mar 2008, Murray Richardson wrote:

Hi Roger and others,

Thanks again for this helpful script. It made me see some potential to use spdep package for another related problem that I was previously using CGAL (C++) alpha shapes for.

Is there a way to output a list of nearest neighbour pairs in an xy coordinate list (or binary grid for that matter I guess). I would like to convert a binary grid of lines (1 cell thick) to a constituent line segment list of the form (startx, starty, end x end y), which I then polygonize using RODBC/postGIS, as we discussed in a previous thread.

Would nb2lines() in spdep help? It was written for a user wanting to write a shapefile of lines, so I guess that it either is what you are looking for, or close enough to serve as an example?

Roger


Thanks in advance!

Murray

Roger Bivand wrote:
 On Wed, 12 Mar 2008, Agustin Lobo wrote:

>  and a combination of r.clump and r.stats
>  in grass (which is "linked" to R) can also do the job.

 Yes, that will be very robust. I've tried an R attack through neighbour
 lists:

 library(sp)
 data(meuse.grid)
 coordinates(meuse.grid) <- c("x", "y")
 gridded(meuse.grid) <- TRUE
 fullgrid(meuse.grid) <- TRUE
 class(meuse.grid)
 names(meuse.grid)
 meuse.grid$ffreq1 <- meuse.grid$ffreq == 1
 is.na(meuse.grid$ffreq1) <- !meuse.grid$ffreq1
 image(meuse.grid, "ffreq1")
 pix <- as(meuse.grid["ffreq1"], "SpatialPixelsDataFrame")
 summary(pix)
 image(pix)
 library(spdep)
 nb_rook <- dnearneigh(coordinates(pix), 0, 41)
 nb_queen <- dnearneigh(coordinates(pix), 0, 57)
 comp_rook <- n.comp.nb(nb_rook)
 comp_queen <- n.comp.nb(nb_queen)
 t_rook <- table(comp_rook$comp.id)
 t_queen <- table(comp_queen$comp.id)
 t_rook
 t_queen
 pix$rook <- comp_rook$comp.id
 pix$queen <- comp_queen$comp.id
 image(pix, "rook", col=rainbow(31))
 pix$nrook <- t_rook[pix$rook]
 pix$nqueen <- t_queen[pix$queen]
 summary(pix)
 image(pix, "nqueen")
 spplot(pix, "nqueen")

 using cut-off distances for distance-based neighbours just larger than the
 resolution and the diagonal resolution. There were only 779 cells in
 patches here, but it ran so fast that scaling up shouldn't be a problem.

 Roger

> > Agus > > Andrew Niccolai escribió: > > If you aren't dedicated to an R specific solution, ImageJ is open > > source and
> >  does this under Analysis/Binary.
> > > > -----Original Message-----
> >  From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] On Behalf Of Murray > > Richardson
> >  Sent: Wednesday, March 12, 2008 12:59 PM
> >  To: r-sig-geo@stat.math.ethz.ch
> > Subject: [R-sig-Geo] enumerate grid clusters/patches with size of > > contiguous
> >  cluster
> > > > Hello friends, > > > > I am trying to take a binary input grid of patches (connected cells > > with > > value = 1), and assign to each non-zero cell the total number of > > pixels
> >  comprising the patch to which it belongs.
> > > > So for a connected patch of 27 pixels, all cells belonging to that > > patch
> >  will have a value of 27.
> > > > Just wondering if anyone has any suggestions. Maybe a function I > > don't
> >  know about yet...
> > > > Thanks in advance, > > > > Murray Richardson > >
_______________________________________________
> >  R-sig-Geo mailing list
> >  R-sig-Geo@stat.math.ethz.ch
> >  https://stat.ethz.ch/mailman/listinfo/r-sig-geo
> >
_______________________________________________
> >  R-sig-Geo mailing list
> >  R-sig-Geo@stat.math.ethz.ch
> >  https://stat.ethz.ch/mailman/listinfo/r-sig-geo
> > > >



--
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: [EMAIL PROTECTED]
_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to