From 0025bcc99106f58e358516641d3d183e0c4942b2 Mon Sep 17 00:00:00 2001 From: kgao <kenny.gao@ssec.wisc.edu> Date: Fri, 12 Aug 2016 14:44:45 +0000 Subject: [PATCH] Added gust variable --- aosstower/level_b1/nc.py | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/aosstower/level_b1/nc.py b/aosstower/level_b1/nc.py index 148f953..501e5cb 100644 --- a/aosstower/level_b1/nc.py +++ b/aosstower/level_b1/nc.py @@ -118,6 +118,26 @@ def createVariables(ncFile, firstStamp, chunksizes, zlib): return ncFile +def getGust(rollingAvg, speeds): + averages = rollingAvg.tolist() + maxSpeed = speeds['wind_speed'].tolist() + + gust = [] + + for idx, average in enumerate(averages): + if not average: + gust.append(np.nan) + continue + + elif average >= 4.63 and maxSpeed[idx] > average + 2.573: + gust.append(maxSpeed[idx]) + + else: + gust.append(np.nan) + continue + + return gust + def minuteAverages(frame): frame['minute'] = [(ts + delta(minutes=1)).replace(second=0) for ts in frame.index] newFrame = frame.groupby('minute').mean() @@ -132,7 +152,21 @@ def minuteAverages(frame): windSeries = windSeries.rolling(25, win_type='boxcar').mean() newFrame['wind_speed'] = windSeries + + rollingAvg = newFrame['wind_speed'] + maxSpeed = pd.DataFrame() + maxSpeed['minute'] = frame['minute'] + maxSpeed['speed'] = frame['wind_speed'] + + maxSpeed = frame.groupby('minute').max() + + gust = getGust(rollingAvg, maxSpeed) + + #gust = pd.DataFrame({'gust': gust, 'minute': list(newFrame.index)}, dtype=np.float64 + + newFrame['gust'] = gust + if 'wind_direction' in columns: del newFrame['wind_direction'] @@ -213,9 +247,10 @@ def writeVars(ncFile, frame): #writes data into file for varName in frame: dataList = frame[varName].tolist() + dataArray = np.asarray(dataList) fileVar[varName][:] = dataArray - + return ncFile #The purpose of this method is to take a begin date, and end date -- GitLab