|
|
# Overview
|
|
|
|
|
|
This is a from-scratch C++ library implementing a scene API callable from C, Fortran9X, and scientific Python (e.g. Continuum.IO Anaconda). It can access single files, but is most often used to transparently stitch groups of files together into scenes. Inline automatic decompression of .gz and .bz2-compressed HSD files is also included at a performance penalty (as would be expected).
|
|
|
|
|
|
libHimawari includes a python script which converts HSD scenes to NetCDF4 files in an approximation of GOES-R PUG format, and permits export of NetCDF with or without navigation (lat/lon), as radiances or as albedo/brightness temperature products (depending on band). We've successfully integrated the library into Geocat (Level 2 product generation testbed written in Fortran90) and it's in active daily use. The NetCDF conversion script is used to provide input to other processing and visualization systems, e.g. McIDAS-V.
|
|
|
|
|
|
An upcoming version of this library will include reading of HimawariCast HRIT in addition to HSD. It does not otherwise provide derived/ancillary products not already part of the file specification, aside from a module which is included to do averaged down-sampling to lower resolutions per GOES-R imagery ATBD.
|
|
|
|
|
|
Currently the NetCDF conversion is not optimized, and uses a lot of memory when downsampling the 0.5km band to 2km, especially if geolocation is requested in the output. It's pretty fast otherwise.
|
|
|
|
|
|
|
|
|
# converting HSD scenes to NetCDF4 files
|
|
|
|
|
|
Assuming TC has installed ShellB3 module on your machine (see if /opt/ShellB3/2014Q1/bin/python exists), you should be able to run
|
|
|
|
|
|
```
|
|
|
/delta/ait/Software/himawari/py/hsd2nc2km.sh \
|
|
|
/delta/ait/dc/jma/himawari08/ahi/2015/2015_04_21_111/1600/HS_H08_20150421_1600 -G -V
|
|
|
```
|
|
|
|
|
|
which will crunch for a bit and generate 16 2km NetCDF files in the current directory. It does averaging to downsample the 0.5km and 1km, though you could disable that inside a copy of the script.
|
|
|
|
|
|
It runs all 16 bands in parallel, which can be spendy on RAM and CPU if you're running an older machine. That can be changed by editing a copy of the script as well. It's running a python script (hsd2nc) which uses libHimawari (C/Fortran/Python callable HSD reader library) to read, calculate albedo/BT/lat/lon, and write out NetCDF. If you change "conv 2 ____" and "conv 4 _____" lines in the script to "conv 1 _____" that'll disable the downsampling on high resolution bands.
|
|
|
|
|
|
If you copy the himawari directory to your local machine you should be able to use it on other CentOS6 systems. It's just a copy of libHimawari ( https://gitlab.ssec.wisc.edu/rayg/himawari/commits/develop latest & greatest branch) which has had "make" run on it in its src/ directory if you want to build it yourself.
|
|
|
|
|
|
The NetCDF files are as close as I could make them to GOES-R PUG format and can be read directly by McV.
|
|
|
|