Fragstats中,有一个用于熟悉Fragstats软件的demon,在tutorial中的1种,有reg78b.asc文件,其文件内容是包含了山歌图像的行数和列数以及分辨率大小等基本信息。
采用R软件可以读入该文件以及显示该文件。
在文件选项中选择:改变工作目录 选项,制定到需要操作的文件夹作为工作目录。
在文件中选择新建语言脚本文件,输入如下代码:
m<-as.matrix(read.table('reg78b.asc'))
//将文件reg78b.asc作为矩阵读入到对象m中去。
uv<-sort(unique(as.vector(m)))
//为土地覆盖的每一个分类分配颜色,识别出每一个单一的类值。
my.breaks<- (c(min(uv)-2, uv) + c(uv, max(uv)+2 ))/2
//为每个类分配的颜色创建色差(色差是最小值-1,中点和最大值+1)。注意,这是有必要的因为绘图函数image的设计师针对于连续变化的土地覆盖图像,而不是针对于分类的土地覆盖图像。
my.colors<-c('gray','lightskyblue','lightgreen','lightpink','lightyellow','yellow', 'purple','slateblue','green','skyblue','black')
//为绘图层创建颜色标签。
if(length(my.colors) != length(uv)) stop("You need a color for every unique value")
//检查并确认每一个颜色对于相应的类值是唯一的。
data.frame(code=uv, color=my.colors)
//在控制台上输出每一个颜色对应的分类值。
image(t(m)[,nrow(m):1],asp=1,breaks=my.breaks,col=my.colors)
//采用图像库中的绘图函数image()函数来绘图。注意,因为image()函数对图像做了一个逆时针的90度旋转,所以需要对这个矩阵进行转换。这是必须的。
运行以上代码,得到如下效果。