建立Shapefile檔案並寫入資料的例子

2022-10-03 15:51:16 字數 2010 閱讀 3060

基本思路

使用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...