爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 1979|回复: 10

经纬度和不同高度消光系数数据绘制三维路径图请教

[复制链接]

新浪微博达人勋

发表于 2023-4-4 09:09:54 | 显示全部楼层 |阅读模式

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

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

x
王老师,请问有经纬度数据和对应的不同高度消光系数数据怎么用MI绘制三维路径图,试着写了程序但是没有出图也没有报错,
附上数据。

ws-6.2-1.txt

461.65 KB, 下载次数: 5, 下载积分: 金钱 -5

ws-aod.xlsx

1.18 MB, 下载次数: 4, 下载积分: 金钱 -5

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

新浪微博达人勋

发表于 2023-4-4 12:55:13 | 显示全部楼层
你说的三位路径图具体指什么样的图?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-4-4 13:35:45 | 显示全部楼层
王老师,我想绘制成示例图片这种形式,这是个示意图,想叠加进三维坐标系中,目前出的图可能数据读取的问题只能构建出坐标系。
示例图片.png
三维坐标系.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-4-4 22:48:36 | 显示全部楼层
本帖最后由 MeteoInfo 于 2023-4-6 16:06 编辑
Linda.W 发表于 2023-4-4 13:35
王老师,我想绘制成示例图片这种形式,这是个示意图,想叠加进三维坐标系中,目前出的图可能数据读取的问题 ...

参考这个脚本,把excel文件另存为csv文件,注意先要把excel文件中右边多余的列删除。

  1. fn = 'D:/Temp/ascii/ws-aod.csv'
  2. df = DataFrame.read_table(fn, delimiter=',', format='%422f')
  3. lon = df['Longitude'].values
  4. lat = df['Latitude'].values
  5. alt = array(df.columns.names[2:], 'float')
  6. n_alt = len(alt)
  7. alt, lon = meshgrid(alt, lon)
  8. lat = np.expand_dims(lat, axis=1)
  9. lat = np.repeat(lat, n_alt, axis=1)
  10. ec = df[:,2:].values

  11. axes3d()
  12. surf(lon, lat, alt, ec, edgecolor=None, facecolor='interp')
  13. colorbar


surf_dataframe.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-4-7 14:09:18 | 显示全部楼层
王老师,试了多个版本,运行到surf函数的时候总是报错,希望您能再指导指导
fn =  r'D:\test\data-3D\ws6.2-1aod.csv'
df = DataFrame.read_table(fn, delimiter=',', format='%422f')
lon = df['Longtitude'].values
lat = df['Latitude'].values
alt = array(df.columns.names[2:533], 'float')
n_alt = len(alt)
print n_alt
alt, lon = meshgrid(alt, lon)
lat = np.expand_dims(lat, axis=1)
lat = np.repeat(lat, n_alt, axis=1)
ec = df[:,2:533].values

ax=axes3d()
surf(lon, lat, alt, ec, edgecolor=None, facecolor='interp')

xlim(114.2,114.4)
ylim(34.2,34.6)
zlim(0,3000)
colorbar()
savefig(r'D:\test\ws6.2aod-3D.jpg',dpi = 300,width=800, height=600)


报错.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-4-11 08:55:06 | 显示全部楼层
王老师,我这个运行还是会报错,可以帮我看看是什么原因吗?
fn =  r'D:\test\data-3D\ws6.2-1aod.csv'
df = DataFrame.read_table(fn, delimiter=',', format='%422f')
lon = df['Longtitude'].values
lat = df['Latitude'].values
alt = array(df.columns.names[2:533], 'float')
n_alt = len(alt)
print n_alt
alt, lon = meshgrid(alt, lon)
lat = np.expand_dims(lat, axis=1)
lat = np.repeat(lat, n_alt, axis=1)
ec = df[:,2:533].values

ax=axes3d()
surf(lon, lat, alt, ec, edgecolor=None, facecolor='interp')

xlim(114.2,114.4)
ylim(34.2,34.6)
zlim(0,3000)
colorbar()
savefig(r'D:\test\ws6.2aod-3D.jpg',dpi = 300,width=800, height=600)

错误反馈.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-4-11 09:03:11 | 显示全部楼层
Linda.W 发表于 2023-4-11 08:55
王老师,我这个运行还是会报错,可以帮我看看是什么原因吗?
fn =  r'D:\test\data-3D\ws6.2-1aod.csv'
d ...

你的数据有多少列?422还是533?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-4-11 09:09:00 | 显示全部楼层
源文件数据放了600列,读取的时候只用了前533列数据
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-4-11 09:11:07 | 显示全部楼层
王老师,是不是format='%422f'这是限定了长度?我之前没懂这个代码的意思,我试试改一下
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-4-11 09:14:51 | 显示全部楼层
好像不是列数的问题,因为我改成surf(lon, lat, alt, c=ec, edgecolor=None, facecolor='interp')的时候,能出高度图
三维图.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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