PIC-IRIS / PH5

Library of PH5 clients, apis, and utilities
Other
15 stars 9 forks source link

[BUG] resp_load seems to nuke a master.ph5 file without replacing it's contents #430

Closed timronan closed 4 years ago

timronan commented 4 years ago

Describe the bug Although resp_load has very minimal documentation making it very hard to know how it should work, resp_load seems to not work as we would expect. PH5 experiment 19-028 was delivered with no response information so @timronan tried to update the PH5 metadata using the included RESP file and included input.csv document. The input.csv document was compiled using a combination of information found in the resp file and in the expirments kef file. Please note: the Gain field in the input.csv document reflects Stage[0]:Sensitivity found in the resp file B58:F4 in the SEED manual.

The exact command used is: resp_load -n master.ph5 -a 001 -i ./input.csv

The experiment seems to only contains one array /Experiment_g/Sorts_g/Array_t_001.

This error is returned:

/home/PIC/.conda/envs/ph5/lib/python2.7/site-packages/tables/path.py:112: NaturalNameWarning: object name is not a valid Python identifier: 'ZLAND3C_250_1_2059290E+09'; it does not match the pattern ``^[a-zA-Z_][a-zA-Z0-9_]*$``; you will not be able to use natural naming to access this object; using ``getattr()`` will still work, though
  NaturalNameWarning)
[2020-10-05 21:13:43,847] - ph5.utilities.resp_load - WARNING: ZLAND3C_250_1_2059290E+09 has been loaded in another resp_load run.
[2020-10-05 21:13:43,847] - ph5.utilities.resp_load - WARNING: GS30CT has been loaded in another resp_load run.
[2020-10-05 21:13:43,848] - ph5.utilities.resp_load - INFO: Writing table backup: Response_t_2020279_00.kef.
[2020-10-05 21:13:43,856] - ph5.utilities.resp_load - INFO: Writing table backup: Array_t_001_2020279_01.kef.
[2020-10-05 21:13:43,909] - ph5.utilities.resp_load - ERROR: No Data.
Traceback (most recent call last):
  File "/home/PIC/.conda/envs/ph5/bin/resp_load", line 11, in <module>
    load_entry_point('ph5', 'console_scripts', 'resp_load')()
  File "/home/PIC/ph5_environment/PH5/ph5/utilities/resp_load.py", line 709, in main
    fix_n_i.load_response(args.ph5path, data, args.input_csv)
  File "/home/PIC/ph5_environment/PH5/ph5/utilities/resp_load.py", line 548, in load_response
    max_n_i = max(all_resp.keys())
ValueError: max() arg is an empty sequence

After this error is returned and ph5tokef is run, a kef file with no data is generated. Maybe I am missing a step when using this command. Please comment if there is something missing from the sequence explained in this issue.

Environment (please complete the following information):

To Reproduce See above.

Expected behavior Load resp file information into PH5 response table.

Additional context Resp_Load_Issue.zip

See attached files.