[R-sig-Geo] [FORGED] Create a Spatial Weight Matrix based on road distance

Rolf Turner r@turner @end|ng |rom @uck|@nd@@c@nz
Sun Jun 23 04:28:39 CEST 2019


On 23/06/19 1:17 PM, Rolando Valdez wrote:

> Thank you for your answer.
> 
> I have a shapefile with, say, counties, and I got another shapefile with 
> the roads. ¿What if a county does not intersect any road?

I am sorry, but it is not at all clear to me just what the problem is. 
How do the counties come into the picture?  You said you wanted to get 
the road distance between points on the roads.  What have the counties 
got to do with this?

Can you perhaps provide a reproducible example?

cheers,

Rolf

> 
> El jue., 20 de jun. de 2019 a la(s) 19:08, Rolf Turner 
> (r.turner using auckland.ac.nz <mailto:r.turner using auckland.ac.nz>) escribió:
> 
> 
>     On 21/06/19 12:26 PM, Rolando Valdez wrote:
> 
>      > Dear community,
>      >
>      > Is there any way to create a spatial weight matrix based on road
>     distance?
>      > I am trying to use the road distance between two points instead of
>      > euclidean distance.
>      >
>      > I've seen that there is a package named osrm. Can anyone give
>     some advice?
> 
>     I don't know anything about "osrm".  Calculating "road distances"
>     can be
>     done in the spatstat package reasonably easily, if you take the trouble
>     to represent your collection of roads as a "linnet" object.
> 
>     Given that you have done so, suppose that your linnet object is "L" and
>     that you have vectors "x" and "y" specifying the points on L (i.e. on
>     your roads) between which you want to know the distances.
> 
>     Do:
> 
>           X    <- lpp(data.frame(x=x,y=y),L)
>           dMat <- pairdist(X)
> 
>     The object "dMat" is a (symmetric) square matrix; dMat[i,j] is the
>     distance between point i and point j.  (Of course the diagonal entries
>     are all 0.)
> 
>     If your collection of roads is specified by means of a shapefile,
>     vignette("shapefiles") will tell you how to turn this collection into a
>     "psp" ("planar segment pattern") object; the function (method)
>     as.linnet.psp() can then be used to turn the "psp" object into a
>     "linnet" object.
> 
>     HTH



More information about the R-sig-Geo mailing list