Editing with Solo

Editing with Solo

The editing part of solo is command driven so as to make it easier to do batch editing as well as interactive and to form a human readable record of editing steps for possible reuse or edification.

The interactive editing process usually involves bringing up the main edit widget and generating the appropriate set of commands in the CURRENT COMMANDS widget and perhaps defining a set of boundaries for these operations. A pass through the data is then commenced by clicking on the START PASS THROUGH DATA button and finally clicking on the "=" button in the appropriate frame causes a replot of the field of interest.

Clicking on EDITOR in the pull down menu in each frame brings up the MAIN EDIT WIDGET which facilitates assembling a set of editing commands and defining sets of boundaries.

MAIN EDIT WIDGET

!

Clicking on the SED files widget button pops up the SED COMMAND FILES widget which permits the user to save the current command set as well as call up previously saved command set. The file naming scheme is similar to boundary files except the prefix is "sed".

!

Clicking on the example operations button produces a list of files containing commands to perform the indicated operation. Clicking on the left side of a line in this list causes an example set of commands to be loaded into the CURRENT COMMANDS list. You can also set an environment variable

setenv CANNED_COMMANDS "/your_example_ops_dir"

to bring up your own set of files into this list.

Clicking on the clear current cmds button clears the list in the CURRENT COMMANDS list.

Clicking on the list current commands button pops up or pops down the CURRENT COMMANDS widget. This is where the set of commands is assembled to control the next pass through the data. See the current commands example.

Clicking in the various lists with the left button most often causes the entry to be reproduced in the command buffer of the EDIT COMMAND BUFFER widget. This is where the command can be edited. Clicking the right button on a line in the CURRENT COMMANDS list causes the contents of the command buffer to be inserted in front of the line clicked on in the CURRENT_COMMANDS list.

In the CURRENT COMMANDS list clicking with the left button will extract/delete the item from the list and reproduce it in the command buffer either to be modified or truly deleted.

Clicking on the list all commands button pops up the ALL COMMANDS widget which contains an exhaustive list of commands. These commands can be clicked into the command buffer with the left mouse button.

Clicking on the boundary widget causes the BOUNDARY WIDGET to pop up if it has been dismissed.

Clicking on the list help info button causes a help list to pop up. Either the default help list is displayed if there is nothing in the command buffer or if a help file search finds a match for the contents in the command buffer, then that help list is displayed.

Thus clicking on one of these items it will pop into the command buffer and clicking again on the list help info button will cause the help file for this item to be displayed in the HELP INFORMATION list. Items that begin with "!*" when clicked on will bring a example command set into the HELP_INFORMATION, then select items can be clicked into the command buffer, edited and clicked then into the CURRENT COMMANDS list.

It is also possible to create and point your own directory of help files with the environment variable

setenv SOLO_HELP_DIR "/your_own_help_files_dir"

Clicking on the extend edit button pops up the EDIT SOURCE INFORMATION WIDGET which permits the user to extend the edit to more than just the current sweep.

Clicking on the START PASS THROUGH DATA button starts the editing of the data based on the commands in the CURRENT_COMMANDS list and the information in the EDIT SOURCE INFORMATION WIDGET. At the end of each pass if a set of boundaries are active, they will be saved on a circular queue accessed from prev BND set button in the BOUNDARY WIDGET and then the boundary set will be cleared. As a default the pass through the data will be restricted to the sweep displayed in the frame from which the user popped up the MAIN EDIT WIDGET.





Here is a current commands example of how you might specify Bargen-Brown unfolding. An "!" at the beginning of the line indicates that the remainder of the line is a comment. The string for-each-ray must be present in a line to seperate one time only commands from commands executed for each ray. In this case the command to use the aircraft wind is commented out and the next command says to initialize on the the velocity average on the first non-flagged gate it encounters. For each ray a copy is made in a field called VG, the A/C motion is removed from the velocities, this field is duplicated in VU and then the actual Bargen-Brown unfolding algorithm is applied.

CURRENT COMMANDS WIDGET

!




The command buffer is where commands land when the user has clicked the left button on items in various lists. A line from the ALL COMMANDS list which is popped up and down with the list all commands button can be clicked into the command buffer and edited and then clicked into the CURRENT COMMANDS list using the right button. Some items from the help list can be clicked into the command buffer. An item in the command buffer when the list help info button is clicked will be used as the basis for a search for a help file for that item. The user is also free to type a command line in the command buffer and click it into the CURRENT COMMANDS list.

The "^" in the command buffer indicates the location of the cursor. See Editing Text In Widgets.

EDIT COMMAND BUFFER WIDGET

!






The ALL COMMANDS widget lists first the for-each-ray commands and the one_time commands followed by the commands that are to be executed one time only. Bracketed items such as <field> are used to indicate user supplied names or variables.

