2021 “AI Earth”人工智能创新挑战赛 Task 2
数据读取
数据格式转化
SODA_train处理
SODA_train.nc中[0,0:36,:,:]为第1-第3年逐月的历史观测数据;SODA_train.nc中[1,0:36,:,:]为第2-第4年逐月的历史观测数据;…,SODA_train.nc中[99,0:36,:,:]为第100-102年逐月的历史观测数据。
SODA_path = './data/SODA_train.nc'nc_SODA = Dataset(SODA_path,'r')
def trans_df(df, vals, lats, lons, years, months): ''' (100, 36, 24, 72) -- year, month,lat,lon ''' for j,lat_ in enumerate(lats): for i,lon_ in enumerate(lons): c = 'lat_lon_{}_{}'.format(int(lat_),int(lon_)) v = [] for y in range(len(years)): for m in range(len(months)): v.append(vals[y,m,j,i]) df[c] = v return df
year_month_index = []years = np.array(nc_SODA['year'][:])months = np.array(nc_SODA['month'][:])lats = np.array(nc_SODA['lat'][:])lons = np.array(nc_SODA['lon'][:])for year in years: for month in months: year_month_index.append('year_{}_month_{}'.format(year,month))df_sst = pd.DataFrame({'year_month':year_month_index}) df_t300 = pd.DataFrame({'year_month':year_month_index}) df_ua = pd.DataFrame({'year_month':year_month_index}) df_va = pd.DataFrame({'year_month':year_month_index})
%%timedf_sst = trans_df(df = df_sst, vals = np.array(nc_SODA['sst'][:]), lats = lats, lons = lons, years = years, months = months)df_t300 = trans_df(df = df_t300, vals = np.array(nc_SODA['t300'][:]), lats = lats, lons = lons, years = years, months = months)df_ua = trans_df(df = df_ua, vals = np.array(nc_SODA['ua'][:]), lats = lats, lons = lons, years = years, months = months)df_va = trans_df(df = df_va, vals = np.array(nc_SODA['va'][:]), lats = lats, lons = lons, years = years, months = months)
label_trans_path = './data/'df_sst.to_csv(label_trans_path + 'df_sst_SODA.csv',index = None)df_t300.to_csv(label_trans_path + 'df_t300_SODA.csv',index = None)df_ua.to_csv(label_trans_path + 'df_ua_SODA.csv',index = None)df_va.to_csv(label_trans_path + 'df_va_SODA.csv',index = None)
baseline修改
暂时没有好的idea 这次比赛主要跟着各位大佬学习