[R-sig-Geo] distmap for polygons imported from shapefiles
Agustin Lobo
Agustin.Lobo at ija.csic.es
Mon Aug 13 12:35:52 CEST 2007
The distmap calculation works fine for polygons
imported from shapefiles, thanks Adrian and Roger!
Agus
Roger Bivand escribió:
>
> Doing all the conversions as specified, it does work:
>
> library(maptools)
> library(spatstat)
> load("refG.rda")
#Note, refG comes from:
#refG <-
#readOGR("C:/ALOBO/dipu2006/espaisoberts_P037/GARRAF/GFO_EOA_TOTS_v4",layer="GFO_EOA_Acti_v4")
> class(refG)
> ?as.owin.SpatialPolygons
>
> # (note no method for SpatialPolygonsDataFrame)
>
> plot(refG)
> .spatstat_check <- FALSE # this is the trick used to pass FALSE to check=
> w2 <- as(as(refG, "SpatialPolygons"), "owin")
> rm(.spatstat_check)
> plot(w2)
> p1 <- as.psp(w2)
> plot(p1)
> d <- distmap(p1)
> summary(d)
> plot(d)
> d[w2] <- NA
> summary(d)
> plot(d)
>
> Use the ... to distmap() to set your own raster parameters.
>
> Hope this helps,
>
> Roger
>
>
>> I get:
>>
>> Warning messages:
>> 1: $ operator is deprecated for atomic vectors, returning NULL in: po$x
>> 2: $ operator is deprecated for atomic vectors, returning NULL in: po$x
>> 3: $ operator is deprecated for atomic vectors, returning NULL in: po$y
>> 4: $ operator is deprecated for atomic vectors, returning NULL in: po$x
>> 5: $ operator is deprecated for atomic vectors, returning NULL in: po$y
>>
>> If I represent
>>
>>> plot(w)
>> I get an empty map. (summary(w) does not work)
>> and also for d:
>>> summary(d)
>> real-valued pixel image
>> 100 x 100 pixel array (ny, nx)
>> enclosing rectangle: [8.67361737988404e-19, 1] x
>> [8.67361737988404e-19, 1] units
>> dimensions of each pixel: 0.01 x 0.01 units
>> Image is defined on the full rectangular grid
>> Frame area = 1 square units
>> Pixel values :
>> range = [0,0]
>> integral = 0
>> mean = 0
>>
>> While
>>> plot(refG)
>> is correct.
>>
>> Finally,
>>> d[w] <- NA
>> Error in verify.xypolygon(polly) : polygon must be a list with two
>> components x and y
>>
>> I attach refG again. Remember it comes from
>> refG <-
>> readOGR("C:/ALOBO/dipu2006/espaisoberts_P037/GARRAF/GFO_EOA_TOTS_v4",layer="GFO_EOA_Acti_v4")
>>
>>
>> Agus
>>
>>
>>
>> adrian at maths.uwa.edu.au escribió:
>>> Agustin and Roger -
>>>
>>> Regarding your query about the distance map of polygonal windows:
>>>
>>> I forgot to mention that you can compute the distance map of a
>>> collection
>>> of *line segments* using distmap.psp. This is computed exactly using
>>> Euclidean geometry. You can convert a polygonal window to a psp object
>>> using as.psp.
>>>
>>> So the following would work safely. Suppose 'mypoly' is a collection of
>>> polygons that do not pass the polygon checking code in spatstat because
>>> they have some common vertices. Then
>>> w <- owin(poly=mypoly, check=FALSE)
>>> d <- distmap(as.psp(w))
>>> d[w] <- NA
>>>
>>> I hope this helps
>>>
>>> regards
>>> Adrian
>>>
>>>
>>>
>>
>>
>
--
Dr. Agustin Lobo
Institut de Ciencies de la Terra "Jaume Almera" (CSIC)
LLuis Sole Sabaris s/n
08028 Barcelona
Spain
Tel. 34 934095410
Fax. 34 934110012
email: Agustin.Lobo at ija.csic.es
http://www.ija.csic.es/gt/obster
More information about the R-sig-Geo
mailing list