답변:
래스터를 하나로 병합 할 수 있습니다.
툴바에서 :
래스터> 기타> 병합
Processing Toolbox에서 :
GDAL / OGR> 기타> 병합
GDAL 콘솔에서 :
gdal_merge.py -o merged.tif input1.tif input2.tif
또는 가상 래스터를 작성하십시오.
gdalbuildvrt
에서 파일 목록을 포함하는 파일의 파일 이름을 입력 할 수 있으며 많은 이미지 파일을 인수로 제공 할 수 있습니다. gdalbuildvrt -input_file_list my_liste.txt doq_index.vrt
이 mosaiked 모양의 이유는 각 단일 이미지가 전체 최소 / 최대가 아니라 이미지 최소에서 최대 이미지까지 확장 된 그레이 스케일로 그려지기 때문입니다. 모든 이미지를 하나로 병합하면 최소 / 최대 하나만 있습니다. VRT는 모든 이미지를 하나로 취급하므로 VRT도 마찬가지입니다 (VRT 파일을 살펴보면 공통 통계가 표시됨).
merge와 VRT가 둘 다 옵션이 아닌 경우 다음 스크립트가 도움이 될 수 있습니다.
첫 번째 루프에서 모든 레이어를 반복하여 래스터를 선택하고 최소 / 최대 간격의 추정치를 얻습니다. 이것은 QGIS 자체가 작동하는 방식입니다. 이 최소 / 최대 값에서 글로벌 최소 / 최대를 계산합니다.
제 2 루프에서, 모든 래스터 층에 대한 렌더러는 그레이 스케일이 전체 최소 / 최대 간격에 걸쳐 신장되도록 구성된다.
gmin = 9999
gmax = -9999
layers = []
# loop over all layers, take rasters and estimate min, max values
for layer in iface.mapCanvas().layers():
if isinstance(layer, QgsRasterLayer):
# change percentages and sample size to increase or decrease accuracy
min_max = layer.dataProvider().cumulativeCut(1, 0.02, 0.98, theSampleSize=250000)
gmin = min(gmin, min_max[0])
gmax = max(gmax, min_max[1])
layers.append(layer)
# for all rasters create a single band gray scale renderer with
# gray scale stretched across the interval [gmin..gmax]
for rasterlayer in layers:
renderer = QgsSingleBandGrayRenderer(rasterlayer.dataProvider(), 1)
# take the first band (0)
ce = QgsContrastEnhancement(rasterlayer.dataProvider().dataType(0))
ce.setContrastEnhancementAlgorithm(QgsContrastEnhancement.StretchToMinimumMaximum)
ce.setMinimumValue(gmin)
ce.setMaximumValue(gmax)
renderer.setContrastEnhancement(ce)
rasterlayer.setRenderer(renderer)
# refresh canvas to show changes
iface.mapCanvas().refresh()