[R-sig-Geo] Error when running a Spatial Durbin Error Model without intercept
Dear list, I am trying to run a Spatial Durbin Error Model without intercept, however, I do get an error: In spatialreg::errorsarlm(formula = formula, data = data, listw = listw, : model configuration issue: no total impacts This is what I am doing: library(spatialreg) library(spdep) data(oldcol, package = "spdep") W <- spdep::nb2listw(COL.nb, style = "W") eq <- CRIME ~ 0 + INC + HOVAL sdem <- errorsarlm(eq, data = COL.OLD, listw = W, etype = "emixed", method = "eigen") Thanks for any advice. -- Rol~ [[alternative HTML version deleted]] ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Re: [R-sig-Geo] [FORGED] Create a Spatial Weight Matrix based on road distance
I see. It is very interesting. Thank you for your answer. El El jue, 27 de junio de 2019 a la(s) 3:08, Danlin Yu < y...@mail.montclair.edu> escribió: > Hi, Rolando: > > A Great Circle distance is the distance measured with un-projected > coordinates, or what we normally called the longitude and latitude > coordinates (measured in decimal degrees). These coordinates are > essentially Spherical coordinates recorded on the surface of a Sphere > (or sphere-like object, the Spheroid/Ellipsoid, which is basically our > Earth). When measuring distance using these coordinates, you must use > the Great Circle (the Circle that centered on the center of the Earth) > that crosses the two points and calculate the distance on the Great > Circle, which is calculated as (assuming the Earth is a perfect Sphere): > > [ (angle between the two lines from the center of the Earth to the two > points on the surface of the Earth)/360 ] * 2*Pai* (Radius of the Earth) > > If, however, the coordinates are projected to a planar system (a > Cartesian coordinate system), we can then use the normal Euclidean > distance measure to calculate the distance between two points recorded > in planar coordinate system (such as the UTM, State Plane used in the > US, and many others), which is calculated simply as: > > sqrt((difference between the xs)^2 + (difference between the ys)^2). > > Hope this helps. > > Best, > > Danlin > > On 6/27/2019 2:44 AM, Rolando Valdez wrote: > > Dear Prof. Roger, many thanks for your help, I am working on. > > > > I have a doubt: Which is the differece between Great Circle and Euclidean > > Distance? > > > > Thanks > > > > El lun., 24 de jun. de 2019 a la(s) 00:58, Roger Bivand ( > roger.biv...@nhh.no) > > escribió: > > > >> On Mon, 24 Jun 2019, Rolando Valdez wrote: > >> > >>> Dear Andres, > >>> > >>> I could follow an example provided with the package, it was a little > bit > >>> simple, however, I got this message: > >>> > >>>> dists <- osrmTable(loc = muns13, measure = "duration") > >>> The OSRM server returned an error: > >>> Error: The public OSRM API does not allow results with a number of > >>> durations > >>> higher than 1. Ask for fewer durations or use your own server and > set > >>> its > >>> --max-table-size option. > >>> > >>> My sample size is 2,457 > >> Were you asking for the whole nx(n-1)/2 set of durations in one run? You > >> see that the API limits the number of interactions (possibly by time and > >> by unique IP number). So you need to reduce the number of queries. If > you > >> are going to impose a distance threshold anyway, you can do that using > the > >> Great Circle (not Euclidean) distances between your geographical > >> coordinates and dnearneigh(), and step through the nb list object with > >> src= being the data frame of the observation coordinates, and dest= the > >> data frame of the neighbours' coordinates. > >> > >> library(sf) > >> nc <- st_read(system.file("shapes/sids.shp", package="spData")[1], > >> quiet=TRUE) > >> st_crs(nc) <- "+proj=longlat +datum=NAD27" > >> nc1 <- st_transform(nc, 32019) > >> nc2 <- st_centroid(nc1, of_largest_polygon=TRUE) > >> nc3 <- st_transform(nc2, 4326) > >> crds <- st_coordinates(st_geometry(nc3)) > >> df <- data.frame(id=nc3$FIPSNO, long=crds[,1], lat=crds[,2]) > >> library(spdep) > >> nb <- dnearneigh(crds, 0, 50, longlat=TRUE) > >> library(osrm) > >> res <- vector(mode="list", length=nrow(df)) > >> for (i in seq(along=res)) res[[i]] <- osrmTable(src=df[i,], > >>dst=df[nb[[i]],], measure = "duration") > >> res1 <- lapply(res, function(x) 10/x$duration) > >> lw <- nb2listw(nb, glist=res1, style="B") > >> > >> gives general spatial weights based on 10/# minutes travel time between > >> county centroids (centroids calculated from projected coordinates), for > >> county centroids closer than 50 km measured by Great Circle. > >> > >> In your case, you may need to split the for() loop into portions of > >> cumsum(card(nb)) of less than the limit. If durations are symmetric, > >> you could also halve the query count by taking only neighbour ids > i, > >> but you'd have to fold them back afterwards. You also wanted to > categorise > >> the durations
[R-sig-Geo] Error while performing Lagrange Multiplier test (bsktest)
Dear all: I am trying to compute a Lagrange Multiplier test through the function bsktest for panel data sets. This is what I am doing: library(rgdal) library(spdep) library(sf) library(spatialreg) spatialreg::set.ZeroPolicyOption(TRUE) spdep::set.ZeroPolicyOption(TRUE) shell.exec(" https://drive.google.com/open?id=1PHm5NX9IPoeo6vgv7Zb3VolNfOoApm6c=rvalde...@uabc.edu.mx=drive_fs ") headmuns <- readOGR(".", "head_muns_2013") #Reading shapefile with localities IDs <- row.names(headmuns) wgs84 <- "+proj=longlat +ellps=WGS84" headmunsWGS84 <- spTransform(headmuns, CRS(wgs84)) # Changing CRS headmunsxy <-coordinates(headmunsWGS84) #Creating a neighbor matrix with 20 km threshold distance nb20 <- dnearneigh(headmunsxy, 0, 20, longlat = TRUE, row.names = IDs) w20 <- nb2listw(nb20, style = "W", zero.policy = TRUE) ### The dataset shell.exec(" https://drive.google.com/file/d/1aeeetHi1p6YbFiWRAmI7dGqDoqBnsdAx/view?usp=sharing ") library(splm) library(plm) dbout <- read_dta("dbout.dta", package = "haven") pdbout <- pdata.frame(dbout, index = c("geocode", "yr")) spdbout <- pdbout[order(pdbout$yr),] restmod <- ilny ~ ilnk + factor(yr) bsktest(x = restmod, data = spdbout, listw = w20, test = "CLMlambda") Then I get the next error: Error in (WpsW) %*% q : Cholmod error 'X and/or Y have wrong dimensions' at file ../MatrixOps/cholmod_sdmult.c, line 90 -- Rol~ [[alternative HTML version deleted]] ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Re: [R-sig-Geo] [FORGED] Create a Spatial Weight Matrix based on road distance
Dear Prof. Roger, many thanks for your help, I am working on. I have a doubt: Which is the differece between Great Circle and Euclidean Distance? Thanks El lun., 24 de jun. de 2019 a la(s) 00:58, Roger Bivand (roger.biv...@nhh.no) escribió: > On Mon, 24 Jun 2019, Rolando Valdez wrote: > > > Dear Andres, > > > > I could follow an example provided with the package, it was a little bit > > simple, however, I got this message: > > > >> dists <- osrmTable(loc = muns13, measure = "duration") > > The OSRM server returned an error: > > Error: The public OSRM API does not allow results with a number of > > durations > > higher than 1. Ask for fewer durations or use your own server and set > > its > > --max-table-size option. > > > > My sample size is 2,457 > > Were you asking for the whole nx(n-1)/2 set of durations in one run? You > see that the API limits the number of interactions (possibly by time and > by unique IP number). So you need to reduce the number of queries. If you > are going to impose a distance threshold anyway, you can do that using the > Great Circle (not Euclidean) distances between your geographical > coordinates and dnearneigh(), and step through the nb list object with > src= being the data frame of the observation coordinates, and dest= the > data frame of the neighbours' coordinates. > > library(sf) > nc <- st_read(system.file("shapes/sids.shp", package="spData")[1], > quiet=TRUE) > st_crs(nc) <- "+proj=longlat +datum=NAD27" > nc1 <- st_transform(nc, 32019) > nc2 <- st_centroid(nc1, of_largest_polygon=TRUE) > nc3 <- st_transform(nc2, 4326) > crds <- st_coordinates(st_geometry(nc3)) > df <- data.frame(id=nc3$FIPSNO, long=crds[,1], lat=crds[,2]) > library(spdep) > nb <- dnearneigh(crds, 0, 50, longlat=TRUE) > library(osrm) > res <- vector(mode="list", length=nrow(df)) > for (i in seq(along=res)) res[[i]] <- osrmTable(src=df[i,], > dst=df[nb[[i]],], measure = "duration") > res1 <- lapply(res, function(x) 10/x$duration) > lw <- nb2listw(nb, glist=res1, style="B") > > gives general spatial weights based on 10/# minutes travel time between > county centroids (centroids calculated from projected coordinates), for > county centroids closer than 50 km measured by Great Circle. > > In your case, you may need to split the for() loop into portions of > cumsum(card(nb)) of less than the limit. If durations are symmetric, > you could also halve the query count by taking only neighbour ids > i, > but you'd have to fold them back afterwards. You also wanted to categorise > the durations into 0,1, which you could do with lapply() instead of using > inverse durations. > > Hope this helps, > > Roger > > > > > El vie., 21 de jun. de 2019 a la(s) 02:53, Andres Diaz Loaiza ( > > madi...@gmail.com) escribió: > > > >> Dear Rolando, > >> > >> The advantage of using Open Street Maps engine is that you can give the > >> travel option. This means you can select whether are you traveling by > bike, > >> car or walking. The previous approach didn't consider this topic. For > this, > >> you should have added a vector layer depending on your position of the > >> street you can take (or not). Open Street Maps project allow you two > >> options: a service in which you give your current position, the position > >> you want to reach and your transport method (giving you back the fastest > >> route). Or the option to download the engine/algorithm compile by > yourself > >> (if I am not wrong is made in C or python) and then you can make your > own > >> calculation at your own computer. For the first option, the package > OSRM is > >> an interface in which send a request to the OSM web page and wait for an > >> answer. With this method, you can send a couple of request at the same > time > >> but no to many (you should read the manual for this). Of course, also > will > >> depend on whether the OSM server is down or not (or busy). > >> > >> I have to say that I used some years ago this app and nowadays I know > that > >> for some cities OSM has more streets reported than the same google maps. > >> Also is an open project and they let you download their data for free, > >> contrary to what google maps do. > >> > >> All the best, > >> > >> > >> Andres > >> > >> El vie., 21 jun. 2019 a las 4:30, Adrian Baddeley (< > >> adrian.badde...@curtin.edu.au>) escribió: > >> > &
Re: [R-sig-Geo] [FORGED] Create a Spatial Weight Matrix based on road distance
Dear Andres, I could follow an example provided with the package, it was a little bit simple, however, I got this message: > dists <- osrmTable(loc = muns13, measure = "duration") The OSRM server returned an error: Error: The public OSRM API does not allow results with a number of durations higher than 1. Ask for fewer durations or use your own server and set its --max-table-size option. My sample size is 2,457 El vie., 21 de jun. de 2019 a la(s) 02:53, Andres Diaz Loaiza ( madi...@gmail.com) escribió: > Dear Rolando, > > The advantage of using Open Street Maps engine is that you can give the > travel option. This means you can select whether are you traveling by bike, > car or walking. The previous approach didn't consider this topic. For this, > you should have added a vector layer depending on your position of the > street you can take (or not). Open Street Maps project allow you two > options: a service in which you give your current position, the position > you want to reach and your transport method (giving you back the fastest > route). Or the option to download the engine/algorithm compile by yourself > (if I am not wrong is made in C or python) and then you can make your own > calculation at your own computer. For the first option, the package OSRM is > an interface in which send a request to the OSM web page and wait for an > answer. With this method, you can send a couple of request at the same time > but no to many (you should read the manual for this). Of course, also will > depend on whether the OSM server is down or not (or busy). > > I have to say that I used some years ago this app and nowadays I know that > for some cities OSM has more streets reported than the same google maps. > Also is an open project and they let you download their data for free, > contrary to what google maps do. > > All the best, > > > Andres > > El vie., 21 jun. 2019 a las 4:30, Adrian Baddeley (< > adrian.badde...@curtin.edu.au>) escribió: > >> Rather than converting an object of class 'SpatialLines' or >> 'SpatialLinesDataFrame' to the spatstat class 'psp' and then converting it >> to the spatstat class 'linnet', it is safer and more efficient to convert >> the SpatialLines* object directly to class linnet using >> as.linnet.SpatialLinesDataFrame() from the package 'maptools'. >> >> >> Prof Adrian Baddeley DSc FAA >> >> John Curtin Distinguished Professor >> >> Department of Mathematics and Statistics >> >> Curtin University, Perth, Western Australia >> >> >> >> From: Rolf Turner >> Sent: Friday, 21 June 2019 10:08 AM >> To: Rolando Valdez >> Cc: r-sig-geo@r-project.org; Adrian Baddeley; Ege Rubak >> Subject: Re: [FORGED] [R-sig-Geo] Create a Spatial Weight Matrix based on >> road distance >> >> >> 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 >> >> cheers, >> >> Rolf Turner >> >> -- >> Honorary Research Fellow >> Department of Statistics >> University of Auckland >> Phone: +64-9-373-7599 ext. 88276 >> >> [[alternative HTML version deleted]] >> >> ___ >> R-sig-Geo mailing list >> R-sig-Geo@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-sig-geo >> > > > -- > Andrés D. > -- Rol~ [[alternative HTML version deleted]] ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Re: [R-sig-Geo] [FORGED] Create a Spatial Weight Matrix based on road distance
El dom., 23 de jun. de 2019 a la(s) 03:00, Roger Bivand (roger.biv...@nhh.no) escribió: > Comments inline below: > > On Sun, 23 Jun 2019, Rolando Valdez wrote: > > > I apologize for the lack of clarity. > > > > Let me try again: > > > > The SWM captures the spatial structure among territories. In the case of > a > > matrix based on distance, you define a distance-threshold, say 50 km, and > > every territory under that distance is considered as neighbor, in the > > matrix, those territories considered neighbors take the value 1, and 0 > > otherwise (territories beyond 50 km). This is what 'dnearneigh' function > > does. > > > > Then, I want to define a distance-threshold, say 50 km by road (not > > euclidean) and every territory under that distance (by road) be > considered > > as neighbor. > > > So the main goal is to use distance by road between territories to > construct a neighbour object, with a maximum distance threshold. > Yes, just like that. > > Firstly, why do you suppose that this will represent your a priori > knowledge better than contiguity, which is the most obvious measure of > neighbourhood for data with areal support? > I'm running the same specification with 8 distance-threshold to assess the impact of the distance on a key dependent variable. > > If there are major mountain chains or water bodies impeding contact across > a boundary between contiguous territories, could you not just edit out > those graph edges (spdep::edit.nb() for example)? If there are many, a > programmatic approach may be needed. > Yes, there are many cases like this you mentioned. > > The inherent difficulty is that distances to territories in practice mean > that you have to change support from area to point, and that needs > thinking through. A territory centroid may, for example, not lie on a > transport link. If you have finer scale population or production data, you > might use weighted centroids, but this involves further steps, and using > this kind of data may add endogeneity, as the variables used to define the > neighbour object may enter your model elsewhere. > I have redefine the shapefile to urban areas, these polygons are smaller than counties, thus, their centroids would lie on the roads more confidently. I am not using variables to define the neighbor object. > > So: > > I) explain why you cannot simply use contiguities (using accessibility as > a covariate if important); > Because the distance is an explanatory component itself. > > II) if some contiguities given territory boundaries should be removed > because there are good reasons (mountain range, ...) for no contact, > provide a reproducible example so that you can be assisted in programming > the criteria for thinning the contiguity graph; and > > III) if you really want to go with road distances, provide a reproducible > example for first finding the representative point for each territory and > then giving the road network and territory boundaries. With the linear > network and the change-of-support points, it is not unlikely that the > spatstat linnet route will be easiest to implement. I have used raster > cost distances in GRASS for things like this (see the Snow example in ch. > 4 in ASDAR); gdistance is slower in that setting. > I've seen the example you suggest, I cannot figure out how to fit to my case . > > Hope this helps, > > Roger > > PS. It would be really helpful to use affiliations, as gmail addresses > tell us nothing about what might be expected of background knowledge. This > posting feels like someone looking for a response to a reviewer of an > article submitted to a journal, where the reviewer has little idea of the > underlying challenges involved in making such a revision. Not knowing > this, and the lack of a reproducible example leaves helpers pretty much in > the dark. Using existing or toy data sets lets you post without showing > too much of the detail in your specific problem, but in this thread there > has been too little information for reasonable traction. > You are absolutely right. I am trying to follow a suggestion from a referee, who suggests to switch from the euclidean distance to a road distance. This is the reason I posted my doubt, I had no clue even where to start. Now, I have task to do. Thanks a lot for your help. > > > > El sáb., 22 de jun. de 2019 a la(s) 21:15, Rolf Turner ( > > r.tur...@auckland.ac.nz) escribió: > > > >> 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 structu
Re: [R-sig-Geo] [FORGED] Create a Spatial Weight Matrix based on road distance
I mean the distance between centroids of polygons that represent counties. Thank you for your time. El dom., 23 de jun. de 2019 a la(s) 01:17, Rolf Turner ( r.tur...@auckland.ac.nz) escribió: > > On 23/06/19 6:01 PM, Rolando Valdez wrote: > > > I apologize for the lack of clarity. > > > > Let me try again: > > > > The SWM captures the spatial structure among territories. In the case of > > a matrix based on distance, you define a distance-threshold, say 50 km, > > and every territory under that distance is considered as neighbor, in > > the matrix, those territories considered neighbors take the value 1, and > > 0 otherwise (territories beyond 50 km). This is what 'dnearneigh' > > function does. > > > > Then, I want to define a distance-threshold, say 50 km by road (not > > euclidean) and every territory under that distance (by road) be > > considered as neighbor. > > You still have not defined what you mean by *distance* between > territories (regions, counties). Distance between *points* is well > defined; distance between territories is not. You have to specify what > you mean by such a distance. This could be the minimum distance between > points in the regions (which is not of course a metric), distance > between centroids of the territories, Hausdorff distance, or something > else. This applies whether you are talking about the distance between > points being Euclidean distance or road distance or some other metric. > Thresholding that distance (e.g. at 50 km.) is then a trivial matter. > > I have tried my best to get you to clarify what you mean, and my efforts > seem to be in vain. Since Juan Pablo thinks that I am "bullying you" > (which mystifies me completely) I guess I'll give up. And to respond to > Juan Pablo's hope, nothing whatever is "bothering" me. > > cheers, > > Rolf > > > > > El sáb., 22 de jun. de 2019 a la(s) 21:15, Rolf Turner > > (r.tur...@auckland.ac.nz <mailto:r.tur...@auckland.ac.nz>) escribió: > > > > 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 ) > > > > Yes, actually it is possible that two counties were connected by more > > than one road, however it's not a big deal. If I define a distance of 50 > > km, it doesn't matter how many times two counties are connected, I just > > need that they are at 50 km trough, at least, one road. > > > > 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? > > > > > > This is a big challenge, I'm still working on it. > > > > > > 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* >
Re: [R-sig-Geo] [FORGED] Create a Spatial Weight Matrix based on road distance
I don't know how exactly works that, but I will try. Thank you. El sáb., 22 de jun. de 2019 a la(s) 22:17, Juan Pablo Carranza ( carranzaju...@gmail.com) escribió: > Hi all! > I don't have the specific answer, but I don't appreciate academic bullying > either. So... here is a way you could take. Go to qgis, calculate road > distances by network analysis and then add it to your dataframe. Use this > new variable to weigth the matrix. > I hope this serves, and I hope Rolf solves what ever is bothering *him*. > Cheers > > Juan Pablo Carranza > Mgter. en Administración Pública > Lic. en Economía > > El dom., 23 de jun. de 2019 1:16 a. m., Rolf Turner < > r.tur...@auckland.ac.nz> escribió: > >> 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 >
Re: [R-sig-Geo] [FORGED] Create a Spatial Weight Matrix based on road distance
I apologize for the lack of clarity. Let me try again: The SWM captures the spatial structure among territories. In the case of a matrix based on distance, you define a distance-threshold, say 50 km, and every territory under that distance is considered as neighbor, in the matrix, those territories considered neighbors take the value 1, and 0 otherwise (territories beyond 50 km). This is what 'dnearneigh' function does. Then, I want to define a distance-threshold, say 50 km by road (not euclidean) and every territory under that distance (by road) be considered as neighbor. El sáb., 22 de jun. de 2019 a la(s) 21:15, Rolf Turner ( r.tur...@auckland.ac.nz) escribió: > 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 ) > > Yes, actually it is possible that two counties were connected by more than one road, however it's not a big deal. If I define a distance of 50 km, it doesn't matter how many times two counties are connected, I just need that they are at 50 km trough, at least, one road. > 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? > This is a big challenge, I'm still working on it. > > 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. > If two counties are not connected through a road, they could not be neighbors. In this case, it would correspond to a value 0 in the matrix. > > 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. > > In a sense is the same, but you said so properly, We have different research fields. > You need to get *your* thoughts clear; make some definitions and > specifications, and decide what you really want or need. > I got it. > > It seems that you are expecting R to magically do your thinking for you; > it won't! > > No, I'm not expecting that. > 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 i
Re: [R-sig-Geo] [FORGED] Create a Spatial Weight Matrix based on road distance
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). El sáb., 22 de jun. de 2019 a la(s) 20:00, Rolf Turner ( 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>) 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>>) > > 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 > -- Rol~ [[alternative HTML version deleted]] ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Re: [R-sig-Geo] [FORGED] Create a Spatial Weight Matrix based on road distance
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. El sáb., 22 de jun. de 2019 a la(s) 19:28, Rolf Turner ( 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>) 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 > -- Rol~ [[alternative HTML version deleted]] ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Re: [R-sig-Geo] [FORGED] Create a Spatial Weight Matrix based on road distance
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? El jue., 20 de jun. de 2019 a la(s) 19:08, Rolf Turner ( 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 > > cheers, > > Rolf Turner > > -- > Honorary Research Fellow > Department of Statistics > University of Auckland > Phone: +64-9-373-7599 ext. 88276 > -- Rol~ [[alternative HTML version deleted]] ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
[R-sig-Geo] Create a Spatial Weight Matrix based on road distance
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? Thank you in advance. Regards, -- Rol~ [[alternative HTML version deleted]] ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
[R-sig-Geo] How to order statistical data (spatial panel)
Hello all, I will to perform a spatial panel data, I have statistical data of 2000+ territories in 5 years ordered as typical simple panel data (Each territoriy has a unique geocode). In the other hand I have a shapefile with those 2000+ territories, but, when I've opened the dbf file, the order of units seems to have not order criteria. These ones have geocode too (same than statistical). The question is, how should I order my data to garantee a right matching between statistical and geographical data? -- Rol~ [[alternative HTML version deleted]] ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Re: [R-sig-Geo] Merging shapefiles and csv
there was no corresponding data to the shapefile. I tried shape1@data - na.exclude(shape1@data) and with na.omit, and this did reduce the number of rows to 1690, but the problem persists. Sorry if this is a really unhelpful question, I'm not sure how to do it when data is confidential. -- View this message in context: http://r-sig-geo.2731867.n2.nabble.com/Merging-shapefiles-and-csv-tp7586839.html Sent from the R-sig-geo mailing list archive at Nabble.com. ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo -- Rafael Wüest rafael.wue...@gmail.com http://www.rowueest.net ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo [[alternative HTML version deleted]] ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo Rolando Valdez ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
[R-sig-Geo] Assign coordinates to zip address
Hi everyone, Is possible assign coordinates to zip address? I’m not sure if it is possible and how could I do it. I have a lot of surveys from a specific urban area and the zip address by survey. Thank you in advance Rolando Valdez ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Re: [R-sig-Geo] Assign coordinates to zip address
Hi, The zipcode package provides coordinates by zip code in the U.S. The problem is, the information is not from the U.S., and I don’t need the coordinates by zip code, I have some surveys with the same zip code but different street name and number, as I said, I need the coordinate by survey. Thank you anyway, El 30/06/2014, a las 12:20, Frede Aakmann Tøgersen fr...@vestas.com escribió: Perhaps Google is your friend. Google for: r zip code to location Br. Frede Sendt fra Samsung mobil Oprindelig meddelelse Fra: Rolando Valdez Dato:30/06/2014 19.04 (GMT+01:00) Til: r-sig-geo@r-project.org Emne: [R-sig-Geo] Assign coordinates to zip address Hi everyone, Is possible assign coordinates to zip address? I’m not sure if it is possible and how could I do it. I have a lot of surveys from a specific urban area and the zip address by survey. Thank you in advance Rolando Valdez ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo Rolando Valdez ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Re: [R-sig-Geo] Assign coordinates to zip address
geocode() works well. Thank you El 30/06/2014, a las 13:19, Roland Harhoff roland.harh...@uni-muenster.de escribió: Rolando, if you do not have any concerns in using google you may try geocode() from the package ggmap. Wbr! Roland : ) Rolando Valdez schrieb am 2014-06-30: Hi, The zipcode package provides coordinates by zip code in the U.S. The problem is, the information is not from the U.S., and I don’t need the coordinates by zip code, I have some surveys with the same zip code but different street name and number, as I said, I need the coordinate by survey. Thank you anyway, El 30/06/2014, a las 12:20, Frede Aakmann Tøgersen fr...@vestas.com escribió: Perhaps Google is your friend. Google for: r zip code to location Br. Frede Sendt fra Samsung mobil Oprindelig meddelelse Fra: Rolando Valdez Dato:30/06/2014 19.04 (GMT+01:00) Til: r-sig-geo@r-project.org Emne: [R-sig-Geo] Assign coordinates to zip address Hi everyone, Is possible assign coordinates to zip address? I’m not sure if it is possible and how could I do it. I have a lot of surveys from a specific urban area and the zip address by survey. Thank you in advance Rolando Valdez ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo Rolando Valdez ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo Rolando Valdez ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
[R-sig-Geo] Export matrix weights to excel.
Hello, I'm working with a matrix weights, I want to know if I can export the output, to handle with excel. This is a part what I have: zm - readOGR(., zmdis”) OGR data source with driver: ESRI Shapefile Source: ., layer: zmdis with 56 features and 8 fields Feature type: wkbPolygon with 2 dimensions mapaxy = coordinates(zm) wdist100 = dnearneigh(mapaxy, d1=0, d2=10) l100 = nb2listw(wdist100, style=W, zero.policy=T) summary(l100, zero.policy=T) Characteristics of weights list object: Neighbour list object: Number of regions: 56 Number of nonzero links: 86 Percentage nonzero weights: 2.742347 Average number of links: 1.535714 21 regions with no links: 3 6 11 13 14 15 16 24 25 27 28 35 36 38 41 47 48 51 52 53 54 Link number distribution: 0 1 2 3 4 5 8 21 12 11 2 7 2 1 12 least connected regions: 1 5 7 17 19 20 21 30 33 34 45 55 with 1 link 1 most connected region: 37 with 8 links Weights style: W Weights constants summary: n nn S0 S1S2 W 35 1225 35 39.26667 147.3 I want to get a matrix [56 x 56] to work in excel with it. Thank you in advance. Rolando Valdez ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
[R-sig-Geo] Error message when dissolving polygons
Hi, I’m trying to dissolve a polygon with 345 municipalities in 56 metropolitan areas. I’m following a tutorial found in the web, now I’m stuck in a step, I got an error message: input = readShapePoly(zm.shp, proj4string=CRS(+proj=lcc +ellps=GRS80 +datum=WGS84)) projectedpolygons = spTransform(input, CRS(+proj=lcc +ellps=GRS80 +datum=WGS84)) zmprojPS = SpatialPolygons2PolySet(projectedpolygons) plotPolys(zmprojPS, proj=TRUE, col=wheat1, xlab=longitude, ylab=latitude) print(Calculating polygon areas...) [1] Calculating polygon areas... attr(zmprojPS, projection) [1] 1 attr(zmprojPS, projection) - LL zmPolyAreas = calcArea(zmprojPS, rollup=1) Error in calcArea(zmprojPS, rollup = 1) : To calculate the areas of polygons defined by longitude-latitude coordinates, this routine first projects them in UTM. Attempted to automatically calculate the missing 'zone' attribute, but that failed because the mean longitude falls outside the range -180 x = 180. How I can solve this issue? Thanks in advance, Rolando Valdez ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
[R-sig-Geo] Fwd: Spatial auto-correlation globally (sphere)
Hi, I’m not sure what kind of data you have. I work with shapes layers. Without more information, I expose you what have I done with my data: library(rgdal) library(sp) library(spdep) library(lattice) library(RANN) library(maptools) Checking rgeos availability: TRUE library(rgeos) map -readOGR(., zm”) #Reading the shape file. neigh=poly2nb(map, queen=FALSE) mapaxy=coordinates(map) k1=knn2nb(knearneigh(mapaxy, k=1)) #First order matrix weights dist=unlist(nbdists(k1, mapaxy)) summary(dist) Min. 1st Qu. MedianMean 3rd Qu.Max. 102143598492 13510 15290 273900 wdist20=dnearneigh(mapaxy, d1=0, d2=2) #Consider relationships within a 20km radio. l20=nb2listw(wdist20, style=W, zero.policy=TRUE) #Creating a matrix weights considering 20 km radio. summary(l20, zero.policy=TRUE) Characteristics of weights list object: Neighbour list object: Number of regions: 345 Number of nonzero links: 3296 Percentage nonzero weights: 2.769166 Average number of links: 9.553623 64 regions with no links: 1 2 3 4 25 26 27 28 29 30 31 32 33 34 35 36 37 38 42 44 45 46 47 48 49 56 57 61 62 63 65 66 86 87 88 93 149 150 152 166 167 168 170 172 177 179 228 229 236 237 239 241 242 243 244 284 285 291 298 309 314 315 334 335 Link number distribution: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 26 27 28 29 30 31 33 64 30 21 11 15 20 14 10 9 10 15 12 7 8 10 11 12 9 5 11 2 3 2 1 2 2 4 1 3 34 35 36 37 38 7 3 3 5 3 30 least connected regions: 23 24 40 41 58 59 60 64 148 151 181 202 212 213 224 225 226 227 230 231 232 233 234 235 294 308 322 325 329 333 with 1 link 3 most connected regions: 262 275 282 with 38 links Weights style: W Weights constants summary: nnn S0 S1 S2 W 281 78961 281 126.7744 1149.688 After that, you can to do the autocorrelation test (Moran test) with your statistical data: test=moran.test(datos$ind_alim, listw=l20, randomisation=TRUE, zero.policy=TRUE) test Moran's I test under randomisation data: datos$ind_alim weights: l20 Moran I statistic standard deviate = 3.762, p-value = 8.428e-05 alternative hypothesis: greater sample estimates: Moran I statistic Expectation Variance 0.135908714 -0.003571429 0.001374638 Other option you have, is to create the neighbor list object with GeoDa. Hope this example helps, Regards. Inicio del mensaje reenviado: De: Alex Mandel tech_...@wildintellect.com Asunto: [R-sig-Geo] Spatial auto-correlation globally (sphere) Fecha: 23 de marzo de 2014 14:46:19 GMT-6 Para: Aide R SIG GEO r-sig-...@stat.math.ethz.ch Responder a: t...@wildintellect.com Has anyone seen a method for creating a neighbor list, for use in spatial auto-correlation tests, that treats the earth as a sphere so that relationships can go shortest distance. I'm trying to make a neighbor list of all countries in the world. Yes I realize that the relatedness may not be distance and I might weight on some other factor but I need the neighbor list to start. Example, US - Japan, China or Russia should be a line across the Pacific Perhaps I need to develop the neighbor list using some sort of social diagramming tool instead. Any leads would be appreciated. Thanks, Alex ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo Rolando Valdez ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Re: [R-sig-Geo] Dramatically slow plotting
Hi Ben, I tried with X11(type=“Xlib”) and I had no changes in time. Then I tried with X11(type=“cairo”) and it reduced considerably the time, however, I got a low quality map. I think, the Quartz gives a high quality plots, that’s why it takes a lot of time. Regards, Rolando Valdez El 18/03/2014, a las 09:26, Ben galua...@mit.edu escribió: Hi Rolando, I don't use Macs but I do use Linux and have similar issues. I found it that the plotting device type called by default is inordinately slow at plotting spatial objects. Try opening a different type of device and run the example X11(type='Xlib') X11(type='cairo') also, try quartz() which is mac specific (and possibly called by default) help on X11 here: https://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/x11.html Cheers, Ben -- Original Message -- From: Rolando Valdez rvald...@gmail.com To: r-sig-geo@r-project.org Sent: 3/17/2014 6:23:51 PM Subject: [R-sig-Geo] Dramatically slow plotting Hello, Recently, I acquired a MacBook Pro, Core i7, 8 GB ram. I Installed the newest R version, 3.0.3 from the web page. The problem is when I’m plotting maps, because is going very, very slow, about 3 or 4 minutes just for a single map, while I’ve done this in a few seconds in Windows with Core i5 and 4 GB ram. This is what I have: R version 3.0.3 (2014-03-06) -- Warm Puppy Copyright (C) 2014 The R Foundation for Statistical Computing Platform: x86_64-apple-darwin10.8.0 (64-bit) [R.app GUI 1.63 (6660) x86_64-apple-darwin10.8.0] I found a reproducible example in web and I took time with proc.time() ptm - proc.time() library(sp) library(lattice) # required for trellis.par.set(): trellis.par.set(sp.theme()) # sets color ramp to bpy.colors() # prepare nc sids data set: library(maptools) nc - readShapePoly(system.file(shapes/sids.shp, package=maptools)[1], proj4string=CRS(+proj=longlat +datum=NAD27)) arrow = list(SpatialPolygonsRescale, layout.north.arrow(), offset = c(-76,34), scale = 0.5, which = 2) #scale = list(SpatialPolygonsRescale, layout.scale.bar(), # offset = c(-77.5,34), scale = 1, fill=c(transparent,black), which = 2) #text1 = list(sp.text, c(-77.5,34.15), 0, which = 2) #text2 = list(sp.text, c(-76.5,34.15), 1 degree, which = 2) ## multi-panel plot with filled polygons: North Carolina SIDS spplot(nc, c(SID74, SID79), names.attr = c(1974,1979), colorkey=list(space=bottom), scales = list(draw = TRUE), main = SIDS (sudden infant death syndrome) in North Carolina, sp.layout = list(arrow), as.table = TRUE) # sp.layout = list(arrow, scale, text1, text2), as.table = TRUE) proc.time() - ptm user system elapsed 2.408 0.064 2.616 It was quick. Then I did a single plot with my shape: mapa - readShapePoly(“Entidades_2013.shp”) ptm - proc.time() spplot(mapa[1]); proc.time() - ptm user system elapsed 87.575 0.786 88.068 Why it take a lot of time? I worked with same shapes in Windows and never took that time. Hope you can help me, Regards, Rolando Valdez ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo Rolando Valdez ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Re: [R-sig-Geo] Dramatically slow plotting
Hi Don, It didn’t work, it took a lot of time too. Thanks anyways Regards, El 20/03/2014, a las 09:44, MacQueen, Don macque...@llnl.gov escribió: I'm not sure this will help, but try usePolypath=FALSE in your call to spplot(). For further information, see help.search('polypath') I get: Help files with alias or concept or title matching 'polypath' using fuzzy matching: graphics::polypath Path Drawing sp::SpatialPolygons-class Class SpatialPolygons -Don -- Don MacQueen Lawrence Livermore National Laboratory 7000 East Ave., L-627 Livermore, CA 94550 925-423-1062 On 3/17/14 3:23 PM, Rolando Valdez rvald...@gmail.com wrote: Hello, Recently, I acquired a MacBook Pro, Core i7, 8 GB ram. I Installed the newest R version, 3.0.3 from the web page. The problem is when I¹m plotting maps, because is going very, very slow, about 3 or 4 minutes just for a single map, while I¹ve done this in a few seconds in Windows with Core i5 and 4 GB ram. This is what I have: R version 3.0.3 (2014-03-06) -- Warm Puppy Copyright (C) 2014 The R Foundation for Statistical Computing Platform: x86_64-apple-darwin10.8.0 (64-bit) [R.app GUI 1.63 (6660) x86_64-apple-darwin10.8.0] I found a reproducible example in web and I took time with proc.time() ptm - proc.time() library(sp) library(lattice) # required for trellis.par.set(): trellis.par.set(sp.theme()) # sets color ramp to bpy.colors() # prepare nc sids data set: library(maptools) nc - readShapePoly(system.file(shapes/sids.shp, package=maptools)[1], proj4string=CRS(+proj=longlat +datum=NAD27)) arrow = list(SpatialPolygonsRescale, layout.north.arrow(), offset = c(-76,34), scale = 0.5, which = 2) #scale = list(SpatialPolygonsRescale, layout.scale.bar(), #offset = c(-77.5,34), scale = 1, fill=c(transparent,black), which = 2) #text1 = list(sp.text, c(-77.5,34.15), 0, which = 2) #text2 = list(sp.text, c(-76.5,34.15), 1 degree, which = 2) ## multi-panel plot with filled polygons: North Carolina SIDS spplot(nc, c(SID74, SID79), names.attr = c(1974,1979), colorkey=list(space=bottom), scales = list(draw = TRUE), main = SIDS (sudden infant death syndrome) in North Carolina, sp.layout = list(arrow), as.table = TRUE) #sp.layout = list(arrow, scale, text1, text2), as.table = TRUE) proc.time() - ptm user system elapsed 2.408 0.064 2.616 It was quick. Then I did a single plot with my shape: mapa - readShapePoly(³Entidades_2013.shp²) ptm - proc.time() spplot(mapa[1]); proc.time() - ptm user system elapsed 87.575 0.786 88.068 Why it take a lot of time? I worked with same shapes in Windows and never took that time. Hope you can help me, Regards, Rolando Valdez ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo Rolando Valdez ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
[R-sig-Geo] Dramatically slow plotting
Hello, Recently, I acquired a MacBook Pro, Core i7, 8 GB ram. I Installed the newest R version, 3.0.3 from the web page. The problem is when I’m plotting maps, because is going very, very slow, about 3 or 4 minutes just for a single map, while I’ve done this in a few seconds in Windows with Core i5 and 4 GB ram. This is what I have: R version 3.0.3 (2014-03-06) -- Warm Puppy Copyright (C) 2014 The R Foundation for Statistical Computing Platform: x86_64-apple-darwin10.8.0 (64-bit) [R.app GUI 1.63 (6660) x86_64-apple-darwin10.8.0] I found a reproducible example in web and I took time with proc.time() ptm - proc.time() library(sp) library(lattice) # required for trellis.par.set(): trellis.par.set(sp.theme()) # sets color ramp to bpy.colors() # prepare nc sids data set: library(maptools) nc - readShapePoly(system.file(shapes/sids.shp, package=maptools)[1], proj4string=CRS(+proj=longlat +datum=NAD27)) arrow = list(SpatialPolygonsRescale, layout.north.arrow(), offset = c(-76,34), scale = 0.5, which = 2) #scale = list(SpatialPolygonsRescale, layout.scale.bar(), #offset = c(-77.5,34), scale = 1, fill=c(transparent,black), which = 2) #text1 = list(sp.text, c(-77.5,34.15), 0, which = 2) #text2 = list(sp.text, c(-76.5,34.15), 1 degree, which = 2) ## multi-panel plot with filled polygons: North Carolina SIDS spplot(nc, c(SID74, SID79), names.attr = c(1974,1979), colorkey=list(space=bottom), scales = list(draw = TRUE), main = SIDS (sudden infant death syndrome) in North Carolina, sp.layout = list(arrow), as.table = TRUE) #sp.layout = list(arrow, scale, text1, text2), as.table = TRUE) proc.time() - ptm user system elapsed 2.408 0.064 2.616 It was quick. Then I did a single plot with my shape: mapa - readShapePoly(“Entidades_2013.shp”) ptm - proc.time() spplot(mapa[1]); proc.time() - ptm user system elapsed 87.575 0.786 88.068 Why it take a lot of time? I worked with same shapes in Windows and never took that time. Hope you can help me, Regards, Rolando Valdez ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Re: [R-sig-Geo] +AFs-R-sig-Geo+AF0- Represent data on map
It didn't work. names(map) [1] CVE_EDONOMBRE_EDO names(unem) [1] num_est est X2000 X2005 X2010 X2013 spplot(map, 'X2000') Error en `[.data.frame`(obj@data, zcol) : undefined columns selected Is it a problema having separate shapefile information of statistic?, because there are two files, the .shp and csv, although these have the same identificator. I mean, the CVE_EDO = num_est and NOMBRE_EDO = est are the same value. I'm thinking if I have to paste the csv columns to the map object. Thanks, Rol~ -Mensaje original- De: MacQueen, Don [mailto:macque...@llnl.gov] Enviado el: sábado, 4 de enero de 2014 12:07 a. m. Para: Rolando Valdez; r-sig-geo@r-project.org Asunto: Re: [R-sig-Geo] Represent data on map Cannot help much without more information, but try: names(map) Then pick one of the column names. Apparently, 2000 is not the name of a column of data in the map object. If map is like unem, then perhaps spplot(map, 'X2000') is what you need. Note, the c() in c(2000) is not necessary. Simply 2000 would be sufficient. I am not familiar with the readShapeSpatial function; I always use readOGR() from the sp package. -Don -- Don MacQueen Lawrence Livermore National Laboratory 7000 East Ave., L-627 Livermore, CA 94550 925-423-1062 On 1/3/14 1:00 PM, Rolando Valdez rvald...@gmail.com wrote: Hi, I'm trying to represent data (unemployment rate) on a map. This is what I have: library(sp) library(maptools) Checking rgeos availability: TRUE map - readShapeSpatial(ESTADOS) read.csv(C:\\Users\\Rolando\\Documents\\Maestría en Economía\\3er Semestre\\AEMT\\desempleo_est.csv) spplot(map, c(2000)) Error en `[.data.frame`(obj@data, zcol) : undefined columns selected unem - read.csv(C:\\Users\\Rolando\\Documents\\Maestría en Economía\\3er Semestre\\AEMT\\desempleo_est.csv) names(unem) [1] num_est est X2000 X2005 X2010 X2013 I hope you can help me, this is my first time in R. Regards, Rol~ ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
[R-sig-Geo] Represent data on map
Hi, I'm trying to represent data (unemployment rate) on a map. This is what I have: library(sp) library(maptools) Checking rgeos availability: TRUE map - readShapeSpatial(ESTADOS) read.csv(C:\\Users\\Rolando\\Documents\\Maestría en Economía\\3er Semestre\\AEMT\\desempleo_est.csv) spplot(map, c(2000)) Error en `[.data.frame`(obj@data, zcol) : undefined columns selected unem - read.csv(C:\\Users\\Rolando\\Documents\\Maestría en Economía\\3er Semestre\\AEMT\\desempleo_est.csv) names(unem) [1] num_est est X2000 X2005 X2010 X2013 I hope you can help me, this is my first time in R. Regards, Rol~ ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Re: [R-sig-Geo] +AFs-R-sig-Geo+AF0- Creating a map with metropolitan areas
I have no tried anything, that's why I'm looking for help. Maybe this list is too advanced for my skills in R environment, because I need to start from the begining. My idea basicly is to merge both maps, and go painting the data by metropolitan area excluding the municipalities left. Perhaps you can guide me with some manuals for beginners about the maptools and sp. Some examples may help also. Thanks, Rol~ -Mensaje original- De: Greg Snow [mailto:538...@gmail.com] Enviado el: jueves, 26 de diciembre de 2013 11:03 p. m. Para: Rolando Valdez CC: r-sig-geo@r-project.org Asunto: Re: [R-sig-Geo] Creating a map with metropolitan areas What have you tried so far? Do you want base graphics? lattice graphics? gglot2 graphics? or any of them? I would probably start with the sp and maptools packages, but there are other tools listed in the spatial task view that may help as well. You are more likely to receive useful help if you show what you have tried (in a way that others can copy and paste to try themselves) and explain what you would like to be different. On Sun, Dec 22, 2013 at 3:41 PM, Rolando Valdez rvald...@gmail.com wrote: Hi, I'm new in this list, and new in the R environment. I'm trying to plot a map with the index localization by metropolitan area. I have a .shp with states (32 obs); https://skydrive.live.com/redir?resid=C319779BEF3A0241!1369authkey=!A Gj5MTC l0waT_w0v=3ithint=photo%2c.png then, I have a .shp with municipalities (2454 obs); https://skydrive.live.com/redir?resid=C319779BEF3A0241!1370authkey=!A FhsFOZ _kERbGKAv=3ithint=photo%2c.png then, I have the index localization by municipalities (345 municipalities) grouped in metropolitan areas and I need to plot something like this map: https://skydrive.live.com/redir?resid=C319779BEF3A0241!1364authkey=!A Eki9Sa DxCfPmy8v=3ithint=photo%2c.jpg I hope you can help me. Regards, Rolando ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo -- Gregory (Greg) L. Snow Ph.D. 538...@gmail.com ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
[R-sig-Geo] Creating a map with metropolitan areas
Hi, I'm new in this list, and new in the R environment. I'm trying to plot a map with the index localization by metropolitan area. I have a .shp with states (32 obs); https://skydrive.live.com/redir?resid=C319779BEF3A0241!1369authkey=!AGj5MTC l0waT_w0v=3ithint=photo%2c.png then, I have a .shp with municipalities (2454 obs); https://skydrive.live.com/redir?resid=C319779BEF3A0241!1370authkey=!AFhsFOZ _kERbGKAv=3ithint=photo%2c.png then, I have the index localization by municipalities (345 municipalities) grouped in metropolitan areas and I need to plot something like this map: https://skydrive.live.com/redir?resid=C319779BEF3A0241!1364authkey=!AEki9Sa DxCfPmy8v=3ithint=photo%2c.jpg I hope you can help me. Regards, Rolando ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo