code: def changeSuffixinASN(asnfile, suffix):
      
      # Start by creating a new name for the ASN table
      _new_asn = asnfile.replace('_asn.fits','_'+suffix+'_asn.fits')
      if os.path.exists(_new_asn):
          os.remove(_new_asn)
      # copy original ASN table to new table
      shutil.copy(asnfile,_new_asn)
  
      # Open up the new copy and convert all MEMNAME's to include suffix
      fasn = fits.open(_new_asn, mode='update', memmap=False)
      fasn[0].header['DUPCHECK'] = "COMPLETE"
      newdata = fasn[1].data.tolist()
      for i in range(len(newdata)):
          val = newdata[i][0].decode(encoding='UTF-8').strip()
          if 'prod' not in newdata[i][1].decode(encoding='UTF-8').lower():
              val += '_'+suffix
          newdata[i] = (val,newdata[i][1].strip(),newdata[i][2])
  
      # Redefine dtype to support longer strings for MEMNAME
      new_dtype = []
      d = fasn[1].data.dtype
      msize = d.descr[0][1][1:]
      new_size = int(msize[1:])+8
      mtype = msize[0]
      new_dtype.append((d.descr[0][0],d.descr[0][1].replace(msize,'{}{}'.format(mtype,new_size))))
      new_dtype.append(d.descr[1])
      new_dtype.append(d.descr[2])
  
      # Assign newly created, reformatted array to extension
      newasn = np.array(newdata,dtype=new_dtype)
      fasn[1].data = newasn
      fasn.close()
  
      return _new_asn
docs: Create a copy of the original asn file and change the name of all members
      to include the suffix.