def create_series_element(self, seriesResult): series = WaterML.seriesType() # Variable variable = self.create_variable_element(seriesResult.Variable) series.set_variable(variable) series.valueCount = WaterML.valueCountType( valueOf_=str(seriesResult.ValueCount)) beginDateTime = core._get_datavalues_datetime(seriesResult, "BeginDateTime", "BeginDateTimeUTC") endDateTime = core._get_datavalues_datetime(seriesResult, "EndDateTime", "EndDateTimeUTC") # WML1_1 wants a datetime, no zone. breaks the conversion try: beginDateTime = dateutil.parser.parse(beginDateTime) except Exception as inst: logging.warn('bad datetime conversion on beginDateTime:' + inst.message) # noqa try: endDateTime = dateutil.parser.parse(endDateTime) except Exception as inst: logging.warn('bad datetime conversion on endDateTime:' + inst.message) # noqa # TimeInterval. if beginDateTime is None: beginDateTime = datetime.datetime.now().strftime( "%Y-%m-%dT%H:%M:%S") # noqa if endDateTime is None: endDateTime = datetime.datetime.now().strftime( "%Y-%m-%dT%H:%M:%S") # noqa variableTimeInt = WaterML.TimeIntervalType(beginDateTime=beginDateTime, endDateTime=endDateTime) series.variableTimeInterval = variableTimeInt # Method. if seriesResult.Method: method = self.create_method_element(seriesResult.Method) series.method = method # Source. if seriesResult.Source: source = self.create_source_element(seriesResult.Source) series.source = source # QualityControlLevel. qualityControlLevel = WaterML.QualityControlLevelType( qualityControlLevelID=seriesResult.QualityControlLevelID, qualityControlLevelCode=seriesResult.QualityControlLevelID, definition=seriesResult.Definition, explanation=seriesResult.Explanation) series.qualityControlLevel = qualityControlLevel return series
def create_series_element(self, seriesResult): series = WaterML.seriesType() # Variable variable = self.create_variable_element(seriesResult.Variable) series.set_variable(variable) series.valueCount = WaterML.valueCountType( valueOf_=str(seriesResult.ValueCount)) beginDateTime = core._get_datavalues_datetime( seriesResult, "BeginDateTime", "BeginDateTimeUTC") endDateTime = core._get_datavalues_datetime( seriesResult, "EndDateTime", "EndDateTimeUTC") # WML1_1 wants a datetime, no zone. breaks the conversion try: beginDateTime = dateutil.parser.parse(beginDateTime) except Exception as inst: logging.warn('bad datetime conversion on beginDateTime:' + inst.message) # noqa try: endDateTime = dateutil.parser.parse(endDateTime) except Exception as inst: logging.warn('bad datetime conversion on endDateTime:' + inst.message) # noqa # TimeInterval. if beginDateTime is None: beginDateTime = datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S") # noqa if endDateTime is None: endDateTime = datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S") # noqa variableTimeInt = WaterML.TimeIntervalType( beginDateTime=beginDateTime, endDateTime=endDateTime) series.variableTimeInterval = variableTimeInt # Method. if seriesResult.Method: method = self.create_method_element(seriesResult.Method) series.method = method # Source. if seriesResult.Source: source = self.create_source_element(seriesResult.Source) series.source = source # QualityControlLevel. qualityControlLevel = WaterML.QualityControlLevelType( qualityControlLevelID=seriesResult.QualityControlLevelID, qualityControlLevelCode=seriesResult.QualityControlLevelID, definition=seriesResult.Definition, explanation=seriesResult.Explanation ) series.qualityControlLevel = qualityControlLevel return series
def create_value_element(self, valueResult): adate = core._get_datavalues_datetime(valueResult, "LocalDateTime", "DateTimeUTC").isoformat() clean_censorCode = self.check_censorCode(valueResult.CensorCode) clean_qcl = self.check_QualityControlLevel( valueResult.QualityControlLevel) # noqa value = WaterML.ValueSingleVariable( qualityControlLevel=clean_qcl, # qualityControlLevel=valueResult.QualityControlLevel, methodID=valueResult.MethodID, sourceID=valueResult.SourceID, # censorCode=valueResult.CensorCode, censorCode=clean_censorCode, sampleID=valueResult.SampleID, offsetTypeID=valueResult.OffsetTypeID, accuracyStdDev=valueResult.ValueAccuracy, offsetValue=valueResult.OffsetValue, dateTime=adate, qualifiers=valueResult.QualifierID, valueOf_=str(valueResult.DataValue)) # TODO: value.offset stuff? Why does value element have all # this offset stuff. # offsetTypeResult = valueResult.OffsetType # if offsetTypeResult != None: # value.offsetDescription = offsetTypeResult.OffsetDescription # value.offsetUnitsAbbreviation = offsetTypeResult.OffsetUnits.UnitsAbbreviation # noqa # value.offsetUnitsCode = offsetTypeResult.OffsetUnits.UnitsID return value
def create_value_element(self, valueResult): adate = core._get_datavalues_datetime( valueResult, "LocalDateTime", "DateTimeUTC").isoformat() clean_censorCode = self.check_censorCode(valueResult.CensorCode) clean_qcl = self.check_QualityControlLevel(valueResult.QualityControlLevel) # noqa value = WaterML.ValueSingleVariable( qualityControlLevel=clean_qcl, # qualityControlLevel=valueResult.QualityControlLevel, methodID=valueResult.MethodID, sourceID=valueResult.SourceID, # censorCode=valueResult.CensorCode, censorCode=clean_censorCode, sampleID=valueResult.SampleID, offsetTypeID=valueResult.OffsetTypeID, accuracyStdDev=valueResult.ValueAccuracy, offsetValue=valueResult.OffsetValue, dateTime=adate, qualifiers=valueResult.QualifierID, valueOf_=str(valueResult.DataValue) ) # TODO: value.offset stuff? Why does value element have all # this offset stuff. # offsetTypeResult = valueResult.OffsetType # if offsetTypeResult != None: # value.offsetDescription = offsetTypeResult.OffsetDescription # value.offsetUnitsAbbreviation = offsetTypeResult.OffsetUnits.UnitsAbbreviation # noqa # value.offsetUnitsCode = offsetTypeResult.OffsetUnits.UnitsID return value
def create_series_element(self, seriesResult): series = WaterML.series() # Variable variable = self.create_variable_element(seriesResult.Variable) series.set_variable(variable) series.valueCount = WaterML.valueCount( valueOf_=str(seriesResult.ValueCount)) # in WML1_0, these are strings. beginDateTime = core._get_datavalues_datetime( seriesResult, "BeginDateTime", "BeginDateTimeUTC").isoformat() endDateTime = core._get_datavalues_datetime( seriesResult, "EndDateTime", "EndDateTimeUTC").isoformat() # TimeInterval if beginDateTime is None: beginDateTime = datetime.datetime.now().isoformat() if endDateTime is None: endDateTime = datetime.datetime.now().isoformat() variableTimeInt = WaterML.TimeIntervalType( beginDateTime=beginDateTime, endDateTime=endDateTime) series.variableTimeInterval = variableTimeInt # Method if seriesResult.Method: method = self.create_method_element(seriesResult.Method) series.Method = method # Source if seriesResult.Source: source = self.create_source_element(seriesResult.Source) series.Source = source # QualityControlLevel qualityControlLevel = WaterML.QualityControlLevelType( qualityControlLevelID=seriesResult.QualityControlLevelID, valueOf_=seriesResult.QualityControlLevelCode) series.QualityControlLevel = qualityControlLevel return series
def create_series_element(self, seriesResult): series = WaterML.series() # Variable variable = self.create_variable_element(seriesResult.Variable) series.set_variable(variable) series.valueCount = WaterML.valueCount( valueOf_=str(seriesResult.ValueCount)) # in WML1_0, these are strings. beginDateTime = core._get_datavalues_datetime( seriesResult, "BeginDateTime", "BeginDateTimeUTC").isoformat() endDateTime = core._get_datavalues_datetime( seriesResult, "EndDateTime", "EndDateTimeUTC").isoformat() # TimeInterval if beginDateTime is None: beginDateTime = datetime.datetime.now().isoformat() if endDateTime is None: endDateTime = datetime.datetime.now().isoformat() variableTimeInt = WaterML.TimeIntervalType(beginDateTime=beginDateTime, endDateTime=endDateTime) series.variableTimeInterval = variableTimeInt # Method if seriesResult.Method: method = self.create_method_element(seriesResult.Method) series.Method = method # Source if seriesResult.Source: source = self.create_source_element(seriesResult.Source) series.Source = source # QualityControlLevel qualityControlLevel = WaterML.QualityControlLevelType( qualityControlLevelID=seriesResult.QualityControlLevelID, valueOf_=seriesResult.QualityControlLevelCode) series.QualityControlLevel = qualityControlLevel return series
def create_value_element(self, valueResult): # datetime_string = core._get_datavalues_datetime( # valueResult, "LocalDateTime", "DateTimeUTC") aDate = core._get_datavalues_datetime( valueResult, "LocalDateTime", "DateTimeUTC" ) # aDate= dateutil.parser.parse(datetime_string) if not hasattr(valueResult, 'MethodCode'): setattr(valueResult, 'MethodCode', None) if not hasattr(valueResult, 'SourceCode'): setattr(valueResult, 'SourceCode', None) clean_censorCode = voc.check_censorCode(valueResult.CensorCode) # clean_qcl = self.check_QualityControlLevel(valueResult.QualityControlLevel) # noqa value = WaterML.ValueSingleVariable( qualityControlLevelCode=valueResult.QualityControlLevelID, methodCode=valueResult.MethodID, sourceCode=valueResult.SourceCode, timeOffset=valueResult.UTCOffset, censorCode=clean_censorCode, sampleID=valueResult.SampleID, offsetTypeID=valueResult.OffsetTypeID, accuracyStdDev=valueResult.ValueAccuracy, offsetValue=valueResult.OffsetValue, # dateTime=datetime_string, dateTime=aDate, dateTimeUTC=valueResult.DateTimeUTC, qualifiers=valueResult.QualifierID, valueOf_=str(valueResult.DataValue) ) # TODO: value.offset stuff? Why does value element have all # this offset stuff # offsetTypeResult = valueResult.OffsetType # if offsetTypeResult != None: # value.offsetDescription = offsetTypeResult.OffsetDescription # value.offsetUnitsAbbreviation = offsetTypeResult.OffsetUnits.UnitsAbbreviation # noqa # value.offsetUnitsCode = offsetTypeResult.OffsetUnits.UnitsID return value