- 데이터 세트 제공
- 2017-04-05T00:00:00Z–2017-04-05T00:00:00Z
- 데이터 세트 출처
- RESOLVE Biodiversity and Wildlife Solutions
- 태그
설명
2017년에 업데이트된 RESOLVE Ecoregions 데이터 세트는 살아있는 지구를 나타내는 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 카테고리는 보호 구역의 서식지 비율과 보호 구역 외부의 나머지 서식지 비율을 기반으로 합니다.
- Half Protected: 총 생태 지역 면적의 50% 이상이 이미 보호되고 있습니다.
- Nature Could Reach Half: 총 생태 지역 면적의 50% 미만이 보호되고 있지만, 보호되지 않은 자연 서식지의 양이 시스템에 새로운 보존 구역이 추가되면 50% 이상을 보호할 수 있습니다.
- Nature Could Recover: 남아 있는 보호된 자연 서식지와 보호되지 않은 자연 서식지의 양이 50% 미만이지만 20% 이상입니다. 이 카테고리의 생태 지역은 Half Protected에 도달하려면 복원이 필요합니다.
- Nature Imperiled: 남아 있는 보호된 자연 서식지와 보호되지 않은 자연 서식지의 양이 20% 이하입니다. 단기적으로 Half Protected를 달성하는 것은 불가능하며, 남아 있는 고유 서식지 조각을 보존하는 데 노력을 집중해야 합니다.
업데이트된 Ecoregions 2017은 각 육상 생태 지역의 나머지 서식지에 관한 최신 (2018년 2월 기준) 데이터 세트입니다. 이 데이터 세트는 살아있는 육상 생물권을 보존하기 위해 지구의 절반을 보호하는 Nature Needs Half의 비전 목표를 달성하기 위한 진행 상황을 차트로 표시하기 위해 출시되었습니다.
참고 - 일부 생태 지역은 Rock &Ice와 같이 백만 개가 넘는 꼭짓점이 있는 매우 복잡한 다각형입니다. 이러한 생태 지역은 필요한 경우 Eco_ID와 같은 속성을 유지하면서 분할되었습니다. 분할된 모든 생태 지역을 보려면 이 스크립트를 실행하세요.
테이블 스키마
테이블 스키마
| 이름 | 유형 | 설명 |
|---|---|---|
| BIOME_NAME | STRING | 생물군계 이름 |
| BIOME_NUM | DOUBLE | 생물군계 번호 |
| COLOR | STRING | 색상 |
| COLOR_BIO | STRING | 생물군계 색상 |
| COLOR_NNH | STRING | NNH 색상 |
| ECO_ID | DOUBLE | 생태 지역 고유 ID |
| ECO_NAME | STRING | 생태 지역 이름 |
| LICENSE | STRING | CC-BY 4.0 |
| NNH | DOUBLE | 보호 구역의 서식지 비율과 보호 구역 외부의 나머지 서식지 비율을 기반으로 하는 NNH 카테고리 (1~4) |
| NNH_NAME | STRING | Half Protected, Nature Could Reach Half, Nature Could Recover 또는 Nature Imperiled |
| OBJECTID | DOUBLE | 객체 ID |
| REALM | STRING | 렐름 이름 |
| SHAPE_AREA | DOUBLE | 생태 지역 다각형의 면적(제곱도) |
| SHAPE_LENG | DOUBLE | 생태 지역 다각형의 길이(도) |
이용약관
이용약관
인용
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