簡體   English   中英

我在將柵格轉換為數組時遇到問題

[英]I'm having trouble converting a Raster to an Array

我目前在將柵格轉換為數組時遇到了一些問題。 最終,我想將柵格從整數轉換為 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() 方法將使用柵格數據集的 dtype 創建一個 numpy.ndarray。 您的目標是將整數 dtype 轉換為 float32。 最簡單的方法是對ndarray使用astype()方法。

# Convert Raster to Array

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

免責聲明:我是以下庫的作者。

lidario.Translator可以幫助您將柵格轉換為點雲(np.array):

import lidario as lio
    
# Create a Translator object which will take a tif file and return a np.array
translator = lio.Translator("geotiff", "np")
    
# Translate the tif file and get the np.array
point_cloud = translator.translate("/path/to/file.tif")

Lidario 在幕后使用 GDAL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM