python中處理空間地理數(shù)據(jù)時区岗,往往需要處理shp文件PyShp package可以用于shp文件的讀取、寫入等操作
https://pypi.org/project/pyshp/
以下用代碼形式顯示其基本讀取操作
import shapefile #導(dǎo)入模塊
sf = shapefile.Reader('shapefiles/blockgroups.shp') #讀入shp文件
sf.shapeType #查詢shp屬性驻子,NULL = 0; POINT =1;POLYLINE =3; POLYGON =5;MULTIPOINT =8; POINTZ=11;POLYLINZ=13;POLYGONZ=15;MULTIPOINTZ =18; POINTM=21;POLYLINEM =23;POLYGONM=25;MULTIPOINTM=28;MULTIPATCH=31
sf.shapeTypeName #shp屬性的具體名稱
sf.bbox #shp的bounds
sf.__geo_interface__ #獲取整個shp文件屬性(一般將shp文件轉(zhuǎn)換為GeoJSON用到)
sf.shape(index) #利用index獲取其中單一shape
shapes = sf.shapes() #讀取shape的geometry谭羔,輸出為一個矩陣
#每個shapes都可以獨立查詢其屬性
shapes[0].shapeType
shapes[0].shapeTypeName
shapes[0].bbox
shapes[0].points #線上的每個點坐標(biāo)(x,y)
#獲得shp文件的fields岂傲,每個field含有以下屬性
##Field name 描述數(shù)據(jù)的column index
##Field類型:'C'-字符;'N'-數(shù)字友存;'F'-浮點數(shù)祷膳;'L'-邏輯數(shù);'D'-時間爬立;'M'-Memo
## Field length 在這個列index下數(shù)據(jù)長度
## Decimal length 小數(shù)點后的有效數(shù)位數(shù)
fields = sf.fields
# 獲取 records
records = sf.records()
# 將records整理為字典型
dct = rec.as_dict()
# 同時讀取geometry and records
shapeRecs = sf.shapeRecords()