Correct sampto behaviour using rdsamp and rdann?
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- backend-api-design
Direzione di ricerca
Inizia eseguendo la riproduzione Python fornita con wfdb.rdsamp e wfdb.rdann, usando lo stesso valore di sampto e il campione all’indice 100. Traccia il modo in cui ogni punto di ingresso gestisce il limite superiore; il lavoro è completato quando la semantica degli intervalli è coerente e l’indicizzazione delle annotazioni restituite non genera un IndexError.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
When reading the signal with rdsamp and the corresponding annotations with rdann using the same sampto value results in an IndexError when accessing the signal array it includes an annotation outside the array.
In the example below, to read the first 100 entries, sampto must be 100. If using the same value for the annotations up to and including 100 are read, rather than stopping at 99 (i.e., the 100th entry in a 0-indexed array).
Is this the expected behaviour?
Using: python 3.9.18 with wfdb 4.1.2
import numpy as np
import wfdb
# create test data
n = 250
test_sig = np.zeros((n, 1))
test_sig[:, 0] = np.linspace(0, 1, n)
print(f'original shape: {test_sig.shape}')
# write to file
wfdb.wrsamp('test', fs = 250, units=['mV'], sig_name=['test'], p_signal=test_sig, fmt=['16'])
# create annotation and write
wfdb.Annotation(
record_name='test',
extension='atr',
sample=np.array([0, 99, 100, 249]),
symbol=['N', 'N', 'N', 'N']
).wrann()
samp_from = 0
samp_to = 100
# read values
values, _ = wfdb.rdsamp('test', sampfrom=samp_from, sampto=samp_to)
print(f'sampto shape: {values.shape}')
atr_1 = wfdb.rdann('test', extension='atr', sampfrom=samp_from, sampto=samp_to, shift_samps=True)
print(f'samples: {atr_1.sample}')
# IndexError
# print(f'values at samples: {values[atr_1.sample, :]}')
samp_to_minus_1 = samp_to - 1
atr_2 = wfdb.rdann('test', extension='atr', sampfrom=samp_from, sampto=samp_to_minus_1, shift_samps=True)
print(f'samples: {atr_2.sample}')
# No IndexError
# print(f'values at samples: {values[atr_2.sample, :]}')
- Lingua principale
- Jupyter Notebook
- Stelle
- 853
- Fork
- 322
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di MIT-LCP/wfdb-python
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
MIT-LCP/wfdb-python#568 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
MIT-LCP/wfdb-python#557 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 58/100
MIT-LCP/wfdb-python#554 ·
-
WFDB path ignored Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
MIT-LCP/wfdb-python#545 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
MIT-LCP/wfdb-python#540 ·
Tutte le issue di MIT-LCP/wfdb-python
Issue simili
-
bug priority:normal ready-for-dev
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
OpenHands/extensions#626 · 1 commento ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
avniproject/avni-client#2135 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
use-agent-os/agent-os#3276 ·