Confidence interval triangles

This example XML file plots sea surface temperature using confidence interval triangles to show the uncertainty with a perceptually uniform colour map (CIECAM02). An external program was used to encode the CIECAM02 values into sRGB. There is an error in doing this as explained in bivariate colour maps above. The colours were chosen in this case to be ones with small errors (less than 1). The magnitude of the SST is represented by lightness and the degree of uncertainty is shown by the contrast between the upper and lower confidence bounds.

<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.1.0" xsi:schemaLocation="http://www.opengis.net/sld
StyledLayerDescriptor.xsd" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:se="http://www.opengis.net/se" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:resc="http://www.resc.reading.ac.uk">
  <UserLayer>
    <se:Name>OSTIA/analysed_sst_confidence_intervals</se:Name>
    <LayerCoverageConstraints>
      <CoverageConstraint>
        <se:CoverageName>OSTIA/analysed_sst-lowerbound</se:CoverageName>
      </CoverageConstraint>
      <CoverageConstraint>
        <se:CoverageName>OSTIA/analysed_sst-upperbound</se:CoverageName>
      </CoverageConstraint>
    </LayerCoverageConstraints>
    <UserStyle>
      <se:Name>Split triangles with perceptual color map</se:Name>
      <se:CoverageStyle>
        <se:Rule>
          <resc:ConfidenceIntervalSymbolizer>
            <se:Opacity>1.0</se:Opacity>
            <resc:GlyphSize>10</resc:GlyphSize>
            <se:ColorMap>
              <se:Categorize fallbackValue="#00000000">
                <se:LookupValue>Rasterdata</se:LookupValue>
                <!-- Colors of equal Hue (h = 65.0) -->
                <!-- and Colorfulness (C = 25.0). -->
                <!-- Lightness (J) varied between 15.0 and 85.0 according to CIECAM02\. -->
                <se:Value>#FFFFD5A8</se:Value>
                <se:Threshold>274.0</se:Threshold>
                <se:Value>#FFFDD1A4</se:Value>
                <se:Threshold>275.0</se:Threshold>
                <se:Value>#FFF9CDA0</se:Value>
                <se:Threshold>276.0</se:Threshold>
                <se:Value>#FFF4C99C</se:Value>
                <se:Threshold>277.0</se:Threshold>
                <se:Value>#FFEFC498</se:Value>
                <se:Threshold>278.0</se:Threshold>
                <se:Value>#FFEBC094</se:Value>
                <se:Threshold>279.0</se:Threshold>
                <se:Value>#FFE6BC90</se:Value>
                <se:Threshold>280.0</se:Threshold>
                <se:Value>#FFE1B78C</se:Value>
                <se:Threshold>281.0</se:Threshold>
                <se:Value>#FFDCB388</se:Value>
                <se:Threshold>282.0</se:Threshold>
                <se:Value>#FFD8AE84</se:Value>
                <se:Threshold>283.0</se:Threshold>
                <se:Value>#FFD3AA80</se:Value>
                <se:Threshold>284.0</se:Threshold>
                <se:Value>#FFCEA57B</se:Value>
                <se:Threshold>285.0</se:Threshold>
                <se:Value>#FFC9A177</se:Value>
                <se:Threshold>286.0</se:Threshold>
                <se:Value>#FFC49C73</se:Value>
                <se:Threshold>287.0</se:Threshold>
                <se:Value>#FFBF986F</se:Value>
                <se:Threshold>288.0</se:Threshold>
                <se:Value>#FFBA936B</se:Value>
                <se:Threshold>289.0</se:Threshold>
                <se:Value>#FFB58E66</se:Value>
                <se:Threshold>290.0</se:Threshold>
                <se:Value>#FFB08A62</se:Value>
                <se:Threshold>291.0</se:Threshold>
                <se:Value>#FFAB855E</se:Value>
                <se:Threshold>292.0</se:Threshold>
                <se:Value>#FFA68059</se:Value>
                <se:Threshold>293.0</se:Threshold>
                <se:Value>#FFA07B55</se:Value>
                <se:Threshold>294.0</se:Threshold>
                <se:Value>#FF9B7750</se:Value>
                <se:Threshold>295.0</se:Threshold>
                <se:Value>#FF95724C</se:Value>
                <se:Threshold>296.0</se:Threshold>
                <se:Value>#FF906D47</se:Value>
                <se:Threshold>297.0</se:Threshold>
                <se:Value>#FF8A6843</se:Value>
                <se:Threshold>298.0</se:Threshold>
                <se:Value>#FF85623E</se:Value>
                <se:Threshold>299.0</se:Threshold>
                <se:Value>#FF7F5D39</se:Value>
                <se:Threshold>300.0</se:Threshold>
                <se:Value>#FF795835</se:Value>
                <se:Threshold>301.0</se:Threshold>
                <se:Value>#FF735330</se:Value>
                <se:Threshold>302.0</se:Threshold>
                <se:Value>#FF6D4D2B</se:Value>
                <se:Threshold>303.0</se:Threshold>
                <se:Value>#FF674826</se:Value>
                <se:Threshold>304.0</se:Threshold>
                <se:Value>#FF614221</se:Value>
                <se:Threshold>305.0</se:Threshold>
                <se:Value>#FF5A3C1C</se:Value>
                <se:Threshold>306.0</se:Threshold>
                <se:Value>#FF543717</se:Value>
                <se:Threshold>307.0</se:Threshold>
                <se:Value>#FF4D3112</se:Value>
                <se:Threshold>308.0</se:Threshold>
                <se:Value>#FF462A0C</se:Value>
              </se:Categorize>
            </se:ColorMap>
          </resc:ConfidenceIntervalSymbolizer>
        </se:Rule>
      </se:CoverageStyle>
    </UserStyle>
  </UserLayer>
</StyledLayerDescriptor>

The resulting output image and its legend are shown below:

results matching ""

    No results matching ""