繁体   English   中英

使用pcolor在python中绘制3个数组

[英]Using pcolor to plot 3 arrays in python

我读取了卫星图像,并从图像中获取了纬度和经度的数据,并放入了一个数组中。 lat的尺寸为(135,90),lon也为(135,90)。 数据的尺寸最初为(135,90,4,9,8),其中4代表图像的波段。 经过处理(使用for循环将所有波段置于单个图像中)后,数据的尺寸为biw(1215,720),即(135 x9,90 x 8)。 我有一段代码,它是:

x = lat   # dimension (135,90)
y = lon   # dimension (135,90)
z = data  # dimension ( 1215, 720) 

plt.figure()
plt.pcolor(x,y,z)
plt.colorbar()
plt.savefig("proj1.png")

但是随后它在下面产生了一个非常不好的图像:

在此处输入图片说明

我的朋友告诉我,我应该在纬度和经度上加分,以便使其与数据相同。 但是不知道该怎么做。 他说的方法正确吗?

再次引起我的注意... 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)以及C(必须为135x90)即可使用pcolor。

(135,90,4,9,8)中的9,8是什么意思? 每个水平网格单元有9 * 8个不同的属性吗? 例如垂直层,不同种类的化学物质或物理性质? 如果是这样,则必须一次选择一个并作图(即,仅将135x90的C与X和Y一起输入)。 另外,您提到4是“带”的。 如果该id色带如RGBK,并且您想显示该颜色,则pcolor可能不是很好,您必须寻找其他功能或可以理解这4个数字的东西。 pcolor只需读取数字范围,然后在最小值和最大值之间应用比例,然后将颜色比例从蓝色应用到红色(或者您可以选择任意选择)

编辑

我从http://disc.sci.gsfc.nasa.gov/AIRS/data-holdings/by-access-method中获取了适用于Level-1B,VISIBLE的数据集。

该数据集由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微米-0.44微米
  • 频道2:0.58微米-0.68微米
  • 通道3:0.71微米-0.92微米
  • 通道4:0.49微米-0.94微米

您可能会将它们用作pylab的imshow()函数输入的RGBK值。 您可能不喜欢空间平均后的输出分辨率。 在这种情况下,您必须以某种方式获取每个位置内(9,8)个像素的坐标。 但是,应该有一种标准的方法,即数据是一种广泛使用的公共数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM