Skip to main content

Adquisición y procesamiento para ruido neutrónico

Project description

RuiDAQAn

GitHub Release Python License

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ruidaqan-0.2.1.tar.gz (6.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ruidaqan-0.2.1-py3-none-any.whl (6.7 MB view details)

Uploaded Python 3

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

Hashes for ruidaqan-0.2.1.tar.gz
Algorithm Hash digest
SHA256 434881003a37c6645f97d6ef7af0e93f4e294a9ba0eba3351d1b456f3568bae0
MD5 73a85140170dd1ea6af1834e75455c79
BLAKE2b-256 16d55faae6c4c9ba29dd745aabdbdbc696a071dff491a25e6113e8daae5c2dbd

See more details on using hashes here.

Provenance

The following attestation bundles were made for ruidaqan-0.2.1.tar.gz:

Publisher: publish.yml on pbellino/ruidaqan

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for ruidaqan-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 48e5db6feae03b7d88ecf1d2af08cf95e15cc1ef295cff93ef21ebca3a29fba8
MD5 969b3b13a1b56669ac14d40907549ed5
BLAKE2b-256 2442c929fdb02f8d34595d6428babd937360fd19f78f1bb153070b172078b983

See more details on using hashes here.

Provenance

The following attestation bundles were made for ruidaqan-0.2.1-py3-none-any.whl:

Publisher: publish.yml on pbellino/ruidaqan

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page