UCBerkeleySETI / turbo_seti

turboSETI -- python based SETI search algorithm.
http://turbo-seti.readthedocs.io
MIT License
54 stars 38 forks source link

Supplied Voyager1.single_coarse.fine_res.h5 appears to be invalid; "KeyError: 'source_name'" #12

Closed texadactyl closed 5 years ago

texadactyl commented 5 years ago

My environment: Python 3.7.1 on Anaconda 4.5.12 on Xubuntu 18.04.1 - all up to date.

Compiled and installed without errors this way: python3 setup.py install

I saw some warnings:

(1) site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp] #warning "Using deprecated NumPy API

(2) Running blimpy-1.3.5/setup.py -q bdist_egg --dist-dir /tmp/easy_install-z2j_f4se/blimpy-1.3.5/egg-dist-tmp-gb8d0ijy /home/elkins/anaconda3/lib/python3.7/distutils/dist.py:274: UserWarning: Unknown distribution option: 'platform' warnings.warn(msg)

The first warning is because one of the dependency packages is using a Numpy API which will be unsupported in the future.

The second warning might because this is the first time someone has tried installing into an Anaconda environment. Maybe? Or happens all the time?

I tried the Voyager1.single_coarse.fine_res.h5 file in the voyager_test subdirectory.

turboSETI Voyager1.single_coarse.fine_res.h5

This file was diagnosed as invalid. What stood out to me was "KeyError: 'source_name'". The standard output follows.

blimpy.file_wrapper INFO     Skipping loading data ...
root            ERROR    Error accessing header from file: Voyager1.single_coarse.fine_res.h5.
Traceback (most recent call last):
  File "/home/elkins/anaconda3/lib/python3.7/site-packages/turbo_seti-0.7.3-py3.7-linux-x86_64.egg/turbo_seti/findoppler/data_handler.py", line 147, in __init__
    header = self.__make_data_header(self.fil_file.header)
  File "/home/elkins/anaconda3/lib/python3.7/site-packages/turbo_seti-0.7.3-py3.7-linux-x86_64.egg/turbo_seti/findoppler/data_handler.py", line 215, in __make_data_header
    base_header[u'SOURCE'] = header[u'source_name'].replace('\xc2\xa0','_').replace(' ','_')
KeyError: 'source_name'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/elkins/anaconda3/lib/python3.7/site-packages/turbo_seti-0.7.3-py3.7-linux-x86_64.egg/turbo_seti/findoppler/seti_event.py", line 75, in main
    find_seti_event = FinDoppler(filename, max_drift = opts.max_drift, snr = opts.snr, out_dir = opts.out_dir,coarse_chans = opts.coarse_chans, obs_info=obs_info)
  File "/home/elkins/anaconda3/lib/python3.7/site-packages/turbo_seti-0.7.3-py3.7-linux-x86_64.egg/turbo_seti/findoppler/findopp.py", line 56, in __init__
    self.data_handle = DATAHandle(datafile,out_dir=out_dir)
  File "/home/elkins/anaconda3/lib/python3.7/site-packages/turbo_seti-0.7.3-py3.7-linux-x86_64.egg/turbo_seti/findoppler/data_handler.py", line 49, in __init__
    data_obj = DATAH5(filename)
  File "/home/elkins/anaconda3/lib/python3.7/site-packages/turbo_seti-0.7.3-py3.7-linux-x86_64.egg/turbo_seti/findoppler/data_handler.py", line 150, in __init__
    raise IOError("Error accessing header from file: %s."%self.filename)
OSError: Error accessing header from file: Voyager1.single_coarse.fine_res.h5.
Traceback (most recent call last):
  File "/home/elkins/anaconda3/lib/python3.7/site-packages/turbo_seti-0.7.3-py3.7-linux-x86_64.egg/turbo_seti/findoppler/data_handler.py", line 147, in __init__
    header = self.__make_data_header(self.fil_file.header)
  File "/home/elkins/anaconda3/lib/python3.7/site-packages/turbo_seti-0.7.3-py3.7-linux-x86_64.egg/turbo_seti/findoppler/data_handler.py", line 215, in __make_data_header
    base_header[u'SOURCE'] = header[u'source_name'].replace('\xc2\xa0','_').replace(' ','_')
KeyError: 'source_name'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/elkins/anaconda3/lib/python3.7/site-packages/turbo_seti-0.7.3-py3.7-linux-x86_64.egg/turbo_seti/findoppler/seti_event.py", line 75, in main
    find_seti_event = FinDoppler(filename, max_drift = opts.max_drift, snr = opts.snr, out_dir = opts.out_dir,coarse_chans = opts.coarse_chans, obs_info=obs_info)
  File "/home/elkins/anaconda3/lib/python3.7/site-packages/turbo_seti-0.7.3-py3.7-linux-x86_64.egg/turbo_seti/findoppler/findopp.py", line 56, in __init__
    self.data_handle = DATAHandle(datafile,out_dir=out_dir)
  File "/home/elkins/anaconda3/lib/python3.7/site-packages/turbo_seti-0.7.3-py3.7-linux-x86_64.egg/turbo_seti/findoppler/data_handler.py", line 49, in __init__
    data_obj = DATAH5(filename)
  File "/home/elkins/anaconda3/lib/python3.7/site-packages/turbo_seti-0.7.3-py3.7-linux-x86_64.egg/turbo_seti/findoppler/data_handler.py", line 150, in __init__
    raise IOError("Error accessing header from file: %s."%self.filename)
OSError: Error accessing header from file: Voyager1.single_coarse.fine_res.h5.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/elkins/anaconda3/bin/turboSETI", line 11, in <module>
    load_entry_point('turbo-seti==0.7.3', 'console_scripts', 'turboSETI')()
  File "/home/elkins/anaconda3/lib/python3.7/site-packages/turbo_seti-0.7.3-py3.7-linux-x86_64.egg/turbo_seti/findoppler/seti_event.py", line 84, in main
    raise Exception(1,'[turbo_SETI] Some issue with FinDoppler.',e)
Exception: (1, '[turbo_SETI] Some issue with FinDoppler.', OSError('Error accessing header from file: Voyager1.single_coarse.fine_res.h5.'))
texadactyl commented 5 years ago

As @telegraphic said elsewhere, this is a Python migration issue for h5py and the project. Stick to Python 2 for the moment.