Skip to content
Snippets Groups Projects
Commit 074515ba authored by Christian Sarmiento's avatar Christian Sarmiento
Browse files

Programas para la toma y análisis de datos con Escaramujo. Además se agrega el manual de usuario

parent 7fc9ec50
No related branches found
No related tags found
No related merge requests found
File added
%% Cell type:markdown id: tags:
# Lluvias aéreas extensas
%% Cell type:markdown id: tags:
<img src="Montaje_EAS-min.png" style="width: 500px;"/>
Este notebook describe el procediminto para la toma de datos, control de parámetros y descarga de datos para su posterior análisis.
El acceso al laboratorio se hace por SSH desde un terminal. Primero debemos ingresar al servidor central Obatala mediante el comando:
**`ssh lacongalab@200.16.117.76`**
pass: HMcvmA4ee3
Luego para ingresar al sistema de adquisición del detector de centelleo usaremos:
**`ssh root@10.1.28.86`**
pass: laconga2021
Allí accedemos a la carpeta de la práctica:
**`cd /home/pi/LACoNGA`**
## Configuración del detector
La configuración de los parámetros de adquisición así como la toma de datos se hacen mediante la interfaz **minicom**. Para configurar los parámetros (umbral de discriminación, ventanas de coincidencias y número de coincidencias) se emplean los comandos descritos en el archivo (Escaramujo_User_Guide).
Para configurar los parámetros de adquisición entramos a la intefaz ejecutando:
**`minicom`**
Un vez dentro configuramos por ejemplo el umbral de adquisición tecleando el comando:
**`TL 4 30`**
Esto estalece un umbral de discriminación de 30 mV en los 4 canales de adquisición. Para salir de la interfaz tecleamos.
**`Ctrl+A x`** y enter
Cuando configuremos los parámetros de adquisición procedemos a tomar los datos. Para ello ejecutamos:
**`minicom -C File_name.dat`**
y dentro de la interfaz ejecutamos
**`CE`** -- habilita el contador de eventos
Los datos mostrados en pantalla serán almacenados en el archivo **File_name.dat**. Para terminar la adquisición ejecutamos:
**`CD`** -- deshabilita el contador de eventos
Una vez más salimos del minicom con **`Ctrl+A x`** y enter. Este procedimiento se ejecuta siempre que se quiera adquirir cambiando los parámetros de adquisición.
## Calibración del detector
Primero el estudiante debe calibrar el umbral de detección. Para ello el estudiante debe tomar 5 minutos de datos cambiando el umbral de discriminación de 50 a 300 mV con paso de 25 mV. Luego se determina el umbral óptimo mediante la gráfica de flujo (conteos/s o conteos/min) vs umbral y estimando el flujo esperado en los 3 paneles centelladores de (25 cm x 25 cm) a 990 m s.n.m.
**NOTA :** Tener cuidado con el nombre del archivo, use uno inconfundible ;).
## Medición de la tasa de EAS
Para la medición de lluvias aréreas extensas configurar el detector en coincidencia 2-Fold y establecer la ventana de coincidencia (ver Escaramujo User Guide).
## Descarga de los archivos
Ahora debemos copiar los datos a nuestro PC. Para ello primero lo copiamos al servidor **Obatala** y luego a nuestro PC. Ejecutamos:
**`scp File_name.dat lacongalab@200.16.117.76:/home/lacongalab`**
pass: HMcvmA4ee3
Y ahora desde nuestra carpeta local (en nuestro PC) desde otro terminal ejecutamos:
**`scp lacongalab@200.16.117.76:/home/lacongalab/File_name.dat .`**
pass: HMcvmA4ee3
En este puto ya tenemos los datos en nuestro PC y podemos procesarlos :) :) :).
%% Cell type:markdown id: tags:
# Procesamiento
%% Cell type:code id: tags:
``` python
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
import math
import csv, operator
import scipy.stats as st
from numpy import random
import pandas as pd
from datetime import datetime
from pandas import DataFrame as df
matplotlib.pyplot.savefig
%matplotlib inline
```
%% Cell type:code id: tags:
``` python
def data_analysis(data):
fn = np.unique(data['FECHA_HORA'])
frec = []
for i in fn:
frec.append(np.sum(data['FECHA_HORA']==i))
frec = np.array(frec)
data2 = pd.DataFrame({'fecha': fn, 'frec': frec})
data2.describe().transpose()
mean = np.mean(frec)
std = np.std(frec)
print "Mean rate : %.2f +/- %.2f" %(mean, std)
# plt.figure(figsize=(8,5))
# plt.xlabel('\n' + r'Time [HH:mm:ss]', linespacing=1, fontsize = 18)
# plt.ylabel('\n' + r'Flux [counts/s]', linespacing=1, fontsize = 18)
# plt.plot(fn, frec)
# plt.show()
return mean, std
```
%% Cell type:code id: tags:
``` python
rate = []
error = []
threshold = []
for i in range(500,3500,500):
print i
data = pd.read_csv('Data/Flujo_Th_' + str(i) + '.dat', delimiter=' ', sep = 's*', comment='S',
names = ['T1', 'CH1a', 'CH1b', 'CH2a', 'CH2b', 'CH3a', 'CH3b', 'CH4a', 'CH4b', 'T2', 'hora', 'fecha', 'rec1', 'rec2', 'rec3', 'rec4'],
parse_dates={'FECHA_HORA': [11,10]}, date_parser= lambda x, y: pd.datetime.strptime(x + ' '+ y , '%d%m%y %H%M%S.%f'))
mean, std = data_analysis(data)
rate.append(mean)
error.append(std)
threshold.append(i)
```
%% Output
500
Mean rate : 74.90 +/- 18.03
1000
Mean rate : 23.41 +/- 8.87
1500
Mean rate : 10.31 +/- 5.36
2000
Mean rate : 6.07 +/- 3.55
2500
Mean rate : 4.37 +/- 2.64
3000
Mean rate : 3.60 +/- 2.03
%% Cell type:code id: tags:
``` python
plt.figure(figsize=(8,5))
plt.plot(np.array(threshold)/10.0, rate)
plt.xlabel('\n' + r'Threshold [mV]', linespacing=1, fontsize = 18)
plt.ylabel('\n' + r'Flux [counts/s]', linespacing=1, fontsize = 18)
plt.show()
```
%% Output
%% Cell type:markdown id: tags:
## Estudiantes
%% Cell type:code id: tags:
``` python
rate = []
error = []
threshold = []
for i in range(50,325,25):
print i
file_name = 'Data/calibration_' + str(i) + 'mV.dat'
print file_name
data = pd.read_csv(file_name, delimiter=' ', sep = 's*', comment='S',
names = ['T1', 'CH1a', 'CH1b', 'CH2a', 'CH2b', 'CH3a', 'CH3b', 'CH4a', 'CH4b', 'T2', 'hora', 'fecha', 'rec1', 'rec2', 'rec3', 'rec4'],
parse_dates={'FECHA_HORA': [11,10]}, date_parser= lambda x, y: pd.datetime.strptime(x + ' '+ y , '%d%m%y %H%M%S.%f'))
mean, std = data_analysis(data)
rate.append(mean)
error.append(std)
threshold.append(i)
```
%% Output
50
Data/calibration_50mV.dat
Mean rate : 70.96 +/- 17.01
75
Data/calibration_75mV.dat
Mean rate : 38.09 +/- 11.91
100
Data/calibration_100mV.dat
Mean rate : 21.70 +/- 8.84
125
Data/calibration_125mV.dat
Mean rate : 14.51 +/- 6.48
150
Data/calibration_150mV.dat
Mean rate : 14.33 +/- 6.73
175
Data/calibration_175mV.dat
Mean rate : 7.00 +/- 3.91
200
Data/calibration_200mV.dat
Mean rate : 5.46 +/- 3.08
225
Data/calibration_225mV.dat
Mean rate : 4.88 +/- 2.72
250
Data/calibration_250mV.dat
Mean rate : 4.38 +/- 2.66
275
Data/calibration_275mV.dat
Mean rate : 3.98 +/- 2.16
300
Data/calibration_300mV.dat
Mean rate : 3.28 +/- 1.76
%% Cell type:code id: tags:
``` python
plt.figure(figsize=(8,5))
plt.plot(np.array(threshold), rate)
plt.xlabel('\n' + r'Threshold [mV]', linespacing=1, fontsize = 18)
plt.ylabel('\n' + r'Flux [counts/s]', linespacing=1, fontsize = 18)
plt.show()
```
%% Output
%% Cell type:code id: tags:
``` python
```
source diff could not be displayed: it is too large. Options to address this: view the blob.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment