मैं पैकेज .mf4 फ़ाइलें लोड कर रहा हूं "https://asammdf.readthedocs.io/en/latest/" rel="nofollow noreferrer">asammdf। इन फाइलों में कई चैनल हैं जिनमें मुझे कोई दिलचस्पी नहीं है और इनपुट मेरे कार्यक्रम की बाधा है। तो मेरा सवाल है:

क्या मैं किसी तरह इनपुट प्रक्रिया को तेज करने के लिए फ़ाइल से केवल विशिष्ट चैनल लोड कर सकता हूं?

अब मैं जो कर रहा हूं वह पूरी फाइल को लोड करना है और एक पांडा Dataframe में रूपांतरण के दौरान चैनल निर्दिष्ट करना है।

from asammdf import MDF

if __name__ == '__main__':
    path = 'C:/path/to/some/file.mf4'
    mdfObj = MDF(path, version='4.10')
    columns=['A','B','C']
    df = mdfObj.to_dataframe(channels=columns)
0
Jonas 17 जिंदा 2020, 17:42

1 उत्तर

सबसे बढ़िया उत्तर

आप पहले से ही सही तरीकों का उपयोग कर रहे हैं। जब फ़ाइल खोली जाती है तो केवल मेटाडेटा लोड होता है, और वास्तविक चैनल नमूने केवल आवश्यकतानुसार पढ़े जाते हैं (जब आप to_dataframe कहते हैं)।

अड़चन यह हो सकती है कि आप रास्टर तर्क प्रदान नहीं करते हैं (दस्तावेज़ीकरण यहां देखें https://asammdf.readthedocs.io/en/latest/api.html#asammdf.mdf.MDF.to_dataframe) और इस मामले में आउटपुट डेटाफ़्रेम का निर्माण चयनित चैनलों के ऑल टाइम स्टैम्प के यूनियन का उपयोग करके और सभी कॉलमों के लिए इंटरपोलेशन करते हुए किया जाएगा। रेखापुंज तर्क के साथ खेलें

from asammdf import MDF

if __name__ == '__main__':
    path = 'C:/path/to/some/file.mf4'
    mdfObj = MDF(path, version='4.10')
    columns=['A','B','C']
    # 0.1s
    df = mdfObj.to_dataframe(channels=columns, raster=0.1)
    # or use the time stamps of channel 'A'
    df = mdfObj.to_dataframe(channels=columns, raster='A')  

संपादित करें: @ जोनास संस्करण 6.1.0 के बाद से channels तर्क https://asammdf.readthedocs.io/en/Development/tips.html#selective-channel-loading

from asammdf import MDF

if __name__ == '__main__':
    path = 'C:/path/to/some/file.mf4'
    
    columns=['A','B','C']
    
    mdfObj = MDF(path, channels=columns)
1
danielhrisca 23 पद 2020, 06:22