RadioAstronomySoftwareGroup / pyuvdata

A pythonic interface for radio astronomy interferometry data (uvfits, miriad, others)
https://pyuvdata.readthedocs.io/en/latest/index.html
BSD 2-Clause "Simplified" License
82 stars 25 forks source link

"Counts" and "Watts / Hz" as valid visibility units #1438

Open aewallwi opened 2 months ago

aewallwi commented 2 months ago

It is sometimes useful to work with more "hardware centered" units with visibility data, especially if we are trying to characterize an interferometer with non astronomical sources (ie with drones and other test transmitters) or even with noise / calibrator sources that might not pass through an antenna element at all. During these sorts of experiments, flux units (Jy) are not suitable since they require us to fold in potentially unknown or non-existent antenna information. There are situations where we are confident in the power we are measuring but are not confident in how that translates to a flux (because we don't know the antenna well or we don't even have an antenna). In such situations, I think it's useful to note these units in more specific terms then "uncalibrated"

To support this use mode, I think it would be helpful to allow for purely power density focused "mWatts / Hz" units (which do not depend on any of the antenna properties and simply refer to the recorded power), "mVolts^2 / Hz", "(ADC Counts)^2 / Hz". These are the two "non-antenna referenced" units I can think of as being useful but if there are others, then I think we should try to support them.

bhazelton commented 1 month ago

We discussed this on our telecon and we think that we should instead just remove the list of allowed values so that anything can be set. There's already a warning when writing a measurement set about units that are not Jy and we should add a similar warning when writing a uvfits file because the UVFITS memo is rather specific about the allowed values.

bhazelton commented 1 week ago

Instead of just allowing any string, this should probably be required to be an astropy unit.

We should do the same thing for the UVCal gain_scale parameter.