Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 105 additions & 7 deletions src/main/java/esa/sen2vm/Sen2VM.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;

import java.util.Arrays;

import java.util.Vector;
import java.util.HashMap;
import java.util.List;
Expand All @@ -44,7 +47,7 @@
import esa.sen2vm.enums.DetectorInfo;
import esa.sen2vm.exception.Sen2VMException;
import esa.sen2vm.input.Configuration;
import esa.sen2vm.input.GenericDemFileManager;
import esa.sen2vm.input.DEM.GenericDemFileManager;
import esa.sen2vm.input.OptionManager;
import esa.sen2vm.input.Params;
import esa.sen2vm.input.datastrip.DataStripManager;
Expand Down Expand Up @@ -177,7 +180,6 @@ public static void main( String[] args ) throws Sen2VMException, Exception

//Using Sen2VM FileManager
GenericDemFileManager demFileManager = new GenericDemFileManager(config.getDem());
demFileManager.buildMap(config.getDem());

GeoidManager geoidManager = new GeoidManager(config.getGeoid(), isOverlappingTiles);
DemManager demManager = new DemManager(
Expand Down Expand Up @@ -256,11 +258,11 @@ public static void main( String[] args ) throws Sen2VMException, Exception
// Test if no grids exists already
if (config.getOperation().equals(Sen2VMConstants.DIRECT))
{
safeManager.testifDirectGridsToComputeAlreadyExist(detectors, bands) ;
safeManager.testifDirectGridsToComputeAlreadyExist(detectors, bands);
}
else
{
safeManager.testifInverseGridsToComputeAlreadyExist(detectors, bands, config.getInverseLocOutputFolder()) ;
safeManager.testifInverseGridsToComputeAlreadyExist(detectors, bands, config.getInverseLocOutputFolder());
}

for (BandInfo bandInfo: bands)
Expand Down Expand Up @@ -335,7 +337,6 @@ public static void main( String[] args ) throws Sen2VMException, Exception
// Correction post build VRT
outputFileManager.correctGeoGrid(inputTIFs);
outputFileManager.correctVRT(vrtFileName);

}

// Inverse Loc case
Expand All @@ -348,6 +349,103 @@ public static void main( String[] args ) throws Sen2VMException, Exception
double[][] groundGrid = invGrid.get2DgridLatLon();

double[][] inverseLocGrid = simpleLocEngine.computeInverseLoc(sensorList.get(bandInfo.getNameWithB() + "/" + detectorInfo.getNameWithD()), groundGrid, "EPSG:4326");

LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");

// DD 06
// double[][] coords = new double[4][3];
// coords[0][1] = 32.99235766783721; //lat
// coords[0][0] = -18.210695132287352; //lon
// coords[1][1] = 32.99456809413312; //lat
// coords[1][0] = -17.740052645288863; //lon
// coords[2][1] = 33.01; //lat
// coords[2][0] = -17.740052645288863; //lon
// coords[3][1] = 32.98456809413312; //lat
// coords[3][0] = -17.740052645288863; //lon

// double[][] inverseLocGrid_2 = simpleLocEngine.computeInverseLoc(sensorList.get(bandInfo.getNameWithB() + "/" + detectorInfo.getNameWithD()), coords, "EPSG:4326");
// LOGGER.info(String.valueOf(coords[0][0]) + "," + String.valueOf(coords[0][1]));
// LOGGER.info(String.valueOf(inverseLocGrid_2[0][0]) + "," + String.valueOf(inverseLocGrid_2[0][1]));
// LOGGER.info(String.valueOf(coords[1][0]) + "," + String.valueOf(coords[1][1]));
// LOGGER.info(String.valueOf(inverseLocGrid_2[1][0]) + "," + String.valueOf(inverseLocGrid_2[1][1]));
// LOGGER.info(String.valueOf(coords[2][0]) + "," + String.valueOf(coords[2][1]));
// LOGGER.info(String.valueOf(inverseLocGrid_2[2][0]) + "," + String.valueOf(inverseLocGrid_2[2][1]));
// LOGGER.info(String.valueOf(coords[3][0]) + "," + String.valueOf(coords[3][1]));
// LOGGER.info(String.valueOf(inverseLocGrid_2[3][0]) + "," + String.valueOf(inverseLocGrid_2[3][1]));

