.. _unitdescriptions-top: ***************** Unit Descriptions ***************** An overview of the standard data in the AUnit type classes is put here for reference. It includes: - a summary of the head_data keys and input types. - a list of row_data keys. There is support for RefhUnit in the library. However the head_data entires are so numerous that it would take for ever to put them all down here. For more information on what is available in the RefhUnit please see ship.fmp.datunits.refhunit **Note** Where types are specified in head_data, prefaced with dt, dt means:: ship.datastructures.DATA_TYPES as dt Where types are specified in row_data, prefaced with rdt, rdt means:: ship.fmp.ROW_DATA_TYPES as rdt ######### RiverUnit ######### Type and Category ================= unit_type = 'river' unit_category = 'river' ic_labels ========= self.name head_data contents ================== * key='comment', data_type=dt.STRING * key='spill1', data_type=dt.STRING * key='spill2', data_type=dt.STRING * key='spill2', data_type=dt.STRING * key='lateral1', data_type=dt.STRING * key='lateral2', data_type=dt.STRING * key='lateral3', data_type=dt.STRING * key='lateral4', data_type=dt.STRING * key='distance', data_type=dt.FLOAT, dps=3 * key='slope', data_type=dt.FLOAT, dps=4 * key='density', data_type=dt.INT Row Data ======== **row_data['main']** * DataObject=FloatData, key=rdt.CHAINAGE, no_of_dps=3 * DataObject=FloatData, key=rdt.ELEVATION, no_of_dps=3) * DataObject=FloatData, key=rdt.ROUGHNESS, default=0.039, no_of_dps=3 * DataObject=SymbolData, symbol=*, key=rdt.PANEL_MARKER, default=False * DataObject=FloatData, key=rdt.RPL, default=1.000, no_of_dps=3 * DataObject=do.ConstantData, rdt.BANKMARKER, choices=('', 'LEFT', 'RIGHT', 'BED'), default='' * DataObject=FloatData, key=rdt.EASTING, default=0.0, no_of_dps=2 * DataObject=FloatData, key=rdt.NORTHING, default=0.0, no_of_dps=2 * DataObject=ConstantData, rdt.DEACTIVATION, choices=('', 'LEFT', 'RIGHT'), default='' * DataObject=StringData, key=rdt.SPECIAL, default='~' # Default == '~' means to ignore formatting and apply '' when value is None ############## BridgeUnitArch ############## Type and Category ================= unit_type = 'arch' unit_category = 'bridge' ic_labels ========= self.name, self.name_ds head_data contents ================== * key='comment', data_type=dt.STRING * key='remote_us', data_type=dt.STRING * key='remote_ds', data_type=dt.STRING * key='roughness_type', data_type=dt.CONSTANT, choices=('MANNING',) * key='calibration_coef', data_type=dt.FLOAT, dps=3 * key='skew_angle', data_type=dt.FLOAT, dps=3 * key='width', data_type=dt.FLOAT, dps=3 * key='dual_distance', data_type=dt.FLOAT, dps=3 * key='num_of_orifices', data_type=dt.INT * key='orifice_flag', data_type=dt.CONSTANT, choices=('', 'ORIFICE') * key='op_lower', data_type=dt.FLOAT, dps=3 * key='op_upper', data_type=dt.FLOAT, dps=3 * key='op_cd', data_type=dt.FLOAT, dps=3 Row Data ======== **row_data['main']** * DataObject=FloatData, key=rdt.CHAINAGE, no_of_dps=3 * DataObject=FloatData, key=rdt.ELEVATION, no_of_dps=3) * DataObject=FloatData, key=rdt.ROUGHNESS, no_of_dps=3 * DataObject=ConstantData, rdt.EMBANKMENT, choices=('', 'L', 'R'), default='' **row_data['opening']** * DataObject=FloatData, key=rdt.OPEN_START, no_of_dps=3 * DataObject=FloatData, key=rdt.OPEN_END, no_of_dps=3 * DataObject=FloatData, key=rdt.SPRINGING_LEVEL, no_of_dps=3 * DataObject=FloatData, key=rdt.SOFFIT_LEVEL, no_of_dps=3 ############### BridgeUnitUsbpr ############### Type and Category ================= unit_type = 'usbpr' unit_category = 'bridge' ic_labels ========= self.name, self.name_ds head_data contents ================== * key='comment', data_type=dt.STRING * key='remote_us', data_type=dt.STRING * key='remote_ds', data_type=dt.STRING * key='roughness_type', data_type=dt.CONSTANT, choices=('MANNING',) * key='calibration_coef', data_type=dt.FLOAT, dps=3 * key='skew_angle', data_type=dt.FLOAT, dps=3 * key='width', data_type=dt.FLOAT, dps=3 * key='dual_distance', data_type=dt.FLOAT, dps=3 * key='num_of_orifices', data_type=dt.INT * key='orifice_flag', data_type=dt.CONSTANT, choices=('', 'ORIFICE') * key='op_lower', data_type=dt.FLOAT, dps=3 * key='op_upper', data_type=dt.FLOAT, dps=3 * key='op_cd', data_type=dt.FLOAT, dps=3 * key='abutment_type', data_type=dt.CONSTANT, choices=('1', '2', '3') * key='num_of_piers', data_type=dt.INT * key='pier_shape', data_type=dt.CONSTANT, choices=('FLAT', 'ARCH') * key='pier_shape_2', data_type=dt.CONSTANT, choices=('FLAT', 'ARCH')allow_blank=True), * key='pier_calibration_coef', data_type=dt.FLOAT, dps=3, allow_blank=True * key='abutment_align', data_type=dt.CONSTANT, choices=('ALIGNED', 'SKEW') Row Data ======== **row_data['main']** * DataObject=FloatData, key=rdt.CHAINAGE, no_of_dps=3 * DataObject=FloatData, key=rdt.ELEVATION, no_of_dps=3) * DataObject=FloatData, key=rdt.ROUGHNESS, no_of_dps=3 * DataObject=ConstantData, rdt.EMBANKMENT, choices=('', 'L', 'R'), default='' **row_data['opening']** * DataObject=FloatData, key=rdt.OPEN_START, no_of_dps=3 * DataObject=FloatData, key=rdt.OPEN_END, no_of_dps=3 * DataObject=FloatData, key=rdt.SPRINGING_LEVEL, no_of_dps=3 * DataObject=FloatData, key=rdt.SOFFIT_LEVEL, no_of_dps=3 **row_data['culvert']** * DataObject=FloatData, key=rdt.INVERT, no_of_dps=3) * DataObject=FloatData, key=rdt.SOFFIT, no_of_dps=3) * DataObject=FloatData, key=rdt.AREA, no_of_dps=3 * DataObject=FloatData, key=rdt.CD_PART, no_of_dps=3 * DataObject=FloatData, key=rdt.CD_FULL, no_of_dps=3 * DataObject=FloatData, key=rdt.DROWNING, no_of_dps=3 ##################### InitialConditionsUnit ##################### Type and Category ================= unit_type = 'initial_conditions' unit_category = 'initial_conditions' head_data contents ================== None Row Data ======== **row_data['main']** * DataObject=StringData, key=rdt.LABEL * DataObject=StringData, key=rdt.QMARK, default='y' * DataObject=FloatData, key=rdt.FLOW, default=0.000, no_of_dps=3 * DataObject=FloatData, key=rdt.STAGE, default=0.000, no_of_dps=3 * DataObject=FloatData, key=rdt.FROUDE_NO, default=0.000, no_of_dps=3 * DataObject=FloatData, key=rdt.VELOCITY, default=0.000, no_of_dps=3 * DataObject=FloatData, key=rdt.UMODE, default=0.000, no_of_dps=3 * DataObject=FloatData, key=rdt.USTATE, default=0.000, no_of_dps=3 * DataObject=FloatData, key=rdt.ELEVATION, default=0.000, no_of_dps=3 ######### SpillUnit ######### Type and Category ================= unit_type = 'spill' unit_category = 'spill' ic_labels ========= self.name, self.name_ds head_data contents ================== * key='comment', data_type=dt.STRING * key='weir_coef', data_type=dt.FLOAT, dps=3 * key='modular_limit', data_type=dt.FLOAT, dps=3 Row Data ======== **row_data['main'] - rdt.CHAINAGE must increase** * DataObject=FloatData, key=rdt.CHAINAGE, no_of_dps=3 * DataObject=FloatData, key=rdt.ELEVATION, no_of_dps=3 * DataObject=FloatData, key=rdt.EASTING, no_of_dps=2, default=0.00 * DataObject=FloatData, key=rdt.NORTHING, no_of_dps=2, default=0.00 ########### OrificeUnit ########### FloodReliefUnit and OutfallUnit have the same setup as OrificeUnit, including the same unit_category (orifice). Although they differ in unit_type: - FloodReliefUnit unit_type == 'flood_relief' - OutfallUnit unit_type == 'outfall' Type and Category ================= unit_type = 'orifice' unit_category = 'orifice' ic_labels ========= self.name, self.name_ds head_data contents ================== * key='comment', data_type=dt.STRING * key='type', data_type=dt.CONSTANT, choices=('OPEN', 'FLAPPED', * key='invert_level', data_type=dt.FLOAT, dps=3 * key='soffit_level', data_type=dt.FLOAT, dps=3 * key='bore_area', data_type=dt.FLOAT, dps=3 * key='us_sill_level', data_type=dt.FLOAT, dps=3 * key='ds_sill_level', data_type=dt.FLOAT, dps=3 * key='shape', data_type=dt.CONSTANT, choices=('RECTANGLE', 'CIRCULAR', * key='weir_flow', data_type=dt.FLOAT, dps=3 * key='surcharged_flow', data_type=dt.FLOAT, dps=3 * key='modular_limit', data_type=dt.FLOAT, dps=3 Row Data ======== None ############ JunctionUnit ############ Note that JunctionUnit.head_data containes one non-HeadDataItem entry for names. I may update this to use HeadDataItem in the future, but for now, just to be confusing the value is a list. Type and Category ================= unit_type = 'junction' unit_category = 'junction' head_data contents ================== * key='comment', data_type=dt.STRING * key='type', data_type=dt.CONSTANT, choices=('OPEN', 'ENERGY') * key='names': [] Row Data ======== None ############### InterpolateUnit ############### Type and Category ================= unit_type = 'interpolate' unit_category = 'interpolate' ic_labels ========= self.name head_data contents ================== * key='comment', data_type=dt.STRING * key='spill1', data_type=dt.STRING * key='spill2', data_type=dt.STRING * key='lateral1', data_type=dt.STRING * key='lateral2', data_type=dt.STRING * key='lateral3', data_type=dt.STRING * key='lateral4', data_type=dt.STRING * key='distance', data_type=dt.FLOAT, dps=3 * key='easting', data_type=dt.FLOAT, dps=3 * key='northing', data_type=dt.FLOAT, dps=3 Row Data ======== None ######### HtbdyUnit ######### Type and Category ================= unit_type = 'htbdy' unit_category = 'boundary_ds' ic_labels ========= self.name head_data contents ================== * key='comment', data_type=dt.STRING * key='multiplier', data_type=dt.FLOAT, dps=3 * key='time_units', data_type=dt.CONSTANT, choices=time_units * key='extending_method', data_type=dt.CONSTANT, choices=('EXTEND', 'NOEXTEND', 'REPEAT', * key='interpolation', data_type=dt.CONSTANT, choices=('LINEAR', 'SPLINE', Where time_units are:: time_units = ( 'SECONDS', 'MINUTES', 'HOURS', 'DAYS', 'WEEKS', 'FORTNIGHTS', 'LUNAR MONTHS', 'MONTHS', 'QUARTERS', 'YEARS', 'DECADES', 'USER SET', ) Row Data ======== **row_data['main']** * DataObject=FloatData, key=rdt.ELEVATION, no_of_dps=3 * DataObject=FloatData, key=rdt.TIME, no_of_dps=3 ################ CulvertInletUnit ################ Type and Category ================= unit_type = 'culvert_inlet' unit_category = 'culvert' ic_labels ========= self.name head_data contents ================== * key='comment', data_type=dt.STRING * key='k', data_type=dt.FLOAT, dps=4 * key='m', data_type=dt.FLOAT, dps=3 * key='c', data_type=dt.FLOAT, dps=4 * key='y', data_type=dt.FLOAT, dps=3 * key='ki', data_type=dt.FLOAT, dps=3 * key='conduit_type', data_type=dt.CONSTANT, choices=('A', 'B', 'C') * key='screen_width', data_type=dt.FLOAT, dps=3 * key='bar_proportion', data_type=dt.FLOAT, dps=3 * key='debris_proportion', data_type=dt.FLOAT, dps=3 * key='loss_coef', data_type=dt.FLOAT, dps=3 * key='trashscreen_height', data_type=dt.FLOAT, dps=3 * key='headloss_type', data_type=dt.CONSTANT, choices=('STATIC', 'TOTAL') * key='reverse_flow_model', data_type=dt.CONSTANT, choices=('CALCULATED', 'ZERO') Row Data ======== None