Ultima attività 1773317816

OGG ha revisionato questo gist 1773317816. Vai alla revisione

1 file changed, 13 insertions, 1 deletion

\352\263\240\354\232\251\353\237\211 ecw\355\214\214\354\235\274\354\235\204 TMS jpg\353\241\234 \353\263\200\355\231\230 \352\260\200\354\235\264\353\223\234.md"

@@ -75,4 +75,16 @@ gdal2tiles --processes=8 ^
75 75 * **메모리 활용 (`GDAL_CACHEMAX`)**: 시스템 RAM이 넉넉하다면 `GDAL_CACHEMAX`를 높게 설정하세요. 2GB 이상의 파일을 다룰 때는 최소 4096(4GB) 이상을 권장합니다.
76 76 * **용량 최적화**: 작성하신 스크립트에서 2GB ECW가 188MB JPG 타일로 줄어든 것은 매우 효율적인 결과입니다. 만약 용량을 더 줄여야 한다면 `--xyz` 방식 검토나 JPEG 퀄리티 조절이 필요할 수 있습니다.
77 77 * **병렬 처리**: `--processes` 옵션은 본인 컴퓨터의 논리 프로세서(Thread) 수에 맞춰 조절하면 비약적인 속도 향상을 볼 수 있습니다.
78 - * **VRT의 이점**: 중간 단계에서 `warped.tif` 같은 대용량 파일을 생성하지 않으므로 디스크 I/O 병목 현상을 방지할 수 있습니다.
78 + * **VRT의 이점**: 중간 단계에서 `warped.tif` 같은 대용량 파일을 생성하지 않으므로 디스크 I/O 병목 현상을 방지할 수 있습니다.
79 +
80 + ---
81 +
82 + ### **최종 결과 요약**
83 +
84 + * **시작 파일 포맷:** ECW
85 + * **시작 파일 용량:** 약 2.2GB
86 +
87 + * **변환 파일 포맷:** JPEG (.jpg)
88 + * **변환 파일 용량:** 약 188MB
89 +
90 + * **호환성:** GeoServer TMS 표준 및 OpenLayers 최적화

OGG ha revisionato questo gist 1773317282. Vai alla revisione

1 file changed, 6 deletions

\352\263\240\354\232\251\353\237\211 ecw\355\214\214\354\235\274\354\235\204 TMS jpg\353\241\234 \353\263\200\355\231\230 \352\260\200\354\235\264\353\223\234.md"

@@ -1,9 +1,3 @@
1 - 제공해주신 스크립트는 **GDAL**의 핵심 도구들을 아주 효율적으로 연결한 훌륭한 워크플로우입니다. 특히 직접 파일 형식을 변환(Translate)하지 않고 가상 데이터셋인 **VRT**를 활용해 중간 과정의 스토리지 낭비와 시간 소모를 최소화한 점이 인상적입니다.
2 -
3 - 요청하신 고용량 ECW 파일을 TMS(Tile Map Service) JPG로 변환하는 표준 가이드를 정리해 드립니다.
4 -
5 - ---
6 -
7 1 ## 🗺️ 고용량 ECW 파일을 TMS 타일로 변환하는 가이드
8 2
9 3 본 가이드는 대용량 항공사진이나 위성영상(ECW)을 웹 지도 서비스(OpenLayers, Leaflet 등)에서 사용할 수 있도록 **EPSG:3857(Web Mercator)** 좌표계 기반의 JPG 타일로 변환하는 과정을 설명합니다.

OGG ha revisionato questo gist 1773317259. Vai alla revisione

1 file changed, 1 insertion, 6 deletions

\352\263\240\354\232\251\353\237\211 ecw\355\214\214\354\235\274\354\235\204 TMS jpg\353\241\234 \353\263\200\355\231\230 \352\260\200\354\235\264\353\223\234.md"

