【ArcGIS自定义脚本工具】批量根据矢量文件对应范围的矩形面要素

本文介绍了一款用于批量生成扩大范围矩形边界面要素文件的工具。该工具可以根据现有矢量文件(.shp)的范围生成扩大后的矩形边界面要素文件,并保持坐标系一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


系列文章目录: ArcGIS自定义脚本工具


一、功能介绍

批量根据现有的要素(点、线、面)矢量文件(.shp)的范围生成扩大范围的矩形边界面要素文件(.shp)。扩大后面要素的坐标系与输入保持一致。输出矢量文件名格式(E_输入文件名.shp)

在这里插入图片描述


二、脚本代码

"""
@File    : CreateRetangleSHP.py
@Author  : salierib
@Time    : 2022/7/2 10:47
@QQ group: 582151631
@Version:
"""
import arcpy
import os
import arcgisscripting

shps = arcpy.GetParameterAsText(0)
outdir = arcpy.GetParameterAsText(1)
spacing = arcpy.GetParameterAsText(2)

shps = shps.split(";")
spacing = float(spacing)


def extents(fc):
    extent = arcpy.Describe(fc).extent
    west = extent.XMin
    south = extent.YMin
    east = extent.XMax
    north = extent.YMax
    return west, east, south, north


def text_create(out_txt_path, msg):
    txt_file = open(out_txt_path, 'w')
    txt_file.write(msg)


def rec_msg(xMin, yMin, xMax, yMax, spacing=0.2):
    x1, y1 = xMin - spacing, yMin - spacing
    x2, y2 = xMin - spacing, yMax + spacing
    x3, y3 = xMax + spacing, yMax + spacing
    x4, y4 = xMax + spacing, yMin - spacing
    return x1, y1, x2, y2, x3, y3, x4, y4


for shp in shps:
    out_corr = arcpy.Describe(shp).spatialReference
    basename = os.path.basename(shp)[:-4]
    xMin, xMax, yMin, yMax = extents(shp)
    x1, y1, x2, y2, x3, y3, x4, y4 = rec_msg(xMin, yMin, xMax, yMax,spacing=spacing)
    msg = """Polygon
0 0
0 {0} {1} 1.#QNAN 1.#QNAN
1 {2} {3} 1.#QNAN 1.#QNAN
2 {4} {5} 1.#QNAN 1.#QNAN
3 {6} {7} 1.#QNAN 1.#QNAN
4 {0} {1} 1.#QNAN 1.#QNAN
END""".format(x1, y1, x2, y2, x3, y3, x4, y4, x1, y1)

    out_txt = os.path.join(outdir, "E_%s.txt" % basename)
    text_create(out_txt, msg)

    gp = arcgisscripting.create()
    inSep = "."
    out_shp = os.path.join(outdir, "E_%s.shp" % basename)
    gp.CreateFeaturesFromTextFile(out_txt, inSep, out_shp, out_corr)

三、工具参数

在这里插入图片描述


四、工具界面

在这里插入图片描述


五、使用例

1、根据陕西省的行政边界范围,生成扩大0.5°后的矩形边界范围
在这里插入图片描述
参数spacing设置为0.5,意味着矩形边界在根据原有的矢量文件范围向外扩展0.5°,运行前后的矢量文件如下所示:
在这里插入图片描述
2、根据宁夏在utm分带上的行政边界范围,生成扩大10km后的矩形边界范围
在这里插入图片描述
参数设置如下:
加粗样式
这里参数spacing设置为10000,意味着矩形边界在根据原有的矢量文件范围向外扩展10000m,即10km,运行前后的矢量文件如下所示:
在这里插入图片描述

在这里插入图片描述

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Salierib

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值