-
Notifications
You must be signed in to change notification settings - Fork 0
/
sample_sets.py
64 lines (47 loc) · 2.06 KB
/
sample_sets.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# coding=utf-8
# Toma un directorio con archivos de features sampleadas de curvas de luz.
# Con ellos separo los valores de las features en n sets de entrenamiento
# distintos. Donde n es el numero de muestras
# -----------------------------------------------------------------------------
import sys
import argparse
import pandas as pd
import lightcurves.lc_utils as lu
from config import *
if __name__ == '__main__':
print ' '.join(sys.argv)
parser = argparse.ArgumentParser()
parser.add_argument('--catalog', default='MACHO',
choices=['MACHO', 'EROS', 'OGLE', 'CATALINA'])
parser.add_argument('--result_file_path', required=True, type=str)
parser.add_argument('--samples_path', required=True, type=str)
args = parser.parse_args(sys.argv[1:])
catalog = args.catalog
result_file_path = args.result_file_path
samples_path = args.samples_path
feature_samples_files = lu.get_paths(samples_path, '.csv')
feature_samples_files = [x for x in feature_samples_files]
ids = [lu.get_lightcurve_id(x, catalog=catalog) for x in feature_samples_files]
feature_list = ['']
feature_list.extend(pd.read_csv(feature_samples_files[0]).columns.tolist())
feature_list.append('class')
linea = ','.join(feature_list) + '\n'
archivos = []
for i in xrange(100): # El 100 esta harcodeao se puede obtener directamente
f = open(result_file_path + catalog + '_sampled_' + str(i) + '.csv', 'w')
f.write(linea)
archivos.append(f)
for f in feature_samples_files:
lc_id = lu.get_lightcurve_id(f, catalog=catalog)
lc_class = lu.get_lightcurve_class(f, catalog=catalog)
archivo = open(f, 'r')
# Boto la primera linea con el nombre de las columnas
archivo.readline()
for index, l in enumerate(archivo):
linea = [lc_id]
linea.extend(l.strip('\n').split(','))
linea.append(lc_class)
linea = ','.join(linea) + '\n'
archivos[index].write(linea)
for f in archivos:
f.close()