2017-06-20 4 views
0

Ich lerne, wie man Python und Basemap verwendet und möchte eine Schleife erstellen, die eine Karte von jedem projection Typ erzeugt.Schleife durch mögliche Werte eine Klassenart

Die Projektionstypen sind: cea, mbtfpq, aeqd, sinu, poly usw. Also ich will nur eine Schleife, die Basemap(width=x, height=y, projection=[projection type], ...) tut, aber nicht herausfinden kann, wie die tatsächlichen Arten von möglichen Projektionen zurückgeben.

Bisher habe ich versucht, die Dinge wie

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

und

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

aber weder kehrt die Arten von Projektionen könnte es sein. Ich habe versucht,

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

Aber es sind gerade

c 
y 
l 

und das ist es.

Closest Ich habe bekommen ist

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

aber das gibt einen viel von Informationen, scheinbar die Standardwerte, aber einer von ihnen ist cyl, die die Standard-Projektion ist. Ich komme näher, kann aber nicht sehen, wie ich durch jede Projektion iteriere.

(Meine Semantik sind falsch, so bitte korrigieren Sie mich, wenn ich falsch!)

Edit: Ich möchte lernen, wie dies zu tun, ohne „Betrug“, also da ich die Arten von Projektionen wissen möglich, laden Sie diese in ein Array und durchlaufen das Array. Ich versuche zu lernen, wie es geht, wenn ich nicht kennen die möglichen Werte.

Antwort

1

Es ist nicht nötig zu schummeln; Betrachten Sie the source, haben Sie eine supported_projections Liste, die alle unterstützten Projektionen enthält. Du kannst das einfach benutzen.

+0

Oh Mann, danke für das Finden! Ich sah mich für immer um. Für die Aufzeichnung, alles, was ich tun musste, war '' mpl_toolkits.basemap import _projnames' hinzuzufügen, dann tun Sie einfach 'für Schlüssel, Wert in _projnames.items(): // print (key)'. Ich bin mir sicher, dass es einen anderen Weg gibt, ohne die möglicherweise redundante '... import _projnames' hinzuzufügen, aber wie 'for key in Basemap() ._ projjames.items()' zu funktionieren, ist fehlgeschlagen. – BruceWayne

+0

Auch, wenn es Ihnen nichts ausmacht, wonach habe ich gesucht? Ein "Schlüssel" in einem "Klasse" -Typ? Die "Werte" eines "Schlüssels" innerhalb einer Klasse ... sind nur neugierig auf die Semantik für die Zukunft. – BruceWayne

+1

@BruceWayne Das hängt wirklich davon ab, wie es implementiert ist. Im Allgemeinen sind Informationen wie diese entweder ein Klassenattribut oder ein Modulattribut. (Ich hoffe, ich verstehe was genau das ist, was dich verwirrt) –

Verwandte Themen