Python 3.x 在python3.x中计算坡向和坡度(matlab gradientm函数)

Python 3.x 在python3.x中计算坡向和坡度(matlab gradientm函数),python-3.x,equivalent,Python 3.x,Equivalent,gradientm是一个matlab函数,用于计算数据网格的梯度、slope和aspect 语法 [坡向、坡度、坡度、坡度]=坡度M(Z、R) 说明 [ASPECT,SLOPE,gradN,gradE]=gradientm(Z,R)计算常规数据网格Z相对于参考R的坡度、ASPECT以及坡度的北向和东向分量。如果网格包含以米为单位的高程,则生成的坡向和坡度以度为单位从北顺时针和从水平向上。北部和东部梯度分量是地图在北部和东部方向上每米距离的变化。计算对默认地球椭球体上的map变量使用有限差分 问题

gradientm
是一个matlab函数,用于计算数据网格的梯度、
slope
aspect

语法

[坡向、坡度、坡度、坡度]=坡度M(Z、R)

说明

[ASPECT,SLOPE,gradN,gradE]=gradientm(Z,R)计算常规数据网格Z相对于参考R的坡度、ASPECT以及坡度的北向和东向分量。如果网格包含以米为单位的高程,则生成的坡向和坡度以度为单位从北顺时针和从水平向上。北部和东部梯度分量是地图在北部和东部方向上每米距离的变化。计算对默认地球椭球体上的map变量使用有限差分

问题

我想要python中的
等价物
。 我创建了这个python库,但它是为Python2.x开发的,但我正在使用
Python3.x

这是通过
PyDEM
使用
DEM处理器
DEM
文件计算
slope
aspect
的方法:

# 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()
步骤1:安装

步骤2:安装

第三步:简单易懂:

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)

如何获取与哪个坐标相关的坡度值的数据?你知道吗?目前它返回numpy.ndarray,其中包含一堆值