On 23/06/19 3:30 PM, Rolando Valdez wrote:
Sorry again.

A Spatial Weight Matrix (swm) is an object used in spatial econometrics to characterize the spatial structure among territories. It is an element nxn where n is the number of territorial units (counties, districts, states, cities, regions) in the sample and it could be based on contiguity or distance. Usually, you can create a swm based on distance using 'dnearneigh' from spdep and then convert to a listw through 'nb2listw'. The problem is that the matrix that you generate trough 'dnearneigh'computes the euclidean distance among centroids of polygons. This is where I spot my issue, I need to compute the swm using the road distance instead of euclidean distance computed through 'dnearneigh'. I do have a shapefile with poligons (counties) and another shapefile with lines (roads).

OK. It's getting a *bit* clearer .... You are interested in "road distances" between counties. I'm still not entirely sure what this means. Is it the *minimum* distance by road from one county to another? In which case, if two counties are contiguous (adjacent) and there is a road crossing the border between the two, is the distance between the counties equal to zero? (This doesn't seem like it would be satisfactory ....)

If this is not the case, then what *is* the case? Perhaps you want distances between the *centroids* of the counties. What then do you mean by road distance when the centroids do not lie on a road?

You apparently need to deal with counties in which there are no roads at all. To handle this you have to define what *you* mean by the distance by road from county A to county B when there are no roads at all in county B. Perhaps infinity would be the appropriate distance, but *I* don't know; you have to make the call.

Previously you indicated that you needed to know (pairwise) road distances between specified points in a given set, and I showed you how to obtain those using pairdist(), from spatstat. Now it seems that you want something rather different, and it's still not clear what.

You need to get *your* thoughts clear; make some definitions and specifications, and decide what you really want or need.

It seems that you are expecting R to magically do your thinking for you; it won't!

cheers,

Rolf

El sáb., 22 de jun. de 2019 a la(s) 20:00, Rolf Turner (r.tur...@auckland.ac.nz <mailto:r.tur...@auckland.ac.nz>) escribió:


    On 23/06/19 2:38 PM, Rolando Valdez wrote:

     > I am sorry, I was not clear enough. My goal is to calculate a
    spatial
     > weight matrix (nxn) across counties but, instead of euclidean
    distance,
     > to use road distance.

    I'm afraid I still don't understand.  To put it mildly. You presumably
    have a clear idea of what you are trying to, but those of us who are
    not
    involved in your research have no such idea.  We (or at least I)
    haven't
    a clue as to what you are talking about.

    What do you mean by "spatial weight"?  What are these weights used for?
    What is n?  How are the counties involved?  Is n the number of
    counties?
    Are you interested in the road distance (minimum road distance?)
    between
    pairs of counties?

    Please explain *clearly* and do not expect those who are trying to help
    you to be mind-readers!!!

    cheers,

    Rolf

     >
     > El sáb., 22 de jun. de 2019 a la(s) 19:28, Rolf Turner
     > (r.tur...@auckland.ac.nz <mailto:r.tur...@auckland.ac.nz>
    <mailto:r.tur...@auckland.ac.nz <mailto:r.tur...@auckland.ac.nz>>)
    escribió:
     >
     >
     >     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.tur...@auckland.ac.nz <mailto:r.tur...@auckland.ac.nz>
    <mailto:r.tur...@auckland.ac.nz <mailto:r.tur...@auckland.ac.nz>>
     >     <mailto:r.tur...@auckland.ac.nz
    <mailto:r.tur...@auckland.ac.nz> <mailto:r.tur...@auckland.ac.nz
    <mailto:r.tur...@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

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to