2017-06-20 28 views
0

我正在學習如何使用Python和Basemap,並且想要創建一個循環來生成每個projection類型的映射。循環遍歷類類型的可能值

投影類型是:cea,mbtfpq,aeqd,sinu,poly等等。所以我只想要一個循環,它不能確定如何返回可能投影的實際類型。

到目前爲止,我已經嘗試過類似的事情

proj = Basemap() 
print(dir(proj)) 

proj = Basemap().projection 
print(dir(proj)) 

但無論返回類型的投影也可能是。我試圖

for value in Basemap().projection: 
    print (value) 

,但它只是返回

c 
y 
l 

,就是這樣。

最近我已經得到是

for value in Basemap().__dict__.items(): 
    print (value) 

但返回很多信息,貌似默認值,但其中一人是cyl,這是默認的投影。我正在接近,但看不到如何遍歷每個投影。

(我的語義是不正確的,所以請糾正我,如果我錯了!)

編輯:我想了解如何做到這一點沒有「欺騙」,也就是因爲我知道類型的投影可能的,將它們加載到一個數組中並循環遍歷數組。我想學習如何做到這一點,如果我沒有知道可能的值。

回答

1

有沒有必要作弊;看看the source,你有一個supported_projections列表,其中包含所有支持的投影。你可以使用它。

+0

哦,男人,感謝您的發現!我四處尋找。爲了記錄,我所需要做的就是添加'from mpl_toolkits.basemap import _projnames',然後在_projnames.items():// print(key)'中鍵入值'。我相信還有另外一種方法,不需要添加可能多餘的'... import _projnames',但是像Basemap()._ projnames.items()中的鍵那樣做是錯誤的。 – BruceWayne

+0

另外,如果你不介意,我在找什麼? 「類」類型中的「關鍵」?一個類中的「鍵」的「值」...只是對前進的語義感興趣。 – BruceWayne

+1

@BruceWayne這真的取決於它是如何實現的。一般來說,像這樣的信息是一個類屬性或一個模塊屬性。 (我希望我明白到底是什麼讓你感到困惑) –