@@ -81,9 +81,4 @@ gdal2tiles --processes=8 ^
81 81 * **메모리 활용 (`GDAL_CACHEMAX`)**: 시스템 RAM이 넉넉하다면 `GDAL_CACHEMAX`를 높게 설정하세요. 2GB 이상의 파일을 다룰 때는 최소 4096(4GB) 이상을 권장합니다.
82 82 * **용량 최적화**: 작성하신 스크립트에서 2GB ECW가 188MB JPG 타일로 줄어든 것은 매우 효율적인 결과입니다. 만약 용량을 더 줄여야 한다면 `--xyz` 방식 검토나 JPEG 퀄리티 조절이 필요할 수 있습니다.
83 83 * **병렬 처리**: `--processes` 옵션은 본인 컴퓨터의 논리 프로세서(Thread) 수에 맞춰 조절하면 비약적인 속도 향상을 볼 수 있습니다.
84 - * **VRT의 이점**: 중간 단계에서 `warped.tif` 같은 대용량 파일을 생성하지 않으므로 디스크 I/O 병목 현상을 방지할 수 있습니다.
85 -
86 - ---
87 -
88 - **추가로 궁금하신 점이나, 특정 줌 레벨에서 이미지가 깨지는 현상 등이 있다면 말씀해 주세요!**
89 - 다음 단계로 **생성된 타일을 웹 브라우저에서 바로 확인하기 위한 간단한 HTML 서버 설정법**을 안내해 드릴까요?
84 + * **VRT의 이점**: 중간 단계에서 `warped.tif` 같은 대용량 파일을 생성하지 않으므로 디스크 I/O 병목 현상을 방지할 수 있습니다.

OGG ha revisionato questo gist 1773317248. Vai alla revisione

1 file changed, 76 insertions, 24 deletions

\352\263\240\354\232\251\353\237\211 ecw\355\214\214\354\235\274\354\235\204 TMS jpg\353\241\234 \353\263\200\355\231\230 \352\260\200\354\235\264\353\223\234.md"

