Exemple #1
0
    def connect(self, db):
        if isinstance(db, basestring):
            path = db
            if path == ':memory:':
                # in-memory
                name = '[in-memory]'
                root = '[in-memory]'
            else:
                # file path
                root,name = os.path.split(path)
            # load
            self.db = postqlite.connect(path)
        else:
            # already loaded db
            self.db = db
            path = '[unknown]'
            root = '[unknown]'
            name = '[unknown]'
            
        self.info.data.set( '{}'.format(name) )
        self.info.path.set( '{}'.format(root) )

        # get info
        tableinfo = []
        for table in self._tablenames():
            columns = self._column_info(table)
            tableinfo.append((table, columns))

        # populate
        self.info.populate(tableinfo)

        # log
        msg = 'Connected to database: {}'.format(path)
        self.query.log.log_new(msg, 'normal')
Exemple #2
0
import postqlite
import os
import json



if __name__ == '__main__':

    print 'init'
    db = postqlite.connect('testdata/foresttest.db')

    for r in db.cursor().execute('select st_intersects(geom,geom),st_intersects(geom,geom) from countries limit 1 offset 1'):
        print r

    asfdfa
        
    app = postqlite.app.SQLiteApp()
    app.connect(db)
    app.mainloop()




Exemple #3
0
            #aff[4] *= -1 # invert for normal images
            ims = [Image.fromarray(b.data()) for b in rast.bands]
            im = Image.merge('RGB', ims)
            d = pg.RasterData(
                image=im,
                #mode=rast.band(0).dtype, width=rast.width, height=rast.height,
                affine=aff)
            d.bands[0].nodataval = 0
            vz.add_layer(d)
    vz.render_all()
    vz.view()


# init
print 'init'
db = postqlite.connect(':memory:')
cur = db.cursor()
cur.execute('create table maps (file text, rast rast)')
cur.execute('create table countries (name text, geom geom)')

# populate with real data
print 'populate'
#fil = r"C:\Users\kimok\OneDrive\Documents\GitHub\AutoMap\tests\testmaps\zaire_map_georeferenced.tiftxu-oclc-6654394-nb-30-4th-ed.jpg"
fil = r"C:\Users\kimok\OneDrive\Documents\GitHub\AutoMap\tests\testmaps\burkina_georeferenced.tif"
d = postqlite.raster.data.Raster(fil)
for tile in d.tiled(tilesize=(500, 500)):
    print tile
    wkb = tile.wkb
    wkbtile = postqlite.raster.raster.Raster(wkb)
    cur.execute('insert into maps values (?, ?)', (
        fil,
Exemple #4
0
import postqlite
import os
import json

if __name__ == '__main__':

    print 'init'
    db = postqlite.connect('testdata/maptest.db')

    if False:
        # init
        cur = db.cursor()
        cur.execute('create table forest (file text, rast rast)')
        cur.execute('create table countries (name text, geom geom)')

        # populate with real data
        print 'populate'
        root = r"C:\Users\kimok\Desktop\BIGDATA\NORAD data\deforestation"
        for fil in os.listdir(root):
            if not 'lossyear' in fil:
                continue
            d = postqlite.raster.data.Raster(root + '/' + fil)
            print fil, d
            for tile in d.tiled(tilesize=(250, 250)):
                #print tile
                wkb = tile.wkb
                wkbtile = postqlite.raster.raster.Raster(wkb)
                cur.execute('insert into forest values (?, ?)', (
                    fil,
                    wkbtile,
                ))
Exemple #5
0
            wkb_string += struct.pack('%sl' % byte_order, len(ring))
            for vertex in ring:
                wkb_string += struct.pack(byte_fmt, *vertex)

    return wkb_string


#shp = postqlite.vector.load.from_file(r"C:\Users\kimok\Desktop\BIGDATA\testup\WDPA\WDPA_Jul2019-shapefile-points.shp")
shp = postqlite.vector.load.from_file(
    r"C:\Users\kimok\Desktop\BIGDATA\testup\WDPA\WDPA_Jul2019-shapefile-polygons.shp"
)
print shp, len(shp)
names = shp.fieldnames + ['geom']
types = shp.fieldtypes + ['geom']

db = postqlite.connect('testfile.db')
coldef = ', '.join(('{} {}'.format(n, t) for n, t in zip(names, types)))
insertdef = ','.join('?' * len(names))
print coldef
cur = db.cursor()
cur.execute('create table if not exists test ({})'.format(coldef))


#wkbs = ((geomet_wkb.dumps(g),) for r,g in shp)
def rows():
    for r, g in shp:
        wkb = _dump_multipolygon(
            g, True, {}) if 'Multi' in g['type'] else _dump_polygon(
                g, True, {})
        row = list(r) + [buffer(wkb)]
        yield tuple(row)