R对土壤数据的制图(digital soil mapping DSM)支持的功能还是比较全面的,本文主要整理一下最近用到的、不可或缺的R packages,主要分为:
各包具体链接如下:
R根据shapefiles包可以读取Shapefile,并依据sp Link 包对空间数据处理,其中一个基本的需求是对空间点按照不同的Ploygon分组,要实现了这一基本功能,主要用到Sp的over函数,该函数返回Ponit所在Ploygon的ID。
修改记录(2015.5.20): 如Polygon较复杂(如有岛、洞等),用shapefiles包出了问题,可能原因是convert.to.simple简化后,Ploygon的上点顺序发生变化,所以在取点的位置时,有的点明明在Ploygon里面而没有找到。但可以用mapTools Link 包readShapeSpatial函数可以解决,该函数使shapefiles一下子就转换成SpatialPolygonsDataFrame对象了,该对象也可以直接用于over函数的参数,这种方法可以说更简单,更合理,更高效,推荐首选这种方法。
根据经纬度提取栅格值很常用,也有很多方法,如ArcGIS,但只能提取单波段值;其他ENVI+IDL估计要多行代码才能实现,如Code,但是,R语言的Raster包,很简单,只用函数extract即可(http://www.inside-r.org/packages/cran/raster/docs/extract)。需要说明的是如果是多波段,需要用stack读入栅格,否则只能获取第一波段的值。示例代码如下(多点同时提取):
这2天初步学习了一下R语言,主要用R做土壤剖面数据整理,R有个优秀的包(AQP),就仅仅这个包而言,给人的感觉就很震撼,所以,R值得学习。相比其他高级语言(如Matlab,IDL),R的优势不是完整连贯的统计分析工具,优秀的统计制图功能,而是它属于GNU系统的一个自由、免费、源代码开放的软件,正因为如此,CRAN(Comprehensive R Archive Network)使它拥有很多的实用包,新手可以学习的资源很多,如http://cran.r-project.org/other-docs.html这个网站就不错,如果你学过编程语言,应该几天就能熟悉并能写出基本的R脚本了,下面展示本人收集的一点儿资料,共享给大家,相信作为入门足够了。此外,R也加入对面向对象的支持,面向对象入门学习可以参考http://www.tuicool.com/articles/VVBVna