satpy.readers.mersi_l1b module
Reader for the FY-3D MERSI-2 L1B file format.
The files for this reader are HDF5 and come in four varieties; band data and geolocation data, both at 250m and 1000m resolution.
This reader was tested on FY-3A/B/C MERSI-1, FY-3D MERSI-2, FY-3E MERSI-LL and FY-3G MERSI-RM data, but should work on future platforms as well assuming no file format changes.
- class satpy.readers.mersi_l1b.MERSIL1B(filename, filename_info, filetype_info)[source]
Bases:
HDF5FileHandler
MERSI-1/MERSI-2/MERSI-LL/MERSI-RM L1B file reader.
Initialize file handler.
- _get_bt_dataset(data, calibration_index, wave_number)[source]
Get the dataset as brightness temperature.
Apparently we don’t use these calibration factors for Rad -> BT:
coeffs = self._get_coefficients(ds_info['calibration_key'], calibration_index) # coefficients are per-scan, we need to repeat the values for a # clean alignment coeffs = np.repeat(coeffs, data.shape[0] // coeffs.shape[1], axis=1) coeffs = coeffs.rename({ coeffs.dims[0]: 'coefficients', coeffs.dims[1]: 'y' }) # match data dims data = coeffs[0] + coeffs[1] * data + coeffs[2] * data**2 + coeffs[3] * data**3
- _get_coefficients(cal_key, cal_index)[source]
Get VIS calibration coeffs from calibration datasets.
- _get_coefficients_mersi1(cal_index)[source]
Get VIS calibration coeffs from attributes. Only for MERSI-1 on FY-3A/B.
- _get_dn_corrections(data, band_index, dataset_id, attrs)[source]
Use slope and intercept to get DN corrections.
- _get_rad_dataset(data, ds_info, datset_id)[source]
Get the dataset as radiance.
For MERSI-2/RM VIS bands, this could be calculated by:
Rad = Reflectance / 100 * E0 / pi
For MERSI-2, E0 is in the attribute “Solar_Irradiance”. For MERSI-RM, E0 is in the calibration dataset “Solar_Irradiance”. However we can’t find the way to retrieve this value from MERSI-1.
For MERSI-LL VIS band, it has already been stored in DN values. After applying slope and intercept, we just get it. And Same way for IR bands, no matter which sensor it is.
- _get_ref_dataset(data, ds_info)[source]
Get the dataset as reflectance.
For MERSI-1/2/RM, coefficients will be as:
Reflectance = coeffs_1 + coeffs_2 * DN + coeffs_3 * DN ** 2
For MERSI-LL, the DN value is in radiance and the reflectance could be calculated by:
Reflectance = Rad * pi / E0 * 100
Here E0 represents the solar irradiance of the specific band and is the coefficient.
- _mask_data(data, dataset_id, attrs)[source]
Mask the data using fill_value and valid_range attributes.
- property end_time
Time for final observation.
- property platform_name
Platform name.
- property sensor_name
Map sensor name to Satpy ‘standard’ sensor names.
- property start_time
Time for first observation.