From d0b02bc5af92e5f2158577bac410b263190a498a Mon Sep 17 00:00:00 2001 From: tomrink <rink@ssec.wisc.edu> Date: Tue, 19 Oct 2021 10:04:32 -0500 Subject: [PATCH] add writer for the icing product --- modules/util/util.py | 54 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/modules/util/util.py b/modules/util/util.py index 56d5abe9..769e11e3 100644 --- a/modules/util/util.py +++ b/modules/util/util.py @@ -557,4 +557,56 @@ def make_for_full_domain_predict(h5f, name_list=None, satellite='GOES16', domain grd_dct[ds_name] = np.stack(grd_dct_n[ds_name]) return grd_dct, ll, cc -# ------------------------------------------------------------------------------------------- \ No newline at end of file +# ------------------------------------------------------------------------------------------- + + +def write_icing_file(outfile, preds, x, y, lons, lats): + h5f_out = h5py.File(outfile, 'w') + + icing_pred_ds = h5f_out.create_dataset('icing_prediction', data=preds, dtype='i2') + icing_pred_ds.attrs.create('coordinates', data='y x') + icing_pred_ds.attrs.create('grid_mapping', data='Projection') + + lon_ds = h5f_out.create_dataset('longitude', data=lons, dtype='f4') + lon_ds.attrs.create('units', data='degrees_east') + lon_ds.attrs.create('long_name', data='icing prediction longitude') + + lat_ds = h5f_out.create_dataset('latitude', data=lats, dtype='f4') + lat_ds.attrs.create('units', data='degrees_north') + lat_ds.attrs.create('long_name', data='icing prediction latitude') + + proj_ds = h5f_out.create_dataset('Projection', data=None, dtype='b') + proj_ds.attrs.create('long_name', data='Himawari Imagery Projection') + proj_ds.attrs.create('sweep_angle_axis', data='y') + proj_ds.attrs.create('units', data='radians') + proj_ds.attrs.create('semi_major_axis', data=6378.137) + proj_ds.attrs.create('semi_minor_axis', data=6356.7523) + proj_ds.attrs.create('inverse_flattening', data=298.257) + proj_ds.attrs.create('perspective_point_height', data=35785.863) + proj_ds.attrs.create('latitude_of_projection_origin', data=0.0) + proj_ds.attrs.create('longitude_of_projection_origin', data=140.7) + proj_ds.attrs.create('CFAC', data=20466275) + proj_ds.attrs.create('LFAC', data=20466275) + proj_ds.attrs.create('COFF', data=2750.5) + proj_ds.attrs.create('LOFF', data=2750.5) + + if x is not None: + x_ds = h5f_out.create_dataset('x', data=x, dtype='f8') + x_ds.attrs.create('units', data='radians') + x_ds.attrs.create('standard_name', data='projection_x_coordinate') + x_ds.attrs.create('long_name', data='GOES PUG W-E fixed grid viewing angle') + x_ds.attrs.create('scale_factor', data=5.58879902955962e-05) + x_ds.attrs.create('add_offset', data=-0.153719917308037) + x_ds.attrs.create('CFAC', data=20466275) + x_ds.attrs.create('COFF', data=2750.5) + + y_ds = h5f_out.create_dataset('y', data=x, dtype='f8') + y_ds.attrs.create('units', data='radians') + y_ds.attrs.create('standard_name', data='projection_y_coordinate') + y_ds.attrs.create('long_name', data='GOES PUG S-N fixed grid viewing angle') + y_ds.attrs.create('scale_factor', data=-5.58879902955962e-05) + y_ds.attrs.create('add_offset', data=0.153719917308037) + y_ds.attrs.create('LFAC', data=20466275) + y_ds.attrs.create('LOFF', data=2750.5) + + h5f_out.close() -- GitLab