十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍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开发中如何使用开源影像切割”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!