R语言空间数据分析学习笔记1——读取矢量数据并可视化
学习源:知乎作者:HopeR的专栏:R语言空间数据分析学习资源:CASA0005 Geographic Information Systems and ScienceSpatial Data ScienceGeocomputation with RGeodesic geometry首先做一个简单的上手案例,就是读取一个shapefile文件,一般来说,shape格式文件包括三个文件,才能成为一个完
学习源:知乎作者:HopeR的博客
课程学习资源:
CASA0005 Geographic Information Systems and Science
Spatial Data Science
Geocomputation with R
Geodesic geometry
数据获取资源:
Data lists
OSM
DEFRA
首先做一个简单的上手案例,就是读取一个shapefile文件,一般来说,shape格式文件包括三个文件,才能成为一个完整的整体。(分别是shp,shx,dbf)但是我们通常接触的都是带有空间信息的shape数据,所有还有一个prj文件,从而这四个文件构成一个带有空间参考的shape文件。我使用的原始文件与黄博士参考课程使用的不一样,是福建的行政区划矢量数据。
读取并进行可视化:
library(pacman)
p_load(sf)
FuJian_shp<-st_read("G:/shp/China/fujian1.shp")
# Reading layer `fujian1' from data source `G:\shp\China\fujian1.shp' using driver `ESRI Shapefile'
# Simple feature collection with 10 features and 2 fields
# geometry type: POLYGON
# dimension: XY
# bbox: xmin: 1115192 ymin: 3088867 xmax: 1541805 ymax: 3636025
# projected CRS: China_Lambert_Conformal_Conic
FuJian_shp
# Simple feature collection with 10 features and 2 fields
# geometry type: POLYGON
# dimension: XY
# bbox: xmin: 1115192 ymin: 3088867 xmax: 1541805 ymax: 3636025
# projected CRS: China_Lambert_Conformal_Conic
# NAME id geometry
# 1 金门县 2 POLYGON ((1387728 3192376, ...
# 2 漳州市 1 POLYGON ((1295738 3272646, ...
# 3 厦门市 4 POLYGON ((1361748 3251134, ...
# 4 龙岩市 2 POLYGON ((1162304 3345151, ...
# 5 泉州市 3 POLYGON ((1354679 3368489, ...
# 6 莆田市 1 POLYGON ((1440314 3363568, ...
# 7 福州市 2 POLYGON ((1454757 3466942, ...
# 8 三明市 4 POLYGON ((1234373 3482452, ...
# 9 南平市 3 POLYGON ((1345548 3635920, ...
# 10 宁德市 1 POLYGON ((1449518 3582618, ...
summary(FuJian_shp)
# NAME id geometry
# Length:10 Min. :1.00 POLYGON :10
# Class :character 1st Qu.:1.25 epsg:NA : 0
# Mode :character Median :2.00 +proj=lcc ...: 0
# Mean :2.30
# 3rd Qu.:3.00
# Max. :4.00
可视化
plot(FuJian_shp)
提示,如何字段属性内容是分类的,则自动会使用离散的颜色做区分,如果是数值变量则会调用冷暖色调来做区分。如果属性中只有缺失值,那么地理空间中将会一片空白,我们也可以只提取其地理边界进行可视化。(但是下面实在看不出什么离散颜色和冷暖色)
提取地理属性(边界),进行可视化
FuJian_shp %>%
st_geometry()%>%
plot()

tmap包提供了较好的可视化功能,不过包的加载可能会花费一些时间,比如我们对name进行可视化
p_load(tmap)
tmap_mode("plot")
qtm(FuJian_shp,fill = "NAME")
这也太强大了吧,直接给定位到福建在世界地图所在的位置了。
写在最后:
本次主要学习了矢量数据的读取,以及可视化(plot,或者tmap包里的)
可以学习的包:sf、tmap
sf:simple features, standard way to encode spatial vector data
qtm()函数输出居然是下面的可以拖动的地图,可见tmap包的别有洞天。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)