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

CSV/XLSX转NetCDF(nc)文件时维度重塑导致变量创建失败问题求助

CSV/XLSX转NetCDF(nc)文件时维度重塑导致变量创建失败问题求助

各位好,我最近在尝试把CSV/XLSX格式的火灾排放数据转换成NetCDF(.nc)文件,遇到了维度匹配的问题,想请大家帮忙指点一下。

我的数据里包含date(日期)、longitude(经度)、latitude(纬度)和pm25(PM2.5浓度)字段,这些是多个火灾事件的排放记录,所以同一个日期会对应多个不同的经纬度点和对应的pm2.5值,不是规整的网格数据。

当我尝试用xarray创建pm25变量并指定维度、坐标时,弹出了如下错误:

Could not convert tuple of form (dims, data[, attrs, encodring])... to variable.

我明白问题出在pm25数组的形状和我指定的维度不匹配,需要重塑数组,但怎么调整都找不到合适的形状参数。我目前尝试的代码如下:

import pandas as pd
import xarray as xr
import numpy as np
from datetime import datetime as dt
from matplotlib import pyplot as plt

# 读取数据
data= pd.read_excel('2020NEI_California.xlsx')

# 提取去重后的坐标列表并排序
latitude = sorted(list(set(data['latitude'])))
longitude = sorted(list(set(data['longitude'])))
time = sorted(list(set(data['date'])))

# 这里尝试重塑pm25数组,但不知道后面两个维度该填什么
pm25 = np.array(data['pm25']).reshape(19384, .., ..)

# 创建xarray数据集
xrds= xr.Dataset(
    data_vars=dict(
        pm25=(["time", "latitude", "longitude"], pm25)
    ),
    coords=dict(
        longitude=longitude,
        latitude=latitude,
        time=time
    )
)

我现在的困惑是:因为数据不是每个时间点都覆盖所有经纬度网格,而是分散的点,这种情况下该如何正确构建符合NetCDF格式要求的xarray数据集呢?希望有经验的朋友能给我一些思路或者解决方案,谢谢大家!

备注:内容来源于stack exchange,提问作者Nafb

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 06:10:28