feat: 增加数据获取时的异常处理.
This commit is contained in:
parent
5ca6574780
commit
0d3f6e212c
@ -55,6 +55,9 @@ def open_hls(
|
||||
da_org = rxr.open_rasterio(url, chunks=chunk_size, mask_and_scale=False).squeeze(
|
||||
"band", drop=True
|
||||
)
|
||||
# (Add) 若未获取到数据, 则返回 None
|
||||
if da_org is None:
|
||||
return None
|
||||
# (Add) 复制源数据进行后续操作, 以便最后复制源数据属性信息
|
||||
da = da_org.copy()
|
||||
|
||||
@ -215,13 +218,24 @@ def process_granule(
|
||||
if not os.path.isfile(output_file):
|
||||
# Open Asset
|
||||
da = open_hls(url, roi, clip, scale, chunk_size)
|
||||
# (Add) 若返回的da为None, 则表示该url对应的文件不存在/无法访问, 再次尝试无果后将会跳过
|
||||
if da is None:
|
||||
logging.warning(
|
||||
f"Asset {url} not found in {output_dir}. Try again."
|
||||
)
|
||||
# 再次尝试下载
|
||||
da = open_hls(url, roi, clip, scale, chunk_size)
|
||||
if da is None:
|
||||
logging.warning(f"Asset {url} still not found. Skipping.")
|
||||
continue
|
||||
|
||||
# Apply Quality Mask if Desired
|
||||
if quality_filter:
|
||||
da = da.where(~qa_mask)
|
||||
|
||||
# Write Output
|
||||
if "FMASK" in output_name:
|
||||
if "FMASK" in output_name and not quality_filter:
|
||||
# (Add) 若 quality_filter=False, 则需要将质量层文件另外保存
|
||||
da.rio.to_raster(raster_path=output_file, driver="COG")
|
||||
else:
|
||||
# (Add) 固定输出为 float32 类型, 否则会默认 float64 类型
|
||||
|
Loading…
x
Reference in New Issue
Block a user