comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: log scale of data coloring of IDLgrVolume object, not the axes
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: log scale of data coloring of IDLgrVolume object, not the axes [message #29021] Wed, 30 January 2002 08:38 Go to next message
David Fanning is currently offline  David Fanning
Messages: 11724
Registered: August 2001
Senior Member
Todd Bowers (tbowers0@yahoo.com) writes:

> Ok, I think I've figured out the whole log axis thing to get an
> IDLgrSurface axis to show log scale, its all about scaling the
> xyzCoord_Conv property of the surface with the logged bounds of your
> data.
>
> But, I'm having trouble carrying this over using log scale for the
> coloring of an IDLgrVolume object and the associated Hcolorbar from
> David F. (keeping the xyz axes linear, just logging the color ramp).
> Could anyone help?

HColorbar isn't designed for log scales, of course,
but I think it is just a matter of passing it a
color palette of values that have been scaled by
some kind of log function. For example:

r = BytScl(Findgen(256)^10e-2)
g = r
b = r
thePalette = Obj_New('IDLgrPalette', r, g, b)
theColorbar = Obj_New('HColorbar', Palette=thePalette)

Cheers,

David
--
David W. Fanning, Ph.D.
Fanning Software Consulting
Phone: 970-221-0438, E-mail: david@dfanning.com
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Toll-Free IDL Book Orders: 1-888-461-0155
Re: log scale of data coloring of IDLgrVolume object, not the axes [message #29249 is a reply to message #29021] Fri, 08 February 2002 08:49 Go to previous message
1 is currently offline  1
Messages: 1
Registered: February 2002
Junior Member
David Fanning <david@dfanning.com> wrote in message
>
> HColorbar isn't designed for log scales, of course,
> but I think it is just a matter of passing it a
> color palette of values that have been scaled by
> some kind of log function. For example:
>
> r = BytScl(Findgen(256)^10e-2)
> g = r
> b = r
> thePalette = Obj_New('IDLgrPalette', r, g, b)
> theColorbar = Obj_New('HColorbar', Palette=thePalette)
>

> r = BytScl(Findgen(256)^10e-2)
Why not alog10(Findgen(256)) ??

Thanks David. I had already tried this without success. The colors don't
really ramp properly for a general color table (like Rainbow, colortable
13). Even if it did, the colors would be squished so much on one end that
it'd be difficult to see what colors = what value.


Playing around, I did find that I get good coloring if I log the data as I
bytscl it for the volume object.

loadct, 34 ; rainbow color table
tvLCT, r,g,b, /GET
colorTable = [[r],[g],[b]] ; [256,3] color table for vol coloring

;data of float values in fData. IDLgrVolume's need data bytscl'd
bData = bytscl(alog10(fData), /NaN)
oVol = OBJ_NEW('IDLgrVolume', DATA0=bData, RGB_TABLE0=colorTable)

Now the data looks good, but my Hcolorbar still has text annotations that
range linearly from min(fData) to max(fData). I noticed that David's
hcolorbar is just a little colored IDLgrImage with IDLgrAxis. So, I thought
I'd just set the LOG keyword for the textAxis object in his code, maybe
this'll work:

;//in David's HColorBar code
textAxis = Obj_New("IDLgrAxis", 0, Color=self.color, Ticklen=0.025, $
Major=self.major, Minor=self.minor, Title=thisTitle, Range=self.range,
/Exact, $
XCoord_Conv=longScale, Location=[1000, self.position(1), 0.001], $
/LOG)

but this squooshes this axis all up to the left of where it should be.

Any suggestions?
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Re: Problems with CONVOL and 3D data
Next Topic: XROI - how to invoke region growing

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 15:57:25 PDT 2025

Total time taken to generate the page: 0.00588 seconds