爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3929|回复: 4

[求助] 平行四边形区域的垂直剖面该用什么画呢?

[复制链接]
发表于 2025-5-24 12:59:04 | 显示全部楼层 |阅读模式

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

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

x
想请教一下大家,Python画左图里绿色平行四边形的垂直剖面环流该用什么比较方便呀?😂metpy的cross section好像只能画任意两点之间的剖面
截图 2025-05-24 12-53-22.png
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2025-6-23 12:58:59 | 显示全部楼层
用rioxarray可以实现
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2025-7-31 09:45:23 | 显示全部楼层

大佬用的哪个函数实现的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-7-31 09:52:30 | 显示全部楼层
本帖最后由 一大碗年糕 于 2025-7-31 09:54 编辑
tosaka 发表于 2025-7-31 09:45
大佬用的哪个函数实现的

自己定义区域,然后用rixarray的clip截取
  1. import rioxarray as rio
  2. def get_rotated_rectangle_polygon(center_lon, center_lat, width_deg, height_deg, angle_deg):
  3.     angle_rad = math.radians(angle_deg)
  4.     dx, dy = width_deg / 2, height_deg / 2
  5.     offsets = [(-dx, -dy), (dx, -dy), (dx, dy), (-dx, dy)]
  6.     corners = []
  7.     for ox, oy in offsets:
  8.         x_rot = ox * math.cos(angle_rad) - oy * math.sin(angle_rad) + center_lon
  9.         y_rot = ox * math.sin(angle_rad) + oy * math.cos(angle_rad) + center_lat
  10.         corners.append((x_rot, y_rot))
  11.     return Polygon(corners)

  12. AR = AR.rio.write_crs("EPSG:4326")  # 明确是地理坐标

  13. polygon_B = get_rotated_rectangle_polygon(127, 38, 4, 8, 25)  # 朝鲜半岛区域
  14. gdf_B = gpd.GeoDataFrame({"geometry": [polygon_B]}, crs="EPSG:4326")
  15. AR_B = AR.rio.clip(gdf_B.geometry, gdf_B.crs, drop=True)
  16. AR_B = mo.AreaWeightMean(AR_B)
  17. AR_B = mo.Standardization(AR_B)
  18. AR_B.plot(label=region[re])
复制代码


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

使用道具 举报

发表于 2025-8-4 15:51:25 | 显示全部楼层
{:5_213:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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