From 71ed069df83e95249788fb50c3a68e85f1d1e317 Mon Sep 17 00:00:00 2001 From: Adam Stewart Date: Mon, 2 Nov 2020 18:19:36 +1100 Subject: [PATCH 1/4] Added island flux ratio columns - Island flux ratio columns on measurement. - Minimum agg column on source. - Added query options for all min and max values. - Added query option for island ratio. --- static/js/datatables-pipeline.js | 49 ++++++++--- templates/source_detail.html | 22 ++++- templates/sources_query.html | 94 +++++++++++++++++---- vast_pipeline/image/main.py | 17 ++++ vast_pipeline/migrations/0001_initial.py | 11 ++- vast_pipeline/models.py | 27 ++++++ vast_pipeline/pipeline/finalise.py | 4 +- vast_pipeline/pipeline/forced_extraction.py | 2 + vast_pipeline/pipeline/utils.py | 14 ++- vast_pipeline/utils/view.py | 20 +++++ vast_pipeline/views.py | 20 ++++- 11 files changed, 243 insertions(+), 37 deletions(-) diff --git a/static/js/datatables-pipeline.js b/static/js/datatables-pipeline.js index 25d9535d8..9edbf08bd 100644 --- a/static/js/datatables-pipeline.js +++ b/static/js/datatables-pipeline.js @@ -297,14 +297,41 @@ $(document).ready(function() { if (unit.value) { qry_url = qry_url + "&radiusunit=" + unit.value } - let flux_type = document.getElementById("aveFluxSelect"); - let flux_min = document.getElementById("fluxMinSelect"); - let flux_max = document.getElementById("fluxMaxSelect"); - if (flux_min.value) { - qry_url = qry_url + "&min_" + flux_type.value + "=" + flux_min.value; - }; - if (flux_max.value) { - qry_url = qry_url + "&max_" + flux_type.value + "=" + flux_max.value; + let avg_flux_type = document.getElementById("aveFluxSelect"); + let avg_flux_min = document.getElementById("avgFluxMinSelect"); + let avg_flux_max = document.getElementById("avgFluxMaxSelect"); + if (avg_flux_min.value) { + qry_url = qry_url + "&min_" + avg_flux_type.value + "=" + avg_flux_min.value; + }; + if (avg_flux_max.value) { + qry_url = qry_url + "&max_" + avg_flux_type.value + "=" + avg_flux_max.value; + }; + let min_flux_type = document.getElementById("minFluxSelect"); + let min_flux_min = document.getElementById("fluxMinMinSelect"); + let min_flux_max = document.getElementById("fluxMaxMinSelect"); + if (min_flux_min.value) { + qry_url = qry_url + "&min_" + min_flux_type.value + "=" + min_flux_min.value; + }; + if (min_flux_max.value) { + qry_url = qry_url + "&max_" + min_flux_type.value + "=" + min_flux_max.value; + }; + let max_flux_type = document.getElementById("maxFluxSelect"); + let max_flux_min = document.getElementById("fluxMinMaxSelect"); + let max_flux_max = document.getElementById("fluxMaxMaxSelect"); + if (max_flux_min.value) { + qry_url = qry_url + "&min_" + max_flux_type.value + "=" + max_flux_min.value; + }; + if (max_flux_max.value) { + qry_url = qry_url + "&max_" + max_flux_type.value + "=" + max_flux_max.value; + }; + let isl_ratio_flux_type = document.getElementById("fluxIslSelect"); + let isl_ratio_min = document.getElementById("fluxIslMinSelect"); + let isl_ratio_max = document.getElementById("fluxIslMaxSelect"); + if (isl_ratio_min.value) { + qry_url = qry_url + "&min_" + isl_ratio_flux_type.value + "=" + isl_ratio_min.value; + }; + if (max_flux_max.value) { + qry_url = qry_url + "&max_" + isl_ratio_flux_type.value + "=" + isl_ratio_max.value; }; let var_v_type = document.getElementById("varVMetricSelect"); let var_v_min = document.getElementById("varVMinSelect"); @@ -434,13 +461,15 @@ $(document).ready(function() { return this.defaultSelected }); let inputs = [ - 'fluxMinSelect', 'fluxMaxSelect', 'varVMinSelect', 'varVMaxSelect', + 'avgFluxMinSelect', 'avgFluxMaxSelect', 'varVMinSelect', 'varVMaxSelect', + 'fluxIslMinSelect', 'fluxIslMaxSelect', 'fluxMinMinSelect', 'fluxMinMaxSelect', 'varEtaMinSelect', 'varEtaMaxSelect', 'ForcedMinSelect', 'ForcedMaxSelect', 'coordInput', 'radiusSelect', 'datapointMinSelect', 'datapointMaxSelect', 'RelationsMinSelect', 'RelationsMaxSelect', 'SelavyMinSelect', 'SelavyMaxSelect', 'NewSigmaMinSelect', 'NewSigmaMaxSelect', 'NeighbourMinSelect', 'NeighbourMaxSelect', 'compactnessMinSelect', 'compactnessMaxSelect', 'objectNameInput', 'MinSnrMinSelect', - 'MinSnrMaxSelect', 'MaxSnrMinSelect', 'MaxSnrMaxSelect', + 'MinSnrMaxSelect', 'MaxSnrMinSelect', 'MaxSnrMaxSelect', 'fluxMaxMinSelect', + 'fluxMaxMaxSelect', ]; var input; for (input of inputs) { diff --git a/templates/source_detail.html b/templates/source_detail.html index fdc308cdd..0183e6071 100644 --- a/templates/source_detail.html +++ b/templates/source_detail.html @@ -99,10 +99,24 @@
Details
{{ source.wavg_b|floatformat:6 }}

- Avg. Int. Flux: {{ source.avg_flux_int|floatformat:3 }} mJy
- Avg. Peak Flux: {{ source.avg_flux_peak|floatformat:3 }} mJy/beam
- Max Peak Flux: {{ source.max_flux_peak|floatformat:3 }} mJy/beam -

+
+
+

+ Avg. Int. Flux: {{ source.avg_flux_int|floatformat:3 }} mJy
+ Min. Int. Flux: {{ source.min_flux_int|floatformat:3 }} mJy
+ Max Int. Flux: {{ source.max_flux_int|floatformat:3 }} mJy
+ Min Int. Flux Isl. Ratio: {{ source.min_flux_int_isl_ratio|floatformat:2 }} +

+
+
+

+ Avg. Peak Flux: {{ source.avg_flux_peak|floatformat:3 }} mJy/beam
+ Min. Peak Flux: {{ source.min_flux_peak|floatformat:3 }} mJy/beam
+ Max Peak Flux: {{ source.max_flux_peak|floatformat:3 }} mJy/beam
+ Min Peak Flux Isl. Ratio: {{ source.min_flux_peak_isl_ratio|floatformat:2 }} +

+
+

diff --git a/templates/sources_query.html b/templates/sources_query.html index b58ba21bd..6761aff79 100644 --- a/templates/sources_query.html +++ b/templates/sources_query.html @@ -119,19 +119,60 @@

- +
+ +
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+
+
- +
- +
@@ -172,8 +213,8 @@
@@ -191,8 +232,8 @@
@@ -213,8 +254,8 @@
@@ -232,8 +273,8 @@
@@ -343,14 +384,20 @@
-
- +
- + +
+
+
@@ -374,6 +421,19 @@
+
+
+ +
+ +
+
+ +
+
+
diff --git a/vast_pipeline/image/main.py b/vast_pipeline/image/main.py index cf2d73da6..612923074 100644 --- a/vast_pipeline/image/main.py +++ b/vast_pipeline/image/main.py @@ -309,4 +309,21 @@ def read_selavy(self, dj_image): # Initialise the forced column as False df['forced'] = False + # Calculate island flux fractions + island_flux_totals = ( + df[['island_id', 'flux_int', 'flux_peak']] + .groupby('island_id') + .agg('sum') + ) + + df['flux_int_isl_ratio'] = ( + df['flux_int'].values + / island_flux_totals.loc[df['island_id']]['flux_int'].values + ) + + df['flux_peak_isl_ratio'] = ( + df['flux_peak'].values + / island_flux_totals.loc[df['island_id']]['flux_peak'].values + ) + return df diff --git a/vast_pipeline/migrations/0001_initial.py b/vast_pipeline/migrations/0001_initial.py index 470a7e065..744e141fc 100644 --- a/vast_pipeline/migrations/0001_initial.py +++ b/vast_pipeline/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.0.7 on 2020-10-02 21:49 +# Generated by Django 3.0.7 on 2020-11-02 06:22 from django.conf import settings import django.core.validators @@ -11,8 +11,8 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('contenttypes', '0002_remove_content_type_name'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('contenttypes', '0002_remove_content_type_name'), ] operations = [ @@ -100,8 +100,10 @@ class Migration(migrations.Migration): ('uncertainty_ns', models.FloatField(help_text='Total north-south (Dec) uncertainty, quadratic sum of error_radius and ns_sys_err (Deg).')), ('flux_int', models.FloatField()), ('flux_int_err', models.FloatField()), + ('flux_int_isl_ratio', models.FloatField(help_text='Ratio of the component integrated flux to the total island integrated flux.')), ('flux_peak', models.FloatField()), ('flux_peak_err', models.FloatField()), + ('flux_peak_isl_ratio', models.FloatField(help_text='Ratio of the component peak flux to the total island peak flux.')), ('chi_squared_fit', models.FloatField(db_column='chi2_fit', help_text='Chi-squared of the Guassian fit to the source.')), ('spectral_index', models.FloatField(db_column='spectr_idx', help_text='In-band Selavy spectral index.')), ('spectral_index_from_TT', models.BooleanField(db_column='spectr_idx_tt', default=False, help_text='True/False if the spectral index came from the taylor term.')), @@ -158,6 +160,11 @@ class Migration(migrations.Migration): ('avg_flux_int', models.FloatField(help_text='The average integrated flux value.')), ('avg_flux_peak', models.FloatField(help_text='The average peak flux value.')), ('max_flux_peak', models.FloatField(help_text='The maximum peak flux value.')), + ('min_flux_peak', models.FloatField(help_text='The minimum peak flux value.')), + ('max_flux_int', models.FloatField(help_text='The maximum integrated flux value.')), + ('min_flux_int', models.FloatField(help_text='The minimum integrated flux value.')), + ('min_flux_int_isl_ratio', models.FloatField(help_text='The minimum integrated island flux ratio value.')), + ('min_flux_peak_isl_ratio', models.FloatField(help_text='The minimum peak island flux ratio value.')), ('avg_compactness', models.FloatField(help_text='The average compactness.')), ('min_snr', models.FloatField(help_text='The minimum signal-to-noise ratio value of the detections.')), ('max_snr', models.FloatField(help_text='The maximum signal-to-noise ratio value of the detections.')), diff --git a/vast_pipeline/models.py b/vast_pipeline/models.py index e20046f82..15c2f81a6 100644 --- a/vast_pipeline/models.py +++ b/vast_pipeline/models.py @@ -337,6 +337,21 @@ class Source(CommentableModel): max_flux_peak = models.FloatField( help_text='The maximum peak flux value.' ) + min_flux_peak = models.FloatField( + help_text='The minimum peak flux value.' + ) + max_flux_int = models.FloatField( + help_text='The maximum integrated flux value.' + ) + min_flux_int = models.FloatField( + help_text='The minimum integrated flux value.' + ) + min_flux_int_isl_ratio = models.FloatField( + help_text='The minimum integrated island flux ratio value.' + ) + min_flux_peak_isl_ratio = models.FloatField( + help_text='The minimum peak island flux ratio value.' + ) avg_compactness = models.FloatField( help_text='The average compactness.' ) @@ -641,8 +656,20 @@ class Measurement(CommentableModel): flux_int = models.FloatField()# mJy/beam flux_int_err = models.FloatField()# mJy/beam + flux_int_isl_ratio = models.FloatField( + help_text=( + 'Ratio of the component integrated flux to the total' + ' island integrated flux.' + ) + ) flux_peak = models.FloatField()# mJy/beam flux_peak_err = models.FloatField()# mJy/beam + flux_peak_isl_ratio = models.FloatField( + help_text=( + 'Ratio of the component peak flux to the total' + ' island peak flux.' + ) + ) chi_squared_fit = models.FloatField( db_column='chi2_fit', help_text='Chi-squared of the Guassian fit to the source.' diff --git a/vast_pipeline/pipeline/finalise.py b/vast_pipeline/pipeline/finalise.py index 2760754b7..f82dd3e9c 100644 --- a/vast_pipeline/pipeline/finalise.py +++ b/vast_pipeline/pipeline/finalise.py @@ -11,7 +11,9 @@ make_upload_associations, make_upload_sources, make_upload_related_sources, make_upload_measurement_pairs, ) -from vast_pipeline.pipeline.utils import parallel_groupby, calculate_measurement_pair_metrics +from vast_pipeline.pipeline.utils import ( + parallel_groupby, calculate_measurement_pair_metrics +) logger = logging.getLogger(__name__) diff --git a/vast_pipeline/pipeline/forced_extraction.py b/vast_pipeline/pipeline/forced_extraction.py index 11eb4a69d..72e14351d 100644 --- a/vast_pipeline/pipeline/forced_extraction.py +++ b/vast_pipeline/pipeline/forced_extraction.py @@ -507,6 +507,8 @@ def forced_extraction( extr_df['flag_c4'] = False extr_df['spectral_index_from_TT'] = False extr_df['has_siblings'] = False + extr_df['flux_int_isl_ratio'] = 1.0 + extr_df['flux_peak_isl_ratio'] = 1.0 col_order = read_schema( images_df.iloc[0]['measurements_path'] diff --git a/vast_pipeline/pipeline/utils.py b/vast_pipeline/pipeline/utils.py index 979bfdc35..4635e69b3 100644 --- a/vast_pipeline/pipeline/utils.py +++ b/vast_pipeline/pipeline/utils.py @@ -376,8 +376,10 @@ def prep_skysrc_df( 'weight_ns', 'flux_int', 'flux_int_err', + 'flux_int_isl_ratio', 'flux_peak', 'flux_peak_err', + 'flux_peak_isl_ratio', 'forced', 'compactness', 'has_siblings', @@ -568,7 +570,12 @@ def groupby_funcs(df): d['wavg_uncertainty_ns'] = 1. / np.sqrt(df['weight_ns'].sum()) for col in ['avg_flux_int', 'avg_flux_peak']: d[col] = df[col.split('_', 1)[1]].mean() - d['max_flux_peak'] = df['flux_peak'].values.max() + for col in ['max_flux_peak', 'max_flux_int']: + d[col] = df[col.split('_', 1)[1]].max() + for col in ['min_flux_peak', 'min_flux_int']: + d[col] = df[col.split('_', 1)[1]].min() + for col in ['min_flux_peak_isl_ratio', 'min_flux_int_isl_ratio']: + d[col] = df[col.split('_', 1)[1]].min() for col in ['flux_int', 'flux_peak']: d[f'{col}_sq'] = (df[col]**2).mean() @@ -608,6 +615,11 @@ def parallel_groupby(df): 'avg_flux_int': 'f', 'avg_flux_peak': 'f', 'max_flux_peak': 'f', + 'max_flux_int': 'f', + 'min_flux_peak': 'f', + 'min_flux_int': 'f', + 'min_flux_peak_isl_ratio': 'f', + 'min_flux_int_isl_ratio': 'f', 'v_int': 'f', 'v_peak': 'f', 'eta_int': 'f', diff --git a/vast_pipeline/utils/view.py b/vast_pipeline/utils/view.py index 2d1da930b..59366297d 100644 --- a/vast_pipeline/utils/view.py +++ b/vast_pipeline/utils/view.py @@ -75,6 +75,26 @@ 'precision': 3, 'scale': 1, }, + 'min_flux_peak': { + 'precision': 3, + 'scale': 1, + }, + 'min_flux_int': { + 'precision': 3, + 'scale': 1, + }, + 'max_flux_int': { + 'precision': 3, + 'scale': 1, + }, + 'min_flux_int_isl_ratio': { + 'precision': 2, + 'scale': 1, + }, + 'min_flux_peak_isl_ratio': { + 'precision': 2, + 'scale': 1, + }, 'rms_median': { 'precision': 3, 'scale': 1, diff --git a/vast_pipeline/views.py b/vast_pipeline/views.py index 3acedbeb8..4de1af23f 100644 --- a/vast_pipeline/views.py +++ b/vast_pipeline/views.py @@ -927,6 +927,12 @@ def get_queryset(self): flux_qry_flds = [ 'avg_flux_int', 'avg_flux_peak', + 'min_flux_peak', + 'max_flux_peak', + 'min_flux_int', + 'max_flux_int', + 'min_flux_peak_isl_ratio', + 'min_flux_int_isl_ratio', 'v_int', 'v_peak', 'eta_int', @@ -1018,9 +1024,14 @@ def SourceQuery(request): 'run.name', 'wavg_ra', 'wavg_dec', - 'avg_flux_int', 'avg_flux_peak', + 'min_flux_peak', 'max_flux_peak', + 'min_flux_peak_isl_ratio', + 'avg_flux_int', + 'min_flux_int', + 'max_flux_int', + 'min_flux_int_isl_ratio', 'min_snr', 'max_snr', 'avg_compactness', @@ -1072,9 +1083,14 @@ def SourceQuery(request): 'Run', 'W. Avg. RA', 'W. Avg. Dec', - 'Avg. Int. Flux (mJy)', 'Avg. Peak Flux (mJy/beam)', + 'Min Peak Flux (mJy/beam)', 'Max Peak Flux (mJy/beam)', + 'Min Peak Flux Isl. Ratio', + 'Avg. Int. Flux (mJy)', + 'Min Int. Flux (mJy)', + 'Max Int. Flux (mJy)', + 'Min Int. Flux Isl. Ratio', 'Min SNR', 'Max SNR', 'Avg. Compactness', From d2534b3091180ba4f5200f43cab0b3f953eb92be Mon Sep 17 00:00:00 2001 From: Adam Stewart Date: Mon, 2 Nov 2020 19:25:55 +1100 Subject: [PATCH 2/4] Update CHANGELOG.md --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e2a15051..1b4d5183d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), #### Added +- Added new fields to source query page (island flux ratio, min and max fluxes) [#406](https://github.com/askap-vast/vast-pipeline/pull/406). +- Added min, max flux values to sources and agg min island flux ratio field [#406](https://github.com/askap-vast/vast-pipeline/pull/406). +- Added island flux ratio column to measurements, component flux divided by total island flux (peak and int) [#406](https://github.com/askap-vast/vast-pipeline/pull/406). - Added link to measurement table from the lightcurve to source detail page [#387](https://github.com/askap-vast/vast-pipeline/pull/387). - Added 'epoch based' parameter to pipeline run detail page [#387](https://github.com/askap-vast/vast-pipeline/pull/387). - Adds basic commenting functionality for sources, measurements, images, and runs [#368](https://github.com/askap-vast/vast-pipeline/pull/368). @@ -47,6 +50,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), #### Changed +- Naming of average flux query fields to account for other min max flux fields [#406](https://github.com/askap-vast/vast-pipeline/pull/406). - Updated RACS HiPS URL in Aladin [#399](https://github.com/askap-vast/vast-pipeline/pull/399). - Changed home page changelog space to welcome/help messages [#387](https://github.com/askap-vast/vast-pipeline/pull/387). - The `comment` field in the Run model has been renamed to `description`. A `comment` many-to-many relationship was added to permit user comments on Run instances [#368](https://github.com/askap-vast/vast-pipeline/pull/368). @@ -91,6 +95,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), #### List of PRs +- [#406](https://github.com/askap-vast/vast-pipeline/pull/406) feat, model: Added island flux ratio columns. - [#398](https://github.com/askap-vast/vast-pipeline/pull/398) fix: gunicorn request limit - [#399](https://github.com/askap-vast/vast-pipeline/pull/399) fix: Updated RACS HiPS path. - [#391](https://github.com/askap-vast/vast-pipeline/pull/391) fix: Vs metric fix and removed pipeline/plots.py. From 6e87fcca52a99c5f09ba420d41e22dd0aacc7d50 Mon Sep 17 00:00:00 2001 From: Adam Stewart Date: Mon, 2 Nov 2020 19:50:34 +1100 Subject: [PATCH 3/4] Added new fields to tables and detail pages - Fixed bug in datatables js. --- CHANGELOG.md | 1 + static/js/datatables-pipeline.js | 36 ++++++++++----- templates/measurement_detail.html | 6 ++- vast_pipeline/serializers.py | 6 ++- vast_pipeline/utils/view.py | 8 ++++ vast_pipeline/views.py | 76 +++++++++++++++++++++++-------- 6 files changed, 100 insertions(+), 33 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b4d5183d..8e879dfec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), #### Added +- Added new fields to detail pages and source and measurement tables [#406](https://github.com/askap-vast/vast-pipeline/pull/406). - Added new fields to source query page (island flux ratio, min and max fluxes) [#406](https://github.com/askap-vast/vast-pipeline/pull/406). - Added min, max flux values to sources and agg min island flux ratio field [#406](https://github.com/askap-vast/vast-pipeline/pull/406). - Added island flux ratio column to measurements, component flux divided by total island flux (peak and int) [#406](https://github.com/askap-vast/vast-pipeline/pull/406). diff --git a/static/js/datatables-pipeline.js b/static/js/datatables-pipeline.js index 9edbf08bd..a5ae778bf 100644 --- a/static/js/datatables-pipeline.js +++ b/static/js/datatables-pipeline.js @@ -128,7 +128,7 @@ $(document).ready(function() { "targets": 3, "data": "image", "render": function ( data, type, row, meta ) { - return '' + row[3] + ''; + return '' + row[3] + ''; } }, { @@ -168,48 +168,62 @@ $(document).ready(function() { }, { "targets": 9, - "data": "flux_int", + "data": "flux_peak", "render": function ( data, type, row, meta ) { return (row[9]).toFixed(3); } }, { "targets": 10, - "data": "flux_int_err", + "data": "flux_peak_err", "render": function ( data, type, row, meta ) { return (row[10]).toFixed(3); } }, { "targets": 11, - "data": "flux_peak", + "data": "flux_peak_isl_ratio", "render": function ( data, type, row, meta ) { - return (row[11]).toFixed(3); + return (row[11]).toFixed(2); } }, { "targets": 12, - "data": "flux_peak_err", + "data": "flux_int", "render": function ( data, type, row, meta ) { return (row[12]).toFixed(3); } }, { "targets": 13, - "data": "local_rms", + "data": "flux_int_err", "render": function ( data, type, row, meta ) { - return (row[13]).toFixed(2); + return (row[13]).toFixed(3); } }, { "targets": 14, - "data": "snr", + "data": "flux_int_isl_ratio", "render": function ( data, type, row, meta ) { return (row[14]).toFixed(2); } }, { - "targets": 17, + "targets": 15, + "data": "local_rms", + "render": function ( data, type, row, meta ) { + return (row[15]).toFixed(2); + } + }, + { + "targets": 16, + "data": "snr", + "render": function ( data, type, row, meta ) { + return (row[16]).toFixed(2); + } + }, + { + "targets": 19, "searchable": false, "visible": false } @@ -330,7 +344,7 @@ $(document).ready(function() { if (isl_ratio_min.value) { qry_url = qry_url + "&min_" + isl_ratio_flux_type.value + "=" + isl_ratio_min.value; }; - if (max_flux_max.value) { + if (isl_ratio_max.value) { qry_url = qry_url + "&max_" + isl_ratio_flux_type.value + "=" + isl_ratio_max.value; }; let var_v_type = document.getElementById("varVMetricSelect"); diff --git a/templates/measurement_detail.html b/templates/measurement_detail.html index e661e9073..13a1ce6e1 100644 --- a/templates/measurement_detail.html +++ b/templates/measurement_detail.html @@ -109,7 +109,9 @@
Details
Has siblings: {{ measurement.has_siblings }} {% if measurement.has_siblings %} (Table) - {% endif %} + {% endif %}
+ Peak Flux Island Ratio: {{ measurement.flux_peak_isl_ratio|floatformat:2 }}
+ Int. Flux Island Ratio: {{ measurement.flux_int_isl_ratio|floatformat:2 }}

@@ -117,7 +119,7 @@
Details
Peak Flux: {{ measurement.flux_peak|floatformat:3 }} ± {{ measurement.flux_peak_err|floatformat:3 }} mJy/beam
Int. Flux: {{ measurement.flux_int|floatformat:3 }} ± - {{ measurement.flux_int_err|floatformat:3 }} mJy + {{ measurement.flux_int_err|floatformat:3 }} mJy

SNR: {{ measurement.snr|floatformat:2 }}
diff --git a/vast_pipeline/serializers.py b/vast_pipeline/serializers.py index f521ae469..0daed4793 100644 --- a/vast_pipeline/serializers.py +++ b/vast_pipeline/serializers.py @@ -73,10 +73,12 @@ class Meta: 'dec', 'dec_err', 'uncertainty_ns', - 'flux_int', - 'flux_int_err', 'flux_peak', 'flux_peak_err', + 'flux_peak_isl_ratio', + 'flux_int', + 'flux_int_err', + 'flux_int_isl_ratio', 'compactness', 'snr', 'has_siblings', diff --git a/vast_pipeline/utils/view.py b/vast_pipeline/utils/view.py index 59366297d..101e47ccc 100644 --- a/vast_pipeline/utils/view.py +++ b/vast_pipeline/utils/view.py @@ -95,6 +95,14 @@ 'precision': 2, 'scale': 1, }, + 'flux_peak_isl_ratio': { + 'precision': 2, + 'scale': 1, + }, + 'flux_int_isl_ratio': { + 'precision': 2, + 'scale': 1, + }, 'rms_median': { 'precision': 3, 'scale': 1, diff --git a/vast_pipeline/views.py b/vast_pipeline/views.py index 4de1af23f..2837e7bec 100644 --- a/vast_pipeline/views.py +++ b/vast_pipeline/views.py @@ -331,10 +331,12 @@ def RunDetail(request, id): 'dec', 'dec_err', 'uncertainty_ns', - 'flux_int', - 'flux_int_err', 'flux_peak', 'flux_peak_err', + 'flux_peak_isl_ratio', + 'flux_int', + 'flux_int_err', + 'flux_int_isl_ratio', 'frequency', 'compactness', 'snr', @@ -363,10 +365,12 @@ def RunDetail(request, id): 'Dec (deg)', 'Dec Error (arcsec)', 'Uncertainty NS (arcsec)', - 'Int. Flux (mJy)', - 'Int. Flux Error (mJy)', 'Peak Flux (mJy/beam)', 'Peak Flux Error (mJy/beam)', + 'Peak Flux Isl. Ratio', + 'Int. Flux (mJy)', + 'Int. Flux Error (mJy)', + 'Int. Flux Isl. Ratio', 'Frequency (MHz)', 'Compactness', 'SNR', @@ -544,10 +548,12 @@ def ImageDetail(request, id, action=None): 'dec', 'dec_err', 'uncertainty_ns', - 'flux_int', - 'flux_int_err', 'flux_peak', 'flux_peak_err', + 'flux_peak_isl_ratio', + 'flux_int', + 'flux_int_err', + 'flux_int_isl_ratio', 'frequency', 'compactness', 'snr', @@ -576,10 +582,12 @@ def ImageDetail(request, id, action=None): 'Dec (deg)', 'Dec Error (arcsec)', 'Uncertainty NS (arcsec)', - 'Int. Flux (mJy)', - 'Int. Flux Error (mJy)', 'Peak Flux (mJy/beam)', 'Peak Flux Error (mJy/beam)', + 'Peak Flux Isl. Ratio', + 'Int. Flux (mJy)', + 'Int. Flux Error (mJy)', + 'Int. Flux Isl. Ratio', 'Frequency (MHz)', 'Compactness', 'SNR', @@ -640,10 +648,12 @@ def MeasurementIndex(request): 'uncertainty_ew', 'dec', 'uncertainty_ns', - 'flux_int', - 'flux_int_err', 'flux_peak', 'flux_peak_err', + 'flux_peak_isl_ratio', + 'flux_int', + 'flux_int_err', + 'flux_int_isl_ratio', 'frequency', 'compactness', 'snr', @@ -678,10 +688,12 @@ def MeasurementIndex(request): 'RA Error (arcsec)', 'Dec (deg)', 'Dec Error (arcsec)', - 'Int. Flux (mJy)', - 'Int. Flux Error (mJy)', 'Peak Flux (mJy/beam)', 'Peak Flux Error (mJy/beam)', + 'Peak Flux Isl. Ratio', + 'Int. Flux (mJy)', + 'Int. Flux Error (mJy)', + 'Int. Flux Isl. Ratio', 'Frequency (MHz)', 'Compactness', 'SNR', @@ -797,6 +809,9 @@ def MeasurementDetail(request, id, action=None): sibling_fields = [ 'name', 'flux_peak', + 'flux_peak_isl_ratio', + 'flux_int', + 'flux_int_isl_ratio', 'island_id', ] @@ -815,6 +830,9 @@ def MeasurementDetail(request, id, action=None): 'colsNames': [ 'Name', 'Peak Flux (mJy/beam)', + 'Peak Flux Isl. Ratio', + 'Int. Flux (mJy/beam)', + 'Int. Flux Isl. Ratio', 'Island ID' ], 'search': True, @@ -825,9 +843,14 @@ def MeasurementDetail(request, id, action=None): 'run.name', 'wavg_ra', 'wavg_dec', - 'avg_flux_int', 'avg_flux_peak', + 'min_flux_peak', 'max_flux_peak', + 'min_flux_peak_isl_ratio', + 'avg_flux_int', + 'min_flux_int', + 'max_flux_int', + 'min_flux_int_isl_ratio', 'min_snr', 'max_snr', 'avg_compactness', @@ -840,6 +863,10 @@ def MeasurementDetail(request, id, action=None): 'eta_int', 'v_peak', 'eta_peak', + 'vs_max_int', + 'vs_max_peak', + 'm_abs_max_int', + 'm_abs_max_peak', 'n_sibl', 'new', 'new_high_sigma' @@ -867,9 +894,14 @@ def MeasurementDetail(request, id, action=None): 'Run', 'W. Avg. RA', 'W. Avg. Dec', - 'Avg. Int. Flux (mJy)', 'Avg. Peak Flux (mJy/beam)', + 'Min Peak Flux (mJy/beam)', 'Max Peak Flux (mJy/beam)', + 'Min Peak Flux Isl. Ratio', + 'Avg. Int. Flux (mJy)', + 'Min Int. Flux (mJy)', + 'Max Int. Flux (mJy)', + 'Min Int. Flux Isl. Ratio', 'Min SNR', 'Max SNR', 'Avg. Compactness', @@ -882,6 +914,10 @@ def MeasurementDetail(request, id, action=None): '\u03B7 int flux', 'V peak flux', '\u03B7 peak flux', + 'Max Vs int', + 'Max Vs peak', + 'Max |m| int', + 'Max |m| peak', 'Contains siblings', 'New Source', 'New High Sigma' @@ -1140,10 +1176,12 @@ def SourceDetail(request, pk): 'ra_err', 'dec', 'dec_err', - 'flux_int', - 'flux_int_err', 'flux_peak', 'flux_peak_err', + 'flux_peak_isl_ratio', + 'flux_int', + 'flux_int_err', + 'flux_int_isl_ratio', 'local_rms', 'snr', 'has_siblings', @@ -1178,10 +1216,12 @@ def SourceDetail(request, pk): 'RA Error (arcsec)', 'Dec (deg)', 'Dec Error (arcsec)', - 'Int. Flux (mJy)', - 'Int. Flux Error (mJy)', 'Peak Flux (mJy/beam)', 'Peak Flux Error (mJy/beam)', + 'Peak Flux Isl. Ratio', + 'Int. Flux (mJy)', + 'Int. Flux Error (mJy)', + 'Int. Flux Isl. Ratio', 'Local RMS (mJy)', 'SNR', 'Has siblings', From c56c6ebae628d0d82e6a660c0380f5640d7f8332 Mon Sep 17 00:00:00 2001 From: Adam Stewart Date: Thu, 5 Nov 2020 10:24:27 +1100 Subject: [PATCH 4/4] Update templates/sources_query.html Co-authored-by: Andrew O'Brien --- templates/sources_query.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/sources_query.html b/templates/sources_query.html index 6761aff79..ec7b4386e 100644 --- a/templates/sources_query.html +++ b/templates/sources_query.html @@ -385,7 +385,7 @@