[R-sig-Geo] Distances from points to coast do not make sense.

Barry Rowlingson b.rowlingson at lancaster.ac.uk
Thu Sep 18 11:51:36 CEST 2014


On Wed, Sep 17, 2014 at 10:13 PM, Agus Camacho <agus.camacho at gmail.com> wrote:
> Thanks again Robert,
>
> In case it is of help for any body, after trying several combinations, the
> fastest solution I got to calculate minimum distances to coast was:
>
> require(PBSmapping)
>
> wcoastline <- importShapefile("GSHHS_c_L1.shp")
> w=as.matrix(wcoastline[,c('X','Y')])
>
> # You will need x1, an object with: 1) long 2)lat coordinates
>
> require(sp)
>   distance=rep(NA,dim(x1)[1])
>   for(n in 1:dim(x1)[1])
>     {
>     distance[n]=min(spDistsN1(w,cbind(x[n,1], x1[n,2]),longlat=TRUE))
>   }
>   meandist=mean(distance)#
> }

 If I read that correctly, it doesn't do what you want it to do. It's
computing the distance to the nearest *vertex* of the coastline. A
long straight or simplified coastline could have vertices a long way
apart, and you'll get the wrong answer.

Here X is very close to the coastline but quite far from the vertices.
You'll get the vertex distance. Y is the same distance to the
coastline, but gets the correct small distance from the nearest
vertex:

                   X                Y
 *-----------------------------------*--------------* (proportional font needed)

I think someone has already given you a solution that computes
distance to lines, it may be slower but it has the property of being
correct!

Barry



More information about the R-sig-Geo mailing list