Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions doc/source/enhancements.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,10 @@ as well. See :ref:`component_configuration` for more information.

Enhancements can be defined in a ``generic.yaml`` file that is always loaded
for all data or in an instrument-specific file (e.g. ``seviri.yaml``)
corresponding to the ``.attrs["sensor"]`` metadata of the ``DataArray`` being
processed. Generic enhancements are loaded first followed by sensor-specific
corresponding to the ``.attrs["instruments"]`` metadata of the ``DataArray``
being processed. For the filename, instruments are normalized using
:meth:`satpy._instruments.normalize_instrument_name`.
Generic enhancements are loaded first followed by instrument-specific
enhancement files.

Enhancement YAML Format
Expand Down Expand Up @@ -95,7 +97,7 @@ implementation depends on the following keys:
1. ``name``
2. ``reader``
3. ``platform_name``
4. ``sensor``
4. ``instruments``
Comment thread
sfinkens marked this conversation as resolved.
Outdated
5. ``standard_name``
6. ``units``

Expand Down
18 changes: 17 additions & 1 deletion satpy/enhancements/enhancer.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
from __future__ import annotations

import os
import warnings
from pathlib import Path

import yaml
Expand All @@ -43,14 +44,29 @@ def __init__(self, *decision_dicts, **kwargs):
"reader",
"platform_name",
"sensor",
"instruments",
"standard_name",
"units",
))
self.prefix = kwargs.pop("config_section", "enhancements")
multival_keys = kwargs.pop("multival_keys", ["sensor"])
multival_keys = kwargs.pop("multival_keys", ["sensor", "instruments"])
self._check_deprecated_keys(match_keys, multival_keys)
super(EnhancementDecisionTree, self).__init__(
decision_dicts, match_keys, multival_keys)

def _check_deprecated_keys(self, match_keys, multival_keys):
user_provided_sensor = any(
"sensor" in keys
for keys in [match_keys, multival_keys]
)
Comment thread
sfinkens marked this conversation as resolved.
Outdated
if user_provided_sensor:
warnings.warn(
"The 'sensor' attribute will be removed in v1.1. "
"Use 'instrument' instead.",
DeprecationWarning,
stacklevel=2
Comment thread
sfinkens marked this conversation as resolved.
Outdated
)

def add_config_to_tree(self, *decision_dict: str | Path | dict) -> None:
"""Add configuration to tree."""
conf: dict = {}
Expand Down
24 changes: 12 additions & 12 deletions satpy/etc/enhancements/abi.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
enhancements:
cimss_true_color:
standard_name: cimss_true_color
sensor: abi
instrument: abi
Comment thread
sfinkens marked this conversation as resolved.
Outdated
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.contrast.stretch
Expand Down Expand Up @@ -35,7 +35,7 @@ enhancements:

