From 42a863d560aabb9af32f04044671d153d8f3ab7f Mon Sep 17 00:00:00 2001 From: andream Date: Fri, 15 Dec 2023 15:37:38 +0100 Subject: [PATCH 01/14] add ir_sandwich and ir_sandwich_with_night_colorized_ir_clouds --- satpy/etc/composites/fci.yaml | 40 +++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/satpy/etc/composites/fci.yaml b/satpy/etc/composites/fci.yaml index 0f0e98f4e0..2da7b9f593 100644 --- a/satpy/etc/composites/fci.yaml +++ b/satpy/etc/composites/fci.yaml @@ -47,15 +47,6 @@ composites: modifiers: [ sunz_corrected ] standard_name: toa_bidirectional_reflectance - binary_cloud_mask: - # This will set all clear pixels to '0', all pixles with cloudy features (meteorological/dust/ash clouds) to '1' and - # missing/undefined pixels to 'nan'. This can be used for the the official EUMETSAT cloud mask product (CLM). - compositor: !!python/name:satpy.composites.CategoricalDataCompositor - prerequisites: - - name: 'cloud_state' - lut: [.nan, 0, 1, 1, 1, 1, 1, 1, 0, .nan] - standard_name: binary_cloud_mask - true_color: compositor: !!python/name:satpy.composites.SelfSharpenedRGB description: > @@ -180,3 +171,34 @@ composites: prerequisites: - geo_color_high_clouds - geo_color_background_with_low_clouds + + ir_sandwich: + compositor: !!python/name:satpy.composites.SandwichCompositor + standard_name: ir_sandwich + prerequisites: + - name: 'vis_06' + modifiers: [ sunz_corrected ] + - name: colorized_ir_clouds + + colorized_ir_clouds: + compositor: !!python/name:satpy.composites.SingleBandCompositor + prerequisites: + - name: 'ir_105' + standard_name: colorized_ir_clouds + + ir_sandwich_with_night_colorized_ir_clouds: + compositor: !!python/name:satpy.composites.DayNightCompositor + standard_name: fci_day_night_blend + lim_low: 73 + lim_high: 82 + prerequisites: + - ir_sandwich + - colorized_ir_clouds + binary_cloud_mask: + # This will set all clear pixels to '0', all pixles with cloudy features (meteorological/dust/ash clouds) to '1' and + # missing/undefined pixels to 'nan'. This can be used for the the official EUMETSAT cloud mask product (CLM). + compositor: !!python/name:satpy.composites.CategoricalDataCompositor + prerequisites: + - name: 'cloud_state' + lut: [ .nan, 0, 1, 1, 1, 1, 1, 1, 0, .nan ] + standard_name: binary_cloud_mask From 4f3eb61678199b0f1273eac0fe2f1fef9d352813 Mon Sep 17 00:00:00 2001 From: andream Date: Fri, 15 Dec 2023 15:38:27 +0100 Subject: [PATCH 02/14] fix comment typos --- satpy/etc/composites/fci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/satpy/etc/composites/fci.yaml b/satpy/etc/composites/fci.yaml index 2da7b9f593..aae4de313d 100644 --- a/satpy/etc/composites/fci.yaml +++ b/satpy/etc/composites/fci.yaml @@ -195,8 +195,8 @@ composites: - ir_sandwich - colorized_ir_clouds binary_cloud_mask: - # This will set all clear pixels to '0', all pixles with cloudy features (meteorological/dust/ash clouds) to '1' and - # missing/undefined pixels to 'nan'. This can be used for the the official EUMETSAT cloud mask product (CLM). + # This will set all clear pixels to '0', all pixels with cloudy features (meteorological/dust/ash clouds) to '1' and + # missing/undefined pixels to 'nan'. This can be used for the official EUMETSAT cloud mask product (CLM). compositor: !!python/name:satpy.composites.CategoricalDataCompositor prerequisites: - name: 'cloud_state' From 7a15b6d220f2a563818268f6fdc7ccb956a8a07a Mon Sep 17 00:00:00 2001 From: andream Date: Fri, 15 Dec 2023 15:47:30 +0100 Subject: [PATCH 03/14] add cloud_type and cloud_phase --- satpy/etc/composites/fci.yaml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/satpy/etc/composites/fci.yaml b/satpy/etc/composites/fci.yaml index aae4de313d..5fa8997731 100644 --- a/satpy/etc/composites/fci.yaml +++ b/satpy/etc/composites/fci.yaml @@ -194,6 +194,39 @@ composites: prerequisites: - ir_sandwich - colorized_ir_clouds + + cloud_type: + description: > + Equal to cimss_cloud_type, but with additional sunz_reducer modifier to avoid saturation at the terminator. + references: + EUMETRAIN Quick Guide: https://resources.eumetrain.org/rgb_quick_guides/quick_guides/CloudTypeRGB.pdf + Recipe: https://resources.eumetrain.org/RGBguide/recipes/RGB_recipes.pdf + compositor: !!python/name:satpy.composites.GenericCompositor + prerequisites: + - name: nir_13 + modifiers: [ sunz_corrected, sunz_reduced ] + - name: vis_06 + modifiers: [ sunz_corrected, sunz_reduced ] + - name: nir_16 + modifiers: [ sunz_corrected, sunz_reduced ] + standard_name: cimss_cloud_type + + cloud_phase: + description: > + Equal to cloud_phase, but with additional sunz_reducer modifier to avoid saturation at the terminator. + references: + EUMETRAIN Quick Guide: https://resources.eumetrain.org/rgb_quick_guides/quick_guides/CloudPhaseRGB.pdf + Recipe: https://resources.eumetrain.org/RGBguide/recipes/RGB_recipes.pdf + compositor: !!python/name:satpy.composites.GenericCompositor + prerequisites: + - name: nir_16 + modifiers: [sunz_corrected, sunz_reduced] + - name: nir_22 + modifiers: [sunz_corrected, sunz_reduced] + - name: vis_06 + modifiers: [sunz_corrected, rayleigh_corrected, sunz_reduced] + standard_name: cloud_phase + binary_cloud_mask: # This will set all clear pixels to '0', all pixels with cloudy features (meteorological/dust/ash clouds) to '1' and # missing/undefined pixels to 'nan'. This can be used for the official EUMETSAT cloud mask product (CLM). From 5c4305a0d854389c29eb26e531385a2104a8568e Mon Sep 17 00:00:00 2001 From: andream Date: Fri, 12 Apr 2024 15:54:23 +0200 Subject: [PATCH 04/14] add true color with night layer --- satpy/etc/composites/fci.yaml | 39 +++++++++++++++++++++++++-------- satpy/etc/enhancements/fci.yaml | 19 ++++++++++++++++ 2 files changed, 49 insertions(+), 9 deletions(-) create mode 100644 satpy/etc/enhancements/fci.yaml diff --git a/satpy/etc/composites/fci.yaml b/satpy/etc/composites/fci.yaml index 5fa8997731..6f0fcb0c9d 100644 --- a/satpy/etc/composites/fci.yaml +++ b/satpy/etc/composites/fci.yaml @@ -2,6 +2,16 @@ sensor_name: visir/fci composites: + binary_cloud_mask: + # This will set all clear pixels to '0', all pixels with cloudy features (meteorological/dust/ash clouds) to '1' and + # missing/undefined pixels to 'nan'. This can be used for the official EUMETSAT cloud mask product (CLM). + compositor: !!python/name:satpy.composites.CategoricalDataCompositor + prerequisites: + - name: 'cloud_state' + lut: [ .nan, 0, 1, 1, 1, 1, 1, 1, 0, .nan ] + standard_name: binary_cloud_mask + +# Green corrections ndvi_hybrid_green: description: > The FCI green band at 0.51 µm deliberately misses the chlorophyll band, such that @@ -47,6 +57,7 @@ composites: modifiers: [ sunz_corrected ] standard_name: toa_bidirectional_reflectance +# True Color true_color: compositor: !!python/name:satpy.composites.SelfSharpenedRGB description: > @@ -85,6 +96,17 @@ composites: - name: vis_04 standard_name: true_color_raw + true_color_with_night_ir105: + description: > + True Color during daytime, and a simple IR105 layer during nighttime. + compositor: !!python/name:satpy.composites.DayNightCompositor + standard_name: fci_day_night_blend + lim_low: 73 + lim_high: 82 + prerequisites: + - true_color + - night_ir105 + true_color_reproduction: # JMA True Color Reproduction complete composite with corrected and uncorrected blend. # http://www.jma.go.jp/jma/jma-eng/satellite/introduction/TCR.html @@ -116,7 +138,14 @@ composites: - name: vis_04 standard_name: true_color_reproduction_color_stretch - # GeoColor +# Night Layers + night_ir105: + compositor: !!python/name:satpy.composites.SingleBandCompositor + prerequisites: + - name: ir_105 + standard_name: night_ir105 + +# GeoColor geo_color: compositor: !!python/name:satpy.composites.DayNightCompositor description: > @@ -227,11 +256,3 @@ composites: modifiers: [sunz_corrected, rayleigh_corrected, sunz_reduced] standard_name: cloud_phase - binary_cloud_mask: - # This will set all clear pixels to '0', all pixels with cloudy features (meteorological/dust/ash clouds) to '1' and - # missing/undefined pixels to 'nan'. This can be used for the official EUMETSAT cloud mask product (CLM). - compositor: !!python/name:satpy.composites.CategoricalDataCompositor - prerequisites: - - name: 'cloud_state' - lut: [ .nan, 0, 1, 1, 1, 1, 1, 1, 0, .nan ] - standard_name: binary_cloud_mask diff --git a/satpy/etc/enhancements/fci.yaml b/satpy/etc/enhancements/fci.yaml new file mode 100644 index 0000000000..d03eb89940 --- /dev/null +++ b/satpy/etc/enhancements/fci.yaml @@ -0,0 +1,19 @@ +enhancements: + fci_day_night_blend: + standard_name: fci_day_night_blend + operations: + - name: stretch + method: !!python/name:satpy.enhancements.stretch + kwargs: + stretch: crude + min_stretch: [ 0,0,0 ] + max_stretch: [ 1,1,1 ] + + night_ir105: + standard_name: night_ir105 + operations: + - name: colorize + method: !!python/name:satpy.enhancements.colorize + kwargs: + palettes: + - { colors: greys, min_value: 190, max_value: 295 } \ No newline at end of file From 741ea5cb0198f9e92c2e8436ebbcdba0883555b8 Mon Sep 17 00:00:00 2001 From: andream Date: Fri, 12 Apr 2024 16:46:59 +0200 Subject: [PATCH 05/14] add night_ir --- satpy/etc/composites/fci.yaml | 58 +++++++++++++++++++++++++++++++---- 1 file changed, 52 insertions(+), 6 deletions(-) diff --git a/satpy/etc/composites/fci.yaml b/satpy/etc/composites/fci.yaml index 6f0fcb0c9d..68279a6b8c 100644 --- a/satpy/etc/composites/fci.yaml +++ b/satpy/etc/composites/fci.yaml @@ -2,6 +2,7 @@ sensor_name: visir/fci composites: +### L2 binary_cloud_mask: # This will set all clear pixels to '0', all pixels with cloudy features (meteorological/dust/ash clouds) to '1' and # missing/undefined pixels to 'nan'. This can be used for the official EUMETSAT cloud mask product (CLM). @@ -11,7 +12,7 @@ composites: lut: [ .nan, 0, 1, 1, 1, 1, 1, 1, 0, .nan ] standard_name: binary_cloud_mask -# Green corrections +### Green Corrections ndvi_hybrid_green: description: > The FCI green band at 0.51 µm deliberately misses the chlorophyll band, such that @@ -57,7 +58,7 @@ composites: modifiers: [ sunz_corrected ] standard_name: toa_bidirectional_reflectance -# True Color +### True Color true_color: compositor: !!python/name:satpy.composites.SelfSharpenedRGB description: > @@ -107,6 +108,28 @@ composites: - true_color - night_ir105 + true_color_with_night_ir: + description: > + True Color during daytime, and a simple IR105 layer during nighttime. + compositor: !!python/name:satpy.composites.DayNightCompositor + standard_name: fci_day_night_blend + lim_low: 73 + lim_high: 82 + prerequisites: + - true_color + - night_ir_with_background + - + true_color_with_night_ir_hires: + description: > + True Color during daytime, and a simple IR105 layer during nighttime. + compositor: !!python/name:satpy.composites.DayNightCompositor + standard_name: fci_day_night_blend + lim_low: 73 + lim_high: 82 + prerequisites: + - true_color + - night_ir_with_background + true_color_reproduction: # JMA True Color Reproduction complete composite with corrected and uncorrected blend. # http://www.jma.go.jp/jma/jma-eng/satellite/introduction/TCR.html @@ -138,14 +161,37 @@ composites: - name: vis_04 standard_name: true_color_reproduction_color_stretch -# Night Layers +### Night Layers night_ir105: compositor: !!python/name:satpy.composites.SingleBandCompositor prerequisites: - name: ir_105 standard_name: night_ir105 -# GeoColor + night_ir_alpha: + compositor: !!python/name:satpy.composites.GenericCompositor + standard_name: night_ir_alpha + prerequisites: + - name: ir_38 + - name: ir_105 + - name: ir_123 + - name: ir_105 + + night_ir_with_background: + compositor: !!python/name:satpy.composites.BackgroundCompositor + standard_name: night_ir_with_background + prerequisites: + - night_ir_alpha + - _night_background + + night_ir_with_background_hires: + compositor: !!python/name:satpy.composites.BackgroundCompositor + standard_name: night_ir_with_background + prerequisites: + - night_ir_alpha + - _night_background_hires + +### GeoColor geo_color: compositor: !!python/name:satpy.composites.DayNightCompositor description: > @@ -162,7 +208,6 @@ composites: - true_color - geo_color_night - # GeoColor Night-time geo_color_high_clouds: standard_name: geo_color_high_clouds compositor: !!python/name:satpy.composites.HighCloudCompositor @@ -201,6 +246,7 @@ composites: - geo_color_high_clouds - geo_color_background_with_low_clouds +### IR-Sandwich ir_sandwich: compositor: !!python/name:satpy.composites.SandwichCompositor standard_name: ir_sandwich @@ -224,6 +270,7 @@ composites: - ir_sandwich - colorized_ir_clouds +### other RGBs cloud_type: description: > Equal to cimss_cloud_type, but with additional sunz_reducer modifier to avoid saturation at the terminator. @@ -255,4 +302,3 @@ composites: - name: vis_06 modifiers: [sunz_corrected, rayleigh_corrected, sunz_reduced] standard_name: cloud_phase - From 0efd6a42c99462832a389020df93b884a2884d4c Mon Sep 17 00:00:00 2001 From: andream Date: Fri, 12 Apr 2024 17:34:22 +0200 Subject: [PATCH 06/14] fix extra line --- satpy/etc/composites/fci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/satpy/etc/composites/fci.yaml b/satpy/etc/composites/fci.yaml index 68279a6b8c..574af1cfaf 100644 --- a/satpy/etc/composites/fci.yaml +++ b/satpy/etc/composites/fci.yaml @@ -118,7 +118,7 @@ composites: prerequisites: - true_color - night_ir_with_background - - + true_color_with_night_ir_hires: description: > True Color during daytime, and a simple IR105 layer during nighttime. From a0138b1633e20bf8273812603d8d6c90ac4e8d60 Mon Sep 17 00:00:00 2001 From: andream Date: Fri, 12 Apr 2024 19:14:53 +0200 Subject: [PATCH 07/14] add fire_temperatures --- satpy/etc/composites/fci.yaml | 133 ++++++++++++++++++++++++-------- satpy/etc/enhancements/fci.yaml | 43 ++++++++++- 2 files changed, 142 insertions(+), 34 deletions(-) diff --git a/satpy/etc/composites/fci.yaml b/satpy/etc/composites/fci.yaml index 574af1cfaf..741548ca7f 100644 --- a/satpy/etc/composites/fci.yaml +++ b/satpy/etc/composites/fci.yaml @@ -12,6 +12,36 @@ composites: lut: [ .nan, 0, 1, 1, 1, 1, 1, 1, 0, .nan ] standard_name: binary_cloud_mask +### Night Layers + night_ir105: + compositor: !!python/name:satpy.composites.SingleBandCompositor + prerequisites: + - name: ir_105 + standard_name: night_ir105 + + night_ir_alpha: + compositor: !!python/name:satpy.composites.GenericCompositor + standard_name: night_ir_alpha + prerequisites: + - name: ir_38 + - name: ir_105 + - name: ir_123 + - name: ir_105 + + night_ir_with_background: + compositor: !!python/name:satpy.composites.BackgroundCompositor + standard_name: night_ir_with_background + prerequisites: + - night_ir_alpha + - _night_background + + night_ir_with_background_hires: + compositor: !!python/name:satpy.composites.BackgroundCompositor + standard_name: night_ir_with_background + prerequisites: + - night_ir_alpha + - _night_background_hires + ### Green Corrections ndvi_hybrid_green: description: > @@ -128,7 +158,7 @@ composites: lim_high: 82 prerequisites: - true_color - - night_ir_with_background + - night_ir_with_background_hires true_color_reproduction: # JMA True Color Reproduction complete composite with corrected and uncorrected blend. @@ -161,36 +191,6 @@ composites: - name: vis_04 standard_name: true_color_reproduction_color_stretch -### Night Layers - night_ir105: - compositor: !!python/name:satpy.composites.SingleBandCompositor - prerequisites: - - name: ir_105 - standard_name: night_ir105 - - night_ir_alpha: - compositor: !!python/name:satpy.composites.GenericCompositor - standard_name: night_ir_alpha - prerequisites: - - name: ir_38 - - name: ir_105 - - name: ir_123 - - name: ir_105 - - night_ir_with_background: - compositor: !!python/name:satpy.composites.BackgroundCompositor - standard_name: night_ir_with_background - prerequisites: - - night_ir_alpha - - _night_background - - night_ir_with_background_hires: - compositor: !!python/name:satpy.composites.BackgroundCompositor - standard_name: night_ir_with_background - prerequisites: - - night_ir_alpha - - _night_background_hires - ### GeoColor geo_color: compositor: !!python/name:satpy.composites.DayNightCompositor @@ -273,7 +273,7 @@ composites: ### other RGBs cloud_type: description: > - Equal to cimss_cloud_type, but with additional sunz_reducer modifier to avoid saturation at the terminator. + Equal to cimss_cloud_type recipe, but with additional sunz_reducer modifier to avoid saturation at the terminator. references: EUMETRAIN Quick Guide: https://resources.eumetrain.org/rgb_quick_guides/quick_guides/CloudTypeRGB.pdf Recipe: https://resources.eumetrain.org/RGBguide/recipes/RGB_recipes.pdf @@ -287,9 +287,18 @@ composites: modifiers: [ sunz_corrected, sunz_reduced ] standard_name: cimss_cloud_type + cloud_type_with_night_ir1ß5: + compositor: !!python/name:satpy.composites.DayNightCompositor + standard_name: fci_day_night_blend + lim_low: 73 + lim_high: 82 + prerequisites: + - cloud_type + - night_ir105 + cloud_phase: description: > - Equal to cloud_phase, but with additional sunz_reducer modifier to avoid saturation at the terminator. + Equal to cloud_phase recipe, but with additional sunz_reducer modifier to avoid saturation at the terminator. references: EUMETRAIN Quick Guide: https://resources.eumetrain.org/rgb_quick_guides/quick_guides/CloudPhaseRGB.pdf Recipe: https://resources.eumetrain.org/RGBguide/recipes/RGB_recipes.pdf @@ -302,3 +311,61 @@ composites: - name: vis_06 modifiers: [sunz_corrected, rayleigh_corrected, sunz_reduced] standard_name: cloud_phase + + cloud_phase_with_night_ir105: + compositor: !!python/name:satpy.composites.DayNightCompositor + standard_name: fci_day_night_blend + lim_low: 73 + lim_high: 82 + prerequisites: + - cloud_phase + - night_ir105 + + fire_temperature: + standard_name: fire_temperature_fci + compositor: !!python/name:satpy.composites.GenericCompositor + description: > + The fire temperature RGB highlights intense fires and differentiate these + from low temperature fires. Small low temperature fires will only show up at 3.9 μm and + appear red. With the increasing intensity and temperature the fires will also be detected + by the 2.2 μm and 1.6 μm bands resulting very intense fires in white. + Note: the EUM, CIRA and AWIPS recipes are identical (apart from neglectable 0.15K difference due to + unprecise C->K conversion) + references: + Recipe: https://resources.eumetrain.org/RGBguide/recipes/RGB_recipes.pdf + Cira Quick Guide: https://rammb.cira.colostate.edu/training/visit/quick_guides/Fire_Temperature_RGB.pdf + Eumetrain Quick Guide: https://resources.eumetrain.org/rgb_quick_guides/quick_guides/FireTemperatureRGB.pdf + prerequisites: + - name: ir_38 + - name: nir_22 + - name: nir_16 + + fire_temperature_38refl: + standard_name: fire_temperature_fci_38refl + compositor: !!python/name:satpy.composites.GenericCompositor + description: > + Same as fire_temperature, but uses only reflective part of 3.8 + references: + discussion: See https://github.com/pytroll/satpy/pull/728 + prerequisites: + - name: ir_38 + modifiers: [nir_reflectance] + - name: nir_22 + modifiers: [sunz_corrected] + - name: nir_16 + modifiers: [sunz_corrected] + + fire_temperature_rad: + standard_name: fire_temperature_fci_rad + compositor: !!python/name:satpy.composites.GenericCompositor + description: > + Same as fire_temperature, but uses the channels in radiance units. This is the original VIIRS recipe. + references: + discussion: See https://github.com/pytroll/satpy/pull/728 + prerequisites: + - name: ir_38 + calibration: radiance + - name: nir_22 + calibration: radiance + - name: nir_16 + calibration: radiance \ No newline at end of file diff --git a/satpy/etc/enhancements/fci.yaml b/satpy/etc/enhancements/fci.yaml index d03eb89940..e36718689a 100644 --- a/satpy/etc/enhancements/fci.yaml +++ b/satpy/etc/enhancements/fci.yaml @@ -16,4 +16,45 @@ enhancements: method: !!python/name:satpy.enhancements.colorize kwargs: palettes: - - { colors: greys, min_value: 190, max_value: 295 } \ No newline at end of file + - { colors: greys, min_value: 190, max_value: 295 } + + fire_temperature_fci: + standard_name: fire_temperature_fci + operations: + - name: stretch + method: !!python/name:satpy.enhancements.stretch + kwargs: + stretch: crude + min_stretch: [273.15, 0.0, 0.0] + max_stretch: [333.15, 100.0, 75.0] + - name: gamma + method: !!python/name:satpy.enhancements.gamma + kwargs: + gamma: [0.4, 1, 1] + + fire_temperature_fci_38refl: + standard_name: fire_temperature_fci_38refl + operations: + - name: stretch + method: !!python/name:satpy.enhancements.stretch + kwargs: + stretch: crude + min_stretch: [0, 0.0, 0.0] + max_stretch: [50, 100.0, 75.0] + - name: gamma + method: !!python/name:satpy.enhancements.gamma + kwargs: + gamma: [1, 1, 1] + + fire_temperature_fci_rad: + standard_name: fire_temperature_fci_rad + operations: + - name: stretch + method: !!python/name:satpy.enhancements.stretch + kwargs: + stretch: crude + min_stretch: [0, 0, 0] + max_stretch: [3.5, 35., 85.] + - name: gamma + method: !!python/name:satpy.enhancements.gamma + kwargs: {gamma: [1.0, 1.0, 1.0]} \ No newline at end of file From 39f732696fc0a9bb37b6e32acbe9383101de14fd Mon Sep 17 00:00:00 2001 From: andream Date: Mon, 15 Apr 2024 11:52:57 +0200 Subject: [PATCH 08/14] convert fire temperature stretch limits to wavelength units --- satpy/etc/enhancements/fci.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/satpy/etc/enhancements/fci.yaml b/satpy/etc/enhancements/fci.yaml index e36718689a..0775c83a76 100644 --- a/satpy/etc/enhancements/fci.yaml +++ b/satpy/etc/enhancements/fci.yaml @@ -49,12 +49,14 @@ enhancements: fire_temperature_fci_rad: standard_name: fire_temperature_fci_rad operations: + # note: the stretch parameters have been converted to wavelength units + # compared to e.g. the VIIRS recipe - name: stretch method: !!python/name:satpy.enhancements.stretch kwargs: stretch: crude min_stretch: [0, 0, 0] - max_stretch: [3.5, 35., 85.] + max_stretch: [5.1, 17.7, 22.0] - name: gamma method: !!python/name:satpy.enhancements.gamma kwargs: {gamma: [1.0, 1.0, 1.0]} \ No newline at end of file From 1342014f21890d25919f60cc40661fe9fcc1f7e3 Mon Sep 17 00:00:00 2001 From: andream Date: Mon, 15 Apr 2024 14:42:23 +0200 Subject: [PATCH 09/14] add 24h_microphysics --- satpy/etc/composites/visir.yaml | 17 +++++++++++++++++ satpy/etc/enhancements/generic.yaml | 16 ++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/satpy/etc/composites/visir.yaml b/satpy/etc/composites/visir.yaml index d9798057a2..ffe3be4183 100644 --- a/satpy/etc/composites/visir.yaml +++ b/satpy/etc/composites/visir.yaml @@ -462,6 +462,23 @@ composites: - 10.8 standard_name: night_microphysics + 24h_microphysics: + references: + EUMETRAIN Quick Guide: https://eumetrain.org/sites/default/files/2021-05/24MicroRGB.pdf + Recipe: https://resources.eumetrain.org/RGBguide/recipes/RGB_recipes.pdf + compositor: !!python/name:satpy.composites.GenericCompositor + prerequisites: + - compositor: !!python/name:satpy.composites.DifferenceCompositor + prerequisites: + - 12.0 + - 10.8 + - compositor: !!python/name:satpy.composites.DifferenceCompositor + prerequisites: + - 10.8 + - 8.7 + - 10.8 + standard_name: 24h_microphysics + ir108_3d: compositor: !!python/name:satpy.composites.GenericCompositor standard_name: ir108_3d diff --git a/satpy/etc/enhancements/generic.yaml b/satpy/etc/enhancements/generic.yaml index b3ec45501c..cea87de760 100644 --- a/satpy/etc/enhancements/generic.yaml +++ b/satpy/etc/enhancements/generic.yaml @@ -929,6 +929,7 @@ enhancements: [252, 254, 254], [253, 254, 254], [253, 254, 254], [ 253, 254, 254], [253, 254, 254], [254, 254, 254], [254, 254, 254], [254, 254, 254], [254, 254, 254], [255, 255, 255]] + night_microphysics_default: standard_name: night_microphysics operations: @@ -938,6 +939,21 @@ enhancements: stretch: crude min_stretch: [-4, 0, 243] max_stretch: [2, 10, 293] + + 24h_microphysics_default: + standard_name: 24h_microphysics + operations: + - name: stretch + method: !!python/name:satpy.enhancements.stretch + kwargs: + stretch: crude + min_stretch: [-4, 0, 248] + max_stretch: [2, 6, 303] + - name: gamma + method: !!python/name:satpy.enhancements.gamma + kwargs: + gamma: [ 1, 1.2, 1 ] + ir_overview_default: standard_name: ir_overview operations: From e716b814619cdc182265ec41b334902dbf7cca5e Mon Sep 17 00:00:00 2001 From: andream Date: Mon, 15 Apr 2024 15:19:44 +0200 Subject: [PATCH 10/14] apply fix to L2 as well and trigger the filter only if processing_time is not None --- satpy/etc/composites/fci.yaml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/satpy/etc/composites/fci.yaml b/satpy/etc/composites/fci.yaml index 741548ca7f..5dd440b900 100644 --- a/satpy/etc/composites/fci.yaml +++ b/satpy/etc/composites/fci.yaml @@ -1,6 +1,5 @@ sensor_name: visir/fci - composites: ### L2 binary_cloud_mask: @@ -329,7 +328,7 @@ composites: from low temperature fires. Small low temperature fires will only show up at 3.9 μm and appear red. With the increasing intensity and temperature the fires will also be detected by the 2.2 μm and 1.6 μm bands resulting very intense fires in white. - Note: the EUM, CIRA and AWIPS recipes are identical (apart from neglectable 0.15K difference due to + Note: the EUM, CIRA and AWIPS recipes are identical (apart from neglectable 0.15K difference due to unprecise C->K conversion) references: Recipe: https://resources.eumetrain.org/RGBguide/recipes/RGB_recipes.pdf @@ -368,4 +367,18 @@ composites: - name: nir_22 calibration: radiance - name: nir_16 - calibration: radiance \ No newline at end of file + calibration: radiance + + snow: + references: + EUMETRAIN Quick Guide: https://resources.eumetrain.org/rgb_quick_guides/quick_guides/SnowRGB.pdf + Recipe: https://resources.eumetrain.org/RGBguide/recipes/RGB_recipes.pdf + compositor: !!python/name:satpy.composites.GenericCompositor + prerequisites: + - name: vis_08 + modifiers: [sunz_corrected] + - name: nir_16 + modifiers: [sunz_corrected] + - name: ir_38 + modifiers: [nir_reflectance] + standard_name: snow From c8d9c18dc7f26ee9c001f32d949ebf31c97a77ab Mon Sep 17 00:00:00 2001 From: andream Date: Mon, 15 Apr 2024 15:52:28 +0200 Subject: [PATCH 11/14] update lim low and high for daynight blend --- satpy/etc/composites/fci.yaml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/satpy/etc/composites/fci.yaml b/satpy/etc/composites/fci.yaml index 5dd440b900..bc46b4101c 100644 --- a/satpy/etc/composites/fci.yaml +++ b/satpy/etc/composites/fci.yaml @@ -131,8 +131,8 @@ composites: True Color during daytime, and a simple IR105 layer during nighttime. compositor: !!python/name:satpy.composites.DayNightCompositor standard_name: fci_day_night_blend - lim_low: 73 - lim_high: 82 + lim_low: 78 + lim_high: 88 prerequisites: - true_color - night_ir105 @@ -142,8 +142,8 @@ composites: True Color during daytime, and a simple IR105 layer during nighttime. compositor: !!python/name:satpy.composites.DayNightCompositor standard_name: fci_day_night_blend - lim_low: 73 - lim_high: 82 + lim_low: 78 + lim_high: 88 prerequisites: - true_color - night_ir_with_background @@ -153,8 +153,8 @@ composites: True Color during daytime, and a simple IR105 layer during nighttime. compositor: !!python/name:satpy.composites.DayNightCompositor standard_name: fci_day_night_blend - lim_low: 73 - lim_high: 82 + lim_low: 78 + lim_high: 88 prerequisites: - true_color - night_ir_with_background_hires @@ -164,8 +164,8 @@ composites: # http://www.jma.go.jp/jma/jma-eng/satellite/introduction/TCR.html compositor: !!python/name:satpy.composites.DayNightCompositor standard_name: true_color_reproduction - lim_low: 73. - lim_high: 85. + lim_low: 73 + lim_high: 85 prerequisites: - true_color_reproduction_corr - true_color_reproduction_uncorr @@ -263,8 +263,8 @@ composites: ir_sandwich_with_night_colorized_ir_clouds: compositor: !!python/name:satpy.composites.DayNightCompositor standard_name: fci_day_night_blend - lim_low: 73 - lim_high: 82 + lim_low: 78 + lim_high: 88 prerequisites: - ir_sandwich - colorized_ir_clouds @@ -289,8 +289,8 @@ composites: cloud_type_with_night_ir1ß5: compositor: !!python/name:satpy.composites.DayNightCompositor standard_name: fci_day_night_blend - lim_low: 73 - lim_high: 82 + lim_low: 78 + lim_high: 88 prerequisites: - cloud_type - night_ir105 @@ -314,8 +314,8 @@ composites: cloud_phase_with_night_ir105: compositor: !!python/name:satpy.composites.DayNightCompositor standard_name: fci_day_night_blend - lim_low: 73 - lim_high: 82 + lim_low: 78 + lim_high: 88 prerequisites: - cloud_phase - night_ir105 From 02ccd2eeaa0ca13a59ffa726ca4c543872c97b29 Mon Sep 17 00:00:00 2001 From: andream Date: Mon, 15 Apr 2024 15:53:00 +0200 Subject: [PATCH 12/14] add final yaml line --- satpy/etc/enhancements/fci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/satpy/etc/enhancements/fci.yaml b/satpy/etc/enhancements/fci.yaml index 0775c83a76..05ce0f9e53 100644 --- a/satpy/etc/enhancements/fci.yaml +++ b/satpy/etc/enhancements/fci.yaml @@ -59,4 +59,4 @@ enhancements: max_stretch: [5.1, 17.7, 22.0] - name: gamma method: !!python/name:satpy.enhancements.gamma - kwargs: {gamma: [1.0, 1.0, 1.0]} \ No newline at end of file + kwargs: {gamma: [1.0, 1.0, 1.0]} From ea67c07e3b7b1586755931d7e63059821724fd29 Mon Sep 17 00:00:00 2001 From: andream Date: Mon, 15 Apr 2024 15:57:43 +0200 Subject: [PATCH 13/14] fix typo in cloud_type_with_night_ir105 --- satpy/etc/composites/fci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/satpy/etc/composites/fci.yaml b/satpy/etc/composites/fci.yaml index bc46b4101c..6850bb8f07 100644 --- a/satpy/etc/composites/fci.yaml +++ b/satpy/etc/composites/fci.yaml @@ -286,7 +286,7 @@ composites: modifiers: [ sunz_corrected, sunz_reduced ] standard_name: cimss_cloud_type - cloud_type_with_night_ir1ß5: + cloud_type_with_night_ir105: compositor: !!python/name:satpy.composites.DayNightCompositor standard_name: fci_day_night_blend lim_low: 78 From 20fd4c134b1c137322bb9f19c841a30ed01f01da Mon Sep 17 00:00:00 2001 From: andream Date: Mon, 15 Apr 2024 16:26:26 +0200 Subject: [PATCH 14/14] add descriptions to night cloud RGBs --- satpy/etc/composites/fci.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/satpy/etc/composites/fci.yaml b/satpy/etc/composites/fci.yaml index 6850bb8f07..963a5a198f 100644 --- a/satpy/etc/composites/fci.yaml +++ b/satpy/etc/composites/fci.yaml @@ -287,6 +287,8 @@ composites: standard_name: cimss_cloud_type cloud_type_with_night_ir105: + description: > + Combines the cloud_type during daytime with the simple 10.5µm night_ir105 layer during nighttime compositor: !!python/name:satpy.composites.DayNightCompositor standard_name: fci_day_night_blend lim_low: 78 @@ -312,6 +314,8 @@ composites: standard_name: cloud_phase cloud_phase_with_night_ir105: + description: > + Combines the cloud_phase during daytime with the simple 10.5µm night_ir105 layer during nighttime compositor: !!python/name:satpy.composites.DayNightCompositor standard_name: fci_day_night_blend lim_low: 78