Adquisición y procesamiento para ruido neutrónico
Project description
RuiDAQAn
Adquisición y análisis de señales para la técnica de ruido neutrónico
Descripción
ruidaqan es un paquete Python para la adquisición, procesamiento espectral y análisis de resultados de señales de ruido neutrónico, orientado a la calibración en potencia de reactores nucleares.
Cuenta con tres interfaces gráficas independientes que pueden usarse por separado o en conjunto, y también puede importarse como módulo para procesamiento por scripts.
Interfaces gráficas
Adquisición (ruidaqan a)
Adquiere señales analógicas en tiempo real usando el API nidaqmx de National Instruments. Compatible con la mayoría de las tarjetas DAQ de NI.
Por cada cadena de medición se adquieren tres señales:
- Componente AC luego del filtro anti-aliasing
- Componente DC
- Componente AC a la entrada del filtro anti-aliasing
Está diseñada para trabajar con los equipos CNEA-K330 (amplificador) y CNEA-K231 (filtro anti-aliasing), aunque admite parámetros para otros equipos.
Características principales:
- Número de cadenas de medición configurable
- Selección libre de tarjeta NI disponible
- Ajuste de rango automático
- Monitoreo de saturación con interrupción automática de la adquisición
- Señales adquiridas en int16 y convertidas a voltaje con coeficientes de calibración
- Grabación en formato compatible con FERCIN-3 y en HDF5
Control de saturación:
| Situación | AC (5V) | AC entrada filtro (4V) | DC |
|---|---|---|---|
| Ajuste de rango — fondo | No detiene | No detiene | — |
| Medición de fondo | No detiene | No detiene | Sí detiene |
| Ajuste de rango — medición | Sí detiene | Sí detiene | Sí detiene |
| Medición | Sí detiene | Sí detiene | Sí detiene |
Procesamiento (ruidaqan p)
Lee archivos .RUI (grabados por FERCIN-3) y archivos .h5 generados por la adquisición. Realiza ajustes de espectros y estima parámetros cinéticos del reactor.
Resultados (ruidaqan r)
Lee los resultados del procesamiento y calcula factores de calibración en potencia, promedios de parámetros cinéticos y ajustes lineales.
Instalación
Se recomienda usar Python 3.10 dentro de un entorno virtual. Es necesario tener instaladas las bibliotecas HDF5.
Desde el código fuente:
git clone https://github.com/pbellino/ruidaqan
cd ruidaqan
python -m pip install .
Para desarrollo (sin reinstalar al modificar el código):
python -m pip install -e ".[dev]"
Desde PyPI:
pip install ruidaqan
Desde el ejecutable (sin necesidad de Python):
Descargar el zip correspondiente al sistema operativo desde la sección Releases, descomprimir y ejecutar directamente.
Uso
Interfaces gráficas
ruidaqan a # adquisición
ruidaqan p # procesamiento
ruidaqan r # resultados
Al abrir por primera vez se pedirá seleccionar una carpeta de trabajo donde se guardarán los datos. Esta elección se recuerda en sesiones posteriores y puede cambiarse desde el menú.
Simulación de adquisición (sin hardware NI)
En Linux o macOS:
export RUIDAQAN_DEBUG_MODE=True
ruidaqan a
En Windows (cmd):
set RUIDAQAN_DEBUG_MODE=True
En Windows (PowerShell):
$env:RUIDAQAN_DEBUG_MODE="True"
Con esta opción activa, las señales adquiridas son realizaciones aleatorias de procesos Gaussianos. Las interfaces de procesamiento y resultados no requieren esta variable.
Como módulo Python
Procesar archivos .h5:
from ruidaqan.script import HDF5FileProcessing
from ruidaqan.constants import RA3 as REACTOR
rui = HDF5FileProcessing("S001-N2-1.h5")
espectros, fs = rui.get_spectrums(512, 0)
norm_espectros, fs = rui.get_normalized_spectrums("RA3", freqs_to_remove=[50, 100, 150])
if rui.BW == 200:
intervalos = 2 * [(2.3, 178.9)] + [(2.3, 93)]
elif rui.BW == 40:
intervalos = 3 * [(2.8, 35.8)]
rui.fit_spectrums(intervalos, plot=True)
rui.calcula_parametros_cineticos(REACTOR)
Analizar resultados de una calibración:
from ruidaqan.script import FitResults
fit_results = FitResults("S001-resultados_ajustes.pkl")
fit_results.fit_p_vs_I()
fit_results.fit_Ip_vs_I(plot=True)
fit_results.average_parameters(plot=True)
Funciones de transferencia
Las funciones de transferencia de los reactores se encuentran en src/ruidaqan/transferencias/, organizadas por reactor. Si necesitás agregar o modificar funciones de transferencia, copiá o editá los archivos .PSD en la carpeta correspondiente al reactor.
Plataformas
| Sistema | Adquisición | Procesamiento | Resultados |
|---|---|---|---|
| Windows | ✓ (con drivers NI) | ✓ | ✓ |
| Linux | ✓ (modo simulación) | ✓ | ✓ |
Los drivers de NI (nidaqmx) solo están disponibles para Windows. En Linux se puede usar el modo de simulación para desarrollo y pruebas, y las interfaces de procesamiento y resultados funcionan sin restricciones.
Documentación
La documentación completa está disponible en la carpeta docs/ y puede generarse con:
make docs
Licencia
Ver archivo LICENSE.
Contribuidores
- Pablo Bellino (pablobellino@cnea.gob.ar) — Reactor RA-3, CNEA
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ruidaqan-0.2.1.tar.gz.
File metadata
- Download URL: ruidaqan-0.2.1.tar.gz
- Upload date:
- Size: 6.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
434881003a37c6645f97d6ef7af0e93f4e294a9ba0eba3351d1b456f3568bae0
|
|
| MD5 |
73a85140170dd1ea6af1834e75455c79
|
|
| BLAKE2b-256 |
16d55faae6c4c9ba29dd745aabdbdbc696a071dff491a25e6113e8daae5c2dbd
|
Provenance
The following attestation bundles were made for ruidaqan-0.2.1.tar.gz:
Publisher:
publish.yml on pbellino/ruidaqan
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ruidaqan-0.2.1.tar.gz -
Subject digest:
434881003a37c6645f97d6ef7af0e93f4e294a9ba0eba3351d1b456f3568bae0 - Sigstore transparency entry: 1217811073
- Sigstore integration time:
-
Permalink:
pbellino/ruidaqan@56798b673145078f21dfb7f154c428f2186099f3 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/pbellino
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@56798b673145078f21dfb7f154c428f2186099f3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ruidaqan-0.2.1-py3-none-any.whl.
File metadata
- Download URL: ruidaqan-0.2.1-py3-none-any.whl
- Upload date:
- Size: 6.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48e5db6feae03b7d88ecf1d2af08cf95e15cc1ef295cff93ef21ebca3a29fba8
|
|
| MD5 |
969b3b13a1b56669ac14d40907549ed5
|
|
| BLAKE2b-256 |
2442c929fdb02f8d34595d6428babd937360fd19f78f1bb153070b172078b983
|
Provenance
The following attestation bundles were made for ruidaqan-0.2.1-py3-none-any.whl:
Publisher:
publish.yml on pbellino/ruidaqan
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ruidaqan-0.2.1-py3-none-any.whl -
Subject digest:
48e5db6feae03b7d88ecf1d2af08cf95e15cc1ef295cff93ef21ebca3a29fba8 - Sigstore transparency entry: 1217811075
- Sigstore integration time:
-
Permalink:
pbellino/ruidaqan@56798b673145078f21dfb7f154c428f2186099f3 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/pbellino
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@56798b673145078f21dfb7f154c428f2186099f3 -
Trigger Event:
push
-
Statement type: