使用matplotlib Basemap定义部分地球静止投影

时间:2014-09-02 10:51:10

标签: python matplotlib geos matplotlib-basemap

我在使用Basemap创建自定义地球静止投影时遇到问题。我需要的不是全球投影,而是完整光盘的上三分之一(全宽,从上到下三分之一)。我在这里找到了一个例子:

http://matplotlib.org/basemap/users/geos.html

解释如何使用llcrnrx,llcrnry,urcrnrx和urcrnry关键字对光盘的右上象限进行投影。按照这个例子,我想我会得到这样的结果:

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

lon_0 = 9.5
fig = plt.figure()
m1 = Basemap(projection='geos',lon_0=lon_0,resolution=None)
m = Basemap(projection='geos',lon_0=lon_0,resolution='l',
            # lower left
            llcrnrx=0., llcrnry=0.,
            # calculate the upper right coordinates, full width
            # two 3rds of the height
            urcrnrx=m1.urcrnrx, urcrnry=m1.urcrnry-m1.urcrnry/3.)

m.drawcoastlines()
plt.show()

这给了我一个奇怪的情节。从示例中我可以看到,对于新投影,左下角始终为(0,0),然后您只需计算宽度和高度坐标(右上角)。这显然不是这样的。刚刚进行了实验,我现在有了这个:

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

lon_0 = 9.5
fig = plt.figure()
m1 = Basemap(projection='geos',lon_0=lon_0,resolution=None)
m = Basemap(projection='geos',lon_0=lon_0,resolution='l',
            llcrnrx=-m1.urcrnrx/2., llcrnry=m1.urcrnry/4.,
            urcrnrx=m1.urcrnrx/2., urcrnry=m1.urcrnry/2.)

m.drawcoastlines()
plt.show()

这让我粗略估计了我之后的情况,但我不知道为什么这会起作用以及角点真正代表什么。

我希望你们得到漂移...

0 个答案:

没有答案