!

!






The EDIT SOURCE INFORMATION WIDGET allows the user to specify the directory on which the editor will be operating, which radars, a start time, a stop time, which version to use and whether to create a new version of the file or modify the same version of the file. As the default this widget always contains sufficient information to process the sweep displayed in the frame where you popped up the MAIN EDIT WIDGET.

Currently the only way we can detect a change in this widget is if there has been a selection from either the radar lists or the sweep lists. It is possible to clear out the list of radar names and regenerated the list from the radar names list. After a pass through the data this information reverts back to referencing the current sweep in the frame where you popped up the MAIN EDIT WIDGET. The user can pull back the last state of the EDIT SOURCE INFORMATION WIDGET by clicking in USE LAST SWEEP SET.

EDIT SOURCE INFORMATION WIDGET

!

If the user does not specify "new_version" the modified data will be in a file with the same name as the source file. When data are modified they are first written to a temporary file and on successful completion of a particular source file, the temporary file is renamed back to the source file name.

If "new version" is selected another file is created with a different version number. The verson number of a file is multiplexed with the milliseconds in the fourth field of the file name. Thus if the fourth field contains the number 2345, this is version 2 of the file and the milliseconds are 345.






Using Boundaries:

The BOUNDARY WIDGET allows the user to create and manipulate boundaries. When this widget is popped up you are automatically in the boundary mode and clicking in the data portion of a frame causes the point to be entered as a boundary point. The field values widgets are not updated in this mode and centering on the last click is also inactive. Dismiss the BOUNDARY WIDGET if you wish to exercise either of these options. To pop up the BOUNDARY WIDGET after dismissing it just click the boundary widget button of the MAIN EDIT WIDGET.

If there is a current set of boundaries, they will be used by the editing commands. The command "unconditional-delete" only works if a set of complete boundaries are present. A complete boundary has at least three points.

A boundary is active and will be used by the editing commands if you have drawn a boundary and not cleared it or if you have read in a boundary by clicking on an entry in the list of boundaries in the BOUNDARY FILE INFORMATION WIDGET. If you wish to disable the boundary for certain number of commands insert the "dont-use-boundary" command into the current commands list. "use-boundary" turns the boundary back on for subsequent commands. Some commands such as "duplicate" and "establish-and-reset" ignore the boundary altogether.

After each pass through the data the current boundary set is saved on a circular queue if it is different from the last pass and the current set is cleared and contains no active boundaries. The last set may be called back by clicking on the prev BND set button. The queue currently holds the last 7 unique boundaries.

BOUNDARY WIDGET

!

Clicking on the inside BND button causes processes to be applied to areas inside the the current set of boundaries and outside BND implies operations should be applied outside.

Clicking on new BND causes the boundary logic to cycle throught the current set of boundaries. If the user has completed one boundary and wishes to draw another, clicking new_BND will facilitate the drawing of the next boundary. If new_BND is clicked again without drawing any points in the new boundary then the boundary logic will cycle back to the first boundary which can then be modified. If there are more boundaries in the set, clicking again will move the emphasis to the next boundary, etc. It is therefore possible to cycle through all the boundaries any number of times and make modifications to each boundary. Clicking on save boundary causes the current set of boundaries to be saved to a file. This will also cause the directory, file_name and comment areas int the BOUNDARY FILE INFORMATION WIDGET to update and reference the file just created. The file name in this case will have the form:

bnd.950619193022.CP3-RP7.6714.no_comment
The file is stamped with a "bnd" prefix to indicate boundary information, the time GMT when the file was created, the radar, your user information code, and finally a comment. Users can change the directory where the file is to be written and the comment that is attached to the file name.

Retrieving boundary sets happens when the user clicks in the list_boundary_files button of the BOUNDARY FILE INFORMATION WIDGET and clicks in the left half of a boundary file name.

Clicking on boundary file info pops up the BOUNDARY FILE INFORMATION WIDGET which permits the user the change the directory for saving or retrieving boundarys, change the comment attached to the next boundary file name, or pop up a list of boundary file names and select one of them to be the current set of boundaries.

BOUNDARY FILE INFORMATION WIDGET

!


Clicking on redraw boundary the first time causes all the boundaries in the set to be redrawn. Clicking again causes only the current boundary to be redrawn. Clicking again causes all the boundaries to be redrawn, etc.

Clicking on the list points button causes a list of the (x,y) locations of the current boundary points to be displayed. Clicking again will cause the list to pop down.

Clicking on the delete last point button causes the last point to be removed from the current boundary.

Clicking on the prev BND set button causes the boundary set from the last pass through the data to become the current boundary set.

Clicking on the clear boundary button causes the current boundary to be cleared. Clicking again will cause all boundaries in the current boundary set to be cleared.






