How can I render a three-compositional raster map using a ternary colormap?

2 次查看(过去 30 天)
Say there are three raster maps, representing percentages of sand, silt and clay respectively. The three values for each cell are hence summed up to 1. I want to use one raster map to characterize the relative contribution of the three materials. I found an R package named 'tricolore' for this purpose, but it is for a vector map, like this:
but my compositional data are stored in raster format.

回答(1 个)

Alan
Alan 2023-8-24
编辑:Alan 2023-8-24
Hi Jian,
If you have sand, silt, and clay data for each point, you could try out the geoscatter function: https://in.mathworks.com/help/matlab/ref/geoscatter.html#d124e556156
You could scale the material content to range between 0 and 1 and provide them as R, G, and B values (since you have exactly 3 quantities). The following syntax can be used:
geoscatter(lat, lon, A, C, "filled")
Where,
  1. lat: Array containing latitude values.
  2. lon: Array containing longitude values.
  3. A: Array containing size of markers (They can be increased or reduced based on the density of the data you have)
  4. C: Nx3 array in which each row represents the RGB values of each point, where N is the number of points in the raster data.
  5. “filled”: Creates filled markers.
There are functions specifically meant to plot raster maps, but they might only support a single dimensional colormap (i.e., one cannot supply 3 channels). But if you have a unified quantity like the sum of all 3 quantities like you have mentioned you could use the functions mentioned in the “Raster Data” section of this documentation page: https://in.mathworks.com/help/map/vector-and-raster-map-display.html

类别

Help CenterFile Exchange 中查找有关 Blue 的更多信息

产品


版本

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by