Mario,

see (package::function):

geosphere::distCosine and several other dist* functions

sp::spDists

raster::pointDistance

(etcetera)

Robert

On Fri, Aug 31, 2012 at 12:05 PM, Mario A. Pardo <biomario@gmail.com> wrote:

> Hi,
>
> I need to calculate the great circle distances between consecutive
> coordinates.
>
> Let's say:
>
> lon <- c(-115.8667, -115.8667, -115.8583, -115.8500, -115.8500, -115.8500,
> -115.8444, -115.8389, -115.8333, -115.8333, -115.8333)
> lat <- c( 29.76670,  29.76670,  29.74170,  29.71670,  29.71670, 29.71670,
>  29.68337,  29.65003,  29.61670,  29.61670,  29.60000)
>
> The output vector that I need is:
>
> > distances
>
>          0
>     2.8990
>     2.8963
>          0
>          0
>     3.7496
>     3.7493
>     3.7496
>          0
>     1.8590
>
> In which each value corresponds to the distance (in kilometers) between
> one coordinate and the previous. Obviously this vector is one value shorter.
>
> I know that the function "rdist.earth" gives this result within a square
> matrix hidden as a diagonal, but it turns out that the position of that
> diagonal differs depending on the length of the coordinate vectors. That's
> a huge problem within a loop, because I'm dealing with thousands of sets of
> coordinates of different lengths and I can't extract the values
> iteratively. I just moved to R from Matlab, in which this was very straight
> forward with the "m_lldist" function.
>
> Do you know another function to compute this?
>
> Thanks in advance,
>
>  --
> mario
>
> ______________________________**_________________
> R-sig-Geo mailing list
> R-sig-Geo@r-project.org
> https://stat.ethz.ch/mailman/**listinfo/r-sig-geo<https://stat.ethz.ch/mailman/listinfo/r-sig-geo>
>

	[[alternative HTML version deleted]]

