Skip to content

Commit 4375668

Browse files
committed
Move fixtures into source-tree, fix sourcefind script.
1 parent b44c32f commit 4375668

File tree

15 files changed

+42
-33
lines changed

15 files changed

+42
-33
lines changed

docs/standalone_notebooks/simpipe_with_intermediate_products.ipynb

+8-10
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
"uvw_path = 'uvw.npz'\n",
5353
"load_uvw = False\n",
5454
"image_size=1024 * u.pixel\n",
55-
"cell_size=3 * u.arcsecond\n"
55+
"cell_size=3 * u.arcsecond"
5656
]
5757
},
5858
{
@@ -110,8 +110,7 @@
110110
"else:\n",
111111
" with open(uvw_path, 'rb') as f:\n",
112112
" npz_content = np.load(f)\n",
113-
" uvw_lambda = npz_content['uvw_lambda']\n",
114-
"\n"
113+
" uvw_lambda = npz_content['uvw_lambda']"
115114
]
116115
},
117116
{
@@ -126,20 +125,20 @@
126125
"\n",
127126
"# Now use UVW to generate visibilities from scratch...\n",
128127
"# Represent incoming data; includes transient sources, noise:\n",
129-
"data_vis = visibility.calculated_summed_vis(\n",
128+
"data_vis = visibility.visibilities_for_source_list(\n",
130129
" pointing_centre, source_list_w_transient, uvw_lambda)\n",
131130
"data_vis = visibility.add_gaussian_noise(vis_noise_level, data_vis)\n",
132131
"\n",
133132
"# Model vis; only steady sources from the catalog, noise free.\n",
134-
"model_vis = visibility.calculated_summed_vis(\n",
133+
"model_vis = visibility.visibilities_for_source_list(\n",
135134
" pointing_centre, steady_source_list, uvw_lambda)\n",
136135
"\n",
137136
"# Subtract model-generated visibilities from incoming data\n",
138137
"residual_vis = data_vis - model_vis\n",
139138
"\n",
140139
"# Will move this to a config option later\n",
141140
"kernel_support = 3\n",
142-
"kernel_func = GaussianSinc(trunc=kernel_support)\n"
141+
"kernel_func = GaussianSinc(trunc=kernel_support)"
143142
]
144143
},
145144
{
@@ -155,7 +154,7 @@
155154
" cell_size=cell_size,\n",
156155
" kernel_func=kernel_func,\n",
157156
" kernel_support=kernel_support,\n",
158-
" kernel_oversampling=None)\n"
157+
" kernel_oversampling=None)"
159158
]
160159
},
161160
{
@@ -182,8 +181,7 @@
182181
" cell_size=cell_size,\n",
183182
" kernel_func=kernel_func,\n",
184183
" kernel_support=kernel_support,\n",
185-
" kernel_oversampling=None)\n",
186-
"\n"
184+
" kernel_oversampling=None)"
187185
]
188186
},
189187
{
@@ -258,5 +256,5 @@
258256
}
259257
},
260258
"nbformat": 4,
261-
"nbformat_minor": 1
259+
"nbformat_minor": 0
262260
}

src/fastimgproto/fixtures/__init__.py

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
"""
2+
Datastructures and subroutines used primarily for testing.
3+
4+
These are kept in the source-tree as they are occasionally useful when demoing
5+
functionality in notebooks.
6+
"""
File renamed without changes.

src/fastimgproto/resources/__init__.py

Whitespace-only changes.

