From 04bd908dfdf26da0df17d07b192a0b3545cf3d32 Mon Sep 17 00:00:00 2001
From: kgao <kenny.gao@ssec.wisc.edu>
Date: Fri, 29 Jul 2016 21:19:45 +0000
Subject: [PATCH] Accidentally commited draft.py

---
 aosstower/level_a0/draft.py | 247 ------------------------------------
 1 file changed, 247 deletions(-)
 delete mode 100644 aosstower/level_a0/draft.py

diff --git a/aosstower/level_a0/draft.py b/aosstower/level_a0/draft.py
deleted file mode 100644
index d1be9aa..0000000
--- a/aosstower/level_a0/draft.py
+++ /dev/null
@@ -1,247 +0,0 @@
-import os
-import sys
-import logging
-import pandas as pd
-from datetime import datetime as dt
-from aosstower.l00 import parser
-from netCDF4 import Dataset
-import numpy as np 
-import platform
-from aosstower import station
-
-LOG = logging.getLogger(__name__)
-
-# The purpose of this function is to write the dimensions
-# for the nc file
-# no parameters
-# no returns
-
-def writeDimensions(ncFile, stamps):
-    #ncFile.createDimension('time', len(stamps))
-    ncFile.createDimension('time', None)
-    ncFile.createDimension('strlen', None)
-
-    return ncFile
-
-def createVariables(ncFile, firstStamp):
-    #base_time long name
-    btln = 'base time as unix timestamp'
-
-    #base time units
-    btu = 'seconds since 1970-01-01 00:00:00'
-
-    #base time string
-    bts = firstStamp.strftime('%Y-%m-%d 00:00:00Z')
-
-    #time long name
-    tln = 'time offset from midnight UTC'
-
-    #time units
-    tu = 'seconds since ' + firstStamp.strftime('%Y-%m-%d 00:00:00Z')
-
-    coordinates = {
-                      #fields: type, dimension, fille, positive, valid_min, std_name, longname, units, valid_max, cf_role, axis
-                      'lon': [np.float32, None, float(-999), '-180L', 'longitude', None, 'degrees_east', '180L', None],
-                      'lat': [np.float32, None, float(-999), '-90L', 'latitude', None, 'degrees_north', '90L', None],
-                      'alt': [np.float32, None, float(-999), None, 'height', 'vertical distance', 'm', None, None],
-                      'base_time': [np.float32, None, float(-999), None, 'time', btln, btu, None, None],
-                      'time': [np.float32, 'time', float(-999), None, 'time', tln, tu, None, None],
-                      'station_name': ['c', 'strlen', '-', None, None, 'station name', None, None, 'timeseries_id']   
-                  }
-
-    for key in coordinates:
-        attr = coordinates[key]
-
-        #create variable
-        if(attr[1]):
-            variable = ncFile.createVariable(key, attr[0], dimensions=(attr[1]), fill_value=attr[2], zlib=True, chunksizes=[432000])
-        else:
-            variable = ncFile.createVariable(key, attr[0], fill_value=attr[1], zlib=True, chunksizes=[432000])
-
-        #create var attributes
-        if key == 'alt':
-            variable.positive = 'up'
-            variable.axis = 'Z'
-
-        if(attr[3]):
-            variable.valid_min = attr[3]
-            variable.valid_max = attr[7]
-
-        if(attr[4]):
-            variable.standard_name = attr[4]
-
-        if(attr[5]):
-            variable.long_name = attr[5]
-
-        if(attr[6]):
-            variable.units = attr[6]
-
-        if(attr[8]):
-             variable.cf_role = attr[8]
-
-        if key == 'base_time':
-            variable.string = bts
-
-    for entry in parser.database:
-        if(entry == 'stamp'):
-            continue
-
-        varTup = parser.database[entry]
-        
-        variable = ncFile.createVariable(entry, np.float32,
-        dimensions=('time'), fill_value=float(-999), zlib=True, chunksizes=[432000])
-        variable.standard_name = varTup[1]
-        variable.description = varTup[3]
-        variable.units = varTup[4]
-
-    #create global attributes
-    ncFile.source = 'surface observation'
-    ncFile.conventions = 'CF-1.6'
-    ncFile.institution = 'UW SSEC'
-    ncFile.featureType = 'timeSeries'
-
-    #generate history
-    ncFile.history = ' '.join(platform.uname()) + " " + os.path.basename(__file__)
-    
-    return ncFile
-
-def getData(inputFiles):
-    dictData = {}
-
-    for filename in inputFiles:
-        for frame in parser.read_frames(filename):
-            if 'stamp' not in frame:
-                continue
-
-            stamp = frame['stamp']
-            del frame['stamp']
-
-            dictData[stamp] = frame
-
-    return pd.DataFrame(dictData).transpose()
-
-def writeVars(ncFile, frame):
-    stamps = list(frame.index)
-
-    baseDTObj = dt.strptime(str(stamps[0]).split(' ')[0], '%Y-%m-%d')
-
-    #find out how much time elapsed
-    #since the origin to the start of the day
-    #in seconds
-    baseTimeValue = baseDTObj - dt(1970,1,1)
-    baseTimeValue = baseTimeValue.total_seconds()
-
-    #create time numpy
-    timeNumpy = np.empty(len(stamps), dtype='float32')
-
-    counter = 0
-
-    #write stamps in, yo
-
-    for stamp in stamps:
-        stampObj = dt.strptime(str(stamp), '%Y-%m-%d %H:%M:%S')
-        timeValue = (stampObj - baseDTObj).total_seconds()
-
-        timeNumpy[counter] = timeValue
-        counter += 1
-
-    fileVar = ncFile.variables
-
-    fileVar['base_time'].assignValue(baseTimeValue)
-    fileVar['time'][:] = timeNumpy
-
-    #write coordinate var values to file
-    #alt might not be right, need to verify
-    fileVar['lon'].assignValue(station.LONGITUDE)
-    fileVar['lat'].assignValue(station.LATITUDE)
-    fileVar['alt'].assignValue(328)
-
-    #might change
-    stationName = ("AOSS Tower")
-    
-    #transfer station name into array of chars
-    statChars = list(stationName)
-    statNumpy = np.asarray(statChars)
-
-    #write station name to file
-    fileVar['station_name'][0:len(statNumpy)]
-
-    #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
-# input filenames and output filename and create a netCDF file 
-# based upon that
-# @param start time - a start datetime object
-# @param end time - an end datetime object
-# @param input filenames - list of filenames
-# @param output filename - filename of the netcdf file
-
-def createGiantNetCDF(start, end, inputFiles, outputName):
-    frame = getData(inputFiles)
-
-    frame = frame[start.strftime('%Y-%m-%d %H:%M:%S'): end.strftime('%Y-%m-%d %H:%M:%S')]
-
-    firstStamp = dt.strptime(str(list(frame.index)[0]), '%Y-%m-%d %H:%M:%S')
-
-    if not outputName: 
-        outputName = firstStamp.strftime('aoss_tower.%Y-%m-%d.nc')
-
-    ncFile = Dataset(outputName, 'w')
-
-    ncFile = writeDimensions(ncFile, list(frame.index))
-
-    ncFile = createVariables(ncFile, firstStamp)
-
-    ncFile = writeVars(ncFile, frame)
-
-    ncFile.close()
-    
-#The purpose of this method is to take a string in the format
-# YYYY-mm-ddTHH:MM:SS and convert that to a datetime object
-# used in coordination with argparse -s and -e params
-# @param datetime string
-# @return datetime object
-
-def _dt_convert(datetime_str):
-    #parse datetime string, return datetime object
-    return dt.strptime(datetime_str, '%Y-%m-%dT%H:%M:%S')
- 
-def main():
-    import argparse
-
-    #argparse description
-    parser = argparse.ArgumentParser(description="Convert level_00 aoss tower data to level_a0")
-
-    #argparse verbosity info
-    parser.add_argument('-v', '--verbose', action="count", default=int(os.environ.get("VERBOSITY", 2)),
-                         dest='verbosity',
-                         help='each occurrence increases verbosity 1 level through ERROR-WARNING-INFO-DEBUG (default INFO)')
-
-    #argparse start and end times
-    parser.add_argument('-s', '--start-time', type=_dt_convert, help="Start time of massive netcdf file")
-    parser.add_argument('-e', '--end-time', type=_dt_convert, help='End time of massive netcdf file')
-
-    parser.add_argument("input_files", nargs="+",
-                         help="aoss_tower level_00 paths")
-
-    parser.add_argument('-o', '--output', help="filename pattern or filename. " +
-    "Should be along the lines of <filepath>/aoss_tower.YYYY-MM-DD.nc")
-    args = parser.parse_args()
-
-    levels = [logging.ERROR, logging.WARN, logging.INFO, logging.DEBUG]
-    level=levels[min(3, args.verbosity)]
-    logging.basicConfig(level=level)
-
-    if(args.start_time and args.end_time):
-        createGiantNetCDF(args.start_time, args.end_time, args.input_files, args.output)
-
-    else:
-        createNetCDF(args.input_files, args.ouput)
-if __name__ == "__main__":
-    main()
-- 
GitLab