Source code for geoips.plugins.classes.algorithms.pmw_tb.pmw_37pct
# # # This source code is subject to the license referenced at
# # # https://github.com/NRLMMD-GEOIPS.
"""Passive Microwave 37 GHz Polarization Corrected Temperature.
Data manipulation steps for the "37pct" product.
This algorithm expects Brightness Temperatures in units of degrees Kelvin.
"""
from geoips.interfaces.class_based.algorithms import BaseAlgorithmPlugin
import logging
LOG = logging.getLogger(__name__)
[docs]class Pmw37PctAlgorithmPlugin(BaseAlgorithmPlugin):
"""Pmw37 PCT algorithm plugin class."""
interface = "algorithms"
family = "list_numpy_to_numpy"
name = "pmw_37pct"
[docs] def call(
self,
arrays,
output_data_range=None,
min_outbounds="crop",
max_outbounds="mask",
norm=False,
inverse=False,
):
"""37pct product algorithm data manipulation steps.
This algorithm expects Brightness Temperatures in units of degrees Kelvin,
and returns degrees Kelvin
Parameters
----------
arrays : list of numpy.ndarray
* numpy.ndarray or numpy.MaskedArray of channel data, in order of sensor
"channels" list
* Degrees Kelvin
Returns
-------
numpy.ndarray
numpy.ndarray or numpy.MaskedArray of appropriately scaled channel data,
in degrees Kelvin.
"""
h37 = arrays[0]
v37 = arrays[1]
out = (2.15 * v37) - (1.15 * h37)
if output_data_range is None:
output_data_range = [230.0, 280.0]
from geoips.data_manipulations.corrections import apply_data_range
data = apply_data_range(
out,
min_val=output_data_range[0],
max_val=output_data_range[1],
min_outbounds=min_outbounds,
max_outbounds=max_outbounds,
norm=norm,
inverse=inverse,
)
return data
PLUGIN_CLASS = Pmw37PctAlgorithmPlugin