2016-09-25 35 views
0

我目前在將光柵轉換爲陣列時遇到了一些麻煩。最終我想將一個柵格從一個整數轉換爲一個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 

謝謝你在前進,

摩西

回答

2

的方法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) 
相關問題