OGG revisó este gist . Ir a la revisión
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 revisó este gist . Ir a la revisión
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 revisó este gist . Ir a la revisión
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 revisó este gist . Ir a la revisión
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 revisó este gist . Ir a la revisión
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" (archivo creado)
| @@ -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 revisó este gist . Ir a la revisión
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 revisó este gist . Ir a la revisión
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 revisó este gist . Ir a la revisión
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 revisó este gist . Ir a la revisión
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 revisó este gist . Ir a la revisión
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" (archivo creado)
| @@ -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 최적화 | |