arcgis出了10后,python代替vb成为官方脚本语言,python中的gis库也是有很多,但因为本人最先接触的是arcgis所以就直接学习他自带的库arcpy了,主要以空间权重矩阵作为一个契机顺便学习arcpy。
代码及数据资料:https://github.com/shikanon/WeightDistance
因为还是不太习惯arcpy中的表操作,所以借助了pandas进行表操作,构建一个表转换:
#ListFields包含field类的数组
fields=arcpy.ListFields(path)
def GetTable():
'''将arcpy表单变为pandas表单,还是喜欢pandas些~'''
table=[]
fieldname=[field.name for field in fields]
#游标集合,用for 循环一次后没办法循环第二次!一个游标实例只能循环一次
data=arcpy.SearchCursor(path)
for row in data:
#Shape字段中的要数是一个几何类
r=[]
for field in fields:
r.append(row.getValue(field.name))
table.append(r)
return pd.DataFrame(table,columns=fieldname)
因为求欧几里距离在arcpy 中polyline直接有length属性所以只需要构建一个线类,然后直接求长度就行了
def getdistance(poi