Наложение границ изображения для правильного отображения на карте - PullRequest
0 голосов
/ 09 мая 2020

Я создал наложение для карты Leaflet, отображающей температуру в Альпах.

Это объявление для позиционирования карты (JS):

var imageUrl = 'https://skiweather.eu/gfx/temphi_tomorrow_trans_test.png?dt=2020-05-09&hr=7',
 imageBounds = L.latLngBounds([[43.4,16.5], [48.4, 4.88]]);

Я получил границы из растра.

Однако наложение неправильно в позиция. Он должен быть немного левее. Как я могу получить правильные границы?

см .:

https://skiweather.eu/alpenwetter/

Растр в R:

bbox min max x 3605539 4471451 y 1886482 2428298

Formal class 'RasterLayer' [package "raster"] with 12 slots
  ..@ file    :Formal class '.RasterFile' [package "raster"] with 13 slots
  .. .. ..@ name        : chr ""
  .. .. ..@ datanotation: chr "FLT4S"
  .. .. ..@ byteorder   : chr "little"
  .. .. ..@ nodatavalue : num -Inf
  .. .. ..@ NAchanged   : logi FALSE
  .. .. ..@ nbands      : int 1
  .. .. ..@ bandorder   : chr "BIL"
  .. .. ..@ offset      : int 0
  .. .. ..@ toptobottom : logi TRUE
  .. .. ..@ blockrows   : int 0
  .. .. ..@ blockcols   : int 0
  .. .. ..@ driver      : chr ""
  .. .. ..@ open        : logi FALSE
  ..@ data    :Formal class '.SingleLayerData' [package "raster"] with 13 slots
  .. .. ..@ values    : num [1:250000] NA NA NA NA NA NA NA NA NA NA ...
  .. .. ..@ offset    : num 0
  .. .. ..@ gain      : num 1
  .. .. ..@ inmemory  : logi TRUE
  .. .. ..@ fromdisk  : logi FALSE
  .. .. ..@ isfactor  : logi FALSE
  .. .. ..@ attributes: list()
  .. .. ..@ haveminmax: logi TRUE
  .. .. ..@ min       : num 0.271
  .. .. ..@ max       : num 26.2
  .. .. ..@ band      : int 1
  .. .. ..@ unit      : chr ""
  .. .. ..@ names     : chr "var1.pred"
  ..@ legend  :Formal class '.RasterLegend' [package "raster"] with 5 slots
  .. .. ..@ type      : chr(0) 
  .. .. ..@ values    : logi(0) 
  .. .. ..@ color     : logi(0) 
  .. .. ..@ names     : logi(0) 
  .. .. ..@ colortable: logi(0) 
  ..@ title   : chr(0) 
  ..@ extent  :Formal class 'Extent' [package "raster"] with 4 slots
  .. .. ..@ xmin: num 4.88
  .. .. ..@ xmax: num 16.5
  .. .. ..@ ymin: num 43.4
  .. .. ..@ ymax: num 48.4
  ..@ rotated : logi FALSE
  ..@ rotation:Formal class '.Rotation' [package "raster"] with 2 slots
  .. .. ..@ geotrans: num(0) 
  .. .. ..@ transfun:function ()  
  ..@ ncols   : int 500
  ..@ nrows   : int 500
  ..@ crs     :Formal class 'CRS' [package "sp"] with 1 slot
  .. .. ..@ projargs: chr "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
  ..@ history : list()
  ..@ z       : list()

Процедура создания оверлейного изображения png

plot.nme = paste0('PLOTS/','temphi_tomorrow_trans_test.png')
pred <- ggplot() +
  #geom_raster(data = nnmsk_df , aes(x = x, y = y, fill = var1.pred,alpha = as.numeric(var1.pred > 5)),interpolate = FALSE) + 
  geom_raster(data = nnmsk_df , aes(x = x, y = y, fill = var1.pred,alpha = as.numeric(var1.pred > -5)),interpolate = FALSE) + 
  theme_void() +    # Empty theme without axis lines and texts
  scale_fill_viridis(option = "viridis", direction = 1, limits = c(-30,30),breaks=mybreaks, na.value = "transparent",guide=FALSE) +
  guides(alpha = "none") 
# scale_alpha_continuous(range = c(0.1, 1),guide=FALSE) 

pred_snow <- pred +
  geom_contour(aes(x = x, y = y, z = var1.pred),data = nnmsk_df, na.rm = TRUE,bins = 6,colour = "white",  alpha = 0.3,size=0.1) +
  theme(
    plot.margin = margin(0, 0, 0, 0, "cm"),
    panel.background = element_rect(fill = "transparent", colour = NA),
    plot.background = element_rect(fill = "transparent", colour = NA)
  ) 

pred_snow
ggsave(plot.nme, height = graph_height , width = graph_height * aspect_ratio,bg = "transparent",dpi = 300)
...