R与GIS实践系列-Shapefile导入与地图显示

R与GIS实践系列-Shapefile导入与地图显示

1. R项目简介

R是一个开源的统计计算和图形编程语言和软件环境,广泛应用于统计分析和数据挖掘[1]。R项目遵循GNU协议,它的软件环境源码由C,Fortran和R写就。R可以运行在多个平台,包括各种Unix,Linux发行版本,Window和MacOS上, 国内有中科院、厦门大学、北京交通大学等多个镜像[2]。R是对S语言的一种实现,由Ross Ihaka 和 Robert Gentleman 所创建,R取之他们名字的首字母。R具有由用户贡献的大量的类库,能够处理各种科学计算的问题。

2.R与GIS

与地学问题相关的R类库也十分繁多,包括Spatial data,Maptools,RGdal等。 不过似乎StackOverflow的主站关于R在GIS的问题比GIS分站更为活跃。原因未知……之所以要使用R是因为R能够以Hadoop集成[3],希望利用R更高效地处理空间聚类问题。虽然Mashout也是一个很好的解决方案,但是感觉用户更加需要脚本式的问题处理工具。R的GIS的书籍比较少,基本都是以文档的形式存在,其中Applied spatial data analysis with R是一本挺好的教材。多使用Example命令和Google也是学习R的一个好途径。

3.Shapefile导入与地图显示

R中导入Shapefile是非常容易的,可以使用的包,包括RGdal,maptools,PBSmapping等。在这里我们采用maptools和sp两个类库来实现地图数据的导入和显示。在R中心选择镜像并下载。

  1.  加载这两个类库,输入如下代码:
    library(maptools)
    library(sp)
  2. 读取shapefile文件,可以直接输入文件路径或者通过file.choose函数来选择文件,这里采用国家基础地理信息系统1比400万数据中的省界国界。
    vent.map <-readShapeSpatial(file.choose())

    或者选择点、线、面类型输入

    point.mp <- readShapePoints(file.choose())
    line.mp <- readShapeLines(file.choose())
    poly.mp <- readShapePoly(file.choose())
    注意,这个命令并不导入Shapefiel的Proj文件,所以导入的是无坐标信息的数据。
     print(proj4string(vent.map))

    输出是:

    [1] NA
  3. 查看shapefile属性,添加坐标信息
    summary(vent.map)

    输出是:

    复制代码
    Object of class SpatialLinesDataFrame
    Coordinates:
            min       max
    x 73.446960 135.08583
    y  3.408477  53.55793
    Is projected: NA
    proj4string : [NA]
    Data attributes:
         FNODE_           TNODE_           LPOLY_          RPOLY_          LENGTH
     Min.   :   1.0   Min.   :   1.0   Min.   :  1.0   Min.   :  1.0   Min.   : 0.0040
     1st Qu.: 433.0   1st Qu.: 432.0   1st Qu.:  1.0   1st Qu.:  1.0   1st Qu.: 0.0300
     Median : 876.0   Median : 880.0   Median :  1.0   Median : 65.0   Median : 0.0700
     Mean   : 927.6   Mean   : 929.9   Mean   :128.8   Mean   :210.8   Mean   : 0.5421
     3rd Qu.:1344.0   3rd Qu.:1344.0   3rd Qu.:204.0   3rd Qu.:327.0   3rd Qu.: 0.2350
     Max.   :2131.0   Max.   :2131.0   Max.   :925.0   Max.   :926.0   Max.   :16.7130
        BOU2_4M_      BOU2_4M_ID        GBCODE
     Min.   :   1   Min.   :    1   Min.   :26010
     1st Qu.: 447   1st Qu.:  219   1st Qu.:26010
     Median : 893   Median :26010   Median :26010
     Mean   : 893   Mean   :17260   Mean   :35583
     3rd Qu.:1339   3rd Qu.:26010   3rd Qu.:61010
     Max.   :1785   Max.   :61156   Max.   :99001
    复制代码

    添加坐标信息

    proj4string(vent.map) <- "+proj=longlat +datum=WGS84"
  4. 显示地图
    plot(vent.map, axes=TRUE, border="gray")

         R就会弹出新的窗口显示:如图-1所示:

图1 R显示地图

4.参考文献

[1]R (programming language) 2012 http://en.wikipedia.org/wiki/R_(programming_language)

[2]The R Project for Statistical Computing 2012

http://www.r-project.org/

