Package hec.rss.model
Class RssRatingObject
java.lang.Object
java.util.Observable
hec.lang.NamedType
hec.rss.model.RssTSLocationObject
hec.rss.model.RssRatingObject
- All Implemented Interfaces:
AsciiSerializable,FieldAccessor,TSLocation,AltInputReportInfc,RssModelVariableConstants,RssReturnStatusConstants,RssTSLocation,Serializable,Cloneable,Comparable,Observer,rma.lang.Modifiable
public class RssRatingObject
extends RssTSLocationObject
implements Serializable, AsciiSerializable, Cloneable, RssModelVariableConstants, AltInputReportInfc
Title: HEC JavaDev Description: Copyright: Company: RMA
- See Also:
-
Field Summary
Fields inherited from class hec.lang.NamedType
_description, _ignoreModifiedEvents, _index, _isValid, _modified, _name, defaultDescription, defaultName, DESCRIPTION_CHANGED, NAME_CHANGED, RENAME_EVENTFields inherited from interface hec.rss.model.RssModelVariableConstants
CUMLOC_OUTPUT_DATA, GRPID_DIVERSION, GRPID_JUNCTION, GRPID_REACH, GRPID_RESERVOIR, HINDCAST_IDS, HOLDOUT_OUTPUT_DATA, INPUT_DATA, OUTPUT_DATA, PULSE_OUTPUT_DATA, UNREG_OUTPUT_DATA, VID_ADJPARAM_FLOW, VID_CAPACITY_FACTOR, VID_CTRLOUT_HINDFLW, VID_CTRLOUT_RELEASE, VID_DAM_LEAK, VID_DAM_RELEASE, VID_DIV_FLOW, VID_DIV_FLOW_ROUTED, VID_DIV_HINDFLW, VID_DIV_RELEASE, VID_DIVOUT_FLOW, VID_DIVOUT_FLOW_ROUTED, VID_ENERGYREQUIRED_TSINPUT, VID_FIRST, VID_FOREBAY_ELEV, VID_FOREBAY_HEADLOSS, VID_GATE_OPENING, VID_GATE_PERCENTOPEN, VID_JUNC_ELEV, VID_JUNC_FLOW_CUMLOC, VID_JUNC_FLOW_DIV, VID_JUNC_FLOW_HOLD, VID_JUNC_FLOW_IN, VID_JUNC_FLOW_LIMIT, VID_JUNC_FLOW_LOCAL, VID_JUNC_FLOW_PULSE, VID_JUNC_FLOW_REG, VID_JUNC_FLOW_UNREG, VID_JUNC_FLOW_VIOL, VID_JUNC_HINDFLOW, VID_JUNC_INFLOW, VID_JUNC_INFLOW_LOCAL_TOTAL, VID_JUNC_STAGE, VID_JUNC_STAGE_LIMIT, VID_JUNC_STAGE_REG, VID_JUNC_STAGE_UNREG, VID_JUNC_STAGE_VIOL, VID_LAST, VID_NODE_FLOW, VID_NODE_HINDFLW, VID_NODE_HINDSTG, VID_NODE_KNOWNFLOW, VID_NODE_STAGE, VID_OPCTRL_CONSTRAINTID, VID_OPCTRL_DECISION, VID_OPCTRL_MAXLIMIT, VID_OPCTRL_MINLIMIT, VID_OPCTRL_RULEID, VID_OPCTRL_ZONEID, VID_OPRULE_FLOW_SPACE, VID_OPRULE_MAX, VID_OPRULE_MAX_STAGE, VID_OPRULE_MIN, VID_OPRULE_MIN_STAGE, VID_OPRULE_PRIORITY, VID_OPRULE_ROUTE_LAG, VID_OPRULE_ROUTE_MAXOFFSET, VID_OPRULE_ROUTE_MINOFFSET, VID_OPRULE_SPEC, VID_OPRULE_STOR_BAL, VID_OPRULE_STOR_BAL_INDEX, VID_OPRULE_VIOL_ELEV, VID_OPRULE_VIOL_FLOW, VID_OPRULE_VIOL_STAGE, VID_OPRULE_VIOL_STOR, VID_OPRULE_WQCD_ELEV, VID_OPRULEFL_CUMLOC, VID_OPRULETS_TSINPUT, VID_OPSET_ACTIVEZONE, VID_OPSET_GC_ELEV, VID_OPSET_GC_STOR, VID_OPSET_KNOWNZONEELEV, VID_OPSET_PROJECTEDELEV, VID_OPSET_ZONEELEV, VID_OPSET_ZONESTOR, VID_OUTGRP_RELEASE, VID_POOL_AREA, VID_POOL_ELEV, VID_POOL_ELEV_EST, VID_POOL_ELEVROC, VID_POOL_EVAP, VID_POOL_FLOWINTOSTOR, VID_POOL_HINDELEV, VID_POOL_HINDSTOR, VID_POOL_HOLDOUT, VID_POOL_INFLOW, VID_POOL_INPUTEVAP, VID_POOL_NETINFLOW, VID_POOL_OUTFLOW, VID_POOL_OUTFLOW_EST, VID_POOL_SEEP, VID_POOL_STOR, VID_PULSE_BACKQ, VID_PULSE_PULSEQ, VID_PUMP_FLOWAVG, VID_PUMP_VOL, VID_PUMPRULE_FLOWAVG, VID_PUMPRULE_FLOWAVG_CAP, VID_PUMPRULE_FLOWINST, VID_PUMPRULE_FLOWINST_CAP, VID_PUMPRULE_HOURS, VID_PUMPRULE_HOURS_CAP, VID_PUMPRULE_NUMPUMP, VID_PUMPRULE_NUMPUMP_CAP, VID_PUMPRULE_UNITHOURS, VID_PUMPRULE_UNITHOURS_CAP, VID_PUMPRULE_VOL, VID_PUMPRULE_VOL_CAP, VID_PWR_CAPABILITY, VID_PWR_EFF, VID_PWR_ENGYGEN, VID_PWR_ENGYPATTERN, VID_PWR_ENGYPERGEN, VID_PWR_ENGYPERREQD, VID_PWR_ENGYREQD, VID_PWR_ENGYVIOL, VID_PWR_FLWPWR, VID_PWR_HDPWR, VID_PWR_HYDLSS, VID_PWR_MAXCAPACITY, VID_PWR_PER_BALGEN, VID_PWR_PER_GCGEN, VID_PWR_PER_MINPUMPGEN, VID_PWR_PER_MINRELGEN, VID_PWR_PER_POWGEN, VID_PWR_PER_PUMPGEN, VID_PWR_PLNTFAC, VID_PWR_PWRCAP, VID_PWR_REQUIRED, VID_PWR_SPILL, VID_PWR_VIOL, VID_RCH_SEEP, VID_REACH_FLOW_CUMLOC, VID_REACH_FLOW_IN, VID_REACH_FLOW_REG, VID_REACH_FLOW_UNREG, VID_RES_GCRELEASE, VID_RES_HOLDOUT, VID_RES_RELEASE, VID_SPILL_FLOW, VID_SPILL_HINDFLOW, VID_STATE_VAR, VID_STATE_VAR_HIND, VID_TAIL_ELEV, VID_UNCTOUT_FLOW, VID_UNCTOUT_HINDFLW, VID_WA_ACCOUNT_DEMAND, VID_WA_ACCOUNT_INFLOW, VID_WA_CHARGES, VID_WA_CREDIT, VID_WA_CURRENT_MAX_VOLUME, VID_WA_CURRENT_VOLUME, VID_WA_HINDSTOR, VID_WA_LOSSES, VID_WA_PUMPBACK, VID_WA_RULE_DEMAND, VID_WA_SURPLUS, VID_WA_TRANSFERS, WQID_OFFSETFields inherited from interface hec.rss.model.RssReturnStatusConstants
RTN_CANCELED, RTN_NOPROBLEM, RTN_OPCHANGE, RTN_PROBLEM -
Constructor Summary
ConstructorsConstructorDescriptionConstructor for the RssRatingObject object -
Method Summary
Modifier and TypeMethodDescriptionclone()clone methodgetActiveTSProxies(Vector vec, int iotype) returns a vector of required input, or generated output TSRecordProxies used in the current alternative default implementation, assume all records are activegetActiveTSRecordProxies(Vector vec, int iotype) add the time series record proxies associated current computeCreate a default independent model variable is that is downstream node flowintgetDownstreamModelVariableElementId(Element refElement) get the downsteam most element id (if one) for the elements associated with model variablesdoublegetElevation(double q) doublegetElevation(RunTimeStep runtime, double q) getFieldObject(Field fld) This method allows access to java.lang.reflect.Field objects within the implementing class.doublegetFlowFromStage(RunTimeStep runtime, double stage) Interpolate flow from given stage and time step.returns a clone of the junctions rating curvereturns a clone of the junctions rating curveprotected doublegetIndpVarValue(RunTimeStep rts, boolean hasElevTS) Use the Independent Variable Object to interpolate a stage value for the given time step from global time series arraysprotected doublegetInpVarFlow(RunTimeStep rts, double stage) Use the Independent Variable Object to interpolate a flow value for the given stage, if it is a two variable lookup the given time step is used to choose a value for the second lookup parameter from global time series arraysint[]get the element ids for the elements associated with model variablesbooleanprotected Stringreturns a clone of the junctions rating curvevoidgetReferencedStateVariables(List svlist) adds StateVariables refereced by this rule to the given listvoidgetStageDatum(hec.data.ParamDouble pd) Each subclass must provide a method to return its parent RssSystemprotected doublegetTwoVarValue(IndependentVariable ivRow, IndependentVariable ivCol, RunTimeStep rts, boolean hasElevTS) Compute elevation for Two Independent Variable functionvoidbooleanisDefined(RunTimeStep runtime) Determine if tailwater flow is defined for current runtime Tailwater cannot be computed correctly unless flow is defined for requested time stepbooleanisEmpty()voidoutputReport(AlternativeInputReport report, org.jdom.Element elem) Alternative Input Report Interface for data.voidbooleansetFieldObject(Field fld, Object fobj) This allows access to fields withing the implementing object to set there data.voidvoidreplaces the junctions existing rating curve with the given PairedValues object, also adds/removes a stage time series record proxy as requiredvoidreplaces the junctions existing rating curve with the given PairedValues object, also adds/removes a stage time series record proxy as requiredvoidsetOutOfRangeValuesToMissing(boolean tf) voidreplaces the junctions existing rating curve with the given PairedValues object, also adds/removes a stage time series record proxy as requiredvoidsetRatingName(String rname) voidsetStageDatum(double stageDatum) voidsetStageDatum(hec.data.ParamDouble pd) voidCalled just before ascii serialization.voidsetUsesIndependentVariable(boolean b) voidsetUsesRatingCurveElev(boolean b) voidRegenerates the list of all TSProxies required for this location.booleanbooleanMethods inherited from class hec.rss.model.RssTSLocationObject
addTSRecord, addTSRecordProxy, addTSRecordProxy, addTSRecordProxy, clearTSProxyList, copyInto, getComputedTSRecordProxies, getTSArray, getTSArray, getTSArray, getTSArray, getTSContainer, getTSContainer, getTSDataSet, getTSRecordProxies, getTSRecordProxy, getTSRecordProxy, getTSRecordProxy, getTSRecordProxy, getTSRecordProxy, getTSRecordProxyVec, removeTSRecord, removeTSRecordProxy, removeTSRecordProxyMethods inherited from class hec.lang.NamedType
addModifiableListener, compareTo, fireModifiedStateChanged, getDescription, getDisplayName, getIgnoreModifiedEvents, getIndex, getName, isModified, isValid, readResolve, removeModifiableListener, rename, set, setDescription, setIgnoreModifiedEvents, setIndex, setModified, setName, setValid, toString, update, useRecursiveModifiedTestMethods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
-
Constructor Details
-
RssRatingObject
public RssRatingObject()Constructor for the RssRatingObject object -
RssRatingObject
-
-
Method Details
-
getOutputBPart
-
setupForSerialization
public void setupForSerialization()Called just before ascii serialization. Prepares the paired data values by setting there dss record path names -
setOutOfRangeValuesToMissing
public void setOutOfRangeValuesToMissing(boolean tf) -
getOutOfRangeValuesToMissing
public boolean getOutOfRangeValuesToMissing() -
clone
clone method- Overrides:
clonein classRssTSLocationObject
-
initialize
public void initialize() -
setElement
-
getElement
-
setRatingName
-
getRatingName
-
getElevation
public double getElevation(double q) -
isEmpty
public boolean isEmpty() -
getElevation
-
getFlowFromStage
Interpolate flow from given stage and time step. Assume the rating relates stage to flow- Parameters:
runtime- time stepstage- from which flow will be interpolated- Returns:
- interpolated flow or RMAConst.UNDEF_DOUBLE if interpolation was unsuccessful
-
getIndpVarValue
Use the Independent Variable Object to interpolate a stage value for the given time step from global time series arrays- Parameters:
rts- time step to use from global arrayshasElevTS- flag indicating if the elevation time series is available- Returns:
- interpolated stage
-
getTwoVarValue
protected double getTwoVarValue(IndependentVariable ivRow, IndependentVariable ivCol, RunTimeStep rts, boolean hasElevTS) Compute elevation for Two Independent Variable function- Parameters:
ivRow- Row IndependentVariableivCol- Column IndependentVariablerts-hasElevTS-- Returns:
-
getInpVarFlow
Use the Independent Variable Object to interpolate a flow value for the given stage, if it is a two variable lookup the given time step is used to choose a value for the second lookup parameter from global time series arrays- Parameters:
rts- time step to use from global arrays- Returns:
- interpolated stage
-
isDefined
Determine if tailwater flow is defined for current runtime Tailwater cannot be computed correctly unless flow is defined for requested time step- Parameters:
runtime-- Returns:
-
usesRatingCurveElev
public boolean usesRatingCurveElev() -
setUsesRatingCurveElev
public void setUsesRatingCurveElev(boolean b) -
getRatingCurve
returns a clone of the junctions rating curve -
setRatingCurve
replaces the junctions existing rating curve with the given PairedValues object, also adds/removes a stage time series record proxy as required -
getStageDatum
public void getStageDatum(hec.data.ParamDouble pd) -
setStageDatum
public void setStageDatum(hec.data.ParamDouble pd) -
setStageDatum
public void setStageDatum(double stageDatum) -
getIndependentVariableRatingCurveExt
returns a clone of the junctions rating curve -
setIndependentVariableRatingCurveExt
replaces the junctions existing rating curve with the given PairedValues object, also adds/removes a stage time series record proxy as required -
getIndependentVariableRatingCurve
returns a clone of the junctions rating curve -
setIndependentVariableRatingCurve
replaces the junctions existing rating curve with the given PairedValues object, also adds/removes a stage time series record proxy as required -
usesIndependentVariable
public boolean usesIndependentVariable() -
setUsesIndependentVariable
public void setUsesIndependentVariable(boolean b) -
getIndependentVariable
-
setIndependentVariable
-
getModelVariableElementIds
public int[] getModelVariableElementIds()get the element ids for the elements associated with model variables- Returns:
-
getDownstreamModelVariableElementId
get the downsteam most element id (if one) for the elements associated with model variables- Returns:
-
getDefaultIndependentVariable
Create a default independent model variable is that is downstream node flow- Returns:
-
getActiveTSRecordProxies
add the time series record proxies associated current compute- Overrides:
getActiveTSRecordProxiesin classRssTSLocationObject
-
getActiveTSProxies
returns a vector of required input, or generated output TSRecordProxies used in the current alternative default implementation, assume all records are active -
updateTSProxyList
public void updateTSProxyList()Regenerates the list of all TSProxies required for this location. This list includes all records that are generated by this function even if the records are held in another objects (e.g. RssNode) proxy list- Specified by:
updateTSProxyListin classRssTSLocationObject
-
getReferencedStateVariables
adds StateVariables refereced by this rule to the given list- Parameters:
svlist- unique list of state variables
-
getSystem
Description copied from class:RssTSLocationObjectEach subclass must provide a method to return its parent RssSystem- Specified by:
getSystemin classRssTSLocationObject
-
getFieldObject
Description copied from interface:FieldAccessorThis method allows access to java.lang.reflect.Field objects within the implementing class.- Specified by:
getFieldObjectin interfaceFieldAccessor- Overrides:
getFieldObjectin classRssTSLocationObject- Parameters:
fld- The field to get.- Returns:
- The data object that is stored in the given field
-
setFieldObject
Description copied from interface:FieldAccessorThis allows access to fields withing the implementing object to set there data.- Specified by:
setFieldObjectin interfaceFieldAccessor- Overrides:
setFieldObjectin classRssTSLocationObject- Parameters:
fld- The java field object representing the member field to be setfobj- The data to set in that field- Returns:
- returns true if successful
-
outputReport
Description copied from interface:AltInputReportInfcAlternative Input Report Interface for data.- Specified by:
outputReportin interfaceAltInputReportInfc
-