code: def get_displacement_rate(
          hazard, classification, hazard_class, qsettings=None):
      
      is_affected_value = is_affected(
          hazard, classification, hazard_class, qsettings)
      if is_affected_value == not_exposed_class['key']:
          return 0  # Just to make it clear
      elif not is_affected_value:
          return 0
      preference_data = setting(
          'population_preference',
          default=generate_default_profile(),
          qsettings=qsettings)
  
      # Use default from the default profile
      default_profile = generate_default_profile()
      default_displacement_rate_value = default_profile.get(hazard, {}).get(
          classification, {}).get(hazard_class, {}).get('displacement_rate', 0)
  
      # noinspection PyUnresolvedReferences
      return preference_data.get(hazard, {}).get(classification, {}).get(
          hazard_class, {}).get(
          'displacement_rate', default_displacement_rate_value)
docs: Get displacement rate for hazard in classification in hazard class.
  
      :param hazard: The hazard key.
      :type hazard: basestring
  
      :param classification: The classification key.
      :type classification: basestring
  
      :param hazard_class: The hazard class key.
      :type hazard_class: basestring
  
      :param qsettings: A custom QSettings to use. If it's not defined, it will
          use the default one.
      :type qsettings: qgis.PyQt.QtCore.QSettings
  
      :returns: The value of displacement rate. If it's not affected, return 0.
      :rtype: int