// double[][] directs = new double[2][2];
// directs[0][0] = 1041; directs[0][1] = 75;
// directs[1][0] = 1014; directs[1][1] = 68;
// double[][] directLocGrid = simpleLocEngine.computeDirectLoc(sensorList.get(bandInfo.getNameWithB() + "/" + detectorInfo.getNameWithD()), directs);
// LOGGER.info(String.valueOf(directs[0][0]) + "," + String.valueOf(directs[0][1]));
// LOGGER.info(String.valueOf(directLocGrid[0][0]) + "," + String.valueOf(directLocGrid[0][1])+ "," + String.valueOf(directLocGrid[0][2]));
// LOGGER.info(String.valueOf(directs[1][0]) + "," + String.valueOf(directs[1][1]));
// LOGGER.info(String.valueOf(directLocGrid[1][0]) + "," + String.valueOf(directLocGrid[1][1])+ "," + String.valueOf(directLocGrid[1][2]));





int size = 5;
// DD 08
double[][] coords = new double[size][3];
coords[0][1] = 33.277; //lat
coords[0][0] = -17.146; //lon
coords[1][1] = 33.342; //lat
coords[1][0] = -16.931; //lon
coords[2][1] = 32.941; //lat
coords[2][0] = -17.158; //lon
coords[3][1] = 32.746; //lat
coords[3][0] = -17.083; //lon
coords[4][1] = 32.345; //lat
coords[4][0] = -17.273; //lon

double[][] inverseLocGrid_2 = simpleLocEngine.computeInverseLoc(sensorList.get(bandInfo.getNameWithB() + "/" + detectorInfo.getNameWithD()), coords, "EPSG:4326");

for (int i = 0; i<size; i++)
{
LOGGER.info(String.valueOf(coords[i][0]) + "," + String.valueOf(coords[i][1]));
LOGGER.info(String.valueOf(inverseLocGrid_2[i][0]) + "," + String.valueOf(inverseLocGrid_2[i][1]));
}

double[][] directs = new double[5][2];
directs[0][0] = 352; directs[0][1] = 54;
directs[1][0] = 162; directs[1][1] = 350;
directs[2][0] = 926; directs[2][1] = 183;
directs[3][0] = 1232; directs[3][1] = 383;
directs[4][0] = 1984; directs[4][1] = 270;
double[][] directLocGrid = simpleLocEngine.computeDirectLoc(sensorList.get(bandInfo.getNameWithB() + "/" + detectorInfo.getNameWithD()), directs);

for (int i = 0; i<size; i++)
{
LOGGER.info(String.valueOf(directs[i][0]) + "," + String.valueOf(directs[i][1]));
LOGGER.info(String.valueOf(directLocGrid[i][0]) + "," + String.valueOf(directLocGrid[i][1])+ "," + String.valueOf(directLocGrid[i][2]));
}

LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");
LOGGER.info("DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG");

double[][][] grid3D = invGrid.get3Dgrid(inverseLocGrid, georefConventionOffsetPixel, -georefConventionOffsetLine);

String invFileName = datastrip.getCorrespondingInverseLocGrid(detectorInfo, bandInfo, config.getInverseLocOutputFolder());
Expand All @@ -368,11 +466,11 @@ public static void main( String[] args ) throws Sen2VMException, Exception
}
outputFileManager.writeInfoJson(config, bands, detectors, outputConfigPath);
}
catch ( IOException exception )
catch (IOException exception)
{
throw new Sen2VMException(exception);
}
catch ( SXGeoException exception )
catch (SXGeoException exception)
{
String newMessage = "";
if(exception.toString().contains("Cant find bundle for base name S2GeoMessages"))
Expand Down
31 changes: 31 additions & 0 deletions src/main/java/esa/sen2vm/input/DEM/DemTile.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package esa.sen2vm.input.DEM;

public class DemTile
{
public double minX;
public double maxX;
public double minY;
public double maxY;
public String filePath;

public DemTile(double a_minX, double a_maxX, double a_minY, double a_maxY, String filePathString)
{
minX = a_minX;
maxX = a_maxX;
minY = a_minY;
maxY = a_maxY;
filePath = filePathString;
}

public boolean containPoint(double x, double y)
{
return x >= minX && x <= maxX &&
y >= minY && y <= maxY;
}

@Override
public String toString()
{
return "DemTile (" + minX + ";" + maxX + "),(" + minY + ";" + maxY + ")" + filePath;
}
}
Loading
Loading