docs: def convert(self):
          """
          Copies data from RAPID netCDF output to a CF-compliant netCDF file.
          """
          try:
              log('Processing %s ...' % self.rapid_output_file_list[0])
              time_start_conversion = datetime.utcnow()
  
              # Validate the raw netCDF file
              log('validating input netCDF file', 'INFO')
              id_len, time_len = self._validate_raw_nc()
  
              # Initialize the output file (create dimensions and variables)
              log('initializing output', 'INFO')
              self._initialize_output(time_len, id_len)
  
              self._generate_time_values()
  
              # copy river ids over
              self.cf_nc.variables[self.output_id_dim_name][:] = \
                  self.raw_nc_list[0].get_river_id_array()
  
              # Populate comid, lat, lon, z
              log('writing comid lat lon z')
              lookup_start = datetime.now()
              self._write_comid_lat_lon_z()
              duration = str((datetime.now() - lookup_start).total_seconds())
              log('Lookup Duration (s): ' + duration)
  
              # Create a variable for streamflow. This is big, and slows down
              # previous steps if we do it earlier.
              self._copy_streamflow_values()
  
              # close files
              for raw_nc in self.raw_nc_list:
                  raw_nc.close()
              self.cf_nc.close()
  
              # delete original RAPID output
              remove_files(*self.rapid_output_file_list)
  
              # rename nc compliant file to original name
              os.rename(self.cf_compliant_file, self.rapid_output_file_list[0])
              log('Time to process %s' %
                  (datetime.utcnow()-time_start_conversion))
          except Exception:
              # delete cf RAPID output
              remove_files(self.cf_compliant_file)
              raise