Skip to content

Commit 20d64ae

Browse files
committed
Updating sample script and a few changes to models and readService.
1 parent ee93bf1 commit 20d64ae

File tree

3 files changed

+37
-28
lines changed

3 files changed

+37
-28
lines changed

Examples/Sample.py

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
#connect to database
2323
#createconnection (dbtype, servername, dbname, username, password)
2424
#session_factory = dbconnection.createConnection('mysql', 'localhost', 'odm2', 'ODM', 'odm')
25-
session_factory = dbconnection.createConnection('sqlite', '/Users/stephanie/DEV/DBs/ODM2.sqlite', 2.0)
25+
#session_factory = dbconnection.createConnection('connection type: sqlite|mysql|mssql|postgresql', '/your/path/to/db/goes/here', 2.0)
26+
session_factory = dbconnection.createConnection('sqlite', '/Users/denversmith/Downloads/ODM2.sqlite', 2.0)
2627
# session_factory= dbconnection.createConnection('mssql')
2728

2829

@@ -73,14 +74,21 @@
7374
try:
7475
sf = read.getSamplingFeatureByCode('USU-LBR-Mendon')
7576
print "\n-------- Information about an individual SamplingFeature ---------"
76-
print (
77-
"The following are some of the attributes of a SamplingFeature retrieved using getSamplingFeatureByCode(): \n" +
78-
"SamplingFeatureCode: " + sf.SamplingFeatureCode + "\n" +
79-
"SamplingFeatureName: " + sf.SamplingFeatureName + "\n" +
80-
"SamplingFeatureDescription: " + sf.SamplingFeatureDescription + "\n" +
81-
"SamplingFeatureGeotypeCV: " + sf.SamplingFeatureGeotypeCV + "\n" +
82-
"SamplingFeatureGeometry: " + sf.FeatureGeometry + "\n" +
83-
"Elevation_m: " + str(sf.Elevation_m))
77+
print "The following are some of the attributes of a SamplingFeature retrieved using getSamplingFeatureByCode(): \n"
78+
print "SamplingFeatureCode: " + sf.SamplingFeatureCode
79+
print "SamplingFeatureName: " + sf.SamplingFeatureName
80+
print "SamplingFeatureDescription: %s" % sf.SamplingFeatureDescription
81+
print "SamplingFeatureGeotypeCV: %s" % sf.SamplingFeatureGeotypeCV
82+
print "SamplingFeatureGeometry: %s" % sf.FeatureGeometry.geom_wkb
83+
print "Elevation_m: %s" % str(sf.Elevation_m)
84+
#print (
85+
# "The following are some of the attributes of a SamplingFeature retrieved using getSamplingFeatureByCode(): \n" +
86+
# "SamplingFeatureCode: " + sf.SamplingFeatureCode + "\n" +
87+
# "SamplingFeatureName: " + sf.SamplingFeatureName + "\n" +
88+
# "SamplingFeatureDescription: " + sf.SamplingFeatureDescription + "\n" +
89+
# "SamplingFeatureGeotypeCV: " + sf.SamplingFeatureGeotypeCV + "\n" +
90+
# "SamplingFeatureGeometry: " + sf.FeatureGeometry.geom_wkb + "\n" +
91+
# "Elevation_m: " + str(sf.Elevation_m))
8492
except Exception as e:
8593
print "Unable to demo getSamplingFeatureByCode: ", e
8694

@@ -127,27 +135,27 @@
127135
# Now get a particular Result using a ResultID
128136
print "\n------- Example of Retrieving Attributes of a Time Series Result -------"
129137
try:
130-
tsResult = read.getTimeSeriesResultByResultId(19)
138+
tsResult = read.getTimeSeriesResultByResultId(1)
131139
print (
132140
"The following are some of the attributes for the TimeSeriesResult retrieved using getTimeSeriesResultByResultID(): \n" +
133-
"ResultTypeCV: " + tsResult.ResultTypeCV + "\n" +
141+
"ResultTypeCV: " + tsResult.ResultObj.ResultTypeCV + "\n" +
134142
# Get the ProcessingLevel from the TimeSeriesResult's ProcessingLevel object
135-
"ProcessingLevel: " + tsResult.ProcessingLevelObj.Definition + "\n" +
136-
"SampledMedium: " + tsResult.SampledMediumCV + "\n" +
143+
"ProcessingLevel: " + tsResult.ResultObj.ProcessingLevelObj.Definition + "\n" +
144+
"SampledMedium: " + tsResult.ResultObj.SampledMediumCV + "\n" +
137145
# Get the variable information from the TimeSeriesResult's Variable object
138-
"Variable: " + tsResult.VariableObj.VariableCode + ": " + tsResult.VariableObj.VariableNameCV + "\n"
146+
"Variable: " + tsResult.ResultObj.VariableObj.VariableCode + ": " + tsResult.ResultObj.VariableObj.VariableNameCV + "\n"
139147
"AggregationStatistic: " + tsResult.AggregationStatisticCV + "\n" +
140148
"Elevation_m: " + str(sf.Elevation_m) + "\n" +
141149
# Get the site information by drilling down
142-
"SamplingFeature: " + tsResult.FeatureActionObj.SamplingFeatureObj.SamplingFeatureCode + " - " +
143-
tsResult.FeatureActionObj.SamplingFeatureObj.SamplingFeatureName)
150+
"SamplingFeature: " + tsResult.ResultObj.FeatureActionObj.SamplingFeatureObj.SamplingFeatureCode + " - " +
151+
tsResult.ResultObj.FeatureActionObj.SamplingFeatureObj.SamplingFeatureName)
144152
except Exception as e:
145153
print "Unable to demo Example of retrieving Attributes of a time Series Result: ", e
146154

