【问题标题】:Get the correct col and row values in a raster matrix from x y UTM values从 x y UTM 值获取光栅矩阵中正确的 col 和 row 值
【发布时间】:2019-06-27 01:02:18
【问题描述】:

我正在尝试使用 rayshader 包函数 render_label 呈现文本。

我在 WGS84 UTM 中的栅格:

localtif = raster::raster("G:\\My Drive\\Dem_12m.tif")

Link to download the raster.

高程矩阵:

elmat = matrix(raster::extract(localtif,raster::extent(localtif),buffer=1000),
               nrow=ncol(localtif),ncol=nrow(localtif))

我的 rgl 渲染:

elmat %>%
  sphere_shade(texture = "desert") %>%
  add_water(detect_water(elmat), color="desert") %>%
  add_shadow(ray_shade(elmat,zscale=3,maxsearch = 300),0.5) %>%
  add_shadow(ambmat,0.5) %>%
  plot_3d(elmat,zscale=10,fov=0,theta=135,zoom=0.75,phi=45, windowsize = c(1000,800))

从 x 和 y utm 坐标获取行号和列号:

  xy<-rowColFromCell(localtif, extract(localtif,SpatialPoints(cbind( 678349.471, 9197957.733)), cellnumbers=TRUE)[1])

渲染文本:

  render_label(elmat,x=xy[2],y=xy[1], z=4000,zscale=50,
             text = "El Pico del Diablo",textsize = 10,linewidth = 5, freetype = F)

文本出现在 DEM 模型中的错误位置。我得到了这些 xy 值:

> xy
     row col
[1,] 611 278 

使用试错法,我发现正确的值为 row = 180 和 col = 278。我也收到此警告:

Warning message:
In rgl.texts(x = 278L, y = 103.72, z = -611L, text = "El Pico del Diablo",  :
  "bitmap" family only supports cex = 1

【问题讨论】:

    标签: r r-raster rgl rayshader


    【解决方案1】:

    我遇到了同样的问题并找到了解决方案。

    我已对您的代码进行了如下调整:

    El_Pico_del_Diablo <- data.frame(lat= X.XX, long= -XX.XX) ###latitude and longitude in decimals. 
    

    就我而言,我的经度位置是负数。

    elmat %>%
      sphere_shade(texture = "desert") %>%
      add_water(detect_water(elmat), color="desert") %>%
      add_shadow(ray_shade(elmat,zscale=3,maxsearch = 300),0.5) %>%
      add_shadow(ambmat,0.5) %>%
      plot_3d(elmat,zscale=10,fov=0,theta=135,zoom=0.75,phi=45, windowsize = c(1000,800))
    
    render_label(elmat, lat = El_Pico_del_Diablo$lat, long = El_Pico_del_Diablo$long,
                 extent = attr(localtif, "extent"),
                 altitude=100, zscale=10, text = "El Pico del Diablo",freetype=F, textsize = 5)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-17
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多