卫星图像重叠区域的插值
我在处理卫星图像的插值时遇到了一些问题。我明白卫星是如何拍摄地球图像的:
我尝试用以下代码进行插值:
import scipy as sc
import scipy.interpolate as spi
import numpy as np
def interpolate_data(img, lat, lon):
p_x, p_y = sc.mgrid[-1:1:lat.shape[0]*1j, -1:1:lon.shape[1]*1j]
n_x, n_y = sc.mgrid[-1:1:img.shape[0]*1j, -1:1:img.shape[1]*1j]
n_lat = spi.griddata((p_x.ravel(), p_y.ravel()), lat.ravel(), (n_x, n_y), method='linear')
n_lon = spi.griddata((p_x.ravel(), p_y.ravel()), lon.ravel(), (n_x, n_y), method='linear')
print "n_lat:",n_lat.shape
print "n_lon:",n_lon.shape
print "img:",img.shape
return n_lat, n_lon
但是如果我这样插值,就会得到不正确的数据。
在我的情况下,卫星将拍摄9张地球的照片。曲线A和曲线B之间是卫星第一次拍摄的区域。曲线C和曲线D之间是卫星第二次拍摄的区域。E和F是重叠的区域。
如果我使用上面的代码进行插值,我会把重叠的区域计算两次,这样就会得到错误的数据。所以我想问有没有办法只计算一次这些重叠的区域。谢谢。
如果我使用上面的代码进行插值,我会把重叠的区域计算两次,这样就会得到错误的数据。所以我想问有没有办法只计算一次这些重叠的区域。谢谢。