如何使用Python和ArcGIS绘制武汉市的板块分布图?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1099个文字,预计阅读时间需要5分钟。
使用Python和ArcGIS绘制武汉板块地图:
1. 数据准备:确保拥有武汉板块的地理数据,例如.shp文件。
2.代码示例:
pythonimport arcpy设置工作环境arcpy.env.workspace=path_to_your_data
输入和输出文件路径input_shp=板块.shpoutput_map=武汉板块地图.pdf
创建地图文档mxd=arcpy.mapping.MapDocument(C:/ArcGIS/ArcMap/Template.mxt)
添加数据框df=arcpy.mapping.ListDataFrames(mxd)[0]arcpy.mapping.AddLayer(df, arcpy.mapping.Layer(input_shp), AUTO_ARRANGE)
保存地图文档mxd.saveACopy(output_map)
关闭地图文档mxd.close()
3.代码解读:
- 导入arcpy模块。 - 设置工作环境路径。 - 设置输入和输出文件路径。 - 创建地图文档,这里使用了一个模板。 - 添加数据框并设置图层。 - 保存地图文档为PDF格式。 - 关闭地图文档。通过以上步骤,你可以使用Python和ArcGIS绘制武汉板块地图。
python for ArcGIS 绘制武汉市板块地图
- 原数据
- 完整代码
- 代码解读
利用python的arcpy模块绘制出武汉市板块地图如下
原数据
完整代码
# -*- coding: utf-8 -*-"""
Project_name:drawing plate for Chengdu
@author: 帅帅de三叔
Created on Wed Oct 30 15:16:44 2019
"""
import sys
arcpy_path = [r'D:\Python27\ArcGIS10.6\Lib\site-packages',
r'D:\Program Files (x86)\ArcGIS\Desktop10.6\arcpy',
r'D:\Program Files (x86)\ArcGIS\Desktop10.6\bin',
r'D:\Program Files (x86)\ArcGIS\Desktop10.6\ArcToolbox\Scripts']
sys.path.extend(arcpy_path)
stdi,stdo,stde=sys.stdin,sys.stdout,sys.stderr
reload(sys) #通过import引用进来时,setdefaultencoding函数在被系统调用后被删除了,所以必须reload一次
sys.stdin,sys.stdout,sys.stderr=stdi,stdo,stde
sys.setdefaultencoding('utf-8')
import arcpy #导入地理处理模块
from arcpy import env #导入环境类
env.workspace=r"D:\python for ArcGIS\绘制武汉板块"
env.overwriteOutput=True #是否开启复写
import pandas as pd #导入数据分析模块
plate_data=pd.read_excel(u"武汉板块边界.xlsx") #读取板块数据
rows,cols=plate_data.shape #数据框尺寸
lng_lat=plate_data[u'边界坐标'] #经纬度数据
plate_name=plate_data[u'板块'] #板块名称
#factoryCode = arcpy.GetParameterAsText(4490) #WGS_1984_World_Mercator投影坐标系工厂代码4490,3395
#spatial_ref = arcpy.SpatialReference(factoryCode) #设置空间参考参数
spatial_ref = arcpy.SpatialReference('China Geodetic Coordinate System 2000') #China Geodetic Coordinate System 2000 or WGS 1984 World Mercator
polygonPoints=arcpy.Array() #用来存放构成多边形的折点
polygonGeometryList=[] #用来存放多边形几何对象组
for row in range(0,rows): #按行循环
points=lng_lat[row].split(";") #折点
for spot in points:
xy=spot.split(",") #折点经纬度
if len(xy)==2:
point=arcpy.Point() #几何对象,用来存放折点对象
point.id=row;point.X=float(xy[0]);point.Y=float(xy[1]) #转为点对象
polygonPoints.add(point) #构成一串折点
#print(point.id)
polygon=arcpy.Polygon(polygonPoints,spatial_ref,"","") #利用折点构造多边形带空间参考
polygonGeometryList.append(polygon) #把多边形追加到数组
polygonPoints.removeAll() #移除折点
result=arcpy.CopyFeatures_management(polygonGeometryList,r"D:\python for ArcGIS\绘制武汉板块\plate_Wuhan.shp","POLYGON")
代码解读
整个实现过程包括3步
读数,即读取板块边界经纬度数据
拆点,即采用split()函数将经纬度数据分割,构成折点
连线,即将折点连起来形成封闭多边形,即板块
若还有不明白的,可以来“三行科创”微信公众号交流群。
1,python for ArcGIS 绘制上海市板块地图
2,python for ArcGIS 绘制上海市环线地图
3,python for ArcGIS 绘制北京市板块地图
4,python for ArcGIS 绘制广州市板块地图
5,python for ArcGIS 绘制深圳市板块地图
6,python for ArcGIS 绘制成都市板块地图
7,python for ArcGIS 绘制武汉市板块地图
8,python for ArcGIS 绘制杭州市板块地图
9,python for ArcGIS 绘制重庆市板块地图
10,python for ArcGIS绘制合肥市板块地图
11,python for ArcGIS 绘制南京市板块地图
12,python for ArcGIS绘制宁波市板块地图
13,python for ArcGIS 绘制沈阳市板块地图
14,python for ArcGIS 绘制苏州市板块地图
15,python for ArcGIS 绘制天津市板块地图
16,python for ArcGIS 绘制西安市板块地图
17,python for ArcGIS 绘制郑州市板块地图
本文共计1099个文字,预计阅读时间需要5分钟。
使用Python和ArcGIS绘制武汉板块地图:
1. 数据准备:确保拥有武汉板块的地理数据,例如.shp文件。
2.代码示例:
pythonimport arcpy设置工作环境arcpy.env.workspace=path_to_your_data
输入和输出文件路径input_shp=板块.shpoutput_map=武汉板块地图.pdf
创建地图文档mxd=arcpy.mapping.MapDocument(C:/ArcGIS/ArcMap/Template.mxt)
添加数据框df=arcpy.mapping.ListDataFrames(mxd)[0]arcpy.mapping.AddLayer(df, arcpy.mapping.Layer(input_shp), AUTO_ARRANGE)
保存地图文档mxd.saveACopy(output_map)
关闭地图文档mxd.close()
3.代码解读:
- 导入arcpy模块。 - 设置工作环境路径。 - 设置输入和输出文件路径。 - 创建地图文档,这里使用了一个模板。 - 添加数据框并设置图层。 - 保存地图文档为PDF格式。 - 关闭地图文档。通过以上步骤,你可以使用Python和ArcGIS绘制武汉板块地图。
python for ArcGIS 绘制武汉市板块地图
- 原数据
- 完整代码
- 代码解读
利用python的arcpy模块绘制出武汉市板块地图如下
原数据
完整代码
# -*- coding: utf-8 -*-"""
Project_name:drawing plate for Chengdu
@author: 帅帅de三叔
Created on Wed Oct 30 15:16:44 2019
"""
import sys
arcpy_path = [r'D:\Python27\ArcGIS10.6\Lib\site-packages',
r'D:\Program Files (x86)\ArcGIS\Desktop10.6\arcpy',
r'D:\Program Files (x86)\ArcGIS\Desktop10.6\bin',
r'D:\Program Files (x86)\ArcGIS\Desktop10.6\ArcToolbox\Scripts']
sys.path.extend(arcpy_path)
stdi,stdo,stde=sys.stdin,sys.stdout,sys.stderr
reload(sys) #通过import引用进来时,setdefaultencoding函数在被系统调用后被删除了,所以必须reload一次
sys.stdin,sys.stdout,sys.stderr=stdi,stdo,stde
sys.setdefaultencoding('utf-8')
import arcpy #导入地理处理模块
from arcpy import env #导入环境类
env.workspace=r"D:\python for ArcGIS\绘制武汉板块"
env.overwriteOutput=True #是否开启复写
import pandas as pd #导入数据分析模块
plate_data=pd.read_excel(u"武汉板块边界.xlsx") #读取板块数据
rows,cols=plate_data.shape #数据框尺寸
lng_lat=plate_data[u'边界坐标'] #经纬度数据
plate_name=plate_data[u'板块'] #板块名称
#factoryCode = arcpy.GetParameterAsText(4490) #WGS_1984_World_Mercator投影坐标系工厂代码4490,3395
#spatial_ref = arcpy.SpatialReference(factoryCode) #设置空间参考参数
spatial_ref = arcpy.SpatialReference('China Geodetic Coordinate System 2000') #China Geodetic Coordinate System 2000 or WGS 1984 World Mercator
polygonPoints=arcpy.Array() #用来存放构成多边形的折点
polygonGeometryList=[] #用来存放多边形几何对象组
for row in range(0,rows): #按行循环
points=lng_lat[row].split(";") #折点
for spot in points:
xy=spot.split(",") #折点经纬度
if len(xy)==2:
point=arcpy.Point() #几何对象,用来存放折点对象
point.id=row;point.X=float(xy[0]);point.Y=float(xy[1]) #转为点对象
polygonPoints.add(point) #构成一串折点
#print(point.id)
polygon=arcpy.Polygon(polygonPoints,spatial_ref,"","") #利用折点构造多边形带空间参考
polygonGeometryList.append(polygon) #把多边形追加到数组
polygonPoints.removeAll() #移除折点
result=arcpy.CopyFeatures_management(polygonGeometryList,r"D:\python for ArcGIS\绘制武汉板块\plate_Wuhan.shp","POLYGON")
代码解读
整个实现过程包括3步
读数,即读取板块边界经纬度数据
拆点,即采用split()函数将经纬度数据分割,构成折点
连线,即将折点连起来形成封闭多边形,即板块
若还有不明白的,可以来“三行科创”微信公众号交流群。
1,python for ArcGIS 绘制上海市板块地图
2,python for ArcGIS 绘制上海市环线地图
3,python for ArcGIS 绘制北京市板块地图
4,python for ArcGIS 绘制广州市板块地图
5,python for ArcGIS 绘制深圳市板块地图
6,python for ArcGIS 绘制成都市板块地图
7,python for ArcGIS 绘制武汉市板块地图
8,python for ArcGIS 绘制杭州市板块地图
9,python for ArcGIS 绘制重庆市板块地图
10,python for ArcGIS绘制合肥市板块地图
11,python for ArcGIS 绘制南京市板块地图
12,python for ArcGIS绘制宁波市板块地图
13,python for ArcGIS 绘制沈阳市板块地图
14,python for ArcGIS 绘制苏州市板块地图
15,python for ArcGIS 绘制天津市板块地图
16,python for ArcGIS 绘制西安市板块地图
17,python for ArcGIS 绘制郑州市板块地图

