You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批量获取气象数据并导入Excel的方法咨询

加拿大环境部气象数据批量获取与Excel导入方案

一、批量获取多年逐小时数据

1. 官方“获取更多数据”板块批量下载

这是最便捷的官方途径,无需按月操作:

  • 进入该板块后,选择Hourly Data(逐小时数据)入口;
  • 通过站点名称、省份、坐标或直接输入站点ID(可从历史数据搜索页的站点详情中获取)定位目标站点;
  • 在时间范围设置中选择需要的起始和结束年份,确认时间粒度为“Hourly”;
  • 点击搜索后,选择“Download All”即可获取包含所选时间段所有逐小时数据的压缩包,解压后得到对应年份的数据集文件。

2. 脚本自动化下载(适合技术用户)

如果需要更灵活的筛选或批量处理,可使用Python脚本构造请求自动下载并合并:

  • 先获取目标站点的stationID(从历史数据页面的站点信息中提取);
  • 基础下载脚本示例:
import requests
import os

station_id = "YOUR_STATION_ID"
start_year = 2010
end_year = 2023
save_dir = "hourly_weather_data"

os.makedirs(save_dir, exist_ok=True)

for year in range(start_year, end_year + 1):
    for month in range(1, 13):
        csv_url = f"https://climate.weather.gc.ca/climate_data/bulk_data_e.html?format=csv&stationID={station_id}&Year={year}&Month={month}&Day=1&timeframe=1&submit=Download+Data"
        resp = requests.get(csv_url)
        if resp.status_code == 200:
            save_path = os.path.join(save_dir, f"{year}_{month}.csv")
            with open(save_path, "wb") as f:
                f.write(resp.content)
            print(f"Downloaded {year}-{month} data")
  • 合并所有CSV文件为单个数据集:
import pandas as pd
import glob

all_csvs = glob.glob(os.path.join(save_dir, "*.csv"))
df_collection = []
for csv in all_csvs:
    # 跳过CSV开头的15行元数据(根据实际文件调整行数)
    df = pd.read_csv(csv, skiprows=15)
    df_collection.append(df)
combined_data = pd.concat(df_collection, ignore_index=True)
combined_data.to_csv("full_hourly_data.csv", index=False)

二、“获取更多数据”板块完整操作流程

  • 进入板块后,定位Historical Climate Data分类下的Hourly Data;
  • 搜索站点:支持按名称、省份、经纬度或站点ID搜索,选中目标站点后进入数据选择界面;
  • 设置时间范围:直接输入起始和结束年份,选择“Hourly”作为数据粒度;
  • 下载数据:点击“Search”后,页面会列出所有可用的数据文件,点击“Download All”即可批量获取,部分站点可能存在数据缺失,页面会标注可用时间范围。

三、Excel导入最优方法

1. 单CSV文件导入

  • 打开Excel,切换到数据选项卡 → 选择自文本/CSV;
  • 选中目标CSV文件,在导入向导中确认分隔符为逗号,若文件开头有元数据行,设置“跳过行数”为对应数值(通常15行),预览无误后点击加载。

2. 批量合并多个CSV文件(推荐Power Query)

  • 打开Excel,点击数据 → 获取数据 → 从文件 → 从文件夹;
  • 选择存放CSV文件的文件夹,点击确定后进入文件列表界面;
  • 点击编辑进入Power Query编辑器,添加自定义列,输入公式:Table.FromCsv([Content], [Delimiter=",", SkipLines=15])(跳过元数据行);
  • 展开自定义列,清理不必要的字段后,点击关闭并上载,即可将所有CSV数据合并到单个工作表中。

3. VBA脚本批量导入(适合熟悉VBA的用户)

Sub MergeWeatherCSVs()
    Dim targetWs As Worksheet
    Dim csvFolder As String
    Dim csvFile As String
    Dim lastRow As Long
    
    Set targetWs = ThisWorkbook.Sheets.Add
    targetWs.Name = "CombinedWeatherData"
    
    csvFolder = "C:\your\csv\directory\" ' 替换为你的CSV文件夹路径
    csvFile = Dir(csvFolder & "*.csv")
    
    Do While csvFile <> ""
        With targetWs.QueryTables.Add(Connection:="TEXT;" & csvFolder & csvFile, Destination:=targetWs.Cells(lastRow + 1, 1))
            .TextFileParseType = xlDelimited
            .TextFileCommaDelimiter = True
            .TextFileSkipRows = 15 ' 跳过元数据行
            .Refresh
        End With
        lastRow = targetWs.Cells(targetWs.Rows.Count, "A").End(xlUp).Row
        csvFile = Dir
    Loop
End Sub

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 18:14:55