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