<img align=left src="https://raw.githubusercontent.com/danielhrisca/asammdf/master/asammdf.png" width="192" height="192" />
<p align=center>
*asammdf* is a fast parser and editor for ASAM (Associtation for Standardisation of Automation and Measuring Systems) MDF (Measurement Data Format) files.
*asammdf* supports MDF versions 2 (.dat), 3 (.mdf) and 4 (.mf4).
*asammdf* works on Python >= 3.6 (for Python 2.7, 3.4 and 3.5 see the 4.x.y releases)
</p>
<img align=left src="https://raw.githubusercontent.com/danielhrisca/asammdf/master/gui.png"/>
# Status
! | Travis CI | Appveyor | CoverAlls | Codacy | ReadTheDocs
--|--|--|--|--|--
master | [![Build Status](https://travis-ci.org/danielhrisca/asammdf.svg?branch=)](https://travis-ci.org/danielhrisca/asammdf) | [![Build status](https://ci.appveyor.com/api/projects/status/racx048r4cnwa2lg/branch/master?svg=true)](https://ci.appveyor.com/project/danielhrisca/asammdf/branch/master) | [![Coverage Status](https://coveralls.io/repos/github/danielhrisca/asammdf/badge.svg?branch=master)](https://coveralls.io/github/danielhrisca/asammdf?branch=master) | [![Codacy Badge](https://api.codacy.com/project/badge/Grade/a3da21da90ca43a5b72fc24b56880c99?branch=master)](https://www.codacy.com/app/danielhrisca/asammdf?utm_source=github.com&utm_medium=referral&utm_content=danielhrisca/asammdf&utm_campaign=badger) | [![Documentation Status](http://readthedocs.org/projects/asammdf/badge/?version=master)](http://asammdf.readthedocs.io/en/master/?badge=stable) |
PyPI| conda-forge
--|--
[![PyPI version](https://badge.fury.io/py/asammdf.svg)](https://badge.fury.io/py/asammdf) | [![conda-forge version](https://anaconda.org/conda-forge/asammdf/badges/version.svg)](https://anaconda.org/conda-forge/asammdf)
# Project goals
The main goals for this library are:
* to be faster than the other Python based mdf libraries
* to have clean and easy to understand code base
* to have minimal 3-rd party dependencies
# Features
* create new mdf files from scratch
* append new channels
* read unsorted MDF v3 and v4 files
* read CAN bus logging files
* extract CAN signals from anonymous CAN bus logging measurements
* filter a subset of channels from original mdf file
* cut measurement to specified time interval
* convert to different mdf version
* export to HDF5, Matlab (v4, v5 and v7.3), CSV and parquet
* merge multiple files sharing the same internal structure
* read and save mdf version 4.10 files containing zipped data blocks
* space optimizations for saved files (no duplicated blocks)
* split large data blocks (configurable size) for mdf version 4
* full support (read, append, save) for the following map types (multidimensional array channels):
* mdf version 3 channels with CDBLOCK
* mdf version 4 structure channel composition
* mdf version 4 channel arrays with CNTemplate storage and one of the array types:
* 0 - array
* 1 - scaling axis
* 2 - look-up
* add and extract attachments for mdf version 4
* handle large files (for example merging two fileas, each with 14000 channels and 5GB size, on a RaspberryPi)
* extract channel data, master channel and extra channel information as *Signal* objects for unified operations with v3 and v4 files
* time domain operation using the *Signal* class
* Pandas data frames are good if all the channels have the same time based
* a measurement will usually have channels from different sources at different rates
* the *Signal* class facilitates operations with such channels
* graphical interface to visualize channels and perform operations with the files
# Major features not implemented (yet)
* for version 3
* functionality related to sample reduction block: the samples reduction blocks are simply ignored
* for version 4
* experiemental support for MDF v4.20 column oriented storage
* functionality related to sample reduction block: the samples reduction blocks are simply ignored
* handling of channel hierarchy: channel hierarchy is ignored
* full handling of bus logging measurements: currently only CAN bus logging is implemented with the
ability to *get* signals defined in the attached CAN database (.arxml or .dbc). Signals can also
be extracted from an anonymous CAN logging measurement by providing a CAN database (.dbc or .arxml)
* handling of unfinished measurements (mdf 4): warnings are logged based on the unfinished status flags
but no further steps are taken to sanitize the measurement
* full support for remaining mdf 4 channel arrays types
* xml schema for MDBLOCK: most metadata stored in the comment blocks will not be available
* full handling of event blocks: events are transfered to the new files (in case of calling methods
that return new *MDF* objects) but no new events can be created
* channels with default X axis: the defaukt X axis is ignored and the channel group's master channel
is used
# Usage
```python
from asammdf import MDF
mdf = MDF('sample.mdf')
speed = mdf.get('WheelSpeed')
speed.plot()
important_signals = ['WheelSpeed', 'VehicleSpeed', 'VehicleAcceleration']
# get short measurement with a subset of channels from 10s to 12s
short = mdf.filter(important_signals).cut(start=10, stop=12)
# convert to version 4.10 and save to disk
short.convert('4.10').save('important signals.mf4')
# plot some channels from a huge file
efficient = MDF('huge.mf4')
for signal in efficient.select(['Sensor1', 'Voltage3']):
signal.plot()
```
Check the *examples* folder for extended usage demo, or the documentation
http://asammdf.readthedocs.io/en/master/examples.html
# Documentation
http://asammdf.readthedocs.io/en/master
# Contributing & Support
Please have a look over the [contributing guidelines](CONTRIBUTING.md)
If you enjoy this library please consider making a donation to the
[numpy project](https://www.flipcause.com/secure/cause_pdetails/MzUwMQ==).
## Contributors
Thanks to all who contributed with commits to *asammdf*:
* Julien Grave [JulienGrv](https://github.com/JulienGrv)
* Jed Frey [jed-frey](https://github.com/jed-frey)
* Mihai [yahym](https://github.com/yahym)
* Jack Weinstein [jackjweinstein](https://github.com/jackjweinstein)
* Isuru Fernando [isuruf](https://github.com/isuruf)
* Felix Kohlgrüber [fkohlgrueber](https://github.com/fkohlgrueber)
* Stanislav Frolov [stanifrolov](https://github.com/stanifrolov)
* Thomas Kastl [kasuteru](https://github.com/kasuteru)
* venden [venden](https://github.com/venden)
* Marat K. [kopytjuk](https://github.com/kopytjuk>)
* freakatzz [freakatzz](https://github.com/freakatzz)
# Installation
*asammdf* is available on
* github: https://github.com/danielhrisca/asammdf/
* PyPI: https://pypi.org/project/asammdf/
* conda-forge: https://anaconda.org/conda-forge/asammdf
```shell
pip install asammdf
# for the GUI
pip install asammdf[gui]
# or for anaconda
conda install -c conda-forge asammdf
```
# Dependencies
asammdf uses the following libraries
* numpy : the heart that makes all tick
* numexpr : for algebraic and rational channel conversions
* wheel : for installation in virtual environments
* pandas : for DataFrame export
* canmatrix : to handle CAN bus logging measurements
* natsort
* cChardet : to detect non-standard unicode encodings
* lxml : for canmatrix arxml support
* lz4 : to speed up the disk IO peformance
optional dependencies needed for exports
* h5py : for HDF5 export
* scipy : for Matlab v4 and v5 .mat export
* hdf5storage : for Matlab v7.3 .mat export
* fastparquet : for parquet export
other optional dependencies
* PyQt5 : for GUI tool
* pyqtgraph : for GUI tool and Signal plotting (preferably the latest develop branch code)
* matplotlib : as fallback for Signal plotting
# Benchmarks
http://asammdf.readthedocs.io/en/master/benchmarks.html
没有合适的资源?快使用搜索试试~ 我知道了~
PyPI 官网下载 | asammdf-5.16.3.tar.gz
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 153 浏览量
2022-01-09
04:14:09
上传
评论 1
收藏 429KB GZ 举报
温馨提示
共110个文件
py:80个
ui:17个
txt:5个
资源来自pypi官网。 资源全名:asammdf-5.16.3.tar.gz
资源推荐
资源详情
资源评论
收起资源包目录
PyPI 官网下载 | asammdf-5.16.3.tar.gz (110个子文件)
cutils.c 11KB
setup.cfg 761B
MANIFEST.in 111B
LICENSE 7KB
README.md 8KB
PKG-INFO 10KB
PKG-INFO 10KB
resource_rc.py 477KB
mdf_v4.py 362KB
v4_blocks.py 198KB
mdf_v3.py 132KB
mdf.py 128KB
v2_v3_blocks.py 102KB
file.py 91KB
plot.py 69KB
utils.py 47KB
file_widget.py 42KB
signal.py 41KB
test_mdf.py 41KB
batch_widget.py 40KB
batch.py 39KB
main.py 35KB
channel_stats.py 25KB
finalization_shim.py 21KB
test_signal.py 20KB
plot_standalone.py 20KB
v4_constants.py 16KB
tabular.py 14KB
define_channel.py 14KB
numeric.py 12KB
conversion_utils.py 12KB
list.py 11KB
setup.py 10KB
v2_v3_constants.py 9KB
define_channel_dialog.py 8KB
channel_display.py 8KB
numeric.py 6KB
utils.py 6KB
tabular.py 6KB
channel_info_widget.py 6KB
tabular_filter.py 5KB
multi_search_dialog.py 5KB
test_atblock.py 5KB
multi_search.py 5KB
search_dialog.py 5KB
test_mdf23.py 4KB
channel_group_info_widget.py 4KB
channel_stats.py 4KB
main_window.py 4KB
test_mdf4.py 4KB
channel_display_widget.py 4KB
test_CAN_bus_loogging.py 3KB
tree_numeric.py 3KB
range_editor_dialog.py 3KB
tabular.py 3KB
advanced_search.py 3KB
values_dialog.py 3KB
collapsiblebox.py 3KB
range_editor.py 3KB
cx.py 2KB
tree.py 2KB
search.py 2KB
search_widget.py 2KB
error_dialog.py 2KB
formated_axis.py 2KB
mdi_area.py 2KB
tabular_filter.py 2KB
test_txblock.py 2KB
plot.py 2KB
error_dialog.py 1KB
channel_group_info.py 1011B
tree_item.py 1010B
channel_info.py 959B
__init__.py 855B
asammdfgui.py 836B
channel_info.py 584B
channel_group_info.py 580B
mdf_v2.py 530B
cursor.py 389B
list_item.py 344B
version.py 83B
__init__.py 23B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
resource.qrc 2KB
SOURCES.txt 3KB
requires.txt 122B
entry_points.txt 57B
top_level.txt 13B
dependency_links.txt 1B
file_widget.ui 41KB
batch_widget.ui 38KB
channel_stats.ui 27KB
define_channel_dialog.ui 8KB
tabular.ui 6KB
numeric.ui 6KB
channel_info_widget.ui 5KB
共 110 条
- 1
- 2
资源评论
- m0_695626602023-06-28总算找到了想要的资源,搞定遇到的大问题,赞赞赞!
挣扎的蓝藻
- 粉丝: 13w+
- 资源: 15万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功