arcpy泰森多边形法计算面雨量工具
在水利部门或气象部门中面平均降水量是降雨中很重要的指标,传统计算多用使用算术平均法,泰森多边形法和等值线法,后两种计算方法在传统的计算中很难计算,但使用用GIS十分方便计算,可以是任意区域的任意一场降雨。
一、泰森多边形介绍:
荷兰气候学家A·H·Thiessen提出了一种根据离散分布的气象站的降雨量来计算平均降雨量的方法,即将所有相邻气象站连成三角形,作这些三角形各边的垂直平分线,于是每个气象站周围的若干垂直平分线便围成一个多边形。用这个多边形内所包含的一个唯一气象站的降雨强度来表示这个多边形区域内的降雨强度,并称这个多边形为泰森多边形。
特点:
1、每个泰森多边形内仅含有一个离散点数据;
2、泰森多边形内的点到相应离散点的距离最近;
3、位于泰森多边形边上的点到其两边的离散点的距离相等。
二、在ArcGIS中利用泰森多边形法分析流域降雨量步骤(长江上游为例)没有使用工具:
1、首先在ArcMap中加长江流域分区和雨量站点的.shp格式的数据(必须是.shp格式的)。若雨量站点信息为.xls或.txt格式的,则应该将其加载后先转成.shp格式,再进行以下的操作。加载数据结果如图:
2、在ArcToolbox工具中选择Analysis Tools—Proximity—Create Thiessen Polygons工具,打开Create Thiessen Polygons窗口,在Input Features中输入站点数据:雨量站点,在Output Features Class中设置输出路径,在Output Fields(optional)中选择All(即输出所有属性字段)。如图所示:
然后设置其环境,即选择Create Thiessen Polygons窗口下面的Environments…按钮,进入环境设置窗口
选择General Settings进行设置:主要设置包括两项,第一项对Output Coordinate System设置,选取流域面矢量数据以和其保持一致的坐标系,此处选择Same as Layer “流域分区图”;第二项对Extent进行设置,设置生成泰森多边形的四周边缘,此处选择Same as Layer 流域分区图,其余保持默认。如图所示:
选择OK后,Create Thiessen Polygons窗口再次选择OK,则生成的泰森多边形如图所示:
3、因为需要对江流域范围内的每一块多边形的面积进行统计,所以对新生成的泰森多边形数据进行裁剪,由于是矢量数据,所以采用ArcToolbox工具中的Analysis Tools—Extract—Clip工具进行裁剪,设置如图:
点击OK,生成的Clip后的图如下图所示:
为了统计每一多边形的面积,打开Clip后的数据的属性表,并添加属性数据:Area计算面积,在excel中计算出面平均降水量。
三、以上是熟悉GIS工具的专业人员可以很快计算出区域泰森多边形面平均降水量,量对于水利或气象专业的人员不一定熟悉ARCGIS,以下是本人通过arcpy编写的小程序,只要有降水量站点及降水值和区域面积图就可以直接计算出面平均降水量。工具如下,选择降水量站点图,带有降水量数据字段。
1、添加降水量图层,选择年降水量字段。
2、添加区域图层,如果流域中有多个行政区选择行政区名称字段
3、点确定之后就计算出区域平均降水量如下表,流域内每个县年平均降水量计算完成
4、arcpy泰森多边形法计算面雨量工具界面如下
5、arcpy代码如下
# -*- coding: utf-8 -*-
import arcpy
Rian_stion = arcpy.GetParameterAsText(0)
Xzfq = arcpy.GetParameterAsText(1)
Outinter_Thiessen = arcpy.GetParameterAsText(2)
filedname = arcpy.GetParameterAsText(3)
outtable = arcpy.GetParameterAsText(4)
summation = arcpy.GetParameterAsText(5)
outshp = ""
Outclp_Thiessen = ""
Thiessen = Outinter_Thiessen
outshp = Outinter_Thiessen
xzq_areas = Thiessen
# Process: 创建泰森多边形
arcpy.CreateThiessenPolygons_analysis(Rian_stion, outshp, "ALL")
# Process: 裁剪
arcpy.Clip_analysis(outshp, Xzfq, Outclp_Thiessen, "1 Meters")
# Process: 相交
arcpy.Intersect_analysis("# #;# #", Outinter_Thiessen, "ALL", "1 Meters", "INPUT")
# Process: 添加字段
arcpy.AddField_management(Outinter_Thiessen, "Thiessen_Area", "FLOAT", "", "", "", "泰森多边形面积", "NULLABLE", "NON_REQUIRED", "")
# Process: 计算字段
arcpy.CalculateField_management(Thiessen, "Thiessen_Area", "!Shape.area!/1000000", "PYTHON", "")
# Process: 添加字段 (2)
arcpy.AddField_management(Outinter_Thiessen, "Pa", "FLOAT", "", "", "", "降水量", "NULLABLE", "NON_REQUIRED", "")
# Process: 计算字段 (2)
arcpy.CalculateField_management(outshp2, "Pa", "float(!字段名!)*!Thiessen_Area!", "PYTHON", "")
# Process: 汇总统计数据
arcpy.Statistics_analysis(outshp3, outtable, "Pa SUM", summation)
arcpy泰森多边形法计算面雨量工具相关推荐
- 用泰森多边形法求子流域气象数据
用泰森多边形法求子流域气象数据 (matlab) 需要先用Arcgis画泰森多边形并求出各面积占比(权重),然后用该matlab脚本计算. 面积占比所在Excel文件格式:三列,分别为站点编号.子流域 ...
- 用递归法计算斐波那契数列的第n项
斐波纳契数列(Fibonacci Sequence)又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1, ...
- crc16modbus查表法_查表法计算CRC16校验值
/******************************************************************************* * Copyright (c) 201 ...
- 【运筹学】表上作业法 ( 示例 | 使用 “ 闭回路法 “ 计算检验数判定最优解 )
文章目录 一.运输规划问题 二.使用 " 闭回路法 " 计算检验数判定最优解 一.运输规划问题 运输规划问题 : B1\rm B_1B1 B1\rm B_1B1 B1\rm B ...
- 电动力学每日一题 2021/10/15 Fourier变换法计算均匀电流密度产生的磁场
电动力学每日一题 2021/10/15 Fourier变换法计算均匀电流密度产生的磁场 无限长均匀电流 无限长圆柱面均匀电流密度 无限长均匀电流 假设z轴上有一根非常细的电线,携带均匀电流I0I_0I ...
- 电动力学每日一题 2021/10/13 用Fourier变换法计算静止电荷产生的电场
电动力学每日一题 2021/10/13 用Fourier变换法计算静止电荷产生的电场 静止点电荷 具有均匀线密度的静止电荷产生的电场 具有均匀面密度的静止电荷产生的电场 用Fourier变换法计算电场 ...
- 弹性地基梁板法计算原理_建筑混凝土结构设计和计算方法,老师傅总结:其原理就是这么简单...
一.结构计算应注意的问题 1.采用程序进行结构整体计算时,对计算参数及计算假定选用不当,影响了计算结果的准确性.可靠性,甚至影响了结构的安全性. 1)计算中对是否点取"对所有楼层强制采用刚性 ...
- 熵值法计算权重有异常值_指标权重确定方法 1-熵值法
在信息论中,熵是对不确定性或随机性的一种度量,不确定性越大,熵值就越大,不确定性越小,熵值就越小.不确定性越大,表明随机性越大,数据越离散,则包含的信息就越大,在确定权重的时候往往就越小. 熵值法确定 ...
- lisp方格网法计算土方量_CAD土方软件方格网法与三角网法相结合,准确计算土方量...
在场地平整土方测量中,方格网法和三角网法是用得最多的两种方法,它们各有优点,又各有缺点:用方格网法做的土方成果直观易懂,是绝大部分客户的首选方法,但传统的方格网法测量土方量,是在特定位置(方格点上)测 ...
最新文章
- python包引用问题
- 算法训练营12-动态规划
- plsql怎么用字段查表明_如何将oracle表中的字段类型、字段注释说明、字段名一起查询出来...
- [ js ] 可否用多线程的思路,解决大数量数据的性能问题?
- 张正友标定法公式详细推导
- 数据分析学习笔记4-----处理缺失数据
- 【渝粤教育】电大中专审计原理与实务 (2)作业 题库
- Hibernate之组件映射
- SharePoint 使用ECMAscript对象模型来读取帖子列表
- onCreateView中加载大位图
- SQL常用增删改查语句
- 图像算术编码 matlab,实验二:算术编码及MATLAB实现.doc
- 国内计算机论文期刊,国内都有哪些计算机领域的投稿期刊
- 本地通过secureCRT连接虚拟机中CentOS7
- 认识心理学上的自我界限(学习记录)
- 分门别类刷PAT甲级
- 在一台服务器安装多个MySQL数据库实例
- ubuntu装机比做_与众不同总比做品牌设计案例研究更好
- 唐骏的成功——可以复制的成功
- Pr——2020版本对导入视频如何编辑的操作
热门文章
- 网站开发进阶(五十七)纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)
- 基于链表的简单选择排序
- H3C交换机限制远程(HTTP、HTTPS、Telnet、SSH)登陆
- 9.人工智能原理-深度学习:神奇的DeepLearning
- 云队友丨如果说认知决定了人生,那又是什么决定了认知呢?
- 七次作业-团队作业——选题报告和需求规格
- mc服务器新手装备修改,[娱乐]Intensify3.0 —— 装备强化[强化你的自定义装备] 最新重制版[全版本]...
- 把树莓派改造成NAT软路由器
- python求基本勾股数_第一章:勾股数组(1)
- Linux(CentOS8)系统下的/var/www/html目录与httpd服务