1+ import csv
2+ import xml .etree .cElementTree as ET
3+ import datetime
4+
5+ class ExportData ():
6+
7+ def __init__ (self , series_service ):
8+ self ._series_service = series_service
9+ self .dt_format_str = "%m/%d/%Y %I:%M:%S %p"
10+
11+ def export_series_data (self , series_id , filename , utc = False , site = False , var = False , offset = False , qual = False ,
12+ src = False , qcl = False ):
13+ #series = self._series_service.get_series_by_id(series_id)
14+ series = self ._series_service .get_series (series_id )
15+
16+ if series is None :
17+ return False
18+
19+ writer = csv .writer (open (filename , 'wb' ))
20+ plainWriter = open (filename , 'w' )
21+ print "filename: "
22+ print filename
23+ self .write_data_header (plainWriter , series , utc , site , var , offset , qual , src , qcl )
24+ # for dv in series.data_values:
25+ # self.write_data_row(writer, series, dv, utc, site, var, offset, qual, src, qcl)
26+
27+ def export_data (self , series_ids , filename ):
28+ if series_ids is None :
29+ return
30+
31+ try :
32+ with open (filename ):
33+ file_exists = True
34+ except IOError :
35+ file_exists = False
36+
37+ if file_exists :
38+ pass
39+
40+ def write_data_header (self , plainWriter , series , utc , site , var , offset , qual , src , qcl ):
41+ self .write_warning_header (plainWriter )
42+ self .write_site_information (plainWriter , series , site )
43+ self .write_variable_and_method_information (plainWriter , series )
44+
45+
46+ def write_site_information (self , plainWriter , series , site ):
47+ plainWriter .write ('# Site Information\n ' )
48+ plainWriter .write ('# ----------------------------------\n ' )
49+ plainWriter .write ('# Network: TBD\n ' )
50+ plainWriter .write ('# SiteCode: ' + str (series .FeatureActionObj .SamplingFeatureObj .SamplingFeatureCode )+ '\n ' )
51+ plainWriter .write ('# SiteName: ' + str (series .FeatureActionObj .SamplingFeatureObj .SamplingFeatureName ) + '\n ' )
52+ plainWriter .write ('# Latitude: ' + str (series .FeatureActionObj .SamplingFeatureObj .Latitude ) + '\n ' )
53+ plainWriter .write ('# Longitude: ' + str (series .FeatureActionObj .SamplingFeatureObj .Longitude ) + '\n ' )
54+ plainWriter .write ('# LatLonDatum: ' + 'TBD' + '\n ' ) #FIX
55+ plainWriter .write ('# Elevation_m: ' + str (series .FeatureActionObj .SamplingFeatureObj .Elevation_m ) + '\n ' )
56+ plainWriter .write ('# ElevationDatum: ' + str (series .FeatureActionObj .SamplingFeatureObj .ElevationDatumCV ) + '\n ' )
57+ plainWriter .write ('# State: ' + 'TBD' + '\n ' ) # FIX
58+ plainWriter .write ('# County: ' + 'TBD' + '\n ' ) # FIX
59+ plainWriter .write ('# Comments: ' + 'TBD' + '\n ' ) # FIX
60+ plainWriter .write (
61+ '# SiteType: ' + str (series .FeatureActionObj .SamplingFeatureObj .SiteTypeCV ) + '\n ' )
62+ plainWriter .write ('#\n ' )
63+
64+ def write_variable_and_method_information (self , plainWriter , series ):
65+ plainWriter .write ('# Variable and Method Information\n ' )
66+ plainWriter .write ('# ----------------------------------\n ' )
67+ plainWriter .write ('# VariableCode: ' + str (series .VariableObj .VariableCode ) + '\n ' )
68+ plainWriter .write ('# VariableName: ' + str (series .VariableObj .VariableName ) + '\n ' )
69+
70+ def write_warning_header (self , plainWriter ):
71+ plainWriter .write (
72+ '# ------------------------------------------------------------------------------------------\n ' )
73+ plainWriter .write ('# WARNING: The data are released on the condition that neither iUTAH nor any of its \n ' )
74+ plainWriter .write ('# participants may be held liable for any damages resulting from their use. The following \n ' )
75+ plainWriter .write ('# metadata describe the data in this file:\n ' )
76+ plainWriter .write (
77+ '# ------------------------------------------------------------------------------------------\n ' )
78+ plainWriter .write ('#\n ' )
79+ plainWriter .write ('# Quality Control Level Information\n ' )
80+ plainWriter .write ('# -----------------------------------------------\n ' )
81+ plainWriter .write ('# These data have passed QA/QC procedures such as sensor calibration and\n ' )
82+ plainWriter .write ('# visual inspection and removal of obvious errors. These data are approved\n ' )
83+ plainWriter .write ('# by Technicians as the best available version of the data. See published\n ' )
84+ plainWriter .write ('# script for correction steps specific to this data series.\n ' )
85+ plainWriter .write ('#\n ' )
0 commit comments