正在用mintpy+pyAPS做时序insar的ERA5对流层大气延迟改正,运行correct_troposphere过程中出现错误:
/**************************************************
WARNING: downloading failed for 3 times, stop trying and continue.
/**************************************************
/ ******
python3.10/site-packages/mintpy/objects/progress.py", line 109, in update_amount
percentDone = (diffFromMin / float(self.span)) * 100.0
ZeroDivisionError: float division by zero
检查了CDS的api正常,使用github上pyAPS自带的验证方法运行也是可以正常下载,说明问题在mintpy。
解决方案
第一步,找到conda环境中的mintpy库
我的库地址长这个样子:/home/user/anaconda3/envs/isce/lib/python3.10/site-packages/mintpy
在mintpy库当中找到tropo_pyaps3.py
文件,注意是mintpy主文件夹下的tropo_pyaps3.py文件,不是/cli文件夹下的那个。
找到函数get_snwe
将最后一行的
return (S, N, W, E)
修改为
return (int(S), int(N), int(W), int(E))
第二步,删除工作文件夹中原来的/inputs/ERA5.h5
文件,以及ERA5文件夹
重新运行smallbaselineApp.py发现可以下载,正常运行。
参考issue:
https://github.com/insarlab/MintPy/issues/1321
https://github.com/insarlab/MintPy/pull/1324/commits/678e6bba4e04eded0a1e7d3615df4a5694405573