@@ -1,37 +1,89 @@
1 - =================================================================================
2 - 0. 좌표계 확인
3 - =================================================================================
4 - gdalinfo "C:\Users\ASUS\Desktop\UJDRN\UJDRN6320_ECW\UJDRN6320.ecw"
1 + 제공해주신 스크립트는 **GDAL**의 핵심 도구들을 아주 효율적으로 연결한 훌륭한 워크플로우입니다. 특히 직접 파일 형식을 변환(Translate)하지 않고 가상 데이터셋인 **VRT**를 활용해 중간 과정의 스토리지 낭비와 시간 소모를 최소화한 점이 인상적입니다.
5 2
3 + 요청하신 고용량 ECW 파일을 TMS(Tile Map Service) JPG로 변환하는 표준 가이드를 정리해 드립니다.
6 4
7 - =================================================================================
8 - 1. 좌표변환
9 - =================================================================================
10 - // gdalwarp -of VRT -s_srs EPSG:5187 -t_srs EPSG:3857 input.ecw warped.vrt
5 + ---
6 +
7 + ## 🗺️ 고용량 ECW 파일을 TMS 타일로 변환하는 가이드
8 +
9 + 본 가이드는 대용량 항공사진이나 위성영상(ECW)을 웹 지도 서비스(OpenLayers, Leaflet 등)에서 사용할 수 있도록 **EPSG:3857(Web Mercator)** 좌표계 기반의 JPG 타일로 변환하는 과정을 설명합니다.
10 +
11 + ### 1. 작업 프로세스 개요
12 +
13 + 전체 과정은 실제 데이터를 물리적으로 계속 복사하는 대신, **VRT(Virtual Format)**를 통해 설정값만 저장한 뒤 마지막 단계에서 한 번에 타일을 굽는 방식을 권장합니다.
14 +
15 + | 단계 | 도구 | 주요 목적 |
16 + | --- | --- | --- |
17 + | **Step 0** | `gdalinfo` | 원본 파일의 좌표계 및 밴드 구성 확인 |
18 + | **Step 1** | `gdalwarp` | 원본 좌표계(예: EPSG:5187)를 웹 좌표계(EPSG:3857)로 재투영 |
19 + | **Step 2** | `gdal_translate` | 타일 생성에 불필요한 밴드 제거 및 데이터 포맷(Byte) 최적화 |
20 + | **Step 3** | `gdal2tiles` | 최종 VRT를 바탕으로 실제 물리적 타일(JPG) 생성 |
21 +
22 + ---
23 +
24 + ### 2. 단계별 상세 실행 절차
25 +
26 + #### Step 0: 메타데이터 확인
27 +
28 + 변환 전, 원본의 `Upper Left`, `Lower Right` 좌표와 정의된 EPSG 코드를 반드시 확인해야 합니다.
29 +
30 + ```bash
31 + gdalinfo "input_path.ecw"
32 +
33 + ```
34 +
35 + #### Step 1: 좌표계 변환 및 VRT 생성
36 +
37 + ECW는 보통 국가 표준 좌표계를 사용하므로, 웹에서 쓰이는 Web Mercator로 변환이 필요합니다.
38 +
39 + * **`-of VRT`**: 물리적 파일을 만들지 않고 설정 파일만 생성하여 속도가 빠릅니다.
40 + * **`-s_srs` / `-t_srs**`: 소스 좌표계와 타겟 좌표계를 명시합니다.
41 +
42 + ```bash
11 43 gdalwarp -of VRT -s_srs EPSG:5187 -t_srs EPSG:3857 ^
12 - -co "BLOCKXSIZE=256" ^
13 - -co "BLOCKYSIZE=256" ^
14 - "C:\Users\ASUS\Desktop\UJDRN\UJDRN6320_ECW\UJDRN6320.ecw" "C:\Users\ASUS\Desktop\UJDRN\UJDRN6320_ECW\UJDRN6320.vrt"
44 + -co "BLOCKXSIZE=256" -co "BLOCKYSIZE=256" ^
45 + "input.ecw" "step1_warped.vrt"
46 +
47 + ```
48 +
49 + #### Step 2: 밴드 구성 및 데이터 타입 최적화
50 +
51 + 웹 타일은 보통 RGB(3밴드)를 사용합니다. 4번째 밴드(Alpha/Infrared)가 있거나 데이터 타입이 Float인 경우, 이를 `Byte` 타입으로 고정하여 용량을 줄입니다.
52 +
53 + ```bash
54 + gdal_translate -of VRT -b 1 -b 2 -b 3 -ot Byte "step1_warped.vrt" "step2_final.vrt"
15 55
56 + ```
16 57
17 - =================================================================================
18 - 2. 밴드조정
19 - =================================================================================
20 - // gdal_translate -of VRT -b 1 -b 2 -b 3 -ot Byte warped.vrt final_input.vrt
21 - gdal_translate -of VRT -b 1 -b 2 -b 3 -ot Byte "C:\Users\ASUS\Desktop\UJDRN\UJDRN6320_ECW\UJDRN6320.vrt" "C:\Users\ASUS\Desktop\UJDRN\UJDRN6320_ECW\UJDRN6320_byte.vrt"
58 + #### Step 3: TMS 타일 생성 (최종 단계)
22 59
23 - // vrt파일 검토
24 - gdalinfo "C:\Users\ASUS\Desktop\UJDRN\UJDRN6320_ECW\UJDRN6320_byte.vrt"
60 + 실제 CPU 연산이 가장 많이 일어나는 구간입니다.
25 61
62 + * **`--processes=N`**: 멀티코어를 활용하여 속도를 높입니다.
63 + * **`-z 16-21`**: 줌 레벨을 설정합니다. (고해상도일수록 뒷 숫자를 키움)
64 + * **`--tiledriver=JPEG`**: 용량 효율을 위해 PNG 대신 JPEG를 사용합니다. (배경 투명도가 필요 없으나 용량이 중요한 경우 최적)
26 65
27 - =================================================================================
28 - 3. 타일생성
29 - =================================================================================
30 - // gdal2tiles --processes=4 -z 15-22 -w openlayers final_input.vrt ./tms_output
66 + ```bash
31 67 set GDAL_CACHEMAX=16384
32 - gdal2tiles --processes=4 ^
68 + gdal2tiles --processes=8 ^
33 69 -z 16-21 ^
34 70 -w openlayers ^
35 71 --tmscompatible ^
36 72 --tiledriver=JPEG ^
37 - "C:\Users\ASUS\Desktop\UJDRN\UJDRN6320_ECW\UJDRN6320_byte.vrt" "C:\Users\ASUS\Desktop\UJDRN\UJDRN6320"
73 + "step2_final.vrt" "./output_folder"
74 +
75 + ```
76 +
77 + ---
78 +
79 + ### 3. 주요 팁 및 주의사항
80 +
81 + * **메모리 활용 (`GDAL_CACHEMAX`)**: 시스템 RAM이 넉넉하다면 `GDAL_CACHEMAX`를 높게 설정하세요. 2GB 이상의 파일을 다룰 때는 최소 4096(4GB) 이상을 권장합니다.
82 + * **용량 최적화**: 작성하신 스크립트에서 2GB ECW가 188MB JPG 타일로 줄어든 것은 매우 효율적인 결과입니다. 만약 용량을 더 줄여야 한다면 `--xyz` 방식 검토나 JPEG 퀄리티 조절이 필요할 수 있습니다.
83 + * **병렬 처리**: `--processes` 옵션은 본인 컴퓨터의 논리 프로세서(Thread) 수에 맞춰 조절하면 비약적인 속도 향상을 볼 수 있습니다.
84 + * **VRT의 이점**: 중간 단계에서 `warped.tif` 같은 대용량 파일을 생성하지 않으므로 디스크 I/O 병목 현상을 방지할 수 있습니다.
85 +
86 + ---
87 +
88 + **추가로 궁금하신 점이나, 특정 줌 레벨에서 이미지가 깨지는 현상 등이 있다면 말씀해 주세요!**
89 + 다음 단계로 **생성된 타일을 웹 브라우저에서 바로 확인하기 위한 간단한 HTML 서버 설정법**을 안내해 드릴까요?

