Skip to content

Commit 5ea92b4

Browse files
committed
* print less by default
1 parent d8f75af commit 5ea92b4

File tree

1 file changed

+43
-37
lines changed

1 file changed

+43
-37
lines changed

dsa2000_cal/src/dsa2000_fm/antenna_model/h5_efield_model.py

Lines changed: 43 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -112,42 +112,47 @@ def plot_e_field(self, nu: int = 0):
112112
def __post_init__(self):
113113
if not os.path.exists(self.beam_file):
114114
raise ValueError(f"Antenna model file {self.beam_file} does not exist")
115-
print_h5_structure(self.beam_file)
116-
with tb.open_file(self.beam_file, 'r') as file:
117-
# self.freqs = file.get_node("/Freq(Hz)").read() * au.Hz
118-
self.freqs = (file.root.freq_Hz.read() * self.freq_units).to('Hz') # [num_freqs]
119-
self.theta = (file.root.theta_pts.read() * self.angular_units).to('rad') # [num_theta]
120-
self.phi = (file.root.phi_pts.read() * self.angular_units).to('rad') # [num_phi]
121-
122-
# e_field_X_theta = file.get_node("/X-pol_Efields/etheta").read() # [freq, theta, phi]
123-
e_field_X_theta = file.root.X_pol_Efields.etheta.read() # [freq, theta, phi]
124-
e_field_X_theta = np.transpose(e_field_X_theta, (1, 2, 0)) # [theta, phi, freq]
125-
# e_field_X_phi = file.get_node("/X-pol_Efields/ephi").read() # [freq, theta, phi]
126-
e_field_X_phi = file.root.X_pol_Efields.ephi.read() # [freq, theta, phi]
127-
e_field_X_phi = np.transpose(e_field_X_phi, (1, 2, 0)) # [theta, phi, freq]
128-
129-
# e_field_Y_theta = file.get_node("/Y-pol_Efields/etheta").read() # [freq, theta, phi]
130-
e_field_Y_theta = file.root.Y_pol_Efields.etheta.read() # [freq, theta, phi]
131-
e_field_Y_theta = np.transpose(e_field_Y_theta, (1, 2, 0)) # [theta, phi, freq]
132-
# e_field_Y_phi = file.get_node("/Y-pol_Efields/ephi").read() # [freq, theta, phi]
133-
e_field_Y_phi = file.root.Y_pol_Efields.ephi.read() # [freq, theta, phi]
134-
e_field_Y_phi = np.transpose(e_field_Y_phi, (1, 2, 0)) # [theta, phi, freq]
135-
136-
E_x_X_dipole, E_y_X_dipole, _ = convert_spherical_e_field_to_cartesian(
137-
*np.broadcast_arrays(e_field_X_phi, e_field_X_theta, self.phi[None, :, None], self.theta[:, None, None])
138-
) # [theta, phi, freq]
139-
E_x_Y_dipole, E_y_Y_dipole, _ = convert_spherical_e_field_to_cartesian(
140-
*np.broadcast_arrays(e_field_Y_phi, e_field_Y_theta, self.phi[None, :, None], self.theta[:, None, None])
141-
) # [theta, phi, freq]
142-
143-
jones = np.transpose(np.asarray([[E_x_X_dipole, E_y_X_dipole],
144-
[E_x_Y_dipole, E_y_Y_dipole]]),
145-
(2, 3, 4, 0, 1)) # [theta, phi, freq, 2, 2]
146-
147-
self.amplitude = np.abs(jones) * au.dimensionless_unscaled
148-
self.phase = np.angle(jones) * au.rad
149-
self.voltage_gain = np.max(np.max(self.amplitude[..., 0, 0], axis=0),
150-
axis=0) * au.dimensionless_unscaled # [num_freqs]
115+
try:
116+
with tb.open_file(self.beam_file, 'r') as file:
117+
# self.freqs = file.get_node("/Freq(Hz)").read() * au.Hz
118+
self.freqs = (file.root.freq_Hz.read() * self.freq_units).to('Hz') # [num_freqs]
119+
self.theta = (file.root.theta_pts.read() * self.angular_units).to('rad') # [num_theta]
120+
self.phi = (file.root.phi_pts.read() * self.angular_units).to('rad') # [num_phi]
121+
122+
# e_field_X_theta = file.get_node("/X-pol_Efields/etheta").read() # [freq, theta, phi]
123+
e_field_X_theta = file.root.X_pol_Efields.etheta.read() # [freq, theta, phi]
124+
e_field_X_theta = np.transpose(e_field_X_theta, (1, 2, 0)) # [theta, phi, freq]
125+
# e_field_X_phi = file.get_node("/X-pol_Efields/ephi").read() # [freq, theta, phi]
126+
e_field_X_phi = file.root.X_pol_Efields.ephi.read() # [freq, theta, phi]
127+
e_field_X_phi = np.transpose(e_field_X_phi, (1, 2, 0)) # [theta, phi, freq]
128+
129+
# e_field_Y_theta = file.get_node("/Y-pol_Efields/etheta").read() # [freq, theta, phi]
130+
e_field_Y_theta = file.root.Y_pol_Efields.etheta.read() # [freq, theta, phi]
131+
e_field_Y_theta = np.transpose(e_field_Y_theta, (1, 2, 0)) # [theta, phi, freq]
132+
# e_field_Y_phi = file.get_node("/Y-pol_Efields/ephi").read() # [freq, theta, phi]
133+
e_field_Y_phi = file.root.Y_pol_Efields.ephi.read() # [freq, theta, phi]
134+
e_field_Y_phi = np.transpose(e_field_Y_phi, (1, 2, 0)) # [theta, phi, freq]
135+
136+
E_x_X_dipole, E_y_X_dipole, _ = convert_spherical_e_field_to_cartesian(
137+
*np.broadcast_arrays(e_field_X_phi, e_field_X_theta, self.phi[None, :, None],
138+
self.theta[:, None, None])
139+
) # [theta, phi, freq]
140+
E_x_Y_dipole, E_y_Y_dipole, _ = convert_spherical_e_field_to_cartesian(
141+
*np.broadcast_arrays(e_field_Y_phi, e_field_Y_theta, self.phi[None, :, None],
142+
self.theta[:, None, None])
143+
) # [theta, phi, freq]
144+
145+
jones = np.transpose(np.asarray([[E_x_X_dipole, E_y_X_dipole],
146+
[E_x_Y_dipole, E_y_Y_dipole]]),
147+
(2, 3, 4, 0, 1)) # [theta, phi, freq, 2, 2]
148+
149+
self.amplitude = np.abs(jones) * au.dimensionless_unscaled
150+
self.phase = np.angle(jones) * au.rad
151+
self.voltage_gain = np.max(np.max(self.amplitude[..., 0, 0], axis=0),
152+
axis=0) * au.dimensionless_unscaled # [num_freqs]
153+
except:
154+
print_h5_structure(self.beam_file)
155+
raise
151156

152157

153158
def get_pytable_by_path(h5file_path, path):
@@ -194,7 +199,8 @@ def traverse_node(node, path=''):
194199
print(f'UnImplemented Leaf: {node._v_pathname} | Reason: Unsupported type or dataset')
195200
else:
196201
# Print the leaf information including shape and dtype
197-
print(f'Leaf: {node._v_pathname} | Shape: {node.shape} | Dtype: {node.dtype} | Min: {np.min(node)} | Max: {np.max(node)}')
202+
print(
203+
f'Leaf: {node._v_pathname} | Shape: {node.shape} | Dtype: {node.dtype} | Min: {np.min(node)} | Max: {np.max(node)}')
198204
# Handle UnImplemented specifically if not already caught
199205
elif isinstance(node, tb.UnImplemented):
200206
print(f'UnImplemented Node: {node._v_pathname} | Reason: Unsupported type or dataset')

0 commit comments

Comments
 (0)