濮阳免费网站建设,建设网站专家,wordpress 移动导航菜单,找代理注册公司多少钱一般来说#xff0c;DEM地形数据转坡度和坡向的操作#xff0c;都是通过ArcGIS来完成。
但 是 #xff08;这里有一个Big BUT#xff09;#xff0c;主包真是觉得ArcGIS的很多软件设计和操作方法不太方便#xff0c;所以就想用Python来替代以下#xff0c;而且直觉上也…一般来说DEM地形数据转坡度和坡向的操作都是通过ArcGIS来完成。
但 是 这里有一个Big BUT主包真是觉得ArcGIS的很多软件设计和操作方法不太方便所以就想用Python来替代以下而且直觉上也完全是可以完成的不就是数学计算吗。
所以我就开始了尝试......
跑通之后总结一下整体步骤为后续有需要的同学做点小贡献。 其实操作起来不难就是需要选择好合适的工具
首先就是库文件选择与安装最关键步骤。
坡度和坡向数据计算库文件主要有如下几类richdem、GDAL、arcpy
RichDEM
首先richdem我个人不建议使用我就是为了搞定这个库文件浪费了很多时间最后走不通因为RichDEM的核心功能是用高性能C 编写的特别是地形分析算法Python只是一个外壳实际计算由C模块_richdem.pyd执行所以安装起来比较麻烦。
感兴趣的同学也可以自己尝试反正我安装的时候就是各种报错......
GDAL
GDAL相对来说最容易操作这是一个非常强大的开源库可以处理各种栅格和矢量数据格式。Python 中可通过 osgeo 模块来使用 GDAL。
import os
from osgeo import gdal
from osgeo import gdalconst
ArcPy
我自己选择的是arcpy没有什么有说服力的理由只是因为这是ArcGIS自带的库文件所以我觉得它的计算精度或者可靠性更高一点纯主观未验证。
但是这个操作起来其实也有一点点麻烦因为arcpy 并不是一个可以通过 pip 或 conda install 从公共仓库如 PyPI、conda-forge直接安装的库。
arcpy 是 ESRI ArcGIS 软件自带的 Python 模块它是一个专有的Proprietary库。 这意味着 必须安装了 ArcGIS Desktop (ArcMap) 或 ArcGIS Pro 软件。 arcpy 模块会随 ArcGIS 软件一起安装并集成到其自带的 Python 环境中。 不能像安装其他 Python 库一样在任意的 Conda 环境或通过 pip 命令来安装 arcpy。
所以在使用arcpy进行坡度坡向计算时必须得在ArcGIS自带库文件的环境中去运行代码。 下面仔细说一下如何配置ArcGIS的环境 找到 ArcGIS Pro 自带的 Python 环境 默认情况下通常在C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3 如果在 ArcGIS Pro 中创建了新的环境其路径可能类似C:\Users\YourUsername\AppData\Local\ESRI\conda\envs\YourCustomEnvName 方法 A: 直接激活并使用该环境 打开命令行工具如 Anaconda Prompt 或 PowerShell。 直接切换到 ArcGIS Pro 自带的 Python 环境 如果 ArcGIS Pro 默认环境路径是 C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3 您不能直接用 conda activate arcgispro-py3 (除非手动将其添加到conda已知环境列表中但这不常见)。 最直接的方式是使用该环境的完整路径来执行 Python 脚本或者直接运行该环境中的 python.exe。
C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe your_script.py 方法 B: 在 IDE (如 VS Code, PyCharm) 中配置解释器 打开IDE我用的时VS Code。 找到项目或工作区的 Python 解释器设置。 选择或添加解释器并指定 ArcGIS Pro 自带的 python.exe 路径例如C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe。 这样在 IDE 中运行脚本时就会使用这个包含 arcpy 的环境。 然后输入C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3即可具体路径是什么得看自己的配置选到arcgispro-py3这一级就行。 配置好后就可以开始写代码运行了这一部分还需要注意几个问题。
导入arcpy的时候要把Slope和Aspect都单独导入不然函数名称不太对
import arcpy
from arcpy.sa import Slope, Aspect
确认好DEM文件路径同时不要修改内部的文件名不然可能会出错 验证方法 手动打开文件资源管理器导航到 F:\DATA\DEM\。 确认里面有一个名为 dem_1km 的文件夹。 进入 dem_1km 文件夹确认里面有 hdr.adf、w001001.adf 等文件这些是 ESRI Grid 格式的内部文件。
为了帮助调试可以在脚本中添加一个检查路径的语句
import os # 在脚本开头添加这行
# ... (其他导入和环境设置) ...input_dem rF:\DATA\DEM\dem_1km# --- 检查输入路径是否存在 ---
if not os.path.exists(input_dem):print(f错误输入数据集路径 {input_dem} 不存在。请检查路径是否正确。)exit() # 如果路径不存在则退出脚本# ... (后续计算代码) ...
OK到这里基本就能够完美运行了。
可以导入到ArcGIS检查一下。 多吐槽一句地形数据的格式确实麻烦还不能拆开必须以文件夹形式输入不知道有没有好的解决办法......