GDAL로 래스터 스무딩 / 보간?


15

짧게 :
아래 그림과 같이 래스터의 해상도를 변경하고 회색 램프를 부드럽게하고 싶습니다. 선호하는 것은 GDAL, PIL 또는 Numpy를 사용하는 것입니다.

설명 : 고성능 지형 통계 라이브러리를
사용하여 20m의 출력 해상도로 래스터로 포인트를 조작하고 있습니다 . 보간 시간이 기하 급수적으로 증가하기 때문에 출력 해상도를 변경하고 싶지 않습니다.
이 해상도를 사용하면 출력 이미지가보기 흉하게 나타납니다 (픽셀 화 및 별명 지정). 나는 그것이 개념적으로 올바른지 모르겠지만 아래 그림과 같이 이미지가 더 부드럽기를 원합니다. 이미지를 더 나은 해상도로 '재 보간'하는 것과 같습니다. 파이썬을 사용하고 있으므로 기본 설정은 GDAL, Python Imaging Library 또는 Numpy입니다. 답은 알고리즘 이름이나 이런 종류의 작업의 개념을 지적하는 것처럼 이론적 일 수 있습니다.

출처:
여기에 이미지 설명을 입력하십시오

목적지:
여기에 이미지 설명을 입력하십시오

gdalwarp 큐빅 스플라인으로 결과 편집 :
여기에 이미지 설명을 입력하십시오


gdalwarp으로 게시 한 'after'이미지만큼 좋은 결과를 얻지 못했습니다. 사용한 정확한 명령을 게시 할 수 있습니까?
그랜트 험프리스

답변:



5

Python에서 노출되는 GDALReprojectImage를 사용하십시오 .

from osgeo import gdal
help(gdal.ReprojectImage)

부드러운 보간을 위해서는 쌍 선형 또는 입방 형 방법을 사용하십시오. 이 함수는 키워드 인수를 사용하지 않기 때문에 어색합니다. 따라서 위치를 찾아야합니다.

gdal.ReprojectImage(src_ds, dst_ds, None, None, gdal.GRA_Bilinear)

아마도 까다로운 부분이 설정되고 있는데 dst_ds,이 부분 은와 비슷 src_ds하지만 수정 된 셀 크기를 가진 지형 변환이 필요 합니다.


+1. "입방체"방법이 무엇인지 잘 모르겠습니다. 입방 스플라인 인 경우 쌍 선보다 부드럽습니다. 그러나 입방 형 컨볼 루션이라면 쌍 선형보다 덜 부드럽습니다. 큐빅 스플라인이 이상적입니다.
whuber

1
@whuber true, 두 가지 "입방체"알고리즘 옵션이 있습니다 : GRA_CubicSpline(먼저 시도) vs. GRA_Cubic(컨볼 루션).
Mike T

0

변형을 부드럽게하려면 저역 통과 필터가 필요합니다. GDAL을 사용하여 직접 작성하거나 GRASS를 사용하여 작성할 수 있습니다. 나는 그것을 시도하지 않았지만 여기에 http://wiki.awf.forst.uni-goettingen.de/wiki/index.php/Exercise_31 가이드가 있습니다 .

저역 통과 필터를 적용하기 전에 먼저 래스터를 업 샘플링하여 더 나은 해상도를 얻을 수 있습니다.


1
OP가 변형을 부드럽게하고 싶지 않다고 생각하지 않습니다. 모든 혜택이 사라질 것입니다. 대신 이미지에서 알 수 있듯이이 문제는 이미 얻은 결과의 고해상도 버전을 만드는 매끄러운 리샘플링 절차를 요구합니다 (크리깅 속도를 높이는 현명하고 효율적인 방법).
whuber

-1

반경 = 5 (예 : 커널 크기 크기 = 11) (각 rgb 채널)의 순위 / 중앙 필터를 사용할 수 있습니다.

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