並不能直接進行空間資料的聚類,原理是讀取要素的x,y座標來進行聚類,然後將聚類中心儲存為空間資料以達到效果
# encoding: utf-8from sklearn.cluster import kmeans
import numpy as np
import arcpy
import pandas as pd
from arcpy import env
env.workspace=r"d:\84.gdb"
target="bujiandian"
cursor=arcpy.searchcursor(target)
allfea=
dic={}
name="ysdm"#**要素列別的字段
for row in cursor :
ls=if(dic.has_key(row.getvalue(name))):
dic[row.getvalue(name)]+=1
else:
dic[row.getvalue(name)] = 1
data2=pd.dataframe(allfea,columns=[name,"ptx","pty"])
datafilter=data2.query(name+"=='9000402'")
#取座標進行聚類
df1 = datafilter.ix[:,1 :]
kmeans = kmeans(n_clusters=3, random_state=10).fit(df1)
#dfl是聚類的結果
df1['jllable'] = kmeans.labels_
##聚類中心
cent=kmeans.cluster_centers_
#將聚類中心儲存為空間資料
sr = arcpy.spatialreference(4326)
fc=arcpy.createfeatureclass_management( r"d:\cs","test.shp", "point", "", "","", sr)
arcpy.addfield_management(r"d:\cs\test.shp", "leibie", "text")
cursor=arcpy.insertcursor(fc)
for line in cent:
feature = cursor.newrow()
# add the point geometry to the feature
vertex = arcpy.createobject("point")
vertex.x = line[0]
vertex.y =line[1]
feature.shape = vertex
# add attributes
feature.leibie = "shumu"
# write to shapefile
cursor.insertrow(feature)
del cursor
del fc
基於空間資料庫的空間資料管理
gis空間資料管理已經走出了檔案管理的模式 龔健雅,2004 最初的gis 軟體一般採用檔案方法管理向量圖形資料,利用關聯式資料庫管理系統管理屬性資料。目前主要的gis軟體都採用了商用關聯式資料庫管理系統同時管理圖形和屬性資料。如supermap mapgis geostar arcgis geom...
Sql Server 空間資料
1 地理座標系空間需要用geography 平面座標系空間用geometry,計算距離使用stdistance 字串裡經緯度的順序是 經度 空格 緯度 即 longitude latitude 如果要計算兩個lat lon點之間的實際距離就需要將geometry型別轉成geography型別,不然結...
oracle的空間字段 空間函式,空間資料型別
alter table tablename add shape mdsys.sdo geometry 新增空間字段 insert into user sdo geom metadata values 表名 shape 欄位名 sdo dim array sdo dim element x 180,1...