OGS
|
Definition in file NetCdfConverter.cpp.
#include <tclap/CmdLine.h>
#include <cctype>
#include <iostream>
#include <limits>
#include <memory>
#include <netcdf>
#include <numeric>
#include <sstream>
#include <string>
#include <utility>
#include "Applications/FileIO/AsciiRasterInterface.h"
#include "BaseLib/FileTools.h"
#include "BaseLib/Logging.h"
#include "GeoLib/Raster.h"
#include "InfoLib/GitInfo.h"
#include "MeshLib/IO/VtkIO/VtuInterface.h"
#include "MeshLib/Mesh.h"
#include "MeshLib/MeshGenerators/RasterToMesh.h"
Go to the source code of this file.
Enumerations | |
enum class | OutputType { INVALID , IMAGES , SINGLEMESH , MULTIMESH } |
Functions | |
static void | checkExit (std::string const &str) |
static void | showErrorMessage (std::size_t const error_id, std::size_t const max=0) |
static std::size_t | parseInput (std::string const &request_str, std::size_t const max_val, bool const has_info=false) |
static NcVar | getDimVar (NcFile const &dataset, NcVar const &var, std::size_t const dim) |
static std::pair< double, double > | getDimLength (NcVar const &var, std::size_t const dim) |
static std::vector< std::string > | getArrays (NcFile const &dataset) |
static void | showArrays (NcFile const &dataset) |
static void | showArraysDims (NcVar const &var) |
static std::pair< double, double > | getBoundaries (NcVar const &var) |
static MathLib::Point3d | getOrigin (NcFile const &dataset, NcVar const &var, std::vector< std::size_t > const &dim_idx_map, std::size_t const time_offset) |
static void | flipRaster (std::vector< double > &data, std::size_t const layers, std::size_t const width, std::size_t const height) |
static bool | canConvert (NcVar const &var) |
static std::string | arraySelectionLoop (NcFile const &dataset) |
static bool | dimensionSelectionLoop (NcVar const &var, std::vector< std::size_t > &dim_idx_map) |
static std::pair< std::size_t, std::size_t > | timestepSelectionLoop (NcVar const &var, std::size_t const dim_idx) |
static MeshLib::MeshElemType | elemSelectionLoop (std::size_t const dim) |
static OutputType | multFilesSelectionLoop (std::pair< std::size_t, std::size_t > const &time_bounds) |
static std::string | getIterationString (std::size_t i, std::size_t max) |
static double | getResolution (NcFile const &dataset, NcVar const &var) |
static GeoLib::RasterHeader | createRasterHeader (NcFile const &dataset, NcVar const &var, std::vector< std::size_t > const &dim_idx_map, std::vector< std::size_t > const &length, std::size_t const time_offset) |
static std::vector< std::size_t > | getLength (NcVar const &var, std::size_t const time_offset) |
static std::vector< double > | getData (NcVar const &var, std::size_t const total_length, std::size_t const time_step, std::vector< std::size_t > const &length) |
static bool | assignDimParams (NcVar const &var, std::vector< std::size_t > &dim_idx_map, TCLAP::ValueArg< std::size_t > &arg_dim_time, TCLAP::ValueArg< std::size_t > &arg_dim1, TCLAP::ValueArg< std::size_t > &arg_dim2, TCLAP::ValueArg< std::size_t > &arg_dim3) |
static std::pair< std::size_t, std::size_t > | assignTimeBounds (NcVar const &var, TCLAP::ValueArg< std::size_t > &arg_time_start, TCLAP::ValueArg< std::size_t > &arg_time_end) |
static MeshLib::MeshElemType | assignElemType (TCLAP::ValueArg< std::string > &arg_elem_type) |
static bool | convert (NcFile const &dataset, NcVar const &var, std::string const &output_name, std::vector< std::size_t > const &dim_idx_map, std::size_t const time_offset, std::pair< std::size_t, std::size_t > const &time_bounds, OutputType const output, MeshLib::MeshElemType const elem_type) |
int | main (int argc, char *argv[]) |
Variables | |
static const double | no_data_output = -9999 |
static double | no_data_input = -9999 |
|
strong |
Enumerator | |
---|---|
INVALID | |
IMAGES | |
SINGLEMESH | |
MULTIMESH |
Definition at line 37 of file NetCdfConverter.cpp.
|
static |
Definition at line 213 of file NetCdfConverter.cpp.
References canConvert(), getArrays(), parseInput(), and showArrays().
Referenced by main().
|
static |
|
static |
Definition at line 531 of file NetCdfConverter.cpp.
References MeshLib::HEXAHEDRON, MeshLib::INVALID, MeshLib::PRISM, MeshLib::QUAD, and MeshLib::TRIANGLE.
Referenced by main().
|
static |
Definition at line 499 of file NetCdfConverter.cpp.
References ERR(), and getBoundaries().
Referenced by main().
|
static |
Definition at line 204 of file NetCdfConverter.cpp.
References ERR().
Referenced by arraySelectionLoop().
|
static |
Definition at line 45 of file NetCdfConverter.cpp.
Referenced by elemSelectionLoop(), and parseInput().
|
static |
Definition at line 546 of file NetCdfConverter.cpp.
References MeshLib::Cell, MeshLib::RasterToMesh::convert(), createRasterHeader(), MeshLib::DATAVECTOR, BaseLib::dropFileExtension(), flipRaster(), getBoundaries(), getData(), getDimLength(), getDimVar(), BaseLib::getFileExtension(), getIterationString(), getLength(), MULTIMESH, GeoLib::RasterHeader::n_cols, GeoLib::RasterHeader::n_depth, GeoLib::RasterHeader::n_rows, SINGLEMESH, FileIO::AsciiRasterInterface::writeRasterAsASC(), and MeshLib::IO::VtuInterface::writeToFile().
Referenced by main().
|
static |
Definition at line 406 of file NetCdfConverter.cpp.
References getOrigin(), getResolution(), and no_data_output.
Referenced by convert().
|
static |
Definition at line 227 of file NetCdfConverter.cpp.
References parseInput(), showArraysDims(), and showErrorMessage().
Referenced by main().
|
static |
Definition at line 314 of file NetCdfConverter.cpp.
References checkExit(), MeshLib::HEXAHEDRON, MeshLib::INVALID, MeshLib::LINE, MeshLib::PRISM, MeshLib::QUAD, and MeshLib::TRIANGLE.
Referenced by main().
|
static |
Definition at line 183 of file NetCdfConverter.cpp.
References MathLib::LinAlg::copy().
Referenced by convert().
|
static |
Definition at line 113 of file NetCdfConverter.cpp.
References MaterialPropertyLib::name.
Referenced by arraySelectionLoop().
|
static |
Definition at line 153 of file NetCdfConverter.cpp.
Referenced by assignTimeBounds(), convert(), getOrigin(), and getResolution().
|
static |
Definition at line 437 of file NetCdfConverter.cpp.
References no_data_output.
Referenced by convert().
|
static |
Definition at line 107 of file NetCdfConverter.cpp.
Referenced by convert(), getOrigin(), and getResolution().
|
static |
Definition at line 100 of file NetCdfConverter.cpp.
Referenced by convert(), getOrigin(), getResolution(), and main().
|
static |
|
static |
|
static |
Definition at line 166 of file NetCdfConverter.cpp.
References getBoundaries(), getDimLength(), getDimVar(), and MathLib::ORIGIN.
Referenced by createRasterHeader().
|
static |
Definition at line 390 of file NetCdfConverter.cpp.
References getBoundaries(), getDimLength(), getDimVar(), and OGS_FATAL.
Referenced by createRasterHeader().
int main | ( | int | argc, |
char * | argv[] | ||
) |
Definition at line 644 of file NetCdfConverter.cpp.
References arraySelectionLoop(), assignDimParams(), assignElemType(), assignTimeBounds(), convert(), dimensionSelectionLoop(), elemSelectionLoop(), ERR(), getDimVar(), IMAGES, INVALID, MeshLib::INVALID, multFilesSelectionLoop(), MULTIMESH, no_data_input, GitInfoLib::GitInfo::ogs_version, SINGLEMESH, and timestepSelectionLoop().
|
static |
Definition at line 354 of file NetCdfConverter.cpp.
References IMAGES, INVALID, MULTIMESH, parseInput(), and SINGLEMESH.
Referenced by main().
|
static |
Definition at line 70 of file NetCdfConverter.cpp.
References checkExit(), and showErrorMessage().
Referenced by arraySelectionLoop(), dimensionSelectionLoop(), multFilesSelectionLoop(), and timestepSelectionLoop().
|
static |
Definition at line 125 of file NetCdfConverter.cpp.
References MaterialPropertyLib::name.
Referenced by arraySelectionLoop().
|
static |
|
static |
Definition at line 51 of file NetCdfConverter.cpp.
References ERR().
Referenced by dimensionSelectionLoop(), and parseInput().
|
static |
|
static |
Definition at line 35 of file NetCdfConverter.cpp.
Referenced by main().
|
static |
Definition at line 34 of file NetCdfConverter.cpp.
Referenced by createRasterHeader(), and getData().