diff --git a/edosl0util/rdrgen.py b/edosl0util/rdrgen.py index 4f281fd3f247bdeb121621f532e8ce8121ce689a..040001a68e0ae921c910e12fdb761c3fc4d0cbe1 100644 --- a/edosl0util/rdrgen.py +++ b/edosl0util/rdrgen.py @@ -294,6 +294,14 @@ class BinnedTemporaryFileManager(object): shutil.rmtree(self.dir) +missions = { + "npp": "S-NPP/JPSS", + "snpp": "S-NPP/JPSS", + "j01": "NOAA-20/JPSS", + "jpss1": "NOAA-20/JPSS", + "noaa20": "NOAA-20/JPSS", +} + class RdrWriter(object): def __init__( self, @@ -341,7 +349,7 @@ class RdrWriter(object): self._h5_file, { "Distributor": distributor, - "Mission_Name": "S-NPP/JPSS", # FIXME: what will this be for J1? + "Mission_Name": missions[self.sat], "N_Dataset_Source": origin, "N_HDF_Creation_Date": self._format_date_attr(self._creation_time), "N_HDF_Creation_Time": self._format_time_attr(self._creation_time), @@ -443,13 +451,21 @@ class RdrWriter(object): @staticmethod def _set_h5_attrs(h5_obj, attrs): attrs = _encodeall(attrs) + def tpcnv(v): + if isinstance(v, list): + return [tpcnv(x) for x in v] + elif isinstance(v, str): + return np.array(v.encode('ascii'), dtype="S") + elif isinstance(v, bytes): + return np.array(v, dtype="S") + return v # for some reason all the H5 attributes are in 2-D arrays in IDPS files for name, value in attrs.items(): if isinstance(value, list): value = [[x] for x in value] else: value = [[value]] - h5_obj.attrs[name] = value + h5_obj.attrs[name] = tpcnv(value) @staticmethod def _format_date_attr(t):