当前位置: 首页 > news >正文

南通通州住房和城乡建设网站网站开发建站

南通通州住房和城乡建设网站,网站开发建站,开源商城cms,文件链接 win wordpressGDAL和 Pillow GDAL和PIL处理和操作的对象都是栅格图像。 但它们又不一样。 GDAL主要重点放在地理或遥感数据的读写和数据建模以及地理定位和转换, 但是PIL的重点是放在图像本身处理上的。 至于在底层数据处理上,两者都可以用 numpy 转化的二进制作为数…

GDAL和 Pillow

GDAL和PIL处理和操作的对象都是栅格图像。 但它们又不一样。 GDAL主要重点放在地理或遥感数据的读写和数据建模以及地理定位和转换, 但是PIL的重点是放在图像本身处理上的。

至于在底层数据处理上,两者都可以用 numpy 转化的二进制作为数据处理。 所以,理论上是可以互相共享和交换数据的。实际上也确实可以。

GDAL的核心在波段(band), 一切操作的基础和核心都在波段。 波段可以单独拿出来操作,至于波段在数据集中的顺序无关紧要。 因为遥感图像大多比RGB图像的波段要多,而每个波段单独都是一个完整的整体, 每个波段单独拿出来都是一个数据集。而 Pillow 的核心在数据集(DataSet)这里的概念是对应GDAL中的数据集的概念。 当然,在 Pillow 本身中没有这种说法,也就是不把波段单独操作, 操作大部分需要RGB一体化地进行。

两部分的操作的主要衔接部分就是创建、读取与写入。 读取数据后怎么处理是两个库各自的事情。 所以这里主要内容就是介绍两个库各自的创建,读取和写入的操作,以及两个库的过渡。

1. 使用GDAL读取数据

比较两个库的读取,GDAL读取一个图像中的数据

>>> from osgeo import gdal
>>> dataset = gdal.Open("/gdata/geotiff_file.tif")
>>> data_arr = dataset.ReadAsArray(30,70,5,5)
>>> type(data_arr)
numpy.ndarray
>>> data_arr
array([[[147, 141, 151, 146, 145],[148, 149, 151, 143, 139],[163, 164, 162, 152, 149],[167, 169, 164, 160, 159],[168, 172, 162, 162, 164]],[[  7,   4,  17,  12,  11],[  7,  10,  14,   6,   2],[ 10,  11,  11,   3,   0],[  8,  10,   8,   4,   4],[ 12,  16,   6,   6,   9]],[[ 18,  12,  24,  19,  18],[ 16,  17,  21,  13,   9],[ 15,  16,  16,   7,   6],[ 13,  14,  11,   8,  10],[ 16,  20,  10,  10,  15]]], dtype=uint8)
>>> data_bin = dataset.ReadRaster(30,70,5,5)
>>> data_bin
b'x93x8dx97x92x91x94x95x97x8fx8bxa3xa4xa2x98x95xa7xa9xa4xa0x9fxa8xacxa2xa2xa4x07x04x11x0cx0bx07nx0ex06x02nx0bx0bx03x00x08nx08x04x04x0cx10x06x06tx12x0cx18x13x12x10x11x15rtx0fx10x10x07x06rx0ex0bx08nx10x14nnx0f'

打开了数据集,就有两种方法来获取数据。虽然读出的一个是二进制,一个是数组,Numpy数组用tostirng转换出来的二进制和用ReadRaster读出的相同。

>>> data_arr.tostring()
<ipython-input-5-e83da5e06f5b>:1: DeprecationWarning: tostring() is deprecated. Use tobytes() instead.data_arr.tostring()
b'x93x8dx97x92x91x94x95x97x8fx8bxa3xa4xa2x98x95xa7xa9xa4xa0x9fxa8xacxa2xa2xa4x07x04x11x0cx0bx07nx0ex06x02nx0bx0bx03x00x08nx08x04x04x0cx10x06x06tx12x0cx18x13x12x10x11x15rtx0fx10x10x07x06rx0ex0bx08nx10x14nnx0f'

从波段中获取数据和从数据集中获取数据的方法十分相似。

2. 使用Pillow读取数据

注意,使用Pillow读取时,要注意其类型。

>>> from PIL import Image
>>> im = Image.open("/gdata/geotiff_file.tif")
>>> region = im.crop((30,70,35,75))
>>> region.tobytes()
b'x93x07x12x8dx04x0cx97x11x18x92x0cx13x91x0bx12x94x07x10x95nx11x97x0ex15x8fx06rx8bx02txa3nx0fxa4x0bx10xa2x0bx10x98x03x07x95x00x06xa7x08rxa9nx0exa4x08x0bxa0x04x08x9fx04nxa8x0cx10xacx10x14xa2x06nxa2x06nxa4tx0f'

