feat: 增加影像导出时的压缩选项.

This commit is contained in:
谢泓 2025-01-14 13:56:49 +08:00
parent 517d190c0e
commit 714fa9f4b4

View File

@ -196,7 +196,11 @@ def process_granule(
# Open Quality Layer # Open Quality Layer
qa_da = open_hls(quality_url, roi, clip, scale, chunk_size) qa_da = open_hls(quality_url, roi, clip, scale, chunk_size)
# Write Output # Write Output
qa_da.rio.to_raster(raster_path=quality_output_file, driver="COG") # (Add) 添加压缩选项参数 compress
# compress 参数是源自 rioxarray 继承的 rasterio 的选项, 可以参考 https://rasterio.readthedocs.io/en/latest/api/rasterio.enums.html#rasterio.enums.Compression
# 若未指定则默认为 LZW, 生成速度较快, 但文件较大
# 设置为 DEFLATE 是为了与官网直接下载文件一致且输出文件更小, 但生成速度略慢, 单张约慢 15s.
qa_da.rio.to_raster(raster_path=quality_output_file, driver="COG", compress="DEFLATE")
else: else:
qa_da = open_hls(quality_output_file, roi, clip, scale, chunk_size) qa_da = open_hls(quality_output_file, roi, clip, scale, chunk_size)
logging.info( logging.info(
@ -236,11 +240,11 @@ def process_granule(
# Write Output # Write Output
if "FMASK" in output_name and not quality_filter: if "FMASK" in output_name and not quality_filter:
# (Add) 若 quality_filter=False, 则需要将质量层文件另外保存 # (Add) 若 quality_filter=False, 则需要将质量层文件另外保存
da.rio.to_raster(raster_path=output_file, driver="COG") da.rio.to_raster(raster_path=output_file, driver="COG", compress="DEFLATE")
else: else:
# (Add) 固定输出为 float32 类型, 否则会默认 float64 类型 # (Add) 固定输出为 float32 类型, 否则会默认 float64 类型
da.rio.to_raster( da.rio.to_raster(
raster_path=output_file, driver="COG", dtype="float32" raster_path=output_file, driver="COG", dtype="float32", compress="DEFLATE"
) )
else: else:
logging.info( logging.info(