src/fastimgproto/scripts/simpipe.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -122,12 +122,12 @@ def main(steady_source_list,
122122

123123
# Now use UVW to generate visibilities from scratch...
124124
# Represent incoming data; includes transient sources, noise:
125-
data_vis = visibility.calculated_summed_vis(
125+
data_vis = visibility.visibilities_for_source_list(
126126
pointing_centre, source_list_w_transient, uvw_lambda)
127127
data_vis = visibility.add_gaussian_noise(vis_noise_level, data_vis)
128128

129129
# Model vis; only steady sources from the catalog, noise free.
130-
model_vis = visibility.calculated_summed_vis(
130+
model_vis = visibility.visibilities_for_source_list(
131131
pointing_centre, steady_source_list, uvw_lambda)
132132

133133
# Subtract model-generated visibilities from incoming data

src/fastimgproto/scripts/sourcefind.py

+11-7
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,19 @@
44

55
import click
66
from astropy.io import fits
7+
from fastimgproto.sourcefind.image import SourceFindImage, IslandParams
8+
79
# from fastimgproto.sourcefind import extract_sources
810

911

1012
def main(fits_image_path, detection_n_sigma, analysis_n_sigma):
1113
hdu0 = fits.open(fits_image_path)[0]
1214
imgdata = hdu0.data.squeeze()
13-
sources = extract_sources(imgdata, detection_n_sigma, analysis_n_sigma)
14-
return sources
15+
sfimage = SourceFindImage(data=imgdata,
16+
detection_n_sigma=detection_n_sigma,
17+
analysis_n_sigma=analysis_n_sigma,
18+
)
19+
return sfimage
1520

1621

1722
@click.command()
@@ -21,9 +26,8 @@ def main(fits_image_path, detection_n_sigma, analysis_n_sigma):
2126
@click.option('-a', '--analysis', type=click.FLOAT, default=3.,
2227
help="Analysis threshold (multiple of RMS above background)")
2328
def cli(fitsfile, detection, analysis):
24-
sources = main(fitsfile, detection, analysis)
29+
sfimage = main(fitsfile, detection, analysis)
2530
click.echo("Found the following sources:")
26-
for s in sources:
27-
peak_pixel, peak_value = s
28-
y,x = peak_pixel
29-
click.echo("({},{}):\t{}".format(x,y,peak_value))
31+
for src in sfimage.islands:
32+
assert isinstance(src, IslandParams)
33+
click.echo("({},{}):\t{}".format(src.xbar,src.ybar,src.peak_val))

src/fastimgproto/visibility.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def visibilities_for_point_source(dist_uvw, l, m, flux):
7474
return flux * src_n * np.exp(-2j * np.pi * np.dot(dist_uvw, src_offset))
7575

7676

77-
def calculated_summed_vis(pointing_centre, source_list, uvw):
77+
def visibilities_for_source_list(pointing_centre, source_list, uvw):
7878
"""
7979
Generate noise-free visibilities from UVW baselines and point-sources.
8080

tests/fixtures/__init__.py

Whitespace-only changes.

tests/test_fixtures/test_image_fixtures.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from ..fixtures.image import (
1+
from fastimgproto.fixtures.image import (
22
evaluate_model_on_pixel_grid,
33
gaussian_point_source,
44
)

tests/test_scripts/test_extract_lsm.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import numpy as np
44

55
from click.testing import CliRunner
6-
from fastimgproto.resources.testdata import simple_vis_npz_filepath
6+
from fastimgproto.fixtures.data import simple_vis_npz_filepath
77
from fastimgproto.scripts.extract_lsm import cli as extract_lsm_cli
88
from fastimgproto.skymodel.extraction import SumssSrc
99
import csv

tests/test_scripts/test_simple_imager.py

+7-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import json
2-
import numpy as np
32

3+
import numpy as np
44
from click.testing import CliRunner
5-
from fastimgproto.resources.testdata import simple_vis_npz_filepath
6-
from fastimgproto.scripts.simple_imager import ConfigKeys, \
7-
cli as simple_imager_cli
5+
from fastimgproto.fixtures.data import simple_vis_npz_filepath
6+
from fastimgproto.scripts.simple_imager import (
7+
ConfigKeys,
8+
cli as simple_imager_cli,
9+
)
810

911

1012
def test_simple_imager():
@@ -29,4 +31,4 @@ def test_simple_imager():
2931
with open(output_filename, 'rb') as f:
3032
output_data = np.load(f)
3133
assert 'image' in output_data
32-
assert 'beam' in output_data
34+
assert 'beam' in output_data

tests/test_sourcefind/test_detection.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from ..fixtures.image import (
1+
from fastimgproto.fixtures.image import (
22
evaluate_model_on_pixel_grid,
33
gaussian_point_source,
44
uncorrelated_gaussian_noise_background

tests/test_visibility/test_noise_generation.py

+4-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import numpy as np
33
import astropy.units as u
44
import fastimgproto.visibility as visibility
5-
import pytest
65

76

87
def test_complex_gaussian_noise_generation():
@@ -19,8 +18,8 @@ def test_complex_gaussian_noise_generation():
1918
for component_array in np.real(complex_noise_1jy), np.imag(complex_noise_1jy):
2019
mean = np.mean(component_array)
2120
std_dev = np.std(component_array)
22-
print("Mean:", mean)
23-
print("S.D.:", std_dev)
21+
# print("Mean:", mean)
22+
# print("S.D.:", std_dev)
2423
assert mean < 0.001
2524
assert np.fabs(std_dev - 1.0)< 0.02
2625

@@ -31,8 +30,8 @@ def test_complex_gaussian_noise_generation():
3130
for component_array in np.real(complex_noise_5jy), np.imag(complex_noise_5jy):
3231
mean = np.mean(component_array)
3332
std_dev = np.std(component_array)
34-
print("Mean:", mean)
35-
print("S.D.:", std_dev)
33+
# print("Mean:", mean)
34+
# print("S.D.:", std_dev)
3635
assert mean < 0.006
3736
assert np.fabs(std_dev - 5.0)< 0.1
3837

0 commit comments

Comments
 (0)