前言:作为遥感、GIS从业者,会用python将能提高你的核心竞争力,同时也证明你可以摆脱专业软件的束缚,迈入自主研发的新阶段。ps:其实ENVI、Arcgis等相关软件已经非常完善了,想要突破比较困难,但是这一小步的迈出也决定了你已跨入自主研发的道路。

目录

1.辐射校正

1.1传感器端辐射校正

1.2大气校正

1.3地表辐射校正

2.代码

3.结束


1.辐射校正

辐射校正的目的是尽可能消除传感器自身条件薄雾等大气条件太阳位置和角度条件及某些不可避免的噪声引起的传感器测量值与目标的光谱反射率或者光谱辐亮度等物理量之间的差异。还原图像原来面目,进而保障后续图像处理工作的稳定。

所以辐射校正的内容也是由产生影响的因素决定的即:传感器端辐射校正大气校正地表辐射校正

1.1传感器端辐射校正

(这里拿LANDSAT的TM图像校正方式作为举例,一般遥感软件在读数据时自动读取头文件中的参数信息,进行了这一步操作)

①辐亮度与DN值关系:

                                                     

——图像的辐亮度(单位:W/m*sr);Gain——增益;DN——图像亮度值;Bias——偏置。

②辐亮度和大气上界反射率值关系:

——反射率;d——日地距离;ESUN——太阳光谱辐射量;——为太阳天顶角。

1.2大气校正

这里主要有:统计学方法、辐射传递方程计算法、波段对比法等。

寻找黑区域辐射,作为修正值。

%

——每一波段最小光谱辐射值;%——反射率为1%的黑体辐射值。

1.3地表辐射校正

——直射时图像;——高度角i时的图像;——太阳天顶角。

综合以上:

地面反射率校正:

2.代码

利用GDAL库,结合公式和一些代码,自己总结了下,计算NDVI的简单代码:

import gdal
from osgeo import gdal_array
import  math
#路径
path=r'C:\Users\Desktop\test\path\\'Bias=1.18070871
Gains=-7.38070852
# 计算JD
Year = 2019
Month = 8
Day = 23
JD = Day - 32075 + 1461 * (Year + 4800 + (Month - 14) / 12) / 4 + 367 * (Month - 2 - (Month - 14) / 12 * 12) / 12 - 3 * ((Year + 4900 + (Month - 14) / 12) / 100) / 4
# 设置ESUNI值
ESUNI = 196.9
# 计算日地距离Dist
Dist = 1 - 0.01674 * math.cos((0.9856 * (JD - 4) * math.pi / 180))
# 计算太阳天顶角
cos = math.cos(math.radians(90 - 39.5))
inter = (math.pi * Dist * Dist) / (ESUNI * cos * cos)
# 大气校正参数设置
Lmini = -6.2
Lmax = 293.7
Qcal = 1
Qmax = 255
LIMIN = Lmini + (Qcal * (Lmax - Lmini) / Qmax)
LI = (0.01 * ESUNI * cos * cos) / (math.pi * Dist * Dist)
Lhazel = LIMIN - LIb4=path+'T50SPJ_20190823T025551_B02.jp2'
b8=path+'T50SPJ_20190823T025551_B08.jp2'Red=gdal_array.LoadFile(b4)
NIR=gdal_array.LoadFile(b8)Red=inter*(Bias+Gains*Red-Lhazel)
NIR=inter*(Bias+Gains*NIR-Lhazel)gdal_array.numpy.seterr(all="ignore")
ndvi=((NIR-Red)*1.0)/((NIR+Red)*1.0)
ndvi1=gdal_array.numpy.nan_to_num(ndvi)
target=path+'ndvi.tif'
out=gdal_array.SaveArray(ndvi1,target,format = "GTiff",prototype = b4)
out=None

3.结束

利用两个波段(近红、红),简单进行辐射校正后的ndvi计算,提取植被。

实际上,遥感图像处理对于细节的处理很多,针对不同传感器,参数和模型方法也不同,需要依据需求和场景灵活使用,本文只是简单依据流程进行的NDVI计算过程,之中的不足、错误还望指正。