147155
# Get the values for a particular TimeSeriesResult
148156
print "\n-------- Example of Retrieving Time Series Result Values ---------"
149157

150-
tsValues = read.getTimeSeriesResultValuesByResultId(19) # Return type is a pandas dataframe
158+
tsValues = read.getTimeSeriesResultValuesByResultId(1) # Return type is a pandas dataframe
151159

152160
# Print a few Time Series Values to the console
153161
# tsValues.set_index('ValueDateTime', inplace=True)
@@ -162,9 +170,9 @@
162170
fig = plt.figure()
163171
ax = fig.add_subplot(111)
164172
tsValues.plot(x='ValueDateTime', y='DataValue', kind='line',
165-
title=tsResult.VariableObj.VariableNameCV + " at " + tsResult.FeatureActionObj.SamplingFeatureObj.SamplingFeatureName,
173+
title=tsResult.ResultObj.VariableObj.VariableNameCV + " at " + tsResult.ResultObj.FeatureActionObj.SamplingFeatureObj.SamplingFeatureName,
166174
ax=ax)
167-
ax.set_ylabel(tsResult.VariableObj.VariableNameCV + " (" + tsResult.UnitObj.UnitsAbbreviation + ")")
175+
ax.set_ylabel(tsResult.ResultObj.VariableObj.VariableNameCV + " (" + tsResult.ResultObj.UnitsObj.UnitsAbbreviation + ")")
168176
ax.set_xlabel("Date/Time")
169177
ax.xaxis.set_minor_locator(dates.MonthLocator())
170178
ax.xaxis.set_minor_formatter(dates.DateFormatter('%b'))

odm2api/ODM2/models.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -559,17 +559,17 @@ class SamplingFeatures(Base):
559559
index=True)
560560
Elevation_m = Column('elevation_m', Float(53))
561561
ElevationDatumCV = Column('elevationdatumcv', ForeignKey(CVElevationDatum.Name), index=True)
562-
#FeatureGeometry = Column('featuregeometry', Geometry) # Geoalchemy 2
563-
FeatureGeometry = GeometryColumn('featuregeometry', Geometry) #Geoalchemy 1, #wkb.loads(str(self.FeatureGeometry.geom_wkb)).wkt if self.FeatureGeometry is not None else None
562+
FeatureGeometry = Column('featuregeometry', Geometry) # Geoalchemy 2
563+
#FeatureGeometry = GeometryColumn('featuregeometry', Geometry) #Geoalchemy 1, #wkb.loads(str(self.FeatureGeometry.geom_wkb)).wkt if self.FeatureGeometry is not None else None
564564
# FeatureGeometry = Column('featuregeometry', BLOB)# custom geometry queries
565565

566566

567567
def __repr__(self):
568-
from shapely import wkb
569-
return "<SamplingFeatures('%s', '%s', '%s', '%s', '%s')>" % (
570-
self.SamplingFeatureCode, self.SamplingFeatureName, self.SamplingFeatureDescription,
571-
self.Elevation_m, wkb.loads(str(self.FeatureGeometry.geom_wkb)).wkt if self.FeatureGeometry is not None else None)#self.FeatureGeometry)
572-
568+
#from shapely import wkb
569+
#return "<SamplingFeatures('%s', '%s', '%s', '%s', '%s')>" % (
570+
# self.SamplingFeatureCode, self.SamplingFeatureName, self.SamplingFeatureDescription,
571+
# self.Elevation_m, wkb.loads(str(self.FeatureGeometry.geom_wkb)).wkt if self.FeatureGeometry is not None else None)#self.FeatureGeometry)
572+
return "<SamplingFeatures('%s', '%s', '%s', '%s', '%s')>" % (self.SamplingFeatureCode, self.SamplingFeatureName, self.SamplingFeatureDescription, self.Elevation_m, self.FeatureGeometry)
573573
GeometryDDL(SamplingFeatures.__table__) #Geoalchemy1
574574

575575
class FeatureActions(Base):

odm2api/ODM2/services/readService.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -764,13 +764,14 @@ def getTimeSeriesResultValuesByResultId(self, resultId):
764764
:type Timeseriesresultvalue:
765765
"""
766766
try:
767-
q = self._session.query(TimeSeriesResults).filter_by(ResultID=resultId).all()
768-
767+
q = self._session.query(TimeSeriesResultValues).filter_by(ResultID=resultId).all()
768+
print type(q[0]), q[0]
769769
df = pd.DataFrame([dv.list_repr() for dv in q])
770770
df.columns = q[0].get_columns()
771771
return df
772772
# return self._session.query(Timeseriesresultvalue).filter_by(ResultID=resultId).all()
773773
except Exception as e:
774+
print e
774775
return None
775776

776777
def getTimeSeriesResultValuesByCode(self, timeSeriesCode):

0 commit comments

Comments
 (0)