コード例 #1
0
    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
コード例 #2
0
ファイル: core_1_1.py プロジェクト: emiliom/WOFpy
    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
コード例 #3
0
ファイル: core_1_0.py プロジェクト: flaviolyra/wof_piab
    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
コード例 #4
0
ファイル: core_1_0.py プロジェクト: emiliom/WOFpy
    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
コード例 #5
0
ファイル: core_1_0.py プロジェクト: emiliom/WOFpy
    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
コード例 #6
0
ファイル: core_1_0.py プロジェクト: flaviolyra/wof_piab
    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
コード例 #7
0
    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