from satpy import Scene, find_files_and_readers
from satpy.resample import get_area_def
from datetime import datetime
We start by locating and specifying the AHI data to read:
files = find_files_and_readers(start_time=datetime(2015, 2, 7, 3, 0),
end_time=datetime(2015, 2, 7, 3, 10),
base_dir="/data/satellite/Himawari-8/HSD",
reader='ahi_hsd')
This example is loading the Himawari data in the Himawari Standard Data (HSD) format. But you can load HRIT formatted data as well with the same code, except specifying the adequate reader (ahi_hrit
) in the argument list above.
We create the scene object
scn = Scene(sensor='ahi', filenames=files)
Here we load the true_color
composite
rgbname = 'true_color'
scn.load([rgbname])
/home/a001673/.local/lib/python2.7/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`. from ._conv import register_converters as _register_converters
Beware that this step might need more than 10 GB memory available on the processing machine (depending on the number of cpu cores)
new_scn = scn.resample(scn.min_area(), resampler='native')
The above line lowers the resolution to the coarser channel. If you want instead to generate a full resolution image, use instead: scn.max_area()
in the resample call. This will however need quite a lot of resources.
new_scn.save_dataset(rgbname, filename='himawari_ahi_truecolor_{datetime}.png'.format(datetime=scn.start_time.strftime('%Y%m%d%H%M')))
Now let us define a map-projection and a sub area, and project the data on this area. We use Pyresample to define the area. This definition can also be put in the area.yaml configuration file
from pyresample.utils import get_area_def
area_id = 'japan'
x_size = 2407
y_size = 1655
area_extent = (-1203877.326193321, -754860.2505908236, 1203877.3261933187, 900373.6358697552)
projection = '+proj=laea +lat_0=37.5 +lon_0=137.5 +ellps=WGS84'
description = "Japan"
proj_id = 'laea_137.5_37.5'
areadef = get_area_def(area_id, description, proj_id, projection,x_size, y_size, area_extent)
local_scene = scn.resample(areadef)
local_scene.show(rgbname)
/home/a001673/.local/lib/python2.7/site-packages/dask/local.py:271: RuntimeWarning: invalid value encountered in greater return func(*args2) /home/a001673/.local/lib/python2.7/site-packages/dask/local.py:271: RuntimeWarning: invalid value encountered in log10 return func(*args2)
<trollimage.xrimage.XRImage at 0x7f826e02ec50>