植被覆盖度获取

植被覆盖度(Fractional Vegetation Cover,FVC),是指植被(包括叶、茎、枝)在地面的垂直投影面积占统计区总面积的百分比,范围在 [0,1] 之间。FVC 是刻画地表植被覆盖的重要参数,能够直观的反映一个地区绿的程度,是反应植被生长状态的重要指标,在植被变化、生态环境研究、水土保持、城市宜居等方面问题研究中起到重要作用。本案例以 Landsat-8 数据为例,计算贵州省区域的 FVC 指数。

初始化环境

import aie

aie.Authenticate()
aie.Initialize()

Landsat-8 数据检索

指定区域、时间、云量检索 Landsat-8 ,并对数据进行去云处理。

def removeLandsatCloud(image):
cloudShadowBitMask = (1 << 4)
cloudsBitMask = (1 << 3)
qa = image.select('QA_PIXEL')
mask = qa.bitwiseAnd(aie.Image(cloudShadowBitMask)).eq(aie.Image(0)).And(qa.bitwiseAnd(aie.Image(cloudsBitMask)).eq(aie.Image(0)))
return image.updateMask(mask)
feature_collection = aie.FeatureCollection('China_Province') \
.filter(aie.Filter.eq('province', '贵州省')) geometry = feature_collection.geometry() dataset = aie.ImageCollection('LANDSAT_LC08_C02_T1_L2') \
.filterBounds(geometry) \
.filterDate('2021-05-01', '2021-10-31') \
.filter(aie.Filter.lte('eo:cloud_cover', 30.0))
print(dataset.size().getInfo())
dataset = dataset.map(removeLandsatCloud)
image = dataset.median()

裁剪影像

image = image.clip(geometry)

计算 NDVI 指数

ndvi = image.normalizedDifference(['SR_B5', 'SR_B4']).rename(['NDVI'])

ndvi_vis  = {
'min': -0.2,
'max': 0.6,
'palette': ['#d7191c', '#fdae61', '#ffffc0', '#a6d96a', '#1a9641']
} map = aie.Map(
center=ndvi.getCenter(),
height=800,
zoom=6
) map.addLayer(
ndvi,
ndvi_vis,
'NDVI',
bounds=ndvi.getBounds()
) map

定义植被覆盖度算法

使用像元二分模型法进行 FVC 估算。 利用 aie.Reducer.histogram 实现输入影像的直方图统计。通过 numpy 调用数组运算,计算生长季的 NDVI 像元百分比统计中 5% 位置 NDVI 值作为土壤部分 NDVIsoil95% 位置的 NDVI 值作为植被部分 NDVIveg ,并通过 FVC = (NDVI - NDVIsoil)/ (NDVIveg - NDVIsoil ) 计算 FCV ,得出 FVC

import numpy as np
import pandas as pd
def calculateFVC(image, scale):
histogram = image.reduceRegion(aie.Reducer.histogram(2000), None, scale)
histogram_info = histogram.getInfo()
# print(histogram_info) bucketKey = histogram_info['NDVI_range']
bucketValue = histogram_info['NDVI_counts'] key = np.array(bucketValue)
accSum = np.cumsum(key)
# print(accSum[20])
# print(accSum[-1])
accPercent = accSum / accSum[-1] p5 = np.searchsorted(accPercent, 0.5) min_ndvi = bucketKey[p5 + 1]
# print(min_ndvi) p95 = np.searchsorted(accPercent, 0.95)
max_ndvi = bucketKey[p95]
# print(max_ndvi) higher_ndvi_mask = image.gt(aie.Image(max_ndvi))
lower_ndvi_mask = image.lt(aie.Image(min_ndvi))
middle_ndvi_mask = aie.Image(1).subtract(higher_ndvi_mask).subtract(lower_ndvi_mask) tmp = image.subtract(aie.Image(min_ndvi)).divide(aie.Image(max_ndvi).subtract(aie.Image(min_ndvi)))
FVC = aie.Image(1).multiply(higher_ndvi_mask).add(aie.Image(0).multiply(lower_ndvi_mask)).add(tmp.multiply(middle_ndvi_mask))
return FVC

数据可视化

FVC = calculateFVC(ndvi, 1000)

vis_params = {
'min': 0,
'max': 1,
'palette': [
'#a1a1a1', '#008000'
]
} map.addLayer(
FVC,
vis_params,
'fvc',
bounds=ndvi.getBounds()
)
map

导出数据

task = aie.Export.image.toAsset(FVC, 'FVC_export_result', 100)
task.start()

后记

AIE进行遥感云计算的时候还是很方便,可能刚刚出来,很多地方还是需要完善,这个案例里面,我导出数据以后要到ArcGIS里面再出来一下下。接下来,我利用自然间断法分成了五类,然后再统计这五类的面积,这ArcGIS操作都很简单了,这里就不多说,还有就是阿里云的小哥哥特别有耐心,特别负责任,计算也很强。

本案例主要引用AIE官方案例。

