尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
arcgis用累计值进行分级
为了计算生态系统服务的重要性一般来说会使用累计值来进行计算。比如说累计的前50%值的像元为极重要区而50-75是一般重要。重要性说明极重要从大到小排序累计50的值重要从大到小排序累计50-75的值中等重要从 90%到 75%该段的栅格值占总量 15%的值归类为中等重要区域一般比 90%小的值即占总量 10%的值全部归类为一般区域。一、主要部分**预先处理**需要每个栅格数据都有属性表没有属性表需要创造属性表另外还需要新建字段ValueCount和percentage这个字段前者为长整型后者为双精度。下面的代码放在代码框中。# 全局累加器cum0.0total0.0# 在计算前先一次性求 total第一次执行时 total 仍然为 0因此需要初始化importarcpy# 获取当前图层使用 !SHAPE! 触发则自动是当前表tblarcpy.Describe(arcpy.GetParameterAsText(0)).catalogPathifarcpy.GetParameterAsText(0)elseNone# 兼容 ArcMap强制使用当前表名iftbl is None: tblr%s% arcpy.Describe(RWEQ_xh_ly.tif).catalogPath# 这块需要将 RWEQ_xh_ly.tif# 只在 total 还没算的时候执行一次iftotal0: rowsarcpy.SearchCursor(tbl)forrinrows: totalr.ValueCount# ValueCount是要算的字段def getCumProp(value): global cum cumvaluereturncum / total在想算比例的字段中计算这个值。getCumProp(!ValueCount!)**后续分级**上述的方法是从小到大的因而分析需要按照相反的方式来划分。0.1、0.25、0.5、1二、探究部分这里面其实有个问题就是这个是基于什么排序的我探索了一下它并没有指定在goble环境下它自动依据value进行降序排序不管你后面在属性表中进行再排序其结果都是一样的。具体可以用一个简单的例子来说明。可以用下面的一个例子来进行说明。cum0.0def cumValue(v): global cum cumvreturncumcumValue(!ValueCount!)此外我还探索了下面两行代码为什么需要这么写。其实下面就是获得文件的路径。下面的第一行代码本来就是想获取它当前的路径的但是在arcmap里面是不成功的。# 获取当前图层使用 !SHAPE! 触发则自动是当前表tblarcpy.Describe(arcpy.GetParameterAsText(0)).catalogPathifarcpy.GetParameterAsText(0)elseNone# 兼容 ArcMap强制使用当前表名iftbl is None: tblr%s% arcpy.Describe(RWEQ_xh_ly.tif).catalogPath# 这块需要将 RWEQ_xh_ly.tif进一步探索SearchCursor这个功能感觉没有啥具体的用处能算xy和对应的面积。importarcpy fcc:/data/base.gdb/well# For each row, print the Object ID field, and use the SHAPEAREA# token to access geometry propertieswitharcpy.da.SearchCursor(fc,[OID,SHAPEAREA])ascursor:forrowincursor:print(fFeature{row[0]}has an area of{row[1]})进一步探索和Describe的相关属性# 1.使用键值访问特定属性。importarcpy pathC:\\Data\\Venice.gdb\\VeniceStructuresdescarcpy.da.Describe(path)field_names[field.nameforfieldindesc[fields]]ifYEAR_BUILTnotinfield_names:arcpy.management.AddField(path,YEAR_BUILT,SHORT)# 2.显示返回的 Describe 字典以查看所有可用属性。importarcpyfrompprintimportpprint pathC:\\Data\\Venice.gdb\\VeniceStructuresdescarcpy.da.Describe(path)pprint(desc)需要进一步探索的问题如何进行给定的字段进行排序这个很重要又或者说当矢量的时候怎么处理呢
RELATED

相关推荐

Bolt+Cursor实战:从零构建AI语音助手与播客应用

Bolt+Cursor实战:从零构建AI语音助手与播客应用

1. 从“写代码”到“说需求”:AI 编程工具链到底改变了什么过去两年,我身边不少做产品的朋友都经历过一种很割裂的状态:脑子里有个很具体的想法,比如“我想做一个能实时对话的语音助手”或者“我想做一个自动生成播客节目的工具”…

📅 2026/10/19 11:47:58
AI影视工业化:从工具辅助到流程重构的范式迁移

AI影视工业化:从工具辅助到流程重构的范式迁移

1. “Utopai Studios”不是真实公司,但这个标题暴露了AI影视工业化的真实拐点 你刷到这个标题时,第一反应可能是:又一家蹭AI热度的PPT公司?还是某家新成立的创业团队在造势?其实都不对。这个标题里最值得深挖的&#x…

📅 2026/10/19 11:47:58
MySQL子查询性能优化实战:从慢查询到秒回的完整指南

MySQL子查询性能优化实战:从慢查询到秒回的完整指南

1. 从一段真实业务需求说起:子查询到底解决什么问题前几天排查一个线上慢查询,业务方丢过来一段SQL,说页面加载要七八秒,用户快把客服电话打爆了。我先看了一眼表结构和数据量,又跑了一遍EXPLAIN,问题很快就…

📅 2026/10/19 11:47:58
MORE NEWS

更多资讯

📰

SIGTERM vs SIGKILL:Android自动化测试中如何优雅清理monkey进程

有段时间我经常要处理自动化测试设备的残留进程问题。跑完Monkey压测后,设备上偶尔会留下几个monkey进程,拖慢后续任务。一开始清理方式很粗暴,用kill -9硬杀。结果某次批量跑完测试后,新启动的任务频繁报端口冲突和日志目录被占用…

📰

MATLAB复杂网络攻击仿真:从BA网络生成到级联失效的完整实现

简介:这份MATLAB复杂网络攻击模拟源代码面向网络安全、复杂网络方向的学习者与研究人员,用于在MATLAB环境中复现网络攻击过程并分析其性能变化。包内共3个文件,包含1个m脚本、1个doc说明文档和1个txt文本,压缩包约37KB&#xff0c…

📰

服务器主动推送数据到客户端的四种方式:短轮询、长轮询、SSE与WebSocket详解

服务器主动推送数据到客户端的几种方式详解做过几年后台开发的人应该都遇到过这么个场景:客户端刚发起一次请求,服务器这边数据还没准备好,或者是数据状态一变需要立刻通知客户端,这时候传统的“请求-响应”模式就不好使了。我之前…

📰

电力系统6机30节点混合规划求解实战:建模、求解器与踩坑全记录

做电力系统优化调度的人,多半绕不开6机30节点这套经典测试系统。我去年在与这个系统规模相当的项目上正式接触混合规划求解时,最大的感触是:网上资料要么只讲数学原理,要么直接甩代码,中间那段“为什么这么建模、选哪个…

📰

拆解Iocomp源码包:工业控件绘制底细与二次开发实战

简介:这套完整源码属于 Iocomp Components v4.02 SP2,由 Iocomp 公司推出,面向工业自动化与工控界面开发人员,用于快速构建仪表、曲线、表头、实时数据显示等各类仿真控件,解决上位机界面组件选型与二次开发问题。资源…

📰

QT5结合OpenCV实现摄像头实时显示:从Mat到QImage的完整流程

简介:这套基于QT5与OpenCV的摄像头视频采集显示工程,面向需要在图形界面中实时调用USB或内置摄像头的QT开发者和计算机视觉入门者,能够快速解决从打开摄像头、逐帧读取到界面显示的完整链路问题。压缩包共9个文件、约21KB,包含QT …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