Class import_export::RasterImporter

class RasterImporter

Public Types

enum PointType

Values:

kNone
kAuto
kSmallInt
kInt
kFloat
kDouble
kPoint
enum PointTransform

Values:

kNone
kAuto
kFile
kWorld
using NamesAndSQLTypes = std::vector<std::pair<std::string, SQLTypes>>
using RawPixels = std::vector<std::byte>
using NullValue = std::pair<double, bool>
using Coords = std::vector<std::tuple<double, double, float>>

Public Functions

RasterImporter()
~RasterImporter()
void detect(const std::string &file_name, const std::string &specified_band_names, const std::string &specified_band_dimensions, const PointType point_type, const PointTransform point_transform, const bool point_compute_angle, const bool throw_on_error, const MetadataColumnInfos &metadata_column_infos)
void import(const uint32_t max_threads)
const uint32_t getNumBands() const
const RasterImporter::PointTransform getPointTransform() const
const RasterImporter::NamesAndSQLTypes getPointNamesAndSQLTypes() const
const RasterImporter::NamesAndSQLTypes getBandNamesAndSQLTypes() const
const int getBandsWidth() const
const int getBandsHeight() const
const RasterImporter::NullValue getBandNullValue(const int band_idx) const
const RasterImporter::Coords getProjectedPixelCoords(const uint32_t thread_idx, const int y) const
void getRawPixels(const uint32_t thread_idx, const uint32_t band_idx, const int y_start, const int num_rows, const SQLTypes column_sql_type, RawPixels &raw_pixel_bytes)

Private Functions

void getRawBandNamesForFormat(const Geospatial::GDAL::DataSourceUqPtr &datasource)
void initializeFiltering(const std::string &specified_band_names, const std::string &specified_band_dimensions, const MetadataColumnInfos &metadata_column_infos)
bool shouldImportBandWithName(const std::string &name)
bool shouldImportBandWithDimensions(const int width, const int height)
std::string getBandName(const uint32_t datasource_idx, const int band_idx)
void checkSpecifiedBandNamesFound() const

Private Members

std::vector<std::string> datasource_names_
std::vector<std::vector<std::string>> raw_band_names_
std::map<std::string, bool> specified_band_names_map_
std::map<std::string, int> column_name_repeats_map_
std::vector<ImportBandInfo> import_band_infos_
std::array<double, 6> affine_transform_matrix_
std::vector<std::vector<Geospatial::GDAL::DataSourceUqPtr>> datasource_handles_
int specified_band_width_ = {-1}
int specified_band_height_ = {-1}
int bands_width_ = {-1}
int bands_height_ = {-1}
PointType point_type_ = {PointType::kNone}
PointTransform point_transform_ = {PointTransform::kNone}
std::vector<Geospatial::GDAL::CoordinateTransformationUqPtr> coordinate_transformations_
std::vector<std::unique_ptr<GCPTransformer>> gcp_transformers_
bool point_compute_angle_ = {false}
struct ImportBandInfo

Public Members

std::string name
std::string alt_name
SQLTypes sql_type
uint32_t datasource_idx
int band_idx
double null_value
bool null_value_valid