Как получить правильные значения столбцов и строк в растровой матрице из значений XY UTM? - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь отобразить текст, используя пакетную функцию rayshader render_label.

Мой растр в WGS84 UTM:

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

Ссылка для загрузкирастр.

Матрица высот:

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

Мой ргл рендер:

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)

Текст в неправильном месте в модели ЦМР.Я получил эти значения 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
...