前几期内容
画温度、盐度的年平均和季节平均的平面分布图,
对于IAP粗分辨率数据进行处理得到的图像,大陆周围都没有数值。
没能呈现较为漂亮的图像。
甚至是老师或者编辑要求大陆周围不能有空白,
又不想对数据进行全部的分辨率更细的插值。
此时,使用周围临近的数据点代替是个简便、快捷的方法。
本期内容
对周围大陆的数据进行临近插值。
本期有两个版本的临近插值。
因为对版本一不是很满意。
Part01.
插值前的图像
盐度图
温度图
Part02.
临近插值版本一
盐度图
温度图
Part02.
临近插值版本二
盐度图
温度图
Part05.
思想
版本一:
for ii in range(1, 26, 1):
for jj in range(1, 25, 1):
if np.isnan(sal_year_mean[ii, jj]):
if not np.isnan(sal_year_mean[ii + 1, jj]):
sal_year_mean[ii, jj] = sal_year_mean[ii + 1, jj]
if not np.isnan(sal_year_mean[ii, jj + 1]):
sal_year_mean[ii, jj] = sal_year_mean[ii, jj + 1]
if not np.isnan(sal_year_mean[ii - 1, jj]):
sal_year_mean[ii, jj] = sal_year_mean[ii - 1, jj]
if not np.isnan(sal_year_mean[ii, jj - 1]):
sal_year_mean[ii, jj] = sal_year_mean[ii, jj - 1]
版本二:
for ii in range(1, 28, 1):
for jj in range(1, 27, 1):
if np.isnan(sal_year_mean[ii, jj]):
if not np.isnan(sal_year_mean[ii + 1, jj]) & np.isnan(sal_year_mean[ii, jj + 1]) & np.isnan(sal_year_mean[ii - 1, jj]) & np.isnan(sal_year_mean[ii, jj - 1]):
sal_year_mean[ii, jj] = (sal_year_mean[ii + 1, jj] + sal_year_mean[ii, jj + 1] + sal_year_mean[ii - 1, jj] + (sal_year_mean[ii, jj - 1])) / 4
if not np.isnan(sal_year_mean[ii, jj + 1]) & np.isnan(sal_year_mean[ii - 1, jj]) & np.isnan(sal_year_mean[ii, jj - 1]):
sal_year_mean[ii, jj] = (sal_year_mean[ii, jj + 1] + sal_year_mean[ii - 1, jj] +(sal_year_mean[ii, jj - 1])) / 3
if not np.isnan(sal_year_mean[ii + 1, jj]) & np.isnan(sal_year_mean[ii - 1, jj]) & np.isnan(sal_year_mean[ii, jj - 1]):
sal_year_mean[ii, jj] = (sal_year_mean[ii + 1, jj] + sal_year_mean[ii - 1, jj] + (sal_year_mean[ii, jj - 1])) / 3
if not np.isnan(sal_year_mean[ii + 1, jj]) & np.isnan(sal_year_mean[ii, jj + 1]) & np.isnan(sal_year_mean[ii, jj - 1]):
sal_year_mean[ii, jj] = (sal_year_mean[ii + 1, jj] + sal_year_mean[ii, jj + 1] + (sal_year_mean[ii, jj - 1])) / 3
if not np.isnan(sal_year_mean[ii + 1, jj]) & np.isnan(sal_year_mean[ii, jj + 1]) & np.isnan(sal_year_mean[ii - 1, jj]):
sal_year_mean[ii, jj] = (sal_year_mean[ii + 1, jj] + sal_year_mean[ii, jj + 1] + sal_year_mean[ii - 1, jj]) / 3
if not np.isnan(sal_year_mean[ii + 1, jj]) & np.isnan(sal_year_mean[ii, jj + 1]):
sal_year_mean[ii, jj] = (sal_year_mean[ii + 1, jj] + sal_year_mean[ii, jj + 1]) / 2
if not np.isnan(sal_year_mean[ii + 1, jj]) & np.isnan(sal_year_mean[ii, jj - 1]):
sal_year_mean[ii, jj] = (sal_year_mean[ii + 1, jj] + (sal_year_mean[ii, jj - 1])) / 2
if not np.isnan(sal_year_mean[ii + 1, jj]) & np.isnan(sal_year_mean[ii - 1, jj]):
sal_year_mean[ii, jj] = (sal_year_mean[ii + 1, jj] + sal_year_mean[ii - 1, jj]) / 2
if not np.isnan(sal_year_mean[ii, jj + 1]) & np.isnan(sal_year_mean[ii - 1, jj]):
sal_year_mean[ii, jj] = (sal_year_mean[ii, jj + 1] + sal_year_mean[ii - 1, jj]) / 2
if not np.isnan(sal_year_mean[ii, jj + 1]) & np.isnan(sal_year_mean[ii, jj - 1]):
sal_year_mean[ii, jj] = (sal_year_mean[ii, jj + 1] + (sal_year_mean[ii, jj - 1])) / 2
if not np.isnan(sal_year_mean[ii - 1, jj]) & np.isnan(sal_year_mean[ii, jj - 1]):
sal_year_mean[ii, jj] = (sal_year_mean[ii - 1, jj] + (sal_year_mean[ii, jj - 1])) / 2
if not np.isnan(sal_year_mean[ii + 1, jj]):
sal_year_mean[ii, jj] = sal_year_mean[ii + 1, jj]
if not np.isnan(sal_year_mean[ii - 1, jj]):
sal_year_m