Source code for pyarts.xsec

__all__ = ['XsecRecord']


[docs]class XsecRecord: """:class:`XsecRecord` implements the same-named ARTS datatype. Contains the reference cross section data at low pressure and the coefficients for the broadening formula. """
[docs] def __init__(self, species=None, coeffs=None, fmin=None, fmax=None, refpressure=None, reftemperature=None, xsec=None, tfit_slope=None, tfit_intersect=None): """Initialize XsecRecord object. """ self.version = 1 self.species = species self.coeffs = coeffs self.fmin = fmin self.fmax = fmax self.refpressure = refpressure self.reftemperature = reftemperature self.xsec = xsec self.tfit_slope = tfit_slope self.tfit_intersect = tfit_intersect
def write_xml(self, xmlwriter, attr=None): """Write a XsecRecord object to an ARTS XML file. """ # self.checksize() if attr is None: attr = {} attr['version'] = self.version xmlwriter.open_tag("XsecRecord", attr) xmlwriter.write_xml(self.species, {'name': 'Species'}) xmlwriter.write_xml(self.coeffs, {'name': 'Broadening Coefficients'}) xmlwriter.write_xml(self.fmin, {'name': 'fmin'}) xmlwriter.write_xml(self.fmax, {'name': 'fmax'}) xmlwriter.write_xml(self.refpressure, {'name': 'Reference Pressure'}) xmlwriter.write_xml(self.reftemperature, {'name': 'Reference Temperature'}) xmlwriter.write_xml(self.xsec, {'name': 'Cross Sections'}) xmlwriter.write_xml(self.tfit_slope, {'name': 'Temperature Fit Slope'}) xmlwriter.write_xml(self.tfit_intersect, {'name': 'Temperature Fit Intersect'}) xmlwriter.close_tag() @classmethod def from_xml(cls, xmlelement): """Loads a XsecRecord object from an xml.ElementTree.Element. """ obj = cls() if 'version' in xmlelement.attrib.keys(): obj.version = int(xmlelement.attrib['version']) else: obj.version = 1 if obj.version != 1: raise RuntimeError(f'Unknown XsecRecord version {obj.version}') obj.species = xmlelement[0].value() obj.coeffs = xmlelement[1].value() obj.fmin = xmlelement[2].value() obj.fmax = xmlelement[3].value() obj.refpressure = xmlelement[4].value() obj.reftemperature = xmlelement[5].value() obj.xsec = xmlelement[6].value() obj.tfit_slope = xmlelement[7].value() obj.tfit_intersect = xmlelement[8].value() return obj