1 votos

Trazado de la distribución de especies en el mapa en R de Europa y África

install.packages("rgbif")
library("rgbif")

Species.Name <- "The name of the species"

#Search GBIF and download observations
Species.key <- name_backbone(name=Species.Name)$speciesKey
locations <- occ_search(taxonKey=Species.key,hasCoordinate = TRUE, return='data', limit=20000)

#Remove localities with uncertain coordinates - meaning the observer entered approximate latitude and longitude data. This is common with very old specimens/records that were collected prior to handheld GPS devices being invented
locations <- subset(locations, coordinateUncertaintyInMeters <= 5000)
head(locations)

### **Create a Map**

#### Install the maps package to download the political boundaries for the region of interest so we can map out the data.
```{r}
library(ggplot2)
#install.packages("maps")
# Download Country Boundaries
world <- map_data("world")

No estoy seguro de cómo conseguir que todo el ámbito de Europa y África muestren estas localidades en el mapa.

1voto

Oto Kaláb Puntos 121

Al principio hay que crear un objeto espacial a partir de localities datos de ocurrencia. Estos datos son una tabla con columnas decimalLongitude y decimalLatitude . Puede utilizar sp o sf paquete para esto.

# make spatial point object from lat,lon columns
library(sp)
sp_occs <- SpatialPoints(coords = locations[c("decimalLongitude","decimalLatitude")],
                         proj4string=CRS("+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 "))

Puede utilizar la base plot() que es útil para la inspección rápida de los datos.

# download world polygon data
library(maptools)
data("wrld_simpl")

# plot both spatial objects
plot(wrld_simpl)
plot(sp_occs,add=T,col="red")

enter image description here

Para recortar los polígonos en la medida deseada se puede utilizar crop() función de raster paquete. Esto recortará su objeto poligonal por otro objeto espacial o límites definidos (extensión).

library(raster)
extent_eur <- extent(-30,50,-30,70)

eur <- crop(wrld_simpl,extent_eur)

# plot cropped polygons and species points
plot(eur)
plot(sp_occs,
    pch=20,
    col="red",
    add=T)

enter image description here

Tenga en cuenta que sólo recortamos los polígonos del mundo, no los datos de ocurrencia. Si necesita un subconjunto de los datos de ocurrencia en esa región, sólo tiene que utilizar crop() de la misma manera. Además, si necesita un mapa de países específicos, también puede subconjuntar los datos de los polígonos por atributos (es decir, el nombre/código del país o la región, si está disponible).

Ejemplo de código para Mantis religiosa :

library(rgbif)
library(raster)#loads also "sp" package
library(maptools)

Species.Name <- "mantis religiosa"

Species.key <- name_backbone(name=Species.Name)$speciesKey
locations <- occ_search(taxonKey=Species.key,hasCoordinate = TRUE, return='data', limit=500)
locations <- subset(locations, coordinateUncertaintyInMeters <= 5000)

sp_occs <- SpatialPoints(coords = locations[c("decimalLongitude","decimalLatitude")],
                         proj4string=CRS("+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 "))

data("wrld_simpl")
extent_eur <- extent(-30,50,-30,70)

eur <- crop(wrld_simpl,extent_eur)

plot(eur)
plot(sp_occs,
    pch=20,
    col="red",
    add=T)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X