admin管理员组文章数量:1794759
GEE APP:汉森2000
简介
本资源库提供在谷歌地球引擎上估算地图精度和面积的工具和指南。 本资源库中提供的工具并非详尽无遗,应尽可能依赖现有工具(如 TimeSync 或 Collect Earth)。 这是一个正在进行中的项目,欢迎社区参与。
摘要
遥感分析最常见的结果之一是对土地表面各种现象的量化,例如森林砍伐、农田扩张、城市化、土地利用模式等。遥感的优势在于能够以很小或没有成本提供对感兴趣区域的全面覆盖,但结果从来都不是完美的!在试图将反射的阳光或反向散射的长波辐射转化为关于复杂土地表面过程的信息时,分类错误是不可避免的。错误的存在可能会在基于遥感的地图中引入实质性的偏差。为了使遥感科学对地球及其居民的政策和决策产生影响,基于卫星图像的分析必须产生有效的科学推断——缺乏基于推断的参数评估的地图对科学推断的实用性很小;“从本质上讲,它们可能只是漂亮的图片”。随着免费数据和强大计算平台的出现,制图从未如此简单,这使得“漂亮的图片”这一说法比以往任何时候都更真实。幸运的是,从基于设计的推断的角度来看,典型的遥感分析是有吸引力的。在基于设计的推断框架中,选择一组样本人口单元(在这种情况下是像素),使其代表更大的人口(即地图中的所有像素),并在每个样本位置观察参考条件。对样本数据应用一个不偏倚的估计量,考虑到分类错误的影响,提供了经过偏差调整的面积估计。地图准确性的度量也从样本数据中估计。此外,应用方差估计量可以量化估计的不确定性,以置信区间的形式表示。
推理协议实施中的一个常见瓶颈是参考观测的收集。一个强大的参考数据来源是Landsat档案,因为它允许对每个样本位置的观测时间序列进行检查,但下载数据和提取时间序列数据需要大量的存储空间和时间,尤其是对于大面积区域。Google Earth Engine缓解了这种需求,因为Landsat的时间序列与Sentinel-2数据相结合——这两者都托管在GEE上——可以为世界上任何像素提取,而无需下载一字节的数据!该应用程序提供了从研究区域选择样本(抽样设计)、提取样本位置的参考数据(响应设计)以及对样本数据应用无偏估计器以估算区域和地图精度(分析)的支持。
抽样设计:支持四种设计:简单随机、简单系统分层随机和分层系统。 对于分层设计,应提供一张地图,其中的地图类别与分层相对应。 目前,评估单位为 30 米×30 米像素,输出为包含样本单位位置的形状文件。 用户可根据文献建议任意设置或确定样本大小以及样本单位的分层分配。 响应设计:支持 Landsat 数据时间序列的可视化以及 Landsat 和 Sentinel-2 对样本位置的显示。 分析:支持使用分层估算器1,4 和模型辅助回归估算器2,5。 这两种估算器都能估算所提供地图中每个类别的面积、用户和制作者对每个类别的准确度、地图总体准确度以及每个估算值的置信区间。
代码
代码语言:javascript代码运行次数:0运行复制var HansenUMD = ee.Image("UMD/hansen/global_forest_change_2017_v1_5"),
LSIB = ee.FeatureCollection("USDOS/LSIB/2013");
// Clip the Hansen forest loss dataset to a country boundary
var country, startYear, endYear, selectCountry, countryExtent,
clippedAndMasked;
var userPanel = ui.Panel({style: {width: '400px'}});
ui.root.add(userPanel)
var removeCountries = LSIB.filterMetadata('name','not_contains','dispute')
var countryList = ee.List(removeCountries.aggregate_array('name'))
.reduce(ee.Reducer.frequencyHistogram())
var countryDict = ee.Dictionary(countryList)
// TODO: Convert to evaluate
countryList = countryDict.keys().getInfo()
var header = ui.Label('Clip Hansen tree cover loss product')
var startLabel = ui.Label('Start Year:')
startYear = ui.Textbox('Start Year', '2001')
var endLabel = ui.Label('End Year:')
endYear = ui.Textbox('End Year', '2017')
var selectCountry = ui.Select({
items: countryList,
})
var clip = function() {
var year1 = ee.Number.parse(startYear.getValue()).subtract(2000)
var year2 = ee.Number.parse(endYear.getValue()).subtract(2000)
var changeImage = HansenUMD.select('lossyear')
var forestImage = HansenUMD.select('treecover2000')
var gain = HansenUMD.select('gain')
var water = HansenUMD.select('datamask')
// MAKE BETTER, WATER, GAIN/LOSS
// TREE COVER THRESHOLD
// STRATIFICATION: ADD BUFFER
// ADD NF FOR YEAR
// 1 = Tree loss
// 2 = Forest
// 3 = Non forest
// 4 = Gain
var strata = changeImage.gt(0)
.add(forestImage.gte(30).and(changeImage.eq(0)).and(gain.eq(0)).multiply(2))
.add(forestImage.lt(30).and(changeImage.eq(0)).and(gain.eq(0)).multiply(3))
.add(gain.gt(0).and(changeImage.eq(0)).multiply(4))
.rename('strata')
var countryName = selectCountry.getValue()
countryExtent = LSIB.filterMetadata('name','equals',countryName)
// var clippedImage = changeImage.addBands(forestImage)
// .clipToCollection(countryExtent)
var clippedImage = strata.clipToCollection(countryExtent)
var mask = clippedImage.gte(ee.Image(year1))
.and(clippedImage.lte(ee.Image(year2)))
clippedAndMasked = clippedImage.toInt8()//.updateMask(mask)
Map.addLayer(clippedAndMasked, {min: 1, max: 4, palette: ['red','green','black','yellow']}, 'strata')
Map.centerObject(countryExtent)
exportBtn.setDisabled(false)
}
var clipImage = ui.Button("Clip image", clip);
function exportMap() {
Export.image.toAsset({
image: clippedAndMasked,
description: exportText.getValue(),
assetId: exportText.getValue(),
scale: 30,
maxPixels: 1e13,
region: countryExtent.geometry().convexHull()
})
}
var exportLabel = ui.Label("Export the map...");
var exportText = ui.Textbox('Output Name:','outputName')
var exportBtn = ui.Button("Export Map", exportMap);
// exportText.setDisabled(true)
exportBtn.setDisabled(true)
userPanel.add(header)
userPanel.add(selectCountry)
userPanel.add(startLabel)
userPanel.add(startYear)
userPanel.add(endLabel)
userPanel.add(endYear)
userPanel.add(clipImage)
userPanel.add(exportLabel);
userPanel.add(exportText)
userPanel.add(exportBtn);
结果
引用
- Olofsson P, et al. (2013). Making better use of accuracy data in land change studies: Estimating accuracy and area... Remote Sensing of Environment, 129, 122-131.
- McRoberts R E (2011). Satellite image-based maps: Scientific inference or pretty pictures? Remote Sensing of Environment, 115, 715-724.
- Olofsson P, et al. (2014). Good practices for estimating area and assessing accuracy of land change. Remote Sensing of Environment, 148, 42-57.
- Cochran W G (1977). Sampling Techniques: 3d Ed. Wiley.
- Särndal C E, et al. (1992). Model assisted survey sampling. Springer.
- GFOI (2016). Integration of remote-sensing and ground-based observations for estimation of emissions and removals of greenhouse gases in forests: Methods and Guidance from the Global Forest Observations Initiative, Edition 2.0. UN-FAO, Rome.
本文标签: GEE APP汉森2000
版权声明:本文标题:GEE APP:汉森2000 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1754640035a1704663.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论