import xarray as xr
import numpy as np
import pandas as pd
import os
import glob
from datetime import datetime, timedelta

folder_path = 'nc数据存放文件夹路径'
file_paths = glob.glob(os.path.join(folder_path, "*.nc"))
df_station = pd.read_csv("这里是站号经纬度", encoding="gbk")

# Create an empty list to accumulate station data
station_data_list = []

# Create a list to store all unique times
all_times = []

for file_path in file_paths:
    ds = xr.open_dataset(file_path)
    time = ds["time"].values
    lon = ds['longitude'].values
    lat = ds['latitude'].values
     # Add the 'xxxx' variable 读取你响应需要的变量参数

    for station, find_latindex, find_lonindex in zip(df_station['站号'], df_station['纬度'], df_station["经度"]):
        lat_index = np.argmin(np.abs(lat - find_latindex))
        lon_index = np.argmin(np.abs(lon - find_lonindex))

        # 变量[:, lat_index, lon_index]

# 时间转换
        for i, time_val in enumerate(time):
            beijing_time = time_val + np.timedelta64(8, 'h')  # Add 8 hours of time difference (no DST in China)
            beijing_time_str = beijing_time.astype('M8[s]').astype(str)  # Format time as a string
            all_times.append(beijing_time_str)

            # Append the data for this time point to the list
            station_data = [station, beijing_time_str, find_lonindex, find_latindex] 
                           
            station_data_list.append(station_data)

# Create a DataFrame from the accumulated station data
columns = ['需要存放到csv中的列名'] 

df_all = pd.DataFrame(station_data_list, columns=columns)

df_all.to_csv("输出路径",encoding="gbk",index=False)

这里进行的操作是按照站点经纬度提取ERA5数据对应的参数值

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