SHA / SSSC Processing Modules

The links below provide samples of the functioning of a CGI-based driver for SHA/SSSC strategy modules that is under development. The sample modules are mostly versions of public and private ones already written, taken from ~CM/src/modules, ~CM/src/examples, and ~rick/src. The only changes made specifically in support of the web-browser driver are the additions of comments in the formerly-unused string field for arg->maxvalid in the arguments lists (see SSTR 62). Modules from ~CM/src/modules are in fact compiled directly from links to the production sources.

All features of the driver should be active, but please see the notes below!

Test & Sample Modules


(from ~rick/src): does nothing at all; a simplified version of module noop with only an input argument; useful for staging data


(from ~CM/src/examples): echos back the value of its single string-type argument


(from ~rick/src): just echoes the argument values as received by the module, with all supported argument types; an extended version of module noop


(from ~CM/examples): echoes all the data values from a FITS file in order with their coordinates to history


(from ~rick/src): constructs a FITS file of up to three dimensions and desired size filled with a constant value.


(from ~rick/src/carrington_grid): constructs a 1024×1024 FITS file containing an image of an orthographic projection in which locations ``on'' (near) and off certain Carrington grid lines and within and beyond a selected circular region are assigned different numerical values.


(from ~rick/src): form a time series of the integrated pixel values within a selected rectangular region of an image data series.


(from ~rick/src): average the pixel values along a selected axis within a selected hyper-rectangular region of a data series.


(from ~CM/modules): RTFM


(from ~CM/modules): RTFM


This is a fancier version of ~CM/examples/per_image that includes the full flow control of track_region, but without the actual mappings, that I am using for testing.


A copy of module limb_figure for testing.


(from ~CM/modules): RTFM


(from ~rick/src): list values of header records from online rdb files (based on module ptplot).


(from ~rick/src): generate a graphical display of quality flag bit values for a selected observable for the given time interval.


(from ~rick/src): integrate functions of 96-muinute magnetogram values in selected mapped windows.


(from ~rick/src): differnce two images and print summary statistics


(from ~rick/src): print out selected records from an obslog.


(from ~rick/src): skeletons and prototypes of functions to do queries based on obslog entries.


(from ~rick/src): adjust the number of bits per pixel in a data set.

Known Bugs and Limitations

  1. All processes started by the httpd run as network user nobody (UID 60001) with corresponding access permissions and umask (usually 022); files can only be created in directories to which this UID has write permission, and will be owned by nobody. There is no default directory for this UID, so path names must be rooted.
  2. If no pvmd is running for user nobody at the time a pe is started, the command goes into an endless wait state and has to be stopped from the browser. Once it is stopped the pvm will be running and the request can be reposted.
  3. The host machine option does not function properly; it is impossible for the network user to connect with a pvm daemon on a remote machine. Thus, all pe's most be run locally (the default).
  4. The httpd process is running on rick, which does not customarily mount the /PDS partitions of the DSDS cache. Unless the appropriate partition happens to be mounted it is not possible to use DSDS input or archiving in a pe.
  5. In any case, archiving to the DSDS is not currently possible because write permission to the /PDS partitions requires membership in group soi, and nobody is not a member of that group. (That is correct English.)
  6. No output or notification page is seen until the process has completed.
  7. Until the bug reported in SSTR 62 is fixed, modules with long (65 char+) argument descriptions in the arg->maxvalid field cannot be run in the pe.
  8. Arguments of type ARG_FLAG are binary-valued (0 or -1), rather than ternary-valued (0, ±1) as in the command-line interface..
  9. pe's can't open the pe kill log file.
  10. The ARG_FILEPTR type for arguments, which is deprecated, is not supported.
  11. The default names for the history and errlog files are pecgi_history and pecgi_logfile respectively; these go into the output dataset if one is created by a pe. The defaults can of course be overridden.
  12. The current working directory for executing modules (not pe's) is the cgi-bin directory of the host machine; modules that specify . or `pwd` as the path for files will probably not be able to find or create those files.
  13. On the bright side, the CGI interface fixes a minor bug in the command line interface, that the decision not to pass a default argument value string "Not Specified" to the mapfile is case sensitive.