python for ArcGIS 绘制杭州市板块地图

python for ArcGIS 绘制杭州市板块地图

  • 原数据
  • 完整代码
  • 代码解读

利用python的arcpy模块绘制出杭州市板块地图如下

python for ArcGIS 绘制杭州市板块地图_第1张图片

原数据

python for ArcGIS 绘制杭州市板块地图_第2张图片

完整代码

# -*- coding: utf-8 -*-
"""
Project_name:drawing plate for Hangzhou
@author: 帅帅de三叔
Created on Mon Dec 09 15:01:15 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'板块'] #板块名称
spatial_ref=arcpy.SpatialReference('China Geodetic Coordinate System 2000') #设置空间参考系

polygonPoints=arcpy.Array() #用来存放多边形的折点
polygonGeometryList=[] #用来存放多边形几何对象
for row in range(rows): #按行循环
    points=lng_lat[row].split(";") #分号分隔折点
    for point in points:
        xy=point.split(",") #逗号分隔经纬度
        point=arcpy.Point()
        point.id=row; point.X=float(xy[0]); point.Y=float(xy[1]) #构造折点对象
        polygonPoints.add(point) #点成线
    polygon=arcpy.Polygon(polygonPoints,spatial_ref,"","") #线成面
    polygonGeometryList.append(polygon) #多边形组
    polygonPoints.removeAll() #移除折点
arcpy.CopyFeatures_management(polygonGeometryList, r"D:\python for ArcGIS\绘制杭州板块\plate_hangzhou.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 绘制武汉市板块地图

你可能感兴趣的:(python,for,ArcGIS)