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

news/2024/12/23 8:09:52/

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 = 6y_map_size = 4a = int(y / y_map_size) + 1b = int(x / x_map_size) + 31tag = chr(a + 64)map_id_100W = tag + "{:02d}".format(b)if scale == 500000:x_map_size = 3y_map_size = 2if scale == 250000:x_map_size = 1 + 30/60y_map_size = 1if scale == 100000:x_map_size = 30/60y_map_size = 20/60if scale == 50000:x_map_size = 15/60y_map_size = 10/60if scale == 25000:x_map_size = 7/60+30/3600y_map_size = 5/60if scale == 10000:x_map_size = 3/60+45/3600y_map_size = 2/60+30/3600if scale == 5000:x_map_size = 1/60+52.5/3600y_map_size = 1/60+15/3600if scale == 2000:x_map_size = 37.5/3600y_map_size = 25/3600if scale == 1000:x_map_size = 18.75 / 3600y_map_size = 12.5 / 3600if scale == 500:x_map_size = 9.375 / 3600y_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) + 1if scale == 1000000:map_id = map_id_100Wif 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.ppmy.cn/news/70430.html

相关文章

H5性能测试怎么做?这些关键指标你得搞清楚

目录 01、Http相关 02、组件是否压缩 03、图片格式和大小是否合适 04、CSS放在顶部 05、JS放在底部 06、JS &CSS压缩 07、是否添加缓存 08、避免非200返回值 09、使用CDN 03、WebView相关 学习资源分享 软件测试面试小程序 01、Http相关 01、Http请求个数 有…

调用系统分享图片,多图到微信二次分享无效解决

直接上代码&#xff1a;List<String> files为文件路径列表public static void shareMoreWxFile(Context context, List<String> files) {try {ArrayList uriArrayList new ArrayList<Uri>();for (String path : files) {File file new File(path);if (file…

JavaWeb13-JavaScript 开发利器之 jQuery-02

1. jQuery 的 DOM 操作 1.1 查找节点, 修改属性 查找属性节点: 查找到所需要的元素之后, 可以调用 jQuery 对象的 attr() 方法来获取它的各种属性值 查找节点-应用实例 element-attribute.html <!DOCTYPE html> <html lang"en"> <head><met…

Spark常见报错

一.org.apache.spark.shuffle.FetchFailedException: Connection from /xxx:7337 closed 背景&#xff1a;shuffle过程包括shuffle read和shuffle write两个过程。对于spark on yarn&#xff0c;shuffle write是container写数据到本地磁盘(路径由core-site.xml中hadoop.tmp.di…

milvus bootcamp FAST API使用简记

0 引言 前面写了几篇记录&#xff0c;都是在记录解决了哪些基本问题。在经过一系列铺垫之后&#xff0c;终于又来到milvus bootcamp这个示例项目面前&#xff0c;继续摸索其如何使用。 1 milvus版本升级 此bootcamp中提供的milvus的docker版本过低&#xff0c;因此我又从其他…

数据结构与算法:编程中的基本功

I. 数据结构与算法的重要性 1.1 数据结构与算法的定义 数据结构,如其名,是用来存储和组织数据的结构。它们可以用于实现高效的数据访问和操作。常见的数据结构包括数组、链表、栈、队列、哈希表、树和图等。 算法,是为解决特定问题而详细规定的一系列操作步骤。它可以用于…

Java进阶-常用API(时间包装类)

第一章 Date类 1.1 Date概述 java.util.Date类 表示特定的瞬间&#xff0c;精确到毫秒。 继续查阅Date类的描述&#xff0c;发现Date拥有多个构造函数&#xff0c;只是部分已经过时&#xff0c;我们重点看以下两个构造函数 public Date()&#xff1a;从运行程序的此时此刻到…

MapReduce框架原理:7.Join多种应用

Reduce Join工作原理 Map端的主要工作:为来自不同表或文件的key/value对&#xff0c;打标签以区别不同来源的记录。然后用连接字段作为key&#xff0c;其余部分和新加的标志作为value&#xff0c;最后进行输出。 Reduce端的主要工作:在Reduce端以连接字段作为key的分组已经完成…