Ostatnio aktywny 1773703874

OGG zrewidował ten Gist 1773703874. Przejdź do rewizji

1 file changed, 3 insertions

\353\266\204\355\225\240TIF\353\245\274 TMS\353\241\234 \353\263\200\355\231\230.md"

@@ -3,10 +3,13 @@
3 3 gdalbuildvrt "C:\ujsky\source_all.vrt" "D:\uj_2026\*.tif"
4 4 ```
5 5
6 +
6 7 # 2. 좌표변환
7 8 ```bash
8 9 gdalwarp -s_srs EPSG:5187 -t_srs EPSG:3857 -of VRT ^
9 10 "C:\ujsky\source_all.vrt" "C:\ujsky\merged_3857.vrt"
11 + ```
12 +
10 13
11 14 # 3. TMS 변환
12 15 ```bash

OGG zrewidował ten Gist 1773703823. Przejdź do rewizji

1 file changed, 21 insertions

\353\266\204\355\225\240TIF\353\245\274 TMS\353\241\234 \353\263\200\355\231\230.md" (stworzono plik)

@@ -0,0 +1,21 @@
1 + # 1. 가상 VRT 생성
2 + ```bash
3 + gdalbuildvrt "C:\ujsky\source_all.vrt" "D:\uj_2026\*.tif"
4 + ```
5 +
6 + # 2. 좌표변환
7 + ```bash
8 + gdalwarp -s_srs EPSG:5187 -t_srs EPSG:3857 -of VRT ^
9 + "C:\ujsky\source_all.vrt" "C:\ujsky\merged_3857.vrt"
10 +
11 + # 3. TMS 변환
12 + ```bash
13 + gdal2tiles ^
14 + --zoom=16-20 ^
15 + --processes=14 ^
16 + -w openlayers ^
17 + --tmscompatible ^
18 + --tiledriver=JPEG ^
19 + --config GDAL_CACHEMAX 8192 ^
20 + "C:\ujsky\merged_3857.vrt" "C:\ujsky\UJ_2026"
21 + ```

OGG zrewidował ten Gist 1773625023. Przejdź do rewizji

1 file changed, 1 insertion, 1 deletion

\355\225\255\352\263\265\354\230\201\354\203\201TIF\353\245\274 TMS\353\241\234\353\263\200\355\231\230 \352\260\200\354\235\264\353\223\234.md"

@@ -259,7 +259,7 @@ CPU 코어보다 많으면 오히려 느려질 수 있음
259 259 | 압축시간 | 2시간 49분 |
260 260 | 좌표변환 | 28분 |
261 261 | TMS 생성 | 14시간 |
262 -
262 + | TMS 파일 | 약 24GB |
263 263 ---
264 264
265 265 # 추가 최적화 팁 (매우 중요)

OGG zrewidował ten Gist 1773623888. Przejdź do rewizji

1 file changed, 307 insertions

\355\225\255\352\263\265\354\230\201\354\203\201TIF\353\245\274 TMS\353\241\234\353\263\200\355\231\230 \352\260\200\354\235\264\353\223\234.md" (stworzono plik)

@@ -0,0 +1,307 @@
1 + # 항공영상 TIF → TMS 타일 변환 가이드
2 +
3 + 대용량 항공영상(약 **1TB GeoTIFF**)을 **OpenLayers에서 사용할 TMS 타일**로 변환하는 절차를 정리한다.
4 +
5 + 본 가이드는 **GDAL 기반 처리**를 기준으로 작성되었으며 다음 환경을 기준으로 한다.
6 +
7 + * GDAL (OSGeo4W)
8 + * OpenLayers 3.x
9 + * 좌표계: **EPSG:5187 → EPSG:3857**
10 + * 타일 포맷: **JPEG**
11 + * 타일 레벨: **16 ~ 20**
12 +
13 + ---
14 +
15 + # 전체 작업 흐름
16 +
17 + ```
18 + 원본 TIFF
19 +
20 + ├─ 1. tif 정보 확인
21 +
22 + ├─ 2. JPEG 압축 GeoTIFF 생성 (용량 최적화)
23 +
24 + ├─ 3. 좌표계 변환 (5187 → 3857)
25 +
26 + └─ 4. TMS 타일 생성
27 + ```
28 +
29 + ---
30 +
31 + # 1. TIFF 정보 확인
32 +
33 + 먼저 원본 TIFF의 메타데이터를 확인한다.
34 +
35 + ```bash
36 + gdalinfo "E:\UJ_2025_10.tif"
37 + ```
38 +
39 + 확인해야 할 주요 정보
40 +
41 + | 항목 | 확인 이유 |
42 + | ----------------- | -------------- |
43 + | Coordinate System | 좌표변환 필요 여부 확인 |
44 + | Pixel Size | 영상 해상도 확인 |
45 + | Band Count | RGB인지 확인 |
46 + | Image Size | 처리시간 예측 |
47 + | Compression | 이미 압축된 파일인지 확인 |
48 +
49 + ### 주의사항
50 +
51 + 대용량 TIFF의 경우 아래 정보가 중요하다.
52 +
53 + * **Band 수**
54 + RGB 영상이라면 보통 **3 bands**
55 +
56 + * **Block Size**
57 + 타일 생성 시 성능과 관련됨
58 +
59 + * **BigTIFF 여부**
60 + 4GB 이상 파일은 BigTIFF 필요
61 +
62 + ---
63 +
64 + # 2. 원본 TIFF 압축 저장 (JPEG 압축)
65 +
66 + 외장하드의 대용량 TIFF를 **로컬 SSD로 이동하면서 JPEG 압축 GeoTIFF 생성**.
67 +
68 + ```bash
69 + gdal_translate -of GTiff ^
70 + -b 1 -b 2 -b 3 ^
71 + -co COMPRESS=JPEG ^
72 + -co JPEG_QUALITY=70 ^
73 + -co PHOTOMETRIC=YCBCR ^
74 + -co TILED=YES ^
75 + -co BLOCKXSIZE=512 ^
76 + -co BLOCKYSIZE=512 ^
77 + -co BIGTIFF=YES ^
78 + -co NUM_THREADS=ALL_CPUS ^
79 + --config GDAL_CACHEMAX 8192 ^
80 + E:\UJ_2025_10.tif D:\tiffs\UJ_2025_10_extreme.tif
81 + ```
82 +
83 + ## 옵션 설명
84 +
85 + | 옵션 | 설명 |
86 + | -------------------- | ---------------- |
87 + | -of GTiff | 출력 포맷 GeoTIFF |
88 + | -b 1 -b 2 -b 3 | RGB 밴드 선택 |
89 + | COMPRESS=JPEG | JPEG 압축 사용 |
90 + | JPEG_QUALITY=70 | 압축 품질 (50~80 권장) |
91 + | PHOTOMETRIC=YCBCR | JPEG 압축 효율 증가 |
92 + | TILED=YES | 타일 구조 TIFF 생성 |
93 + | BLOCKXSIZE=512 | 타일 크기 |
94 + | BLOCKYSIZE=512 | 타일 크기 |
95 + | BIGTIFF=YES | 4GB 이상 파일 지원 |
96 + | NUM_THREADS=ALL_CPUS | CPU 멀티코어 사용 |
97 + | GDAL_CACHEMAX | 메모리 캐시 (MB) |
98 +
99 + ---
100 +
101 + ## 성능 팁
102 +
103 + ### JPEG_QUALITY
104 +
105 + | 값 | 용도 |
106 + | -- | ------- |
107 + | 90 | 고품질 |
108 + | 70 | 일반 항공영상 |
109 + | 50 | 최대 압축 |
110 +
111 + 항공영상 배경지도 용도라면
112 +
113 + **70 추천**
114 +
115 + ---
116 +
117 + ### BLOCK SIZE
118 +
119 + 512x512 추천 이유
120 +
121 + * GDAL 내부 처리 효율
122 + * 타일 생성 속도 개선
123 + * 디스크 IO 감소
124 +
125 + ---
126 +
127 + ### GDAL_CACHEMAX
128 +
129 + 메모리 캐시 설정
130 +
131 + 예시
132 +
133 + ```
134 + --config GDAL_CACHEMAX 8192
135 + ```
136 +
137 + 의미
138 +
139 + ```
140 + 8GB 메모리 사용
141 + ```
142 +
143 + ---
144 +
145 + # 3. 좌표변환 (EPSG:5187 → EPSG:3857)
146 +
147 + OpenLayers에서 사용하려면 **Web Mercator(3857)** 좌표계로 변환한다.
148 +
149 + ```bash
150 + gdalwarp -s_srs EPSG:5187 -t_srs EPSG:3857 ^
151 + -r bilinear ^
152 + -of GTiff ^
153 + -co COMPRESS=JPEG -co JPEG_QUALITY=70 -co PHOTOMETRIC=YCBCR ^
154 + -co TILED=YES -co BLOCKXSIZE=512 -co BLOCKYSIZE=512 ^
155 + -co BIGTIFF=YES ^
156 + -wm 8192 ^
157 + --config GDAL_NUM_THREADS ALL_CPUS ^
158 + D:\tiffs\UJ_2025_10_extreme.tif D:\tiffs\UJ_2025_10_3857_final.tif
159 + ```
160 +
161 + ---
162 +
163 + ## 옵션 설명
164 +
165 + | 옵션 | 설명 |
166 + | ---------------- | ---------------- |
167 + | -s_srs | 원본 좌표계 |
168 + | -t_srs | 목표 좌표계 |
169 + | -r bilinear | 보간법 |
170 + | -wm | warp memory (MB) |
171 + | GDAL_NUM_THREADS | 멀티코어 사용 |
172 +
173 + ---
174 +
175 + ## 보간법 선택
176 +
177 + | 옵션 | 용도 |
178 + | -------- | ---------- |
179 + | nearest | 범주형 데이터 |
180 + | bilinear | 일반 영상 (추천) |
181 + | cubic | 고품질 영상 |
182 +
183 + 항공영상은
184 +
185 + **bilinear 추천**
186 +
187 + ---
188 +
189 + # 4. TMS 타일 생성
190 +
191 + 최종적으로 **OpenLayers용 TMS 타일 생성**
192 +
193 + ```bash
194 + gdal2tiles ^
195 + --zoom=16-20 ^
196 + --processes=8 ^
197 + -w openlayers ^
198 + --tmscompatible ^
199 + --tiledriver=JPEG ^
200 + D:\tiffs\UJ_2025_10_3857_final.tif D:\tiles\UJ_2025
201 + ```
202 +
203 + ---
204 +
205 + ## 옵션 설명
206 +
207 + | 옵션 | 설명 |
208 + | --------------- | ---------------- |
209 + | --zoom | 생성 타일 레벨 |
210 + | --processes | 멀티프로세스 수 |
211 + | -w openlayers | OpenLayers 뷰어 생성 |
212 + | --tmscompatible | TMS 방식 타일 |
213 + | --tiledriver | JPEG 타일 |
214 +
215 + ---
216 +
217 + ## zoom 레벨 선택
218 +
219 + 일반적인 지도 기준
220 +
221 + | Zoom | 용도 |
222 + | ----- | ---- |
223 + | 12~14 | 광역지도 |
224 + | 15~17 | 도시 |
225 + | 18~20 | 항공영상 |
226 +
227 + 항공영상은
228 +
229 + ```
230 + 16~20
231 + ```
232 +
233 + 추천
234 +
235 + ---
236 +
237 + ## processes 옵션
238 +
239 + 멀티코어 처리
240 +
241 + 예시
242 +
243 + ```
244 + --processes=8
245 + ```
246 +
247 + 주의
248 +
249 + CPU 코어보다 많으면 오히려 느려질 수 있음
250 +
251 + ---
252 +
253 + # 최종 결과
254 +
255 + | 항목 | 결과 |
256 + | ------ | ------- |
257 + | 원본파일 | 약 1TB |
258 + | 압축파일 | 약 1.8GB |
259 + | 압축시간 | 2시간 49분 |
260 + | 좌표변환 | 28분 |
261 + | TMS 생성 | 14시간 |
262 +
263 + ---
264 +
265 + # 추가 최적화 팁 (매우 중요)
266 +
267 + ### 1TB 영상 처리 권장 환경
268 +
269 + | 항목 | 권장 |
270 + | --- | -------- |
271 + | RAM | 32GB 이상 |
272 + | SSD | NVMe |
273 + | CPU | 8core 이상 |
274 +
275 + ---
276 +
277 + ### 디스크 IO 병목 방지
278 +
279 + 가능하면
280 +
281 + ```
282 + 외장 HDD → SSD
283 + ```
284 +
285 + 로 복사 후 작업
286 +
287 + ---
288 +
289 + ### GDAL 병렬 처리
290 +
291 + 환경변수 추가 가능
292 +
293 + ```
294 + set GDAL_NUM_THREADS=ALL_CPUS
295 + ```
296 +
297 + ---
298 +
299 + # OpenLayers 사용 예시
300 +
301 + ```javascript
302 + new ol.layer.Tile({
303 + source: new ol.source.XYZ({
304 + url: '/tiles/UJ_2025/{z}/{x}/{y}.jpg'
305 + })
306 + });
307 + ```
Nowsze Starsze