Browse Source

수치표고모델 해상도(/4) 및 크기(한반도 -> 남한) 수정

pull/12/head
지대한 11 months ago
parent
commit
63d17ff450
  1. 5
      docker-compose.yml
  2. 2
      pav-server/src/main/java/com/palnet/biz/config/InitRunner.java
  3. 26
      pav-server/src/main/java/com/palnet/comn/utils/DigitalElevationModelUtils.java
  4. BIN
      pav-server/src/main/resources/map/dem/dem_korea_010.tif
  5. BIN
      pav-server/src/main/resources/map/dem/dem_korea_011.tif
  6. BIN
      pav-server/src/main/resources/map/dem/dem_korea_012.tif

5
docker-compose.yml

@ -3,7 +3,8 @@ version: '2.1'
services: services:
server: server:
build: pav-server build: pav-server
mem_limit: 512m
ports:
- "9000:8080"
environment: environment:
- SPRING_PROFILES_ACTIVE=local - SPRING_PROFILES_ACTIVE=local
ports:
- "9000:8080"

2
pav-server/src/main/java/com/palnet/biz/config/InitRunner.java

@ -15,7 +15,7 @@ public class InitRunner implements ApplicationRunner {
log.info("===== InitRunner run ====="); log.info("===== InitRunner run =====");
// DEM(Digital Elevation Model load // DEM(Digital Elevation Model load
try { try {
DigitalElevationModelUtils.getInstance(); DigitalElevationModelUtils demUtils = DigitalElevationModelUtils.getInstance();
} catch (Exception e) { } catch (Exception e) {
log.warn("===== InitRunner run error[DigitalElevationModelUtils] : {}", e.getMessage()); log.warn("===== InitRunner run error[DigitalElevationModelUtils] : {}", e.getMessage());
} }

26
pav-server/src/main/java/com/palnet/comn/utils/DigitalElevationModelUtils.java

@ -5,7 +5,6 @@ import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.geotools.coverage.grid.GridCoordinates2D; import org.geotools.coverage.grid.GridCoordinates2D;
import org.geotools.coverage.grid.GridCoverage2D; import org.geotools.coverage.grid.GridCoverage2D;
import org.geotools.coverage.grid.GridGeometry2D; import org.geotools.coverage.grid.GridGeometry2D;
@ -23,8 +22,6 @@ import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver;
import java.awt.image.Raster; import java.awt.image.Raster;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -32,6 +29,7 @@ import java.util.List;
public class DigitalElevationModelUtils { public class DigitalElevationModelUtils {
private final String CLASS_PATH = "map/dem"; private final String CLASS_PATH = "map/dem";
private List<DigitalElevationModel> dems; private List<DigitalElevationModel> dems;
// private List<GridCoverage2D>
private DigitalElevationModelUtils() { private DigitalElevationModelUtils() {
// 초기화 // 초기화
@ -54,27 +52,23 @@ public class DigitalElevationModelUtils {
List<DigitalElevationModel> demList = new ArrayList<>(); List<DigitalElevationModel> demList = new ArrayList<>();
// 클래스 경로 내의 디렉토리 내의 모든 파일을 검색합니다. // 클래스 경로 내의 디렉토리 내의 모든 파일을 검색합니다.
try { try {
Resource[] resources = resolver.getResources("classpath:" + CLASS_PATH + "/dem_*.tif"); Resource[] resources = resolver.getResources("classpath:" + CLASS_PATH + "/dem_korea_012.tif");
for (Resource resource : resources) { for (Resource resource : resources) {
log.info("load file name : {}", resource.getFilename());
if (!resource.exists()) { if (!resource.exists()) {
log.info("this is not file : {}", resource.getFilename()); log.info("this is not file : {}", resource.getFilename());
continue; continue;
} }
File file = File.createTempFile("dem", ".tif"); AbstractGridFormat format = GridFormatFinder.findFormat(resource.getInputStream());
FileUtils.copyInputStreamToFile(resource.getInputStream(), file); GridCoverage2DReader reader = format.getReader(resource.getInputStream());
log.info(">>> file : {}", file);
log.info(">>> file : {}", file.exists());
log.info(">>> file : {}", file.isFile());
AbstractGridFormat format = GridFormatFinder.findFormat(file);
GridCoverage2DReader reader = format.getReader(file);
GridCoverage2D coverage = reader.read(null); GridCoverage2D coverage = reader.read(null);
Raster raster = coverage.getRenderedImage().getData(); Raster raster = coverage.getRenderedImage().getData();
log.info(">>> coverage : {}", coverage);
log.info(">>> raster : {}", raster);
demList.add(DigitalElevationModel.builder() demList.add(DigitalElevationModel.builder()
.coverage(coverage) .coverage(coverage)
.raster(raster) .raster(raster)
@ -83,8 +77,11 @@ public class DigitalElevationModelUtils {
} }
} catch (Exception e) { } catch (Exception e) {
log.warn("dem load error : {}", e.getMessage()); log.warn("dem load error : {}", e.getMessage());
log.error("", e);
} }
// log.info(">>> demList size : {}", demList);
log.info(">>> demList size : {}", demList.size()); log.info(">>> demList size : {}", demList.size());
this.dems = demList; this.dems = demList;
} }
@ -101,6 +98,7 @@ public class DigitalElevationModelUtils {
for (DigitalElevationModel dem : this.dems) { for (DigitalElevationModel dem : this.dems) {
Raster raster = dem.getRaster(); Raster raster = dem.getRaster();
// if(raster == null) raster = dem.getCoverage().getRenderedImage().getData();
GridGeometry2D gridGeometry = dem.getCoverage().getGridGeometry(); GridGeometry2D gridGeometry = dem.getCoverage().getGridGeometry();
GridCoordinates2D posGrid = null; GridCoordinates2D posGrid = null;

BIN
pav-server/src/main/resources/map/dem/dem_korea_010.tif

Binary file not shown.

BIN
pav-server/src/main/resources/map/dem/dem_korea_011.tif

Binary file not shown.

BIN
pav-server/src/main/resources/map/dem/dem_korea_012.tif

Binary file not shown.
Loading…
Cancel
Save