Filter löschen
Filter löschen

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

4 Ansichten (letzte 30 Tage)
Jian
Jian am 14 Aug. 2023
Bearbeitet: Alan am 24 Aug. 2023
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.

Antworten (1)

Alan
Alan am 24 Aug. 2023
Bearbeitet: Alan am 24 Aug. 2023
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

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by