Skip to content

Commit

Permalink
Merge pull request #56 from Joshiwavm/add_freqdependance_to_noise
Browse files Browse the repository at this point in the history
Add freqdependance to white nosie.
  • Loading branch information
thomaswmorris authored Feb 21, 2024
2 parents 8d5df1e + 39c21d1 commit f000f95
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 0 deletions.
5 changes: 5 additions & 0 deletions maria/map/mappers.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ def __init__(
height: float = 1,
res: float = 0.01,
frame: str = "ra_dec",
units: str = "K_RJ",
degrees: bool = True,
calibrate: bool = False,
tods: Sequence[TOD] = [],
Expand All @@ -37,6 +38,7 @@ def __init__(
self.degrees = degrees
self.calibrate = calibrate
self.frame = frame
self.units = units

self.n_x = int(np.maximum(1, self.width / self.res))
self.n_y = int(np.maximum(1, self.height / self.res))
Expand Down Expand Up @@ -122,6 +124,7 @@ def __init__(
height: float = 1,
res: float = 0.01,
frame: str = "ra_dec",
units: str = "K_RJ",
degrees: bool = True,
calibrate: bool = False,
tod_postprocessing: dict = {},
Expand All @@ -137,6 +140,7 @@ def __init__(
degrees=degrees,
calibrate=calibrate,
tods=tods,
units=units,
)

self.tod_postprocessing = tod_postprocessing
Expand Down Expand Up @@ -259,4 +263,5 @@ def run(self):
height=np.degrees(self.height) if self.degrees else self.height,
center=np.degrees(self.center) if self.degrees else self.center,
degrees=self.degrees,
units=self.units,
)
52 changes: 52 additions & 0 deletions maria/noise/levels.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import numpy as np
import pandas as pd


class ReadOutBLIPs:
"""
Background limited estimates for AtLAST based of from
Sean Bryans estimator.
See https://github.com/atlast-telescope/sens_calc for more info.
"""

def _run(self):
self._get_levels()

def _get_levels(self):
df = pd.read_csv(
"./maria/noise/results_of_instrument_simulation.csv", index_col=0
)
frq_index = np.argmin(np.abs(self.f_c - df["fmin"]))

used_b_w = df["fmax"][frq_index] - df["fmin"][frq_index] # GHz
NET = df["NET_RJ of a Single Detector"][frq_index]

self.white_noise_RJ = NET / np.sqrt(self.b_w / used_b_w) * 1e-6 # K s^0.5
self.pink_noise_RJ = 0.3 * (self.white_noise_RJ / 112.0e-6)

if self.cal:
self.white_noise_RJ = self.white_noise_RJ * 0.3 / self.abscal
self.pink_noise_RJ = self.pink_noise_RJ * 0.3 / self.abscal


class InitNoise(ReadOutBLIPs):
"""
Estimate initial white and pink noise levels
"""

def __init__(
self,
f_c: np.float32 = 93, # GHz -- central frequency
b_w: np.float32 = 52, # GHz -- band width
abscal: np.float32 = 1.0, # Calibration term due to atmospheric absorption
cal: bool = True,
*args,
**kwargs,
):
super(InitNoise, self).__init__(*args, **kwargs)

self.f_c = f_c
self.b_w = b_w
self.cal = cal
self.abscal = abscal
self._run()
10 changes: 10 additions & 0 deletions maria/noise/results_of_instrument_simulation.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
,fmin,fmax,Nwafer,det_spacing_freq,Detector Count,Beam in Arcseconds,Loading at Detector in pW,NEP at Detectors in aWrtHz,NEFD of a Single Detector,NEFD of Entire Frequency Band,Mapping speed in deg^2/mJ^2/hour,Mapping speed in deg^2/(30 uJ)^2/hour,NET_RJ of a Single Detector,NET_RJ of Entire Frequency Band,Mapping speed in deg^2/uKrj^2/hour
0,75.0,110.0,6,120.0,8760.0,15.135135135135137,3.0202743304083337,29.954679139317207,0.19846267947048057,0.0021204439512812934,16035.441824686597,0.1443189764221794,136.79811739178456,1.4615984292060482,0.03375035849289729
1,130.0,170.0,6,120.0,8760.0,9.333333333333334,3.0789766226840882,33.02540318011379,0.1915492284300846,0.002046578247763633,6546.041662186786,0.05891437495968108,132.82190300976444,1.4191151786631857,0.01361445254066725
2,195.0,245.0,8,250.0,50672.0,6.363636363636363,4.893072631000369,49.097043860007645,0.23002547525862918,0.00102186121018717,12206.433850939447,0.10985790465845505,156.43507218794178,0.69494447083287,0.026392007226340213
3,245.0,310.0,8,250.0,50672.0,5.045045045045045,7.788638606989703,69.3178842473035,0.25200161976617375,0.001119487656112251,6392.244784592502,0.057530203061332524,168.07986397978158,0.7466750933624311,0.014369070848812966
4,335.0,365.0,20,375.0,285040.0,4.0,6.551153167289951,77.76934158020988,0.6598055720815303,0.0012358423516919382,3297.2794343963087,0.029675514909566783,402.26969621357347,0.7534673067622317,0.008870601641362627
5,390.0,420.0,20,375.0,285040.0,3.45679012345679,10.521032514890043,114.95252757167484,1.1501420990653635,0.0021542623715720957,810.4211249017036,0.007293790124115333,604.8786964498598,1.1329621063227062,0.002930064465718445
6,625.0,710.0,10,640.0,415100.0,2.0973782771535583,62.56720001803169,385.1762123507837,2.594954367308057,0.004027665161106462,85.35102361755125,0.0007681592125579614,726.02999173514,1.1268813588670297,0.0010903327607526285
7,845.0,900.0,6,870.0,460236.0,1.6045845272206305,40.720661000730324,328.1353534604811,3.6561295407671337,0.005389286622558256,27.901307558399193,0.00025111176802559276,962.5514341156297,1.4188407466315287,0.0004025499854952142
8,,,50,,,,2.3400582477040014e-07,0.021193786813650167,2066.4902306825043,,,,1448388.8024249116,,

0 comments on commit f000f95

Please sign in to comment.