You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wayang.apache.org by rp...@apache.org on 2023/02/03 15:53:51 UTC

[incubator-wayang] 01/02: Definitions to extract metadata from Bands, rev 2

This is an automated email from the ASF dual-hosted git repository.

rpardomeza pushed a commit to branch WAYANG-agoraeo
in repository https://gitbox.apache.org/repos/asf/incubator-wayang.git

commit 642f8f0b21aea7094dbaeb5aa8d0bb0e4e11c41e
Author: Rodrigo Pardo Meza <ro...@gmail.com>
AuthorDate: Fri Feb 3 16:52:57 2023 +0100

    Definitions to extract metadata from Bands, rev 2
---
 .../org/apache/wayang/agoraeo/patches/Band.java    | 42 +++-----------
 .../wayang/agoraeo/patches/BandMetadata.java       | 66 ++++++++++++++--------
 2 files changed, 48 insertions(+), 60 deletions(-)

diff --git a/wayang-plugins/wayang-agoraeo/src/main/java/org/apache/wayang/agoraeo/patches/Band.java b/wayang-plugins/wayang-agoraeo/src/main/java/org/apache/wayang/agoraeo/patches/Band.java
index 427d002a..4fd4d0fc 100644
--- a/wayang-plugins/wayang-agoraeo/src/main/java/org/apache/wayang/agoraeo/patches/Band.java
+++ b/wayang-plugins/wayang-agoraeo/src/main/java/org/apache/wayang/agoraeo/patches/Band.java
@@ -22,13 +22,13 @@ import java.io.Serializable;
 
 public class Band implements Serializable {
 
-    String l1c_uuid;
-    String l2a_uuid;
-    String l2a_path;
-    String band_name;
-    String band_path;
-    String resolution;
-    String utm;
+    private final String l1c_uuid;
+    private final String l2a_uuid;
+    private final String l2a_path;
+    private final String band_name;
+    private final String band_path;
+    private final String resolution;
+    private final String utm;
 
     public Band(String l1c_uuid, String l2a_uuid, String l2a_path, String band_name, String band_path, String resolution, String utm) {
         this.l1c_uuid = l1c_uuid;
@@ -44,58 +44,30 @@ public class Band implements Serializable {
         return l1c_uuid;
     }
 
-    public void setL1c_uuid(String l1c_uuid) {
-        this.l1c_uuid = l1c_uuid;
-    }
-
     public String getL2a_uuid() {
         return l2a_uuid;
     }
 
-    public void setL2a_uuid(String l2a_uuid) {
-        this.l2a_uuid = l2a_uuid;
-    }
-
     public String getL2a_path() {
         return l2a_path;
     }
 
-    public void setL2a_path(String l2a_path) {
-        this.l2a_path = l2a_path;
-    }
-
     public String getBand_name() {
         return band_name;
     }
 
-    public void setBand_name(String band_name) {
-        this.band_name = band_name;
-    }
-
     public String getBand_path() {
         return band_path;
     }
 
-    public void setBand_path(String band_path) {
-        this.band_path = band_path;
-    }
-
     public String getResolution() {
         return resolution;
     }
 
-    public void setResolution(String resolution) {
-        this.resolution = resolution;
-    }
-
     public String getUtm() {
         return utm;
     }
 
-    public void setUtm(String utm) {
-        this.utm = utm;
-    }
-
     @Override
     public String toString() {
         return this.band_name + "|band_path:" + this.band_path.substring(this.band_path.lastIndexOf("/")+1) + "|" + this.resolution + "|" + this.utm + "|l2a_path:" + this.l2a_path.substring(this.l2a_path.lastIndexOf("/")+1);
diff --git a/wayang-plugins/wayang-agoraeo/src/main/java/org/apache/wayang/agoraeo/patches/BandMetadata.java b/wayang-plugins/wayang-agoraeo/src/main/java/org/apache/wayang/agoraeo/patches/BandMetadata.java
index 461d14e1..1c4c10d2 100644
--- a/wayang-plugins/wayang-agoraeo/src/main/java/org/apache/wayang/agoraeo/patches/BandMetadata.java
+++ b/wayang-plugins/wayang-agoraeo/src/main/java/org/apache/wayang/agoraeo/patches/BandMetadata.java
@@ -26,31 +26,29 @@ import java.io.Serializable;
 
 public class BandMetadata implements Serializable {
 
+
+    private final String utm;
+    private final String resolution;
+    private final String band_name;
+
     /*TODO: Band raster is just the first of the bands of the raster, I don't know how representative it is*/
-    private org.gdal.gdal.Band band_raster;
-    private org.gdal.gdal.Dataset band_source;
-    private String local_path;
-    private Tuple2<Double, Double> ul;
-    private Tuple2<Double, Double> lr;
-    private Tuple2<Double, Double> pixel_resolution;
-    private Tuple2<Integer, Integer> size;
-
-    private Integer espg;
-    /*
-    * from osgeo.osr import SpatialReference
-
-                epsg = SpatialReference(wkt=src.GetProjection()).GetAttrValue(
-                    "AUTHORITY", 1
-                )
-                if isinstance(epsg, str):
-                    return int(epsg)
-                return -1
-    * */
-
-    private String projection;
+    private final org.gdal.gdal.Band band_raster;
+    private final org.gdal.gdal.Dataset band_source;
+    private final String local_path;
+    private final Tuple2<Double, Double> ul;
+    private final Tuple2<Double, Double> lr;
+    private final Tuple2<Double, Double> pixel_resolution;
+    private final Tuple2<Integer, Integer> size;
+    private final Integer espg;
+    private final String projection;
 
     public BandMetadata(Band b) {
-        this.band_source = gdal.Open(b.band_path);
+        gdal.AllRegister();
+        this.utm = b.getUtm();
+        this.band_name = b.getBand_name();
+        this.resolution = b.getResolution();
+        this.local_path = b.getBand_path();
+        this.band_source = gdal.Open(b.getBand_path());
         this.size = new Tuple2<>(this.band_source.GetRasterXSize(), this.band_source.getRasterYSize());
         double[] geo_transf = this.band_source.GetGeoTransform();
         this.pixel_resolution = new Tuple2<>(geo_transf[1], geo_transf[5]);
@@ -70,7 +68,6 @@ public class BandMetadata implements Serializable {
         int intValue;
 
         if(code_espg == null || code_espg.equals("")) {
-//            System.out.println("String cannot be parsed, it is null or empty.");
             return -1;
         }
 
@@ -78,7 +75,7 @@ public class BandMetadata implements Serializable {
             intValue = Integer.parseInt(code_espg);
             return intValue;
         } catch (NumberFormatException e) {
-//            System.out.println("Input String cannot be parsed to Integer.");
+            System.err.println("Not possible to transform " + code_espg + " to Integer");
         }
         return -1;
     }
@@ -111,8 +108,27 @@ public class BandMetadata implements Serializable {
         return size;
     }
 
+    public Integer getEspg() {
+        return espg;
+    }
+
+    public String getProjection() {
+        return projection;
+    }
+
     @Override
     public String toString() {
-        return this.band_source.GetProjection();
+        return
+            "utm: " + this.utm + " | " +
+            "resolution: " + this.resolution + " | " +
+            "band_name: " + this.band_name + " | " +
+            "band_path: " + this.local_path.substring(this.local_path.lastIndexOf("/")+1) + " :  " +
+            "espg: " + this.espg + " | " +
+            "pixel_resolution: " + this.pixel_resolution + " | " +
+            "ul: " + this.ul + " | " +
+            "lr: " + this.lr + " | " +
+            "size: " + this.size
+//            this.projection + "\n"
+                ;
     }
 }