xref: /aosp_15_r20/external/sandboxed-api/oss-internship-2020/gdal/raster_to_gtiff/get_raster_data.h (revision ec63e07ab9515d95e79c211197c445ef84cefa6a)
1 // Copyright 2020 Google LLC
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     https://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef RASTER_TO_GTIFF_GET_RASTER_DATA_H_
16 #define RASTER_TO_GTIFF_GET_RASTER_DATA_H_
17 
18 #include <optional>
19 #include <string>
20 #include <vector>
21 
22 namespace gdal::sandbox::parser {
23 
24 struct RasterBandData {
25   int width;
26   int height;
27   std::vector<int> data;
28   int data_type;     // Corresponds to the GDALDataType enum
29   int color_interp;  // Corresponds to the GDALColorInterp enum
30   std::optional<double> no_data_value;
31 };
32 
33 struct RasterDataset {
34   int width;
35   int height;
36   std::vector<RasterBandData> bands;
37   std::string wkt_projection;  // OpenGIS WKT format
38   std::vector<double> geo_transform;
39 };
40 
41 RasterDataset GetRasterBandsFromFile(const std::string& filename);
42 bool operator==(const RasterBandData& lhs, const RasterBandData& rhs);
43 bool operator==(const RasterDataset& lhs, const RasterDataset& rhs);
44 
45 }  // namespace gdal::sandbox::parser
46 
47 #endif  // RASTER_TO_GTIFF_GET_RASTER_DATA_H_
48