nach einer Stunde im Forum und lesen eines Turorials bin ich genauso schlau wie vorher. Folgendes Problem habe ich:
Ich lese eine txt-Datei mit numpy.loadtxt ein. Sie besteht aus 168 Zeilen und 11 Spalten. Zusätzliche habe ich einige Parameter definiert. Nun möchte ich gern einige Berechnungen durchführen.
Code: Alles auswählen
from numpy import *
from pylab import *
from matplotlib import *
from pyproj import Proj
from matplotlib.font_manager import FontProperties
from pylab import *
import glob
import scipy.stats
from itertools import *
file = 'D18_wind_sec.txt'
data = loadtxt(file,skiprows=1)
W=data[:,0]
sec=data[:,1]
#Startkoordinaten
lon_1 = -11.156
lat_1 = -70.684
#Dimensionen
L = 18000
H = 206
#Transofrmation Geo in UTM
p = Proj(proj='utm',zone=30,ellps='WGS84')
x_1,y_1 = p(lon_1, lat_1)
#Phi
phi = math.radians(lat_1)
#Given parameter:
p_a = 1.29
p_w = 1027.5
p_ib = 850.0
C_aw = 0.0015
C_w = 0.85
C_a = 0.4
C_w2 = 0.1
omega = 0.0000727
D = (H*p_ib)/p_w
S_w = L*D
S_a = L*(H-D)
m = p_ib*(L**2*H)
f = 2*omega*sin(phi)
R = (p_w*C_w*S_w)/2
lamba = (m*f)/(2*R*(1+2*(C_w2)*(L/H)))
##Hier Schleife starten
for i in data:
tau_aw = p_a*C_aw*W**2
tau = ((p_a*C_a*S_a)/2)*W**2
u_e = (-tau_aw)/(p_w*f*D)
T_star = tau+m*f*u_e
U_star = sqrt(2*(lamba**2)*(-1+(1+sqrt((T_star**2)/(4*(lamba**2)*(R**2))))))
u = (u_e-2*lamba*R*(U_star**2))/T_star
v = (R*(U_star**3))/T_star
x_2 = x_1+(u*sec) #neue UTM Koordinaten
y_2 = y_1+(v*sec)
x_1 = x_2 #Umbenennen der UTM Koordinaten
y_1 = y_2
lon_2, lat_2 =p(x_1, y_1, inverse=True) #Umrechnung der neuen Koordinaten UTM in Geo
print lon_2, lat_2
Oberhalb der for-Schleife sind Berechnungen, die ohne wechselnde Werte durchgeführt werden, die Werte bleiben also konstant. Innerhalb der for-Schleife sollen nun Berechnungen mit wechselnden Werten ( W und sec) durchgeführt werden. Dies funktioniert auch, jedoch nicht so, wie ich es mir vorgestellt habe. Ich möchte gern innerhalb der for-Schleife die neuen UTM Koordinaten übergeben (x_1 = x_2 und y_1 = y_2) damit die Änderungen aufsummiert werden und ich final nur eine einzige Koordinate erhalte, die ich dann wieder in geographische umwandle. Irgendwie scheint die Übergabe der Koordinaten nicht zu fuinktionieren, denn ich erhalte als Ausgabe immer wieder einen Array mit allen berechneten Koordinaten - jedoch immer von der obigen Startkoordinate (lon_1, lat_1) ausgehend. Irgendwo habe ich eine Denkfehler bzw. ich bin mir nicht sicher, ob die for-Schleife der richtige Weg ist.
Ich hoffe das war nicht zu verwirrend und ihr könnte mir bei der Lösung helfen.
Grüße