Documentation for /home/davin/idl/socware/

Generated by IDLdoc

single page | use frames     summary     class     fields     routine details     file attributes

spedas/gui/display/draw_object/

spd_ui_draw_object__getlineplot.pro


Routines

top source spd_ui_draw_object::getLinePlot

result = spd_ui_draw_object::getLinePlot(trace, xrange, yrange, plotdim1, plotdim2, xscaling, yscaling, xAxisMajors, dx, dy, xistime, mirrorptr=mirrorptr, linecolor=linecolor, refvar=refvar, abcissa=abcissa)

spd_ui_draw_object method: getLinePlot This function generates the line plot for an update There is actually a lot of room to increase draw speed by optimizing this function. In specific we need to find a way to downsample a line plot, but the technique must work on series that are not functional(ex: circle), must not sort the inputs, must be imperceptible, must be fast, and must not expect the inputs to be spaced uniformly. Some possibilities: 1: uniform decimation 2: pseudo-random decimation 3: using pythagorean distance to rewrite non-functional series as functional series then interpolate 4: DFT with frequency cutoff, iDFT, uniform sample? Another problem involves determining the correct number of points to which the target should be decimated. There is a tradeoff where at one end you start to introduce aliasing errors and at the other end you get a speed slowdown. Currently the system uses the some constant factor times the number of pixels across the plot as the target decimation and it only decimates inputs that have time as the x-axis(which can be assumed to be functional). These can be reliably decimated using normal interpolation. Inputs: trace(object reference): the spd_ui_line_settings of the trace being generated xrange(2 element double): The xrange of the panel being draw on yrange(2 element double): The yrange of the panel being draw on plotdim1(2 element double): The normalized position of the panel(start,stop), relative to window for x-axis plotdim2(2 element double): The normalized position of the panel(start,stop), relative to window for y-axis xscaling(long) : the scaling mode for x-axis 0(linear),1(log10),2(logN) yscaling(long) : the scaling mode for y-axis 0(linear),1(log10),2(logN) xAxisMajors(double array, variable length): The positions of the x-axis ticks, normalized relative to panel(need for drawing symbols) dx(ptr to array) : the x axis data being plotted dy(ptr to array) : the y axis data being plotted xistime(boolean): 1 if the x-axis is a time type, 0 other wise mirrorptr(ptr to array,optional) the ptr to the mirror data(will deallocate mirrorptr data) Outputs: linecolor(3 element bytarr): The color of the line that was drawn refVar(ptr to array): the ptr to reference for use in legend abcissa_out(ptr to array): ptr to abcissa values associated with reference, this feature is not currently in use, as refVar is gridded to pixel resolution, and pixel indexes are used Returns: model with completed line plot $LastChangedBy: jimm $ $LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $ $LastChangedRevision: 14326 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/spedas/gui/display/draw_object/spd_ui_draw_object__getlineplot.pro $

Parameters

trace
xrange
yrange
plotdim1
plotdim2
xscaling
yscaling
xAxisMajors
dx
dy
xistime

Keywords

mirrorptr
linecolor
refvar
abcissa

File attributes

Modification date: Thu Feb 13 16:41:36 2014
Lines: 117