private GeoCoding addTiePointGridGeo(ImageMetadata metadata, int width, int height) { float[][] cornerLonsLats = metadata.getCornerLonsLats(); int sceneWidth = width; int sceneHeight = height; TiePointGrid latGrid = createTiePointGrid("latitude", 2, 2, 0, 0, sceneWidth , sceneHeight, cornerLonsLats[1]); TiePointGrid lonGrid = createTiePointGrid("longitude", 2, 2, 0, 0, sceneWidth, sceneHeight, cornerLonsLats[0]); return new TiePointGeoCoding(latGrid, lonGrid); }
private GeoCoding addTiePointGridGeo(ImageMetadata metadata, int width, int height) { float[][] cornerLonsLats = metadata.getCornerLonsLats(); int sceneWidth = width; int sceneHeight = height; TiePointGrid latGrid = createTiePointGrid("latitude", 2, 2, 0, 0, sceneWidth, sceneHeight, cornerLonsLats[1]); TiePointGrid lonGrid = createTiePointGrid("longitude", 2, 2, 0, 0, sceneWidth, sceneHeight, cornerLonsLats[0]); return new TiePointGeoCoding(latGrid, lonGrid); }
private void initGeoCoding(Product product) { DeimosMetadata deimosMetadata = metadata.get(0); DeimosMetadata.InsertionPoint[] geopositionPoints = deimosMetadata.getGeopositionPoints(); if (geopositionPoints != null) { int numPoints = geopositionPoints.length; if (numPoints > 1 && (int)(numPoints / Math.sqrt((double)numPoints)) == numPoints) { float stepX = geopositionPoints[1].stepX - geopositionPoints[0].stepX; float stepY = geopositionPoints[1].stepY - geopositionPoints[0].stepY; float[] latitudes = new float[numPoints]; float[] longitudes = new float[numPoints]; for (int i = 0; i < numPoints; i++) { latitudes[i] = geopositionPoints[i].y; longitudes[i] = geopositionPoints[i].x; } TiePointGrid latGrid = addTiePointGrid(stepX, stepY, product, DeimosConstants.LATITUDE_BAND_NAME, latitudes); TiePointGrid lonGrid = addTiePointGrid(stepX, stepY, product, DeimosConstants.LONGITUDE_BAND_NAME, longitudes); GeoCoding geoCoding = new TiePointGeoCoding(latGrid, lonGrid); product.setSceneGeoCoding(geoCoding); } } }
public static void setTiePointGeoCoding(final Product product) { TiePointGrid lonGrid = null, latGrid = null; for (String lonStr : NetcdfConstants.LON_VAR_NAMES) { lonGrid = product.getTiePointGrid(lonStr); if (lonGrid != null) break; } for (String latStr : NetcdfConstants.LAT_VAR_NAMES) { latGrid = product.getTiePointGrid(latStr); if (latGrid != null) break; } if (latGrid != null && lonGrid != null) { final TiePointGeoCoding tpGeoCoding = new TiePointGeoCoding(latGrid, lonGrid); product.setSceneGeoCoding(tpGeoCoding); } }
/** * Uses the 4 lat-lon corners of a detector to create the geocoding */ private GeoCoding getGeoCodingFromTileBandInfo(L1BBandInfo tileBandInfo, Map<String, Tile> tileList, Product product) { Objects.requireNonNull(tileBandInfo); Objects.requireNonNull(tileList); Objects.requireNonNull(product); Set<String> ourTileIds = tileBandInfo.getTileIdToPathMap().keySet(); List<Tile> aList = new ArrayList<>(ourTileIds.size()); List<Coordinate> coords = new ArrayList<>(); for (String tileId : ourTileIds) { Tile currentTile = tileList.get(tileId); aList.add(currentTile); } // sort tiles by position Collections.sort(aList, (Tile u1, Tile u2) -> u1.getTileGeometry(S2SpatialResolution.R10M).getPosition().compareTo(u2.getTileGeometry(S2SpatialResolution.R10M).getPosition())); coords.add(aList.get(0).corners.get(0)); coords.add(aList.get(0).corners.get(3)); coords.add(aList.get(aList.size() - 1).corners.get(1)); coords.add(aList.get(aList.size() - 1).corners.get(2)); float[] lats = convertDoublesToFloats(getLatitudes(coords)); float[] lons = convertDoublesToFloats(getLongitudes(coords)); TiePointGrid latGrid = addTiePointGrid(aList.get(0).getTileGeometry(S2SpatialResolution.R10M).getNumCols(), aList.get(0).getTileGeometry(S2SpatialResolution.R10M).getNumRowsDetector(), tileBandInfo.getDetectorId() + tileBandInfo.getBandInformation().getPhysicalBand() + ",latitude", lats); product.addTiePointGrid(latGrid); TiePointGrid lonGrid = addTiePointGrid(aList.get(0).getTileGeometry(S2SpatialResolution.R10M).getNumCols(), aList.get(0).getTileGeometry(S2SpatialResolution.R10M).getNumRowsDetector(), tileBandInfo.getDetectorId() + tileBandInfo.getBandInformation().getPhysicalBand() + ",longitude", lons); product.addTiePointGrid(lonGrid); return new TiePointGeoCoding(latGrid, lonGrid); }
private GeoCoding addTiePointGridGeo(Kompsat2Metadata metadata, Band targetBand) { float[][] cornerLonsLats = metadata.getMetadataComponent().getTiePointGridPoints(); int sceneWidth = targetBand.getRasterWidth(); int sceneHeight = targetBand.getRasterHeight(); TiePointGrid latGrid = createTiePointGrid(Kompsat2Constants.LAT_DS_NAME, 2, 2, 0, 0, sceneWidth , sceneHeight, cornerLonsLats[0]); TiePointGrid lonGrid = createTiePointGrid(Kompsat2Constants.LON_DS_NAME, 2, 2, 0, 0, sceneWidth, sceneHeight, cornerLonsLats[1]); return new TiePointGeoCoding(latGrid, lonGrid); }
lonGrid.setUnit(Unit.DEGREES); final TiePointGeoCoding tpGeoCoding = new TiePointGeoCoding(latGrid, lonGrid);
private void initProductTiePointGeoCoding(ImageMetadata imageMetadata, Product product) { float[][] cornerLonsLats = imageMetadata.getCornerLonsLats(); int sceneWidth = product.getSceneRasterWidth(); int sceneHeight = product.getSceneRasterHeight(); TiePointGrid latGrid = createTiePointGrid("latitude", 2, 2, 0, 0, sceneWidth , sceneHeight, cornerLonsLats[1]); product.addTiePointGrid(latGrid); TiePointGrid lonGrid = createTiePointGrid("longitude", 2, 2, 0, 0, sceneWidth, sceneHeight, cornerLonsLats[0]); product.addTiePointGrid(lonGrid); product.setSceneGeoCoding(new TiePointGeoCoding(latGrid, lonGrid)); }
private void initProductTiePointGeoCoding(ImageMetadata imageMetadata, Product product) { float[][] cornerLonsLats = imageMetadata.getCornerLonsLats(); int sceneWidth = product.getSceneRasterWidth(); int sceneHeight = product.getSceneRasterHeight(); TiePointGrid latGrid = createTiePointGrid("latitude", 2, 2, 0, 0, sceneWidth , sceneHeight, cornerLonsLats[1]); product.addTiePointGrid(latGrid); TiePointGrid lonGrid = createTiePointGrid("longitude", 2, 2, 0, 0, sceneWidth, sceneHeight, cornerLonsLats[0]); product.addTiePointGrid(lonGrid); product.setSceneGeoCoding(new TiePointGeoCoding(latGrid, lonGrid)); }
private void initGeoCoding(Product product) { TiePointGrid latGrid = addTiePointGrid(product.getSceneRasterWidth(), product.getSceneRasterHeight(), product, "latitude", metadata.getCornersLatitudes()); TiePointGrid lonGrid = addTiePointGrid(product.getSceneRasterWidth(), product.getSceneRasterHeight(), product, "longitude", metadata.getCornersLongitudes()); GeoCoding geoCoding = new TiePointGeoCoding(latGrid, lonGrid); product.setSceneGeoCoding(geoCoding); }
0.0f, 0.0f, (int) subSamplingX, (int) subSamplingY, targetLonTiePoints, TiePointGrid.DISCONT_AT_180); final TiePointGeoCoding tpGeoCoding = new TiePointGeoCoding(latGrid, lonGrid);
/** * Creates geo-coding based on latitude/longitude {@code TiePointGrid}s</li> * * @param k2Metadata Kompsat2Metadata parameter * @param product Product to add TiePointGrid and TiePointGridGeoCoding */ private void initProductTiePointGeoCoding(Kompsat2Metadata k2Metadata, Product product) { float[][] cornerLonsLats = k2Metadata.getMetadataComponent().getTiePointGridPoints(); int sceneWidth = product.getSceneRasterWidth(); int sceneHeight = product.getSceneRasterHeight(); TiePointGrid latGrid = createTiePointGrid(Kompsat2Constants.LAT_DS_NAME, 2, 2, 0, 0, sceneWidth , sceneHeight, cornerLonsLats[0]); product.addTiePointGrid(latGrid); TiePointGrid lonGrid = createTiePointGrid(Kompsat2Constants.LON_DS_NAME, 2, 2, 0, 0, sceneWidth, sceneHeight, cornerLonsLats[1]); product.addTiePointGrid(lonGrid); if (latGrid != null && lonGrid != null) { product.setSceneGeoCoding(new TiePointGeoCoding(latGrid, lonGrid)); } }
if (latGrid != null && lonGrid != null) { resultProduct.setSceneGeoCoding( new TiePointGeoCoding(latGrid, lonGrid, sourceProduct.getSceneGeoCoding().getGeoCRS()));
private void initTiePointGeoCoding(Product product) { TiePoint[] tiePoints = imageMetadata.getTiePoints(); if (tiePoints != null && tiePoints.length == 4) { float[] latPoints = new float[tiePoints.length]; float[] lonPoints = new float[tiePoints.length]; for (int i = 0; i < tiePoints.length; i++) { latPoints[(i != 2 ? (i != 3 ? i : 2) : 3)] = (float) tiePoints[i].getValueAt(4); lonPoints[(i != 2 ? (i != 3 ? i : 2) : 3)] = (float) tiePoints[i].getValueAt(3); } TiePointGrid latGrid = createTiePointGrid("latitude", 2, 2, 0, 0, metadata.getRasterWidth(), metadata.getRasterHeight(), latPoints); product.addTiePointGrid(latGrid); TiePointGrid lonGrid = createTiePointGrid("longitude", 2, 2, 0, 0, metadata.getRasterWidth(), metadata.getRasterHeight(), lonPoints); product.addTiePointGrid(lonGrid); GeoCoding geoCoding = new TiePointGeoCoding(latGrid, lonGrid); product.setSceneGeoCoding(geoCoding); } }
product.addTiePointGrid(incidentAngleGrid); final TiePointGeoCoding tpGeoCoding = new TiePointGeoCoding(latGrid, lonGrid); product.setSceneGeoCoding(tpGeoCoding);
setLatLongMetadata(product, latGrid, lonGrid); final TiePointGeoCoding tpGeoCoding = new TiePointGeoCoding(latGrid, lonGrid); product.setSceneGeoCoding(tpGeoCoding); return; setLatLongMetadata(product, latGrid, lonGrid); final TiePointGeoCoding tpGeoCoding = new TiePointGeoCoding(latGrid, lonGrid); product.setSceneGeoCoding(tpGeoCoding);
lonGrid.setUnit(Unit.DEGREES); final TiePointGeoCoding tpGeoCoding = new TiePointGeoCoding(latGrid, lonGrid);
lonGrid.setUnit(Unit.DEGREES); final TiePointGeoCoding tpGeoCoding = new TiePointGeoCoding(latGrid, lonGrid);
lonGrid.setUnit(Unit.DEGREES); final TiePointGeoCoding tpGeoCoding = new TiePointGeoCoding(latGrid, lonGrid);
final TiePointGeoCoding tpGeoCoding = new TiePointGeoCoding(latGrid, lonGrid); band.setGeoCoding(tpGeoCoding);