package org.esa.beam.dataio.smos; import com.bc.ceres.binio.DataContext; import org.esa.beam.dataio.smos.dddb.BandDescriptor; import org.esa.beam.framework.datamodel.Band; import org.esa.beam.smos.EEFilePair; import org.esa.beam.util.StringUtils; import org.jdom.Document; import org.jdom.Element; import org.jdom.Namespace; import java.io.IOException; /** * @author Ralf Quast */ class SmUserSmosFile extends SmosFile { private final double chi2Scale; SmUserSmosFile(EEFilePair eeFilePair, DataContext dataContext) throws IOException { super(eeFilePair, dataContext); final Document document = getDocument(); final Namespace namespace = document.getRootElement().getNamespace(); final Element specificProductHeader = getElement(document.getRootElement(), TAG_SPECIFIC_PRODUCT_HEADER); final String chi_2_scale = specificProductHeader.getChildText("Chi_2_Scale", namespace); if (StringUtils.isNotNullAndNotEmpty(chi_2_scale)) { chi2Scale = Double.valueOf(chi_2_scale); } else { chi2Scale = 1.0; } } @Override protected void setScaling(Band band, BandDescriptor descriptor) { final String memberName = descriptor.getMemberName(); if ("Chi_2".equals(memberName)) { band.setScalingFactor(descriptor.getScalingFactor() * chi2Scale); } else { super.setScaling(band, descriptor); } } }