im可以类比成gdal的dataset,im也可以从DataSet中提取某个范围的数据。
可以看出,虽然读取的都是同样位置的数据,但是输出的结果不一样。

3. Pillow与GDAL读取数据的转换

这里注意,GDAL与Pillow的空间模型并不一致。 在Pillow的下,截取区域矩形的定义和GDAL不同,GDAL是顶点X、顶点Y、宽、高; Pillow是顶点X、顶点Y、终点X,终点Y。 这就是GDAL和Pillow的区别。转换一下:

>>> import numpy as np
>>> data = dataset.ReadAsArray(30,70,5,5)
>>> datas = [i for i in data]
>>> from numpy import reshape
>>> datas = [reshape(i,(-1,1)) for i in data]
>>> datas = np.concatenate(datas,1)
>>> datas.tostring()
<ipython-input-8-b652c983ce99>:7: DeprecationWarning: tostring() is deprecated. Use tobytes() instead.datas.tostring()
b'x93x07x12x8dx04x0cx97x11x18x92x0cx13x91x0bx12x94x07x10x95nx11x97x0ex15x8fx06rx8bx02txa3nx0fxa4x0bx10xa2x0bx10x98x03x07x95x00x06xa7x08rxa9nx0exa4x08x0bxa0x04x08x9fx04nxa8x0cx10xacx10x14xa2x06nxa2x06nxa4tx0f'

可以看到现在结果一致了。这里就表现了两个库的设计概念模型的不同。 GDAL把图像看成是由不同传感器获取的不同频率的电磁波构成的影像文件,读取的数据是默认的以band组织的; Pillow则把图像看成是由单个像素构成的,每个像素是记录的由RGB三色构成的像素颜色的数据。

4. 从波段来看

如果是单个波段,就不存在RGB存储的问题了。使用下面的方式打开,可以看出读取数据时,两个库读取的结果是一样的。

>>> r,g,b = region.split()
>>> r.tobytes()
b'x93x8dx97x92x91x94x95x97x8fx8bxa3xa4xa2x98x95xa7xa9xa4xa0x9fxa8xacxa2xa2xa4'
>>> band = dataset.GetRasterBand(1)
>>> band.ReadRaster(30,70,5,5)
b'x93x8dx97x92x91x94x95x97x8fx8bxa3xa4xa2x98x95xa7xa9xa4xa0x9fxa8xacxa2xa2xa4'
http://www.dinnco.com/news/41932.html

相关文章:

  • 网站建设分几种百度青岛代理公司
  • 做地暖工程的网站google广告
  • 网站建设 广西宁德市旅游景点大全
  • 哪些网站专做自媒体的2023搜索最多的关键词
  • 做网站的叫什么软件网站是怎么建立起来的
  • 重庆江北区网站建设公司百度开户
  • 做网站需要注意的风险优化落实防控措施
  • 专门做app的原型网站搜索引擎营销名词解释
  • 网站建设著作权搜什么关键词比较刺激
  • 微信公众号怎么做推送seo排名优化教程
  • 什么网站的新闻做参考文献怎么自己做一个小程序
  • 网站制作案例市场石家庄seo结算
  • 做映射后 内网无法通过域名访问网站今日热搜新闻头条
  • 网站开发有名的公司谷歌google浏览器官方下载
  • 建筑网bim二级结构21期全套试题石家庄seo报价
  • 哪些网站有web做如何进行市场推广
  • 嘟嘟嘟在线观看播放免费全域seo
  • 湖州城市投资建设集团网站百度竞价在哪里开户
  • 长沙网站建设哪个好seo免费浏览网站
  • wordpress网站描述插件山西百度查关键词排名
  • 网站建设怎么弄代发百度首页排名
  • 做糕点的网站小红书推广引流
  • 哈尔滨公司网站建设市场推广怎么做
  • wordpress 4 导航seo营销工具
  • 用dreamriver做html网站google关键词优化排名
  • 网站建设维护是做什么的网站seo分析案例
  • 做石材的一般用什么网站宁波关键词网站排名
  • 开题报告旅游网站开发谷歌商店下载官网
  • 商洛做网站的公司百度收录平台
  • wordpress看不到表格宁波营销型网站建设优化建站