Wave Analysis


In [54]:
import pandas as pd

def field_value(df, field):
    return df.loc[df['FIELD'] == field]['VALUE'].iloc[0]

src_cols = ['START', 'END', 'FIELD', 'PRES', 'LON', 'LAT', 'VALUE']
df_src = pd.read_csv('three_fingers.csv', names=src_cols)

snd_cols = ['PRES', 'HGT', 'TMP', 'RH', 'UGRD', 'VGRD']
df_snd = pd.DataFrame()

snd_series = []
for col in snd_cols[1:]:
    snd_series.append(df_src.loc[df_src['FIELD'] == col][['PRES','VALUE']].rename(columns={'VALUE': col}))
    
df_snd = reduce(lambda left, right: pd.merge(left, right, on='PRES'), snd_series)

sfc_hgt = field_value(df_sfc,'HGT')
sfc_tmp = field_value(df_sfc,'TMP')
sfc_pres = field_value(df_sfc,'PRES')

df_snd['W_SPD_MS'] = (df_snd.UGRD ** 2 + df_snd.VGRD ** 2) ** (0.5)
df_snd['TMP_C'] = df_snd.TMP - 273.15
df_snd['HGT_FT'] = df_snd.HGT * 3.28084

Ys = []
for i, row in df_snd.iterrows():
    if (i < len(df_snd.index)-1):
        Ys.append((df_snd.TMP_C.iloc[i+1]-df_snd.TMP_C.iloc[i])/(df_snd.HGT.iloc[i]-df_snd.HGT.iloc[i+1]))
df_snd['Y'] = pd.Series(Ys)

df_snd['Y2'] = (((0.00986-df_snd.Y)/df_snd.TMP)*(9.81/df_snd.W_SPD_MS**2)-(1/4)*((9.81/287-df_snd.Y)/df_snd.TMP)**2)*100000

print sfc_hgt

df_snd


786.675
Out[54]:
PRES HGT TMP RH UGRD VGRD W_SPD_MS TMP_C HGT_FT Y Y2
0 100 mb 15809.9000 214.549 1.19062 30.182000 -1.27074 30.208739 -58.601 51869.752316 -0.000212 0.050466
1 125 mb 14410.1000 214.252 1.28558 31.006900 1.21349 31.030637 -58.898 47277.232484 -0.000824 0.050804
2 150 mb 13269.5000 213.312 2.83807 32.120100 3.13909 32.273127 -59.838 43535.106380 -0.001609 0.050642
3 175 mb 12310.7000 211.769 7.47006 32.412600 6.29323 33.017895 -61.381 40389.436988 -0.001497 0.048259
4 200 mb 11485.8000 210.534 17.96110 31.908400 11.06230 33.771593 -62.616 37683.072072 0.000409 0.038611
5 225 mb 10760.2000 210.831 28.47970 32.134400 14.73640 35.352244 -62.319 35302.494568 0.003557 0.023465
6 250 mb 10107.2000 213.154 44.14540 35.633400 19.25880 40.504822 -59.996 33160.106048 0.005378 0.012573
7 275 mb 9508.4400 216.374 47.59440 36.623600 21.67180 42.555317 -56.776 31195.670290 0.007411 0.006132
8 300 mb 8952.6300 220.493 50.48580 33.964400 20.41330 39.626800 -52.657 29372.146609 0.008562 0.003678
9 325 mb 8431.2500 224.957 58.29470 29.964100 17.59510 34.748163 -48.193 27661.582250 0.008680 0.004261
10 350 mb 7938.9800 229.230 66.35620 26.815500 15.10070 30.775025 -43.920 26046.523143 0.008678 0.005342
11 375 mb 7472.1500 233.281 69.52400 25.228700 13.93260 28.820212 -39.869 24514.928606 0.008953 0.004594
12 400 mb 7027.9200 237.258 71.97230 24.231600 13.41120 27.695320 -35.892 23057.481053 0.008079 0.009598
13 425 mb 6604.2500 240.681 74.43200 22.918700 11.88480 25.816957 -32.469 21667.487570 0.007383 0.015149
14 450 mb 6199.1200 243.672 76.38500 20.924200 9.30428 22.899602 -29.478 20338.320861 0.006721 0.024100
15 475 mb 5811.2200 246.279 77.87800 18.298100 6.48427 19.413043 -26.871 19065.683025 0.006285 0.037789
16 500 mb 5440.0000 248.612 79.93160 15.117800 4.68716 15.827740 -24.538 17847.769600 0.006184 0.057893
17 525 mb 5083.1400 250.819 81.28180 12.048300 3.78873 12.629965 -22.331 16676.969038 0.006094 0.092339
18 550 mb 4740.1800 252.909 82.68730 9.228850 3.93691 10.033491 -20.241 15551.772151 0.006335 0.135801
19 575 mb 4409.6600 255.003 84.15290 7.051480 4.62925 8.435243 -18.147 14467.388914 0.006500 0.181663
20 600 mb 4090.4300 257.078 85.25940 5.565680 5.58089 7.881823 -16.072 13420.046361 0.006816 0.186968
21 625 mb 3781.9000 259.181 87.33150 4.801930 6.61523 8.174338 -13.969 12407.808796 0.006660 0.181252
22 650 mb 3482.9600 261.172 88.71450 4.332300 7.60065 8.748640 -11.978 11427.034486 0.006267 0.176336
23 675 mb 3193.1800 262.988 90.80550 3.936980 8.37086 9.250465 -10.162 10476.312671 0.005876 0.173676
24 700 mb 2912.0300 264.640 94.65390 3.382900 8.81231 9.439323 -8.510 9553.904505 0.005024 0.201188
25 725 mb 2639.1500 266.011 95.65570 2.421650 8.97905 9.299878 -7.139 8658.628886 0.004629 0.223047
26 750 mb 2374.3000 267.237 86.75070 1.108780 8.72829 8.798434 -5.913 7789.698412 0.004379 0.259928
27 775 mb 2117.1400 268.363 58.84080 -0.547031 8.46923 8.486878 -4.787 6945.997598 0.003727 0.311269
28 800 mb 1867.3300 269.294 37.01690 -2.504280 8.38948 8.755272 -3.856 6126.410957 0.003155 0.318623
29 825 mb 1624.5700 270.060 31.12950 -4.928780 8.67495 9.977356 -3.090 5329.954239 0.002318 0.275210
30 850 mb 1388.5900 270.607 27.42260 -7.950080 8.78184 11.845864 -2.543 4555.741616 0.000615 0.238851
31 875 mb 1159.1400 270.748 27.04260 -10.498000 8.56227 13.546973 -2.402 3802.952878 0.002735 0.140665
32 900 mb 935.7650 271.359 31.08250 -10.195200 7.53527 12.677634 -1.791 3070.095243 0.003845 0.135305
33 925 mb 717.7960 272.197 33.04450 -10.056500 6.39574 11.917998 -0.953 2354.973829 0.003930 0.150471
34 950 mb 505.0600 273.033 35.73900 -9.285660 5.04715 10.568690 -0.117 1657.021050 0.006398 0.111374
35 975 mb 297.0150 274.364 37.94060 -7.219430 3.59028 8.062895 1.214 974.458693 0.006329 0.194210
36 1000 mb 83.3916 275.716 38.36740 -5.769640 2.92422 6.468370 2.566 273.594497 NaN NaN

In [ ]: