Index: /branches/alston_branches/nn.20200129/Large Brightness Set Generator.py
===================================================================
--- /branches/alston_branches/nn.20200129/Large Brightness Set Generator.py	(revision 41263)
+++ /branches/alston_branches/nn.20200129/Large Brightness Set Generator.py	(revision 41263)
@@ -0,0 +1,96 @@
+#!/usr/bin/env python2
+# -*- coding: utf-8 -*-
+"""
+Created on Tue Feb  4 09:44:13 2020
+
+@author: jalston
+"""
+
+import numpy as np
+from astropy.io import fits
+from astropy.utils.data import get_pkg_data_filename
+from astropy.table import Table
+import matplotlib.pyplot as plt
+import random
+
+def data_extractor(filepath):
+    hdu_list = fits.open(filepath)
+    data = [hdu_list[3*i+3].data for i in range(len(hdu_list)/3)]
+    names = [hdu_list[3*i+3].header[-1] for i in range(len(hdu_list)/3)]
+    empty_array = np.ndarray.tolist(np.zeros(len(data)))
+    for i in range(len(data)):
+        element = np.ndarray.tolist(np.zeros(8))
+        psf_perfect = [hdu_list[3*i+3].data[j][34] for j in range(len(hdu_list[3*i+3].data))]
+        mask_present = [hdu_list[3*i+3].data[j][53] & 0x2000 for j in range(len(hdu_list[3*i+3].data))] #whack hexadecimal shit
+        kron_flux = [hdu_list[3*i+3].data[j][46] for j in range(len(hdu_list[3*i+3].data))]
+        element[0] = names[i]
+        element[1] = [hdu_list[3*i+3].data[j][0] for j in range(len(hdu_list[3*i+3].data)) if psf_perfect[j] > 0.9995 and mask_present[j] == 0 and str(kron_flux[j]) != 'nan'] #object id
+        element[2] = [hdu_list[3*i+3].data[j][7] for j in range(len(hdu_list[3*i+3].data)) if psf_perfect[j] > 0.9995 and mask_present[j] == 0 and str(kron_flux[j]) != 'nan'] #inst mag
+        element[3] = [hdu_list[3*i+3].data[j][8] for j in range(len(hdu_list[3*i+3].data)) if psf_perfect[j] > 0.9995 and mask_present[j] == 0 and str(kron_flux[j]) != 'nan'] #inst mag sig
+        element[4] = [hdu_list[3*i+3].data[j][33] for j in range(len(hdu_list[3*i+3].data)) if psf_perfect[j] > 0.9995 and mask_present[j] == 0 and str(kron_flux[j]) != 'nan'] #psf qf
+        element[5] = [hdu_list[3*i+3].data[j][34] for j in range(len(hdu_list[3*i+3].data)) if psf_perfect[j] > 0.9995 and mask_present[j] == 0 and str(kron_flux[j]) != 'nan'] #psf qf perfect
+        element[6] = [-2.5*np.log10(hdu_list[3*i+3].data[j][46]) for j in range(len(hdu_list[3*i+3].data)) if psf_perfect[j] > 0.9995 and mask_present[j] == 0 and str(kron_flux[j]) != 'nan'] #kron flux
+        element[7] = [hdu_list[3*i+3].data[j][53] for j in range(len(hdu_list[3*i+3].data)) if psf_perfect[j] > 0.9995 and mask_present[j] == 0 and str(kron_flux[j]) != 'nan'] #flags
+        empty_array[i] = element
+    return empty_array
+
+useful_data = data_extractor(r'/home/jalston/Documents/Research Project/Raw Data/128.171.123.254:22281/ps1.nng.20191219/o8836g0103o.1563924/o8836g0103o.1563924.smf') 
+
+def file_displayer(data):
+    for i in data:
+        folder_name = r'/home/jalston/Documents/Research Project/Raw Data/128.171.123.254:22281/ps1.nng.20191219/o8836g0103o.1563924/o8836g0103o.1563924.' + i[0][0:4] + '.stamps/'
+        for j in range(len(i[2])):
+            print(i[0], i[1][j], i[2][j], i[3][j], i[4][j], i[5][j], i[6][j], i[7][j])
+            if i[1][j] < 10:
+                filename = 'obj.0000' + str(i[1][j]) + '.fits'
+            elif i[1][j] < 100:
+                filename = 'obj.000' + str(i[1][j]) + '.fits'
+            elif i[1][j] < 1000:
+                filename = 'obj.00' + str(i[1][j]) + '.fits'
+            else:
+                filename = 'obj.0' + str(i[1][j]) + '.fits'
+            path = folder_name + filename
+            hdu_list = fits.open(path)
+            data = hdu_list[0].data
+            plt.imshow(data, cmap = 'gray')
+            plt.show(block=False)
+            
+#file_displayer(useful_data)
+
+def file_saver(data):
+    for i in data:
+        folder_name = r'/home/jalston/Documents/Research Project/Raw Data/128.171.123.254:22281/ps1.nng.20191219/o8836g0103o.1563924/o8836g0103o.1563924.' + i[0][0:4] + '.stamps/'
+        for j in range(len(i[2])):
+            random_num = random.randint(0, 10)
+            if i[1][j] < 10:
+                filename = 'obj.0000' + str(i[1][j]) + '.fits'
+            elif i[1][j] < 100:
+                filename = 'obj.000' + str(i[1][j]) + '.fits'
+            elif i[1][j] < 1000:
+                filename = 'obj.00' + str(i[1][j]) + '.fits'
+            else:
+                filename = 'obj.0' + str(i[1][j]) + '.fits'
+            path = folder_name + filename
+            hdu_list = fits.open(path)
+            image = hdu_list[0].data
+            snr = i[3][j]
+            if random_num == 5:
+                if 0 < snr < 0.01:
+                     hdu_list.writeto(r'/home/jalston/Documents/Research Project/Main code/brightness/testing/good/' + i[0][0:4] + filename)
+                elif 0.01 < snr < 0.03:
+                     hdu_list.writeto(r'/home/jalston/Documents/Research Project/Main code/brightness/testing/mid/' + i[0][0:4] + filename)
+                elif 0.03 < snr < 0.1:
+                     hdu_list.writeto(r'/home/jalston/Documents/Research Project/Main code/brightness/testing/bad/' + i[0][0:4] + filename)
+            else:
+                if 0 < snr < 0.01:
+                     hdu_list.writeto(r'/home/jalston/Documents/Research Project/Main code/brightness/training/good/' + i[0][0:4] + filename)
+                elif 0.01 < snr < 0.03:
+                     hdu_list.writeto(r'/home/jalston/Documents/Research Project/Main code/brightness/training/mid/' + i[0][0:4] + filename)
+                elif 0.03 < snr < 0.1:
+                     hdu_list.writeto(r'/home/jalston/Documents/Research Project/Main code/brightness/training/bad/' + i[0][0:4] + filename)
+            print(snr)
+            
+file_saver(useful_data)
+
+
+#print('%x' %(a))
