最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

基本思路

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

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

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

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

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

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

重復步驟4和5依次添加所有的Feature到當前圖層即可

代碼實現(xiàn)

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

GeoJSON編碼片段如下:

可以看到每個Feature都有一個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])

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

del ds

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

相關文章

  • python matplotlib擬合直線的實現(xiàn)

    python matplotlib擬合直線的實現(xiàn)

    這篇文章主要介紹了python matplotlib擬合直線的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Python LMDB庫的使用示例

    Python LMDB庫的使用示例

    這篇文章主要介紹了Python LMDB庫的使用示例,幫助大家更好的利用python處理數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-02-02
  • python虛擬環(huán)境創(chuàng)建的兩種方法

    python虛擬環(huán)境創(chuàng)建的兩種方法

    本文主要介紹了python虛擬環(huán)境創(chuàng)建的兩種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • Python pathlib模塊實例詳解

    Python pathlib模塊實例詳解

    本文給大家介紹了Python的pathlib 模塊,為 Python 工程師對該模塊的使用提供了支撐,讓大家了解如何使用 pathlib 模塊讀寫文件、操縱文件路徑和基礎文件系統(tǒng),統(tǒng)計目錄下的文件類型以及查找匹配目錄下某一類型文件等,需要的朋友參考下吧
    2023-05-05
  • 如何在Win10系統(tǒng)使用Python3連接Hive

    如何在Win10系統(tǒng)使用Python3連接Hive

    這篇文章主要介紹了如何在Win10系統(tǒng)使用Python3連接Hive,幫助大家更好的利用python讀取數(shù)據(jù),進行探索、分析和挖掘工作。感興趣的朋友可以了解下
    2020-10-10
  • 淺析python中numpy包中的argsort函數(shù)的使用

    淺析python中numpy包中的argsort函數(shù)的使用

    這篇文章主要介紹了python中numpy包中的argsort函數(shù)的使用,argsort()函數(shù)在模塊numpy.core.fromnumeric中,本文通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2018-08-08
  • Python代碼生成視頻的縮略圖的實例講解

    Python代碼生成視頻的縮略圖的實例講解

    在本篇文章里小編給大家正里的是一篇關于Python代碼生成視頻的縮略圖的實例講解,對此有需要的朋友們可以跟著學習下。
    2019-12-12
  • 淺談pytorch池化maxpool2D注意事項

    淺談pytorch池化maxpool2D注意事項

    今天小編就為大家分享一篇淺談pytorch池化maxpool2D注意事項,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python網(wǎng)絡爬蟲之如何偽裝逃過反爬蟲程序的方法

    python網(wǎng)絡爬蟲之如何偽裝逃過反爬蟲程序的方法

    本篇文章主要介紹了python網(wǎng)絡爬蟲之如何偽裝逃過反爬蟲程序的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 簡單談談python中的lambda表達式

    簡單談談python中的lambda表達式

    Lambda表達式在Python中經(jīng)常使用到,本文是給大家分享的小編總結出來的Lambda表達式的常用方法。
    2018-01-01

最新評論

海口市| 台湾省| 乌鲁木齐市| 马关县| 南皮县| 聂拉木县| 长沙县| 平顶山市| 永顺县| 淄博市| 锦屏县| 始兴县| 自治县| 区。| 时尚| 忻州市| 廊坊市| 永顺县| 永年县| 蕲春县| 喀什市| 绥江县| 广宗县| 皮山县| 漯河市| 莫力| 隆安县| 辽中县| 新龙县| 观塘区| 翼城县| 洛阳市| 棋牌| 教育| 文安县| 武邑县| 深水埗区| 黄陵县| 甘孜县| 高唐县| 南川市|