Newer
Older
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
import glob
from astropy.io import fits
import numpy as np
import pandas as pd
import montage_wrapper as montage
import os.path
import pdb
input_folder = "./INPUT_FOLDER/"
output_folder = "./OUTPUT_FOLDER/"
vis_path = "./"
vis_image = "EUC_VIS_SWL-STK-000-000000-0000000__20210613T225647.742318Z.fits"
#I open the VIS image
hdu = fits.open(vis_path+vis_image)
img = hdu[1].data
hdr = hdu[1].header
dim1 = hdr["NAXIS1"]
dim2 = hdr["NAXIS2"]
if not os.path.exists(output_folder):
os.mkdir(output_folder)
#these are the only files I will accept as inputs
filename_sims = glob.glob(input_folder+"galaxy_and_stream_convolved_[!w]*.fits") #in the termina use ^ instead of !
for filename_sim in filename_sims:
print(filename_sim)
#I open each of the simulated galaxies
hdu_sim = fits.open(filename_sim)
img_sim = hdu_sim[1].data
hdr_sim = hdu_sim[1].header
dim1_sim = hdr_sim["NAXIS1"]
dim2_sim = hdr_sim["NAXIS2"]
flag_cutted = False
while flag_cutted == False:
#I obtain the new random centroid within the VIS image
x_center = np.random.randint(0, dim1)
y_center = np.random.randint(0, dim2)
#I will take a cutout in the new centroid position with the dimensions of the simulated galaxy
pix_in_x_halfsize = int(dim1_sim/2)
pix_in_y_halfsize = int(dim2_sim/2)
cutout = img[y_center-pix_in_y_halfsize:y_center+pix_in_y_halfsize, x_center-pix_in_x_halfsize:x_center+pix_in_x_halfsize]
#I will accept this new image if less than 10% of the pixels are zeros and the dimensions are all right
if np.count_nonzero(cutout == 0) >= (dim1_sim*dim2_sim)/10 or cutout.shape[0] != dim1_sim or cutout.shape[1] != dim2_sim:
flag_cutted = False
else:
flag_cutted = True
#I create the cutout itself
new_filename = output_folder+filename_sim[len(input_folder):-5]+"_in_"+vis_image[:-5]+".fits"
montage.mSubimage_pix(vis_path+vis_image,new_filename, x_center-pix_in_x_halfsize, y_center-pix_in_y_halfsize, hdu = 1, xpixsize = (pix_in_x_halfsize*2)-1, ypixsize = (pix_in_y_halfsize*2)-1 )
hdu_cutout = fits.open(new_filename)
img_cutout = hdu_cutout[0].data
hdr_cutout = hdu_cutout[0].header
fits.writeto(new_filename,img_cutout+img_sim,hdr_cutout,overwrite=True)