IMCtermite icon indicating copy to clipboard operation
IMCtermite copied to clipboard

README.md incorrect

Open TallDaikon opened this issue 2 years ago • 5 comments

Hi, it looks like you do not support the imc BUS format. Instead it is the imc2 DATA format. The extension .raw is almost the same as .dat with 2 limitations: 1: only one channel is allowed 2: only the type integer is supported

Are you aware that the imc2 DATA format is well documented?: https://files.imc-tm.de/index.php/s/H4XNbKFZHTwRRMw chapter 5 imc Data format

TallDaikon avatar Mar 03 '22 11:03 TallDaikon

Thanks for the link ! Currently we have no resources to look into this. I'll put a warning into the readme. Of course if you want to fix this properly you are welcome to make a PR :-)

markope avatar Mar 03 '22 19:03 markope

@TallDaikon Do you happen to have any samples of the actual imc BUS format at hand that you are able to share? Instead of correcting the README I might as well generalize the decoding to properly support the imc BUS format...

mario-fink avatar Aug 19 '22 21:08 mario-fink

Using IMCtermite to read in python channels from a raw file measured by IMC Cronos, I'm getting a JSONDecodeError. I am not sure if it is the same issue @TallDaikon mentioned. Unfortunately I'm not deep enough into decoding to contribute by myself. But I could provide a test dataset.

---------------------------------------------------------------------------
JSONDecodeError                           Traceback (most recent call last)
Input In [18], in <cell line: 1>()
----> 1 data = raw.get_channels(True)

File IMCtermite.pyx:25, in IMCtermite.imctermite.get_channels()

File ~\.conda\envs\myAnaconda\lib\json\__init__.py:346, in loads(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
    341     s = s.decode(detect_encoding(s), 'surrogatepass')
    343 if (cls is None and object_hook is None and
    344         parse_int is None and parse_float is None and
    345         parse_constant is None and object_pairs_hook is None and not kw):
--> 346     return _default_decoder.decode(s)
    347 if cls is None:
    348     cls = JSONDecoder

File ~\.conda\envs\myAnaconda\lib\json\decoder.py:337, in JSONDecoder.decode(self, s, _w)
    332 def decode(self, s, _w=WHITESPACE.match):
    333     """Return the Python representation of ``s`` (a ``str`` instance
    334     containing a JSON document).
    335 
    336     """
--> 337     obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    338     end = _w(s, end).end()
    339     if end != len(s):

File ~\.conda\envs\myAnaconda\lib\json\decoder.py:355, in JSONDecoder.raw_decode(self, s, idx)
    353     obj, end = self.scan_once(s, idx)
    354 except StopIteration as err:
--> 355     raise JSONDecodeError("Expecting value", s, err.value) from None
    356 return obj, end

JSONDecodeError: Expecting value: line 1 column 400 (char 399)

dominikdh avatar Aug 29 '22 14:08 dominikdh

@dominikdh Judging from the error logs you provided, the problem is probably unrelated to the current imc2 DATA vs. imc BUS format issue. So please open a separate issue for your JSONDecode Error. If you are able to share the test data set, I'm happy to have a look at it...

mario-fink avatar Aug 29 '22 21:08 mario-fink

@dominikdh Judging from the error logs you provided, the problem is probably unrelated to the current imc2 DATA vs. imc BUS format issue. So please open a separate issue for your JSONDecode Error. If you are able to share the test data set, I'm happy to have a look at it...

Thank you, and sorry for not replying earlier... I created a separate issue.

dominikdh avatar Sep 21 '22 11:09 dominikdh