OGG ha revisionato questo gist 1773316837. Vai alla revisione

1 file changed, 37 insertions

\352\263\240\354\232\251\353\237\211 ecw\355\214\214\354\235\274\354\235\204 TMS jpg\353\241\234 \353\263\200\355\231\230 \352\260\200\354\235\264\353\223\234.md" (file creato)

@@ -0,0 +1,37 @@
1 + =================================================================================
2 + 0. 좌표계 확인
3 + =================================================================================
4 + gdalinfo "C:\Users\ASUS\Desktop\UJDRN\UJDRN6320_ECW\UJDRN6320.ecw"
5 +
6 +
7 + =================================================================================
8 + 1. 좌표변환
9 + =================================================================================
10 + // gdalwarp -of VRT -s_srs EPSG:5187 -t_srs EPSG:3857 input.ecw warped.vrt
11 + gdalwarp -of VRT -s_srs EPSG:5187 -t_srs EPSG:3857 ^
12 + -co "BLOCKXSIZE=256" ^
13 + -co "BLOCKYSIZE=256" ^
14 + "C:\Users\ASUS\Desktop\UJDRN\UJDRN6320_ECW\UJDRN6320.ecw" "C:\Users\ASUS\Desktop\UJDRN\UJDRN6320_ECW\UJDRN6320.vrt"
15 +
16 +
17 + =================================================================================
18 + 2. 밴드조정
19 + =================================================================================
20 + // gdal_translate -of VRT -b 1 -b 2 -b 3 -ot Byte warped.vrt final_input.vrt
21 + gdal_translate -of VRT -b 1 -b 2 -b 3 -ot Byte "C:\Users\ASUS\Desktop\UJDRN\UJDRN6320_ECW\UJDRN6320.vrt" "C:\Users\ASUS\Desktop\UJDRN\UJDRN6320_ECW\UJDRN6320_byte.vrt"
22 +
23 + // vrt파일 검토
24 + gdalinfo "C:\Users\ASUS\Desktop\UJDRN\UJDRN6320_ECW\UJDRN6320_byte.vrt"
25 +
26 +
27 + =================================================================================
28 + 3. 타일생성
29 + =================================================================================
30 + // gdal2tiles --processes=4 -z 15-22 -w openlayers final_input.vrt ./tms_output
31 + set GDAL_CACHEMAX=16384
32 + gdal2tiles --processes=4 ^
33 + -z 16-21 ^
34 + -w openlayers ^
35 + --tmscompatible ^
36 + --tiledriver=JPEG ^
37 + "C:\Users\ASUS\Desktop\UJDRN\UJDRN6320_ECW\UJDRN6320_byte.vrt" "C:\Users\ASUS\Desktop\UJDRN\UJDRN6320"

