【GIS技术】Shp矢量图斑数据的四至点坐标或四至坐标计算

经常有从事gis相关、地信相关行业的朋友或者是需要对图斑矢量进行四至坐标 的计算的时候,按照各类搜索引擎或者是教学文章中的教学步骤求出来的四至坐标是**错的。**特别是比如林业图斑求四至点、农田四至点等等。

错的原因在于很多文章中教学的四至坐标实际上指的是图斑矢量最东最西的点做一条垂线与图斑矢量最南最北的点做一条水平线相交而成的矩形的四个顶点坐标。这样的矩形我们称之为,图斑矢量最小外接矩形,这四个点称之为图斑矢量最小外接矩形的四至值,也叫范围值。

而实际上我们真正 要求的四至点是图斑上最东/南/西/北的那个点的坐标值。这四个点才称之为是俗称的四至点。

今天我们就来分享一下图斑矢量最小外接矩形的四至值和图斑的四至值的区别和怎么利用gis求。

有需要求四至点需要帮忙的话可以添加公众号下方联系方式找小编进行咨询。

图斑矢量最小外接矩形的四至值(范围值)

上图图中红框为图斑矢量最小外接矩形

以清远市为例,我们在图斑属性表里加上东至、南至、西至、北至四个字段

然后利用以下代码对四个字段进行计算

复制代码
东至:!shape.extent.xmax!

南至:!shape.extent.ymin!

西至:!shape.extent.xmin!

北至:!shape.extent.ymax!

就可以得到计算结果

这个时候求得的实际上是图斑矢量最东最西的点做一条垂线与图斑矢量最南最北的点做一条水平线相交而成的矩形的四条边的范围值。

而东至&南至、东至&北至、南至&西至、北至&西至所得出的四个点就是图斑矢量最小外接矩形的四至值。

也就是以下图形里矩形的四个顶点。

真正的图斑矢量的四至点坐标

图中四个绿色圈标注的才是图斑真正的四至点

在这里,我们要用到的就是arcgis中的代码功能,输入代码直接求出四至点坐标。

代码如下

复制代码
infcs='清远市'arcpy.AddField_management(infcs,"dzd","TEXT","","","100",u"东至","NULLABLE")arcpy.AddField_management(infcs,"nzd","TEXT","","","100",u"南至","NULLABLE")arcpy.AddField_management(infcs,"xzd","TEXT","","","100",u"西至","NULLABLE")arcpy.AddField_management(infcs,"bzd","TEXT","","","100",u"北至","NULLABLE")infc=arcpy.UpdateCursor(infcs)for row in infc:      for part in row.getValue("shape"):            max_x, max_xy,max_y,max_yx=0,0,0 ,0            min_xy,min_y,min_yx,min_x=0,9876543210,0,9876543210            for pnt in part:                  if pnt:                        if pnt.X > max_x:                             max_x=pnt.X                             max_xy = pnt.Y                        if pnt.Y > max_y:                             max_y = pnt.Y                             max_yx= pnt.X                        if pnt.X <min_x:                             min_x=pnt.X                             min_xy = pnt.Y                        if pnt.Y <min_y:                             min_y = pnt.Y                             min_yx= pnt.X                  else:                       pass            del part,pnt      arcpy.AddMessage(str(max_x)+","+str(max_xy))      row.setValue("dzd",str(max_x)+","+str(max_xy))      row. setValue("bzd",str(max_yx)+","+str(max_y))      row.setValue("xzd",str(min_x)+","+str(min_xy))      row.setValue("nzd",str(min_yx)+","+str(min_y))      infc.updateRow(row)del infc,row

代码计算后得到以下右侧四个字段:

这四个字段对应的就是东西南北四至点,也就是图斑里最东/南/西/北的点。

其他求四至点坐标的方式

除开一些特殊的工具可以直接求出四至点外,我们也可以通过转面为点然后进行进一步的排序筛选的方式求四至点,但是这个方式繁琐而不一定精确。

如果说有需要求四至点需要帮忙的话可以添加公众号下方联系方式找小编进行咨询。

免费数据获取方式

在公众号下方的功能栏-数据目录 里**"免费资源"**

在公众号下方的联系我们 添加小编微信**,** 于朋友圈置顶 获取目录链接

点个点赞 +再看再走哦谢谢!

公众号新功能

目前公众号新增以下等功能

1、处理GIS出图、** Python制图**、** 区位图**、** 土地利用现状图**、** 土地利用动态度和重心迁移图**等等****

2、核密度分析**、**** 网络od分析****、**** 地形分析****、**** 空间分析**等等****

3、地理加权回归、** 地理探测器、生态环境质量指数、地理加权回归模型影响因素分析、计算土地利用动态度**等等****

4、加权求和模型、** 改进TOPSIS模型**、** 耦合协调度模型**、** 相对发展度模型协调影响力模型**、标准椭圆模型等等

有需要的小伙伴可以添加公众号下方联系方式找小编进行咨询

相关推荐
2601_962966647 小时前
会计岗位进阶指南:8 张国家认可证书阶梯解析
大数据·数据分析
CNSSIRD数据库8 小时前
中国创新型中小企业研究数据库2022-2026
大数据·数据库·数据分析·论文笔记
编程风暴9 小时前
3类人群的数据分析实习类型选择+4条选错红线
java·前端·数据分析
编程风暴10 小时前
数据分析实习投递渠道实操模板:回复率对比+匹配度自检表+case-by-case机制
大数据·数据挖掘·数据分析
Patrick在香港10 小时前
Python依赖管理从踩坑到选型:pip/poetry/uv四种方案全面实测
开发语言·python·数据分析·scikit-learn·ai编程·pip·uv
lkx0978810 小时前
01-数据分析入门-Pandas实战
数据挖掘·数据分析·pandas
临床数据科学和人工智能兴趣组11 小时前
R Markdown 如何写
人工智能·机器学习·数据分析·r语言·r语言-4.2.1
大数据魔法师1 天前
【最全详解】DuckDB Python 全套 API 语法、参数与实战用法(零基础全覆盖)
python·数据分析
大数据魔法师1 天前
Python 网络请求库 curl_cffi:从入门到实战,如何规避网站指纹检测
python·数据分析
Highcharts.js1 天前
五大痛点拖慢数据分析平台决策效率:Highchart可视化与AI分析解决方案解析
人工智能·信息可视化·数据分析·数据可视化·highcharts·ai可视化分析