以前在处理gis数据的时候,都是直接导入本地shp素材、本地geojson素材,本地topojson素材,自从接触postgis数据之后,深感使用规范的存储系统来统一管理gis数据的好处,特别是数据量大了之后,优势便更加明显,你可以选择将很多需要做空间计算的步骤转移到Postgis数据库内进行计算,要知道Postgis提供的空间计算能力与R和Python这种应用导向的工具相比,优势要大得多。
在批量导入素材之前,我们可以先看下R语言目前提供的各种导入接口在I/O性能上相比有何异同。
#install.packages("geojsonio")
#devtools::install_github("ropensci/geojsonio")
library("geojsonio")
library("rgdal")
library("sf")
library("maptools")
使用maptools包中的readShapePoly函数进行导入(已快被遗弃了,推荐使用sf和rgdal包)
system.time(china_map
用户 系统 流逝 0.23 0.00 0.23
Warning message:
use rgdal::readOGR or sf::st_read
china_map@data
ggplot2::fortify(china_map)
geojsonio包导入:
system.time(geojson1
"D:/R/rstudy/CHN_adm/bou2_4p.shp",
method = "local",
parse = TRUE,
what = "sp",
encoding="utf-8",
use_iconv=TRUE
))
用户 系统 流逝 0.69 0.03 0.71
使用rgdal包:
system.time(map_data
"D:/R/rstudy/CHN_adm/bou2_4p.shp",
encoding="utf-8",
use_iconv=TRUE