TimeOnSource: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
'''Return to [[Analysis Utilities]]''' | '''Return to [[Analysis Utilities]]''' | ||
It is useful to know how much time you spent integrating on source, not including the atmospheric calibration, pointing calibration and sideband ratio calibration. This function computes this value for all fields or each specified field. It then searches for the inter-subscan latency, corrects for it, and prints revised values. It returns an extensive dictionary which includes an item ('minutes_on_science') for the total time spent on science targets, i.e. those scans with intent = OBSERVE_TARGET. It also computes the time spent integrating on source as a percentage of the total elapsed (clock) time of the ms. | It is useful to know how much time you spent integrating on source, not including the atmospheric calibration, pointing calibration and sideband ratio calibration. This function computes this value for all fields or each specified field. It then searches for the inter-subscan latency, corrects for it, and prints revised values. It returns an extensive dictionary which includes an item ('minutes_on_science') for the total time spent on science targets, i.e. those scans with intent = OBSERVE_TARGET. It also computes the time spent integrating on source as a percentage of the total elapsed (clock) time of the ms. (Note: timeOnSource and TimeOnSource are synonyms.) | ||
<source lang="Python"> | <source lang="Python"> |
Revision as of 20:12, 21 February 2012
Return to Analysis Utilities
It is useful to know how much time you spent integrating on source, not including the atmospheric calibration, pointing calibration and sideband ratio calibration. This function computes this value for all fields or each specified field. It then searches for the inter-subscan latency, corrects for it, and prints revised values. It returns an extensive dictionary which includes an item ('minutes_on_science') for the total time spent on science targets, i.e. those scans with intent = OBSERVE_TARGET. It also computes the time spent integrating on source as a percentage of the total elapsed (clock) time of the ms. (Note: timeOnSource and TimeOnSource are synonyms.)
# In CASA
au.timeOnSource(help=True)
Usage: timeOnSource(ms,field='',includeLatency=False,verbose=True,help=False)
Returns a list of durations (in sec) on the fields specified, attempting
to detect and account for inter-subscan latency, unless includeLatency=T
in which case it will return the total time from start to end of scan.
Fields can be specified by a single name or ID, or a list of IDs: '2,3,4'.
Examples
Here is an example of running it with minimal output to the screen.
# In CASA
mydict = au.timeOnSource('X3c1.ms',verbose=F)
Ignoring spectral window [0, 25, 26, 27, 28, 29, 30, 31, 32, 33] because it is WVR related
Total time = 71.3 min, science time = 48.4 min
Latency removed: Total time = 60.0 min, science time = 40.1 min
Here is an example of running it with full output to the screen:
# In CASA
mydict = au.timeOnSource('X3c1.ms')
Running ValueMapping... (this may take a minute)
Ignoring spectral window [0, 25, 26, 27, 28, 29, 30, 31, 32, 33] because it is WVR related
Non-CalAtmosphere, Non-CalPointing, Non-CalSideband scans:
Total time on scan (including inter-subscan latency):
Source 0 = Field 0 = 3c279: 65.7 sec = 1.1 min (1 scan: [5], 2 subscans)
Source 1 = Field 1 = Titan: 66.8 sec = 1.1 min (1 scan: [4], 2 subscans)
Source 2 = Field 2 = TW Hya: 2903.0 sec = 48.4 min (7 scans: [9, 13, 18, 22, 27, 31, 36], 80 subscans)
Source 3 = Field 3 = J1147-382=QSO: 262.7 sec = 4.4 min (4 scans: [8, 16, 25, 34], 8 subscans)
Source 4 = Field 4 = J1037-295=QSO: 981.5 sec = 16.4 min (7 scans: [11, 15, 20, 24, 29, 33, 38], 28 subscans)
Total time = 71.3 min, science time = 48.4 min
My attempt to detect and account for inter-subscan latency:
Source 0 = Field 0 = 3c279: 58.7 sec = 1.0 min (1 scan: [5], 2 subscans)
Source 1 = Field 1 = Titan: 59.9 sec = 1.0 min (1 scan: [4], 2 subscans)
Source 2 = Field 2 = TW Hya: 2407.2 sec = 40.1 min (7 scans: [9, 13, 18, 22, 27, 31, 36], 80 subscans)
Source 3 = Field 3 = J1147-382=QSO: 234.9 sec = 3.9 min (4 scans: [8, 16, 25, 34], 8 subscans)
Source 4 = Field 4 = J1037-295=QSO: 839.2 sec = 14.0 min (7 scans: [11, 15, 20, 24, 29, 33, 38], 28 subscans)
Latency removed: Total time = 60.0 min, science time = 40.1 min
Here is the dictionary returned:
{0: {'field_ids': [0],
'minutes_on_source': 0.97860000928242996,
'minutes_on_source_with_latency': 1.0944000085194905,
'num_of_fields': 1,
'num_of_scans': 1,
'num_of_subscans': [2],
'scans': [5],
'source_name': '3c279'},
1: {'field_ids': [1],
'minutes_on_source': 0.99779998461405439,
'minutes_on_source_with_latency': 1.1135999997456869,
'num_of_fields': 1,
'num_of_scans': 1,
'num_of_subscans': [2],
'scans': [4],
'source_name': 'Titan'},
2: {'field_ids': [2],
'minutes_on_source': 40.119599183400474,
'minutes_on_source_with_latency': 48.384000015258792,
'num_of_fields': 1,
'num_of_scans': 7,
'num_of_subscans': [1, 16, 13, 16, 13, 16, 5],
'scans': [9, 13, 18, 22, 27, 31, 36],
'source_name': 'TW Hya'},
3: {'field_ids': [3],
'minutes_on_source': 3.9143999894460042,
'minutes_on_source_with_latency': 4.3776000022888182,
'num_of_fields': 1,
'num_of_scans': 4,
'num_of_subscans': [2, 2, 2, 2],
'scans': [8, 16, 25, 34],
'source_name': 'J1147-382=QSO'},
4: {'field_ids': [4],
'minutes_on_source': 13.985999981562296,
'minutes_on_source_with_latency': 16.358400026957195,
'num_of_fields': 1,
'num_of_scans': 7,
'num_of_subscans': [4, 4, 4, 4, 4, 4, 4],
'scans': [11, 15, 20, 24, 29, 33, 38],
'source_name': 'J1037-295=QSO'},
'clock_time': 101.80159999290481,
'minutes_on_science': 40.119599183400474,
'minutes_on_science_with_latency': 48.384000015258792,
'num_of_sources': 5,
'percentage_time_on_science': 39.409595906347896,
'source_ids': [0, 1, 2, 3, 4]}