Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Composite integration for High Resolution FCI Level 1c data #3076

Open
ustropics opened this issue Feb 26, 2025 · 3 comments
Open

Composite integration for High Resolution FCI Level 1c data #3076

ustropics opened this issue Feb 26, 2025 · 3 comments

Comments

@ustropics
Copy link

If we get the normal resolution image data from MTG-I1 (which caps the visible spectral channel's spatial resolution at 1km), most of the composites are available. However, if we get the high resolution data (which allows for 500 m/pixel resolution across all visible bands), we are limited with the available composites:

['colorized_ir_clouds', 'geo_color_background_with_low_clouds', 'geo_color_high_clouds', 'geo_color_low_clouds', 'geo_color_night', 'ir108_3d', 'ir_cloud_day', 'ir_sandwich', 'ir_sandwich_with_night_colorized_ir_clouds', 'night_ir105']

Minimum code for testing this after extracting the NC files from the datastore links above:

files = glob('data/*.nc')
scn = Scene(reader='fci_l1c_nc', filenames=files)
print(scn.available_composite_names())
@strandgren
Copy link
Collaborator

Hi @ustropics, the HRFI data is only available for four channels. As stated on the page you referred to:

The high-resolution HRFI dataset has 4 spectral channels at VIS 0.6 µm, NIR 2.2 µm, IR 3.8 µm and IR 13.3 µm with a spatial resolution of 0.5 km for visible and near-infrared channels and 1 km for infrared channels.

Hence you are very limited when using HRFI data alone. If you load FDHSI and HRFI data together you'll get each channel at the highest possible resolution, but 6 out of the 8 VIS/NIR bands will still be at the nominal 1km resolution.

@ustropics
Copy link
Author

ustropics commented Feb 27, 2025

@strandgren Can't believe I overlooked that, thanks so much!

With this data format, would you happen to know how to force upsampling of the blue and green bands to match the resolution of the red band (like we can easily do with ABI/AHI instruments)? Do I need to explicitly call the sharpenRGB function? If I'm understanding this format correctly, it's similar to the segmentation that Himawari does, but we have 41 horizontal swaths of the FCI instrument (hence 41 files).

I've extracted both the high-resolution and normal data files (total of 82 files), used glob to bring them into satpy with the appropriate reader, but it defaults to 1km resolution (instead of upsampling to 500m) when using the true color corrected composites.

@ustropics ustropics reopened this Feb 27, 2025
@strandgren
Copy link
Collaborator

@ustropics You have to resample the data onto a common grid. The easiest solution is to do
scn_hires = scn.resample(resampler='native') , which will resample the data onto the highest resolution grid. Please note that native resampler simply upscales the lower resolution data to the higher resolution grid and no sharpening or interpolation is applied. For this you can use e.g. the gradient_search resampler (bi-linear by default) or if you're generating RGB composites, you can also use the SelfSharpenedRGB compositor like this to sharpen the lower resolution channels based on the variance in the higher resolution channel. We have been experimenting with this for FCI, but so far without very good results.

  ### True Color
  true_color:
    compositor: !!python/name:satpy.composites.SelfSharpenedRGB
    description: >
      FCI true color composite.  The green band is simulated based on a combination of
      channels.  This simulation may change in future versions of Satpy.  See the description
      of the ndvi_hybrid_green composites for details.
    prerequisites:
      - name: vis_06
        modifiers: [sunz_corrected, rayleigh_corrected, sunz_reduced]
      - name: ndvi_hybrid_green
      - name: vis_04
        modifiers: [sunz_corrected, rayleigh_corrected, sunz_reduced]
    standard_name: true_color

P.S the FCI full disk imagery is split into 40 BODY files, the 41st TRAIL file contains some auxiliary data not needed in Satpy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants