From 56649c5513d647fe00fce5600fb1b7b3f0b34a9c Mon Sep 17 00:00:00 2001 From: doinachiroiu Date: Thu, 24 Sep 2020 14:16:33 +0000 Subject: [PATCH 1/5] Resolving returning error for Transform and RasterIO functions --- oss-internship-2020/gdal/raster.cc | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/oss-internship-2020/gdal/raster.cc b/oss-internship-2020/gdal/raster.cc index 2a564bb..ba28306 100644 --- a/oss-internship-2020/gdal/raster.cc +++ b/oss-internship-2020/gdal/raster.cc @@ -98,8 +98,16 @@ absl::Status GdalMain(std::string filename) { sapi::v::Array adfGeoTransformArray(&adf_geo_transform[0], adf_geo_transform.size()); - api.GDALGetGeoTransform(&ptr_dataset, adfGeoTransformArray.PtrBoth()) - .IgnoreError(); + // For this function that returns CPLErr, the error-handling must be done + // analyzing the returning object. + // Same for GDALReturnsIO from below. + CPLErr err; + SAPI_ASSIGN_OR_RETURN(err, api.GDALGetGeoTransform(&ptr_dataset, adfGeoTransformArray.PtrBoth())); + + // If GDALGetGeoTransform generates an error. + if (err != CE_None) { + return absl::CancelledError(); + } LOG(INFO) << "Origin = (" << adf_geo_transform[0] << ", " << adf_geo_transform[3] << ")" << std::endl; @@ -137,10 +145,15 @@ absl::Status GdalMain(std::string filename) { std::vector raster_data(nX_size.value() * nY_size.value(), -1); sapi::v::Array raster_data_array(&raster_data[0], raster_data.size()); - api.GDALRasterIO(&ptr_band, GF_Read, 0, 0, nX_size.value(), nY_size.value(), + // We will use CPLErr type of returning value, as before with GDALGetGeoTransorm. + SAPI_ASSIGN_OR_RETURN(err, api.GDALRasterIO(&ptr_band, GF_Read, 0, 0, nX_size.value(), nY_size.value(), raster_data_array.PtrBoth(), nX_size.value(), - nY_size.value(), GDT_Byte, 0, 0) - .IgnoreError(); + nY_size.value(), GDT_Byte, 0, 0)); + + // If GDALRasterIO generates an error. + if (err != CE_None) { + return absl::CancelledError(); + } std::cout << "Raster data info: " << raster_data_array.ToString() << std::endl; From 3db70e6bea66f63475ccc2eecd25f33850c24698 Mon Sep 17 00:00:00 2001 From: doinachiroiu Date: Thu, 24 Sep 2020 14:36:30 +0000 Subject: [PATCH 2/5] Changed name of variable --- oss-internship-2020/gdal/raster.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/oss-internship-2020/gdal/raster.cc b/oss-internship-2020/gdal/raster.cc index ba28306..948e9b1 100644 --- a/oss-internship-2020/gdal/raster.cc +++ b/oss-internship-2020/gdal/raster.cc @@ -95,14 +95,14 @@ absl::Status GdalMain(std::string filename) { // Checking that GetGeoTransform is valid. std::vector adf_geo_transform(6); - sapi::v::Array adfGeoTransformArray(&adf_geo_transform[0], + sapi::v::Array adf_geo_transform_array(&adf_geo_transform[0], adf_geo_transform.size()); // For this function that returns CPLErr, the error-handling must be done // analyzing the returning object. // Same for GDALReturnsIO from below. CPLErr err; - SAPI_ASSIGN_OR_RETURN(err, api.GDALGetGeoTransform(&ptr_dataset, adfGeoTransformArray.PtrBoth())); + SAPI_ASSIGN_OR_RETURN(err, api.GDALGetGeoTransform(&ptr_dataset, adf_geo_transform_array.PtrBoth())); // If GDALGetGeoTransform generates an error. if (err != CE_None) { From 29310a2305a3ec7381e9f442eb84a1d53394f07e Mon Sep 17 00:00:00 2001 From: doinachiroiu Date: Thu, 24 Sep 2020 14:38:52 +0000 Subject: [PATCH 3/5] Required changes resolved --- oss-internship-2020/gdal/raster.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/oss-internship-2020/gdal/raster.cc b/oss-internship-2020/gdal/raster.cc index 948e9b1..7cd7a63 100644 --- a/oss-internship-2020/gdal/raster.cc +++ b/oss-internship-2020/gdal/raster.cc @@ -106,7 +106,7 @@ absl::Status GdalMain(std::string filename) { // If GDALGetGeoTransform generates an error. if (err != CE_None) { - return absl::CancelledError(); + return absl::InternalError("GDAL rasterisation failed."); } LOG(INFO) << "Origin = (" << adf_geo_transform[0] << ", " @@ -152,7 +152,7 @@ absl::Status GdalMain(std::string filename) { // If GDALRasterIO generates an error. if (err != CE_None) { - return absl::CancelledError(); + return absl::InternalError("GDAL rasterisation failed."); } std::cout << "Raster data info: " << raster_data_array.ToString() From 61e8274954501d6855912a31695845b3577f2be1 Mon Sep 17 00:00:00 2001 From: doinachiroiu Date: Thu, 24 Sep 2020 14:40:01 +0000 Subject: [PATCH 4/5] Coding style fixed --- oss-internship-2020/gdal/raster.cc | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/oss-internship-2020/gdal/raster.cc b/oss-internship-2020/gdal/raster.cc index 7cd7a63..a0e8cae 100644 --- a/oss-internship-2020/gdal/raster.cc +++ b/oss-internship-2020/gdal/raster.cc @@ -54,7 +54,7 @@ class GdalSapiSandbox : public GDALSandbox { .BuildOrDie(); } - private: + private: std::string file_path_; }; @@ -96,13 +96,15 @@ absl::Status GdalMain(std::string filename) { // Checking that GetGeoTransform is valid. std::vector adf_geo_transform(6); sapi::v::Array adf_geo_transform_array(&adf_geo_transform[0], - adf_geo_transform.size()); + adf_geo_transform.size()); // For this function that returns CPLErr, the error-handling must be done - // analyzing the returning object. + // analyzing the returning object. // Same for GDALReturnsIO from below. CPLErr err; - SAPI_ASSIGN_OR_RETURN(err, api.GDALGetGeoTransform(&ptr_dataset, adf_geo_transform_array.PtrBoth())); + SAPI_ASSIGN_OR_RETURN( + err, + api.GDALGetGeoTransform(&ptr_dataset, adf_geo_transform_array.PtrBoth())); // If GDALGetGeoTransform generates an error. if (err != CE_None) { @@ -145,10 +147,12 @@ absl::Status GdalMain(std::string filename) { std::vector raster_data(nX_size.value() * nY_size.value(), -1); sapi::v::Array raster_data_array(&raster_data[0], raster_data.size()); - // We will use CPLErr type of returning value, as before with GDALGetGeoTransorm. - SAPI_ASSIGN_OR_RETURN(err, api.GDALRasterIO(&ptr_band, GF_Read, 0, 0, nX_size.value(), nY_size.value(), - raster_data_array.PtrBoth(), nX_size.value(), - nY_size.value(), GDT_Byte, 0, 0)); + // We will use CPLErr type of returning value, as before with + // GDALGetGeoTransorm. + SAPI_ASSIGN_OR_RETURN( + err, api.GDALRasterIO(&ptr_band, GF_Read, 0, 0, nX_size.value(), + nY_size.value(), raster_data_array.PtrBoth(), + nX_size.value(), nY_size.value(), GDT_Byte, 0, 0)); // If GDALRasterIO generates an error. if (err != CE_None) { From e0624f7220ff748d809bc7014a9dea38319e2eb3 Mon Sep 17 00:00:00 2001 From: doinachiroiu Date: Thu, 24 Sep 2020 14:42:23 +0000 Subject: [PATCH 5/5] Clang-format --- oss-internship-2020/gdal/raster.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/oss-internship-2020/gdal/raster.cc b/oss-internship-2020/gdal/raster.cc index a0e8cae..cafca75 100644 --- a/oss-internship-2020/gdal/raster.cc +++ b/oss-internship-2020/gdal/raster.cc @@ -108,7 +108,7 @@ absl::Status GdalMain(std::string filename) { // If GDALGetGeoTransform generates an error. if (err != CE_None) { - return absl::InternalError("GDAL rasterisation failed."); + return absl::InternalError("GDAL rasterization failed."); } LOG(INFO) << "Origin = (" << adf_geo_transform[0] << ", " @@ -156,7 +156,7 @@ absl::Status GdalMain(std::string filename) { // If GDALRasterIO generates an error. if (err != CE_None) { - return absl::InternalError("GDAL rasterisation failed."); + return absl::InternalError("GDAL rasterization failed."); } std::cout << "Raster data info: " << raster_data_array.ToString()