| | |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.Instant; |
| | | import java.time.LocalDateTime; |
| | | import java.time.ZoneId; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.*; |
| | | import java.util.List; |
| | | |
| | |
| | | public void setTerrainInfo(Dataset ds, LayerDto layer) { |
| | | Geometry minPoint = GdalHelper.getMinPoint(ds); |
| | | Geometry maxPoint = GdalHelper.getMaxPoint(ds); |
| | | double minx = ComHelper.getMinVal(minPoint.GetX(0), 10000000); |
| | | double miny = ComHelper.getMinVal(minPoint.GetY(0), 10000000); |
| | | double maxx = ComHelper.getMaxVal(maxPoint.GetX(0) + MAX_X_OFFSET, 10000000); |
| | | double maxy = ComHelper.getMaxVal(maxPoint.GetY(0), 10000000); |
| | | // double minx = ComHelper.getMinVal(minPoint.GetX(0), 10000000); |
| | | // double miny = ComHelper.getMinVal(minPoint.GetY(0), 10000000); |
| | | // double maxx = ComHelper.getMaxVal(maxPoint.GetX(0) + MAX_X_OFFSET, 10000000); |
| | | // double maxy = ComHelper.getMaxVal(maxPoint.GetY(0), 10000000); |
| | | double minx = Double.MAX_VALUE; |
| | | double miny = Double.MAX_VALUE; |
| | | double maxx = Double.MIN_VALUE; |
| | | double maxy = Double.MIN_VALUE; |
| | | //layer.setExtension(new ExtensionDto(minx, miny, maxx, maxy, Double.MAX_VALUE, Double.MIN_VALUE)); |
| | | |
| | | Band band = ds.GetRasterBand(1); |
| | |
| | | } |
| | | |
| | | public void setWaterData(LayerDto layer, List<String> files) { |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); |
| | | for (String file : files) { |
| | | String fileName = ComHelper.getNameWithExt(file); |
| | | LocalDateTime dateTime = LocalDateTime.parse(fileName, formatter); |
| | | Instant instant = dateTime.atZone(ZoneId.systemDefault()).toInstant(); |
| | | long timestamp = instant.toEpochMilli(); |
| | | layer.getWaters().getData().add(timestamp); |
| | | } |
| | | layer.getDuration().setStart(layer.getWaters().getData().get(0)); |
| | | layer.getDuration().setEnd(layer.getWaters().getData().get(layer.getWaters().getData().size() - 1)); |
| | | } |
| | | |
| | | /*public void setWaterData(LayerDto layer, List<String> files) { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(new Date()); |
| | | calendar.set(Calendar.MILLISECOND, 0); |
| | |
| | | } |
| | | layer.getDuration().setStart(layer.getWaters().getData().get(0)); |
| | | layer.getDuration().setEnd(layer.getWaters().getData().get(layer.getWaters().getData().size() - 1)); |
| | | } |
| | | }*/ |
| | | |
| | | public void setWaterHeight(LayerDto layer, List<String> files) { |
| | | int c = files.size(), step = files.size() / 10; |
| | |
| | | for (int[] sizes : layer.getTerrain().getSize()) { |
| | | String name = ComHelper.getNameWithExt(ds.GetDescription()) + "_" + sizes[0] + "_" + sizes[1]; |
| | | String tif = dto.getTemp() + File.separator + name + ".tif"; |
| | | ComHelper.Resample(ds, tif, sizes[0], sizes[1], layer); |
| | | // ComHelper.Resample(ds, tif, sizes[0], sizes[1], layer); |
| | | if (!new File(tif).exists()) continue; |
| | | |
| | | String png = flowPath + File.separator + sizes[0] + "_" + sizes[1] + ".png"; |