gpt4 book ai didi

python - 在 basemap 中绘制倾斜网格网络

转载 作者:太空宇宙 更新时间:2023-11-04 10:11:41 25 4
gpt4 key购买 nike

这是一个示例图作为说明。

enter image description here

此图显示了欧洲部分地区的卫星 SO2 柱数据。

由于卫星与经度的差异,符合卫星扫描原理的网格与经度不平行。

我不知道是否可以在matplotlib.basemap中使用pcolor或pcolormesh绘制这种网格网络。所以,我在这里发布我的问题。

最佳答案

我偶然发现了这个问题,因为我也在寻找一种使用 matplotlibbasemap 在 map 上绘制网格化卫星测量值的方法。
我不确定我的想法是否与您的问题相关,因为我的像素只能假设非常有限的离散值 (4),但我还是决定回答,也看看您是否最终找到了有效的解决方案。我所做的是使用 Polygon 方法直接将每个 单个像素绘制为 map 上的多边形。我将 alpha 值设置为基础物理测量的函数。在我的例子中——云掩模图——这个策略非常有效。
这是为要绘制的每个像素调用的函数:

def draw_cloud_pixel(lats, lons, index, mapplot):
"""Draw a pixel on the map. The fill color alpha level depends on the cloud index,
ranging from 0.1 (almost fully transparent) for confidently clear pixels to 1 (fully opaque)
for confidently cloudy pixels.

Keyword arguments:
lats -- Array of latitude values for the pixel 4 corner points (numpy array)
lons -- Array of longitudes values for the pixel 4 corner points (numpy array)
index -- Cloud mask index for given pixel:
0: confidently_cloudy
1: probably_cloudy
2: probably_clear
3: confidently_clear
mapplot -- Map object for coordinate transformation

Returns:
None
"""
x, y = mapplot(lons, lats)
xy = zip(x,y)
poly = Polygon(xy, facecolor='white', alpha=1-0.3*index)
plt.gca().add_patch(poly)

在我的主要绘图例程中,我然后为所选区域中的每个像素调用 draw_cloud_pixel 函数:

# draw plot, each pixel at the time
for scanline in xrange(select_cp_lat.shape[0]):
for pixel in xrange(select_cp_lat.shape[1]):
draw_cloud_pixel(select_cp_lat[scanline, pixel,:],
select_cp_lon[scanline, pixel,:],
cloud_mask[scanline, pixel],
mapplot)

我得到这样的情节: enter image description here

关于python - 在 basemap 中绘制倾斜网格网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37894224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com