`Raw.resample` doesn't handle NaNs
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Start by running the reproduction script in the issue, which builds a RawArray with trailing NaNs and calls raw.resample(500). Find where Raw.resample is implemented in mne-python and check how it treats NaN samples. Done means NaN-containing channels keep NaNs only at the corresponding time points instead of turning the whole channel into NaN. The approach (interpolate, resample, restore NaNs) is the author's suggestion and still needs a maintainer decision.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description of the problem
Raw.resample turns the entire channel into NaN if even one sample is NaN. This can occur in real-world data, for example, in eye-tracking recordings (blinks, see #11879) or XDF recordings where streams end at different times.
Steps to reproduce
import mne
import numpy as np
sfreq = 1000
data = np.sin(2 * np.pi * 10 * np.arange(10000) / sfreq)[np.newaxis]
data[0, -10:] = np.nan
raw = mne.io.RawArray(data, mne.create_info(1, sfreq, "eeg"))
raw.resample(500)
print(np.isnan(raw.get_data()).mean()) # 1.0
Link to data
No response
Expected results
I think Raw.resample should handle NaN, for example by temporarily filling NaNs with linear interpolation, resampling, and then restoring NaNs at the corresponding locations. Unlike #11408, this approach relies on the data rather than annotations.
I'm happy to open a PR.
Actual results
The entire channel consists of NaN after resampling.
Additional information
Platform Linux-7.2.9-arch1-1-x86_64-with-glibc2.44 (Wayland)
Python 3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]
Executable /home/clemens/Projects/mnelab/.venv/bin/python
CPU AMD Ryzen 7 9700X 8-Core Processor (16 cores)
Memory 60.5 GiB
Core
├☑ mne 1.13.2 (latest release)
├☑ numpy 2.5.3 (OpenBLAS 0.3.34.106.0 with 16 threads via pthreads)
├☑ scipy 1.18.1
└☑ matplotlib 3.11.2 (backend=qtagg)
Numerical (optional)
├☑ scikit-learn 1.9.0
├☑ threadpoolctl 3.6.0
├☑ h5io 0.2.5
├☑ h5py 3.16.0
└☐ unavailable numba, nibabel, nilearn, dipy, openmeeg, python-picard, jamica, cupy, pandas
Visualization (optional)
├☑ qtpy 2.4.3 (PySide6=6.11.2)
├☑ pyqtgraph 0.14.0
├☑ mne-qt-browser 0.7.5
└☐ unavailable pyvista, pyvistaqt, vtk, ipympl, ipywidgets, trame, trame_client, trame_server, trame_pyvista, trame_vtk, trame_vuetify
Ecosystem (optional)
├☑ autoreject 0.4.4
├☑ edfio 0.4.17
├☑ pybv 0.8.1
└☐ unavailable mne-bids, mne-nirs, mne-features, mne-connectivity, mne-icalabel, mne-bids-pipeline, neo, eeglabio, curryreader, mffpy, pymef, antio, defusedxml
- Lenguaje dominante
- Python
- Estrellas
- 3.6k
- Forks
- 1.6k
- Merge medio
- 1 d 11 h
- PR fusionados (30 d)
- 82
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de mne-tools/mne-python
-
ENH: Add `description` filter parameter to `Raw.crop_by_annotations()`Posiblemente ocupada @aman-coder03 la tomó hace 201 días. AbiertoENH
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
mne-tools/mne-python#13743 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
ENH
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
mne-tools/mne-python#14454 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
auto-issue
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
mne-tools/mne-python#14442 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
mne-tools/mne-python#14428 · 5 comentarios ·
Los mantenedores suelen responder en 1 día
-
ENH
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
mne-tools/mne-python#14427 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de mne-tools/mne-python
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
google-agentic-commerce/AP2#388 ·
-
area:codegen backend:cuda backend:hip bug direction:input
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
CrossGL/crosstl#3061 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
rlaope/oh-my-hermes#2304 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
mochan-tk/agentic-dev-kit-for-codex#64 ·
Los mantenedores suelen responder en 1 día
-
Windows ARM memory-leakAbiertobug docs performance
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
Los mantenedores suelen responder en 3 días