[R-sig-Geo] Distances in geoR package

White.Denis at epamail.epa.gov White.Denis at epamail.epa.gov
Thu Jun 16 18:26:48 CEST 2005


In higher latitudes, if the study area has a relatively small range of
latitude (say less than 5 degrees), then simply scaling the longitudes
by the cosine of the mid-latitude, will give a satisfactory coordinate
system.  For example, if the study area ranges from latitude 40 to 45,
multiply the longitudes by cos (42.5 * pi/180) = 0.73..., or use the
function below.  This projection is neither equal-area nor conformal.

marinus <- function (lon, lat)
  # Arguments are vectors of longitude and latitude,
  # that is, geographic coordinates in decimal degrees.
  # Projection center defined as midpoint in lat-lon space.
  # Returns a two column matrix with column names "x" and "y",
  # in units of kilometers.
  # Line identifiers in lon[is.na (lat)] retained in x.
  # This is the equidistant cylindric map projection,
  # here named after Marinus of Tyre.
  # (ref JP Snyder, USGS Prof Paper 1395, p 90).
{
    R <- 6371 # authalic radius of Clarke 1866 rounded to km
    rlat <- range (lat, na.rm=TRUE)
    rlon <- range (lon, na.rm=TRUE)
    clat <- diff (rlat) / 2 + rlat[1]
    clon <- diff (rlon) / 2 + rlon[1]
    x <- R * (lon-clon)*pi/180 * cos (clat*pi/180)
    y <- R * (lat-clat)*pi/180
    x[is.na (lat)] <- lon[is.na (lat)]
    xy <- cbind (x=x, y=y)
    xy
}

r-sig-geo-bounces at stat.math.ethz.ch wrote on 2005-06-16 07:43:22:

> For low-latitudes and small distances, the error should be
> insignificant. You can check using proj.4 to compute some distances in
> both Euclidean and geodesic distances. For large distances or high
> latitudes, you can 1) project to a Cartesian coordinate system or 2)
> compute geodesic distances. I think there is an "earth.distance"
> somewhere in R.
>
> THK
>
>
> On Thu, 2005-06-16 at 15:58 +0200, giovanna jona lasinio wrote:
> > Dear all, this may be a stupid question, but I wasn't able to find
an
> > answer in the FAQ and in the mail archive.
> > I have a huge amount of  data, 644 sites for 30 different  times,
which
> > coordinates are expressed in decimal longitude and latitude, I'd
like to
> > simply compute the empirical variogram and use "variofit" to
estimate
> > variogram's parameters for each time. The "variog" function uses
> > euclidean distances and then it is not appropriate for lon-lat
> > coordinate. Is there any way to change the distance type in
"variog"? Or
> > which information are necessary to "variofit" in order to estimate
> > variogram's parameters?
> >
> > Thanks for any help
> > Giovanna Jona Lasinio
> >
> > _______________________________________________
> > R-sig-Geo mailing list
> > R-sig-Geo at stat.math.ethz.ch
> > https://stat.ethz.ch/mailman/listinfo/r-sig-geo
> --
> Tim Keitt
> Section of Integrative Biology
> http://www.keittlab.org/
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo




More information about the R-sig-Geo mailing list