Skip to content
Snippets Groups Projects
Commit d1df91b1 authored by Heneka, Dr. Caroline's avatar Heneka, Dr. Caroline
Browse files

Upload New File

parent a5d7eef7
Branches
No related tags found
No related merge requests found
%% Cell type:code id: tags:
``` python
import numpy as np
from astropy.io import fits
import matplotlib.pyplot as plt
from astropy.wcs import WCS
import os
import csv
########## Input ##########
fits_path = 'F:\\data\\spectral_fits_big\\'
data_path = 'F:\\data\\'
samples_per_class = 10000
smallest_wavelength = 4000 # in Angström
biggest_wavelength = 9000
########## Program ##########
# Funktion zum transponieren von Listen
def transpose_list(list1):
numpy_array = np.array(list1)
transposed = numpy_array.T
return transposed.tolist()
# Über alle fits-Dateien iterieren
all_flux = []
for directory in os.listdir(fits_path):
count_failed=0
count_added=0
for filename in os.listdir(fits_path + directory + '\\'):
path = fits_path + '\\' + directory + '\\' + filename
# fits-Dateien öffnen und wavelength + flux einlesen
hdul = fits.open(path)
data = hdul[1].data
flux = data['flux']
wavelength = 10**data['loglam']
hdul.close()
# first und last Index finden
for i in range(len(wavelength)):
if wavelength[i]>smallest_wavelength:
first_index = i
break
for i in range(len(wavelength)):
if wavelength[i]>biggest_wavelength:
last_index = i
break
# wavenlength und flux Listen schneiden
wavelength = wavelength[first_index:last_index]
flux = flux[first_index:last_index]
if len(wavelength) == 3522 and count_added < samples_per_class:
all_flux.append(flux)
count_added += 1
if len(wavelength) != 3522:
print("Länge der Liste wavelength ist: " + str(len(wavelength)))
count_failed += 1
print(str(count_failed/11000*100) + "% waren nicht erfolgreich bei der Klasse:" + directory)
print(str(count_added) + " CSV-Dateien angelegt.")
# Liste mit Einträgen der ersten Zeile in der csv Datei erstellen
row_labels = ['wavelength']
for i in range(1000):
row_labels.append('AGN{} flux'.format(i+1))
for i in range(1000):
row_labels.append('galaxy{} flux'.format(i+1))
for i in range(1000):
row_labels.append('QSO{} flux'.format(i+1))
for i in range(1000):
row_labels.append('star{} flux'.format(i+1))
# Daten in csv-Datei abspeichern
file = open(data_path + 'spectral_data_big.csv', 'w')
with file:
writer = csv.writer(file, delimiter=',', lineterminator='\n')
writer.writerow(row_labels)
all_flux_transposed = transpose_list(all_flux)
for i in range(len(all_flux_transposed)):
writer.writerow([wavelength[i]] + all_flux_transposed[i])
```
%% Output
Länge der Liste wavelength ist: 3267
Länge der Liste wavelength ist: 2690
Länge der Liste wavelength ist: 3483
Länge der Liste wavelength ist: 3521
0.36363636363636365% waren nicht erfolgreich bei der Klasse:AGN
1000 CSV-Dateien angelegt.
Länge der Liste wavelength ist: 3521
Länge der Liste wavelength ist: 3502
Länge der Liste wavelength ist: 3511
Länge der Liste wavelength ist: 3521
Länge der Liste wavelength ist: 3493
Länge der Liste wavelength ist: 3519
Länge der Liste wavelength ist: 3506
Länge der Liste wavelength ist: 3477
Länge der Liste wavelength ist: 3487
Länge der Liste wavelength ist: 3486
Länge der Liste wavelength ist: 3503
Länge der Liste wavelength ist: 3470
Länge der Liste wavelength ist: 3513
Länge der Liste wavelength ist: 3503
Länge der Liste wavelength ist: 3470
Länge der Liste wavelength ist: 3503
Länge der Liste wavelength ist: 3467
Länge der Liste wavelength ist: 3469
Länge der Liste wavelength ist: 3494
Länge der Liste wavelength ist: 3461
Länge der Liste wavelength ist: 3423
Länge der Liste wavelength ist: 3507
Länge der Liste wavelength ist: 3433
Länge der Liste wavelength ist: 3487
Länge der Liste wavelength ist: 3484
Länge der Liste wavelength ist: 3470
Länge der Liste wavelength ist: 3469
Länge der Liste wavelength ist: 3447
Länge der Liste wavelength ist: 3447
Länge der Liste wavelength ist: 3511
2.727272727272727% waren nicht erfolgreich bei der Klasse:galaxy
1000 CSV-Dateien angelegt.
Länge der Liste wavelength ist: 3516
Länge der Liste wavelength ist: 3495
Länge der Liste wavelength ist: 3116
0.27272727272727276% waren nicht erfolgreich bei der Klasse:QSO
1000 CSV-Dateien angelegt.
Länge der Liste wavelength ist: 3461
Länge der Liste wavelength ist: 3472
Länge der Liste wavelength ist: 3475
Länge der Liste wavelength ist: 3468
Länge der Liste wavelength ist: 3444
Länge der Liste wavelength ist: 3469
Länge der Liste wavelength ist: 3439
Länge der Liste wavelength ist: 3459
Länge der Liste wavelength ist: 3424
Länge der Liste wavelength ist: 3431
Länge der Liste wavelength ist: 3521
Länge der Liste wavelength ist: 3441
Länge der Liste wavelength ist: 3515
Länge der Liste wavelength ist: 3237
1.2727272727272727% waren nicht erfolgreich bei der Klasse:star
1000 CSV-Dateien angelegt.
%% Cell type:code id: tags:
``` python
```
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment