爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6133|回复: 8

将Metpy库输出结果转换为不带单位的实数

[复制链接]

新浪微博达人勋

发表于 2019-8-8 11:33:25 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
目前关于Metpy库的使用,网上资料比较少。在这里介绍下在使用中遇到的一些问题。
根据温度、压强、比湿计算露点温度为例:from metpy.units import units
import metpy.calc as calc
TD=calc.dewpoint_from_specific_humidity(20*units('g/kg'),300*units.kelvin,1000*units.mbar)print(TD)输出的结果为:24.98813401152105 degC在使用任何一个函数计算对流参数的过程中,函数的函数必须有相对应的单位,否则程序会报错。在这里比湿的单位为'g/kg',温度的单位为‘K’即卡尔文温度,气压的单位是mbar与hPa(百帕)的含义相同。从输出的结果可以看出,是以摄氏度为单位。但这种带有单位的结果有时不利用我们使用,因为他的类型不是常规的数值型,无法正常输出到excel/csv/txt中。print(type(TD)) 输出:<class 'pint.quantity.build_quantity_class.<locals>.Quantity'>可以看出,这是一种通过Quantity类所定义的类型,区别于我们常规使用的float、int等类型。
那么如何得到一个只包括数值型的结果?经过翻看源码,得到了我们想要的结果。print(TD)
print(TD.m)
print(TD.u)
相应的输出结果为:24.98813401152105 degC24.98813401152105degC第一个结果是np.float64型,需要转换成float型。即TD.m.item()print(TD.m.item())
print(type(TD.m.item()))24.98813401152105<class 'float'>接下来就可以使用我们计算的结果,进行其他操作了。





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

新浪微博达人勋

发表于 2019-12-26 20:54:09 | 显示全部楼层
很好的经验,metpy的学习资源太少了,只能从官网上学习,太难了。哥们有好的资料吗?求分享
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-12-31 16:11:09 | 显示全部楼层
can only convert an array of size 1 to a Python scalar这是我遇到的错误啊
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-1-18 13:59:10 | 显示全部楼层
Eegle 发表于 2019-12-26 20:54
很好的经验,metpy的学习资源太少了,只能从官网上学习,太难了。哥们有好的资料吗?求分享

没有资料 也只能多多看看官网!慢慢摸索。建议更新到最新版本,旧版有的地方存在错误。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-1-19 08:57:58 | 显示全部楼层
一颗醉甜的草莓 发表于 2020-1-18 13:59
没有资料 也只能多多看看官网!慢慢摸索。建议更新到最新版本,旧版有的地方存在错误。

好的 谢谢 我还不知道怎么计算散度呢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-3-5 18:12:08 | 显示全部楼层
你好,官网上有些着dewpoint_from_relative_humidity(temperature, …),但是报错AttributeError: module 'metpy.calc' has no attribute 'dewpoint_from_relative_humidity',请问楼主有试过类似的问题吗?或者知道怎么解决吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-3-18 22:19:07 | 显示全部楼层
13268246806 发表于 2020-3-5 18:12
你好,官网上有些着dewpoint_from_relative_humidity(temperature, …),但是报错AttributeError: module ' ...

更新到0.12版 你用的那个版本还没这个函数
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-3-19 09:34:16 | 显示全部楼层
一颗醉甜的草莓 发表于 2020-3-18 22:19
更新到0.12版 你用的那个版本还没这个函数

感谢!!版本更新后就可以使用了!!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-1-11 09:58:16 | 显示全部楼层
顶一个,Metpy的学习资料太少了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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