8

立体地図上にいくつかの値を表示したい (この場合は南極 ( spstere ))。それらを円筒マップ(cyl)に表示すると、すべて問題ありません。

m = Basemap(projection='cyl',llcrnrlon=-180,llcrnrlat=-90,urcrnrlon=180,urcrnrlat=90,resolution='i') 
CS = m.scatter(lon2,lat2,c=BT2,edgecolors='none',s=sz,cmap='gray')

今、私は南極ステレオグラフィック マップで同じ値が必要ですが、それを機能させることはできません:

m = Basemap(projection='spstere',boundinglat=-10,lon_0=180,resolution='c')
CS = m.scatter(lon2,lat2,c=BT2,edgecolors='none',s=sz,cmap='gray')

私が何をしても、大陸が描かれるだけで、データはありません。

4

3 に答える 3

3

だから私は自分で答えを見つけたと思います。あなたがする必要があるのは、円筒投影からの緯度/経度座標を平射図法に属するx/y座標に変換することです。次のようにベースマップを定義した後、これは非常に簡単です。

m = Basemap(projection='spstere',boundinglat=-10,lon_0=180,resolution='c')

次のように変換するだけです:

x,y = m(lon2,lat2)

最後に、x/y 座標を使用してマップを描画します。例:

CS = m.scatter(x,y,c=BT2,edgecolors='none',s=sz,cmap='gray')

これは私にとってはうまくいきます:)

于 2012-06-15T08:03:25.277 に答える
1

すでにわかっているように、x 座標と y 座標を「マップ」座標に変換する必要があります (適切なドキュメントはhttp://matplotlib.github.com/basemap/users/mapcoords.htmlにあります)。

spstereo = Basemap(projection='spstere',boundinglat=-10,lon_0=180,resolution='c')
x, y = spstereo(lons, lats)
spstereo.scatter(x, y)
于 2012-06-14T20:53:50.997 に答える
0

latlon キーワードを追加するだけです

m = Basemap(projection='spstere',boundinglat=-10,lon_0=180,resolution='c')
CS = m.scatter(lon2,lat2,c=BT2,s=sz,cmap='gray', latlon=True)

ドキュメントから:

latlon キーワードが True に設定されている場合、x、y は経度と緯度 (度単位) として解釈されます。データと経度は、円筒図法および疑似円筒図法の地図投影領域に一致するように自動的にシフトされ、x、y は地図投影座標に変換されます。latlon が False (デフォルト) の場合、x と y は地図投影座標と見なされます。

于 2015-03-17T09:48:25.363 に答える