ERA5数据处理(二)

部署运行你感兴趣的模型镜像
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数据对应的参数值

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

引用中虽提及ERA5数据处理学习记录,但未具体阐述ERA5数据处理的方法、工具或相关技术。不过,通常ERA5数据处理会涉及以下常见方法和技术: ### 数据爬取 当处理降水数据时,可通过编写Python脚本进行数据爬取。像示例中使用Python的`re`、`bs4`(`BeautifulSoup`)、`urllib.request`等库从指定网站爬取CMORPH降水数据。代码示例如下: ```python import re from bs4 import BeautifulSoup import urllib.request import ssl mon = ["06","07","08","09","10"] for month in mon: days = ["01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30"] if month =="07" or month =="08" or month=="10": days.append("31") for day in days: TR_url = f'https://www.ncei.noaa.gov/data/cmorph-high-resolution-global-precipitation-estimates/access/hourly/0.25deg/2022/{month}/{day}/' my_url = urllib.request.urlopen(TR_url).read().decode('ascii') soup = BeautifulSoup(my_url,'lxml') url_list=soup.find_all(href=re.compile(".nc")) urls=[] for i in url_list[1:]: urls.append(TR_url+i.get('href')) for i, url in enumerate(urls): file_name = "E:/DATA/降水/"+url.split('/')[-1] urllib.request.urlretrieve(url, file_name) ``` ### 数据下载 ERA5数据下载方面,需将特定文件放在Windows下当前用户操作的默认路径`C:\Users\Administrator`,并在该路径下创建`.cdsapirc`文件,创建方式可参考https://www.cnblogs.com/lxwphp/p/9044770.html [^2]。 ### 数据处理工具 - **Python库**:`xarray`是处理ERA5数据的强大工具,它支持多维数组操作,可方便地读取、处理和分析ERA5的NetCDF文件。`pandas`可用于数据的整理和统计分析。 - **GIS软件**:ArcGIS和QGIS等地理信息系统软件可对ERA5数据进行可视化和空间分析。 ### 数据处理技术 - **数据清洗**:处理ERA5数据时,可能存在缺失值、异常值等问题,可使用`xarray`或`pandas`进行数据清洗,如删除缺失值或使用插值方法填充缺失值。 - **数据聚合**:根据需求将小时数据聚合为日、月或年数据,可使用`xarray`的`resample`方法实现。 - **空间分析**:结合GIS软件,可进行空间插值、缓冲区分析等操作,以更好地理解ERA5数据的空间分布特征。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值