基本思路
使用gdwww.cppcns.comal建立shapefile資料的基本步驟如下:
使用osgeo.ogr.driver的createdatasource()方法建立osgeo.ogr.datasource向量資料集
使用osgeo.ogr.datasou的createlayer()方法建立乙個圖層
使用osgeo.ogr.fielddefn()定義shapefile檔案的屬性字段
建立osgeo.ogr.物件,設定每個屬性欄位的值,使用feature物件的setgeometry()定義幾何屬性
建立feature物件以後,使用osgeo.ogr.layer的createfeature()新增feature物件到當前圖層
重複步驟4和5依次新增所有的feature到當前圖層即可
**實現
下面的例子中,我們讀取geojson表示的中國省區資料,然後其轉為shapefile格式。
geojson編碼片段如下:
可以看到每個feature都有乙個properties欄位和geometry欄位,我們需要根據properties欄位的資訊建立shapefile資料的屬性表,根據geometry欄位建立shapefile中的幾何資料。
from osgeo import ogr
from osgeo import osr
import json
import os
os.environ['shape_encoding'] = "utf-8"
with open('china.json') as f:
china = json.load(f)
# 建立datasource
driver = ogr.getdriverbyname('esri shapefile')
ds = driver.createdatasource('china.shp')
# 建立wgs84空間參考
srs = osr.spatialreference()
srs.importfromepsg(4326)
# 建立圖層
layer = ds.createlayer('province', srs, ogr.wkbpolygon)
# 新增屬性定義
fname = ogr.fielddefn('name', ogr.oftstring)
fname.setwidth(24)
layer.createfield(fname)
fcx = ogr.fielddefn('centerx', ogr.oftreal)
layer.createfield(fcx)
fcy = ogr.fielddefn('centery', ogr.oftreal)
layer.createfield(fcy)
# 變數geojson中的features
for f in china['features']:
# 新建feature並且給其屬性賦值
feature = ogr.feature(layer.getlayerdefn())
feature.setfield('name', f['properties']['name'])
feature.se程式設計客棧tfield('centerx', f['properties']['cp'][0])
feature.setfield('centery', f['properties']['cp'][1])
# 設定feature的幾何屬性geometry
polygon = ogr.creategeometryfromjson(str(f['geometry']))
feature.setgeometry(polygon)
# 建立feature
layer.createfeature(feature)
del feature
ds.flushcache()
del ds
本文標題: 建立shapefile檔案並寫入資料的例子
本文位址:
建立或則開啟shapefile
iworkspace ipws iworkspacefactory ipwsf new shapefileworkspacefactoryclass ipws ipwsf.openfromfile folder,0 ifeatureworkspace ifeatws ifeatws ipws asi...
Shapefile檔案格式詳解
shapefile檔案是美國環境系統研究所 esri 所研製的gis檔案系統格式檔案,是工業標準的向量資料檔案。shapefile將空間特徵表中的非拓撲幾何物件和屬性資訊儲存在資料集中,特徵表中的幾何物件存為以座標點集表示的圖形檔案 shp檔案,shapefile檔案並不含拓撲 topologica...
Shapefile檔案格式分析
shapefile檔案是美國環境系統研究所 esri 所研製的gis檔案系統格式檔案,是工業標準的向量資料檔案。shapefile將空間特徵表中的非拓撲幾何物件和屬性資訊儲存在資料集中,特徵表中的幾何物件存為以座標點集表示的圖形檔案 shp檔案,shapefile檔案並不含拓撲 topologica...