Как построить извлеченный растр в правильных координатах XY? - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть растр ndvi.Мне пришлось извлечь значения, используя пороговое условие. Когда я строю график извлеченного растра, координаты xy не длинны.

Я пробовал ggplot (), также использовал rastertopoints и rasterfromXYZ для построения растра, но тщетно.Код ниже.Невозможно построить с.Координаты xy не являются широтными.

library(raster)
library(rgdal)
raster <- ("D:/Project/ndvisoybean.tif")
plot(ndvi)
ndvi[is.na(ndvi)] <-0
s <- ndvi[ndvi@data@values<maxValue(ndvi) & ndvi@data@values>0.3*maxValue(ndvi)]

Мне нужен график извлеченных растров s с правильными координатами широты в x y.

1 Ответ

0 голосов
/ 29 декабря 2018

Насколько я знаю, нет подходящего случая для построения карты координат lon / lat xy, если растр не является проекцией WGS84.Одним из способов является преобразование растрового слоя в проекцию WGS84. Так что координата графика lon / lat.Это важно только для маленькой карты или карты мира.Другой способ - использовать функцию coord_map в ggplot. Но данные импорта должны быть в виде lon / lat данных, а не других координат проекции.Таким образом, низкая эффективность построения карты.Более серьёзно, это очень медленно при преобразовании координаты точки data.frame в другую.этот способ подходит только для небольшого растра ширины / высоты.Пример кода:

В первую очередь вы должны преобразовать свой растр в координату WGS84.

df=rasterToPoint(raster_WGS84)
ggplot(df, aes(y=lon, x=lat, color=values)) +
   geom_point(size=2, shape=15) +
   theme() + 
   scale_color_distiller(palette='Spectral') +
   coord_map('lambert', lat0=30, lat1=65, xlim=c(-20, 39), ylim=c(19, 75)) 

Сводка: если ваш растр имеет проецируемую координату, например Albers, lambert, а не lon /координата lat WGS84, неудобно строить карту с lon / lat xy coodiate.

...