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):