资源简介
资源为python3.7.2下调用gdal进行shapefile操作的库文件及调用方法的源码,找了好久才找到,使用方法:在命令行工具下输入
pip install GDAL-3.1.2-cp37-cp37m-win_amd64.whl
回车,安装完成。实践的操作系统win10
代码片段和文件信息
#!/usr/bin/python
# -*- coding: gbk -*-
‘‘‘
Created on 2013-8-27
@author: chenll
‘‘‘
import os sys
from osgeo import gdal
from osgeo import ogr
from osgeo import osr
import numpy
# 读取shap文件
def readShap():
# 为了支持中文路径,请添加下面这句代码
gdal.SetConfigOption(“GDAL_FILENAME_IS_UTF8“ “NO“)
# 为了使属性表字段支持中文,请添加下面这句
gdal.SetConfigOption(“SHAPE_ENCODING“ ““)
# 注册所有的驱动
ogr.RegisterAll()
# 数据格式的驱动
driver = ogr.GetDriverByName(‘ESRI Shapefile‘)
ds = driver.Open(‘E:\\temp\\shp\\poi.shp‘);
if ds is None:
print
‘Could not open 1km地铁站试验2.shp‘
sys.exit(1)
# 获取第0个图层
layer0 = ds.GetlayerByIndex(0);
# 投影
spatialRef = layer0.GetSpatialRef();
# 输出图层中的要素个数
print(‘要素个数=%d‘ layer0.GetFeatureCount(0))
print(‘属性表结构信息‘)
defn = layer0.GetlayerDefn()
iFieldCount = defn.GetFieldCount()
for index in range(iFieldCount):
oField = defn.GetFieldDefn(index)
print(‘%s: %s(%d.%d)‘ % (
oField.GetNameRef() oField.GetFieldTypeName(oField.GetType()) oField.GetWidth() oField.GetPrecision()))
feature = layer0.GetNextFeature()
# 下面开始遍历图层中的要素
while feature is not None:
# 获取要素中的属性表内容
for index in range(iFieldCount):
oField = defn.GetFieldDefn(index)
line = “ %s (%s) = “ % (oField.GetNameRef() oField.GetFieldTypeName(oField.GetType()))
if feature.IsFieldSet(index):
line = line + “%s“ % (feature.GetFieldAsString(index))
else:
line = line + “(null)“
print(line)
# 获取要素中的几何体
geometry = feature.GetGeometryRef()
print
geometry
# 为了演示,只输出一个要素信息
break
feature.Destroy()
ds.Destroy()
#创建shap文件
def createShap():
#为了支持中文路径,请添加下面这句代码
gdal.SetConfigOption(“GDAL_FILENAME_IS_UTF8““NO“)
#为了使属性表字段支持中文,请添加下面这句
gdal.SetConfigOption(“SHAPE_ENCODING“““)
#注册所有的驱动
ogr.RegisterAll()
#数据格式的驱动
driver = ogr.GetDriverByName(‘ESRI Shapefile‘)
ds=driver.CreateDataSource(“E:\\temp\\shp“)
shaplayer=ds.Createlayer(“poi“geom_type=ogr.wkbPoint);
#添加字段
fieldDefn = ogr.FieldDefn(‘id‘ ogr.OFTString)
fieldDefn.SetWidth(4)
shaplayer.CreateField(fieldDefn);
#创建feature
defn = shaplayer.GetlayerDefn()
feature = ogr.Feature(defn) ;
#添加属性
feature.SetField(“id““liu“)
#添加坐标
point = ogr.Geometry(ogr.wkbPoint)
point.AddPoint(float(113.56647912)float(22.16128203))
feature.SetGeometry(point);
shaplayer.CreateFeature(feature)
feature.Destroy()
#指定投影
sr = osr.SpatialReference();
sr.ImportFromEPSG(32612);
prjFile = open(“E:\\temp\\shp\\poi.prj“‘w‘);
sr.MorphToESRI();
prjFile.write(sr.ExportToWkt());
prjFile.close();
ds.Destroy()
def main():
readShap();
print(‘readShap finish‘)
createShap();
相关资源
- Fluent Python. pdf 中文版 版
- Python Data Science Handbook
- facebook开源项目prophet python模块fbprop
- Introduction to Machine Learning with Python 原
- MPU-6050使用Python上位机监控可视化实时
- 编写高质量代码 改善Python程序的91个
- Python数据科学手册.rar
- Python Data Science Handbook Essential Tools f
- 《Python编程:从入门到实践》 [高清
- 完整书签PySpark实战指南:利用Python和
- Python编程:从入门到实践(超清版)
- Tensorflow与python3.7适配版本
- VRP、WRSN问题求解.zip
- Python语言程序设计基础(第2版)
- PyDev 7.4.0.zip
- Python语言在Abaqus中的应用完整版
- 形状上下文Python
- Python深度学习pdf
- Fluent Python Clear Concise and Effective Prog
- Practical Machine Learning with Python (2018)
- opencv_python-3.4.7-cp37-cp37m-win_amd64.whl
- Python计算机视觉配套的代码及数据
- 基于python3.6、Django二手车线上商城项
- 深度学习入门:基于Python的理论与实
- opencv_python-3.4.0-cp36-cp36m-win_amd64.whl
- Python GUI Programming Cookbook 2nd(AZW3+PDF)
- 深度学习入门:基于Python的理论与实
- python算法图解. 真正完整版.pdf
- 高清原版《Python深度学习》2018中文版
- LEARNING_ROBOTICS_USING_PYTHON(Lentin Joseph)
评论
共有 条评论