python 矢量数据转栅格数据
2024-08-27 23:30:04
from osgeo import gdal,osr,ogr
#定义投影
sr = osr.SpatialReference('LOCAL_CS["arbitrary"]')
#在内存中创建一个shape文件的图层,含有两个多边形
source_ds = ogr.GetDriverByName('Memory').CreateDataSource( 'shapefile' )
source_lyr = source_ds.CreateLayer('poly', srs=sr, geom_type=ogr.wkbPolygon )
source_lyr.CreateField(ogr.FieldDefn('TCODE',ogr.OFTReal))
wkt_geom = ['POLYGON((1020 1030 40,1020 1045 30,1050 1045 20,1050 1030 35,1020 1030 40))',
'POLYGON((1010 1046 85,1015 1055 35,1055 1060 26,1054 1048 35,1010 1046 85))']
#栅格值
celsius_field_values = [50,200]
for i in range(len(wkt_geom)):
feat = ogr.Feature(source_lyr.GetLayerDefn())
feat.SetGeometryDirectly(ogr.Geometry(wkt=wkt_geom[i]))
feat.SetField('TCODE', celsius_field_values[i])
source_lyr.CreateFeature(feat)
#在内存中,创建一个 100*100 大小的1波段的空白图像
#‘’代表不往磁盘上写的话,文件名可以是空
target_ds = gdal.GetDriverByName('MEM').Create('', 100, 100, 1, gdal.GDT_Byte )
target_ds.SetGeoTransform( (1000,1,0,1100,0,-1) )
target_ds.SetProjection( sr.ExportToWkt())
#调用栅格化函数。RasterizeLayer函数有四个参数,分别有栅格对象,波段,矢量对象,TCODE的属性值将为栅格值
err = gdal.RasterizeLayer( target_ds, [1], source_lyr,options= ["ATTRIBUTE=TCODE"])
#将内存中的图像,存储到硬盘文件上
gdal.GetDriverByName('GTiff').CreateCopy('rasterized_poly.tif', target_ds)
del target_ds
del source_ds
最新文章
- 【流量劫持】躲避 HSTS 的 HTTPS 劫持
- Moon.Orm与其他Orm的技术对比
- Collection
- Python数据结构与算法--算法分析
- ofbiz进击 第三节。 各个关键文件的说明与作用
- 淘宝JAVA中间件Diamond详解(2)-原理介绍
- RedHat/CentOS系统信息查看命令大全
- Chrome调试大全--转载
- Json.NET提供依赖注
- Md5的加密 java实现
- JavaBean,List,Map,json格式之间转化方式
- sql server 任务调度与CPU
- gittalk报错Error
- python模块与路径
- 上架一台Cisco防火墙及其架构
- Splay详解
- MySQL八、备份和还原
- cf1130E. Wrong Answer(构造)
- 安装python3 及virtual与virtualenvwrapper
- 洛谷P1373 小a和uim之大逃离 dp
热门文章
- Python 变量详解[学习 Python 必备基础知识][看此一篇就够了]
- Xshell远程连接Linux系统
- Anadi and Domino--codeforces div2
- 6. webRTC
- [PHP][mysql] 需要知道的那些事
- WPF中在Gmap.net中将Marker动起来
- SpringCloud-Bus 消息总线
- 高级数据结构---赫(哈)夫曼树及java代码实现
- xpath爬虫实战-爬取小说斗罗大陆第四部
- tagbar 调到函数定义再跳回