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)
Exemple #3
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
Exemple #4
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