[R] looking for a basic spatial diff function

Roger Bivand Roger.Bivand at nhh.no
Wed Jan 19 10:05:56 CET 2005


On Wed, 19 Jan 2005, McClatchie, Sam (PIRSA-SARDI) wrote:

> Background:
> OS: Linux Mandrake 10.1
> release: R 2.0.0
> editor: GNU Emacs 21.3.2
> front-end: ESS 5.2.3
> ---------------------------------
> 
> Colleagues
> 
> Is there a function to calculate distances between adjacent latitude/
> longitude pairs in a matrix? It is basically a spatial diff() function that
> I have in mind.
> 
> Data:
> 
> long1, lat1
> long2, lat2
> long3, lat3
> 
> looking for: diff(data$long, data$lat)
> 
> function Result
> 
> long1, lat1
> long2, lat2, distance = long/lat2 - long/lat1
> long3, lat3, distance = long/lat3 - long/lat2

A distance matrix can be got from the rdist.earth() function in the fields 
package:

> lon <- seq(-10,10,5)
> lat <- seq(-10,10,5)
> rdist.earth(cbind(lon, lat), miles=FALSE)
      
               [,1]      [,2]      [,3]      [,4]         [,5]
  [1,] 1.344145e-04  783.6868 1570.3395 2357.0091 3.140679e+03
  [2,] 7.836868e+02    0.0000  786.6784 1573.3568 2.357009e+03
  [3,] 1.570339e+03  786.6784    0.0000  786.6784 1.570339e+03
  [4,] 2.357009e+03 1573.3568  786.6784    0.0000 7.836868e+02
  [5,] 3.140679e+03 2357.0091 1570.3395  783.6868 1.344145e-04

from which you need to get the values below the diagonal.


> 
> I've probably missed it but a search of the maillist archives and quick scan
> of the packages (map*) did not solve my query. For this simple task I don't
> really want to get into GRASS.
> 
> Best fishes
> 
> Sam
> ----
> Sam McClatchie,
> Sub-program leader, Pelagic Fisheries
> South Australian Aquatic Sciences Centre
> PO Box 120, Henley Beach 5022
> Adelaide, South Australia
> email <mcclatchie.sam at saugov.sa.gov.au>
> Telephone: (61-8) 8207 5448
> FAX: (61-8) 8200 2481
> Research home page <http://www.members.iinet.net.au/~s.mcclatchie/>
>   
>                    /\
>       ...>><xX(°> 
>                 //// \\\\
>                    <°)Xx><<
>               /////  \\\\\\
>                         ><(((°> 
>   >><(((°>   ...>><xX(°>O<°)Xx><<
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> 

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Breiviksveien 40, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 93 93
e-mail: Roger.Bivand at nhh.no




More information about the R-help mailing list