def test_add_geoms2(self): # add a single geom pt = geometry.build_point_geometry(10, 11) x, y, z = pt.GetPoint() self.assertTrue(isinstance(pt, Geometry2)) ret = self.item.addGeometry(pt) self.assertTrue(ret) g = self.item.getGeometries2(-1) self.assertTrue(isinstance(g, Geometry2)) x, y, z = g.GetPoint() self.assertTrue(x == 10) self.assertTrue(y == 11) self.assertTrue(z == 0) # add an invalid geometry ret = self.item.addGeometry((0, 1, 1)) self.assertFalse(ret) # add many of geometries xs = range(100, 110) ys = range(110, 120) pts = geometry.build_point_geometries(xs, ys) geoms = [] for pt in pts: geoms.append(pt) ret = self.item.addGeometries2(geoms) self.assertTrue(ret) g = self.item.getGeometries2(-1) self.assertTrue(isinstance(g, Geometry2)) x, y, z = g.GetPoint() self.assertTrue(x == 109) self.assertTrue(y == 119) self.assertTrue(z == 0) # add a mix of valid and invalid geometries geoms = [] for i in range(100, 110): if i % 2 == 0: pt = geometry.build_point_geometry(i, i + 1) geoms.append(pt) else: geoms.append((i, i + 1)) ret = self.item.addGeometries2(geoms) self.assertFalse(ret) g = self.item.getGeometries2(-1) self.assertTrue(isinstance(g, Geometry2)) x, y, z = g.GetPoint() self.assertTrue(x == 108) self.assertTrue(y == 109) self.assertTrue(z == 0)
def test_add_geoms2(self): # add a single geom pt = geometry.build_point_geometry(10, 11) x,y,z = pt.GetPoint() self.assertTrue(isinstance(pt, Geometry2)) ret = self.item.addGeometry(pt) self.assertTrue(ret) g = self.item.getGeometries2(-1) self.assertTrue(isinstance(g, Geometry2)) x,y,z = g.GetPoint() self.assertTrue(x == 10) self.assertTrue(y == 11) self.assertTrue(z == 0) # add an invalid geometry ret = self.item.addGeometry((0,1,1)) self.assertFalse(ret) # add many of geometries xs = range(100,110) ys = range(110,120) pts = geometry.build_point_geometries(xs, ys) geoms = [] for pt in pts: geoms.append(pt) ret = self.item.addGeometries2(geoms) self.assertTrue(ret) g = self.item.getGeometries2(-1) self.assertTrue(isinstance(g, Geometry2)) x,y,z = g.GetPoint() self.assertTrue(x == 109) self.assertTrue(y == 119) self.assertTrue(z == 0) # add a mix of valid and invalid geometries geoms = [] for i in range(100,110): if i % 2 == 0: pt = geometry.build_point_geometry(i, i + 1) geoms.append(pt) else: geoms.append((i,i+1)) ret = self.item.addGeometries2(geoms) self.assertFalse(ret) g = self.item.getGeometries2(-1) self.assertTrue(isinstance(g, Geometry2)) x,y,z = g.GetPoint() self.assertTrue(x == 108) self.assertTrue(y == 109) self.assertTrue(z == 0)
def construct_oeis(self, weather_data): # read the weather data csv f = open(weather_data, "r") lines = f.readlines() f.close() # read ei metadata ei_data = [] for i in range(16, len(lines)): line = lines[i] if line[0] == "#" and len(line) > 3: if line[2] == "V" and line[3] != "[": data = line.split("=") data = data[1].split(",") trimmed = [d.strip() for d in data] ei_data.append(trimmed) elif line[0] != "#": break def make_date(datestr): return dt.strptime(datestr, "%m-%d-%Y %H:%M:%S") # parse the weather data dates and values into numpy arrays date_arr = numpy.genfromtxt( weather_data, delimiter=",", converters={"Date": make_date}, names=["Date"], dtype=None, usecols=[0] ) date_arr = [d[0] for d in date_arr] val_arr = numpy.genfromtxt(weather_data, delimiter=",", dtype=float) val_arr = numpy.delete(val_arr, 0, 1) # build exchange items col_idx = 0 for item in ei_data: # map to stdlib units and variables unit = mdl.create_unit(item[2]) variable = mdl.create_variable(item[1]) uid = uuid.uuid4().hex ei = stdlib.ExchangeItem( id=uid, name=item[0], unit=unit, variable=variable, desc=item[3], type=stdlib.ExchangeItemType.OUTPUT ) # build geometry pt = geometry.build_point_geometry(float(item[-2]), float(item[-1])) ei.addGeometry(pt) # add the oei to the outputs list self.outputs(value=ei) # save the data associated with this exchange item self.weather_data[uid] = [date_arr, val_arr[:, col_idx]] # increment the column index for the numpy array col_idx += 1
def construct_oeis(self, weather_data): # read the weather data csv f = open(weather_data, 'r') lines = f.readlines() f.close() # read ei metadata ei_data = [] for i in range(16,len(lines)): line = lines[i] if line[0] == '#' and len(line) > 3: if line[2] == 'V' and line[3] != '[': data = line.split('=') data = data[1].split(',') trimmed = [d.strip() for d in data] ei_data.append(trimmed) elif line[0] != '#': break def make_date(datestr): return dt.strptime(datestr, '%m-%d-%Y %H:%M:%S') # parse the weather data dates and values into numpy arrays date_arr = numpy.genfromtxt(weather_data, delimiter=',', converters={'Date':make_date}, names= ['Date'], dtype=None, usecols=[0]) date_arr = [d[0] for d in date_arr] val_arr = numpy.genfromtxt(weather_data, delimiter=',', dtype=float) val_arr = numpy.delete(val_arr,0,1) # build exchange items col_idx = 0 for item in ei_data: # map to stdlib units and variables unit = mdl.create_unit(item[2]) variable = mdl.create_variable(item[1]) uid = uuid.uuid4().hex ei = stdlib.ExchangeItem(id=uid, name=item[0], unit=unit, variable=variable, desc=item[3], type=stdlib.ExchangeItemType.OUTPUT) # build geometry pt = geometry.build_point_geometry(float(item[-2]), float(item[-1])) ei.addGeometry(pt) # add the oei to the outputs list self.outputs(value=ei) # save the data associated with this exchange item self.weather_data[uid] = [date_arr, val_arr[:, col_idx]] # increment the column index for the numpy array col_idx += 1