簡體   English   中英

如何使用UTM坐標獲取RGB光柵圖像

[英]How to get RGB raster image with UTM coordinates

我有一個三層柵格,其中有紅色,綠色和藍色通道值。 我可以使用raster::plotRGB繪制圖像,但是我需要添加具有UTM坐標的軸。 可以使用axes=TRUE添加axes=TRUE ,但是axes=TRUE在空間中浮動並且看上去很差。 我想獲得坐標顯示在使用raster plot方法創建的plot的坐標,或者更好的是使用rasterVis::levelplot時顯示的rasterVis::levelplot

最終,我需要創建一個具有UTM坐標,比例尺和向北箭頭的柵格圖像。 這需要使用R的raster包中的plotRGB函數或具有類似功能的東西來完成,因為我需要手動分配每個像素的顏色(無色帶)。

這是一篇古老的文章,但這是一個好問題,所以我給它一個答案。

我給這如何可能會做一個例子rasterVis::levelplot ,使用自帶的3槽R標志柵格數據raster

library(rasterVis)
b <- brick(system.file("external/rlogo.grd", package="raster"))

使用levelplot繪制三通道RGB柵格

創建一個具有與磚相同尺寸和范圍的空raster

r <- raster(b)

計算與RGB通道的值相對應的十六進制顏色,並強制轉換為factor

cols <- factor(rgb(b[], maxColorValue=255))

將這些因子值分配給柵格像元。

r[] <- cols

使用levelplot ,從cols的水平中提取十六進制顏色並將其傳遞到col.regions

levelplot(r, col.regions=as.character(levels(cols)), colorkey=FALSE)

在此處輸入圖片說明

添加北箭頭和比例尺

對於北箭頭和比例尺,我們將查看@OscarPerpiñán的docs

levelplot(r, col.regions=as.character(levels(cols)), colorkey=FALSE) +
  layer(SpatialPolygonsRescale(layout.north.arrow(), offset = c(5, 10), scale = 10)) +
  layer({
    xs <- seq(5, 25, by=5)
    grid.rect(x=xs, y=5,
              width=5, height=2,
              gp=gpar(fill=rep(c('transparent', 'black'), 2)),
              default.units='native')
    grid.text(x=xs-2.5, y=8, seq(0, 400, by=100),
              gp=gpar(cex=0.7),
              default.units='native')
  })

grid.text您自己來計算與矩形的寬度(以地圖單位為單位)關聯的真實距離(傳遞給grid.text )。

在此處輸入圖片說明

暫無
暫無

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

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