基于AIE的贵州省FVC提取的更多相关文章

  1. 基于TF-IDF的新闻标签提取

    基于TF-IDF的新闻标签提取 1. 新闻标签 新闻标签是一条新闻的关键字,可以由编辑上传,或者通过机器提取.新闻标签的提取主要用于推荐系统中,所以,提取的准确性影响推荐系统的有效性.同时,对于将标签 ...

  2. Attention-based Extraction of Structured Information from Street View Imagery:基于注意力的街景图像提取结构化信息

    基于注意力的街景图像提取结构化信息 一种用于真实图像文本提取问题的TensorFlow模型. 该文件夹包含在FSNS数据集数据集上训练新的注意OCR模型所需的代码,以在法国转录街道名称. 您还可以使用 ...

  3. 基于 Python 的自动文本提取:抽象法和生成法的比较

    我们将现有的 提取方法(Extractive)(如LexRank,LSA,Luhn和Gensim现有的TextRank摘要模块)与含有51个文章摘要对的Opinosis数据集进行比较.我们还尝试使用T ...

  4. 基于python的extract_msg模块提取outlook邮箱保存的msg文件中的附件

    笔者保存了一些outlook邮箱中保存的一些msg格式的邮件文件,现需要将其中的附件提取出来, 当然直接在outlook中就可以另存附件,但outlook默认是不支持批量提取邮件中的附件的 思考过几种 ...

  5. [python] 基于词云的关键词提取:wordcloud的使用、源码分析、中文词云生成和代码重写

    1. 词云简介 词云,又称文字云.标签云,是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思.常见于博客.微博 ...

  6. 基于tess4j的图片文字提取

    1.文件结构目录 2.具体实现 ①添加maven依赖 <dependency> <groupId>net.sourceforge.tess4j</groupId> ...

  7. 我为开源做贡献,网页正文提取——Html2Article

    为什么要做正文提取 一般做舆情分析,都会涉及到网页正文内容提取.对于分析而言,有价值的信息是正文部分,大多数情况下,为了便于分析,需要将网页中和正文不相干的部分给剔除.可以说正文提取的好坏,直接影响了 ...

  8. TextRank:关键词提取算法中的PageRank

    很久以前,我用过TFIDF做过行业关键词提取.TFIDF仅仅从词的统计信息出发,而没有充分考虑词之间的语义信息.现在本文将介绍一种考虑了相邻词的语义关系.基于图排序的关键词提取算法TextRank [ ...

  9. 关键词提取算法TextRank

    很久以前,我用过TFIDF做过行业关键词提取.TFIDF仅仅从词的统计信息出发,而没有充分考虑词之间的语义信息.现在本文将介绍一种考虑了相邻词的语义关系.基于图排序的关键词提取算法TextRank. ...

随机推荐

  1. 题解【洛谷 P1466 [USACO2.2]集合 Subset Sums】

    题目传送门 设 \(sum=1+2+3+4+\dots+n=\dfrac{n(n+1)}{2}\). 如果 \(2\nmid sum\),则显然没有方案. 如果 \(2\mid sum\),则这两个集 ...

  2. linux安全之网络设置

    可以通过/etc/sysctl.conf控制和配置Linux内核及网络设置. # 避免放大攻击 net.ipv4.icmp_echo_ignore_broadcasts = 1 # 开启恶意icmp错 ...

  3. Python logging日志管理

    import logging logger = logging.getLogger("simple_example") logger.setLevel(logging.DEBUG) ...

  4. OS模块中获取当前文件的绝对路径的相关方法

    os.path.realpath(__file__) 作用:获取当前执行py脚本的绝对路径(在当前工作目录下的绝对路径) __file__ : 表示当前文件的本身,一般值是当前文件的相对路径 例如: ...

  5. NC20471 [ZJOI2007]棋盘制作

    题目链接 题目 题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名. 据说国际象棋起源于易经的思想,棋盘是一个8*8大小的黑白相间的方阵,对应八八六十四卦,黑白对 ...

  6. Java中list集合自定义排序-2022新项目

    一.业务场景 为了加快首页数据查询的效率,因此将首页查询的数据大多数都放在了缓存中,包括各种list集合数据.对这些 从缓存中获取的数据做了一个兜底处理,如果从缓存中没有获取到数据,则直接从数据库中去 ...

  7. MySQL编译安装-出现错误提示

    环境: 系统:centos7.6 MySQL:5.6.3 cmake:2.8.6 原因: 安装ncurses-devel运行环境 [root@localhost ~]# yum -y install ...

  8. 杀死 Windows 某个端口

    进入终端命令行,输入netstat -aon|findstr 3000查找端口号所对应的 PID: 输入指令taskkill /pid 20348 /f:

  9. 给你的博客加个aplayer

    1.在 layout.ejs 中 body 标签内粘贴入以下 <!--音乐--> <link rel="stylesheet" href="https: ...

  10. {版本发布公告}HMS Core 6.6.0来啦

    分析服务 ◆ 留存分析支持¬将流失用户存为受众,开发者通过对流失人群的分层以及多维分析,在制定相关用户召回策略时将更有针对性: ◆ 原"受众分析"更名为"人群洞察&quo ...