欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

創(chuàng)建Shapefile文件并寫入數(shù)據(jù)的例子

 更新時(shí)間:2019年11月26日 10:41:09   作者:TheOneGIS  
今天小編就為大家分享一篇?jiǎng)?chuàng)建Shapefile文件并寫入數(shù)據(jù)的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

基本思路

使用GDAL創(chuàng)建Shapefile數(shù)據(jù)的基本步驟如下:

使用osgeo.ogr.Driver的CreateDataSource()方法創(chuàng)建osgeo.ogr.DataSource矢量數(shù)據(jù)集

使用osgeo.ogr.DataSource的CreateLayer()方法創(chuàng)建一個(gè)圖層

使用osgeo.ogr.FieldDefn()定義Shapefile文件的屬性字段

創(chuàng)建osgeo.ogr.Feature對象,設(shè)置每個(gè)屬性字段的值,使用Feature對象的SetGeometry()定義幾何屬性

創(chuàng)建Feature對象以后,使用osgeo.ogr.Layer的CreateFeature()添加Feature對象到當(dāng)前圖層

重復(fù)步驟4和5依次添加所有的Feature到當(dāng)前圖層即可

代碼實(shí)現(xiàn)

下面的例子中,我們讀取GeoJSON表示的中國省區(qū)數(shù)據(jù),然后其轉(zhuǎn)為Shapefile格式。

GeoJSON編碼片段如下:

可以看到每個(gè)Feature都有一個(gè)properties字段和geometry字段,我們需要根據(jù)properties字段的信息創(chuàng)建Shapefile數(shù)據(jù)的屬性表,根據(jù)geometry字段創(chuàng)建Shapefile中的幾何數(shù)據(jù)。

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)

# 創(chuàng)建DataSource
driver = ogr.GetDriverByName('ESRI Shapefile')
ds = driver.CreateDataSource('China.shp')

# 創(chuàng)建WGS84空間參考
srs = osr.SpatialReference()
srs.ImportFromEPSG(4326)

# 創(chuàng)建圖層
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.SetField('CenterX', f['properties']['cp'][0])
 feature.SetField('CenterY', f['properties']['cp'][1])

 # 設(shè)置Feature的幾何屬性Geometry
 polygon = ogr.CreateGeometryFromJson(str(f['geometry']))
 feature.SetGeometry(polygon)
 # 創(chuàng)建Feature
 layer.CreateFeature(feature)
 del feature
ds.FlushCache()

del ds

以上這篇?jiǎng)?chuàng)建Shapefile文件并寫入數(shù)據(jù)的例子就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • tensorflow之變量初始化(tf.Variable)使用詳解

    tensorflow之變量初始化(tf.Variable)使用詳解

    今天小編就為大家分享一篇tensorflow之變量初始化(tf.Variable)使用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Django 源碼WSGI剖析過程詳解

    Django 源碼WSGI剖析過程詳解

    這篇文章主要介紹了Django 源碼WSGI剖析過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python實(shí)現(xiàn)TCP/IP協(xié)議下的端口轉(zhuǎn)發(fā)及重定向示例

    Python實(shí)現(xiàn)TCP/IP協(xié)議下的端口轉(zhuǎn)發(fā)及重定向示例

    這篇文章主要介紹了Python實(shí)現(xiàn)TCP/IP協(xié)議下的端口轉(zhuǎn)發(fā)及重定向示例,以一個(gè)webpy站點(diǎn)在本機(jī)的兩個(gè)端口雙向通信下演示,需要的朋友可以參考下
    2016-06-06
  • Scrapy爬蟲多線程導(dǎo)致抓取錯(cuò)亂的問題解決

    Scrapy爬蟲多線程導(dǎo)致抓取錯(cuò)亂的問題解決

    本文針對Scrapy爬蟲多線程導(dǎo)致抓取錯(cuò)亂的問題進(jìn)行了深入分析,并提出了相應(yīng)的解決方案,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • python?魔法方法之?__?slots?__的實(shí)現(xiàn)

    python?魔法方法之?__?slots?__的實(shí)現(xiàn)

    本文主要介紹了python?魔法方法之?__?slots?__的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 解決安裝tensorflow遇到無法卸載numpy 1.8.0rc1的問題

    解決安裝tensorflow遇到無法卸載numpy 1.8.0rc1的問題

    今天小編就為大家分享一篇解決安裝tensorflow遇到無法卸載numpy 1.8.0rc1的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python與mysql數(shù)據(jù)庫交互的實(shí)現(xiàn)

    python與mysql數(shù)據(jù)庫交互的實(shí)現(xiàn)

    這篇文章主要介紹了python與mysql數(shù)據(jù)庫交互的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • python創(chuàng)建堆的方法實(shí)例講解

    python創(chuàng)建堆的方法實(shí)例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于python創(chuàng)建堆的方法實(shí)例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-03-03
  • Python兩個(gè)字典鍵同值相加的幾種方法

    Python兩個(gè)字典鍵同值相加的幾種方法

    今天小編就為大家分享一篇關(guān)于Python兩個(gè)字典鍵同值相加的幾種方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Python學(xué)習(xí)開發(fā)之圖形用戶界面詳解

    Python學(xué)習(xí)開發(fā)之圖形用戶界面詳解

    當(dāng)前流行的計(jì)算機(jī)桌面應(yīng)用程序大多數(shù)為圖形化用戶界面(Graphic User Interface,GUI),python也提供了多個(gè)圖形開發(fā)界面的庫,這篇文章主要給大家介紹了關(guān)于Python學(xué)習(xí)開發(fā)之圖形用戶界面的相關(guān)資料,需要的朋友可以參考下
    2021-08-08

最新評論