【数据分享】1981-2024年全国各城市逐日、逐月、逐年平均气温(Excel格式)

气象数据一直是一个价值很高的数据,它被广泛用于各个领域的研究当中。这其中,又以平均气温数据最为常用!之前我们分享过1929-2024年全球站点的逐日平均气温数据、逐月平均气温数据和逐年平均气温数据(可查看之前的文章获悉详情)。本次给大家带来的是1981-2024年全国各城市逐日、逐月、逐年的平均气温数据。数据单位为摄氏度,数据格式为Excel,月平均气温由当月的每日平均气温计算平均值得来,年平均气温由当年的每日平均气温计算平均值得来,2024年的数据为1月1号——6月31号。原始数据来源于美国国家海洋和大气管理局(NOAA)下设的国家环境信息中心(NCEI),数据处理方式会在下文详细介绍!

大家可以在公众号回复关键词 374 按转发要求获取数据!以下为数据的详细介绍:

数据预览

该数据包括地级市的逐日、逐月、逐年平均气温!如下图:

首先,我们先来看看地级市的逐日平均气温!1981至2024年所有天数的逐日平均气温数据包括在一个csv文件中。数据字段包括城市名称、城市代码、城市所属省份、所属省份代码,每日平均气温。如下图:

接着,我们来看看地级市逐月平均气温!1981至2024年所有月份的月平均气温数据包括在一个csv文件中。数据字段包括城市名称、城市代码、城市所属省份、所属省份代码,每月平均气温。如下图:

然后,我们来看看地级市逐年平均气温!1981至2024年每一年的平均气温数据包括在一个csv文件中。数据字段包括城市名称、城市代码、城市所属省份、所属省份代码,每年平均气温。如下图:

数据来源

原始数据来源于美国国家海洋和大气管理局(NOAA)下设的国家环境信息中心(NCEI),网址为:https://www.ncei.noaa.gov/data/global-summary-of-the-day/archive/,数据包括1929—2024年的气象数据,大家可以自己去该网站下载原始数据!

处理方式

1.从NCEI网站下载到的原始数据,每一个csv文件是某个特定站点某年内所有天数的平均气温、最高气温、降水量等气象指标(一共包括十几个气象指标)。我们按照年份(只处理了1981年——2024年的数据,1980年前的观测站点较少)将每年涉及到的所有气象观测站点的每日平均气温数据进行合并处理,并提取出中国范围的站点,此外还将数据单位由华氏度转化为摄氏度单位,最终得到1981-2024年全国范围气象站点的逐日平均气温数据。

2.基于中国所有站点的逐日平均气温数据,我们利用反距离权重法插值得到全国逐日的平均气温栅格数据(空间尺度为1km)。

3.我们基于国家地理信息公共服务平台(天地图)发布的审图号为GS(2024)0650号的2024年地级市的行政区划Shp数据(可查看之前的文章获悉详情),对地级市行政边界内的逐日平均气温栅格进行求平均数处理,得到了地级市逐日平均气温。

4.基于地级市逐日平均气温,我们再求得每月所有天数的平均气温的平均值得到逐月平均气温。再求得每年所有天数的平均气温的平均值得到逐年平均气温。

注意事项

1.该数据是通过插值方法得到的,由于插值的方式与各种处理参数的不同,该数据可能会与其他来源的平均气温数据有微小差别,这个很正常,特此说明!

2.如果在论文中使用该数据,数据来源请写上面的原始数据来源,处理方法请写上面的处理方式!

数据获取

如有数据需求,欢迎点击下方名片链接,关注我们并咨询获取~

要完成这个任务,你需要使用Python的数据分析库pandas来读取Excel文件,处理数据并计算高温热浪事件的数量和持续时间。以下是一步步的步骤: 1. **安装必要的库**: 首先确保你已经安装了`pandas`, `openpyxl`(用于读取Excel文件)以及可能需要的数据可视化库,如`matplotlib`。如果没有,可以通过pip安装: ``` pip install pandas openpyxl matplotlib ``` 2. **读取Excel文件**: 使用pandas的`read_excel`函数读取Excel文件中的气温数据: ```python import pandas as pd # 假设你的Excel文件名为'temperature_data.xlsx',且数据在Sheet1 df = pd.read_excel('temperature_data.xlsx', sheet_name='Sheet1') ``` 3. **处理日期列**: 将日期转换为日期类型,并提取份和月份: ```python df['Date'] = pd.to_datetime(df['Date']) df['Year'] = df['Date'].dt.year df['Month'] = df['Date'].dt.month ``` 4. **计算阈值**: 对每个月的日均气温度排序,然后找出每个日期对应的95%分位数作为阈值: ```python daily_temps = df.groupby(['Year', 'Month', 'Date'])['Temperature'].mean() thresholds = daily_temps.unstack().groupby(level=[0, 1]).quantile(0.95) ``` 5. **定义热浪条件**: 创建一个新的布尔列,检查连续三天是否超过阈值: ```python def is_hot_wave(row): threshold = thresholds.loc[row.name[0], row.name[1]] return (row['Temperature'] >= threshold).rolling(window=3, min_periods=3).all() df['HotWave'] = df.groupby(['Year', 'Month', 'Date']).apply(is_hot_wave) ``` 6. **统计热浪事件**: 计算每个(、月、连续15天)组合的热浪事件数量及其持续时间: ```python hot_waves = df[df['HotWave']].drop_duplicates(subset=['Year', 'Month'], keep='last') events = hot_waves.groupby(['Year', 'Month']).size().reset_index(name='EventCount') event_durations = hot_waves.groupby(['Year', 'Month', 'Date']).size().cumsum().reset_index(drop=True) durations = hot_waves.merge(event_durations.rename(columns={0: 'Duration'}), on=['Year', 'Month', 'Date']) durations['Duration'] = durations['Duration'] - 1 # 减去第一天,得到持续天数 ``` 7. **结果整合**: 结合事件数量和持续时间数据: ```python results = pd.concat([events[['Year', 'Month', 'EventCount']], durations[['Year', 'Month', 'Duration']]]) ``` 8. **保存结果**: 最后,你可以选择将结果写回新的Excel文件或CSV文件,或者直接打印出来查看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值