[3]RevolutionAnalytics / RHadoop 2012 https://github.com/RevolutionAnalytics/RHadoop

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GIS shape文件之中国数据库 SHAPEFILE_OF_CHINA ..................\Lambert ..................\.......\chinamap.mxd ..................\.......\hillshade_10k ..................\.......\.............\dblbnd.adf ..................\.......\.............\hdr.adf ..................\.......\.............\metadata.xml ..................\.......\.............\prj.adf ..................\.......\.............\sta.adf ..................\.......\.............\vat.adf ..................\.......\.............\w001001.adf ..................\.......\.............\w001001x.adf ..................\.......\hillshade_10k.aux ..................\.......\hillshade_10k.rrd ..................\.......\info ..................\.......\....\arc.dir ..................\.......\....\arc0000.dat ..................\.......\....\arc0000.nit ..................\.......\....\arc0001.dat ..................\.......\....\arc0001.nit ..................\.......\....\arc0002.dat ..................\.......\....\arc0002.nit ..................\.......\....\arc0002r.001 ..................\.......\中国县界.dbf ..................\.......\中国县界.prj ..................\.......\中国县界.sbn ..................\.......\中国县界.sbx ..................\.......\中国县界.shp ..................\.......\中国县界.shx ..................\.......\中国地州界.dbf ..................\.......\中国地州界.prj ..................\.......\中国地州界.sbn ..................\.......\中国地州界.sbx ..................\.......\中国地州界.shp ..................\.......\中国地州界.shx ..................\.......\中国湖泊.dbf ..................\.......\中国湖泊.prj ..................\.......\中国湖泊.sbn ..................\.......\中国湖泊.sbx ..................\.......\中国湖泊.shp ..................\.......\中国湖泊.shp.xml ..................\.......\中国湖泊.shx ..................\.......\主要公路.dbf ..................\.......\主要公路.prj ..................\.......\主要公路.sbn ..................\.......\主要公路.sbx ..................\.......\主要公路.shp ..................\.......\主要公路.shx ..................\.......\主要河流.dbf ..................\.......\主要河流.prj ..................\.......\主要河流.sbn ..................\.......\主要河流.sbx ..................\.......\主要河流.shp ..................\.......\主要河流.shx ..................\.......\主要铁路.dbf ..................\.......\主要铁路.prj ..................\.......\主要铁路.sbn ..................\.......\主要铁路.sbx ..................\.......\主要铁路.shp ..................\.......\主要铁路.shx ..................\.......\全国县级统计数据.dbf ..................\.......\全国县级统计数据.prj ..................\.......\全国县级统计数据.sbn ..................\.......\全国县级统计数据.sbx ..................\.......\全国县级统计数据.shp ..................\.......\全国县级统计数据.shp.xml ..................\.......\全国县级统计数据.shx ..................\.......\县城驻地.dbf ..................\.......\县城驻地.prj ..................\.......\县城驻地.sbn ..................\.......\县城驻地.sbx ..................\.......\县城驻地.shp ..................\.......\县城驻地.shx ..................\.......\国界线.dbf ..................\.......\国界线.prj ..................\.......\国界线.sbn ..................\.......\国界线.sbx ..................\.......\国界线.shp ..................\.......\国界线.shp.xml ..................\.......\国界线.shx ..................\.......\地级城市驻地.dbf ..................\.......\地级城市驻地.prj ..................\.......\地级城市驻地.sbn ..................\.......\地级城市驻地.sbx ..................\.......\地级城市驻地.shp ..................\.......\地级城市驻地.shx ..................\.......\省会城市.dbf ..................\.......\省会城市.prj ..................\.......\省会城市.sbn ..................\.......\省会城市.sbx ..................\.......\省会城市.shp ..................\.......\省会城市.shx ..................\.......\省级行政区.dbf ..................\.......\省级行政区.prj ..................\.......\省级行政区.sbn ..................\.......\省级行政区.sbx ..................\.......\省级行政区.shp ..................\.......\省级行政区.shx ..................\.......\线状县界.dbf ..................\.......\线状县界.prj
gt-shapefile是一个基于Geotools库的Java库,用于读取、写入和处理Shapefile格式的地理空间数据。 Shapefile是一种常用的地理空间数据格式,由多个文件组成,包括.shp、.shx和.dbf等,它可以存储点、线、面等不同类型的地理要素及其属性信息。 gt-shapefile提供了用于读取和写入Shapefile文件的方法,可以方便地将地理要素数据导入到Java程序中进行处理,或者将处理后的数据导出为Shapefile文件。通过gt-shapefile库,可以轻松地实现Shapefile文件的添加、修改和删除等操作,以及空间查询、空间分析等功能。 使用gt-shapefile时,首先需要创建一个Shapefile数据源,并指定Shapefile文件的路径。可以通过ShapefileDataStoreFinder类提供的静态方法获取数据源对象。然后,可以通过数据源对象获取FeatureSource对象,用于读取和写入地理要素数据。FeatureSource对象提供了访问地理要素及其属性的方法,可以方便地进行数据查询和数据操作。 此外,gt-shapefile还提供了一些用于处理地理要素数据的工具类和方法,比如计算地理要素的面积和长度等,以及进行空间坐标系的转换等。借助这些工具类和方法,可以更加灵活地处理和分析地理空间数据。 总之,gt-shapefile是一个功能强大的Java库,可以方便地读写和处理Shapefile格式的地理空间数据,为地理信息系统开发提供了便利。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值