<commit_before>import os
import sys
import glob
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import multiprocessing
from matplotlib import gridspec
from scipy.optimize import curve_fit
from astropy.io import ascii
from astropy.utils.console import ProgressBar, color_print
from astropy.table import Table, join, hstack
from pm_funcs import barra
from linfit import linfit
import pm_funcs

#PARAMETROS
nframes, nbins, limplotpm, nprocs = pm_funcs.get_pm1a1()
limplot = limplotpm

color_print('[PM_1a1.py]', 'yellow')
color_print('Parametros:', 'lightgray')
print '\tnframes: %d' % nframes
print '\tnbins:   %d' % nbins
print '\tnprocs:  %d' % nprocs

stilts_folder = os.path.dirname(os.path.realpath(__file__))
cpun = multiprocessing.cpu_count()

def recta(x,a,b):
    return a*x + b

def load_file(archivo):
    data = np.genfromtxt(archivo, unpack=True)
    return data

def load_table(archivo):
    tabla = Table.read(archivo, format='ascii')
    return tabla

#Lee los archivos con DX DY
referencia = sys.argv[1]

archivos   = np.sort(glob.glob('./PMs/PM_*'))
nro_arch   = len(archivos)

nro_epoca = np.sort([int(f.split('_')[1].split('.')[0]) for f in archivos])
color_print('Epocas:', 'lightgray')
print nro_epoca

#Realiza el match entre los PM_*.dat
if not os.path.isfile('PM.hdf5'):
    print '\nPM.hdf5 no encontrado, generando archivo...'
    todos   = barra(load_file, archivos, nprocs)
    maximos = np.zeros(len(todos))
    refdatax = load_file(referencia)
    refdatax = refdatax.T[np.argsort(refdatax[0])].T

    for i in xrange(len(todos)):
        maximos[i] = np.max(todos[i][0])
    maximo = np.max(maximos)
    maximo = np.max([maximo, np.nanmax(refdatax[0])])

    total_id  = np.arange(1, maximo+1)

    refdata  = np.zeros((maximo, len(refdatax)))
    refdata[:] = np.nan


    refidsm = np.in1d(total_id, refdatax[0])
    refdata[refidsm] = refdatax.T

    #Genera matriz donde van todos los catalogos
    allcat    = np.zeros((maximo, len(todos)*4))
    allcat[:] = np.nan


    #Rellena la matriz
    print 'Ingresando datos a la matriz...'
    for i in ProgressBar(xrange(len(todos))):
        ids      = todos[i][0]
        orden    = np.argsort(ids)
        todos[i] = todos[i].T[orden].T
        com      = np.in1d(total_id, todos[i][0])

        allcat[:,i*4:i*4+4][com] = todos[i].T

    #Genera el header
    hdr = []
    hdra = 'ID_REF,RA,DEC,X,Y,MAG,MAG_ERR'
    hdr.append(hdra.split(','))
    for i in xrange(len(todos)):
        hdrb = 'ID_1,DX_1,DY_1,NEI_1'
        hdrb = hdrb.replace('1','%d' % nro_epoca[i])
        hdrb = hdrb.split(',')
        hdr.append(hdrb)

    hdr = np.hstack(hdr).tolist()

    allcat = np.hstack([refdata, allcat])
    no_ids = np.isfinite(allcat[:,0])
    allcat = allcat[no_ids]
    nans = np.isnan(allcat)
    allcat[nans] = -9898

    output = Table(allcat, names=hdr)
    print 'Guardando datos...'
    output.write('PM.hdf5', path='data', compression=True)
    dxdy_data = output
    #del output

else:
    print '\nPM.hdf5 encontrado, no se creo archivo!'
    if os.path.isfile('PM_final.dat'):
        print '\nPM_final.dat encontrado! Bye'
        sys.exit(1)
    print '\nAbriendo PM.hdf5'
    dxdy_data = np.array(Table.read('PM.hdf5', path='data'))

#Calcula los PM

#Lee zinfo
yr  = np.genfromtxt('zinfo_img',unpack=True,usecols=(6,))
see = np.genfromtxt('zinfo_img',unpack=True,usecols=(4,))
yep = np.genfromtxt('zinfo_img',unpack=True,usecols=(0,),dtype='string')

#Filtra solo la banda K
yr_ma = np.array(['k' in y for y in yep])
yep   = yep[yr_ma]
yr    = yr[yr_ma]
see   = see[yr_ma]

#Quiero solo las epocas con las que estoy trabajando
#Busca si el numero de epoca esta en yr_ma
molde = yep[0].split('-')[0]
tengo = np.array([molde+'-%03d.fits' % i for i in nro_epoca])

print yep
print tengo
print archivos==tengo
#eff_epoch = np.sum([np.char.find(yep, '%03d' % i)!=-1 for i in nro_epoca], axis=0) > 0
eff_epoch = np.in1d(yep, tengo)
print eff_epoch

print eff_epoch.shape

yrs = (yr-yr[0])/365.2422 #yr[0] deberia dar igual, siempre que importe solo la pendiente
print yrs.shape
<commit_msg>Aaaah<commit_after>import os
import sys
import glob
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import multiprocessing
from matplotlib import gridspec
from scipy.optimize import curve_fit
from astropy.io import ascii
from astropy.utils.console import ProgressBar, color_print
from astropy.table import Table, join, hstack
from pm_funcs import barra
from linfit import linfit
import pm_funcs

