Post

ISIS: Error en ./detect.csh al trabajar con muchas imagenes

  • ./detect.csh no genera el var.fits ?

  • Ideas y soluciones no definitivas.

  • desde IA-UNAM Ensenada. ya mero le terminamos de saber a ISIS.

❗ Detect: Weighted stack of subtracted images

Al trabajar con un gran volumen de imagenes, ISIS presenta problemas de memoria. Esto es debido a que el paquete está escrito en C, el cual requiere cierto conocimiento sobre el uso de memoria ya que no la gestiona de manera automatica como sí lo hacen otros lenguajes de mas alto nivel. Lamentablemente el codigo fuente de ISIS no está bien optimizado en este aspecto. Evitaremos dentro de lo posible modificarlo directamente.

Codigo fuente abs/main.c desde linea 68:

1
2
3
4
5
6
...
 file_list  = (FILE **)malloc(nargc*sizeof(FILE *));
 file_list2 = (FILE **)malloc(nargc*sizeof(FILE *));
 ndex = (int *)malloc(nargc*sizeof(int));
 buffer = (DATA_TYPE *)malloc(nargc*sizeof(DATA_TYPE));
...

En caso de ser necesario, sospecho que podemos moverle aquí.

Por ahora una solución que esperamos sea suficientre será utilizar 500 fits igualmente espaciados de todo nuestro conjunto para la creacion del var.fits, esto desde un detect.csh modificado al que llamaremos simplemente detect2.csh:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#! /bin/csh -f

set dir           = `grep IM_DIR process_config|awk '{print $2}'`
set dir_mrj       = `grep MRJ_DIR process_config|awk '{print $2}'`
set ref_file      = `grep REF_SUB process_config|awk '{print $2}'`
set date_file     = `grep INFILE  process_config|awk '{print $2}'`
set phot_file     = `grep VARIABLES  process_config|awk '{print $2}'`
set dir_config    = `grep CONFIG_DIR process_config|awk '{print $2}'`
set thresh        = `grep SIG_THRESH process_config|awk '{print $2}'`
set n_reject      = `grep N_REJECT process_config|awk '{print $2}'`
set mesh_smooth   = `grep MESH_SMOOTH process_config|awk '{print $2}'`

cd $dir

# Calcular el paso usando awk
set list = `awk -v n=500 'NR==FNR{total++; next} FNR==1{step=int(total/n)} (FNR-1)%step==0 {print "conv_"$1}' $date_file $date_file | head -500`
# Ejecuta el abs con 500 fits igualmente espaciados de nuestro conjunto
$dir_mrj"/bin/abs" $list -o var.fits -c ../register/phot_config -t $n_reject -s $mesh_smooth -m

Una funcionalidad que perdemos al implementar esta solución es la capacidad de ISIS para detectar eventos transientes de corta duración.

  • OTRA IDEA: Cubrir todo el conjunto por bloques de 500 y luego de algun modo integrar cada bloque para crear el var.fits

No desarrollamos una solución definitiva ya que optamos por procesar cada noche y filtro por separado. Esto vendrá con sus propias complicaciónes al momento de juntar las curvas de luz generadas en flujo relativo, con cada noche con una imagen de referencia distinta.

This post is licensed under CC BY 4.0 by the author.

Trending Tags