前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >rgdal包readOGR使用

rgdal包readOGR使用

原创
作者头像
爱学习的小明明
修改2020-10-09 17:58:30
5.6K0
修改2020-10-09 17:58:30
举报
文章被收录于专栏:R语言学习

1R语言地图数据分类

R语言使用ggplot2作图,所支持的地图数据对象主要包括两类

sp: SpatialPolygonDataFrame

sf: Simple feature list column

这两株数据对象都可以通过读取shp数据获得

SP数据特点

SP空间数据对象是一个dataframe(数据描述层)和polygons(几何映射层)两个对象的组合

SP将地理数据分割为两大块:描述层和映射层,可以使用rgdal包的readOGR()函数读取数据。

描述层记录各个地理区域的名称、ID、编号、简写、iOS编码等信息,可以通过data@data来获取描述曾数据框。

映射层是每一个行政区域的多边形边界点,按照order排序,按照group分组,多边形分界点信息是一个多层嵌套的list结构,但我们可以通过fortity函数将其装换位数据框。

SP格式数据集
SP格式数据集

SP数据再用ggplot2绘制时,需要分离描述层数据和几何映射层数据,并为两者指定连接的id,如果你好要绑定自己的分析数据,那么一共需要合并两次数据。

SF数据特点

最大特点hi是,他将每一个行政区划所对应的几何边界点封装成一个list对象,这条记录就像其他普通的文本记录一样,被排列在对应行政区划描述单元中

使用sf包的st_read()函数导入的空间数据对象完全是一个整齐的数据结构,这些行列中包括了描述层和几何多边形的边界点信息。SF对象我们只需要指定一次合并即可,即将描述层和你的分析数据合并,使用sf::st_read()函数读取数据即可得到SF数据对象,其为data.frame对象类型。

SF数据
SF数据

2使用readOGR读取shp绘制地图

library(rgdal) #提供readOGR()函数

library(ggplot2)

library(dplyr)

p<-choose.files()

dataProjected <- readOGR(p) #读取shp文件

data1<-dataProjected@data #提取data数据,该数据为数据框类型,data1包2列括SP_id和type两列

rowid<-rownames(data1) #获取rowname,用于我们后面合并构造key值,其值为0,1,2....10

data1$id<-rowid #此时data1多了一列id,值为0-10

polydata<-fortify(dataProjected) #将SP数据转换为数据框,polydata包括7列long,lat,order,hole,id,group

data_map<-join(polydata,data1,by='id',type='full')#此时data_map包括9列

ggplot()+

geom_polygon(data=data_map, aes(x=long, y=lat, group=group,fill=type),colour="black",size=0.25)

使用coord_map("albers", parameters = c(0, 0))
使用coord_map("albers", parameters = c(0, 0))

我们如果有估计层面的shp数据则可以根据不同国家需求涂色

p_country<-choose.files()

dataCountru <- readOGR(p_country)

dataCountry1<-dataCountru@data #dataCountry1有两列,SP_ID和country

dataCountry1$id<-rownames(dataCountry1) #dataCountry1多了一列id,用于后续合并

country_poly<-fortify(dataCountru)

country_map<-join(country_poly,dataCountry1,by='id',type="full")

ggplot()+

geom_polygon(data=country_map, aes(x=long, y=lat, group=group,fill=country),colour="black",size=0.25)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1R语言地图数据分类
    • SP数据特点
      • SP空间数据对象是一个dataframe(数据描述层)和polygons(几何映射层)两个对象的组合
        • SF数据特点
        • 2使用readOGR读取shp绘制地图
        • 我们如果有估计层面的shp数据则可以根据不同国家需求涂色
        相关产品与服务
        图数据库 KonisGraph
        图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档