32
32
#include " utils_cli.h"
33
33
#include " version.h"
34
34
35
+ #include < ogr_srs_api.h>
36
+
35
37
using exactextract::GDALDatasetWrapper;
36
38
using exactextract::GDALRasterWrapper;
37
39
using exactextract::Operation;
@@ -43,6 +45,9 @@ load_dataset(const std::string& descriptor,
43
45
const std::string& dst_id_name,
44
46
const std::string& dst_id_type);
45
47
48
+ static void
49
+ check_crs_consistent (const GDALDatasetWrapper& features, const std::vector<std::unique_ptr<exactextract::RasterSource>>& rasters, const std::vector<std::unique_ptr<exactextract::RasterSource>>& weights);
50
+
46
51
int
47
52
main (int argc, char ** argv)
48
53
{
@@ -114,6 +119,8 @@ main(int argc, char** argv)
114
119
115
120
GDALDatasetWrapper shp = load_dataset (poly_descriptor, include_cols, src_id_name, dst_id_name, dst_id_type);
116
121
122
+ check_crs_consistent (shp, rasters, weights);
123
+
117
124
std::unique_ptr<exactextract::GDALWriter> gdal_writer = std::make_unique<exactextract::GDALWriter>(
118
125
output_filename, !nested_output, shp.srs ());
119
126
@@ -216,3 +223,21 @@ load_dataset(const std::string& descriptor,
216
223
217
224
return ds;
218
225
}
226
+
227
+ static void
228
+ check_crs_consistent (const GDALDatasetWrapper& features, const std::vector<std::unique_ptr<exactextract::RasterSource>>& rasters, const std::vector<std::unique_ptr<exactextract::RasterSource>>& weights)
229
+ {
230
+ OGRSpatialReferenceH expected = features.srs ();
231
+ for (const auto & raster : rasters) {
232
+ OGRSpatialReferenceH srs = static_cast <const GDALRasterWrapper*>(raster.get ())->srs ();
233
+ if (!OSRIsSame (srs, expected)) {
234
+ std::cerr << " Input features do not have the same CRS as raster " << raster->name () << std::endl;
235
+ }
236
+ }
237
+ for (const auto & raster : weights) {
238
+ OGRSpatialReferenceH srs = static_cast <const GDALRasterWrapper*>(raster.get ())->srs ();
239
+ if (!OSRIsSame (srs, expected)) {
240
+ std::cerr << " Input features do not have the same CRS as raster " << raster->name () << std::endl;
241
+ }
242
+ }
243
+ }
0 commit comments