请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 40923|回复: 28

[源代码] 基于python的QuikScat风场数据可视化

[复制链接]

新浪微博达人勋

发表于 2017-6-3 18:33:37 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 冰原1 于 2017-6-3 18:57 编辑

学习札记
python在水色遥感中的应用(2):QuikScat风场数据读取,区域截取及可视化。

1.结果:

SSW4.png


2.源代码
# -*- coding: utf-8 -*-
"""
Created on Sat Jun 03 14:17:35 2017
@author: qiwei
"""
from quikscat_averaged_v4 import QuikScatAveraged
filename = 'qscat_200001v4.gz'
dataset = QuikScatAveraged(filename)
wspdname = 'windspd'
wdirname = 'winddir'
#missing = -999
wspd = dataset.variables[wspdname][:]
wdir = dataset.variables[wdirname][:]
#land = dataset.variables['land'][:]
#get lon/lat
lon = dataset.variables['longitude'][:]
lat = dataset.variables['latitude'][:]
#get u and v
from bytemaps import get_uv
import numpy as np
u,v = get_uv(wspd,wdir)
bad = np.where(wspd<0)
wspd[bad] = 0.
u[bad] = 0.
v[bad] = 0.

#get region to plot
latindex = np.arange(len(lat))
lonindex = np.arange(len(lon))
latindex2 = np.max(latindex[lat <=0])
latindex22 = np.min(latindex[lat >= 25])
lonindex2 = np.min(lonindex[lon >= 105])
lonindex22 = np.min(lonindex[lon >= 125])

#get region of you study
lat2 = lat[latindex2:latindex22]
lon2 = lon[lonindex2:lonindex22]
wspd2 = wspd[latindex2:latindex22, lonindex2:lonindex22]
u2 = u[latindex2:latindex22, lonindex2:lonindex22]
v2 = v[latindex2:latindex22, lonindex2:lonindex22]
#modules needed for this example
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import cmaps
#
fig=plt.figure(figsize=(12, 8))
#
m = Basemap(projection = 'cyl',llcrnrlat = 0,urcrnrlat = 25,llcrnrlon = 105,urcrnrlon = 125,resolution='l')
m.fillcontinents(color='silver')
m.drawparallels(np.arange(0.,25.,5.),labels=[1,0,0,0], linewidth = 0) # draw parallels
m.drawmeridians(np.arange(108.,125.,5.),labels=[0,0,0,1],linewidth = 0) # draw meridians
#m.drawcoastlines(color='darkgrey')
m.drawcountries(color='darkgrey')
m.drawmapboundary(fill_color='white')
#
x, y = m(*np.meshgrid(lon2, lat2))
yy = np.arange(0, y.shape[0], 4)
xx = np.arange(0, x.shape[1], 4)
points = np.meshgrid(yy, xx)
#
obj = m.quiver(x[points], y[points], u2[points], v2[points], wspd2[points], width = 0.004, cmap = cmaps.BkBlAqGrYeOrReViWh200)
cbar = m.colorbar(obj, label = "m/s")
#plt.grid()
plt.title('Wind Speed of QuikScat in January, 2000')
plt.savefig('SSW2.png', dpi=300)
plt.show()

3.模块和数据




模块和数据.rar

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

评分

参与人数 1金钱 +15 贡献 +5 收起 理由
mofangbao + 15 + 5

查看全部评分

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

新浪微博达人勋

发表于 2017-6-4 07:16:51 | 显示全部楼层
不错
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2017-6-4 08:02:57 | 显示全部楼层
学习了!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2017-6-6 15:43:53 | 显示全部楼层
学习了!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2017-6-8 09:14:09 | 显示全部楼层
学习了
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2017-6-9 09:26:58 | 显示全部楼层
楼主这些包 quikscat_averaged_v4从哪儿下的,里面的方法和函数有介绍么
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-6-9 09:28:58 | 显示全部楼层
怎么使用,楼主介绍介绍吧,谢谢了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-7-6 19:32:34 | 显示全部楼层
请问一般你们做风场模拟使用什么软件?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-7-11 10:25:40 | 显示全部楼层
{:eb502:}{:eb502:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2017-10-1 22:26:53 | 显示全部楼层
太好了,对处理ssmi的gz很有帮助
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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