# -*- coding: utf-8 -*-
"""
@Features:
@Author: xx
@Date: 1/17/2024
"""
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from scipy.interpolate import griddata
plt.rcParams['font.family'] = 'Times New Roman, SimSun' # 设置字体族,中文为SimSun,英文为Times New Roman
plt.rcParams['mathtext.fontset'] = 'stix' # 设置数学公式字体为stix
def interp(x, y, z, step):
# x, y = df['经度'], df['纬度']
xi = np.arange(115.4, 116.6, step)
yi = np.arange(28.15, 29.2, step)
olon, olat = np.meshgrid(xi, yi)
lon = np.array(x).reshape(-1, 1)
lat = np.array(y).reshape(-1, 1)
points = np.concatenate([lon, lat], axis=1)
grid_data = griddata(points, z, (olon, olat))
return grid_data
def grid_txt(step):
xi = np.arange(115.4, 116.6, step)
yi = np.arange(28.15, 29.2, step)
olon, olat = np.meshgrid(xi, yi)
return olon, olat
if __name__ == '__main__':
data = pd.read_csv(r'data0.csv')
date = pd.date_range(start='20170215', end='20231231')
for oneDay in date:
print(oneDay)
year, mon, day = oneDay.year, oneDay.month, oneDay.day
dataTemp = data[(data.Year == year) & (data.Mon == mon) & (data.Day == day)]
if len(dataTemp) < 10:
continue
else:
result30m = interp(dataTemp.Lon, dataTemp.Lat, dataTemp.PRE_Time_2020, 30 * 0.00001141)
np.savetxt(r'G:\2\\' + str(oneDay)[:10] + '-30m.txt', result30m)
result60m = interp(dataTemp.Lon, dataTemp.Lat, dataTemp.PRE_Time_2020, 60 * 0.00001141)
np.savetxt(r'G:\2\\' + str(oneDay)[:10] + '-60m.txt', result60m)
result90m = interp(dataTemp.Lon, dataTemp.Lat, dataTemp.PRE_Time_2020, 90 * 0.00001141)
np.savetxt(r'G:\2\\' + str(oneDay)[:10] + '-90m.txt', result90m)
lonTxt30, latTxt30 = grid_txt(30 * 0.00001141)
np.savetxt(r'G:\2\\' + 'lon30m.txt', lonTxt30)
np.savetxt(r'G:\2\\' + 'lat30m.txt', latTxt30)
lonTxt60, latTxt60 = grid_txt(60 * 0.00001141)
np.savetxt(r'G:\2\\' + 'lon60m.txt', lonTxt60)
np.savetxt(r'G:\2\\' + 'lat60m.txt', latTxt60)
lonTxt90, latTxt90 = grid_txt(90 * 0.00001141)
np.savetxt(r'G:\2\\' + 'lon90m.txt', lonTxt90)
np.savetxt(r'G:\2\\' + 'lat90m.txt', latTxt90)
按日将区域站数据插值到格点
最新推荐文章于 2024-01-30 11:53:03 发布