docs: def serialize(self, data):
          """
          Write a sequence of uniform hazard spectra to the specified file.
  
          :param data:
              Iterable of UHS data. Each datum must be an object with the
              following attributes:
  
              * imls: A sequence of Intensity Measure Levels
              * location: An object representing the location of the curve; must
                have `x` and `y` to represent lon and lat, respectively.
          """
          gml_ns = nrml.SERIALIZE_NS_MAP['gml']
  
          with open(self.dest, 'wb') as fh:
              root = et.Element('nrml')
  
              uh_spectra = et.SubElement(root, 'uniformHazardSpectra')
  
              _set_metadata(uh_spectra, self.metadata, _ATTR_MAP)
  
              periods_elem = et.SubElement(uh_spectra, 'periods')
              periods_elem.text = ' '.join([str(x)
                                            for x in self.metadata['periods']])
  
              for uhs in data:
                  uhs_elem = et.SubElement(uh_spectra, 'uhs')
                  gml_point = et.SubElement(uhs_elem, '{%s}Point' % gml_ns)
                  gml_pos = et.SubElement(gml_point, '{%s}pos' % gml_ns)
                  gml_pos.text = '%s %s' % (uhs.location.x, uhs.location.y)
                  imls_elem = et.SubElement(uhs_elem, 'IMLs')
                  imls_elem.text = ' '.join(['%10.7E' % x for x in uhs.imls])
  
              nrml.write(list(root), fh)