使用R的数据包快速获取、调用各种地理数据

发布于:2024-11-29 ⋅ 阅读:(29) ⋅ 点赞:(0)

数据一直是科学研究绕不开的话题,为了方便快捷的获取各种地理数据,许多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,下次再写