def create_offset_element(self, offsetTypeResult): # TODO: where does offsetIsVertical come from. # TODO: where does offsetHorizDirectionDegrees come from? offset = WaterML.OffsetType( offsetTypeID=offsetTypeResult.OffsetTypeID, offsetValue=None, offsetDescription=offsetTypeResult.OffsetDescription, offsetIsVertical='true', offsetHorizDirectionDegrees=None) if offsetTypeResult.OffsetUnits: units = WaterML.UnitsType( UnitID=offsetTypeResult.OffsetUnits.UnitsID, UnitAbbreviation=offsetTypeResult.OffsetUnits. UnitsAbbreviation, # noqa UnitName=offsetTypeResult.OffsetUnits.UnitsName, UnitType=offsetTypeResult.OffsetUnits.UnitsType) offset.units = units return offset
def create_variable_element(self, variableResult): clean_datatype = self.check_dataTypeEnum(variableResult.DataType) clean_medium = self.check_SampleMedium(variableResult.SampleMedium) clean_category = self.check_generalCategory( variableResult.GeneralCategory) # noqa clean_valuetype = self.check_valueType(variableResult.ValueType) variable = WaterML.VariableInfoType( variableName=variableResult.VariableName, # valueType=variableResult.ValueType, valueType=clean_valuetype, # dataType=variableResult.DataType, dataType=clean_datatype, # generalCategory=variableResult.GeneralCategory, generalCategory=clean_category, # sampleMedium=variableResult.SampleMedium, sampleMedium=clean_medium, NoDataValue=variableResult.NoDataValue, variableDescription=variableResult.VariableDescription) # For specimen data. v_code = variableResult.VariableCode v_code_i = v_code.find('::') if v_code_i != -1: v_code = v_code[0:v_code_i] variableCode = WaterML.variableCode() variableCode.vocabulary = self.vocabulary # TODO: What is this, should it always be true? variableCode.default = "true" variableCode.variableID = variableResult.VariableID variableCode.valueOf_ = v_code variable.add_variableCode(variableCode) clean_variableUnits = self.check_UnitsType( variableResult.VariableUnits.UnitsType) # noqa if variableResult.VariableUnits: units = WaterML.units( unitsAbbreviation=variableResult.VariableUnits. UnitsAbbreviation, # noqa unitsCode=variableResult.VariableUnitsID, # unitsType=variableResult.VariableUnits.UnitsType, unitsType=clean_variableUnits, valueOf_=variableResult.VariableUnits.UnitsName) variable.set_units(units) timeSupport = WaterML.timeSupport() timeSupport.isRegular = variableResult.IsRegular if variableResult.TimeUnits: timeUnits = WaterML.UnitsType( UnitID=variableResult.TimeUnits.UnitsID, UnitName=variableResult.TimeUnits.UnitsName, UnitDescription=variableResult.TimeUnits.UnitsName, # UnitType=variableResult.TimeUnits.UnitsType, UnitType="Time", UnitAbbreviation=variableResult.TimeUnits.UnitsAbbreviation) timeSupport.set_unit(timeUnits) # TODO: time interval is not the same as time support. # Time interval refers to a spacing between values for regular data, # which isn't stored in ODM. if variableResult.TimeSupport: # integer in WaterML 1.0 timeSupport.timeInterval = str(int(variableResult.TimeSupport)) variable.set_timeSupport(timeSupport) return variable