- 数据集可用时间
- 2017-04-05T00:00:00Z–2017-04-05T00:00:00Z
- 数据集生产者
- RESOLVE Biodiversity and Wildlife Solutions
- 标签
说明
RESOLVE 生态区数据集于 2017 年更新,描绘了代表我们这个生机勃勃的星球的 846 个陆地生态区。 您可以在 https://ecoregions2017.appspot.com/ 或在 Earth Engine中查看风格化地图。
简单来说,生态区是指具有区域范围的生态系统。 具体而言,生态区代表着不同的生物多样性组合(所有类群,而不仅仅是植被),其边界包括维持生态过程所需的空间。生态区为保护规划提供了一个有用的基本地图,尤其因为它们利用的是自然边界而非政治边界,定义了生物群系内不同的生物地理组合和生态栖息地,并有助于呈现地球的生物多样性。
此数据集基于生物地理学(一门关于动植物分布的科学)的最新进展。原始生态区数据集自 2001 年推出以来得到了广泛应用,为生态学家对全球气候变化对自然的影响、世界甲虫的分布以及现代保护规划的最新分析提供了基础。
846 个陆地生态区分为 14 个生物群系和 8 个领域。其中 6 个生物群系是森林生物群系,其余 8 个是非森林生物群系。 对于森林生物群系,生态区(Dinerstein 等人, 2017 年)和保护区(UNEP-WCMC 2016 年)的地理边界与 2000 年至 2015 年的全球森林变化数据(Hansen 等人,2013 年)相交,以计算保护区内栖息地的百分比和保护区外剩余栖息地的百分比。 同样,非森林生态区和保护区(UNEP-WCMC 2016 年)的边界与 2000 年的人为生物群系数据(Anthromes v2)(Ellis 等人, 2010 年)相交,以确定保护区内外剩余的栖息地。每个生态区都有一个唯一的 ID、面积(平方度)和 NNH(Nature Needs Half,自然需要一半)类别 1-4。NNH 类别基于保护区内栖息地的百分比和保护区外剩余栖息地的百分比。
- 一半受到保护:超过 50% 的生态区总面积已受到保护。
- 自然可能达到一半:不到 50% 的生态区总面积受到保护,但如果向系统中添加新的保护区,剩余未受保护的自然栖息地的数量可能会使保护区面积超过 50%。
- 自然可能恢复:剩余的受保护和未受保护的自然栖息地的数量不到 50%,但超过 20%。此类别中的生态区需要恢复才能达到“一半受到保护”的状态。
- 自然处于危险之中:剩余的受保护和未受保护的自然栖息地的数量小于或等于 20%。短期内无法实现“一半受到保护”的目标,应将重点放在保护剩余的本地栖息地碎片上。
更新后的生态区 2017 是关于每个陆地生态区剩余栖息地的最新数据集(截至 2018 年 2 月)。发布该数据集是为了记录在实现 “自然需要一半”这一远大目标方面的进展,即保护地球上一半的土地,以拯救生机勃勃的陆地生物圈。
注意 - 许多生态区都是非常复杂的多边形,拥有超过一百万个顶点,例如岩石和冰。这些生态区在必要时会进行拆分,并保留 Eco_ID 等属性。如果您想查看所有 已拆分的生态区,请运行此脚本。
表格结构
表格结构
| 名称 | 类型 | 说明 |
|---|---|---|
| BIOME_NAME | STRING | 生物群系名称 |
| BIOME_NUM | 双精度 | 生物群系编号 |
| COLOR | STRING | 颜色 |
| COLOR_BIO | STRING | 生物群系颜色 |
| COLOR_NNH | STRING | NNH 颜色 |
| ECO_ID | 双精度 | 生态区唯一 ID |
| ECO_NAME | STRING | 生态区名称 |
| LICENSE | STRING | CC-BY 4.0 |
| NNH | 双精度 | NNH 类别 (1-4),基于保护区内栖息地的百分比和保护区外剩余栖息地的百分比 |
| NNH_NAME | STRING | 一半受到保护、自然可能达到一半、自然可能恢复或自然处于危险之中 |
| OBJECTID | 双精度 | 对象 ID |
| REALM | STRING | 大区名称 |
| SHAPE_AREA | 双精度 | 生态区多边形的面积(平方度) |
| SHAPE_LENG | 双精度 | 生态区多边形的长度(度) |
使用条款
使用条款
引用
通过 Earth Engine 探索
代码编辑器 (JavaScript)
var ecoRegions = ee.FeatureCollection('RESOLVE/ECOREGIONS/2017'); // patch updated colors var colorUpdates = [ {ECO_ID: 204, COLOR: '#B3493B'}, {ECO_ID: 245, COLOR: '#267400'}, {ECO_ID: 259, COLOR: '#004600'}, {ECO_ID: 286, COLOR: '#82F178'}, {ECO_ID: 316, COLOR: '#E600AA'}, {ECO_ID: 453, COLOR: '#5AA500'}, {ECO_ID: 317, COLOR: '#FDA87F'}, {ECO_ID: 763, COLOR: '#A93800'}, ]; // loop over all other features and create a new style property for styling // later on var ecoRegions = ecoRegions.map(function(f) { var color = f.get('COLOR'); return f.set({style: {color: color, width: 0}}); }); // make styled features for the regions we need to update colors for, // then strip them from the main asset and merge in the new feature for (var i=0; i < colorUpdates.length; i++) { colorUpdates[i].layer = ecoRegions .filterMetadata('ECO_ID','equals',colorUpdates[i].ECO_ID) .map(function(f) { return f.set({style: {color: colorUpdates[i].COLOR, width: 0}}); }); ecoRegions = ecoRegions .filterMetadata('ECO_ID','not_equals',colorUpdates[i].ECO_ID) .merge(colorUpdates[i].layer); } // use style property to color shapes var imageRGB = ecoRegions.style({styleProperty: 'style'}); Map.setCenter(16, 49, 4); Map.addLayer(imageRGB, {}, 'RESOLVE/ECOREGIONS/2017');
import ee import geemap.core as geemap
Colab (Python)
eco_regions = ee.FeatureCollection('RESOLVE/ECOREGIONS/2017') # patch updated colors color_updates = [ {'ECO_ID': 204, 'COLOR': '#B3493B'}, {'ECO_ID': 245, 'COLOR': '#267400'}, {'ECO_ID': 259, 'COLOR': '#004600'}, {'ECO_ID': 286, 'COLOR': '#82F178'}, {'ECO_ID': 316, 'COLOR': '#E600AA'}, {'ECO_ID': 453, 'COLOR': '#5AA500'}, {'ECO_ID': 317, 'COLOR': '#FDA87F'}, {'ECO_ID': 763, 'COLOR': '#A93800'}, ] # loop over all other features and create a new style property for styling # later on eco_regions = eco_regions.map( lambda f: f.set({'style': {'color': f.get('COLOR'), 'width': 0}}) ) # make styled features for the regions we need to update colors for, # then strip them from the main asset and merge in the new feature for i in range(len(color_updates)): color_updates[i]['layer'] = eco_regions.filterMetadata( 'ECO_ID', 'equals', color_updates[i]['ECO_ID'] ).map( lambda f: f.set( {'style': {'color': color_updates[i]['COLOR'], 'width': 0}} ) ) eco_regions = eco_regions.filterMetadata( 'ECO_ID', 'not_equals', color_updates[i]['ECO_ID'] ).merge(color_updates[i]['layer']) # use style property to color shapes image_rgb = eco_regions.style(styleProperty='style') m = geemap.Map() m.set_center(16, 49, 4) m.add_layer(image_rgb, {}, 'RESOLVE/ECOREGIONS/2017') m
以 FeatureView 的形式可视化
FeatureView 是
FeatureCollection 的只读加速表示形式。如需了解详情,请参阅
FeatureView 文档。
代码编辑器 (JavaScript)
var fvLayer = ui.Map.FeatureViewLayer('RESOLVE/ECOREGIONS/2017_FeatureView'); var visParams = { opacity: 1, polygonFillColor: { property: 'NNH_NAME', categories: [ ['Half Protected', 'blue'], ['Nature Could Reach Half Protected', 'green'], ['Nature Could Recover', 'yellow'], ['Nature Imperiled', 'orange'] ], defaultValue: 'lightgrey' } }; fvLayer.setVisParams(visParams); fvLayer.setName('Ecoregions (Nature Needs Half category)'); Map.setCenter(16, 49, 4); Map.add(fvLayer);
import ee import geemap.core as geemap
Colab (Python)
eco_regions = ee.FeatureCollection('RESOLVE/ECOREGIONS/2017') # patch updated colors color_updates = [ {'ECO_ID': 204, 'COLOR': '#B3493B'}, {'ECO_ID': 245, 'COLOR': '#267400'}, {'ECO_ID': 259, 'COLOR': '#004600'}, {'ECO_ID': 286, 'COLOR': '#82F178'}, {'ECO_ID': 316, 'COLOR': '#E600AA'}, {'ECO_ID': 453, 'COLOR': '#5AA500'}, {'ECO_ID': 317, 'COLOR': '#FDA87F'}, {'ECO_ID': 763, 'COLOR': '#A93800'}, ] # loop over all other features and create a new style property for styling # later on eco_regions = eco_regions.map( lambda f: f.set({'style': {'color': f.get('COLOR'), 'width': 0}}) ) # make styled features for the regions we need to update colors for, # then strip them from the main asset and merge in the new feature for i in range(len(color_updates)): color_updates[i]['layer'] = eco_regions.filterMetadata( 'ECO_ID', 'equals', color_updates[i]['ECO_ID'] ).map( lambda f: f.set( {'style': {'color': color_updates[i]['COLOR'], 'width': 0}} ) ) eco_regions = eco_regions.filterMetadata( 'ECO_ID', 'not_equals', color_updates[i]['ECO_ID'] ).merge(color_updates[i]['layer']) # use style property to color shapes image_rgb = eco_regions.style(styleProperty='style') m = geemap.Map() m.set_center(16, 49, 4) m.add_layer(image_rgb, {}, 'RESOLVE/ECOREGIONS/2017') m