簡體   English   中英

在R中導出柵格圖層

[英]exporting raster layer in R

我正在研究bnspatial 示例 ,我想看看導入的數據ConwyData實際上是什么:

source("http://bioconductor.org/biocLite.R")
biocLite("RBGL")
install.packages("bnspatial")
install.packages("raster")
library(raster)
library(bnspatial)
data(ConwyData)

> str(ConwyData)
List of 6
 $ ConwyStatus  :Formal class 'RasterLayer' [package "raster"] with 12 slots
  .. ..@ file    :Formal class '.RasterFile' [package "raster"] with 13 slots
  .. .. .. ..@ name        : chr "E:\\masanda\\Documents\\R\\win-library\\3.4\\bnspatial\\extdata\\ConwyStatus.tif"

因此,我想將“評估者圖層”文件導出為可以導入ArcGis或QGIS的格式。 我已經嘗試了以下方法,但是都沒有用:

  1. writeRaster(ConwyData,“ raster_bnspatial”,format =“ GTiff”)錯誤(函數(類,fdef,mtable):無法為簽名“列表”,“字符”找到函數“ writeRaster”的繼承方法

  2. ConwyData <-file(“ C:/Users/admin/Dropbox/KU_Leuven/Thesis/R-scripts/ConwyData.grd”,package =“ raster”)文件錯誤(“ C:/ Users / admin / Dropbox / KU_Leuven / Thesis / R-scripts / ConwyData.grd“ ,:未使用的參數(package =“ raster”)

    1https//cran.r-project.org/web/packages/bnspatial/vignettes/bnspatial.html

看起來ConwyData是對象列表,而不是單個柵格。 這就是為什么您不能將其作為柵格寫入磁盤的原因。

查看示例文檔 (或?ConwyData ),該列表包含以下元素:

  • LandUseChange類grain的對象。 建立用於演示目的的貝葉斯網絡。

  • ConwyLU類RasterLayer的對象。 康威集水區(英國威爾士)當前土地使用圖的簡化版本。 它包括三類:可耕種(柵格值3),森林(2),其他(1)。

  • ConwySlope RasterLayer類的對象。 以50米為分辨率,從數字高程模型得出的坡度柵格,單位為度。

  • ConwyStatus RasterLayer類的對象。 土地所有權類型(虛擬數據)分為三個可能的類別:公共(柵格值4),私有(3),受保護(1)。

  • 證據矩陣。 從流域中每個位置(即像元)中提取的可用空間數據的集合(見上文),后者由柵格對象ConwyLU表示。 空間數據中的每個值都通過dataDiscretize或bulkDiscretize函數離散化,然后從貝葉斯網絡(LandUseChange)分配給相應的狀態。

  • LUclasses一個列表,其中包含輸入空間數據的分類(其相應的狀態和值)。 該列表根據bnspatial函數的要求進行了相應的格式化,並由函數importClasses和setClasses返回。

如您所見,其中只有一個是真正的柵格。 這些您可以輕松地寫入磁盤:

writeRaster(ConwyData$ConwyLU,'/tmp/landuse.tif')

但是,如果您只想看一看,可以跳過對文件的編寫,而只需使用R將其可視化即可,例如

base繪圖:

plot(ConwyData$ConwyLU)

在此處輸入圖片說明

或更通用的rasterVis

library(rasterVis)

levelplot(ConwyData$ConwySlope,margin=FALSE)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM