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

最新文章

  1. 【流量劫持】躲避 HSTS 的 HTTPS 劫持
  2. Moon.Orm与其他Orm的技术对比
  3. Collection
  4. Python数据结构与算法--算法分析
  5. ofbiz进击 第三节。 各个关键文件的说明与作用
  6. 淘宝JAVA中间件Diamond详解(2)-原理介绍
  7. RedHat/CentOS系统信息查看命令大全
  8. Chrome调试大全--转载
  9. Json.NET提供依赖注
  10. Md5的加密 java实现
  11. JavaBean,List,Map,json格式之间转化方式
  12. sql server 任务调度与CPU
  13. gittalk报错Error
  14. python模块与路径
  15. 上架一台Cisco防火墙及其架构
  16. Splay详解
  17. MySQL八、备份和还原
  18. cf1130E. Wrong Answer(构造)
  19. 安装python3 及virtual与virtualenvwrapper
  20. 洛谷P1373 小a和uim之大逃离 dp

热门文章

  1. Python 变量详解[学习 Python 必备基础知识][看此一篇就够了]
  2. Xshell远程连接Linux系统
  3. Anadi and Domino--codeforces div2
  4. 6. webRTC
  5. [PHP][mysql] 需要知道的那些事
  6. WPF中在Gmap.net中将Marker动起来
  7. SpringCloud-Bus 消息总线
  8. 高级数据结构---赫(哈)夫曼树及java代码实现
  9. xpath爬虫实战-爬取小说斗罗大陆第四部
  10. tagbar 调到函数定义再跳回