Removes or flags mismatches between geographic coordinates and additional country information (usually this information is reliably reported with specimens). Such a mismatch can occur for example, if latitude and longitude are switched.
cc_coun(
x,
lon = "decimalLongitude",
lat = "decimalLatitude",
iso3 = "countrycode",
value = "clean",
ref = NULL,
ref_col = "iso_a3",
verbose = TRUE,
buffer = NULL
)
data.frame. Containing geographical coordinates and species names.
character string. The column with the longitude coordinates. Default = “decimalLongitude”.
character string. The column with the latitude coordinates. Default = “decimalLatitude”.
a character string. The column with the country assignment of each record in three letter ISO code. Default = “countrycode”.
character string. Defining the output value. See value.
SpatVector (geometry: polygons). Providing the geographic
gazetteer. Can be any SpatVector (geometry: polygons), but the structure
must be identical to rnaturalearth::ne_countries(scale = "medium",
returnclass = "sf")
.
Default = rnaturalearth::ne_countries(scale = "medium", returnclass =
"sf")
the column name in the reference dataset, containing the relevant ISO codes for matching. Default is to "iso_a3_eh" which refers to the ISO-3 codes in the reference dataset. See notes.
logical. If TRUE reports the name of the test and the number of records flagged.
numeric. Units are in meters. If provided, a buffer is created around each country polygon.
Depending on the ‘value’ argument, either a data.frame
containing the records considered correct by the test (“clean”) or a logical vector (“flagged”), with TRUE = test passed and FALSE = test failed/potentially problematic . Default = “clean”.
The ref_col argument allows to adapt the function to the structure of
alternative reference datasets. For instance, for
rnaturalearth::ne_countries(scale = "small")
, the default will fail,
but ref_col = "iso_a3" will work.
With the default reference, records are flagged if they fall outside the terrestrial territory of countries, hence records in territorial waters might be flagged. See https://ropensci.github.io/CoordinateCleaner/ for more details and tutorials.
if (FALSE) {
x <- data.frame(species = letters[1:10],
decimalLongitude = runif(100, -20, 30),
decimalLatitude = runif(100, 35,60),
countrycode = "RUS")
cc_coun(x, value = "flagged")#non-terrestrial records are flagged as wrong.
}