基于arcpy的rusle模型ls因子计算.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE14 / NUMPAGES14 基于ArcPy的RUSLE模型LS因子计算 (From AML and arcgisscripting) By:半荒漠猪毛菜属 飞天小猪于2011年将Hickey计算RUSLE模型LS因子的AML代码移植为python脚本,基于平台为ArcGIS 9.3。目前,ArcGIS必威体育精装版版本已到10.3,且自10.0之后出现ArcPy包,内置模块与函数与之前版本差异较大。为方便在现版本中运行,参考Hickey原文算法的基础上,将飞天小猪代码转译为10.X脚本形式。 附以下为“飞天小猪”版使用说明: 越陡越长的坡比地面上产生更高的流速,但是土壤侵蚀对S(坡度)比对L(坡长)有更强的敏感度。不规则和分割的坡型对RUSLE的影响没有体现在本程序中。 LS计算的算法时基于McCool等人在1997年的研究成果,校正了坡长的水平投影;这对GIS中通过格网或地图(x,y)而不是字段(x,y,z)计算坡长很有用。 程序中坡长的计算从高点(high points,如平缓的脊顶ridgetops)到低点(low points,比如,流域倾点watershed pour point或其他出口点outlet)。行政上定义的流域可能并不合适,除非其也是水文上定义的集水区域。计算LS因子的理想输入数据是已经裁剪过或者已经扩大到感兴趣的区域及任何相关的集水区的DEM数据。为了避免任何由于尺度导致的边界影响,最大范围应该稍微比目标区域大一点。确保DEM的高程单位和水平距离单位是一致的(默认是米)。L和S因子计算的输出数据需要仔细检查以确保和DEM相符以及没有重大格式问题。如果在处理中因为浮点型格式出现问题,截短或取整或许可以解决。 DEM数据中水平或垂直的点、行或边界匹配异常均能使程序不稳定或产生不连续的坡长数据。这里的平滑算法可能会解决一些DEM不规则问题,但是同时也会使不需要这种改正的其他DEM高程格网产生不希望的平滑或泛化。如果使用了,DEM增强算法可能有足够的证据并应用来避免坡长的显著过分扩展。 定义坡度角(theta)单位为度(坡度的反正切)。坡度临界值(0~1)相对坡度角变化,导致累积坡长的结束和从下一个下坡(downslope)格网开始;高值比低值更容易导致累积坡长的结束,比如,0.7比0.5需要更小的坡度差别使累积结束。这是一个非常值得考虑的初始设置,所以小心使用。实际地形中,当坡度降低到一定程度时会发生由侵蚀到沉积的转变,在这里用中断因子(cutoff factor)来表现。中断因子定义为格网单元对应的坡度值与其上游流向方向的格网单元坡度比值的临界值,这一比值反映了当前格网坡度相对于上游格网坡度的减小程度,若当前格网与上游格网坡度比值小于中断因子(临界值),则水流到此产生沉积,坡面结束。可见中断因子越小,对坡度减小的程度要求越高。中断因子通常由熟悉研究区特征的专家确定,当无法得到中断因子研究成果时,也可以使用Hickey提供的默认值,坡度大于5%时设为0.5,对于坡度小于5%的情况,为了表现缓坡水流搬运能力较弱,坡度的微笑降低就可能导致沉积出现,将中断因子设为0.7,即格网单元坡度小于其上游单元坡度的70%时就中止坡长累加。 填充洼地,生成无洼地DEM 输入DEM和中断因子 计算流向 计算最大坡降 计算非累计坡长NCSL 标识局部高程点和平地 计算累积坡长 中断因子 按照惯例,将DEM做1个格网的缓冲以避免Nodata出现在边界;这样做足够避免很多精度裁剪后的边界错误;然而, 推荐为流域DEM添加10个格网的缓冲,从而确保任何“trapped pools”或条带状Nodata在流域边界出现后可以通过裁剪操作去掉。 程序如下: import arcpy from arcpy import * from arcpy.sa import * #即不需要arcgisscripting中导入,用arcpy包即可 arcpy.env.workspace=E:\\temp dem_input=E:\\temp\\DEM.tif #输入栅格数据 wshed=E:\\temp\\Boundary.shp #输入流域边界数据 demunits=meters scf_lt5=0.7 scf_ge5=0.5 #定义信息提示函数 def sendmsg(msg): print msg arcpy.AddMessage(msg) #定义一个函数,输入字符型坐标、cellsize、倍数,返回平移后的字符型坐标值,目的为保留原始小数位数不变 def StoS(s,cellsize,mult): stri=s.split(.) inte=float(stri[0])+mult*cellsize

文档评论(0)

新起点 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档