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')
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()
#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,
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, ))
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)