2017-12-05 2 views
1

gradientmを算出する勾配を計算するMATLAB関数、slopeであり、データグリッドのaspectASPECT、python3.xにおける傾き(MATLAB gradientm関数)

構文

[ASPECT、SLOPE、gradN、グレード] = gradientm(Z、R)

説明

[ASPECT、SLOPE、gradN、グレード] = gradientm(Z、R)は、基準Rに対する規則的なデータグリッドZの勾配の勾配、アスペクト、および北および東の成分を計算します。グリッドに標高がメートル単位である場合、結果のアスペクトおよび勾配は単位北から時計回りに、そして水平から上に向かって北と東の勾配成分は、北と東の方向の距離1メートルあたりのマップ変数の変化です。この計算では、デフォルトの地球楕円体上のマップ変数に有限差分を使用します。

問題は、私が何かequivalent in pythonをしたいです。 私はこのPythonライブラリPyDEMを設立しましたが、それは、Python 2.xのためのものですが、私は、これはPyDEMDEMファイル用slopeaspectを計算するために使用DEMProcessorの方法ですpython 3.x

で働いています

# needs to match above command 
filename = 'Shasta-30m-DEM.tif' 

# instantiate a processor object 
processor = DEMProcessor(filename) 

# get magnitude of slope and aspect 
mag, aspect = processor.calc_slopes_directions() 

答えて

0

STEP1:インストールGDAL

STEP2:インストールrasterio

step3:簡単にpy:

from osgeo import gdal 
import numpy as np 
import rasterio 


def calculate_slope(DEM): 
    gdal.DEMProcessing('slope.tif', DEM, 'slope') 
    with rasterio.open('slope.tif') as dataset: 
     slope=dataset.read(1) 
    return slope 

def calculate_aspect(DEM): 
    gdal.DEMProcessing('aspect.tif', DEM, 'aspect') 
    with rasterio.open('aspect.tif') as dataset: 
     aspect=dataset.read(1) 
    return aspect 

slope=calculate_slope('DEM.tif') 
aspect=calculate_aspect('DEM.tif') 

print(type(slope)) 
print(slope.dtype) 
print(slope.shape) 
関連する問題