MIT-LCP / MIT-LCP/wfdb-python

wfdb.io._url.NetFileNotFoundError: 404 Error: Not Found for url: https://physionet.org/files/ecg-arrhythmia/1.0.0/WFDBRecords/01/010/.hea

Abierto
#513 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Jupyter Notebook
Estrellas
853
Forks
322
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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?

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza en wfdb.dl_database en wfdb/io/record.py y sigue la descarga a través de wfdb/io/download.py y wfdb/io/_url.py. Reproduce la solicitud del conjunto de datos ecg-arrhythmia e inspecciona cómo se interpreta WFDBRecords/01/010/. La tarea estará terminada cuando el conjunto de datos se pueda descargar sin solicitar la ruta .hea que falta.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
data
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.