satpy.readers.gms.gms5_vissr_l1b module
Reader for GMS-5 VISSR Level 1B data.
Introduction
The gms5_vissr_l1b
reader can decode, navigate and calibrate Level 1B data
from the Visible and Infrared Spin Scan Radiometer (VISSR) in VISSR
archive format. Corresponding platforms are GMS-5 (Japanese Geostationary
Meteorological Satellite) and GOES-09 (2003-2006 backup after MTSAT-1 launch
failure).
VISSR has four channels, each stored in a separate file:
VISSR_20020101_0031_IR1.A.IMG
VISSR_20020101_0031_IR2.A.IMG
VISSR_20020101_0031_IR3.A.IMG
VISSR_20020101_0031_VIS.A.IMG
This is how to read them with Satpy:
from satpy import Scene
import glob
filenames = glob.glob(""/data/VISSR*")
scene = Scene(filenames, reader="gms5-vissr_l1b")
scene.load(["VIS", "IR1"])
References:
Details about platform, instrument and data format can be found in the following references:
Compression
Gzip-compressed VISSR files can be decompressed on the fly using
FSFile
:
import fsspec
from satpy import Scene
from satpy.readers import FSFile
filename = "VISSR_19960217_2331_IR1.A.IMG.gz"
open_file = fsspec.open(filename, compression="gzip")
fs_file = FSFile(open_file)
scene = Scene([fs_file], reader="gms5-vissr_l1b")
scene.load(["IR1"])
Calibration
Sensor counts are calibrated by looking up reflectance/temperature values in the calibration tables included in each file. See section 2.2 in the VISSR user guide.
Space Pixels
VISSR produces data for pixels outside the Earth disk (i.e. atmospheric limb or
deep space pixels). By default, these pixels are masked out as they contain
data of limited or no value, but some applications do require these pixels.
To turn off masking, set mask_space=False
upon scene creation:
import satpy
import glob
filenames = glob.glob("VISSR*.IMG")
scene = satpy.Scene(filenames,
reader="gms5-vissr_l1b",
reader_kwargs={"mask_space": False})
scene.load(["VIS", "IR1])
Metadata
Dataset attributes include metadata such as time and orbital parameters, see Metadata.
Partial Scans
Between 2001 and 2003 VISSR also recorded partial scans of the northern hemisphere. On demand a special Typhoon schedule would be activated between 03:00 and 05:00 UTC.
- class satpy.readers.gms.gms5_vissr_l1b.AreaDefEstimator(coord_conv_params, metadata)[source]
Bases:
object
Estimate area definition for VISSR images.
Initialize the area definition estimator.
- Parameters:
coord_conv_params – Coordinate conversion parameters
metadata – VISSR file metadata
- full_disk_size = {'IR': 2366, 'VIS': 9464}
- class satpy.readers.gms.gms5_vissr_l1b.Calibrator(calib_table)[source]
Bases:
object
Calibrate VISSR data to reflectance or brightness temperature.
Reference: Section 2.2 in the VISSR User Guide.
Initialize the calibrator.
- Parameters:
calib_table – Calibration table
- class satpy.readers.gms.gms5_vissr_l1b.GMS5VISSRFileHandler(filename, filename_info, filetype_info, mask_space=True)[source]
Bases:
BaseFileHandler
File handler for GMS-5 VISSR data in VISSR archive format.
Initialize the file handler.
- Parameters:
filename – Name of file to be read
filename_info – Information obtained from filename
filetype_info – Information about file type
mask_space – Mask space pixels.
- static _concat_orbit_prediction(orb_pred_1, orb_pred_2)[source]
Concatenate orbit prediction data.
It is split over two image parameter blocks in the header.
- property _coord_conv
Get predictions of time-dependent navigation parameters.
Get static navigation parameters.
Note that, “central_line_number_of_vissr_frame” is different for each channel, even if their spatial resolution is identical. For example:
VIS: 5513.0 IR1: 1378.5 IR2: 1378.7 IR3: 1379.1001
- property _mode_block
- static _read_image_param(file_obj, param, channel_type)[source]
Read a single image parameter block from the header.
- property end_time
Nominal end time of the dataset.
- property start_time
Nominal start time of the dataset.
- class satpy.readers.gms.gms5_vissr_l1b.SpaceMasker(image_data, channel)[source]
Bases:
object
Mask pixels outside the earth disk.
Initialize the space masker.
- Parameters:
image_data – Image data
channel – Channel name
- _correct_vis_edges(edges)[source]
Correct VIS edges.
VIS data contains earth edges of IR channel. Compensate for that by scaling with a factor of 4 (1 IR pixel ~ 4 VIS pixels).
- _fill_value = -1
- satpy.readers.gms.gms5_vissr_l1b.get_earth_mask(shape, earth_edges, fill_value=-1)[source]
Get binary mask where 1/0 indicates earth/space.
- Parameters:
shape – Image shape
earth_edges – First and last earth pixel in each scanline
fill_value – Fill value for scanlines not intersecting the earth.