Как создать растровую легенду в R - PullRequest
0 голосов
/ 28 января 2019

Пожалуйста, как я могу вставить легенду, показывающую градиент цвета, к моему растровому графику?

Это для R-кодирования.Я использовал get_subdatasets для извлечения подмножеств (13 из них) из формата файлов HDF, затем, используя gdal_translate (), я преобразовал каждое подмножество в формат TIF.Я создал наборы данных для каждого из преобразованных файлов, а затем сложил их, чтобы сформировать 13 слоев.Затем я использовал экстент и функцию обрезки, чтобы получить интересующую растровую область.Я не знаю правильный код для вставки легенды, показывающей градиент цвета в пространстве.

#Extracting data from HDF files
sds <- get_subdatasets('MOD13C1.A2018257.006.2018282175408.hdf')

#Converting the HDF files to TIF files
gdal_translate(sds[1],dst_dataset = "NDVI.tif")
gdal_translate(sds[2],dst_dataset = "EVI.tif")
gdal_translate(sds[3],dst_dataset = "VI_Quality.tif")
gdal_translate(sds[4],dst_dataset = "red_reflectance.tif")
gdal_translate(sds[5],dst_dataset = "NIR_reflectance.tif")
gdal_translate(sds[6],dst_dataset = "blue_reflectance.tif")
gdal_translate(sds[7],dst_dataset = "MIR_reflectance.tif")
gdal_translate(sds[8],dst_dataset = "Avg_sun_zen_angle.tif")
gdal_translate(sds[9],dst_dataset = "NDVI_std_dev.tif")
gdal_translate(sds[10],dst_dataset = "EVI_std_dev.tif")
gdal_translate(sds[11],dst_dataset = "pix_used.tif")
gdal_translate(sds[12],dst_dataset = "pix_30deg_VZ.tif")
gdal_translate(sds[13],dst_dataset = "pixel_reliability.tif")

#Importing the converted files to R and assigning them
r1 <- brick('NDVI.tif')
r2 <- brick('EVI.tif')
r3 <- brick('VI_Quality.tif')
r4 <- brick('red_reflectance.tif')
r5 <- brick('NIR_reflectance.tif')
r6 <- brick('blue_reflectance.tif')
r7 <- brick('MIR_reflectance.tif')
r8 <- brick('Avg_sun_zen_angle.tif')
r9 <- brick('NDVI_std_dev.tif')
r10 <- brick('EVI_std_dev.tif')
r11 <- brick('pix_used.tif')
r12 <- brick('pix_30deg_VZ.tif')
r13 <- brick('pixel_reliability.tif')

#Stacking the extracted data set to make a multilayered raster
NDVI <- stack(r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13)

#Cropping images using extant()
extent(NDVI)
e <- extent(-0.15, 15.99, 1.537, 15)
NDVI_crop <- crop(NDVI, e)

#Ploting
nf <- layout(matrix(c(1,0,2), 1, 3, byrow = TRUE), width = c(1,0.2,1), respect = TRUE)
plotRGB(NDVI_crop, r = 3, g = 2, b = 1, axes = TRUE, stretch = "lin", main = "Landsat Subset")

Я хочу создать легенду, показывающую градиент цвета в пространстве.

...