GDAL을 사용하여 래스터 데이터 세트에서 '타일 이미지'를 자르는 방법은 무엇입니까?


22

주어진 래스터 데이터 세트에서 타일 (jpeg)을 만들어야하는 앱을 개발 중입니다. 내 초기 성향은 gdal2tiles.py를 사용하는 것이었지만 성능은 향상 될 수있는 것처럼 보입니다.

그러면 다음과 같은 질문을 할 수 있습니다. GDAL을 사용하여 래스터 데이터 세트에서 '바둑판 식 이미지'를 잘라내는 가장 빠른 방법은 무엇입니까? 그리고 '바둑판 식 이미지'라는 말은 단순한 jpeg 또는 png를 의미합니다.

프로토 타입에서 MapServer C # MapScript 바인딩을 사용하여 작업을 수행합니다. 즉, 맵 객체를 만들고 잘라야하는 모든 타일 경계를 반복하고 맵 객체 범위를 설정 한 다음 결과 이미지를 저장합니다. 이 접근법의 성능은 gdal2tiles.py의 성능보다 훨씬 뛰어나지 만 더 빨리 만들 수 없다면 GDAL을 직접 사용할지 궁금합니다. 누구나 GDAL 방법으로 유사한 워크 플로를 제안 할 수 있습니까?

편집 : 오늘 더 많은 연구를 한 결과, 나는 내 앞에서 정답을 찾았습니다. FWTools를 다운로드 한 경우 csharp \ apps 폴더에는 C # GDAL 바인딩을 보여주는 여러 클래스가 포함되어 있습니다. 제 경우에는 GDALRead.cs와 GDALReadDirect.cs가 제가 찾고 있던 것입니다.


2
@vadp, @markusn, @mapperz 및 다른 사람들-설명하십시오. 이 도구가 가치가 있다고 생각하는 이유와 다른 도구와 다른 점이 도움이 될 것입니다. 우리는 대답이 미래뿐만 아니라 즉시 유용하기를 원합니다. 조만간 링크-로트 공격이 발생하고 우리가 가진 모든 것이 URL이면 프로젝트가 다음에 화신 된 곳을 찾기가 어렵습니다.
matt wilkie

4
안녕하세요 user890, 최종 솔루션을 질문에 게시하고 닫은 것으로 표시 할 수 있습니까? 이 경우 언어 별 바인딩을 사용하여 필요한 성능을 제공하는 것처럼 들립니다.
scw

내 자신의 게시물에 의견을 추가 할 수 없습니다 :(하지만 gdal_tiler.py는 멀티 프로세싱을 지원하지만 매우 무차별 한 방법으로 'n'소스를 한 번에 처리합니다. 그럼에도 불구하고 긍정적 인 영향을 미칩니다 :)
Vadim

답변:


5

누군가 gdal2tiles.py가 여러 프로세서를 사용하도록 시간을 보냈습니다 : 병렬 gdal

나는 이것을 사용했으며 작동하는 것 같습니다. 4 개의 코어를 모두 100 %로 성공적으로 활용하고 타일을 만드는 데 걸리는 총 시간을 원래 시간의 1/4로 줄입니다.


gdal2tiles_parallel.py gitlab.com/GitLabRGI/geopackage-python을 확인할 수 있습니다 . 나는 comme를 선호합니다
GeospatialInformationTech


1

우리 회사에서는 gdal_warp를 사용하여 사용자 정의 파이썬 스크립트를 작성했습니다 (gdal2tiles가 존재한다는 것을 알기 전에였습니다). g2t보다 빠르며, 특히 파이썬 스레드 풀을 사용하여 많은 코어에서 실행되도록 다시 작성할 때 특히 빠릅니다. 또한 고품질 타일을 생산했습니다 (gdal_warp에서 타일이 놀랍도록 g2t의 lanczos 보간이 제대로 작동하지 않는 것 같습니다).

스크립트를 작성하려면 약간의 노력이 필요합니다. 결과 경계 상자를 수동으로 계산하고 투영을위한 몇 가지 옵션을 설정해야합니다.



0

또 다른 옵션은 TileCache (WMS-C)를 사용하는 것입니다. gdal2tiles를 사용한 적이 없지만 TileCache가 성능을 향상시킬 것으로 기대하지는 않습니다.

어쨌든 다음 전략은 타일링 속도를 높일 수 있습니다.

  • TileCache를 사용하는 경우 메타 타일링 (gdal2tiles에 비슷한 기능이 있는지 궁금합니다).
  • 래스터 데이터가 큰 ortophoto 인 경우 ECW 와 같은 형식을 사용하십시오 . 이 형식에는 부분 압축 해제 기능이 있으므로이 형식 을 사용하면 성능이 크게 향상됩니다.

0

http://code.google.com/p/tilers-tools의 gdal_tiler.py 스크립트 는 유용한 옵션이 될 수 있습니다.

일반적으로 gdal2tiles.py와 비교할 때 성능이 매우 우수하며 모든 GDAL 소스 (데이터 세트)에서 작동해야합니다. 특히 소스 데이터 세트를 RGB로 변환 할 필요가 없습니다.


-1

Gdal2tiles_parallel https://gitlab.com/GitLabRGI/erdc/geopackage-python geopackage 또는 MBTILES 인 경우 gdal_translate.EXE로 기본적으로 수행되는 파이썬이 필요하지 않습니다. 하나 이상의 줌 레벨을 추가하려면 gdaladdo를 실행해야합니다. 또한 qgis 데스크탑에 qtiles / qmetatiles를 사용합니다. 여전히 maptiler pro 상용 소프트웨어와 경쟁 할 수있는 것은 없습니다. 타일 ​​폴더가 필요하면 mbUtil python을 사용하여 MBTILES를 TMS 또는 XYZ로 변환하십시오.


링크가 더 이상 작동하지 않음
AndrewHarvey

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.