>  Docs Center  >  Libraries  >  Coyote  >  CGCONLEVELS
Libraries

CGCONLEVELS

CGCONLEVELS
  This program is designed to create "nicely formatted" contour levels for use in
  contour plots. The idea is to be able to produce evenly spaced contour intervals
  with the contour levels rounded off to the preferred degree of accuracy. The program
  will make a "guess" as to how to do this, but users can also take control of the
  process if the results are not pleasing enough.
 
  There is no claim that this program always produces the best results. It is more
  of a tool that can produce decent result in many situations.
 

Categories


    Graphics, Utilities
   

Returns


    A vector of contour levels of the requested number. Each level is
    rounded to a predefined or specified degree of accuracy.
   

Params


    data: in, required
        The data for which contour levels are desired.
         

Keywords


    factor: in, optional, type=float
        The program makes a "guess" at how to best round the levels in the data
        presented to it. This guess is not always what the user wants. This keyword
        allows the user to "fine tune" the guess, so that it behaves better. See the
        examples for details on how this keyword can be used. There is some danger,
        when using the factor keyword that the results will be terrible. Don't dismay!
        Just try something else.
    maxvalue: in, optional
        Normally, the levels are calculated using the minimum and maximum values
        of the input data. The maximum value used in the calculation can be replaced
        with this value, if you wish. If both the `MinValue` and MaxValue keywords
        are used, you do not need to pass the data parameter.
    minmax: out, optional
        The actual minimum and maximum values used to calculate the levels.
    minvalue: in, optional
        Normally, the levels are calculated using the minimum and maximum values
        of the input data. The minimum value used in the calculation can be replaced
        with this value, if you wish.
    nlevels: in, optional, type=integer, default=10
        The number of contour levels desired.
    silent: in, optional, type=boolean, default=0
        Set this keyword if you want the program to remain "silent" in the face of
        errors. If this keyword is set, the user should rely on the `Success` keyword
        to determine whether the program completed its work.
    step: out, optional
        The step size actually used in the program to calculate the levels.
    success: out, optional, type=boolen
        Upon return, will contain a 1 if the program executed succesfully and
        a 0 otherwise.
         

Examples


    Here is the normal way a contour plot might be created::
        cgDisplay, WID=0
        data = Scale_Vector(cgDemoData(2), 0.1, 4534.5)
        cgLoadCT, 33, NColors=10, Bottom=1
        cgContour, data, NLevels=10, /Fill, /Outline, $
          Position=[0.1, 0.1, 0.9, 0.75], C_Colors=Indgen(10)+1
        cgColorbar, NColors=9, Bottom=1, /Discrete, /Fit, $
          Range=[Min(data), Max(data)], OOB_High=10, OOB_Low='white'
         
    Here is how the same plot might be created with cgConLevels
    to produce contour levels at 500 step intervals::
   
        cgDisplay, WID=1
        data = Scale_Vector(cgDemoData(2), 0.1, 4534.5)
        cgLoadCT, 33, NColors=10, Bottom=1
        levels = cgConLevels(data, Factor=100, MINVALUE=0)
        cgContour, data, Levels=levels, /Fill, /Outline, $
          Position=[0.1, 0.1, 0.9, 0.75], C_Colors=Indgen(10)+1
        cgColorbar, NColors=9, Bottom=1, /Discrete, /Fit, $
          Range=[Min(levels), Max(levels)], OOB_High=10, OOB_Low='white'
         
    In this example, the data is scaled so that it is a bit more perverse.
    The levels have been chosen so they round in the third decimal place::
   
        cgDisplay, WID=2
        data = Scale_Vector(cgDemoData(2), 0.153, 0.986)
        cgLoadCT, 33, NColors=10, Bottom=1
        levels = cgConLevels(data)
        cgContour, data, Levels=levels, /Fill, /Outline, $
          Position=[0.1, 0.1, 0.9, 0.75], C_Colors=Indgen(10)+1
        cgColorbar, NColors=9, Bottom=1, /Discrete, /Fit, $
          Range=[Min(levels), Max(levels)], OOB_High=10, OOB_Low='white'
   
    It might be better to have the data rounded in the second data place, to
    the nearest 0.05 value. This can be done with the `Factor` keyword::
   
        cgDisplay, WID=3
        data = Scale_Vector(cgDemoData(2), 0.153, 0.986)
        cgLoadCT, 33, NColors=10, Bottom=1
        levels = cgConLevels(data, Factor=0.05)
        cgContour, data, Levels=levels, /Fill, /Outline, $
          Position=[0.1, 0.1, 0.9, 0.75], C_Colors=Indgen(10)+1
        cgColorbar, NColors=9, Bottom=1, /Discrete, /Fit, $
          Range=[Min(levels), Max(levels)], OOB_High=10, OOB_Low='white'
         

Author


      FANNING SOFTWARE CONSULTING::
          David W. Fanning
          1645 Sheely Drive
          Fort Collins, CO 80526 USA
          Phone: 970-221-0438
          E-mail: david@idlcoyote.com
          Coyote's Guide to IDL Programming: http://www.idlcoyote.com

History


    Change History::
        Written, 8 December 2011. David W. Fanning

Copyright


    Copyright (c) 2011, Fanning Software Consulting, Inc.



© 2024 NV5 Geospatial Solutions, Inc. |  Legal
   Contact Us