经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
Python遥感影像叠加分析:基于一景数据提取另一数据
来源:cnblogs  作者:疯狂学习GIS  时间:2024/6/17 15:07:31  对本文有异议

本文介绍基于PythonGDAL模块,实现基于一景栅格影像,对另一景栅格影像的像元数值加以叠加提取的方法。

本文期望实现的需求为:现有一景表示6种不同植被类型.tif格式栅格数据,以及另一景与前述栅格数据同区域的、表示植被参数.tif格式栅格数据;我们希望基于前者中的植被类型数据,分别提取6种不同植被类型的植被参数数值。这里需要注意,两景栅格影像的行数、列数也都是一致的。

了解了具体需求后,我们即可开始代码的实践;本文用到的具体代码如下所示。

  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Thu Dec 1 16:56:26 2022
  4. @author: fkxxgis
  5. """
  6. from osgeo import gdal
  7. vt_file_path = "E:/LC_M/data/LC.tif"
  8. lcc_file_path = "E:/LC_M/data/LC_Clip.tif"
  9. vt_raster = gdal.Open(vt_file_path)
  10. vt_array = vt_raster.ReadAsArray()
  11. lcc_raster = gdal.Open(lcc_file_path)
  12. lcc_array = lcc_raster.ReadAsArray()
  13. raster_row, raster_col = vt_array.shape
  14. li_1, li_2, li_3, li_4, li_5, li_6 = [ [] for i in range(6)]
  15. for i in range(raster_row):
  16. for j in range(raster_col):
  17. if vt_array[i][j] == 1 and lcc_array[i][j] != 0:
  18. li_1.append(lcc_array[i][j])
  19. elif vt_array[i][j] == 2 and lcc_array[i][j] != 0:
  20. li_2.append(lcc_array[i][j])
  21. elif vt_array[i][j] == 3 and lcc_array[i][j] != 0:
  22. li_3.append(lcc_array[i][j])
  23. elif vt_array[i][j] == 4 and lcc_array[i][j] != 0:
  24. li_4.append(lcc_array[i][j])
  25. elif vt_array[i][j] == 5 and lcc_array[i][j] != 0:
  26. li_5.append(lcc_array[i][j])
  27. elif vt_array[i][j] == 6 and lcc_array[i][j] != 0:
  28. li_6.append(lcc_array[i][j])

其中,vt_file_path为表示植被类型的栅格数据,lcc_file_path为表示植被参数的栅格数据。

代码的整体思路其实也非常简单,首先通过gdal.Open()函数与.ReadAsArray()函数,分别读取两个栅格数据,并将两个栅格数据中的像元数值信息转换为数组格式;随后,因为表示不同植被类型.tif格式栅格数据共有6种不同的像元数值,因此我们通过[] for i in range(6)这句代码,批量创建6个空的列表,用于存放6种不同植被类型分别对应的植被参数数值;接下来,同时遍历两个栅格数据,并基于表示不同植被类型.tif格式栅格数据的像元数值,将表示植被参数.tif格式栅格数据的像元数值依次提取、放入不同的列表中。

这里有一点需要注意,因为在表示植被参数.tif格式栅格数据中0为无效值,因此在提取时,加了一个是否为0的判断;这一点大家在实际应用时结合自己的需求加以修改即可。

通过上述代码,我们即可将6种不同植被类型分别对应的植被参数数值提取出来,并存放于不同的列表中;随后即可基于不同列表中的数据加以各项空间分析。

原文链接:https://www.cnblogs.com/fkxxgis/p/18252259

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号