5
\ begingroup美元

有人使用过来自的python代码吗此处(作者:盖尔·阿恩·瓦格博)从WRF输出中绘制skewT图?

我有一个关于pywrfplotUtils.py中代码中使用的一些函数的问题-这是getDimensions(nc)函数中调用的getXY(lon,lat)函数。

代码如下:

def getDimensions(nc): Nx = nc.getncattr('WEST-EAST_GRID_DIMENSION')-1 Ny = nc.getncattr(' south - north_grid_dimension ')-1 Nz = nc.getncattr('BOTTOM-TOP_GRID_DIMENSION')-1 dx = nc.getncattr(' dx ') dy = nc.getncattr(' dy ') lons = nc.getncattr。变量['XLAT'][0] lats = nc。变量['XLONG'][0] #查找焦点x的坐标,y = getXY(lons[Ny/2,:],lats[:,Nx/2]) return Nx,Ny,Nz,lons,lats,dx,dy,x,y def getXY(lon,lat): x_nr = 0 y_nr = 0 while (lon[x_nr] < lon_focuspoint): x_nr += 1 while (lat[y_nr] < lat_focuspoint): y_nr += 1 print "x_nr:" str(x_nr)," lat:",str(lon[x_nr]) print "y_nr:" str(y_nr)," lat:",str(lon[x_nr]) return x_nr,y_nr

焦点是pywrfplotParams.py中设置的一个变量:

#这定义了网格框,其中skewT-plots等基于lat_focuspoint = 60.2 lon_focuspoint = 11.08

不幸的是,我不知道焦点指的是什么,所以当我使用作者设置的值时,显然我会得到一个错误,这个错误是-IndexError:索引越界。

我发现了这个链接在为该问题中问到的属性提供定义时很有用,但我不完全确定是否也应该从WRF模型网格中的纬度和经度获得单元格索引。

非常感谢你的想法!

\ endgroup美元

    1回答1

    2
    \ begingroup美元

    Skew-T/Log-p图是从一个点开始的垂直剖面,在该代码中,您要绘制Skew-T的点是纬度60.2,经度11.08。代码片段:

    当(lon[x_nr] < lon_focuspoint): x_nr += 1 while (lat[y_nr] < lat_focuspoint): y_nr += 1

    通过将x和y网格点设置为0,并在该网格点上的纬度/经度值小于焦点的情况下递增索引,找到在焦点以西和以南最近的网格点。这就是焦点的作用——您想要skew-t/log-p绘图的仰角/仰角位置。

    一个例外IndexError:索引越界。意思是上面的代码试图访问一个值经度(x_nr)lat [y_nr]这是越界。这意味着您的焦点的纬度/经度坐标不在您的域中。

    要成功地运行代码,请将焦点编辑为模型域中的一个点,特别是希望使用skew-t概要文件的纬度和经度的值。

    \ endgroup美元
    5
    • \ begingroup美元 谢谢你的澄清@casey♦。我一直想获得域的纬度和经度的值,因为很久以前,但从未设法做到这一点。你知道怎么做吗?但是,我知道数据的位置,在明尼苏达州。如果我对你答案的理解是正确的,明尼苏达州的坐标是北纬44.9度,西经93.2度。所以我试着使用它作为我的焦点,但我仍然得到IndexError。 \ endgroup美元
      - - - - - -cwmwl
      2015年6月23日14:47
    • \ begingroup美元 @cwmwl你可以在一个新问题中问这个问题。绘图域应该在运行模型之前设置,因此您应该知道域的边界。对于内部点,我只做一个以纬度/长度为轴的图形(所以你知道在哪里您需要在)处获得skew-t数据。 \ endgroup美元
      - - - - - -凯西
      2015年6月23日14:52
    • \ begingroup美元 @cwmwl我假设你输入92.3W作为-92.3? \ endgroup美元
      - - - - - -凯西
      2015年6月23日14:53
    • \ begingroup美元 好吧,我再问一个新问题。供你参考,我没有运行这个模型。我只是使用输出从模型..我不知道我需要知道这些关于模型的信息。 \ endgroup美元
      - - - - - -cwmwl
      2015年6月23日14:56
    • \ begingroup美元 @cwmwl好吧,如果你知道你想要绘图的网格索引,你可以修改程序直接使用它们,而不是从焦点中找出它们。这是另一种选择,如果你已经知道你想要的地块在哪里。 \ endgroup美元
      - - - - - -凯西
      2015年6月23日14:58

    你的答案

    点击“张贴您的答案”,即表示您同意我们的服务条款隐私政策而且饼干的政策

    这不是你想要的答案?浏览带标签的其他问题问自己的问题