Index: /branches/alston_branches/nn.20200129/Pan_STARRS_brightness.py
===================================================================
--- /branches/alston_branches/nn.20200129/Pan_STARRS_brightness.py	(revision 41256)
+++ /branches/alston_branches/nn.20200129/Pan_STARRS_brightness.py	(revision 41256)
@@ -0,0 +1,144 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Jan  6 14:08:50 2020
+
+@author: jacka
+"""
+
+import numpy as np
+from astropy.io import fits
+import matplotlib.pyplot as plt
+import pandas as pd
+import os
+import glob
+import time
+import datetime
+
+def training_set(filenames1, filenames2, filenames3, savefiles = True):
+    
+    training_data = np.zeros([len(filenames1)+len(filenames2)+len(filenames3), 2], dtype=np.ndarray)
+            
+    for i in range(len(filenames1)):
+        hdu_list = fits.open(filenames1[i])
+        image_data = np.nan_to_num(np.arcsinh(hdu_list[0].data)/5) #set nans to -ve?
+        flattened_array = np.ravel(image_data)
+        flattened_array = flattened_array.reshape([len(flattened_array), 1])
+        output = np.zeros([3,1])
+        output[0] = 1
+        training_data[i][0] = flattened_array
+        training_data[i][1] = output
+        
+    for i in range(len(filenames2)):
+        hdu_list = fits.open(filenames2[i])
+        image_data = np.nan_to_num(np.arcsinh(hdu_list[0].data)/5) #set nans to -ve?
+        flattened_array = np.ravel(image_data)
+        flattened_array = flattened_array.reshape([len(flattened_array), 1])
+        output = np.zeros([3,1])
+        output[1] = 1
+        training_data[i+len(filenames1)][0] = flattened_array
+        training_data[i+len(filenames1)][1] = output
+        
+    for i in range(len(filenames3)):
+        hdu_list = fits.open(filenames3[i])
+        image_data = np.nan_to_num(np.arcsinh(hdu_list[0].data)/5) #set nans to -ve?
+        flattened_array = np.ravel(image_data)
+        flattened_array = flattened_array.reshape([len(flattened_array), 1])
+        output = np.zeros([3,1])
+        output[2] = 1
+        training_data[i+len(filenames1)+len(filenames2)][0] = flattened_array
+        training_data[i+len(filenames1)+len(filenames2)][1] = output
+
+    now = str(datetime.datetime.now())
+    np.save('training_data' + now + '.txt', training_data)
+
+    return training_data
+
+def testing_set(filenames1, filenames2, filenames3):
+    test_data = np.zeros([len(filenames1)+len(filenames2)+len(filenames3), 2], dtype=np.ndarray)
+            
+    for i in range(len(filenames1)):
+        hdu_list = fits.open(filenames1[i])
+        image_data = np.nan_to_num(np.arcsinh(hdu_list[0].data)/5) #set nans to -ve?
+        flattened_array = np.ravel(image_data)
+        flattened_array = flattened_array.reshape([len(flattened_array), 1])
+        test_data[i][0] = flattened_array
+        test_data[i][1] = 0
+        
+    for i in range(len(filenames2)):
+        hdu_list = fits.open(filenames2[i])
+        image_data = np.nan_to_num(np.arcsinh(hdu_list[0].data)/5) #set nans to -ve?
+        flattened_array = np.ravel(image_data)
+        flattened_array = flattened_array.reshape([len(flattened_array), 1])
+        test_data[i+len(filenames1)][0] = flattened_array
+        test_data[i+len(filenames1)][1] = 1
+        
+    for i in range(len(filenames3)):
+        hdu_list = fits.open(filenames3[i])
+        image_data = np.nan_to_num(np.arcsinh(hdu_list[0].data)/5) #set nans to -ve?
+        flattened_array = np.ravel(image_data)
+        flattened_array = flattened_array.reshape([len(flattened_array), 1])
+        test_data[i+len(filenames1)+len(filenames2)][0] = flattened_array
+        test_data[i+len(filenames1)+len(filenames2)][1] = 2
+    now = str(datetime.datetime.now())
+    np.save('test_data' + now + '.txt', test_data)
+    
+    return test_data
+
+def image_sorter(filenames, destination_folder, numbers, n):
+    counter = 0
+    for i in range(len(filenames)):
+        counter += 1
+        print(str(counter) + '/' + str(len(filenames)))
+        hdu_list = fits.open(filenames[i])
+        image_data = np.nan_to_num(np.arcsinh(hdu_list[0].data)/5)
+        plt.imshow(image_data, cmap = 'gray')
+        plt.show(block=False)
+        identifier = raw_input()
+        if identifier == '1':
+            hdu_list.writeto(destination_folder + '/star/star' + numbers[i] + 'xy' + str(n) + '.fits', clobber = True)
+        if identifier == '2':
+            hdu_list.writeto(destination_folder + '/other/other' + numbers[i] + 'xy' + str(n) + '.fits', clobber = True)
+            
+def filenames(foldername):
+    return glob.glob(foldername + r'/*.fits')
+
+def plot_histogram(filenames, binss = 500):
+    means = []
+    counter = 0
+    for i in filenames:
+            counter +=1
+            print(counter)
+            hdu_list = fits.open(i)
+            image_data = np.nan_to_num(hdu_list[0].data)
+            image_data -= np.min(image_data)
+            mean = np.mean(image_data)
+            means.append(mean)
+            print(mean)
+    means = np.log(means)
+    n, bins, patches = plt.hist(means, binss, facecolor='blue')
+    plt.title('Histogram of Adjusted Pixel Counts')
+    plt.xlabel('log(Adjusted Count)')
+    plt.ylabel('Frequency')
+    plt.show()
+        
+    
+
+def image_displayer(foldername, t = False):
+    filenames = glob.glob(foldername + r'/*.fits')
+    counter = 0
+    for i in filenames:
+        print(i)
+        counter += 1
+        hdu_list = fits.open(i)
+        image_data = hdu_list[0].data
+        plt.imshow(image_data, cmap = 'gray')
+        plt.show(block=False)
+        if t == True:
+            time.sleep(0.5)
+        
+#need to scale data with log10 done
+#exclude well known unsaturated objects m < -13
+#list of galaxies for training set
+#use stamp.dat to generate training set with many stars   
+#make fuctions more versatile done
+        
