irfpy.jdc.fov0

JDC fov module.

As of I know only little on JDC, I made this module for a draft use. Thus, I added 0 in the trail of the module.

FOV 90x360 for each sensor with resolution of 5.5x19.5 means the 16x16 separation, as a maximum, while I doubt such high number of bins. But for the draft purpose, I just implement following the number. The implementation will be changed as the sensor design progresses.

irfpy.jdc.fov0.elev_pix_center(nel)[source]

Elevation pixel center in degrees.

The JDC has two units. Number definition is, preliminary, 0 to 15 for JDC on nadir unit and 16 to 31 for zenith. Ch-0 corresponds to the nadir-looking and 31 for zenith looking.

The definition of angle, \(\theta\) is 0 for zenith looking and 180 is nadir looking.

Thus, the expression is

\[\theta = (180. / 32.) * (31 - nel) + (180. / 64.)\]

Note that the nel is usually int or np.array with dtype=np.int, but float may be allowed for special use.

Parameters

nel (int, float or np.array.) – Number of elevation. 0 to 31.

Returns

The elevation angle.

Return type

np.array

>>> print(elev_pix_center(0))
177.1875
>>> print(elev_pix_center(8))
132.1875
>>> print(elev_pix_center(31))
2.8125
>>> print(elev_pix_center([31, 23, 0]))
[  2.8125  47.8125 177.1875]

Note also that the returned type is np.array object, even the given parameter is a scalar. In this case, np.array object with shape () is returned.

>>> print(elev_pix_center(8).shape)
()
irfpy.jdc.fov0.elev_pix_fwhm(nel)[source]

Return the FWHM

For draft, I just return 5.5 for simplicity.

irfpy.jdc.fov0.azim_pix_center(naz)[source]

Return the azimuthal angle for the given channel number(s).

Similar to elev_pix_center(), the azimuthal angle, \(\phi\) is returned.

\[\phi = naz * 22.5 + 11.25\]
>>> print(azim_pix_center(0))
11.25
>>> print(azim_pix_center(15))
348.75
>>> print(azim_pix_center([6, 7, 8]))
[146.25 168.75 191.25]
irfpy.jdc.fov0.azim_pix_fwhm(naz)[source]

Return the FWHM

For draft, I just return 19.5 for simplicity.

irfpy.jdc.fov0.doctests()[source]