ecw파일을TMS jpg로변환가이드.md
· 2.9 KiB · Markdown
Eredeti
## 🛰️ ECW to JPEG TMS 타일 변환 가이드
### 개요
* **원본 데이터:** ECW (EPSG:5187 - 중부원점 2010)
* **변환 목표:** Web Mercator (EPSG:3857) 기반 JPEG 타일
* **서비스 환경:** GeoServer + OpenLayers (TMS 방식)
---
### **Step 0. 원본 좌표계 확인 (gdalinfo)**
원본 파일의 투영 정보가 **EPSG:5187**인지 확인합니다. (제공해주신 이미지상에서 확인 완료)
```bash
gdalinfo "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.ecw"
```
---
### **Step 1. 웹 지도용 좌표 변환 (gdalwarp)**
웹 지도의 표준인 `EPSG:3857`으로 투영법을 변경합니다. 실시간 변환 대신 `VRT`(가상 데이터셋) 형식을 사용하여 속도를 높이고 불필요한 중간 파일 생성을 방지합니다.
```bash
gdalwarp -of VRT -s_srs EPSG:5187 -t_srs EPSG:3857 ^
"C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.ecw" ^
"C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.vrt"
```
---
### **Step 2. 밴드 추출 및 데이터 정규화 (gdal_translate)**
ECW 파일이 4밴드(RGB + Alpha 등)인 경우, JPEG 타일 생성을 위해 명시적으로 3개 밴드(RGB)만 추출하고 데이터 타입을 `Byte`로 고정합니다.
```bash
gdal_translate -of VRT -b 1 -b 2 -b 3 -ot Byte ^
"C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.vrt" ^
"C:\Users\ASUS\Desktop\UJDRN\UJDRN6319_byte.vrt"
```
---
### **Step 3. 최적화된 JPEG 타일 생성 (gdal2tiles)**
GeoServer의 TMS 서비스 규격에 호환되도록 타일을 생성합니다.
```bash
gdal2tiles --processes=4 ^
-z 16-21 ^
-w openlayers ^
--tmscompatible ^
--tiledriver=JPEG ^
"C:\Users\ASUS\Desktop\UJDRN\UJDRN6319_byte.vrt" ^
"C:\Users\ASUS\Desktop\UJDRN\UJDRN6319"
```
#### 💡 옵션 핵심 포인트
* **`--tmscompatible`**: GeoServer의 TMS 엔진이 사용하는 Y축 번호 체계(아래가 0)에 맞춥니다.
* **`--tiledriver=JPEG`**: 용량 최적화를 위해 JPEG로 출력합니다. (200MB 수준으로 효율적 관리 가능)
* **`-w openlayers`**: 변환 후 즉시 확인할 수 있는 OpenLayers용 `openlayers.html` 파일을 자동 생성합니다.
---
### **Step 4. OpenLayers 연동 (GeoServer 활용 시)**
GeoServer에 이 타일을 등록한 후 OpenLayers에서 호출할 때, Y축이 반전되어 보인다면 아래와 같이 `{-y}` 문법을 사용하거나 `tileGrid` 설정을 확인해야 합니다.
**[OpenLayers 호출 예시 코드]**
```javascript
const tmsLayer = new ol.layer.Tile({
source: new ol.source.XYZ({
// GeoServer의 GWC(GeoWebCache) 또는 타일 경로 입력
// --tmscompatible 옵션을 썼으므로 {-y}가 필요할 수 있음
url: 'http://your-server/tiles/UJDRN6319/{z}/{x}/{-y}.jpg',
wrapX: true
})
});
```
---
### **최종 결과 요약**
* **파일 포맷:** JPEG (.jpg)
* **총 용량:** 약 200MB (항공사진 줌 21레벨 대비 매우 우수)
* **호환성:** GeoServer TMS 표준 및 OpenLayers 최적화
🛰️ ECW to JPEG TMS 타일 변환 가이드
개요
- 원본 데이터: ECW (EPSG:5187 - 중부원점 2010)
- 변환 목표: Web Mercator (EPSG:3857) 기반 JPEG 타일
- 서비스 환경: GeoServer + OpenLayers (TMS 방식)
Step 0. 원본 좌표계 확인 (gdalinfo)
원본 파일의 투영 정보가 EPSG:5187인지 확인합니다. (제공해주신 이미지상에서 확인 완료)
gdalinfo "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.ecw"
Step 1. 웹 지도용 좌표 변환 (gdalwarp)
웹 지도의 표준인 EPSG:3857으로 투영법을 변경합니다. 실시간 변환 대신 VRT(가상 데이터셋) 형식을 사용하여 속도를 높이고 불필요한 중간 파일 생성을 방지합니다.
gdalwarp -of VRT -s_srs EPSG:5187 -t_srs EPSG:3857 ^
"C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.ecw" ^
"C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.vrt"
Step 2. 밴드 추출 및 데이터 정규화 (gdal_translate)
ECW 파일이 4밴드(RGB + Alpha 등)인 경우, JPEG 타일 생성을 위해 명시적으로 3개 밴드(RGB)만 추출하고 데이터 타입을 Byte로 고정합니다.
gdal_translate -of VRT -b 1 -b 2 -b 3 -ot Byte ^
"C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.vrt" ^
"C:\Users\ASUS\Desktop\UJDRN\UJDRN6319_byte.vrt"
Step 3. 최적화된 JPEG 타일 생성 (gdal2tiles)
GeoServer의 TMS 서비스 규격에 호환되도록 타일을 생성합니다.
gdal2tiles --processes=4 ^
-z 16-21 ^
-w openlayers ^
--tmscompatible ^
--tiledriver=JPEG ^
"C:\Users\ASUS\Desktop\UJDRN\UJDRN6319_byte.vrt" ^
"C:\Users\ASUS\Desktop\UJDRN\UJDRN6319"
💡 옵션 핵심 포인트
--tmscompatible: GeoServer의 TMS 엔진이 사용하는 Y축 번호 체계(아래가 0)에 맞춥니다.--tiledriver=JPEG: 용량 최적화를 위해 JPEG로 출력합니다. (200MB 수준으로 효율적 관리 가능)-w openlayers: 변환 후 즉시 확인할 수 있는 OpenLayers용openlayers.html파일을 자동 생성합니다.
Step 4. OpenLayers 연동 (GeoServer 활용 시)
GeoServer에 이 타일을 등록한 후 OpenLayers에서 호출할 때, Y축이 반전되어 보인다면 아래와 같이 {-y} 문법을 사용하거나 tileGrid 설정을 확인해야 합니다.
[OpenLayers 호출 예시 코드]
const tmsLayer = new ol.layer.Tile({
source: new ol.source.XYZ({
// GeoServer의 GWC(GeoWebCache) 또는 타일 경로 입력
// --tmscompatible 옵션을 썼으므로 {-y}가 필요할 수 있음
url: 'http://your-server/tiles/UJDRN6319/{z}/{x}/{-y}.jpg',
wrapX: true
})
});
최종 결과 요약
- 파일 포맷: JPEG (.jpg)
- 총 용량: 약 200MB (항공사진 줌 21레벨 대비 매우 우수)
- 호환성: GeoServer TMS 표준 및 OpenLayers 최적화