python for ArcGIS 繪製杭州市板塊地圖

python for ArcGIS 繪製杭州市板塊地圖

利用python的arcpy模塊繪製出杭州市板塊地圖如下

效果預覽

原數據

原數據

完整代碼

# -*- 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 繪製武漢市板塊地圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章