1.我希望输出的结果仍是三列数据的形式;2.输出结果里有大量的nan,这不是我想看到的
时间: 2024-03-06 12:52:17 浏览: 74
好的,如果你希望输出的结果仍是三列数据的形式,并且不包含NaN值,可以对上面的代码进行修改:
```python
import numpy as np
from scipy.interpolate import griddata
# 读取原始数据文件
data = np.loadtxt('data.txt')
# 将每个数据块存储到一个列表中
data_blocks = []
for i in range(168):
data_block = data[i*51:(i+1)*51, :]
data_blocks.append(data_block)
# 对每个数据块进行插值处理,并将插值结果存储到一个新的列表中
interp_blocks = []
for data_block in data_blocks:
# 提取经度、纬度和tec数据
lon = data_block[:, 0]
lat = data_block[:, 1]
tec = data_block[:, 2]
# 定义插值网格
grid_lon, grid_lat = np.mgrid[lon.min():lon.max():100j, lat.min():lat.max():100j]
# 进行插值处理
grid_tec = griddata((lon, lat), tec, (grid_lon, grid_lat), method='linear')
# 将插值结果存储到新的列表中
interp_blocks.append(grid_tec)
# 将插值结果写入到新的数据文件中
with open('interp_data.txt', 'w') as f:
for i in range(len(interp_blocks)):
interp_block = interp_blocks[i]
data_block = data_blocks[i]
for j in range(len(data_block)):
lon = data_block[j, 0]
lat = data_block[j, 1]
tec = interp_block[j//3, j%3]
f.write(str(lon) + ' ' + str(lat) + ' ' + str(tec) + '\n')
```
其中,`grid_tec = griddata((lon, lat), tec, (grid_lon, grid_lat), method='linear')`用于进行插值处理,`interp_blocks.append(grid_tec)`用于将插值结果存储到新的列表中,`for j in range(len(data_block)):`用于遍历每一行数据,`lon = data_block[j, 0]`和`lat = data_block[j, 1]`用于提取经度和纬度,`interp_block[j//3, j%3]`用于提取对应的插值结果,`f.write(str(lon) + ' ' + str(lat) + ' ' + str(tec) + '\n')`用于将结果写入到新的数据文件中。这样输出结果仍然是三列数据的形式,并且不包含NaN值。
阅读全文
相关推荐


