python处理遥感数据(NVDI计算、辐射校正)相关推荐

  1. Python地球科学领域应用:python处理遥感数据、站点数据、遥感水文数据、气候变化数据、WRF模式数据后处理、运行生态模型

    点击查看原文>>>Python地球科学[赠CMIP6月/日数据.全球VIPPHEN物候数据.ERA5-LAND陆面再分析数据.遥感降水数据] >>>高精度气象模拟软 ...

  2. Python实现遥感生态指数计算

    最近在做一些遥感相关的图像处理项目,涉及到遥感生态指数的计算.由于项目要求Python实现,搜索互联网关于Python实现的遥感生态指数计算程序资料很少,于是就自己实现了一个并分享在这里,供需要的朋友 ...

  3. Python处理exal数据,计算年月日之间时间间隔

    问题 最近学习python处理exal数据,自己标注的十分详细,包括读取exalt文件,读取其中的某一行,定义新的list存放结果,将结果以exal 文件导出等:然后计算不同年月日之间的时间间隔,本文 ...

  4. python调用mysql数据进行计算_python使用peewee实现mysql数据操作

    peewee可用class来创建表,增删改查,应该是相对余单表(本人几乎没用过,自以为如此) 想实现sql查询,得到list,比如这样的结果[{'user_name':'名字'},{'user_nam ...

  5. python获取股票数据,并计算技术指标

    python获取stock数据. 计算技术指标使用talib库. 方法一:使用 pandas_datareader.data 库,该库获取的历史数据更多一些.上证股票在股票代码后面加上".S ...

  6. 长时间序列遥感数据植被物候提取/遥感数据产品分析暨MODIS NDVILAI多年产品数据批处理分析/Python长时间序列遥感数据处理及在全球变化、物候提取、植被变绿与固碳分析、生物量估算与趋势分析

    基于MATLAB长时间序列遥感数据植被物候提取与分析 1.本课程基于matlab语言 2.提供所有代码 3.以实践案例为课程内容主线,原理与操作相结合 4.根据讲解内容,布置作业,巩固所学内容及拓展在 ...

  7. 如何写python脚本抓取数据并计算_【小工具】利用Python脚本从Gaussian计算结果中提取信息...

    1.前言 高斯(Gaussian)是一个功能强大的量子化学综合软件包,所有从事计算化学相关领域的科研工作者应该都使用或者了解过这个软件.它的输出文件(.log文件)是一个文本文件,可以利用文本工具打开 ...

  8. python做大数据的框架_Python+大数据计算平台,PyODPS架构手把手教你搭建

    原文链接:http://click.aliyun.com/m/13965/ 在2016年10月的云栖社区在线培训上,来自阿里云大数据事业部的秦续业分享了<双剑合壁--Python和大数据计算平台 ...

  9. python利用tushare下载数据并计算当日收益率

    python利用tushare下载数据并计算当日收益率 计算股票收益率的程序主要有以下几部分构成: 1.获取股票接口数据函数:pro_daily_stock() 2.计算收益率函数:cal_stock ...

  10. python扩展库用于科学计算的有哪些_数据科学必备的十大 Python 库

    ​Python 已成为当今使用最广泛的编程语言之一,尤其是在数据科学领域. Python 是一种高性能的语言,易于学习和调试,并且具有广泛的库支持.这些库都有自己独特的功能,一些专注于数据挖掘,一些专 ...

最新文章

  1. 计算机在生物科学领域的应用论文,大学生物科学教学中计算机的应用
  2. 避免button处理事件过程中 点击按钮触发事件的方法
  3. 【控制】《鲁棒控制-线性矩阵不等式处理方法》-俞立老师-第3章-系统性能分析
  4. Collections.toArray方法使用的坑
  5. win10系统要求配置_酒店智能化集成系统设计要素、系统功能要求和配置标准
  6. 在linux怎样运行java,怎么在linux运行java
  7. 160 - 4 ajj.1
  8. session的removeattribute移除一个不存在的属性会怎么用_公认峡谷机制最完美,对线几乎无解,夏侯惇高端局为何火不起来?...
  9. 隔行变色( 表格隔行变色 + LI 浮动隔行变色 )
  10. mysql cast类型转换
  11. Leetcode之跳跃游戏Ⅱ
  12. iOS微信安装包瘦身
  13. C语言 java 判断闰年,一个月有多少天
  14. Uncode、ASCII、UTF-8之前的转换函数
  15. 冰心吴文藻的爱情始于留学远洋客轮上
  16. win8局域网访问其他计算机名,win8.1局域网找不到其他电脑怎么办
  17. 2、Canal的deployer模块
  18. 收集金币(人人网笔试)
  19. 关于《十天学会AVR单片机》的教程头文件AVR_PQ1A.h
  20. 计算机有几个无法修改的磁盘,电脑磁盘名称无法修改的解决方法

热门文章

  1. Vue3:集成wangEditor富文本编辑器
  2. Cesium:向地图中添加面的方法
  3. 实战Python:详解利用Python和Pygame实现飞机大战
  4. 祖冲之算法c语言实现,3GPP机密性和完整性算法规范128-EEA3和128-EIA3(二)----祖冲之算法的C语言实现...
  5. 取本周日期 C# .net
  6. 论文笔记_S2D.35-2017-IROS_利用CNNs联合预测RGB图像的深度、法线和表面曲率
  7. 论文笔记_S2D.20_2017-ICCV-从单张RGB图像到精确尺度深度图评估的一种双支网络
  8. opencv图像分析与处理(11)- 频率域滤波消除周期噪声
  9. 高等数学(七)- 多元函数微分学(2)【多元函数极值问题】
  10. JTabel 中监听某个单元格的值确实改变了