# creader Small python package to read cluster and raw files ## Getting started Run ```bash export PYTHONPATH=$PWD:$PYTHONPATH make ``` And then have a look at the examples: - [Reading cluster files](examples/ClusterFile.ipynb) - [Reading Moench03/04 raw files](examples/RawFile.ipynb) ## Build instructions **Simplified build using make** ```bash $ make #build c extension inplace ``` Check what is available ``` $ make help clean Remove the build folder and the shared library debug Build extension with debug prints and assertions ext [DEFAULT] build c extension in place test Run unit tests using pytest ``` **Manual build** ```bash #build in place and use from the same folder #sometimes necessary to remove build folder and .so #by hand $ python setup.py build_ext --inplace ``` To use make sure that the .so and potentially python files are in PYTHONPATH (or installed in developer mode) ```bash #conda $ conda develop install . #or with pip $ pip install --editable . ``` ## Cluster file specifications ``` [int32 frame_number][int32 n_clusters][clusters....] // Cluster data type typedef struct { int16_t x; int16_t y; int32_t data[9]; } Cluster ; ``` ## Running tests ```bash #Tell the program where the test data is located. # Can change depending on how you mounted sls_det_storage $ export CREADER_TEST_DATA=/mnt/sls_det_storage/moench_data/cluster_reader_test/ $ make test ``` ## Useful links: * [Using NumPy C-API](https://numpy.org/doc/stable/user/c-info.html) * [Extending Python with C](https://docs.python.org/3/extending/extending.html)