使用python + arcmap绘制OD期望线

使用python + arcmap绘制OD期望线

准备数据(因arcmap图层转表格式为xls,为了方便,以下两张数据表为xls格式):

  1. OD数据表。
    数据形式 od.xls
    |起点|终点|OD
  2. 图层各区块中心点坐标
    数据形式 xy.xls
    |城市名称|中心点经度坐标|中心点纬度坐标
arcmap 得到xy.xls

打开地理处理>ArcToolbox>转换工具>Excel>表转Excel,输入表选择需要导出的图层属性表,输出表筛选所需信息得到xy.xls

  1. py脚本
import pandas as pd
xy = pd.read_excel('C:/abc/xy.xls',encoding="gbk")
od = pd.read_excel('C:/abc/od.xls',encoding="gbk")
new_od_xy=pd.DataFrame(columns = ['city_o','x_o','y_o','city_d','x_d','y_d','人数'])
xy_dict = xy.set_index('city').to_dict('dict')
xx = xy_dict['x']
yy = xy_dict['y']
for item in od.iterrows():
    city_o = item[1][0]
    city_d = item[1][1]
    if city_o in xx.keys() and city_d in xx.keys() and city_o in yy.keys() and city_d in yy.keys():
        x_o = xx[city_o]
        y_o = yy[city_o]
        x_d = xx[city_d]
        y_d = yy[city_d]
        new_od_xy = new_od_xy.append({'city_o':city_o,'x_o':x_o,'y_o':y_o,'city_d':city_d,'x_d':x_d,'y_d':y_d,'人数':item[1][2]},ignore_index = True)
new_od_xy.to_csv('C:/abc/od_new.csv',encoding='gbk',index = 0)

1、2两张数据表经过python处理之后得到的表od_new格式如下
| 起点 |起点x坐标 |起点y坐标|终点x坐标|终点y坐标|OD
最后一步,绘制xy转线,打开地理处理>ArcToolbox>数据管理工具>要素>xy转线
输入表选择od_new,起点x,起点y,终点x,终点y,ID依次选择x_o,x_d,y_o,y_d,人数,注意xy转线与原图层坐标系对应一致,点击确定即可得到期望线。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值