成都网站建设设计

将想法与焦点和您一起共享

GIS开发中如何使用开源影像切割

这篇文章主要介绍GIS开发中如何使用开源影像切割,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

网站制作、成都网站制作的关注点不是能为您做些什么网站,而是怎么做网站,有没有做好网站,给成都创新互联公司一个展示的机会来证明自己,这并不会花费您太多时间,或许会给您带来新的灵感和惊喜。面向用户友好,注重用户体验,一切以用户为中心。

在影像数据的使用过程中,有时候需要根据一个坐标范围,将影像数据进行切割,常用的使用arcmap等工具可进行切割,下边介绍一个使用开源的类库进行影像切割,开发的语言为python。

开源库的名称为:rasterio,github的网址为:https://github.com/mapbox/rasterio,rasterio是一个专门的影像处理类库,有各种影像处理函数,具体可参见网站上的说明。

下边简单说一下,使用rasterio做一个简单的影像数据切割。

开发之前,准备一个基础影像,一个切割影像的面状矢量数据,这里准备了一个shp文件,要保证矢量切割数据和影像数据的坐标系保持一致。

具体的python代码如下:

import fiona
import rasterio
import rasterio.mask
#fiona打开shp文件,使用conda或者pip进行安装
#以只读的形式打开一个shp文件
with fiona.open("矢量文件路径clipdata.shp","r") as shapfile:
   #循环遍历shp文件的面状坐标信息
   features = [feature["geometry"] for feature in shapfile]
   #打开被切割的tif文件路径
   with rasterio.open("被切割的tif文件路径L15.tif") as src:
        #根据矢量的坐标范围,切割图层
       out_image,out_transform = rasterio.mask.mask(src,features,
       crop=True)
       #拷贝源tif的数据
       out_meta = src.meta.copy()
       #根据切割的信息,更新复制的源tif数据
       out_meta.update({"driver": "GTiff",
                        "height": out_image.shape[1],
                        "width": out_image.shape[2],
                        "transform": out_transform})
       #保存tif到新文件中,并写入到磁盘上
       with rasterio.open("保存路径clip.tif", "w", **out_meta) as dest:
           dest.write(out_image)
         
切割的影像效果图:

GIS开发中如何使用开源影像切割

以上是“GIS开发中如何使用开源影像切割”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


网页名称:GIS开发中如何使用开源影像切割
转载注明:http://chengdu.cdxwcx.cn/article/gischs.html