Skip to content
Snippets Groups Projects
Commit d2ab8295 authored by Mattia Mancini's avatar Mattia Mancini
Browse files

Initial commit

parents
No related branches found
No related tags found
No related merge requests found
links 0 → 100644
https://vo.astron.nl/getproduct/APERTIF_DR1/200425057_AP_B015/image_mf_02.fits
https://vo.astron.nl/getproduct/APERTIF_DR1/200425057_AP_B022/image_mf_02.fits
https://vo.astron.nl/getproduct/APERTIF_DR1/200425057_AP_B008/image_mf_04.fits
https://vo.astron.nl/getproduct/APERTIF_DR1/191026001_AP_B014/image_mf_01.fits
#!/bin/bash
export PATH=$PATH:$PWD/resources/scripts/
#!/usr/bin/env python3
from astropy.io import fits
import sys
from argparse import ArgumentParser
import matplotlib.pyplot as plt
import numpy as np
def parse_args():
parser = ArgumentParser(description='Reduce noise in a fits image')
parser.add_argument('images', nargs='+')
parser.add_argument('output_file')
parser.add_argument('--cut_size', type=int, default=200)
parser.add_argument('--max_intensity', type=float, default=1.e3)
parser.add_argument('--max_columns', type=int, default=2)
return parser.parse_args()
def open_image(image):
hdus = fits.open(image)
return hdus[0]
def plot_images(images_list, output_file, cut_size=200, v_max= 1.e3, max_columns=2):
n_images = len(images_list)
max_rows = n_images // max_columns + 1
figure = plt.figure()
for i in range(n_images):
ax = figure.add_subplot(max_columns, max_rows, i + 1)
hdu = open_image(images_list[i])
size = hdu.data.shape[2]
data_sub_domain = hdu.data[0, 0, (size//2 - 400): (size//2 + 401), (size//2 - 400):(size//2 + 401)]
ax.imshow(data_sub_domain, vmax=1.e-3)
plt.tight_layout()
figure.savefig(output_file)
return hdu
if __name__ == '__main__':
args = parse_args()
plot_images(args.images, args.output_file,
args.cut_size, args.max_intensity, args.max_columns)
#!/usr/bin/env python3
from astropy.io import fits
import sys
from argparse import ArgumentParser
import numpy as np
def parse_args():
parser = ArgumentParser(description='Reduce noise in a fits image')
parser.add_argument('input_fits')
parser.add_argument('output_fits')
return parser.parse_args()
def open_image(image):
hdus = fits.open(image)
return hdus[0]
def clean_image(input_image, output_image):
hdu = open_image(input_image)
noise = np.std(hdu.data)
hdu.data = hdu.data - 3 * noise
hdu.data[hdu.data < 0] = 0
hdu.data += np.random.normal(0, noise, hdu.data.shape)
fits.writeto(output_image, hdu.data, hdu.header)
return hdu
if __name__ == '__main__':
args = parse_args()
clean_image(args.input_fits, args.output_fits)
class: CommandLineTool
cwlVersion: v1.0
$namespaces:
sbg: 'https://www.sevenbridges.com/'
id: download_images
baseCommand:
- wget
inputs:
- id: url_list
type: File
inputBinding:
position: 0
prefix: '-i'
outputs:
- id: output
type: 'File[]'
outputBinding:
glob: '*.fits'
label: download_images
class: CommandLineTool
cwlVersion: v1.0
id: imageplotter
baseCommand:
- imageplotter.py
inputs:
- id: input_fits
type: 'File[]'
inputBinding:
position: 0
- id: output_image
type: string
inputBinding:
position: 1
outputs:
- id: output
type: File
outputBinding:
glob: $(inputs.output_image)
label: imageplotter
requirements:
- class: InlineJavascriptRequirement
class: CommandLineTool
cwlVersion: v1.0
id: noiseremover
baseCommand:
- noiseremover.py
inputs:
- id: input
type: File
inputBinding:
position: 0
- id: output_file_name
type: string
inputBinding:
position: 1
outputs:
- id: output
type: File
outputBinding:
glob: $(inputs.output_file_name)
label: noiseremover
requirements:
- class: InlineJavascriptRequirement
class: Workflow
cwlVersion: v1.0
id: process_images
label: process_images
inputs:
- id: url_list
type: File
outputs:
- id: before_noise_remover
outputSource:
- imageplotter/output
type: File
- id: after_noise_remover_plot
outputSource:
- after_plot_inspect/output
type: File
steps:
- id: imageplotter
in:
- id: input_fits
source:
- download_images/output
- id: output_image
default: before_noise_remover.png
out:
- id: output
run: ./imageplotter.cwl
label: imageplotter
- id: noiseremover
in:
- id: input
source: download_images/output
- id: output_file_name
valueFrom: $('no_noise' + inputs.input.basename)
out:
- id: output
run: ./noiseremover.cwl
label: noiseremover
scatter:
- input
- id: download_images
in:
- id: url_list
source: url_list
out:
- id: output
run: ./download_images.cwl
label: download_images
- id: after_plot_inspect
in:
- id: input_fits
source:
- noiseremover/output
- id: output_image
default: after_noise_remover.png
out:
- id: output
run: ./imageplotter.cwl
label: imageplotter
requirements:
- class: ScatterFeatureRequirement
- class: StepInputExpressionRequirement
- class: InlineJavascriptRequirement
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment