将numpy导入为np
我有一个带有以下坐标的矩形:
ulx,uly = (110, 60) ##uppper left lon, upper left lat
urx,ury = (120, 60) ##uppper right lon, upper right lat
lrx, lry = (120, 50) ##lower right lon, lower right lat
llx, lly = (110, 50) ##lower left lon, lower left lat
我想将该单个矩形划分为100个常规网格,并且 想分别为每个网格计算(ulx,uly),(urx,ury),(lrx,lry)和(llx,lly):
lats = np.linspace(60, 50, 10)
lons = np.linspace(110, 120, 10)
lats = np.repeat(lats,10).reshape(10,10)
lons = np.tile(lons,10).reshape(10,10)
我无法想象该怎么做?
有人熟悉这类问题吗?
答案 0 :(得分:2)
为此,您可以使用np.meshgrid
:
import numpy as np
lats = np.linspace(50, 60, 11)
lons = np.linspace(110, 120, 11)
xx, yy = np.meshgrid(lats, lons)
此时xx
和yy
是2x2矩阵,其中包含网格图块的角坐标。
如果您只想要一个坐标列表,可以使用重塑:
ulx = np.reshape(xx[1:,:-1],(-1,1))
llx = np.reshape(xx[:-1,:-1],(-1,1))
urx = np.reshape(xx[1:,1:],(-1,1))
lrx = np.reshape(xx[:-1,1:],(-1,1))
uly = np.reshape(yy[1:,:-1],(-1,1))
lly = np.reshape(yy[:-1,:-1],(-1,1))
ury = np.reshape(yy[1:,1:],(-1,1))
lry = np.reshape(yy[:-1,1:],(-1,1))
但我建议您只使用xx
和yy
。