巨菜的阿豪 2023-10-08 11:49 采纳率: 50%
浏览 14
已结题

gdal开发python转c++代码,ReadAsArray()函数功能

在gdal转化开发中遇见相关python函数,不理解c++中该用何种方式进行等价替换,代码如下:

                             dsjoin = gdal.Open(tilefilename)
                            datajoin = dsjoin.ReadAsArray(0, 0, dsjoin.RasterXSize, dsjoin.RasterYSize)
                            pixvals = []
                            for b in range(1,dstile.RasterCount + 1) :
                                band = dstile.GetRasterBand(b)
                                fmt = self.pt2fmt(band.DataType)
                                pixel = band.ReadRaster(i, k, 1, 1, 1, 1)
                                pixval = struct.unpack(fmt, pixel)
                                pixvals.append(pixval[0])
                            #print("pixel(%s, %s, %s, %s)" % (k, i, pixvals[0], pixvals[1]))
                            alpha = dstile.RasterCount - 1
                            if pixvals[alpha] == 0 or (self.in_nodata != [] and pixvals[alpha] == self.in_nodata[0]):
                                # Try get pixel values from existing tile
                                for b in range(1, dstile.RasterCount + 1) :
                                    band = dstile.GetRasterBand(b)
                                    fmt = self.pt2fmt(band.DataType)
                                    if self.tiledriver != 'EHdr' :
                                        band.WriteRaster(i, k, 1, 1, struct.pack(fmt, datajoin[b - 1][k][i]))
                                    else :
                                        band.WriteRaster(i, k, 1, 1, struct.pack(fmt, datajoin[k][i]))

如上,两处函数。
1.struct.unpack()
2.ReadAsArray()函数

20231018追加:
需要结题,暂时先根据自己理解,使用rasterIo函数读取数据了,后续测试完成没问题后,再具体写一下使用方法

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-08 14:14
    关注

    【相关推荐】




    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月18日
  • 修改了问题 10月18日
  • 创建了问题 10月8日

悬赏问题

  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 第一行输入n,第二行输入a b c输出的字符向后平移n个位置,当移动到z时,重新返回a开始
  • ¥15 为什么跑这个代码,文件显示不在呀
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题