Special UI commands for deleting files:
xlist-selects n
Typing this command in the window where you invoked solo will produce a list of the files that will be deleted when you type xzap-files. The argument n is the number of files including the current sweep to shield from deletion. This number is part of the frame states and can be preserved by saving the frame states. The default value is 7. You will want to be sure you have selected the proper frame corresponding to the radar for which you want to delete sweep files. See also xframe-num below.

xzap-files n
Zaps all but the last n files. Where n is optional if you've alread typed xlist-selects and is the number of files including the current sweep to shield from deletion. The file preserved_sweep_files_list.txt in your DORADE_DIR directory is consulted before deleting a file.

xpreserve-file
There may be a file called preserved_sweep_files_list.txt in your DORADE_DIR directory that contains the names of files that should not be deleted by the xzap-files command. Typing xpreserve-file causes the sweep file name in the frame of interest to be added to that file. This file is simply a text file containing local file names that can be hand editied.






Point-by-point editing with the UI:

xframe-num
In this UI mode it is extremely important to identify the frame number containing the data of interest.


The first four items below represent the four types of displays.

xdata
Produces a listing in the window where you invoked solo of a certain number of rays, a certain number of cells/gates, and a certain number of fields of data. The starting point, the number of rays, the number of cells, and the number of fields, and the format can all be specified by the user. See also xat and xcenter-on-click

xbeams
Creates and displays an inventory of all the beams/rays in the current sweep.

xedit
Creates and displays a list of the edit commands that have been applied to this sweep so far.

xheaders
Creates and displays a list of all the headers associated with the current ray.



The next four items represent scrolling options. You will be unable to scroll or change the location of the display using xat or xcenter-on-click if you have made but not committed changes. The only way out is to commit the changes using xclear-changes or clear the changes using xcommit.

xleft n
Shifts the display n rays to the left. If n is omitted, scrolls one ray to the left

xright n
Shifts the display to the right.

xup n
Shifts the display up by n cells. If n is omitted, the display is shifted up by xscroll-inc cells.

xdown n
Shifts the display down.


The next four items affect what is displayed. Please be warned that you currently cannot resize this text window without exiting solo. If you try it will exit for you.

xray-count n
Will cause data for n rays to be displayed.

xcell-count n
Will cause data for n cells to be displayed.

xfields DZ VE SW
Will cause data to be displayed for these three fields.

xscroll-inc n
Sets the number of cells to be scrolled when the commands xup or xdown are typed.

xformat 6.1f
Will cause the data to be displayed with a %6.1f format.



The next four items set the type of change you want to accomplish exercising the pick command.

xminus-fold
Defines the state for xpick. Every cell referenced by xpick will have the Nyquist Interval subtracted from it.

xplus-fold
Every cell referenced by xpick will have the Nyquist Interval added to it.

xdelete
Defines another state for xpick. Every cell referenced by xpick will have its contents replaced by the bad data flag.

xreplace n
Defines another state for xpick. Every cell referenced by xpick will have its contents replaced with the value n.

xpick ray_num cell_num field_num
Applies the change you have selected to the reference ray number, cell number and field number.


The next three items undo or commit changes.

xundo
Sweep files are not modified until an xcommit is typed. The information displayed is also kept in memory and is modified by the pick command and a list which cells were changed and how is also kept. xundo just undoes the last change and updates the display to reflect this.

xclear_changes
Undoes all the changes.

xcommit
Causes all the changes accumulated to be applied to the various rays, cells, and fields in the sweep file.



And finally some miscellaneous commands.

xannotation
Toggels between displays that indicate rotation angles accross the top and distances in km. for each cell in the leftmost column and the ray numbers and cell numbers that are needed for xpick command.

xat ray_num cell_num
Sets the ray number, the cell number and the field number for the upper left corner of the display.

xcenter-on-click
If you have already clicked on a point in the graphic frame, this point and the frame number is remembered and xcenter-on-click will center the text display on this point.

xlog
xlog by itself toggles between logging and not logging the contents displayed by many of the above commands. This information is written in a file that has the form "log.950331180415.SED_LOG.0". The time stamp is the file creation time (GMT). This file is automatically created the first time any information is logged.

xlog close
Closes out the current log file. The next time information is logged a new file will be opened with a new time stamp.

xlog flush
Flushes the current log file to the disk so data already logged will become visible in the disk file.

xlog directory "/scr/my_dir"
Allows the user to specify a directory for the log file. Be sure to place the directory name between double quotes. You can also specify a log directory with the LOG_DIRECTORY environment variable. If no directory is specified solo will try to create a log file in the directory from which solo was invoked.


FAQS

"dd_write error" usually means a the user's disk file system is full or they don't have write permission for the directory into which you are trying to write. The same is true for ddcat_write errors.