数据一直是科学研究绕不开的话题,为了方便快捷的获取各种地理数据,许多R包被开发出来,今天介绍一些方便快捷的数据R包。
rnaturalearth 包使 Natural Earth 数据可用。自然地球特征包括 1:10m、1:50m 和 1:1.1 亿比例尺的海岸线、河流、测深、政治边界、公路和铁路。下面我们使用这个包来获取国家边界数据:
library(rnaturalearth)
library(sf)
usa = ne_countries(country = "United States of America")plot(usa_sf)
当然,我们可以使用这些数据做做一些更好看的地图,例如不同比例尺的地图,代码如下:
library(ggplot2)
#world map
world <- ne_countries(scale = 110)
small_scale_map <- ggplot() +geom_sf(data = world) +coord_sf(xlim = c(-20, 50), ylim = c(33, 80)) +ggtitle("Europe")install.packages("rnaturalearthdata")
# europe map
europe <- ne_countries(scale = 50, continent = "Europe")
medium_scale_map <- ggplot() +geom_sf(data = europe) +coord_sf(xlim = c(5, 30), ylim = c(55, 71)) +ggtitle("Norden")#norway map
norway <- ne_countries(scale = 10, country = "Norway") large_scale_map <- ggplot() +geom_sf(data = norway) +coord_sf(xlim = c(4, 9), ylim = c(59, 62)) +ggtitle("Vestland")library(patchwork)
small_scale_map + medium_scale_map + large_scale_map
画出一个简单的海岸线:
coast = ne_coastline(scale = 10,returnclass = "sf")
ggplot()+geom_sf(data = coast)
ggOceanMaps,顾名思义,专注于海洋地图,包括海岸线、测深和冰川。ggOceanMaps 包包含一些数据。
.ggOceanMapsenv <- new.env()
.ggOceanMapsenv$datapath <- 'G:/R/R_study/ggOceanMapsLargeData' #
library(ggOceanMaps)basemap(limits = c(-30, 30, 50, 80),bathymetry = TRUE,glaciers = TRUE)
#换一个范围
basemap(limits = c(-180, 180, -90, 90),bathymetry = TRUE,glaciers = TRUE)
就这些吧,还有其他的数据,比如OSM,下次再写