如何处理插值过程中丢失的卫星数据

2024-06-18 03:57:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我下载的卫星数据包含了某些物种的空间分布信息。在

卫星过街时被云层覆盖的一些地方被视为NaN值。在

但是当我想将卫星数据(二维数组)插值成另一个形状(例如,分辨率变粗)。NaN值让我很困扰。在

由于NaN值的存在scipy.插值函数不能返回有限值。在

这是我的代码,我上传的数据文件here

 lon,lat = np.linespace(75.12,135.12,241), np.linespace(18.12, 55.12, 149)
 data = pd.read_csv("./CH2O-NO2/test.csv").values.reshape(lat.shape[0],lon.shape[1]) 

我可以用Basemap包绘制data的二维分布。在

enter image description here

插值

^{pr2}$

代码运行速度很慢,并且数据粗糙度有很多NaN值。在

我的尝试

处理丢失的数据是我日常工作中的一个棘手问题。对于二维数组类型的数据集,有没有什么方法可以用它的一些邻域网格来代替NaN值?在


Tags: csv数据信息data物种np空间数组
1条回答
网友
1楼 · 发布于 2024-06-18 03:57:38

仍无法发表评论。在

正如offeltoffel所提到的,任何填充都会给数据带来偏差。 您可能对图像修复技术感兴趣,以防NaN区域不是很大。我在OpenCV中找到了一些实现,但是在理论上还有很多不同的想法:http://docs.opencv.org/trunk/df/d3d/tutorial_py_inpainting.html

我找到了一些wolframmathematica函数来修复:https://reference.wolfram.com/language/ref/Inpaint.html。 你也可以在谷歌上搜索“图像修复”。这项查询将产生许多关于这一问题的科学文章。如果你有信心的话,你可以试几次。在

另一种可能会带来一些成功的方法:将所有的NaN替换为零(或mean,或其他东西),重新缩放它,然后替换零(…)又是南了。在

希望这能有所帮助

相关问题 更多 >