爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7277|回复: 5

[经验总结] python利用mpcalc.advection绘制温度平流出现错误,有大佬处理过的指点一下~~~

[复制链接]

新浪微博达人勋

发表于 2022-2-22 11:40:44 | 显示全部楼层 |阅读模式
1金钱
python利用mpcalc.advection绘制温度平流出错了,不知道怎么错了,数据是era5的再分析数据,麻烦家园的大佬指点一下
===============================era5数据===============================================
<xarray.Dataset>
Dimensions:    (latitude: 201, level: 6, longitude: 281, time: 72)
Coordinates:
  * longitude  (longitude) float32 50.0 50.25 50.5 50.75 ... 119.5 119.75 120.0
  * latitude   (latitude) float32 70.0 69.75 69.5 69.25 ... 20.5 20.25 20.0
  * level      (level) int32 250 500 700 850 925 1000
  * time       (time) datetime64[ns] 2021-11-14 ... 2021-11-16T23:00:00
Data variables:
    t          (time, level, latitude, longitude) float32 ...
    u          (time, level, latitude, longitude) float32 ...
    v          (time, level, latitude, longitude) float32 ...
===============================python程序===============================================
from datetime import datetime
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.gridspec as gridspec
import matplotlib.pyplot as plt
import metpy.calc as mpcalc
from metpy.units import units
from netCDF4 import num2date
import numpy as np
import scipy.ndimage as ndimage
#from siphon.ncss import NCSS
import xarray as xr    #读取nc文件

obj = xr.open_dataset(r'data/20211114_16high.nc')
#print(obj['z'][0][1])
#print(obj)

for tt in range(0,1,1): #不包含数字2   读取时间
    for lv in range(0,1,1):
#=======================读取数据=============
        u = obj['u'][0][1]
        v = obj['v'][0][1]
        t = obj['t'][0][1]-273.15
        t.attrs['units'] = 'deg C'
        lat = obj['latitude'][:]
        lon = obj['longitude'][:]
        lons, lats = np.meshgrid(lon,lat)
        dx, dy = mpcalc.lat_lon_grid_deltas(lon, lat)
        # 使用metpy函数计算温度对流
        adv = mpcalc.advection(t, [u, v],  (dx, dy), dim_order='yx')    #>>>===此步报错

#错误信息为
#TypeError: invalid indexer array, does not have integer dtype: array(None, dtype=object)


密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2022-2-22 14:10:11 | 显示全部楼层
读取的数据类型有问题,需要转换一下
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-2-22 19:50:09 | 显示全部楼层
richie727 发表于 2022-2-22 14:10
读取的数据类型有问题,需要转换一下

我也是刚刚发现了,但是这个单位应该是啥呢,现在在纠结单位
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2022-3-5 16:49:42 | 显示全部楼层

给楼主点赞
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2022-11-25 20:09:04 | 显示全部楼层
biubiubiuemm 发表于 2022-2-22 19:50
我也是刚刚发现了,但是这个单位应该是啥呢,现在在纠结单位

转换什么数据了呀?楼主能具体说说解决办法吗?
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2023-12-26 20:56:31 | 显示全部楼层
请问问题解决了吗?
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表