利用Hadoop计算FVC(植被覆盖度)思路
来源:互联网 发布:安卓 gba 模拟器 知乎 编辑:程序博客网 时间:2024/06/06 19:27
植被覆盖度(Fractional Vegetation Cover, FVC)指植被冠层的垂直投影面积与土壤总面积之比,像元的植被覆盖度计算公式为:
式中: NDVI是像元的归一化植被指数,NDVImin 、 NDVImax分别为整个研究区内NDVI的最小值、最大值,像元NDVI的计算公式为:
式中:DNNIR 、DNR 表示近红外、红光波段的灰度值
因此,要求植被覆盖度,首先要获得该区域近红外和红光波段的灰度值或反射率,然后把灰度值或反射率代入上面公式求出归一化植被指数 ,接着统计流域的最小值和最大值 ,最后再利用FVC求出植被覆盖度,具体的算法流程图如下图所示。
根据FVC计算流程,设计MapReduce并行程序如下图所示。
Input:输入一个HDFS路径,该路径下包含5景遥感影像的压缩包。
Split:自定义FileInputFormat,将输入的HDFS路径分割成遥感影像的压缩包路径,即将K-V对<Path, NullWritable >传入到Map中,可以自定义构造函数来扩展 RecordReader函数,可以参考下面这篇文章:
https://www.ibm.com/developerworks/cn/data/library/bd-hadoopcombine/
public class FileInputFormatNew extends FileInputFormat<Path, NullWritable>{...}
Map阶段:输入5景Landsat8地表反射率影像,每景影像都是一个压缩包,每个map任务处理了数据不一样,但是执行的操作是相同的。Map的输入K-V对即经过Split过的影像压缩包路径<Path,NullWritable>,Map的输出K-V为影像文件名与对应的字节序列<Text, BytesWritable>。Map阶段的每个map任务都将生成一幅FVC影像,它们都是影像的一部分,这些FVC影像将输入到Reduce阶段,而<Text, BytesWritable>也将作为Reduce阶段的输入K-V对。
public class FVCMap extends Mapper<Path, NullWritable, Text, BytesWritable>{...}
Reduce阶段:Reduce阶段只有一个reduce任务,它接受map任务的输出,并把5幅小的FVC影像镶嵌成一幅大的影像,这幅影像就是整个流域的植被覆盖度,最后把结果输出到HDFS上。Reduce阶段的输入K-V对即为Map阶段的输出<Text, BytesWritable>,而输出自己已经在Reduce中定义了,所以Reduce函数的输出K-V为<NullWritable, NullWritable>。
public class FVCReduce extends Reducer<Text,BytesWritable,NullWritable,NullWritable{...}
阅读全文
0 0
- 利用Hadoop计算FVC(植被覆盖度)思路
- 遥感影像计算植被覆盖度FVC
- 遥感NDVI估算植被覆盖度
- 利用Excel VBA批量计算长时间序列植被物候动态阈值(逐像元)
- ENVI下植被覆盖度的遥感估算
- ENVI下植被覆盖度的遥感估算
- 利用hadoop计算WordCount
- 覆盖SEH的溢出利用检测思路
- Torque地图编辑器里利用fxShapeReplicator批量种树和植被(Use fxShapeReplicator speed your work)
- 归一化植被指数(NDVI)
- 利用hadoop计算文件中的最大值
- 制作植被覆盖指数-使用Flex渲染图层 并且标注图层
- zoj 雷达覆盖(计算几何 向量)
- FVC and HCI
- 中文句子相似度计算思路
- 相似度计算map-reduce实现思路
- ArcGIS制图技巧系列(1)还原真实的植被
- 植被指数
- http错误码
- 小型三维引擎设计实现-地球的渲染方法
- scanf 格式化字符串详解
- Windows 安装 Anaconda3 详细过程
- hdfs架构的简述与hdfs读写策略
- 利用Hadoop计算FVC(植被覆盖度)思路
- 在做RTSP摄像机H5无插件直播中遇到的对接海康摄像机发送OPTIONS心跳时遇到的坑
- 值得推荐的C/C++框架和库
- 8. String to Integer (atoi)
- 动态规划入门 数字三角形
- Codeforces Round #382 (Div. 2) B. Urbanization【数据注意+贪心证明】
- building caffe with cudnn fails with undefined reference to `cudnnSetActivationDescriptor' error
- Apache YARN/Mesos与Google Borg差距多远?
- 排序