true_color_with_night_fires:
standard_name: true_color_with_night_fires
sensor: abi
instrument: abi
operations:
- name: stretch
method: !!python/name:satpy.enhancements.contrast.stretch
Expand Down Expand Up @@ -77,7 +77,7 @@ enhancements:
ash_abi:
## RGB Ash recipe source: http://rammb.cira.colostate.edu/training/visit/quick_guides/GOES_Ash_RGB.pdf
standard_name: ash
sensor: abi
instrument: abi
operations:
- name: stretch
method: !!python/name:satpy.enhancements.contrast.stretch
Expand All @@ -89,7 +89,7 @@ enhancements:
dust_abi:
## RGB Dust recipe source: http://rammb.cira.colostate.edu/training/visit/quick_guides/Dust_RGB_Quick_Guide.pdf
standard_name: dust
sensor: abi
instrument: abi
operations:
- name: stretch
method: !!python/name:satpy.enhancements.contrast.stretch
Expand All @@ -105,7 +105,7 @@ enhancements:
convection_abi:
## RGB Convection recipe source: http://rammb.cira.colostate.edu/training/visit/quick_guides/QuickGuide_GOESR_DayConvectionRGB_final.pdf
standard_name: convection
sensor: abi
instrument: abi
operations:
- name: stretch
method: !!python/name:satpy.enhancements.contrast.stretch
Expand Down Expand Up @@ -142,7 +142,7 @@ enhancements:
night_microphysics_abi:
## RGB Nighttime Microphysics recipe source: http://rammb.cira.colostate.edu/training/visit/quick_guides/QuickGuide_GOESR_NtMicroRGB_final.pdf
standard_name: night_microphysics
sensor: abi
instrument: abi
operations:
- name: stretch
method: !!python/name:satpy.enhancements.contrast.stretch
Expand All @@ -154,7 +154,7 @@ enhancements:
night_microphysics_tropical_abi:
## RGB Nighttime Microphysics recipe source: http://rammb.cira.colostate.edu/training/visit/quick_guides/QuickGuide_GOESR_NtMicroRGB_final.pdf
standard_name: night_microphysics_tropical
sensor: abi
instrument: abi
operations:
- name: stretch
method: !!python/name:satpy.enhancements.contrast.stretch
Expand All @@ -170,7 +170,7 @@ enhancements:
land_cloud_fire:
## RGB Day Land Cloud Fire recipe source: http://rammb.cira.colostate.edu/training/visit/quick_guides/QuickGuide_GOESR_DayLandCloudFireRGB_final.pdf
standard_name: land_cloud_fire
sensor: abi
instrument: abi
operations:
- name: stretch
method: !!python/name:satpy.enhancements.contrast.stretch
Expand All @@ -179,7 +179,7 @@ enhancements:
land_cloud:
## RGB Day Land Cloud Fire recipe source: http://rammb.cira.colostate.edu/training/visit/quick_guides/QuickGuide_GOESR_daylandcloudRGB_final.pdf
standard_name: land_cloud
sensor: abi
instrument: abi
operations:
- name: stretch
method: !!python/name:satpy.enhancements.contrast.stretch
Expand All @@ -191,7 +191,7 @@ enhancements:
# IR with white clouds
highlighted_brightness_temperature:
standard_name: highlighted_toa_brightness_temperature
sensor: abi
instrument: abi
operations:
- name: btemp_threshold
method: !!python/name:satpy.enhancements.contrast.btemp_threshold
Expand Down Expand Up @@ -308,7 +308,7 @@ enhancements:
## RGB Recipe: https://rammb2.cira.colostate.edu/wp-content/uploads/2024/11/GOES-BlowingSnowRGB1_QuickGuide_24April2024.pdf
## Modified to match recommendations from RGB Workshop 2025
standard_name: day_blowing_snow
sensor: abi
instrument: abi
operations:
- name: stretch
method: !!python/name:satpy.enhancements.contrast.stretch
Expand All @@ -323,7 +323,7 @@ enhancements:
day_cloud_type:
# Recipe PDF: http://cimss.ssec.wisc.edu/goes/OCLOFactSheetPDFs/ABIQuickGuide_Day_Cloud_Type_RGB.pdf
standard_name: day_cloud_type
sensor: abi
instrument: abi
operations:
- name: stretch
method: !!python/name:satpy.enhancements.contrast.stretch
Expand Down
4 changes: 2 additions & 2 deletions satpy/etc/enhancements/ahi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ enhancements:

day_severe_storms:
standard_name: day_severe_storms
sensor: ahi
instrument: ahi
operations:
- name: stretch
method: !!python/name:satpy.enhancements.contrast.stretch
Expand All @@ -27,7 +27,7 @@ enhancements:

night_microphysics_tropical:
standard_name: night_microphysics_tropical
sensor: ahi
instrument: ahi
operations:
- name: stretch
method: !!python/name:satpy.enhancements.contrast.stretch
Expand Down
24 changes: 12 additions & 12 deletions satpy/etc/enhancements/amsr2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,85 +3,85 @@ enhancements:
# https://www.ospo.noaa.gov/Products/atmosphere/gpds/maps.html?GPRR#gpdsMaps
gaasp_clw:
name: CLW
sensor: amsr2
instrument: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.contrast.stretch
kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 0.5}
gaasp_sst:
name: SST
sensor: amsr2
instrument: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.contrast.stretch
kwargs: {stretch: 'crude', min_stretch: -5.0, max_stretch: 35}
gaasp_tpw:
name: TPW
sensor: amsr2
instrument: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.contrast.stretch
kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 75.0}
gaasp_wspd:
name: WSPD
sensor: amsr2
instrument: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.contrast.stretch
kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 100.0}
# Snow_Cover unscaled (category product)
gaasp_snow_depth:
name: Snow_Depth
sensor: amsr2
instrument: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.contrast.stretch
kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 150.0}
gaasp_swe:
name: SWE
sensor: amsr2
instrument: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.contrast.stretch
kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 16.0}
gaasp_soil_moisture:
name: Soil_Moisture
sensor: amsr2
instrument: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.contrast.stretch
kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 100.0}
gaasp_ice_concentration_nh:
name: NASA_Team_2_Ice_Concentration_NH
sensor: amsr2
instrument: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.contrast.stretch
kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 100.0}
gaasp_ice_concentration_sh:
name: NASA_Team_2_Ice_Concentration_SH
sensor: amsr2
instrument: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.contrast.stretch
kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 100.0}
# gaasp_latency_nh:
# name: Latency_NH
# sensor: amsr2
# instrument: amsr2
# operations:
# - name: linear_stretch
# method: !!python/name:satpy.enhancements.contrast.stretch
# kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 100.0}
# gaasp_latency_sh:
# name: Latency_SH
# sensor: amsr2
# instrument: amsr2
# operations:
# - name: linear_stretch
# method: !!python/name:satpy.enhancements.contrast.stretch
# kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 100.0}
gaasp_rain_rate:
name: Rain_Rate
sensor: amsr2
instrument: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.contrast.stretch
Expand Down
Loading