我无法将光栅转换为数组

2024-10-03 11:15:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前在将光栅转换为阵列时遇到一些问题。最后,我想把一个光栅从一个整数转换成一个float32,这样我就可以运行一个gdal_calc,但是我不能正确地改变类型来实现这个目的。在

所以,如果有人能提供任何帮助,我将不胜感激。这是我的剧本,很短。在

import gdal
import numpy as np
import math
import osgeo
import os
import scipy


# Open Rasters 

hvRaster = gdal.Open("C:\\Users\\moses\\Desktop\\Calc_Test\\IMG-HV-ALOS2110871010-160611-HBQR1.5RUA.img")
vhRaster = gdal.Open("C:\\Users\\moses\\Desktop\\Calc_Test\\IMG-VH-ALOS2110871010-160611-HBQR1.5RUA.img")


# Get Raster Band

hvRasterBand = hvRaster.GetRasterBand(1)
vhRasterBand = vhRaster.GetRasterBand(1)

# Convert Raster to Array

hvArray = np.array(hvRaster.GetRasterBand(1).ReadAsArray())
vhArray = np.array(vhRaster.GetRasterBand(1).ReadAsArray())

print hvArray
print vhArray

提前谢谢你

摩西


Tags: testimportimg光栅npcalcopenusers
1条回答
网友
1楼 · 发布于 2024-10-03 11:15:27

方法ReadAsArray()将创建一个努比·恩达雷使用光栅数据集的数据类型。您的目标是将整数数据类型转换为float32。最简单的方法是对ndarray使用astype()方法。在

# Convert Raster to Array

hvArray = hvRaster.GetRasterBand(1).ReadAsArray().astype(np.float32)
vhArray = vhRaster.GetRasterBand(1).ReadAsArray().astype(np.float32)

相关问题 更多 >