wfdb-python
wfdb-python copied to clipboard
wfdb.io._url.NetFileNotFoundError: 404 Error: Not Found for url: https://physionet.org/files/ecg-arrhythmia/1.0.0/WFDBRecords/01/010/.hea
import os
import wfdb
for db in wfdb.get_dbs():
print(db)
def download_dataset_from_physionet(dataset_name: str):
# https://wfdb.readthedocs.io/en/latest/io.html#module-1
print(f"Downloading {dataset_name} dataset from PhysioNet...")
if not os.path.exists("physionet"):
os.makedirs("physionet")
if not os.path.exists("physionet/" + dataset_name):
os.makedirs("physionet/" + dataset_name)
wfdb.dl_database(db_dir=dataset_name,
dl_dir=os.path.join(os.getcwd(), "physionet", dataset_name),
records='all',
annotators='all',
keep_subdirs=True,
overwrite=False)
print(f"Downloaded {dataset_name} dataset from PhysioNet!")
# Download the MIT-BIH dataset
download_dataset_from_physionet("mitdb") # This one downloads
# Download the ECG arrhythmia dataset
download_dataset_from_physionet("ecg-arrhythmia") # This one doesn't, see traceback below
...
['ecg-arrhythmia', 'A large scale 12-lead electrocardiogram database for arrhythmia study']
.....
Downloading mitdb dataset from PhysioNet...
Downloading ecg-arrhythmia dataset from PhysioNet...
Generating list of all files for: WFDBRecords/01/010/
Traceback (most recent call last):
File "I:\nasty\Python_Projects\Healthcare\ECG_Classification_Scholarship_Project\main.py", line 27, in <module>
download_dataset_from_physionet("ecg-arrhythmia")
File "I:\nasty\Python_Projects\Healthcare\ECG_Classification_Scholarship_Project\main.py", line 15, in download_dataset_from_physionet
wfdb.dl_database(db_dir=dataset_name,
File "C:\Users\chalu\AppData\Local\Programs\Python\Python311\Lib\site-packages\wfdb\io\record.py", line 3065, in dl_database
record = rdheader(
^^^^^^^^^
File "C:\Users\chalu\AppData\Local\Programs\Python\Python311\Lib\site-packages\wfdb\io\record.py", line 1847, in rdheader
header_content = download._stream_header(file_name, pn_dir)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\chalu\AppData\Local\Programs\Python\Python311\Lib\site-packages\wfdb\io\download.py", line 109, in _stream_header
content = f.read()
^^^^^^^^
File "C:\Users\chalu\AppData\Local\Programs\Python\Python311\Lib\site-packages\wfdb\io\_url.py", line 581, in read
result = b"".join(self._read_range(start, end))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\chalu\AppData\Local\Programs\Python\Python311\Lib\site-packages\wfdb\io\_url.py", line 474, in _read_range
with RangeTransfer(self._current_url, req_start, req_end) as xfer:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\chalu\AppData\Local\Programs\Python\Python311\Lib\site-packages\wfdb\io\_url.py", line 168, in __init__
self._parse_headers(method, self._response)
File "C:\Users\chalu\AppData\Local\Programs\Python\Python311\Lib\site-packages\wfdb\io\_url.py", line 214, in _parse_headers
raise cls(
wfdb.io._url.NetFileNotFoundError: 404 Error: Not Found for url: https://physionet.org/files/ecg-arrhythmia/1.0.0/WFDBRecords/01/010/.hea
Seems to be trying to find a filename that doesn't exist? When you navigate to https://physionet.org/files/ecg-arrhythmia/1.0.0/WFDBRecords/01/010 there are files in there, but the code is looking for .hea which doesn't exist?