利用GDAL-python库为SHP格式添加Z值
2010-05-26 14:15
495 查看
Z值
z值通常表示一个点的高程值,高程值一般都包含在栅格数据中。本文偿试从栅格数据读出对应点的z值,再写入相应点中。步骤
读取SHP格式,获得Geometry,再根据几何类型读出相应的点读取栅格数据,跟据已获得相应的点,读取高程值
新建输出数据源、层。将原图层中的图层定义赋予新建的图层中
新建特定的Geometry对象,将有z值的点添加到Geometry对象中
新建Feature对象,并将原有图层的属性表、新建Geometry对象赋予新建Feature对象,
写得很啰嗦,要是有耐心看完wkb的格式,也可以直接操作wkb。
代码
driver = ogr.GetDriverByName("ESRI Shapefile") inDs = driver.Open("boundary.shp",0) inLayer = inDs.GetLayer(0) outDs = driver.CreateDataSource("boundary_z.shp") outLayer = outDs.CreateLayer('boundary',None, ogr.wkbPolygon) layerDfn = inLayer.GetLayerDefn() for i in range(layerDfn.GetFieldCount()): fieldDfn = layerDfn.GetFieldDefn(i) fieldName = fieldDfn.GetNameRef() outLayer.CreateField(fieldDfn) #得到所有的feature #得到raster中的z oRing.AddPoint(float(p[0]),float(p[1]),float(p[2])) ploygon = ogr.Geometry(ogr.wkbPolygon) ploygon.AddGeometry(oRing) newFeature.SetGeometry(ploygon) outLayer.CreateFeature(newFeature)
* 在QGIS库中的QgsRasterLayer有个很简单的方法就可以提出z值—— rasterLayer.identify(point),也可以用GDAL-python的api读取z值
相关文章推荐
- python 利用smtp发送邮件,html格式
- 利用python将alfw转换成bing标注格式
- 数据加载、存储与文件格式 利用Python进行数据分析 第6章
- 【GDAL/OGR】利用GDAL/OGR读取shp文件并转换为json文件(Java版)
- 破玩意(一)利用GDAL实现图像格式转换
- 利用python将json数据转换为csv格式
- 能否在Python中利用 MPxNode 的构造和析构函数来添加和删除事件?
- 利用Python爬虫实现百度网盘自动化添加资源
- 利用Python进行数据分析--数据加载、存储与文件格式
- 利用Python将Linux conf配置文件的内容解析成字典格式
- Python空间数据处理3: HDF格式转GDAL支持格式
- 利用Dnspod api批量更新添加DNS解析【python脚本】
- (Python)利用SMTP发送邮件进阶篇,发送混合格式邮件
- 【利用Python进行数据分析——经验篇3】如何操作DataFrame中的列的数据格式(转为百分数、保留4位小数)
- 利用python进行数据分析-数据加载、存储与文件格式2
- 利用python进行数据分析之数据加载存储与文件格式
- Python学习之利用Python处理JSON格式数据
- 【javac添加python 列表特性11】利用修改后的javac实现快速排序
- 利用Python爬取妙笔阁小说网站的小说信息并保存为txt和csv格式
- 利用python语言实现shp文件生成geojson文件