Randomly samples longitude and latitude on earth so that equal areas are (approximately) equally likely to be sampled. (Approximation assumes earth as a perfect sphere.)
rlatlon(...)rlonlat(...)
rgeo(n = 1, latlim = c(-90, 90), lonlim = c(-180, 180), verbose = FALSE)
rgeo2(n = 1, latlim = c(-90, 90), lonlim = c(-180, 180), verbose = FALSE)
a data frame with variables long
and lat
. If verbose
is
TRUE, then x, y, and z coordinates are also included in the data frame.
arguments passed through to other functions
number of random locations
range of latitudes and longitudes to sample within, only implemented for rgeo
.
return verbose output that includes Euclidean coordinates on unit sphere as well as longitude and latitude.
rgeo
and rgeo2
differ in the algorithms used to generate random positions.
Each assumes a spherical globe. rgeo
uses that fact that each of the x, y and z
coordinates is uniformly distributed (but not independent of each other). Furthermore, the
angle about the z-axis is uniformly distributed and independent of z. This provides
a straightforward way to generate Euclidean coordinates using runif
. These are then
translated into latitude and longitude.
rlatlon
is an alias for rgeo
and
rlonlat
is too, expect that it reverses the
order in which the latitude and longitude values are
returned.
rgeo2
samples points in a cube by independently sampling each coordinate. It then
discards any point outside the sphere contained in the cube and projects the non-discarded points
to the sphere. This method must oversample to allow for the discarded points.
deg2rad()
, googleMap()
and latlon2xyz()
.
rgeo(4)
# sample from a region that contains the continental US
rgeo(4, latlim = c(25,50), lonlim = c(-65, -125))
rgeo2(4)
Run the code above in your browser using DataLab