docs: def add_hazard_curves(self, root, metadata, data):
          """
          Add hazard curves stored into `data` as child of the `root`
          element with `metadata`. See the documentation of the method
          `serialize` and the constructor for a description of `data`
          and `metadata`, respectively.
          """
          hazard_curves = et.SubElement(root, 'hazardCurves')
  
          _set_metadata(hazard_curves, metadata, _ATTR_MAP)
  
          imls_elem = et.SubElement(hazard_curves, 'IMLs')
          imls_elem.text = ' '.join(map(scientificformat, metadata['imls']))
          gml_ns = nrml.SERIALIZE_NS_MAP['gml']
  
          for hc in data:
              hc_elem = et.SubElement(hazard_curves, 'hazardCurve')
              gml_point = et.SubElement(hc_elem, '{%s}Point' % gml_ns)
              gml_pos = et.SubElement(gml_point, '{%s}pos' % gml_ns)
              gml_pos.text = '%s %s' % (hc.location.x, hc.location.y)
              poes_elem = et.SubElement(hc_elem, 'poEs')
              poes_elem.text = ' '.join(map(scientificformat, hc.poes))