From your initial question I suspect that what you want to do is
I <- gIntersects(b, comuniUTM, byID=TRUE)
Though this will probably rise the same error, which I suspect comes from the fact, that the
polygons in comuniUTM are topologically not correct. You might want to clean them e.g. in GRASS.
Others might correct me if there is an implementation for such a task in R.
Tom
Am 07.09.2011 13:59, schrieb luca candeloro:
Thank you,
I tried the following code:
UTM32WGS84<- CRS("+proj=utm +zone=32 +ellps=WGS84 +datum=WGS84 +no_defs")
comuniUTM=spTransform(comuni, UTM32WGS84) #where comuni is a
SpatialPolygonDataFrame
puntoUTM<- spTransform(punto, UTM32WGS84) #where punto is a
SpatialPointDataFrame
#I create the spatial polygon whit the buffer of 4 km around the point using
function gbuffer from
rgeos library (better than before)
b=gBuffer(puntoUTM,width=4000,quadsegs=50)
#Try to get intersection but an error occurs
I=gIntersection(b,comuniUTM
Errore in RGEOSBinTopoFunc(spgeom1, spgeom2, byid, id, "rgeos_intersection") :
TopologyException: found non-noded intersection between LINESTRING (759692
4.85308e+006, 759729
4.85308e+006) and LINESTRING (759729 4.85308e+006, 759692 4.85308e+006) at
759723 4.85308e+006
Do you konw about this error?
Bye,
Luca.
2011/9/7 Tom Gottfried <[email protected] <mailto:[email protected]>>
Hi Luca,
have a look at the functions in package rgeos.
regards,
Tom
Am 07.09.2011 13:12, schrieb luca candeloro:
Hello,
I'd like to select, given a SpatialPolygonDataframe and a point (of
known
coordinates), which are the polygons into the buffer (of a given
distance)
around the point.
I tried the following code, but I don't know how to end it...
UTM32WGS84<- CRS("+proj=utm +zone=32 +ellps=WGS84 +datum=WGS84
+no_defs")
comuniUTM=spTransform(comuni, UTM32WGS84) #where comuni is a
SpatialPolygonDataFrame
puntoUTM<- spTransform(punto, UTM32WGS84) #where punto is a
SpatialPointDataFrame
#I create the spatial polygon whit the buffer of 4 km around the point
using
function disc() and converting it into a SpatialPolygons...
discbuff<-disc(radius=4000, centre=puntoUTM@coords[,])
discpoly<-Polygon(rbind(cbind(__discbuff$bdry[[1]]$x,
y=discbuff$bdry[[1]]$y), c(discbuff$bdry[[1]]$x[1],
y=discbuff$bdry[[1]]$y[1])))
discpoly=list(discpoly)
discbuff<-Polygons(list(__discpoly[[1]]), ID=1)
discbuffSP=SpatialPolygons(__list(discbuff))
proj4string(discbuffSP)=__UTM32WGS84
#Does anyone konw how can I get the polygons in comuniUTM intersecting
the
discbuffSP?
Thanks a lot,
Luca.
[[alternative HTML version deleted]]
_________________________________________________
R-sig-Geo mailing list
[email protected] <mailto:[email protected]>
https://stat.ethz.ch/mailman/__listinfo/r-sig-geo
<https://stat.ethz.ch/mailman/listinfo/r-sig-geo>
--
Technische Universität München
Department für Pflanzenwissenschaften
Lehrstuhl für Grünlandlehre
Alte Akademie 12
85350 Freising / Germany
Phone: ++49 (0)8161 715324 <tel:%2B%2B49%20%280%298161%20715324>
Fax: ++49 (0)8161 713243 <tel:%2B%2B49%20%280%298161%20713243>
email: [email protected] <mailto:[email protected]>
http://www.wzw.tum.de/__gruenland <http://www.wzw.tum.de/gruenland>
_________________________________________________
R-sig-Geo mailing list
[email protected] <mailto:[email protected]>
https://stat.ethz.ch/mailman/__listinfo/r-sig-geo
<https://stat.ethz.ch/mailman/listinfo/r-sig-geo>
--
Technische Universität München
Department für Pflanzenwissenschaften
Lehrstuhl für Grünlandlehre
Alte Akademie 12
85350 Freising / Germany
Phone: ++49 (0)8161 715324
Fax: ++49 (0)8161 713243
email: [email protected]
http://www.wzw.tum.de/gruenland
_______________________________________________
R-sig-Geo mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo