ArcGIS的swm二进制文件处理成为矩阵形式的文本文件

空间权重矩阵是空间分析的数据基础。我们常用ArcGIS的空间统计模块的工具生成空间权重矩阵,然而其所得结果储存在swm文件中。该文件是二进制文件,数据结构不明。我们通常需要将swm处理成为矩阵形式,以便于进行进一步的数据分析。本人在做实验的过程中需要用到邻接矩阵,邻接矩阵是一种特殊的空间权重矩阵,元素只含0或1。我将过程经验总结下来,方便遇到类似问题的人。

我使用的是python,用到的模块包括pysal,numpy,pandas。首先,我们利用ArcGIS提供的工具将swm文件转为dbf文件。


第二步,编写程序,读取dbf的内容并处理成为矩阵形式。参考代码如下:

import pandas as pd
import numpy as np
import pysal


field_dbf=pysal.open(r'E:\atest\linjie.dbf')

#只需将FIDNUM和NID两列储存到arr中,前者是对象唯一标识,后者是与前者邻近的对象标识
arr=field_dbf.by_col_array('FIDNUM','NID')

df1=pd.DataFrame(arr,columns=(('FID','NID')))

index_list=sorted(list(
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值