【python海洋专题十六】对大陆周边的数据进行临近插值

前几期内容

画温度、盐度的年平均和季节平均的平面分布图,
对于IAP粗分辨率数据进行处理得到的图像,大陆周围都没有数值。

没能呈现较为漂亮的图像。
甚至是老师或者编辑要求大陆周围不能有空白,

又不想对数据进行全部的分辨率更细的插值。

此时,使用周围临近的数据点代替是个简便、快捷的方法。

本期内容

对周围大陆的数据进行临近插值。
本期有两个版本的临近插值。
因为对版本一不是很满意。

Part01.
插值前的图像
盐度图
【python海洋专题十六】对大陆周边的数据进行临近插值_第1张图片

温度图
【python海洋专题十六】对大陆周边的数据进行临近插值_第2张图片

Part02.
临近插值版本一
盐度图
【python海洋专题十六】对大陆周边的数据进行临近插值_第3张图片

温度图
【python海洋专题十六】对大陆周边的数据进行临近插值_第4张图片

Part02.
临近插值版本二
盐度图
【python海洋专题十六】对大陆周边的数据进行临近插值_第5张图片

温度图

【python海洋专题十六】对大陆周边的数据进行临近插值_第6张图片

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

你可能感兴趣的:(python,数据库,前端)