在地图上绘制海流数据:unp值太多

2024-09-28 05:26:02 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我的代码:

from netCDF4 import *
import datetime as dt
import numpy as np
import numpy.ma as ma
from datetime import date, datetime, timedelta
import matplotlib.pyplot as plt

nc=dataset('datasets/essai.nc')

time_var = nc.variables[str('forecast_time0')]
wave_var = nc.variables['DIST_GDS0_SFC']
lat = nc.variables['g0_lat_1'][:]
lon = nc.variables['g0_lon_2'][:]
uin = nc.variables['UOGRD_GDS0_DBSL'][:]
vin = nc.variables['VOGRD_GDS0_DBSL'][:]
plt.quiver(lon[::5], lat[::5], uin[::5], vin[::5], scale=200)

我得到的错误是:

^{pr2}$

我认为问题出在UOGRD和VOGRD,他们有很多价值观,但不知道如何操纵它?在

下面是我的uogrd的样子:

http://www.imgjoe.com/x/microsofprp.jpg


Tags: fromimportnumpydatetimevaraspltvariables
1条回答
网友
1楼 · 发布于 2024-09-28 05:26:02

首先,欢迎来到这个网站。也就是说,我认为这个问题在标准的StackExchange网站上可能会更好,因为它更多的是关于数据的绘图,而不是每个人说的地理信息系统。不过,还是很乐意帮忙:)

查看quiver plot的文档,我们得到以下内容:

  • 所有参数可以是1D或2D
  • 如果X和Y是1D,U和V是2D,并且X和Y的长度与U an V的行和列的长度相同,则它们将扩展为网格。否则会出错
  • 如果您只想快速查看数据,实际上并不需要X和Y数组

使用当前正在进行的切片,您将在第一个维度的每个数组中获得每5个th值。假设lat和lon是一维数组,那么每5个thlat和lon值就得到一个。由于UOGRD和VOGRD是二维数组,因此每5个th一次,这意味着您的经纬度没有足够的行来展开。在

有几件事要做:

  • 在没有经纬度的情况下绘制箭筒图,看看你的UOGRD和VOGRD是什么样子(我怀疑它是一个矩形):
plt.quiver(uin[::5], vin[::5], scale=200)
  • 查看所有数组的大小,确保有足够的行和列值。在
^{pr2}$
  • 如果只想每隔5th值绘制一次,请在绘图的两个维度上对UOGRD和VOGRD数组进行切片。在
plt.quiver(lon[::5], lat[::5], uin[::5, ::5], vin[::5, ::5], scale=200)

希望这有帮助!在

相关问题 更多 >

    热门问题