Class JunctionElement
- All Implemented Interfaces:
AsciiSerializable,FieldAccessor,TSLocation,PlotVariableConstants,AltInputReportInfc,RssModelVariableConstants,RssReturnStatusConstants,RssTSLocation,hec.watershed.res.model.PlottableObject,Serializable,Cloneable,Comparable,Observer,rma.lang.Modifiable
- See Also:
-
Field Summary
FieldsFields inherited from class hec.rss.model.Element
DIVERSION_ELEMENT_ID, DIVERTEDOUTLET_ELEMENT_ID, INFLOW, JUNCTION_ELEMENT_ID, OUTFLOW, REACH_ELEMENT_ID, RESERVIOR_ELEMENT_IDFields 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.PlotVariableConstants
PV_ELEVATION, PV_REGULATED_FLOW, PV_REGULATED_STAGE, PV_STORAGE, PV_TOTAL_RELEASE, PV_UNREGULATED_FLOW, PV_UNREGULATED_STAGEFields 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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidadd nodes from given junction and then dispose of itvoidfinalize()getActiveStateVariables(List svlist) adds all StateVariables refereced by diversion rule to the given ListlongintvoidgetData(hec.rss.server.JunctionElementData jed) Returns a list of Model Variables that are used in the default plot required by PlottableObject interfacegetDiversions(Vector divVec) returns a vector of diversion elements that use this junction as a sourcegetFieldObject(Field fld) This method allows access to java.lang.reflect.Field objects within the implementing class.gets the fill color name, null to use the default fill colorintget a List of TSRecords for all the local flow time series defined for this junctiongetLocalFlowTimeSeries(String localFlowName) get the TimeSeries associated with the Local Flow localFlowNamereturn a Vector of String arrays that contain the local flow information for this vectorgetModelVariables(Vector variableList) returns the flow TSRecordProxies from upstream nodes on this elementintdoubleString[]getTSRecords(ModelVariable plotVariable, Vector proxyList) booleandetermines whether junction is connected to any other elementsbooleanreturns true if the Junction has rating curve databooleanbooleanTests if this junction element joins more than one upstream reach, has a diversion, or has more than one outflow.booleanvoidoutputReport(AlternativeInputReport report, org.jdom.Element elem) Alternative Input Report Interface for data.booleanreadData(BufferedReader input) Retrieves the Element data from the specified BufferedReader.voidvoidsetComputationPoint(hec.watershed.model.ComputationPoint cp) associates this element with a common computation pointvoidsetCPIndex(int cpIndex) set Control Point Index (for compatibility with HEC5 type system)voidsetData(hec.rss.server.JunctionElementData jed) voidsetData(hec.rss.server.JunctionElementData jed, boolean setInfoData) booleansetFieldObject(Field fld, Object fobj) This allows access to fields withing the implementing object to set there data.voidsetFillColorName(String name) sets the fill color name, null to use the default fill colorvoidsetLabelPosition(int p) voidsetLocalFlowVector(Vector vect) voidsetStreamJunctionId(int juncId) booleansetStreamStation(StreamElement stream, double station) toString()Returns the name of the Junction ElementvoidRegenerates the list of all TSProxies required for this location.booleanwriteData(BufferedWriter out) Methods inherited from class hec.rss.model.Element
addChildElement, addChildElementAt, addNode, addNode, applyHindcastData, calcSeepageFlow, children, cleanupFromDeSerialization, cleanVectors, clearTSProxyList, clone, computeForecast, computeForecastStep, computeForecastStep, computeHindcast, computeHindcastStep, computeSubStepFlow, copyInto, createHotstartState, dispose, dispose, downStreamFrom, findAdjParam, findAdjParam, findElement, getActiveTSProxies, getChildElementAt, getChildElementCount, getComputedTSRecordProxies, getComputedTSRecordProxies_old, getDisplayName, getDownstreamElements, getDownstreamNode, getDownstreamNodes, getEffectiveElev, getElement, getElementByName, getElementsByClass, getElementType, getElementTypeId, getElementVector, getFlowContolTSRecordProxies, getForebayHeadLoss, getForecastEquation, getFullName, getFunction, getHindcastDataList, getHindcastEquation, getKeyStringForObject, getLinkedElementList, getNode, getNodeCount, getNodeDir, getNodeDirVector, getNodeVector, getObjectForKeyString, getObjectTypeId, getObsDataVector, getOutletElementList, getOutletElementList, getOutputBPart, getParent, getPlotTypeDirectory, getPlotTypeFile, getPlotTypeNames, getPlotTypes, getPrevEffectiveElev, getReferencePt, getReleaseElements, getRuleConnectivityRefs, getSystem, getTailwaterElevationObjects, getTopParent, getTopParentName, getTSDataSet, getTSRecordProxies, getTSRecordProxy, getTSRecordProxy, getTSRecords, getUnitSystem, getUpstreamNode, getUpstreamNodes, getWaterControlDevice, hasElementsOfClass, hasForebayHeadLoss, hasWaterControlDevice, importObservedData, initForecastLoop, initForPostProcessing, initHindcastLoop, initialize, initTSVals, isActive, isDirty, isDisposed, isNodeComputed, removeAllChildElements, removeChild, removeNode, resetParentElement, restoreElementState, restoreHotstartState, saveElementState, saveHotstartState, setActive, setActive, setDirty, setFunction, setHasForebayHeadLoss, setName, setObsDataVector, setParentElement, setupForSerialization, setWaterControlDevice, updateWQTSProxyListMethods inherited from class hec.lang.NamedType
addModifiableListener, compareTo, fireModifiedStateChanged, getDescription, getIgnoreModifiedEvents, getIndex, getName, isModified, isValid, readResolve, removeModifiableListener, rename, set, setDescription, setIgnoreModifiedEvents, setIndex, setModified, setValid, update, useRecursiveModifiedTestMethods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
-
Field Details
-
_hasKnownOutflow
protected boolean _hasKnownOutflow -
_cpIndex
protected int _cpIndex
-
-
Constructor Details
-
JunctionElement
public JunctionElement() -
JunctionElement
-
-
Method Details
-
setLabelPosition
public void setLabelPosition(int p) -
getLabelPosition
public int getLabelPosition() -
getFillColorName
gets the fill color name, null to use the default fill color- Returns:
- the fill color name, null to use the default fill color
-
setFillColorName
sets the fill color name, null to use the default fill color- Parameters:
name- the fill color name or null
-
toString
Returns the name of the Junction Element -
finalize
-
isDownstreamControlLocation
public boolean isDownstreamControlLocation() -
isConfluence
public boolean isConfluence()Tests if this junction element joins more than one upstream reach, has a diversion, or has more than one outflow.- Returns:
- true if this is a confluence junction
-
getDiversions
returns a vector of diversion elements that use this junction as a source -
getRequiredTSRecordProxies
returns the flow TSRecordProxies from upstream nodes on this element- Overrides:
getRequiredTSRecordProxiesin classElement
-
getConnectedElements
-
getComputationPointId
public long getComputationPointId() -
setComputationPoint
public void setComputationPoint(hec.watershed.model.ComputationPoint cp) associates this element with a common computation point -
hasRatingCurve
public boolean hasRatingCurve()returns true if the Junction has rating curve data -
getActiveStateVariables
adds all StateVariables refereced by diversion rule to the given List- Overrides:
getActiveStateVariablesin classElement
-
getData
public void getData(hec.rss.server.JunctionElementData jed) -
setData
public void setData(hec.rss.server.JunctionElementData jed) -
setData
public void setData(hec.rss.server.JunctionElementData jed, boolean setInfoData) -
getStreamStation
public double getStreamStation() -
setStreamStation
-
resetStream
public void resetStream() -
getStream
-
getTribNameArray
-
getLocalFlowVector
return a Vector of String arrays that contain the local flow information for this vector- Returns:
- a non-null vector of String[] arrays. each array consists of:
[0]=local flow name
[1]=factor
[2]=TSRecordProxy index
[3]=node index
-
setLocalFlowVector
-
setCPIndex
public void setCPIndex(int cpIndex) set Control Point Index (for compatibility with HEC5 type system) -
getCPIndex
public int getCPIndex() -
readData
Description copied from class:ElementRetrieves the Element data from the specified BufferedReader. This method is called by RssSystem.readFile after encountering an Element line type. Control of the file processing is passed back to the RssSystem object once an Element End line type is found or if "Element" is not contained in the line type. The later case is an error condition.The data stream must have type=param formatting. The following types and parameters are defined.
Element Name= (String) name of the Element
Element Nodes= (comma delimited ints) list of nodes connected by this element
Element NodeDir= (comma delimited ints) list of node directions
Element Function= (String) function type name
Element EndThere must one NodeDir value for each RssNode associated with the element. A NodeDir value of 1 indicates positive flow at the node is an inflow to this element, 0 indicates a positive flow is an outflow.
The function type name must be a valid Function Class name. The currently implemented classes include CoefRouting, Storage, Junction, Dam, and AdjustableFlow.
The Element Function line type generate new Function according to the specified class name. The readData method of the new object is called to process class specific data. Control is returned to this method when a Element Function End line type is found. Note that a Element Function= line type must be matched by a Element Function End line type or the file will not be processed correctly. -
writeData
-
addJunction
add nodes from given junction and then dispose of it -
hasConnectedElements
public boolean hasConnectedElements()determines whether junction is connected to any other elements -
getModelVariables
- Specified by:
getModelVariablesin interfacehec.watershed.res.model.PlottableObject- Overrides:
getModelVariablesin classElement
-
getDefaultModelVariables
Returns a list of Model Variables that are used in the default plot required by PlottableObject interface- Specified by:
getDefaultModelVariablesin interfacehec.watershed.res.model.PlottableObject- Overrides:
getDefaultModelVariablesin classElement- Returns:
- list of ModelVariable objects
-
getTSRecords
- Overrides:
getTSRecordsin classElement
-
importFrom
-
getLocalFlowTimeSeries
get the TimeSeries associated with the Local Flow localFlowName- Parameters:
localFlowName- the case sensitive name of the local flow- Returns:
- the TimeSeries or null if there is no TimeSeries for the local flow name
-
getLocalFlowTimeSeries
get a List of TSRecords for all the local flow time series defined for this junction- Returns:
- a non-null List of TSRecords
-
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- Overrides:
updateTSProxyListin classElement
-
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 classElement- 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 classElement- 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
-
setStreamJunctionId
public void setStreamJunctionId(int juncId) - Parameters:
index-
-
getStreamJunctionId
public int getStreamJunctionId()
-