View source: R/plot_HyperSpec_cube.R
cubePlot | R Documentation |
Plotting 3D cube of hyperspectral data using rgl-package
cubePlot(x, r, g, b, ncol = 1, nrow = 1, sidecol = colorRamp(palette(heat.colors(100))), z_interpolate = FALSE, ...)
x |
Object of class |
r |
Integer. Index of band used as red channel. If omitted, the band closest to 680 nm is selected. |
g |
Integer. Index of band used as green channel. If omitted, the band closest to 540 nm is selected. |
b |
Integer. Index of band used as blue channel. If omitted, the band closest to 470 nm is selected. |
ncol |
Integer giving the column(s) in |
nrow |
Integer giving the row(s) in |
sidecol |
ColorRamp used to illustrate spectral dimension. |
z_interpolate |
Interpolate spectral dimension. This is useful if a cube is plotted which has a much larger spatial compared to spectral dimension. If |
... |
Further arguments passed to
|
The function may take a lot of time if the images are large. Consider plotting a subset of the entire image instead of plotting the entire image. Please note that the example below demonstrates the functionality with a very small image.
For unknown reasons, it may be necessary to execute the function twice in order to get the right colors at the walls of the cube.
Lukas Lehnert
Speclib
## Not run: ## Create raster file using PROSPECT D ## Run PROSPECT for 1600 random chlorophyll content values parameter <- data.frame(Cab = round(runif(1600, min = 10, max = 40), 0)) spectra <- PROSPECT(parameterList = parameter) ## Create SpatialPixelsDataFrame and fill data with spectra from PROSPECT rows <- round(nspectra(spectra)/40, 0) cols <- ceiling(nspectra(spectra)/rows) grd <- SpatialGrid(GridTopology(cellcentre.offset = c(1,1,1), cellsize = c(1,1,1), cells.dim = c(cols, rows, 1))) x <- SpatialPixelsDataFrame(grd, data = as.data.frame(spectra(spectra))) ## Write data to example file (example_in.tif) in workingdirectory writeGDAL(x, fname = "example_in.tif", drivername = "GTiff") ## Read the raster and plot 3D cube wavelength <- wavelength(spectra) ras <- speclib("example_in.tif", wavelength) cubePlot(ras) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.