OGG ha revisionato questo gist 1773301625. Vai alla revisione

1 file changed, 6 insertions, 2 deletions

ecw\355\214\214\354\235\274\354\235\204TMS jpg\353\241\234\353\263\200\355\231\230\352\260\200\354\235\264\353\223\234.md"

@@ -90,6 +90,10 @@ const tmsLayer = new ol.layer.Tile({
90 90
91 91 ### **최종 결과 요약**
92 92
93 - * **파일 포맷:** JPEG (.jpg)
94 - * **총 용량:** 약 200MB (항공사진 줌 21레벨 대비 매우 우수)
93 + * **시작 파일 포맷:** ECW
94 + * **시작 파일 용량:** 약 206MB
95 +
96 + * **변환 파일 포맷:** JPEG (.jpg)
97 + * **변환 파일 용량:** 약 34.4MB
98 +
95 99 * **호환성:** GeoServer TMS 표준 및 OpenLayers 최적화

OGG ha revisionato questo gist 1773301419. Vai alla revisione

1 file changed, 1 insertion, 1 deletion

ecw\355\214\214\354\235\274\354\235\204TMS jpg\353\241\234\353\263\200\355\231\230\352\260\200\354\235\264\353\223\234.md"

@@ -10,7 +10,7 @@
10 10
11 11 ### **Step 0. 원본 좌표계 확인 (gdalinfo)**
12 12
13 - 원본 파일의 투영 정보가 **EPSG:5187**인지 확인합니다. (제공해주신 이미지상에서 확인 완료)
13 + 원본 파일의 투영 정보가 **EPSG:5187**인지 확인합니다.
14 14
15 15 ```bash
16 16 gdalinfo "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.ecw"

OGG ha revisionato questo gist 1773301393. Vai alla revisione

1 file changed, 6 deletions

ecw\355\214\214\354\235\274\354\235\204TMS jpg\353\241\234\353\263\200\355\231\230\352\260\200\354\235\264\353\223\234.md"

@@ -1,9 +1,3 @@
1 - 보내주신 스크린샷과 작업 내용을 바탕으로, **ECW 항공사진을 GeoServer 및 OpenLayers 환경에 최적화된 JPEG TMS 타일로 변환하는 가이드**를 정리해 드립니다.
2 -
3 - 특히 **임업정보다드림**과 같은 공공 GIS 서비스에서 OpenLayers를 통해 GeoServer의 타일을 호출할 때 발생할 수 있는 좌표계 및 Y축 반전 문제를 완벽히 해결하는 설정입니다.
4 -
5 - ---
6 -
7 1 ## 🛰️ ECW to JPEG TMS 타일 변환 가이드
8 2
9 3 ### 개요

OGG ha revisionato questo gist 1773301381. Vai alla revisione

1 file changed, 64 insertions, 29 deletions

ecw\355\214\214\354\235\274\354\235\204TMS jpg\353\241\234\353\263\200\355\231\230\352\260\200\354\235\264\353\223\234.md"

@@ -1,55 +1,86 @@
1 - 🛰️ ECW to JPEG TMS 타일 변환 가이드
2 - 개요
3 - 원본 데이터: ECW (EPSG:5187 - 중부원점 2010)
1 + 보내주신 스크린샷과 작업 내용을 바탕으로, **ECW 항공사진을 GeoServer 및 OpenLayers 환경에 최적화된 JPEG TMS 타일로 변환하는 가이드**를 정리해 드립니다.
4 2
5 - 변환 목표: Web Mercator (EPSG:3857) 기반 JPEG 타일
3 + 특히 **임업정보다드림**과 같은 공공 GIS 서비스에서 OpenLayers를 통해 GeoServer의 타일을 호출할 때 발생할 수 있는 좌표계 및 Y축 반전 문제를 완벽히 해결하는 설정입니다.
6 4
7 - 서비스 환경: GeoServer + OpenLayers (TMS 방식)
5 + ---
8 6
9 - Step 0. 원본 좌표계 확인 (gdalinfo)
10 - 원본 파일의 투영 정보가 EPSG:5187인지 확인합니다. (제공해주신 이미지상에서 확인 완료)
7 + ## 🛰️ ECW to JPEG TMS 타일 변환 가이드
11 8
12 - Bash
9 + ### 개요
10 +
11 + * **원본 데이터:** ECW (EPSG:5187 - 중부원점 2010)
12 + * **변환 목표:** Web Mercator (EPSG:3857) 기반 JPEG 타일
13 + * **서비스 환경:** GeoServer + OpenLayers (TMS 방식)
14 +
15 + ---
16 +
17 + ### **Step 0. 원본 좌표계 확인 (gdalinfo)**
18 +
19 + 원본 파일의 투영 정보가 **EPSG:5187**인지 확인합니다. (제공해주신 이미지상에서 확인 완료)
20 +
21 + ```bash
13 22 gdalinfo "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.ecw"
14 - Step 1. 웹 지도용 좌표 변환 (gdalwarp)
15 - 웹 지도의 표준인 EPSG:3857으로 투영법을 변경합니다. 실시간 변환 대신 VRT(가상 데이터셋) 형식을 사용하여 속도를 높이고 불필요한 중간 파일 생성을 방지합니다.
16 23
17 - Bash
24 + ```
25 +
26 + ---
27 +
28 + ### **Step 1. 웹 지도용 좌표 변환 (gdalwarp)**
29 +
30 + 웹 지도의 표준인 `EPSG:3857`으로 투영법을 변경합니다. 실시간 변환 대신 `VRT`(가상 데이터셋) 형식을 사용하여 속도를 높이고 불필요한 중간 파일 생성을 방지합니다.
31 +
32 + ```bash
18 33 gdalwarp -of VRT -s_srs EPSG:5187 -t_srs EPSG:3857 ^
19 34 "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.ecw" ^
20 35 "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.vrt"
21 - Step 2. 밴드 추출 및 데이터 정규화 (gdal_translate)
22 - ECW 파일이 4밴드(RGB + Alpha 등)인 경우, JPEG 타일 생성을 위해 명시적으로 3개 밴드(RGB)만 추출하고 데이터 타입을 Byte로 고정합니다.
23 36
24 - Bash
37 + ```
38 +
39 + ---
40 +
41 + ### **Step 2. 밴드 추출 및 데이터 정규화 (gdal_translate)**
42 +
43 + ECW 파일이 4밴드(RGB + Alpha 등)인 경우, JPEG 타일 생성을 위해 명시적으로 3개 밴드(RGB)만 추출하고 데이터 타입을 `Byte`로 고정합니다.
44 +
45 + ```bash
25 46 gdal_translate -of VRT -b 1 -b 2 -b 3 -ot Byte ^
26 47 "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.vrt" ^
27 48 "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319_byte.vrt"
28 - Step 3. 최적화된 JPEG 타일 생성 (gdal2tiles)
49 +
50 + ```
51 +
52 + ---
53 +
54 + ### **Step 3. 최적화된 JPEG 타일 생성 (gdal2tiles)**
55 +
29 56 GeoServer의 TMS 서비스 규격에 호환되도록 타일을 생성합니다.
30 57
31 - Bash
58 + ```bash
32 59 gdal2tiles --processes=4 ^
33 60 -z 16-21 ^
34 61 -w openlayers ^
35 62 --tmscompatible ^
36 63 --tiledriver=JPEG ^
37 - --jpeg-quality=80 ^
38 64 "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319_byte.vrt" ^
39 65 "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319"
40 - 💡 옵션 핵심 포인트
41 - --tmscompatible: GeoServer의 TMS 엔진이 사용하는 Y축 번호 체계(아래가 0)에 맞춥니다.
42 66
43 - --tiledriver=JPEG: 용량 최적화를 위해 JPEG로 출력합니다. (200MB 수준으로 효율적 관리 가능)
67 + ```
44 68
45 - -w openlayers: 변환 후 즉시 확인할 수 있는 OpenLayers용 openlayers.html 파일을 자동 생성합니다.
69 + #### 💡 옵션 핵심 포인트
46 70
47 - Step 4. OpenLayers 연동 (GeoServer 활용 시)
48 - GeoServer에 이 타일을 등록한 후 OpenLayers에서 호출할 때, Y축이 반전되어 보인다면 아래와 같이 {-y} 문법을 사용하거나 tileGrid 설정을 확인해야 합니다.
71 + * **`--tmscompatible`**: GeoServer의 TMS 엔진이 사용하는 Y축 번호 체계(아래가 0)에 맞춥니다.
72 + * **`--tiledriver=JPEG`**: 용량 최적화를 위해 JPEG로 출력합니다. (200MB 수준으로 효율적 관리 가능)
73 + * **`-w openlayers`**: 변환 후 즉시 확인할 수 있는 OpenLayers용 `openlayers.html` 파일을 자동 생성합니다.
49 74
50 - [OpenLayers 호출 예시 코드]
75 + ---
51 76
52 - JavaScript
77 + ### **Step 4. OpenLayers 연동 (GeoServer 활용 시)**
78 +
79 + GeoServer에 이 타일을 등록한 후 OpenLayers에서 호출할 때, Y축이 반전되어 보인다면 아래와 같이 `{-y}` 문법을 사용하거나 `tileGrid` 설정을 확인해야 합니다.
80 +
81 + **[OpenLayers 호출 예시 코드]**
82 +
83 + ```javascript
53 84 const tmsLayer = new ol.layer.Tile({
54 85 source: new ol.source.XYZ({
55 86 // GeoServer의 GWC(GeoWebCache) 또는 타일 경로 입력
@@ -58,9 +89,13 @@ const tmsLayer = new ol.layer.Tile({
58 89 wrapX: true
59 90 })
60 91 });
61 - 최종 결과 요약
62 - 파일 포맷: JPEG (.jpg)
63 92
64 - 총 용량: 약 200MB (항공사진 줌 21레벨 대비 매우 우수)
93 + ```
94 +
95 + ---
96 +
97 + ### **최종 결과 요약**
65 98
66 - 호환성: GeoServer TMS 표준 및 OpenLayers 최적화
99 + * **파일 포맷:** JPEG (.jpg)
100 + * **총 용량:** 약 200MB (항공사진 줌 21레벨 대비 매우 우수)
101 + * **호환성:** GeoServer TMS 표준 및 OpenLayers 최적화

OGG ha revisionato questo gist 1773301053. Vai alla revisione

1 file changed, 66 insertions

ecw\355\214\214\354\235\274\354\235\204TMS jpg\353\241\234\353\263\200\355\231\230\352\260\200\354\235\264\353\223\234.md" (file creato)

@@ -0,0 +1,66 @@
1 + 🛰️ ECW to JPEG TMS 타일 변환 가이드
2 + 개요
3 + 원본 데이터: ECW (EPSG:5187 - 중부원점 2010)
4 +
5 + 변환 목표: Web Mercator (EPSG:3857) 기반 JPEG 타일
6 +
7 + 서비스 환경: GeoServer + OpenLayers (TMS 방식)
8 +
9 + Step 0. 원본 좌표계 확인 (gdalinfo)
10 + 원본 파일의 투영 정보가 EPSG:5187인지 확인합니다. (제공해주신 이미지상에서 확인 완료)
11 +
12 + Bash
13 + gdalinfo "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.ecw"
14 + Step 1. 웹 지도용 좌표 변환 (gdalwarp)
15 + 웹 지도의 표준인 EPSG:3857으로 투영법을 변경합니다. 실시간 변환 대신 VRT(가상 데이터셋) 형식을 사용하여 속도를 높이고 불필요한 중간 파일 생성을 방지합니다.
16 +
17 + Bash
18 + gdalwarp -of VRT -s_srs EPSG:5187 -t_srs EPSG:3857 ^
19 + "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.ecw" ^
20 + "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.vrt"
21 + Step 2. 밴드 추출 및 데이터 정규화 (gdal_translate)
22 + ECW 파일이 4밴드(RGB + Alpha 등)인 경우, JPEG 타일 생성을 위해 명시적으로 3개 밴드(RGB)만 추출하고 데이터 타입을 Byte로 고정합니다.
23 +
24 + Bash
25 + gdal_translate -of VRT -b 1 -b 2 -b 3 -ot Byte ^
26 + "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319.vrt" ^
27 + "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319_byte.vrt"
28 + Step 3. 최적화된 JPEG 타일 생성 (gdal2tiles)
29 + GeoServer의 TMS 서비스 규격에 호환되도록 타일을 생성합니다.
30 +
31 + Bash
32 + gdal2tiles --processes=4 ^
33 + -z 16-21 ^
34 + -w openlayers ^
35 + --tmscompatible ^
36 + --tiledriver=JPEG ^
37 + --jpeg-quality=80 ^
38 + "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319_byte.vrt" ^
39 + "C:\Users\ASUS\Desktop\UJDRN\UJDRN6319"
40 + 💡 옵션 핵심 포인트
41 + --tmscompatible: GeoServer의 TMS 엔진이 사용하는 Y축 번호 체계(아래가 0)에 맞춥니다.
42 +
43 + --tiledriver=JPEG: 용량 최적화를 위해 JPEG로 출력합니다. (200MB 수준으로 효율적 관리 가능)
44 +
45 + -w openlayers: 변환 후 즉시 확인할 수 있는 OpenLayers용 openlayers.html 파일을 자동 생성합니다.
46 +
47 + Step 4. OpenLayers 연동 (GeoServer 활용 시)
48 + GeoServer에 이 타일을 등록한 후 OpenLayers에서 호출할 때, Y축이 반전되어 보인다면 아래와 같이 {-y} 문법을 사용하거나 tileGrid 설정을 확인해야 합니다.
49 +
50 + [OpenLayers 호출 예시 코드]
51 +
52 + JavaScript
53 + const tmsLayer = new ol.layer.Tile({
54 + source: new ol.source.XYZ({
55 + // GeoServer의 GWC(GeoWebCache) 또는 타일 경로 입력
56 + // --tmscompatible 옵션을 썼으므로 {-y}가 필요할 수 있음
57 + url: 'http://your-server/tiles/UJDRN6319/{z}/{x}/{-y}.jpg',
58 + wrapX: true
59 + })
60 + });
61 + 최종 결과 요약
62 + 파일 포맷: JPEG (.jpg)
63 +
64 + 총 용량: 약 200MB (항공사진 줌 21레벨 대비 매우 우수)
65 +
66 + 호환성: GeoServer TMS 표준 및 OpenLayers 최적화
Più nuovi Più vecchi