Пакетная команда для скрипта GDAL - PullRequest
0 голосов
/ 24 октября 2019

У меня есть следующий скрипт GDAL, использующий консоль OSGeo, которую я протестировал для одного изображения, которую я хочу изменить сейчас, чтобы запускать для каждого изображения в одной папке и выводить в другую папку?

Редактировать:Код, который я разместил, был тестом, который я провел на одном изображении, чтобы проверить качество изображения. Я был доволен качеством изображения после сжатия тестового изображения. Теперь я хочу применить сценарий ок. 1000 изображений находятся в одной папке и выводятся в другую папку.

Редактировать: я не уверен, почему я получил отрицательное голосование за прямой вопрос? Я проверил множество других постов по SO и reddit и не смог заставить какой-либо процесс работать в рамках QGIS OsGeo и был бы признателен за некоторые советы.

gdal_translate -co COMPRESS=JPEG -co PHOTOMETRIC=YCBCR -co TILED=YES "D:\split outputs\raster_compression test\EQ_GLNG_Photo_2018_MGA550.tif" "D:\split outputs\raster_compression test\0001_JPEG.tif" -scale -ot Byte

1 Ответ

0 голосов
/ 24 октября 2019

В консоли Python QGIS должно работать что-то вроде следующего

Это предполагает, что ваши входные и выходные папки существуют, и ожидает, что входная папка содержит все tif-файлы как дочерние (не в подпапках)

import os
from osgeo import gdal

input_folder = 'path_to_input'
output_folder = 'path_to_output'
options = gdal.TranslateOptions(
    outputType=gdal.GDT_Byte, 
    scaleParams=[''], 
    creationOptions=['COMPRESS=JPEG', 'PHOTOMETRIC=YCBCR', 'TILED=YES']
)

for entry in os.listdir(input_folder):
    if entry.endswith('.tif'):
        gdal.Translate(
            os.path.join(output_folder, entry),
            os.path.join(input_folder, entry),
            options=options
        )
...