{ "info": { "author": "Patrick Menschel", "author_email": "menschel.p@posteo.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Scientific/Engineering" ], "description": "\ufeffmdfminer\n=======================\n\nThe project's goal is to parse a \"measurement data format\" files (.mdf,.dat) and provide the contents in a useful manner.\n\nMdf is widely used in the automotive industry and ASAM related environments. \nThe format specification for Version 3.3 is available for download at\n.\nCurrently (Dec 2016) Format Version 4.X is the latest but the format specification is not available to the public. \n\nThe mdf file format consists of a tree like structure to describe the contents referring \nto the file offset of the next block.\n\nTree Structure of MDF File\n==========================\n\nID Block\n HD Block\n TX Block(File comment)(optional)\n PR Block(Program Specific Data)(optional)\n DG Block(Data Group)\n Data Record(binary)\n Trigger Block(TimingInformation)(optional)\n CG Block(s)(Channel Group(s))(optional)\n CN Block(s)(Channel(s))(optional)\n TX Block(Channel Comment)(optional)\n TX Block(Unique Identifier)\n CC Block(Channel Conversion Rule)(optional)\n\tCD Block(Dependencies)(optional)\n\tCE Block(Extentions)(optional)\n\nHow MDF works\n=============\n\nThe measurement data is in the Data Record of the DG Block presenting an array of records.\nThe record prototype is defined by the Channel Group of the DG Block. The Channel Group consists of channels (single measurements)\nand basically cuts the record into chuncks defined by bit offset and bit length.\nThe channels itself have a Conversion Rule on how to compute a real value out of the raw data and also provide information what physical value results.\n\n \nHow mdfminer works\n==================\n\nWhen loading a mdf file, the tree is read but the binary data is not touched yet.\nParsing the tree is usually very fast since it only depends on the number of channels regardless on how long the measurement really is.\n\nGetting measurements from the mdf object with \"get_records_with_timestamp()\" is done by a generator function, so the memory footprint and execution time is low until the next set of values is yield.\nA set of values is presented as a common python dictionary.\n\n\nUsage\n=====\n#import the module\n>>> import mdfminer\n\n#create an mdf object from a recorder file\n>>> m = mdfminer.mdf(fname=r\"c:\\Recorder1-001.mdf\")\n\n#retrieve file version\n>>> print(m.version)\n3.1\n\n#you can dump the data into an xlsx file, although it is not recommended practice for data analysis\n>>> mdfminer.to_xlsx_file(m,r\"c:\\recorder.xlsx\",useabsolutetime=True)\n\n\n#recommended practice for data analysis would be feeding the generator data to your own program \n>>> for rec in m.get_records_with_timestamp(useabsolutetime=True):\n analyze_data(rec)", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/menschel/mdfminer.git", "keywords": "mdf measurement data file", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "mdfminer", "package_url": "https://pypi.org/project/mdfminer/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/mdfminer/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/menschel/mdfminer.git" }, "release_url": "https://pypi.org/project/mdfminer/0.0.4/", "requires_dist": null, "requires_python": null, "summary": "A data miner for Measure Data File Format (.mdf)", "version": "0.0.4" }, "last_serial": 2856074, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "b8c18833a9aa0fbf2c6b52a9a1cebc1d", "sha256": "2da8208b9cd0dff45aa29c2380a69daf2c2db417ded10c059547e4cf521435b5" }, "downloads": -1, "filename": "mdfminer-0.0.1.tar.gz", "has_sig": false, "md5_digest": "b8c18833a9aa0fbf2c6b52a9a1cebc1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14508, "upload_time": "2017-01-29T10:26:21", "url": "https://files.pythonhosted.org/packages/d6/c6/55a6f3b5c3c10249475b7a79bbfff28f1d03a8cdbdfa06635dd9b692cbf4/mdfminer-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "34f94a4b84c7e4f7276caa62d8e72a15", "sha256": "c99ed6d63fadbb5f0e2ff29000d6d61fdb123b2f6e66aee45e1a6753a98589f3" }, "downloads": -1, "filename": "mdfminer-0.0.2.tar.gz", "has_sig": false, "md5_digest": "34f94a4b84c7e4f7276caa62d8e72a15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13699, "upload_time": "2017-02-08T17:08:53", "url": "https://files.pythonhosted.org/packages/95/b6/723750116fa92978b76f42e1a6d61b1cf0d97ba2ef0fac7ecda3207cf10b/mdfminer-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "3be2ba690d91741b7777b6d28ac90559", "sha256": "f2c31ca7c74d67fb45cde4a689ca382dd5a42f3d34ebc40ff0021d306be69b9a" }, "downloads": -1, "filename": "mdfminer-0.0.3.tar.gz", "has_sig": false, "md5_digest": "3be2ba690d91741b7777b6d28ac90559", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14987, "upload_time": "2017-02-10T14:31:03", "url": "https://files.pythonhosted.org/packages/14/71/b7bc00a1909fdf9232d4bd06d1424662fcadde50148e78528eb7b105b981/mdfminer-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "62936a7ec44aa994c9e7682ddfd66d93", "sha256": "62af660b1d5bf2e78fe18a207d43b179578b670e3beec14985166d1ecdee1474" }, "downloads": -1, "filename": "mdfminer-0.0.4.tar.gz", "has_sig": false, "md5_digest": "62936a7ec44aa994c9e7682ddfd66d93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14990, "upload_time": "2017-05-06T17:19:35", "url": "https://files.pythonhosted.org/packages/0f/58/d62164ccf12c223596992fce96fa10bca3018f4a5b8de8b13c4e23af34cb/mdfminer-0.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "62936a7ec44aa994c9e7682ddfd66d93", "sha256": "62af660b1d5bf2e78fe18a207d43b179578b670e3beec14985166d1ecdee1474" }, "downloads": -1, "filename": "mdfminer-0.0.4.tar.gz", "has_sig": false, "md5_digest": "62936a7ec44aa994c9e7682ddfd66d93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14990, "upload_time": "2017-05-06T17:19:35", "url": "https://files.pythonhosted.org/packages/0f/58/d62164ccf12c223596992fce96fa10bca3018f4a5b8de8b13c4e23af34cb/mdfminer-0.0.4.tar.gz" } ] }