#PARAMETROS
nframes, nbins, limplotpm, nprocs = pm_funcs.get_pm1a1()
limplot = limplotpm

color_print('[PM_1a1.py]', 'yellow')
color_print('Parametros:', 'lightgray')
print '\tnframes: %d' % nframes
print '\tnbins:   %d' % nbins
print '\tnprocs:  %d' % nprocs

stilts_folder = os.path.dirname(os.path.realpath(__file__))
cpun = multiprocessing.cpu_count()

def recta(x,a,b):
    return a*x + b

def load_file(archivo):
    data = np.genfromtxt(archivo, unpack=True)
    return data

def load_table(archivo):
    tabla = Table.read(archivo, format='ascii')
    return tabla

#Lee los archivos con DX DY
referencia = sys.argv[1]

archivos   = np.sort(glob.glob('./PMs/PM_*'))
nro_arch   = len(archivos)

nro_epoca = np.sort([int(f.split('_')[1].split('.')[0]) for f in archivos])
color_print('Epocas:', 'lightgray')
print nro_epoca

#Realiza el match entre los PM_*.dat
if not os.path.isfile('PM.hdf5'):
    print '\nPM.hdf5 no encontrado, generando archivo...'
    todos   = barra(load_file, archivos, nprocs)
    maximos = np.zeros(len(todos))
    refdatax = load_file(referencia)
    refdatax = refdatax.T[np.argsort(refdatax[0])].T

    for i in xrange(len(todos)):
        maximos[i] = np.max(todos[i][0])
    maximo = np.max(maximos)
    maximo = np.max([maximo, np.nanmax(refdatax[0])])

    total_id  = np.arange(1, maximo+1)

    refdata  = np.zeros((maximo, len(refdatax)))
    refdata[:] = np.nan


    refidsm = np.in1d(total_id, refdatax[0])
    refdata[refidsm] = refdatax.T

    #Genera matriz donde van todos los catalogos
    allcat    = np.zeros((maximo, len(todos)*4))
    allcat[:] = np.nan


    #Rellena la matriz
    print 'Ingresando datos a la matriz...'
    for i in ProgressBar(xrange(len(todos))):
        ids      = todos[i][0]
        orden    = np.argsort(ids)
        todos[i] = todos[i].T[orden].T
        com      = np.in1d(total_id, todos[i][0])

        allcat[:,i*4:i*4+4][com] = todos[i].T

    #Genera el header
    hdr = []
    hdra = 'ID_REF,RA,DEC,X,Y,MAG,MAG_ERR'
    hdr.append(hdra.split(','))
    for i in xrange(len(todos)):
        hdrb = 'ID_1,DX_1,DY_1,NEI_1'
        hdrb = hdrb.replace('1','%d' % nro_epoca[i])
        hdrb = hdrb.split(',')
        hdr.append(hdrb)

    hdr = np.hstack(hdr).tolist()

    allcat = np.hstack([refdata, allcat])
    no_ids = np.isfinite(allcat[:,0])
    allcat = allcat[no_ids]
    nans = np.isnan(allcat)
    allcat[nans] = -9898

    output = Table(allcat, names=hdr)
    print 'Guardando datos...'
    output.write('PM.hdf5', path='data', compression=True)
    dxdy_data = output
    #del output

else:
    print '\nPM.hdf5 encontrado, no se creo archivo!'
    if os.path.isfile('PM_final.dat'):
        print '\nPM_final.dat encontrado! Bye'
        sys.exit(1)
    print '\nAbriendo PM.hdf5'
    dxdy_data = np.array(Table.read('PM.hdf5', path='data'))

#Calcula los PM

#Lee zinfo
yr  = np.genfromtxt('zinfo_img',unpack=True,usecols=(6,))
see = np.genfromtxt('zinfo_img',unpack=True,usecols=(4,))
yep = np.genfromtxt('zinfo_img',unpack=True,usecols=(0,),dtype='string')

#Filtra solo la banda K
yr_ma = np.array(['k' in y for y in yep])
yep   = yep[yr_ma]
yr    = yr[yr_ma]
see   = see[yr_ma]

#Quiero solo las epocas con las que estoy trabajando
#Busca si el numero de epoca esta en yr_ma
molde = yep[0].split('-')[0]
tengo = np.array([molde+'-%03d.fits' % i for i in nro_epoca])

print yep
print tengo
print archivos
#eff_epoch = np.sum([np.char.find(yep, '%03d' % i)!=-1 for i in nro_epoca], axis=0) > 0
eff_epoch = np.in1d(yep, tengo)
print eff_epoch

print eff_epoch.shape

yrs = (yr-yr[0])/365.2422 #yr[0] deberia dar igual, siempre que importe solo la pendiente
print yrs.shape

{'fraction_non_alphanumeric': 0.14901104234922946, 'fraction_numerical': 0.014561339643247179, 'mean_word_length': 3.696296296296296, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '438710', 'n_tokens_mistral': 3429, 'n_tokens_neox': 3371, 'n_words': 732}