python - 使用 pcolormesh 绘制轨道数据

标签 python raw-data satellite-image matplotlib-basemap

我正在尝试映射具有相关纬度和经度的数据集。我正在使用的数据的详细信息如下:

Variable   Type       Data/Info
-------------------------------
lat    ndarray    1826x960, type `float64`
lon    ndarray    1826x960, type `float64`
data   ndarray    1826x960, type `float64`

然后我创建了一个 basemap :

m = Basemap(projection='cyl', llcrnrlon=-180, urcrnrlon=180, llcrnrlat=-40, urcrnrlat=40, resolution='c')

现在,在创建的 basemap 上,我将使用 pcolormesh 绘制上述数据集:

m.drawcoastlines()
m.drawcountries
x,y = m(lon,lat)
m.pcolormesh(x,y,data)
m.colorbar()
plt.show()

这给出了下图: Temp Brightness plot

但是如果我在覆盖整个经度范围(-180 到 180)的数据集(大小为 2691x960,同样适用于经度和纬度)上执行类似的绘图,我会得到一个“奇怪的条”: strange bar

我很确定奇怪的条是由于数据集的重叠而出现的。同样的情节已在 matlab 中执行,并且效果很好。

请告诉我问题是什么,可以做什么来删除条形图,在 python 中绘制此类数据的其他方法是什么。

最佳答案

我认为您遇到了我之前遇到的问题。这里的问题是,当 basemap 尝试创建多边形时,它使用的插值方法似乎无法正确处理本初子午线。实际上穿过本初子午线的像素被插值到一个环绕地球延伸的多边形中。

我使用的解决方案是将文件分成两个屏蔽数组(或者只是在不同时间以两种不同方式屏蔽原始数组),一个屏蔽东半球,一个屏蔽西半球,然后映射它们都指向同一个轴对象。

编辑:另一种解决方案可能是让您的经度范围从 -179.99 变为 179.99 或类似值。

关于python - 使用 pcolormesh 绘制轨道数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12317155/

相关文章:

python - docker-py getarchive 目标文件夹

MongoDB概念直接访问文件或访问导入数据(访问RAW数据)

gis - 您知道 GIS 的任何免费卫星图像吗?

python - 比较 `exp(-mod(x))` 的解析傅里叶变换与数值傅里叶变换

python - 如何让一个函数对调用它的对象做一些事情?

jquery - 使用 Flask 和 MySQL 实现 CSS 自动完成

python - 如何加快 Google Earth Engine 中的导出速度?

python - Pandas - 合并多个时间列并填充值

php - 使用 cURL 发送原始二进制文件和数据

python-xarray:如何将多个波段和日期的单个波段栅格数据转换为 xarray-Dataset 或 DataArray?