Phil Weinstein / Accomplishments -- January 2015 -- Edit 2-06-2015

General Development Accomplishments

--------------------------------------------
[I.A] New/Enhanced Software / TVA [#10] Preschedule SCT Enhancements
   SCT: Automatic RPL Slot Evaluation
--------------------------------------------

The SCT now has a configuration setting which causes its RPL Expression slots to be re-evaluated after any values are changed in the SCT's non-expression series slots.  When a single edit operation, or a rapid succession of operations (within 20 milliseconds) causes multiple non-expression series slot values to be changed, the resulting RPL Expression slots reevaluation occurs only once. This is done for all timesteps of those expression slots. Note that an SCT only has to be open -- not necessarily visible on the screen -- for this automatic RPL Slot evaluation to occur.

A variation of this mechanism which limits expression slot evaluation to only those timesteps which had been changed in the SCT's other series slots was partially developed. [This has been put aside in the "SctTemp_RplEvalOneTstep" git branch]. We are deciding to not pursue this option at this time. In some Rulesets, it could even potentially cause incomplete results.

--------------------------------------------
[I.A] New/Enhanced Software / TVA [#10] Preschedule SCT Enhancements
   SCT: Custom Time-Aggregation Summary Rows: Hiding of Individual Cells
--------------------------------------------

The new SCT Custom Time-Aggregation Summary Rows feature was developed two months ago, in October and November 2014, and was delivered in RiverWare 6.6. In January 2015, this feature was enhanced to support the hiding of individual summary row cells. This is operated primarily with context menu operations right on the relevant summary row cells: "Hide Aggregation Value" and "Show Aggregation Value". This uniformly effects such cells in every time aggregation shown in the SCT. This feature is also supported by the following new provisions in the SCT Custom Aggregation Summary Row configuration dialog:

This feature is described in more detail in this document:

--------------------------------------------
[I.A] New/Enhanced Software / USACE-ABQ 7
   Table Slot on Data Objects: Add capabilities to insert a column and reorder columns.
--------------------------------------------

The Open Slot Dialog for table slots on data objects now supports Move Rows and Move Columns operations. These are accessible from the Row and Column menus, respectively. They both show a temporary "move panel" under the data table with a single row of controls to effect moving of the selected rows or columns.

All normal functions in the Open Slot dialog remain operational when the "move panel" is shown -- notably, the table cell selection can be modified in the normal ways. As before, whole columns or rows can be selected by clicking in, or dragging along the column or row headers.

These new Move Column/Row operations are described in more detail in this brief document:

The "Insert Column" operation on data object table slots had been implemented, but was usually not being presented among the available operations. This actually applied to the following table slot operations, and has been addressed. (See Gnats 5578).

  1. Set Number of Columns
  2. Insert Column
  3. Append Column
  4. Delete Column
  5. Delete Last Column

--------------------------------------------
[I.B] Unfunded Development / Usability Enhancement
   Enum-Type rwSetting QComboBox: Emit changes on each item selection action
--------------------------------------------

In Model Reports, RiverWare Scripts and the Output Canvas, in configuration settings which support selection of a single value within a designated set of options (i.e. an "enumerated type"), picking a new value in the associated combo box did not have any effect until the user clicked away from the combo box. With this change, it is no longer necessary to click away for changes resulting from the new value selection to occur. In all three "rwSetting" applications, this has the effect of updating the conditional showing of related "sibling" settings right away. In the Output Canvas application, this also results in an immediate update of the canvas preview. This enhancement also resolved the Gnats 5476 dysfunction ("Model report preview not working for some RPL sets").

--------------------------------------------
[I.B] Unfunded Development / Enhancement Design
   Plot Page Configuration Revisions / Persistent Symbolic Time Range
--------------------------------------------

In January 2015, a design document was prepared for addressing these two plot page usability problems:

  1. Plot page configuration setting changes don't persist unless the user explicitly "saves" the page.
  2. There is currently no way of having plot pages be initially shown with a time range based on the run start and end timestep or certain other desirable symbolic date/times.

This design document is available here:

 

Maintenance Accomplishments / January 2015

--------------------------------------------
[II] RiverWare Software Maintenance / Software Updates / Bug Fixes
--------------------------------------------

The following bugs were fixed:

*Additional notes on these bugs are provided below.

Gnats 5511: Plot Date/Time on Y-axis

Plotting of Date/Time values had partially been implemented before, but this support was mostly incomplete and unstable. One fundamental problem was that date/time slot values were not consistently being converted from a number of seconds (since the beginning of year 1800) to a "julian" fractional number of days -- the time units required for our plots' date/time axis engine.

Now, all five supported curve types' updateCurveData() methods correctly convert date/time slot values from seconds to julian fractional days. These all plot correctly with slots having the DATETIME unit type. (Only the 'FullDateTime' unit is well supported. Partial date/times generally show dates in the year 1804, the first leap year of our supported date/time range).

  1. SeriesSlotCurve
  2. TableSlotCurve
  3. TableSlotContourCurve
  4. PeriodicSlotCurve
  5. ParametricSlotCurve

As of 2-6-2015, only the minor "stability" component of these changes (i.e. to avoid crashes) has been applied to a 6.6 patch release. The full functionality will be available in RiverWare 6.7. Note that a full "6.6" test merge has been prepared in case we choose to deliver this full functionality in a subsequent 6.6 patch -- see git branch: "Gnats5511_66MergeTest".

--------------------------------------------
[II] RiverWare Software Maintenance / Analysis
   Investigation: "Enable Rules Model Run Analysis" configuration checkbox.
--------------------------------------------

There is a configuration checkbox in the Rulebased Simulation Run Parameters dialog labelled "Enable Rules Model Run Analysis" which doesn't actually need to be checked in order for the main part of that analysis data to be supported. A code analysis was done to determine what exactly depends on that setting. It turns out that the effect of this toggle applies to only the data shown in the Run Analysis "Rules Effects" detail panel, and the rationale for conditionally computing that data may not be sound. We may choose to remove this checkbox from RiverWare 6.7.

The analysis document is available here:

During this analysis, a serious performance bug was discovered in the Rules Effects panel when used with a large ruleset (e.g. over 1100 rules causing a 30 second delay in a release build). This performance bug was addressed for both 6.6.2 and 6.7 development as Gnats 5582 in early February 2015.

--- (end) ---