簡體   English   中英

更改底圖投影導致沙灘球/數據消失(obpy)

[英]Changing Basemap projection causes beach balls / data to disappear (obspy)

有一個非常類似的問題我的問題在這里,但建議使用此頁面上的解決方案並不在我的情況下工作。 對於投影“cyl”,繪制了沙灘球。 將此投影更改為 'robin' (robinson) 創建沒有數據(沙灘球)的投影。 其他類似問題的建議是使用:

x,y = map(lat, lon)

為了將坐標轉換為適用的投影,但這也包含在我的代碼中(見下文):

m = Basemap(projection='cyl', lon_0=0, resolution='c')
m.drawmapboundary(fill_color='cornflowerblue')
m.drawcountries()
m.fillcontinents(color='white',lake_color='cornflowerblue',
zorder=0)
m.drawcoastlines()
m.drawparallels(np.arange(-90.,120.,30.))
m.drawmeridians(np.arange(0.,420.,60.))

lats = [38.3215, -55.285, -56.241, -60.274]
lons = [142.36929, -31.877, -26.935, -46.401]

x, y = m(lons, lats)
focmecs = [[193, 9, 78], [301, 62, 84], [101, 69, -56], [190, 89, -140]]
eq_mw = [9.0, 7.4, 7.2, 7.7]

ax = plt.gca()
for i in range(len(focmecs)):
# Loop to set the tensor (beach ball) colors
eq = eq_mw[i]
if eq < 6:
    beachball_color = 'y'
elif 6 <= eq < 8:
    beachball_color = 'orange'
elif 8 <= eq:
    beachball_color = 'r'

b = beach(focmecs[i], facecolor=beachball_color, xy=(x[i], y[i]), width=10, linewidth=1, alpha=0.85)
b.set_zorder(10)
ax.add_collection(b)

問題似乎在於投影和軸或數據坐標轉換。 當寬度從 10 更改為 1000000 時,這解決了問題:

b = beach(focmecs[i], facecolor=beachball_color, xy=(x[i], y[i]), width=1000000, linewidth=1, alpha=0.85)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM