基于ArcGIS实现陕西省1:250000比例尺地形图分幅和编号

news2024/12/1 0:47:35

1地形图的分幅与编号原理

我国1:1000000地形图的分幅采用国际1:1000000地图分幅标准,而其他比例尺地形图分幅以1:1000000比例尺地形图为基准进行分幅。每幅1:1000000地形图范围是经差6°、纬差4°;纬度60°~ 76°之间经差12°、纬差4°;纬度76°~ 88°之间经差24°、纬差4°。我国经纬度范围为:经度73.33°~135.05°, 纬度3.51°~53.33°,纬度60°以上没有需要合幅的图幅。

我国1:1000000地形图分幅如下:

在这里插入图片描述

1:1000000地形图编号:从赤道起算,每纬差4°为一行至南、北纬88°各分为22行依次用大写字母(字符码)ABC……V表示其行号:从180°经线起算,自西向东每经差6°为一列,全球分为60列,依次用阿拉伯数字(数字码)123……60表示列号。国际编号中第一位表示南、北半球,用“N”、“S”分别表示北半球、南半球。我国范围全部位于赤道以北,省略字母代码N。

我国图幅范围在经度72°~138°, 纬度0°~ 56°,包括行号A~ N共14行,列号43~53共11列。1:1000000地形图编号见图1。

1:500000~1:5000地形图的分幅均以1:1000000地形图为基础,按照规定的经差和纬差进行划分图幅,地形图的图幅范围、行列数和图幅数量关系如下图所示。
在这里插入图片描述
1:500000~ 1:5000地形图的编号均以1:1000000地形图编号为基础,采用行列编号方法。1:500000~ 1:5000地形图的图号由其所在1:1000000地形图的图号、比例尺代码和各图幅的行列号共十位码组成。1:500000~1:5000地形图编号的组成如图3所示。

在这里插入图片描述

1:1000~1:500地形图编号的组成如图6所示,图幅的行列号由3位变成了4位。

在这里插入图片描述

1:500000~1:5000各比例尺地形图比例尺代码如下表所示。
在这里插入图片描述

1:500000~1:5000各比例尺地形图行列号是将1:1000000地形图按所含各比例尺地形图的经差和纬差划分若干行和列,横行从上到下、纵行从左到右按顺序用数字表示,不足3位的前面补零。

例如如下图所示:1:1000000比例尺某图幅编号为M43,包含了4幅1:500000地形图,右下角图幅的编号为M43B002002。

在这里插入图片描述

以上主要介绍的是经纬度分幅和编号方法,其他如正方形、矩形分幅和编号方法此处不再赘述,感兴趣的可查阅国家标准GB/T13989-2012《国家基本比例尺地形图分幅和编号》。

2ArcGIS实现地形图分幅和编号

我们以陕西省行政区范围为例,基于ArcGIS实现1:250000地形图分幅和编号,并生成图幅结合表数据。

地形图分幅步骤:

1.首先在ArcMap中加载陕西省行政区划shp数据,并查看经纬度范围。

在这里插入图片描述

查看可知陕西省经纬度范围为经度105.49°~ 111.24°、纬度31.71°~39.58°。

在这里插入图片描述

2.按照数据经纬度范围,计算1:1000000地形图图幅号。

西南角:

a=[φ/4°]+1=[31.71/4]+1=7+1=8,

b=[λ/6°]+31=[105.49/6]+31=17+31=48,

东北角:

a=[φ/4°]+1=[39.58/4]+1=9+1=10,

b = [λ/6°]+31=[111.24/6]+31=18+31=49,

经过计算可知1:1000000比例尺西南角图号为H48、东北角图号为J49,1:1000000比例尺陕西省共涉及3行2列共6幅图,图号分别为H48、H49、I48、I49、J48、J49,图幅对应经度范围为102°~ 114°,纬度范围为28°~40°。

3.按照经纬度范围比例尺创建渔网。

在ArcGIS中,点击工具箱,依次点击【数据管理工具】->【要素类】->【创建渔网】。

按照规定,每幅1:1000000地形图划分为4行4列共16幅1:250000地形图,陕西省共涉及3行2列共6幅1:1000000地形图,因此1:250000地形图共划分为3x4=12行、2x4=8列共96幅图。

在创建渔网工具参数中依次设置输出路径、经纬度范围、行列数,并设置几何类型为面类型,顺便勾选创建标注点。

在这里插入图片描述

生成的渔网和标准点shp数据没有定义坐标系,使用【定义投影】工具定义和陕西省矢量范围一样的地理坐标系,结果如下图所示:
在这里插入图片描述

地形图编号步骤:

1.给标准点分别添加XY坐标字段并计算坐标值。

使用【数据管理】->【字段】->【添加字段】工具添加X坐标、Y坐标字段,设置字段类型为DOUBLE类型,然后使用计算几何求出十进制格式坐标值。

在这里插入图片描述

2.计算图幅号

网上好多教程都是将属性表导出xls表格文件,然后使用表格里面的函数分布计算出图幅号,十分麻烦而且不方便,显得就很不高级。推荐大家多多使用字段计算器功能,通过编写简单python函数的方式进行属性值计算。不仅方便,而且可以保存成函数文件重复使用。

首先添加图幅号字段,然后使用字段计算器加载提前编写好的图幅号计算函数批量计算各标准点所在图幅的图幅号。

在这里插入图片描述

计算后图幅号如下:

在这里插入图片描述

按照不同比例尺图幅编号规则,使用Python语言编写图幅号计算函数,输入比例尺、经度、纬度即可计算出该点所在对应比例尺图幅的图幅号。

函数完整代码如下:

def getMapID(scale, x, y):
    #计算100W图幅号
    x_map_size = 6
    y_map_size = 4
    a = int(y / y_map_size) + 1
    b = int(x / x_map_size) + 31
    tag = chr(a + 64)
    map_id_100W = tag + "{:02d}".format(b)

    if scale == 500000:
        x_map_size = 3
        y_map_size = 2

    if scale == 250000:
        x_map_size = 1 + 30/60
        y_map_size = 1

    if scale == 100000:
        x_map_size = 30/60
        y_map_size = 20/60

    if scale == 50000:
        x_map_size = 15/60
        y_map_size = 10/60

    if scale == 25000:
        x_map_size = 7/60+30/3600
        y_map_size = 5/60

    if scale == 10000:
        x_map_size = 3/60+45/3600
        y_map_size = 2/60+30/3600

    if scale == 5000:
        x_map_size = 1/60+52.5/3600
        y_map_size = 1/60+15/3600

    if scale == 2000:
        x_map_size = 37.5/3600
        y_map_size = 25/3600

    if scale == 1000:
        x_map_size = 18.75 / 3600
        y_map_size = 12.5 / 3600

    if scale == 500:
        x_map_size = 9.375 / 3600
        y_map_size = 6.25 / 3600

    #计算50W在100W图幅中的行列号
    c = int(4 / y_map_size) - int(divmod(y, 4)[1] / y_map_size)
    d = int(divmod(x, 6)[1] / x_map_size) + 1
    
    if scale == 1000000:
        map_id = map_id_100W
    if scale == 500000:
        map_id = map_id_100W + "B{:03d}{:03d}".format(c,d)
    if scale == 250000:
        map_id = map_id_100W + "C{:03d}{:03d}".format(c,d)
    if scale == 100000:
        map_id = map_id_100W + "D{:03d}{:03d}".format(c,d)
    if scale == 50000:
        map_id = map_id_100W + "E{:03d}{:03d}".format(c,d)
    if scale == 25000:
        map_id = map_id_100W + "F{:03d}{:03d}".format(c,d)
    if scale == 10000:
        map_id = map_id_100W + "G{:03d}{:03d}".format(c,d)
    if scale == 5000:
        map_id = map_id_100W + "H{:03d}{:03d}".format(c,d)
    if scale == 2000:
        map_id = map_id_100W + "I{:03d}{:03d}".format(c,d)
    if scale == 1000:
        map_id = map_id_100W + "J{:04d}{:04d}".format(c,d)
    if scale == 500:
        map_id = map_id_100W + "K{:04d}{:04d}".format(c,d)

    return map_id

3.分幅数据挂接图幅号

首先给生成的分幅数据添加图幅号字段,然后在目录中分幅数据上右击使用【连接和关联】工具基于FID字段连接标注点图层。

在这里插入图片描述

使用字段计算器将标注点图层的图幅号计算到分幅图层,然后取消连接。

在这里插入图片描述

4.陕西省图幅结合表生成

加载陕西省行政区数据,按位置进行筛选去除不涉及图幅,然后将选中的图幅导出即可生成陕西省1:250000比例尺标准分幅图幅结合表数据。

在这里插入图片描述

图幅结合表结果如下:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/527688.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构之数组对栈的实现

目录 1.什么是栈 2.栈的基本操作 3.栈的实现 1.结构体与函数接口 2.初始化栈 3.销毁栈 4.入栈 5.出栈 6.返回栈元素数量大小 7.判空 8.打印栈 1.什么是栈 栈是一种特殊的线性表,其中只允许固定的一端进行插入与删除,进行输出插入删除的那一端我…

振幅调制器【Multisim】【高频电子线路】

目录 一、实验目的与要求 二、实验仪器 三、实验内容与测试结果 1、观测集电极调幅器输出信号波形,测量调幅度 2、观察集电极调幅器输出信号频谱(Fourier analysis) 3、改变V1幅度为0.8Vpk,观测输出波形,说明原…

MySQL函数详细

♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️树高千尺,落叶归根人生不易&…

设计模式之【享元模式】,共享单车火起来并不是没有原因的

文章目录 一、什么是享元模式1、享元模式的角色2、享元模式应用场景3、享元模式的内部状态和外部状态4、享元模式的优缺点5、享元模式跟单例的区别6、享元模式跟缓存的区别7、享元模式注意事项及细节 二、实例1、享元模式一般写法2、俄罗斯方块案例3、购票业务案例4、数据库连接…

win2012/win2016/win2019 IIS部署SSL证书访问https(支持多站点)

请根据操作系统、站点部署数量选择以下相应参考文档,文档仅供参考。 A、windows2008iis7环境SSL部署https单/多站点 B、linux系统SSL部署https单/多站点 C、windows2003系统SSL单站点部署https 部署https(ssl)后设置301跳转将http跳转到https 亚数机房香港IP部…

(2022 EMNLP)(SEMGraph)将情感知识和眼动结合到一个图架构中

论文题目(Title):SEMGraph: Incorporating Sentiment Knowledge and Eye Movement into Graph Model for Sentiment Analysis 研究问题(Question):基于眼动的情感分析,旨在绘制基于眼动的情感关…

【Java多线程编程】解决线程的不安全问题之synchronized关键字

前言: 当我们进行多线程编程时候,多个线程抢占系统资源就会造成程序运行后达不到想要的需求。我们可以通过 synchronized 关键字对某个代码块或操作进行加锁。这样就能达到多个线程安全的执行,因此我把如何使用 synchronized 进行加锁的操作…

PVE安装高大全固件

PVE安装高大全的时候,把IMG挂在光驱上,发现无法运行。 后来明白了,openwrt的镜像直接就是个系统磁盘镜像, 没有引导启动项和安装程序,度娘和CSDN后才知道。 ———— 创建个虚拟机,按照引导创建虚拟机即…

女网红靠GPT-4交1000+男友,聊天按分钟收费,一周收入50万

来源 | 量子位 作者 | 鱼羊 注意看,这个女人叫卡琳,靠着GPT-4,她现在同时谈着1000男朋友。 对,我知道事情听上去有些离谱。就连GPT-4自己,都直呼“我一个AI都觉得非常不常见”。 但是先别急,因为更让人挠头…

一个用于Allen脑图谱基因数据的工具箱|abagen详细使用教程-获取基于脑区的基因表达矩阵(脑区*gene)

艾伦人类脑图谱(Allen Human Brain Atlas) 艾伦人类脑图谱是一个由艾伦脑科学研究所(Allen Institute for Brain Science)开发的在线基因表达图谱数据库,旨在提供人类大脑各个区域的细胞类型和基因表达信息。这个数据库包含了人类全基因组微…

工业识别与定位系统源码解决方案

工厂人员定位系统源码,工业领域定位系统源码 近年来人员定位系统在工业领域的发展势头迅猛,工业识别与定位成为促进制造业数字化的关键技术。通过实时定位可以判断所有的人、物、车的位置。实时定位系统要适用于复杂工业环境,单一技术是很难…

tinyWebServer 学习笔记——二、HTTP 连接处理

文章目录 一、基础知识1. epoll2. 再谈 I/O 复用3. 触发模式和 EPOLLONESHOT4. HTTP 报文5. HTTP 状态码6. 有限状态机7. 主从状态机8. HTTP_CODE9. HTTP 处理流程 二、代码解析1. HTTP 类2. 读取客户数据2. epoll 事件相关3. 接收 HTTP 请求4. HTTP 报文解析5. HTTP 请求响应 …

OpenText 数据迁移解决方案的工作原理及其优势

OpenText Migrate 让迁移变得简单 选择正确的迁移技术您所需要了解的事情 无痛迁移 当谈到停机的常见原因时,灾难往往会得到最多的关注。 但灾难只是导致停机的一小部分原因。 计划的停机时间造成了资源的真正消耗,许多纯粹为灾难恢复应运而生的工具和…

【Simulink】 0基础入门教程 P2 常用模块的使用介绍

目录 常用模块介绍 (1) relational operator,用于数值的大小比较 (2) compare to constant,用于和数值做大小比较 (3)logical operator,用于逻辑运算 与运算 或运算 非运算 (4) switch,类似于C语言中的if 语句&#xff0c…

stm32 MCU液晶TM1622 HT1622驱动调试

本文使用的例程软件工程代码如下 (1条消息) stm32MCU液晶TM1622HT1622驱动调试,源代码,实际项目使用资源-CSDN文库 HT1622/HT1622G/TM1622是一款常用的LCD驱动芯片 TM1622/HT1622厂家不一样,但是芯片功能基本上一直,硬件上基本…

『C++』C++的类型转换

「前言」文章是关于C特殊类型转换 「归属专栏」C嘎嘎 「笔者」枫叶先生(fy) 「座右铭」前行路上修真我 「枫叶先生有点文青病」 「每篇一句」 有些事不是看到了希望才去坚持, 而是因为坚持才会看到希望。 ——《十宗罪》 目录 一、C语言中的类型转换 二、为什么C需…

tinyWebServer 学习笔记——三、定时器处理非活跃链接

文章目录 一、基础知识1. 概念2. API3. 信号处理机制 二、代码解析1. 信号处理函数2. 信号通知逻辑3. 定时器4. 定时器容器5. 定时任务处理函数6. 使用定时器 参考文献 一、基础知识 1. 概念 非活跃:指客户端与服务器建立连接后,长时间不交换数据&…

第二章 数据的表示和运算

1.进位计数制 其他进制转十进制 二进制<——> 八进制&#xff0c;十六进制 (注意&#xff1a;小数部分也是从右往左算十进制——>任意进制&#xff08;整数部分&#xff09; 十进制——>任意进制&#xff08;小数部分&#xff09; 十进制转二进制&#xff08;拼凑…

【gitee流水线实现自动化部署】

首先进入自己的gitee仓库 创建流水线 配置基本信息 名称标识 事件监听 -----触发条件 主要是任务排编内 vue前端则选择node构建 这些就是字面意思 若无特殊需求 按照默认的即可 构建完之后添加新任务 主机部署 选择部署 主机部署 添加主机组 新建主机组 自主导入 之后配…

配置Git

1.安装Git git官网 2.配置Git 在点击桌面上的Git Bash快捷图标中输入&#xff1a; 配置用户名&#xff1a; git config --global user.name "username" //&#xff08; "username"是自己的账户名&#xff0c;&#xff09; 配置邮箱&#xff1a; git…