hima8_pv/read_par_data.py

41 lines
1.7 KiB
Python
Raw Normal View History

2022-11-24 08:54:08 +08:00
import os
import pandas as pd
import netCDF4 as nc
import numpy as np
from logzero import logger
target_lon = ['120.85', '121.15']
target_lat = ['29.6', '28.8']
def trans2csv(file_list):
file_list.sort()
par_list = []
2022-11-24 10:07:44 +08:00
cols = []
2022-11-24 08:54:08 +08:00
for file_name in file_list:
logger.info(file_name)
try:
file = file_name.split('\\')[1]
date_time = file.split('_')[1] + ' ' + file.split('_')[2]
print(date_time)
nc_data = nc.Dataset(file_name)
lat = nc_data['latitude'][:] # 纬度
lon = nc_data['longitude'][:] # 经度
lat_str = list(map(lambda x: str(round(x, 2)), np.asarray(lat)))
lon_str = list(map(lambda x: str(round(x, 2)), np.asarray(lon)))
# 分辨率
min_lat, max_lat = min(target_lat), max(target_lat)
min_lon, max_lon = min(target_lon), max(target_lon)
min_lat_index, max_lat_index = lat_str.index(min_lat), lat_str.index(max_lat)
min_lon_index, max_lon_index = lon_str.index(min_lon), lon_str.index(max_lon)
par = np.asarray(nc_data['PAR'][:])
par_save = par[max_lat_index:min_lat_index, min_lon_index:max_lon_index]
logger.info(par_save.shape)
new_par = np.c_[np.array(lat_str)[max_lat_index:min_lat_index], par_save]
new_par = np.c_[np.array([str(date_time)] * par_save.shape[0]), new_par]
2022-11-24 10:07:44 +08:00
cols = lon_str[min_lon_index:max_lon_index]
2022-11-24 08:54:08 +08:00
par_list.extend(new_par)
except Exception as e:
logger.info(e)
continue
2022-11-24 10:07:44 +08:00
date_df = pd.DataFrame.from_records(par_list, columns=['time', 'lat'] + cols)
2022-11-24 10:35:58 +08:00
return date_df