又是我... matplotlib 的文档在这里说http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.pcolor
X 和 Y,如果给定,指定彩色四边形的 (x, y) 坐标; C[i,j] 的四边形在以下位置有角:
(X[i, j], Y[i, j]),
(X[i, j+1], Y[i, j+1]),
(X[i+1, j], Y[i+1, j]),
(X[i+1, j+1], Y[i+1, j+1]).
理想情况下,X 和 Y 的尺寸应该比 C 大一;如果维度相同,则 C 的最后一行和最后一列将被忽略。
然而 C 的维度(或形状)与 X 和 Y 完全不同。matplotlib 理想地希望您准备(1)X,Y 是网格点(或角点)的 x 和 y 坐标,以及(2) C 是被 4 个相邻网格点包围的瓦片的值。所以你的 x,y 形状是 135 和 90。那么颜色应该是 134 x 89,或者 135 和 90。
我的理解是这个 C 的数据来自 modis 像素,并且您已经拥有它们 135x90。所以你应该指定那些 12150 瓦片的角点......有意义吗?如果您知道中心点的纬度/经度,则将它们向左/下方移动一半距离,然后在右侧/上方添加一行和一列以创建网格点。如果您使用投影坐标而不是纬度/经度,那也是一样的。或者您可以忘记这些半距离交易,只需按原样插入您已经获得的 X 和 Y (135x90),以及必须为 135x90 的 C,才能使用 pcolor。
(135,90,4,9,8)中的9,8是什么意思?每个水平网格单元格是否有 9*8 不同的属性?例如垂直层,不同种类的化学物质,还是物理性质?如果是这样,您必须一次选择一个并制作一个情节(即,仅提供 135x90 的 C 以及您的 X 和 Y)。另外,您提到 4 代表“乐队”。如果这个 id 颜色带像 RGBK 并且您想显示该颜色,那么可能 pcolor 不好,您必须寻找其他一些功能或理解这 4 个数字的东西。 pcolor 只需读取数字范围,然后在 min 和 max 之间应用比例,然后将颜色比例从蓝色应用到红色(或者你选择的任何值)
编辑
我从http://disc.sci.gsfc.nasa.gov/AIRS/data-holdings/by-access-method 获取了一个可见的Level-1B 数据集以及文档。
此数据集由 AIRS 1A 级数字数字 (DN) 生成,包括频谱 0.4 至 1.0 um 区域中的 4 个通道。一天的 AIRS 数据分为 240 个场景,每个场景持续 6 分钟。对于 AIRS 可见/近红外测量,单个场景包含 135 条扫描线,其中一条扫描线包含 720 个交叉轨迹像素和 9 个沿轨迹像素;每个场景总共有 720 x 9 x 135 = 874,800 个可见/近红外像素。
最简单的方法是为每个位置获取 8x9 值的平均值,然后一次选择四个轨道之一。或者,由于这些波段对应不同的颜色,如下面的波长所示,
- 通道 1:0.41 um - 0.44 um
- 通道 2:0.58 um - 0.68 um
- 通道 3:0.71 um - 0.92 um
- 通道 4:0.49 um - 0.94 um
您可能会将这些用作 pylab 的 imshow() 函数输入的 RGBK 值。您可能不喜欢空间平均后输出的粗分辨率。在这种情况下,您必须以某种方式获取每个位置内每个 (9,8) 像素的坐标。但是应该有一个标准的方式,数据是广泛使用的公共数据。