code: def set_roughness(self,
                        roughness=None,
                        land_use_grid=None,
                        land_use_grid_id=None,
                        land_use_to_roughness_table=None):
          
          if roughness is not None:
              self.project_manager.setCard('MANNING_N', str(roughness))
          elif land_use_grid is not None and (land_use_grid_id is not None \
                  or land_use_to_roughness_table is not None):
              # make sure paths are absolute as the working directory changes
              land_use_grid = os.path.abspath(land_use_grid)
              if land_use_to_roughness_table is not None:
                  land_use_to_roughness_table = os.path.abspath(land_use_to_roughness_table)
  
              mapTableFile = MapTableFile(project_file=self.project_manager)
              mapTableFile.addRoughnessMapFromLandUse("roughness",
                                                      self.db_session,
                                                      land_use_grid,
                                                      land_use_to_roughness_table=land_use_to_roughness_table,
                                                      land_use_grid_id=land_use_grid_id)
          else:
              raise ValueError("Need to either set 'roughness', or need "
                               "to set values from land use grid ...")
docs: ADD ROUGHNESS FROM LAND COVER
          See: http://www.gsshawiki.com/Project_File:Overland_Flow_%E2%80%93_Required