Exemple #1
0
void NRLib::WriteIrapClassicAsciiSurf(const RegularSurface<A> & surf,
                                      double                    angle,
                                      const std::string       & filename)
{
    std::ofstream file;
    OpenWrite(file, filename);

    file << std::fixed
         << std::setprecision(6)
         << -996           << " "
         << surf.GetNJ()   << " "
         << surf.GetDX()   << " "
         << surf.GetDY()   << "\n"
         << std::setprecision(2)
         << surf.GetXMin() << " "
         << surf.GetXMax() << " "
         << surf.GetYMin() << " "
         << surf.GetYMax() << "\n"
         << surf.GetNI()   << " "
         << std::setprecision(6)
         << angle*180/NRLib::Pi << " "
         << std::setprecision(2)
         << surf.GetXMin() << " "
         << surf.GetYMin() << "\n"
         << "   0   0   0   0   0   0   0\n";

    file.precision(6);

    if (surf.GetMissingValue() == IRAP_MISSING) {
        for (size_t i = 0; i < surf.GetN(); i++) {
            file << surf(i) << " ";
            if((i+1) % 6 == 0)
                file << "\n";
        }
    }
    else {
        for (size_t i = 0; i < surf.GetN(); i++) {
            if (surf.IsMissing(surf(i)))
                file << IRAP_MISSING << " ";
            else
                file << surf(i) << " ";
            if((i+1) % 6 == 0)
                file << "\n";
        }
    }
    file.close();
}