在学了在学了w 2021-12-17 21:04 采纳率: 0%
浏览 15
已结题

psycopg2查询二进制数据返回值为memoryview要如何处理?

我的原本任务:想实现在PostgreSQL数据库中,建立四叉树索引管理栅格数据。我现在在做的事:实现栅格数据在PostgreSQL中自建表存入取出。
具体过程:
1、我将遥感影像数据读取部分存入PostgreSQL中,用的bytea字段类型。

from osgeo import gdal
import psycopg2 as pg2

band_1 = gdal.Open(r'E:\LS_data\LC81210422013278LGN00\LC81210422013278LGN00_B1.tif')
data = band_1.GetRasterBand(1).ReadAsArray(3000,3000,2,2)

def saveRaster(values):
    conn = pg2.connect("dbname=sample user=postgres password=123456 host=localhost")
    cur = conn.cursor()
    #cur.execute("CREATE TABLE dai_raster (id serial PRIMARY KEY, data bytea);")
    cur.execute("INSERT INTO dai_raster (data) VALUES (%s)",
               (pg2.Binary(values),))
    conn.commit()
    print("事务已提交,即将断开数据库连接")
    cur.close()
    conn.close()

saveRaster(data)
del data

这块数据用ReadAsArray()输出的结果为:

img

2、而后想要实现查询出来,进一步写入文件或显示出来。

import psycopg2 as pg2
import numpy as np
#from matplotlib import pyplot as plt

def GetData():
    conn = pg2.connect("dbname=sample user=postgres password=123456 host=localhost")
    cur = conn.cursor()
    cur.execute("SELECT data FROM dai_raster WHERE id=6;")
    data = cur.fetchone()
    cur.close()
    conn.close()
    return data

Bydata = GetData()

Bydata是得到的数据,然后我就不知道要如何处理它了。

img

这里一个尝试(网上搜的,但我没有理解为什么):

numpydata = np.array(Bydata)
print(numpydata)

img

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-12-20 11:33
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


    因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

问题事件

  • 系统已结题 12月25日
  • 创建了问题 12月17日

悬赏问题

  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价