我在将光栅转换为阵列时遇到问题

问题描述:

我目前在将光栅转换为阵列时遇到了一些麻烦。最终我想将一个栅格从一个整数转换为一个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 

谢谢你在前进,

摩西

的方法ReadAsArray()将创建一个numpy.ndarray与栅格数据集的D型。你的目标是将整数dtype转换为float32。最简单的方法是对ndarray使用astype()方法。

# Convert Raster to Array 

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