gpilab / philips-data-reader

Binary release of the Philips raw data reader node.
13 stars 5 forks source link

Provided Network Errors with `gpi --nogui`: Node 'ReadPhilips' failed to load #17

Closed nathanielatom closed 3 days ago

nathanielatom commented 2 weeks ago

Hi! With gpi 1.4.8 the following command gets an error from being unable to find the ReadPhilips node (despite LIB_DIRS in .gpirc being correctly configured to specify the ~/.miniconda/envs/gpi/lib/gpi folder).

gpi --nogui ~/.miniconda/envs/gpi/lib/gpi/philips/networks/readPhilips_Imaging_raw.net -s filename:raw_000.data --log=debug

When I create my own network in the GUI, I can export .npz files (but I can't attach a String to the input filename for ReadPhilips to run as command for batch processing). Any chance there's a python-importable function to get the arrays and dicts directly in code without ever using GPI?

Here's the output:

GPI 1.4.8 (2022-04-08)  
This program comes with ABSOLUTELY NO WARRANTY; see the LICENSE for details.

    NO CLINICAL USE.  THE SOFTWARE IS NOT INTENDED FOR COMMERCIAL PURPOSES
AND SHOULD BE USED ONLY FOR NON-COMMERCIAL RESEARCH PURPOSES.  THE SOFTWARE
MAY NOT IN ANY EVENT BE USED FOR ANY CLINICAL OR DIAGNOSTIC PURPOSES.  YOU
ACKNOWLEDGE AND AGREE THAT THE SOFTWARE IS NOT INTENDED FOR USE IN ANY HIGH
RISK OR STRICT LIABILITY ACTIVITY, INCLUDING BUT NOT LIMITED TO LIFE SUPPORT
OR EMERGENCY MEDICAL OPERATIONS OR USES.  LICENSOR MAKES NO WARRANTY AND HAS
NO LIABILITY ARISING FROM ANY USE OF THE SOFTWARE IN ANY HIGH RISK OR STRICT
LIABILITY ACTIVITIES.

Fri Sep 13 18:30:51 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi/types/numpy_GPITYPE.py
Fri Sep 13 18:30:51 2024 - gpi.library:336 - INFO -     /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi/types/numpy_GPITYPE.py has GPITYPE: GPIDefaultType
Fri Sep 13 18:30:51 2024 - gpi.library:336 - INFO -     /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi/types/numpy_GPITYPE.py has GPITYPE: NPYarray
Fri Sep 13 18:30:51 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi/types/globjectlist_GPITYPE.py
Fri Sep 13 18:30:51 2024 - gpi.library:336 - INFO -     /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi/types/globjectlist_GPITYPE.py has GPITYPE: GLOList
Fri Sep 13 18:30:51 2024 - gpi.library:336 - INFO -     /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi/types/globjectlist_GPITYPE.py has GPITYPE: GPIDefaultType
Fri Sep 13 18:30:51 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi/types/python_GPITYPE.py
Fri Sep 13 18:30:51 2024 - gpi.library:336 - INFO -     /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi/types/python_GPITYPE.py has GPITYPE: COMPLEX
Fri Sep 13 18:30:51 2024 - gpi.library:336 - INFO -     /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi/types/python_GPITYPE.py has GPITYPE: DICT
Fri Sep 13 18:30:51 2024 - gpi.library:336 - INFO -     /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi/types/python_GPITYPE.py has GPITYPE: FLOAT
Fri Sep 13 18:30:51 2024 - gpi.library:336 - INFO -     /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi/types/python_GPITYPE.py has GPITYPE: GPIDefaultType
Fri Sep 13 18:30:51 2024 - gpi.library:336 - INFO -     /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi/types/python_GPITYPE.py has GPITYPE: INT
Fri Sep 13 18:30:51 2024 - gpi.library:336 - INFO -     /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi/types/python_GPITYPE.py has GPITYPE: LIST
Fri Sep 13 18:30:51 2024 - gpi.library:336 - INFO -     /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi/types/python_GPITYPE.py has GPITYPE: LONG
Fri Sep 13 18:30:51 2024 - gpi.library:336 - INFO -     /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi/types/python_GPITYPE.py has GPITYPE: STRING
Fri Sep 13 18:30:51 2024 - gpi.library:336 - INFO -     /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi/types/python_GPITYPE.py has GPITYPE: TUPLE
Fri Sep 13 18:30:51 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/iterate/GPI/Iter_GPI.py
Fri Sep 13 18:30:51 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/iterate/GPI/ConjugateGradient_GPI.py
Fri Sep 13 18:30:51 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/iterate/GPI/AutoNum_GPI.py
Fri Sep 13 18:30:51 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/DownloadFile_GPI.py
Fri Sep 13 18:30:51 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/GPI/WriteHDF5_GPI.py
Fri Sep 13 18:30:51 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/GPI/WriteImage_GPI.py
Fri Sep 13 18:30:51 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/GPI/WriteRaw_GPI.py
Fri Sep 13 18:30:51 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/GPI/ReadCSV_GPI.py
Fri Sep 13 18:30:51 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/GPI/WriteNPY_GPI.py
Fri Sep 13 18:30:51 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/GPI/DICOMheader_GPI.py
Fri Sep 13 18:30:51 2024 - gpi.library:199 - INFO - /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/GPI/DICOMheader_GPI.py contains widget definitions:  ['DICOM_HDR_GROUP', 'StringBoxes', 'TextBoxes']
Fri Sep 13 18:30:51 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/GPI/ReadHDF5_GPI.py
Fri Sep 13 18:30:51 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/GPI/WritePickled_GPI.py

...

Fri Sep 13 18:30:52 2024 - gpi.library:718 - INFO - number of nodes: 87
Fri Sep 13 18:30:52 2024 - gpi.library:719 - INFO - number of networks: 1
Fri Sep 13 18:30:52 2024 - gpi.library:720 - INFO - number of types: 3
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:160 - DEBUG - GPI_FSM(GRAPH):start(): in state(init)
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:694 - DEBUG - GRAPH State(s): init
Fri Sep 13 18:30:52 2024 - gpi.network:461 - DEBUG - loadNetworkFromFile()
Fri Sep 13 18:30:52 2024 - gpi.network:470 - DEBUG - determine_version()
Fri Sep 13 18:30:52 2024 - gpi.network:472 - DEBUG - version found: 3
Fri Sep 13 18:30:52 2024 - gpi.network:481 - DEBUG - net.load() called
Fri Sep 13 18:30:52 2024 - gpi.network:297 - ---- - Network file info:
    net-version: 3
    saved with gpi-version: 1.0.4
    date saved: Thu May 30 16:50:55 2019
    wall time: 0.085 msec
    total port mem: 224.00 B
    HOSTNAME: HomeDeskWin10
    NUM_CPUS: 12
    OS: Linux
    PLATFORM: Linux-4.4.0-17763-Microsoft-x86_64-with-debian-stretch-sid
    PYTHON: CPython
    PYTHON_VERSION: 3.6.7
    TOTAL_PHYMEM: 34267680768
    TOTAL_PHYMEM_STR: 31.91 GB

Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2250 - INFO - load nodes.
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1944 - INFO - num nodes: 6
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1986 - DEBUG - add node: WriteNPY
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:470 - DEBUG -    failed to find node
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1998 - WARNING - Failed to find node 'WriteNPY' by scope.
Fri Sep 13 18:30:52 2024 - gpi.library:570 - DEBUG - Find node by closest match: WriteNPY
Fri Sep 13 18:30:52 2024 - gpi.library:583 - INFO - Found one match for WriteNPY
Fri Sep 13 18:30:52 2024 - gpi.library:162 - INFO - reload: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/GPI/WriteNPY_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/GPI/WriteNPY_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:457 - DEBUG -    found
Fri Sep 13 18:30:52 2024 - gpi.library:162 - INFO - reload: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/GPI/WriteNPY_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/GPI/WriteNPY_GPI.py
qt.qpa.fonts: Populating font family aliases took 174 ms. Replace uses of missing font family "Monospace" with one that exists to avoid this cost. 
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:160 - DEBUG - GPI_FSM(NODE):start(): in state(idle)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(WriteNPY) State(s):idle
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1061 - DEBUG - viewAndSceneForcedUpdate called
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(disabled)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(WriteNPY) State(s):disabled
Fri Sep 13 18:30:52 2024 - gpi.nodeAPI:394 - DEBUG - Setting widget: 'File Browser'
Fri Sep 13 18:30:52 2024 - gpi.nodeAPI:394 - DEBUG - Setting widget: 'Write Mode'
Fri Sep 13 18:30:52 2024 - gpi.nodeAPI:394 - DEBUG - Setting widget: 'Write Now'
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1986 - DEBUG - add node: WriteNPY
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:470 - DEBUG -    failed to find node
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1998 - WARNING - Failed to find node 'WriteNPY' by scope.
Fri Sep 13 18:30:52 2024 - gpi.library:570 - DEBUG - Find node by closest match: WriteNPY
Fri Sep 13 18:30:52 2024 - gpi.library:583 - INFO - Found one match for WriteNPY
Fri Sep 13 18:30:52 2024 - gpi.library:162 - INFO - reload: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/GPI/WriteNPY_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/GPI/WriteNPY_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:457 - DEBUG -    found
Fri Sep 13 18:30:52 2024 - gpi.library:162 - INFO - reload: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/GPI/WriteNPY_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/fileIO/GPI/WriteNPY_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:160 - DEBUG - GPI_FSM(NODE):start(): in state(idle)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(WriteNPY) State(s):idle
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1061 - DEBUG - viewAndSceneForcedUpdate called
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(disabled)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(WriteNPY) State(s):disabled
Fri Sep 13 18:30:52 2024 - gpi.nodeAPI:394 - DEBUG - Setting widget: 'File Browser'
Fri Sep 13 18:30:52 2024 - gpi.nodeAPI:394 - DEBUG - Setting widget: 'Write Mode'
Fri Sep 13 18:30:52 2024 - gpi.nodeAPI:394 - DEBUG - Setting widget: 'Write Now'
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1986 - DEBUG - add node: Custom
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:470 - DEBUG -    failed to find node
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1998 - WARNING - Failed to find node 'Custom' by scope.
Fri Sep 13 18:30:52 2024 - gpi.library:570 - DEBUG - Find node by closest match: Custom
Fri Sep 13 18:30:52 2024 - gpi.library:583 - INFO - Found one match for Custom
Fri Sep 13 18:30:52 2024 - gpi.library:162 - INFO - reload: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/interfaces/GPI/Custom_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/interfaces/GPI/Custom_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:457 - DEBUG -    found
Fri Sep 13 18:30:52 2024 - gpi.library:162 - INFO - reload: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/interfaces/GPI/Custom_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/interfaces/GPI/Custom_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:160 - DEBUG - GPI_FSM(NODE):start(): in state(idle)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(Custom) State(s):idle
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1061 - DEBUG - viewAndSceneForcedUpdate called
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(disabled)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(Custom) State(s):disabled
Fri Sep 13 18:30:52 2024 - gpi.nodeAPI:394 - DEBUG - Setting widget: 'Status'
Fri Sep 13 18:30:52 2024 - gpi.nodeAPI:394 - DEBUG - Setting widget: 'Python Code'
Fri Sep 13 18:30:52 2024 - gpi.nodeAPI:394 - DEBUG - Setting widget: 'Compute'
Fri Sep 13 18:30:52 2024 - gpi.nodeAPI:394 - DEBUG - Setting widget: 'Execution Type'
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1986 - DEBUG - add node: Custom
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:470 - DEBUG -    failed to find node
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1998 - WARNING - Failed to find node 'Custom' by scope.
Fri Sep 13 18:30:52 2024 - gpi.library:570 - DEBUG - Find node by closest match: Custom
Fri Sep 13 18:30:52 2024 - gpi.library:583 - INFO - Found one match for Custom
Fri Sep 13 18:30:52 2024 - gpi.library:162 - INFO - reload: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/interfaces/GPI/Custom_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/interfaces/GPI/Custom_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:457 - DEBUG -    found
Fri Sep 13 18:30:52 2024 - gpi.library:162 - INFO - reload: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/interfaces/GPI/Custom_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/interfaces/GPI/Custom_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:160 - DEBUG - GPI_FSM(NODE):start(): in state(idle)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(Custom) State(s):idle
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1061 - DEBUG - viewAndSceneForcedUpdate called
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(disabled)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(Custom) State(s):disabled
Fri Sep 13 18:30:52 2024 - gpi.nodeAPI:394 - DEBUG - Setting widget: 'Status'
Fri Sep 13 18:30:52 2024 - gpi.nodeAPI:394 - DEBUG - Setting widget: 'Python Code'
Fri Sep 13 18:30:52 2024 - gpi.nodeAPI:394 - DEBUG - Setting widget: 'Compute'
Fri Sep 13 18:30:52 2024 - gpi.nodeAPI:394 - DEBUG - Setting widget: 'Execution Type'
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1986 - DEBUG - add node: ReadPhilips
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:470 - DEBUG -    failed to find node
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1998 - WARNING - Failed to find node 'ReadPhilips' by scope.
Fri Sep 13 18:30:52 2024 - gpi.library:570 - DEBUG - Find node by closest match: ReadPhilips
Fri Sep 13 18:30:52 2024 - gpi.library:575 - WARNING - No node found with name 'ReadPhilips'
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:460 - DEBUG -    failed to find node
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2012 - ERROR - Node 'ReadPhilips' failed to load, skipping.
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1986 - DEBUG - add node: String
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:470 - DEBUG -    failed to find node
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1998 - WARNING - Failed to find node 'String' by scope.
Fri Sep 13 18:30:52 2024 - gpi.library:570 - DEBUG - Find node by closest match: String
Fri Sep 13 18:30:52 2024 - gpi.library:583 - INFO - Found one match for String
Fri Sep 13 18:30:52 2024 - gpi.library:162 - INFO - reload: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/generators/GPI/String_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/generators/GPI/String_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:457 - DEBUG -    found
Fri Sep 13 18:30:52 2024 - gpi.library:162 - INFO - reload: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/generators/GPI/String_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.loader:119 - INFO - SUCCESS: /Users/Atom/.miniconda/envs/gpi/lib/python3.8/site-packages/gpi_core/generators/GPI/String_GPI.py
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:160 - DEBUG - GPI_FSM(NODE):start(): in state(idle)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(String) State(s):idle
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1061 - DEBUG - viewAndSceneForcedUpdate called
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(disabled)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(String) State(s):disabled
Fri Sep 13 18:30:52 2024 - gpi.nodeAPI:394 - DEBUG - Setting widget: 'string'
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2036 - DEBUG - Load MacroNodes:
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2037 - DEBUG - []
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2080 - WARNING - Src and Dst not accurately saved.  Skip connection.
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2068 - DEBUG - inport title: File Browser
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2080 - WARNING - Src and Dst not accurately saved.  Skip connection.
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2068 - DEBUG - inport title: File Browser
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2068 - DEBUG - inport title: in1
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2068 - DEBUG - inport title: File Browser
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2070 - DEBUG - Inport occupied, connection dropped.
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2068 - DEBUG - inport title: File Browser
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2070 - DEBUG - Inport occupied, connection dropped.
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2068 - DEBUG - inport title: in1
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2068 - DEBUG - inport title: in1
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2070 - DEBUG - Inport occupied, connection dropped.
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2080 - WARNING - Src and Dst not accurately saved.  Skip connection.
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2080 - WARNING - Src and Dst not accurately saved.  Skip connection.
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2080 - WARNING - Src and Dst not accurately saved.  Skip connection.
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2080 - WARNING - Src and Dst not accurately saved.  Skip connection.
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2080 - WARNING - Src and Dst not accurately saved.  Skip connection.
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2068 - DEBUG - inport title: in1
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2070 - DEBUG - Inport occupied, connection dropped.
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2080 - WARNING - Src and Dst not accurately saved.  Skip connection.
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(idle)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(WriteNPY) State(s):idle
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(idle)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(WriteNPY) State(s):idle
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(idle)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(Custom) State(s):idle
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(idle)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(Custom) State(s):idle
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(idle)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(String) State(s):idle
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2123 - ERROR - Failed to load the following modules: 
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:2125 - ERROR -   ReadPhilips
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(GRAPH):next(): Switched to state(checkEvents)
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:694 - DEBUG - GRAPH State(s): checkEvents
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(GRAPH):next(): Switched to state(processing)
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:694 - DEBUG - GRAPH State(s): processing
Fri Sep 13 18:30:52 2024 - gpi.nodeQueue:117 - DEBUG - startNextNode(): node: String
Fri Sep 13 18:30:52 2024 - gpi.node:516 - DEBUG - NODE(String): emit switchSig
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(chkInPorts)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(String) State(s):chkInPorts
Fri Sep 13 18:30:52 2024 - gpi.node:552 - DEBUG -  ->compute
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(compute)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(String) State(s):compute
Fri Sep 13 18:30:52 2024 - gpi.functor:139 - DEBUG - init(): set as GPI_THREAD: String
Fri Sep 13 18:30:52 2024 - gpi.nodeAPI:1192 - DEBUG - Default module validate().
Fri Sep 13 18:30:52 2024 - gpi.functor:206 - DEBUG - start(): call task.start()
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1061 - DEBUG - viewAndSceneForcedUpdate called
Fri Sep 13 18:30:52 2024 - gpi.mainWindow:261 - DEBUG - tabChange: 0
Fri Sep 13 18:30:52 2024 - gpi.functor:442 - INFO - TTask _func() finished
Fri Sep 13 18:30:52 2024 - gpi.functor:238 - INFO - computeFinished():Node 'String': compute time:0.0076138973236083984 sec.
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(post_compute)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(String) State(s):post_compute
Fri Sep 13 18:30:52 2024 - gpi.node:633 - INFO - post compute SUCCESS, nextSig
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(idle)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(String) State(s):idle
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(GRAPH):next(): Switched to state(processing)
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:694 - DEBUG - GRAPH State(s): processing
Fri Sep 13 18:30:52 2024 - gpi.nodeQueue:117 - DEBUG - startNextNode(): node: Custom
Fri Sep 13 18:30:52 2024 - gpi.node:516 - DEBUG - NODE(Custom): emit switchSig
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(chkInPorts)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(Custom) State(s):chkInPorts
Fri Sep 13 18:30:52 2024 - gpi.node:552 - DEBUG -  ->compute
Fri Sep 13 18:30:52 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(compute)
Fri Sep 13 18:30:52 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(Custom) State(s):compute
Fri Sep 13 18:30:52 2024 - gpi.functor:130 - DEBUG - init(): set as GPI_PROCESS: Custom
Fri Sep 13 18:30:52 2024 - gpi.nodeAPI:1192 - DEBUG - Default module validate().
Fri Sep 13 18:30:52 2024 - gpi.functor:197 - DEBUG - start(): buffer process parms
Fri Sep 13 18:30:52 2024 - gpi.functor:203 - DEBUG - start(): garbage collect before spawning GPI_PROCESS
Fri Sep 13 18:30:52 2024 - gpi.functor:206 - DEBUG - start(): call task.start()
Fri Sep 13 18:30:52 2024 - gpi.canvasGraph:1061 - DEBUG - viewAndSceneForcedUpdate called
Path of the file:  /Users/Atom/Library/CloudStorage/OneDrive-HealthBC/datasets/mri_scans/PCASL-RIMP/raw_measuredprep
File name:  raw_000
Fri Sep 13 18:30:53 2024 - gpi.functor:304 - DEBUG - applyQueuedData(): Sending data to main loop...
Fri Sep 13 18:30:53 2024 - gpi.functor:313 - DEBUG - applyQueuedData(): apply object modifyWdg, Status
Fri Sep 13 18:30:53 2024 - gpi.functor:313 - DEBUG - applyQueuedData(): apply object setData, out1
Fri Sep 13 18:30:53 2024 - gpi.functor:313 - DEBUG - applyQueuedData(): apply object setData, out2
Fri Sep 13 18:30:53 2024 - gpi.functor:313 - DEBUG - applyQueuedData(): apply object setData, out3
Fri Sep 13 18:30:53 2024 - gpi.functor:313 - DEBUG - applyQueuedData(): apply object setData, out4
Fri Sep 13 18:30:53 2024 - gpi.functor:313 - DEBUG - applyQueuedData(): apply object modifyWdg, Status
Fri Sep 13 18:30:53 2024 - gpi.functor:313 - DEBUG - applyQueuedData(): apply object modifyWdg, Status
Fri Sep 13 18:30:53 2024 - gpi.functor:313 - DEBUG - applyQueuedData(): apply object retcode, 0
Fri Sep 13 18:30:53 2024 - gpi.functor:329 - DEBUG - applyQueuedData(): run _applyData_thread
Fri Sep 13 18:30:53 2024 - gpi.functor:246 - DEBUG - applyQueuedData_setData(): apply object modifyWdg, Status
Fri Sep 13 18:30:53 2024 - gpi.functor:246 - DEBUG - applyQueuedData_setData(): apply object setData, out1
Fri Sep 13 18:30:53 2024 - gpi.functor:261 - DEBUG - direct setData()
Fri Sep 13 18:30:53 2024 - gpi.functor:246 - DEBUG - applyQueuedData_setData(): apply object setData, out2
Fri Sep 13 18:30:53 2024 - gpi.functor:261 - DEBUG - direct setData()
Fri Sep 13 18:30:53 2024 - gpi.functor:246 - DEBUG - applyQueuedData_setData(): apply object setData, out3
Fri Sep 13 18:30:53 2024 - gpi.functor:261 - DEBUG - direct setData()
Fri Sep 13 18:30:53 2024 - gpi.functor:246 - DEBUG - applyQueuedData_setData(): apply object setData, out4
Fri Sep 13 18:30:53 2024 - gpi.functor:261 - DEBUG - direct setData()
Fri Sep 13 18:30:53 2024 - gpi.functor:246 - DEBUG - applyQueuedData_setData(): apply object modifyWdg, Status
Fri Sep 13 18:30:53 2024 - gpi.functor:246 - DEBUG - applyQueuedData_setData(): apply object modifyWdg, Status
Fri Sep 13 18:30:53 2024 - gpi.functor:246 - DEBUG - applyQueuedData_setData(): apply object retcode, 0
Fri Sep 13 18:30:53 2024 - gpi.functor:338 - INFO - applyQueuedData(): time (total queue): 0.002270936965942383 sec
Fri Sep 13 18:30:53 2024 - gpi.functor:238 - INFO - computeFinished():Node 'Custom': compute time:0.10697793960571289 sec.
Fri Sep 13 18:30:53 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(post_compute)
Fri Sep 13 18:30:53 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(Custom) State(s):post_compute
Fri Sep 13 18:30:53 2024 - gpi.node:633 - INFO - post compute SUCCESS, nextSig
Fri Sep 13 18:30:53 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(idle)
Fri Sep 13 18:30:53 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(Custom) State(s):idle
Fri Sep 13 18:30:53 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(GRAPH):next(): Switched to state(processing)
Fri Sep 13 18:30:53 2024 - gpi.canvasGraph:694 - DEBUG - GRAPH State(s): processing
Fri Sep 13 18:30:53 2024 - gpi.nodeQueue:117 - DEBUG - startNextNode(): node: Custom
Fri Sep 13 18:30:53 2024 - gpi.node:516 - DEBUG - NODE(Custom): emit switchSig
Fri Sep 13 18:30:53 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(chkInPorts)
Fri Sep 13 18:30:53 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(Custom) State(s):chkInPorts
Fri Sep 13 18:30:53 2024 - gpi.node:552 - DEBUG -  ->compute
Fri Sep 13 18:30:53 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(compute)
Fri Sep 13 18:30:53 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(Custom) State(s):compute
Fri Sep 13 18:30:53 2024 - gpi.functor:130 - DEBUG - init(): set as GPI_PROCESS: Custom
Fri Sep 13 18:30:53 2024 - gpi.nodeAPI:1192 - DEBUG - Default module validate().
Fri Sep 13 18:30:53 2024 - gpi.functor:197 - DEBUG - start(): buffer process parms
Fri Sep 13 18:30:53 2024 - gpi.functor:203 - DEBUG - start(): garbage collect before spawning GPI_PROCESS
Fri Sep 13 18:30:53 2024 - gpi.functor:206 - DEBUG - start(): call task.start()
Fri Sep 13 18:30:53 2024 - gpi.canvasGraph:1061 - DEBUG - viewAndSceneForcedUpdate called
Fri Sep 13 18:30:53 2024 - gpi.functor:304 - DEBUG - applyQueuedData(): Sending data to main loop...
Fri Sep 13 18:30:53 2024 - gpi.functor:313 - DEBUG - applyQueuedData(): apply object modifyWdg, Status
Fri Sep 13 18:30:53 2024 - gpi.functor:313 - DEBUG - applyQueuedData(): apply object setData, out1
Fri Sep 13 18:30:53 2024 - gpi.functor:313 - DEBUG - applyQueuedData(): apply object setData, out2
Fri Sep 13 18:30:53 2024 - gpi.functor:313 - DEBUG - applyQueuedData(): apply object setData, out3
Fri Sep 13 18:30:53 2024 - gpi.functor:313 - DEBUG - applyQueuedData(): apply object setData, out4
Fri Sep 13 18:30:53 2024 - gpi.functor:313 - DEBUG - applyQueuedData(): apply object modifyWdg, Status
Fri Sep 13 18:30:53 2024 - gpi.functor:313 - DEBUG - applyQueuedData(): apply object modifyWdg, Status
Fri Sep 13 18:30:53 2024 - gpi.functor:313 - DEBUG - applyQueuedData(): apply object retcode, 0
Fri Sep 13 18:30:53 2024 - gpi.functor:329 - DEBUG - applyQueuedData(): run _applyData_thread
Fri Sep 13 18:30:53 2024 - gpi.functor:246 - DEBUG - applyQueuedData_setData(): apply object modifyWdg, Status
Fri Sep 13 18:30:53 2024 - gpi.functor:246 - DEBUG - applyQueuedData_setData(): apply object setData, out1
Fri Sep 13 18:30:53 2024 - gpi.functor:261 - DEBUG - direct setData()
Fri Sep 13 18:30:53 2024 - gpi.functor:246 - DEBUG - applyQueuedData_setData(): apply object setData, out2
Fri Sep 13 18:30:53 2024 - gpi.functor:261 - DEBUG - direct setData()
Fri Sep 13 18:30:53 2024 - gpi.functor:246 - DEBUG - applyQueuedData_setData(): apply object setData, out3
Fri Sep 13 18:30:53 2024 - gpi.functor:261 - DEBUG - direct setData()
Fri Sep 13 18:30:53 2024 - gpi.functor:246 - DEBUG - applyQueuedData_setData(): apply object setData, out4
Fri Sep 13 18:30:53 2024 - gpi.functor:261 - DEBUG - direct setData()
Fri Sep 13 18:30:53 2024 - gpi.functor:246 - DEBUG - applyQueuedData_setData(): apply object modifyWdg, Status
Fri Sep 13 18:30:53 2024 - gpi.functor:246 - DEBUG - applyQueuedData_setData(): apply object modifyWdg, Status
Fri Sep 13 18:30:53 2024 - gpi.functor:246 - DEBUG - applyQueuedData_setData(): apply object retcode, 0
Fri Sep 13 18:30:53 2024 - gpi.functor:338 - INFO - applyQueuedData(): time (total queue): 0.0018520355224609375 sec
Fri Sep 13 18:30:53 2024 - gpi.functor:238 - INFO - computeFinished():Node 'Custom': compute time:0.09971809387207031 sec.
Fri Sep 13 18:30:53 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(post_compute)
Fri Sep 13 18:30:53 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(Custom) State(s):post_compute
Fri Sep 13 18:30:53 2024 - gpi.node:633 - INFO - post compute SUCCESS, nextSig
Fri Sep 13 18:30:53 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(idle)
Fri Sep 13 18:30:53 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(Custom) State(s):idle
Fri Sep 13 18:30:53 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(GRAPH):next(): Switched to state(processing)
Fri Sep 13 18:30:53 2024 - gpi.canvasGraph:694 - DEBUG - GRAPH State(s): processing
Fri Sep 13 18:30:53 2024 - gpi.nodeQueue:117 - DEBUG - startNextNode(): node: WriteNPY
Fri Sep 13 18:30:53 2024 - gpi.node:516 - DEBUG - NODE(WriteNPY): emit switchSig
Fri Sep 13 18:30:53 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(chkInPorts)
Fri Sep 13 18:30:53 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(WriteNPY) State(s):chkInPorts
Fri Sep 13 18:30:53 2024 - gpi.node:1133 - DEBUG - nodeCompute(): inport is required, but empty, skipping compute()
Fri Sep 13 18:30:53 2024 - gpi.node:555 - DEBUG -  ->ignore
Fri Sep 13 18:30:53 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(idle)
Fri Sep 13 18:30:53 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(WriteNPY) State(s):idle
Fri Sep 13 18:30:53 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(GRAPH):next(): Switched to state(processing)
Fri Sep 13 18:30:53 2024 - gpi.canvasGraph:694 - DEBUG - GRAPH State(s): processing
Fri Sep 13 18:30:53 2024 - gpi.nodeQueue:117 - DEBUG - startNextNode(): node: WriteNPY
Fri Sep 13 18:30:53 2024 - gpi.node:516 - DEBUG - NODE(WriteNPY): emit switchSig
Fri Sep 13 18:30:53 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(chkInPorts)
Fri Sep 13 18:30:53 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(WriteNPY) State(s):chkInPorts
Fri Sep 13 18:30:53 2024 - gpi.node:1133 - DEBUG - nodeCompute(): inport is required, but empty, skipping compute()
Fri Sep 13 18:30:53 2024 - gpi.node:555 - DEBUG -  ->ignore
Fri Sep 13 18:30:53 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(NODE):next(): Switched to state(idle)
Fri Sep 13 18:30:53 2024 - gpi.node:686 - DEBUG - ---------------------- Current Node(WriteNPY) State(s):idle
Fri Sep 13 18:30:53 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(GRAPH):next(): Switched to state(processing)
Fri Sep 13 18:30:53 2024 - gpi.canvasGraph:694 - DEBUG - GRAPH State(s): processing
Fri Sep 13 18:30:53 2024 - gpi.nodeQueue:108 - DEBUG - startNextNode(): node queue empty, finished.
Fri Sep 13 18:30:53 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(GRAPH):next(): Switched to state(checkEvents)
Fri Sep 13 18:30:53 2024 - gpi.canvasGraph:694 - DEBUG - GRAPH State(s): checkEvents
Fri Sep 13 18:30:53 2024 - gpi.canvasGraph:434 - DEBUG - checkEventsRun(): check for requeue nodes.
Fri Sep 13 18:30:53 2024 - gpi.stateMachine:138 - DEBUG - GPI_FSM(GRAPH):next(): Switched to state(idle)
Fri Sep 13 18:30:53 2024 - gpi.canvasGraph:694 - DEBUG - GRAPH State(s): idle
Fri Sep 13 18:30:53 2024 - gpi.canvasGraph:1061 - DEBUG - viewAndSceneForcedUpdate called
Fri Sep 13 18:30:53 2024 - gpi.canvasGraph:379 - DEBUG - pausedRun(): garbage collect
Fri Sep 13 18:30:53 2024 - gpi.canvasGraph:385 - ---- - Canvas Wall Time: 254.1 msec, exiting.
    NUM_CPUS: 8
    OS: Darwin
    OSX: 10.16
    PLATFORM: macOS-10.16-x86_64-i386-64bit
    PYTHON: CPython
    PYTHON_VERSION: 3.8.19
    TOTAL_PHYMEM: 17179869184
    TOTAL_PHYMEM_STR: 16.00 GB
nathanielatom commented 3 days ago

Update: it is possible to read directly in python (3.8) with the underlying functions in the readPhilipsExports module. Here's an example function that reads .data and .list files directly in python.

import numpy as np
from collections import namedtuple

RawData = namedtuple('RawData', ['header', 'k_space', 'k_space_legend', 'noise', 'noise_legend', 'phase_correction', 'phase_correction_legend'])

def read_philips(filename, **kwargs):
    """
    Reads raw Philips MRI k-space and header data from the specified file(s).

    Parameters
    ----------
    filename : str
        The path to the .data file to be read. The filename should have a corresponding .list file.
    **kwargs : dict
        Additional keyword arguments to be passed to the `philips.fileIO.readPhilipsExports.readData` function,
        including `chop_ky`, `prop_TSE`, `prop_GRASE` boolean arguments, which default to False.

    Returns
    -------
    RawData: namedtuple containing the following ordered attributes:
        - header: The header information from the corresponding .list file.
        - k_space: The k-space data as a multidimensional complex64 numpy array.
        - k_space_legend: A list containing the legend for the k-space data axes.
        - noise: The noise data as a multidimensional complex64 numpy array.
        - noise_legend: A list containing the legend for the noise data axes.
        - phase_correction: The phase correction data as a multidimensional complex64 numpy array.
        - phase_correction_legend: A list containing the legend for the phase correction data axes.

    Notes
    -----
    This function uses the closed source `philips.fileIO.readPhilipsExports` module to read the data.
    Available at: https://github.com/gpilab/philips-data-reader

    """
    try:
        import philips.fileIO.readPhilipsExports as phil
    except ImportError as error:
        if 'bad magic number' in str(error):
            message = 'Please ensure you are using Python 3.8'
            raise ImportError(message) from error
        raise error
    except ModuleNotFoundError as error:
        message = ('Please download the philips-data-reader binary from:'
                   'https://github.com/gpilab/philips-data-reader')
        raise ModuleNotFoundError(message) from error

    kwargs.setdefault('chop_ky', False)
    kwargs.setdefault('prop_TSE', False)
    kwargs.setdefault('prop_GRASE', False)
    kwargs.setdefault('cur_coil', -1)
    kwargs.setdefault('cur_loc', -1)

    data = phil.readData(filename, filename.replace('.data', '.list'), **kwargs)
    k_space = np.squeeze(data[0].view(np.complex64))
    k_space_legend = data[4].tolist()
    noise = data[1].view(np.complex64)
    noise_legend = data[5].tolist()
    phase_correction = np.squeeze(data[2].view(np.complex64))
    phase_correction_legend = data[6].tolist()
    header = data[3]
    return RawData(header, k_space, k_space_legend, noise, noise_legend, phase_correction, phase_correction_legend)