3
\ begingroup美元

我正在寻找一种方式来检测shearlines或融合等地区,如下图所示(红色虚线)。

我能够推导出拉伸、剪切和总变形。

shearline正值地区最大拉伸变形。

目前,我画shearline手动。但是我想知道如果有一种方法可以自动检测这条线或变形区。

我想两种方式

  1. 看(即动态变量。、拉伸变形)

  2. 使用Python的模式识别功能来检测这种模式。

问题

任何建议我可以自动检测到。我不知道如何实现上面的方法。我不确定什么标准设置为了画出shearline。

我也是新到Python所以我不知道如何实现第二个。

我有风netcdf格式的数据和计算变形。我上传文件到以下链接:

UWND

VWND

链接到变形计算参数

变形参数计算:变形参数

在A、B和V是剪切、拉伸,和总变形参数。

在变形。数控文件,shear_sph(剪切变形;在上面的方程中);stretch_sph(拉伸变形;B在方程中B);deform_sph(总变形;在上面的方程V)。

我非常感谢关于这件事的任何帮助。

总结

我在寻找NCL剪切、拉伸变形在Python的功能。有没有现有的软件包或我必须编写自己的吗?

\ endgroup美元
2
  • \ begingroup美元 @gansub。我已经计算了变形参数(自然/笛卡尔坐标)变形的链接在我的帖子。 \ endgroup美元
    - - - - - -Lyndz
    2019年5月20日,在他们吗
  • \ begingroup美元 @gansub。我只是想到另一个有趣的点。如果我只是定位鞍点fromt流水线图吗?变形的中心似乎是鞍点,在代数意义 \ endgroup美元
    - - - - - -Lyndz
    2019年5月20日在31吗

1回答1

2
\ begingroup美元

我不能够充分实际代码在Python中但我希望我可以点你在正确的方向上如果我计算分流和汇合。

可以开始做简化使用matplotlib第一个情节。一旦你有了,你需要实际的简化数据中描述这个链接https://matplotlib.org/api/_as_gen/matplotlib.pyplot.streamplot.html数据结构是作为LineCollection。

为每个LineCollection需要计算简化切向和法向量基于局部笛卡尔坐标系统的起源的想法集中在某处沿着流线。

一旦你有切向和法向量将需要使用这个方程即散度在自然坐标系

$ $ \微分算符。v_h = (e_n \压裂{\部分e_s}{\部分n} * v_h) + \压裂{\部分v_h}{\部分年代}$ $

使用的组合Frenet艾史蒂夫公式这可以显示等于

$ $ \压裂{| v_h |} {R_n} + \压裂{\部分v_h}{\部分年代}$ $

从你的角度你只要第一项方程计算分流和汇合。所以R_n美元的曲率半径法向量(之前你已经计算)。为了计算曲率半径可以使用这个最小二乘拟合的python代码(使用最小二乘的方法——获得椭圆然后计算半径)。如果半径是积极的我. . eR_n > 0美元然后你有分流和消极的融合。

更新

如果你正在寻找的NCL剪切拉伸变形在Python中你能做的是在Python中使用这个包pyspharm。数据必须是全球性的,那么您需要东方南到北方向的网格。一旦你有了,你可以用这个包来计算剪切、拉伸和变形参数使用pyspharm的getgrad ()方法来计算风的矢量梯度向量。如果你在风的组件通过向量(u和v) getgrad()你会得到纬向和经向风的梯度向量的分量。加减他们会得到你剪切和拉伸。

示例代码

从spharm进口Spharmt uspectral = Spharmt.grdtospec (u, ntruncation) vspectral = Spharmt.grdtospec (v, ntruncation) dudx dudy = Spharmt.getgrad (uspectral) dvdx dvdy = Spharmt.getgrad (vspectral) #剪切和拉伸剪切= dvdx + dudy = dudx - dvdy伸展
\ endgroup美元
2
  • \ begingroup美元 嗨@gunsub,非常感谢。我将看更多。我猜没有直截了当的解决方案。我计算deformatiion参数在NCL使用球面谐波。这是更精确的比为中心有限差分。 \ endgroup美元
    - - - - - -Lyndz
    2019年5月20日在十二24吗
  • 1
    \ begingroup美元 适当@Lyndz我已经更新了我的答案。 \ endgroup美元
    - - - - - -gansub
    2019年5月20日12:26

你的答案

通过点击“发布你的答案”,你同意我们服务条款并承认您已阅读并理解我们的隐私政策的行为准则

不是你要找的答案?浏览其他问题标记问你自己的问题