X

NV5 Geospatial Blog

Each month, NV5 Geospatial posts new blog content across a variety of categories. Browse our latest posts below to learn about important geospatial information or use the search bar to find a specific topic or author. Stay informed of the latest blog posts, events, and technologies by joining our email list!



2627 Rate this article:
No rating

Dynamic Plots Using an Equation String

Anonym

The PLOT function's new Equation argument adds flexibility to the creation of plots in IDL, allowing you to create dynamic, interactive output.

The Equation argument on the PLOT function allows you to specify either a string containing an equation with variable X, or the name of an IDL function that accepts X as an input argument. The result of the equation (or the function) should be a one-dimensional array of Y coordinates to be plotted.

  • If Equation is an expression, then the EXECUTE function is called once with the X array. Note that in certain circumstances (such as the IDL Virtual Machine), you may not be able to use the EXECUTE function.
  • If Equation is a function name, then CALL_FUNCTION is called once, with the X array as an input argument. The function should return a one-dimensional result array.

Once IDL creates the plot output, if you then interactively adjust the plot range, IDL will automatically recompute the equation to cover the new range.

We'll use the BESELJ function in IDL to show how to use a Function String in the Equation Argument:

 

; Plot J Bessel Functions

pj0 = PLOT('BESELJ(X, 0)', XRANGE=[0.0, 50],  $

  XTITLE='X', YTITLE='$J_n(x)$ or $Y_n(x)$', $

  TITLE='J Bessel Function')

pj1 = PLOT('BESELJ(X, 1)', 'r2', XRANGE=[0.0, 50], /OVERPLOT)

pj2 = PLOT('BESELJ(X, 2)', 'b2', XRANGE=[0.0, 50], /OVERPLOT)

; Annotate the plot.

xcoords = [1, 1.66, 3]

ycoords = [.8, .62,.52]

labels = '$\it' + ['J_0','J_1','J_2'] + '$'

  t = TEXT(xcoords, ycoords, labels, /DATA)

 

If you run the code above, it should generate a graphic like this:

Once IDL creates the plot, test out its dynamic capabilities:

  • Try clicking with the middle mouse button on the graphic and panning around.
  • You can also use the mouse wheel to zoom in or out, or hold down the <Shift> key and draw a zoom box.
  • Change the plot range programatically at the IDL command line:

pj0.xrange=[0.0, 150]

As you change the plot range, IDL recomputes the equation with new X values that span the new range.

Please login or register to post comments.
«May 2025»
SunMonTueWedThuFriSat
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567
Digital Number, Radiance, and...

Number of views (169462)

Push Broom and Whisk Broom Sensors

Number of views (150718)

The Many Band Combinations of Landsat 8

Number of views (118647)

What Type of Loop Should I Use?

Number of views (78635)

Mapping Coastal Erosion Using LiDAR

Number of views (58470)