## 3.9 Scripting Language

Sometimes it may be more convenient to use the Data Explorer scripting language instead of the Visual Program Editor to create visualizations. A common instance is that of using Data Explorer scripts in overnight batch jobs to create visualizations and save them to disk for analysis the next day.

A simple script that computes a series of isosurfaces and exports them to disk is `/usr/local/dx/samples/tutorial/batch_script` (this is not a visual program, so you cannot read it into the Visual Program Editor):

    data = Import("/usr/local/dx/samples/data/watermolecule");
    counter = 1;
    macro create_iso(isovalue,counter)->(counter)
    {
      isosurface = Isosurface(data,isovalue);
      filename = Format("iso%d", counter);
      counter++;
      Export(isosurface, filename);
    }

(continued on the next page)

    counter=create_iso(0.1, counter);
    counter=create_iso(0.2, counter);
    counter=create_iso(0.3, counter);
    counter=create_iso(0.4, counter);
    counter=create_iso(0.5, counter);
    counter=create_iso(0.6, counter);
    # (end of script)

This script first imports data from a file called `watermolecule`. It then defines a macro that takes two parameters: an isovalue and a counter. The macro returns the counter as an output. It then computes an isosurface, creates a filename (using the counter as part of the name), and exports the isosurface to that filename. The counter is also incremented. Finally the macro is called six times, with six different isovalues.

To run this script, first copy `/usr/local/dx/samples/tutorial/batch_script` to the directory being used. Then enter the command:

        dx -script < batch_script

or

        dx -script

and at the `dx>` prompt:

        include "batch_script"

If you want to view the exported isosurfaces, you can use visual program `/usr/local/dx/samples/tutorial/view_isosurfaces.net`.

Note: Visual programs are also scripts. However, if a visual program uses a macro, you must include that macro before including the visual program. For example:

    dx> include "my_macro.net"
    dx> include "program.net"

[ OpenDX Home at IBM | OpenDX.org ]