Skip to content
Snippets Groups Projects
pyDCCTestAndExamples.py 7.43 KiB
Newer Older
import numpy as np
from pccDccTools import dsiVector,dsiMultiVector,DsiASCICOnversion

if __name__ == "__main__":
    testDSiVectorFreq = dsiVector((np.arange(20) + 1) * 0.5, np.ones(20) * 0.1, 'Frequency', r'\hertz', uncerType="relPercent",refTypes=["vib_Test"],name={'EN':'Frequency','DE':'Frequenz'})
    testDsiVectorMag = dsiVector((np.arange(20) + 1) * 5, np.ones(20) * 0.1, 'Magnitude', r'\volt',uncerType="relPercent")
    testDsiVectorPhase = dsiVector((np.arange(20) + 1) * 0.1*np.pi, np.ones(20) * 0.1, 'Phase', r'\radian',uncerType="relPercent")
    testDsiVectorFreqWOUncer = dsiVector((np.arange(20) + 1) * 0.5, None, 'Frequency', r'\hertz',uncerType=None)
    str(testDsiVectorFreqWOUncer)
    testDsiVectors=[testDSiVectorFreq,testDsiVectorMag,testDsiVectorPhase,testDsiVectorFreqWOUncer]
    serilizedStrs=[]
    loadedVectors=[]
    for testDSiVector in testDsiVectors:
        print("__________ New Vector________________")
        print(str(testDSiVector))
        print(testDSiVector)
        print(testDSiVector[10])
        print(testDSiVector[1:8])
        print(testDSiVector[10])
        print(testDSiVector['unit'])
        print(testDSiVector['quantity'])
        print(testDSiVector['uncer'])
        print(testDSiVector['uncer_relPercent'])
        #print(testDSiVector['test'])
        print(testDSiVector['values', 10])
        print(testDSiVector['values', 10:12])
        print(testDSiVector['uncer_relPercent', 10])
        print(testDSiVector['uncer_relPercent', 10:12])
        #print(testDSiVector['uncer_relPercent', 1000])
        jsonStr = testDSiVector.jsonDumps()
        serilizedStrs.append(jsonStr)
        print("__________ JSON________________")
        print(jsonStr)
Benedikt's avatar
Benedikt committed
        loadedDSIVector = dsiVector.fromJson(jsonStr)
        loadedVectors.append(loadedDSIVector)
        print(loadedDSIVector['values', 10])
        print(loadedVectors.__str__())
    #testMultVector=dsiMultiVector(testDsiVectorFreqWOUncer,[testDsiVectorMag,testDsiVectorPhase],interpolationTypes={'Magnitude':('scipy','linear'),'default':('scipy','nearest')})
    testMultVectorMultiIndex = dsiMultiVector([testDSiVectorFreq,testDsiVectorFreqWOUncer], [testDsiVectorMag, testDsiVectorPhase])
    print("_________Multi Vectors_______________")
    print(testMultVector['Magnitude'][int(0)])
    print(testMultVector['Magnitude',2.25])
    print(testMultVector['Magnitude',np.array([2.25,3.5,4.75])])
    print(testMultVector['Phase',(np.arange(89)*0.1+1.0)][0])
    print(testMultVector['Phase',1.25])
    tmp=testMultVector['Phase'].jsonDumps()
    multiVewctrorDump = testMultVector.jsonDumps()
    print(multiVewctrorDump)
Benedikt's avatar
Benedikt committed
    reconstructedMultiVector=dsiMultiVector.fromJson(multiVewctrorDump)
    print(reconstructedMultiVector['Phase',1.25])
Benedikt's avatar
Benedikt committed

    ######## Devel #######
    print("Done")
    exampleDSIQiuant=loadedVectors[0].toDCCQuantity(uncer='rel')
    print(exampleDSIQiuant)
    print(loadedVectors[0].toDCCQuantity(uncer=False))
    print(loadedVectors[0].toDCCQuantity(uncer='rel'))
    """
    examlpeJsonDict = {'dcc:list': {'dcc:quantity': [{'@refType': 'basic_xxx', 'dcc:name': {
        'dcc:content': [{'@lang': 'de', '#text': 'Frequenz'}, {'@lang': 'en', '#text': 'en'}]}, 'si:realListXMLList': {
        'si:valueXMLList': {'#text': '10 12.5 16 20 25'}, 'si:unitXMLList': {'#text': '\\second\\tothe{-1}'}}},
                                                     {'@refType': 'basic_xxx', 'dcc:name': {'dcc:content': [
                                                         {'@lang': 'de', '#text': 'Beschleunigungsamplitude'},
                                                         {'@lang': 'en', '#text': 'en'}]}, 'si:realListXMLList': {
                                                         'si:valueXMLList': {'#text': '5 5 5 10 10'},
                                                         'si:unitXMLList': {'#text': '\\metre\\second\\tothe{-2}'}}},
                                                     {'@refType': 'basic_xxx', 'dcc:name': {'dcc:content': [
                                                         {'@lang': 'de', '#text': 'Ãœbertragungskoeffizient Betrag'},
                                                         {'@lang': 'en', '#text': 'en'}]}, 'si:realListXMLList': {
                                                         'si:valueXMLList': {
                                                             '#text': '0.1301 0.1302 0.1302 0.1302 0.1302'},
                                                         'si:unitXMLList': {
                                                             '#text': '\\pico\\coulomb\\metre\\tothe{-1}\\second\\tothe{2}'},
                                                         'si:expandedUncXMLList': {'si:uncertaintyXMLList': {
                                                             '#text': '0.002602 0.002604  0.002604 0.002604 0.002604'},
                                                                                   'si:coverageFactorXMLList': {
                                                                                       '#text': '2'},
                                                                                   'si:coverageProbabilityXMLList': {
                                                                                       '#text': '0.95'},
                                                                                   'si:distributionXMLList': {
                                                                                       '#text': 'normal'}}},
                                                      'dcc:relativeUncertainty': {'dcc:relativeUncertaintyXmlList': {
                                                          'si:valueXMLList': {'#text': '0.002 0.002 0.002 0.002 0.002'},
                                                          'si:unitXMLList': {'#text': '\\one'}}}},
                                                     {'@refType': 'basic_xxx', 'dcc:name': {'dcc:content': [
                                                         {'@lang': 'de',
                                                          '#text': 'Ãœbertragungskoeffizient Phasenverschiebung'},
                                                         {'@lang': 'en', '#text': 'en'}]}, 'si:realListXMLList': {
                                                         'si:valueXMLList': {'#text': '-0.02 -0.03 -0.02 -0.02 -0.01'},
                                                         'si:unitXMLList': {'#text': '\\degree'},
                                                         'si:expandedUncXMLList': {
                                                             'si:uncertaintyXMLList': {'#text': '0.3 0.3 0.3 0.3 0.3'},
                                                             'si:coverageFactorXMLList': {'#text': '2'},
                                                             'si:coverageProbabilityXMLList': {'#text': '0.95'},
                                                             'si:distributionXMLList': {'#text': 'normal'}}}}],
                                    '@_Comment': ' \n              <dcc:measurementMetaData>\n                <dcc:metaData>\n                  <dcc:declaration>\n                    <dcc:content lang="de">Hier steht der Text mit Leerzeichen.</dcc:content>\n                  </dcc:declaration>\n                  <dcc:valid>false false true fals false</dcc:valid>\n                </dcc:metaData>\n              </dcc:measurementMetaData>\n              '}}

    tmp=testMultVectorMultiIndex.toDCCquantityList()
    print(tmp)