全球河流阻塞数据库 (GROD)
GROD v1.1(文件名:GROD_v1.1.csv),即全球河流阻塞数据库 1.1 版,包含 30549 个人工识别的阻碍河流纵向流动的人为结构。谷歌地球引擎卫星地图上的所有河流障碍物都已在全球陆地卫星河宽(GRWL)数据库中标注。每个障碍物都有六种类型--水坝、水闸、低水头水坝、渠道水坝、部分水坝 1 和部分水坝 2。有关绘图过程和数据质量的详细信息,请参阅该出版物,数据集可在此处访问:
文章引用
Yang, X., Pavelsky, T.M., Ross, M.R., Januchowski‐Hartley, S.R., Dolan, W., Altenau, E.H., Belanger, M., Byron, D., Durand, M., Van Dusen, I. and Galit, H., 2022. Mapping flow‐obstructing structures on global rivers. Water Resources Research, 58(1), p.e2021WR030386.
数据引用
Yang, X., Pavelsky, T. M., Ross, M. R. V., Januchowski-Hartley, S. R., Dolan, W., Altenau, E. H., Belanger, M., Byron, D., Durand, M., Van Dusen,
I., Galit, H., Jorissen, M., Langhorst, T., Lawton, E., Lynch, R., Mcquillan, K. A., Pawar, S., & Whittemore, A. (2021). Global River Obstruction
Database v1.1 (v1.1) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.5793918
摘要
全球各地的河流上建造了许多障碍物(如水坝和水闸),以帮助蓄水、促进航行、产生能源、缓解洪水以及支持工业和农业生产。然而,由于缺乏有关这些障碍物位置的公开信息,我们评估其环境影响的能力大打折扣。在这项研究中,我们利用谷歌提供的公开卫星数据,手动识别全球所有大河(宽度≥30 米)上的河流障碍物,建立了全球河流障碍物数据库(Global River Obstruction Database,简称 GROD)。全球河流障碍物数据库由 30,549 个独特的障碍物组成,这些障碍物被归类为以下六种类型之一:水坝、低水头水坝、水闸、河道水坝(阻碍多河道河流中一条河道的水坝)以及两种类型的部分水坝(部分横跨河流的水坝)。通过反复对 GROD 障碍物子集进行分类,我们估计分类一致性很高。通过将 GROD 与其他五个障碍物数据集进行比较,我们估计 GROD 包含了所研究河流中 90% 以上的障碍物。我们预计,GROD 的发布将帮助世界各地的人们更好地了解和管理人类对河流的影响。
为了帮助蓄水、方便航行、产生能源、缓解洪水以及支持工业和农业生产,人们已经并将继续建造阻碍河流自然流动的障碍物。然而,由于建造和拆除这些障碍物的历史悠久而复杂,我们对它们的位置和类型缺乏全球统一的记录。在此,我们采用一致的方法,对全球 210 万公里大河(宽度≥30 米)上的障碍物进行了视觉定位和分类。我们以谷歌地球引擎的高分辨率图像为基础绘制地图,其中许多地方的分辨率达到了米级。由此产生的全球河流障碍物数据库(GROD)包含 30,549 个独特的障碍物,涵盖六种不同的障碍物类型:水坝、水闸、低水头水坝、河道水坝和两种局部水坝。通过对障碍物子集进行多次分类,我们能够对完全与河流相交的三类障碍物(水坝、低水头坝和水闸)显示出较高的分类一致性(平均平衡准确率为 87%)。三类局部障碍物的分类一致性稍差(平均平衡准确率为 61%)。总体而言,通过将全球资源数据库与类似的数据集进行比较,我们估计全球资源数据库可能捕捉到了大河上 90% 以上的障碍物。我们预计,GROD 将引起水文建模、水生生态学、地貌学和水资源管理界的广泛兴趣。
数据特色
- 我们人工识别了全球 210 万公里大河上的 30,549 个河流障碍物
- 全球河流障碍物数据库为了解人类对河流的影响提供了丰富的新背景
- 全球河流障碍数据库识别了许多被其他全球水坝数据库遗漏的河内结构
代码
var grod = ee.FeatureCollection("projects/sat-io/open-datasets/GROD/GROD_V11");
print(grod.first())
print(grod.aggregate_histogram('type'))
// Define color palette for each property type
var dict = ee.Dictionary({
'Channel dam': '#d73027', // Red
'Dam': '#fc8d59', // Orange
'Lock': '#fee08b', // Yellow
'Low head dam': '#d9ef8b', // Light Green
'Partial dam 1': '#91cf60', // Dark Green
'Partial dam 2': '#1a9850', // Dark Teal
});
// Function to style features based on property type
var styleFeatures = function(feature) {
var color = dict.get(feature.get('type')); // Use default color if type not found
return feature.set('styleProperty', ee.Dictionary({'pointSize': 2, 'color': color})); // Set style directly
};
// Apply styling to the feature collection
var styledFeatures = grod.map(styleFeatures);
// Function to add a layer for each type
function addLayer(type) {
print(type);
Map.addLayer(styledFeatures.filter(ee.Filter.eq('type', type)).style({styleProperty: 'styleProperty'}), {}, type);
}
// Apply `addLayer` to each record in `palette.keys()`
dict.keys().getInfo().map(addLayer);
var dict = ee.Dictionary({
'Channel dam': '#d73027', // Red
'Dam': '#fc8d59', // Orange
'Lock': '#fee08b', // Yellow
'Low head dam': '#d9ef8b', // Light Green
'Partial dam 1': '#91cf60', // Dark Green
'Partial dam 2': '#1a9850', // Dark Teal
});
var dict = {
"names": [
'Channel dam',
'Dam',
'Lock',
'Low head dam',
'Partial dam 1',
'Partial dam 2'
],
"colors": [
'#d73027', // Red
'#fc8d59', // Orange
'#fee08b', // Yellow
'#d9ef8b', // Light Green
'#91cf60', // Dark Green
'#1a9850', // Dark Teal
]};
// Create a panel to hold the legend widget
var legend = ui.Panel({
style: {
position: 'bottom-left',
padding: '8px 15px'
}
});
// Function to generate the legend
function addCategoricalLegend(panel, dict, title) {
// Create and add the legend title.
var legendTitle = ui.Label({
value: title,
style: {
fontWeight: 'bold',
fontSize: '18px',
margin: '0 0 4px 0',
padding: '0'
}
});
panel.add(legendTitle);
var loading = ui.Label('Loading legend...', {margin: '2px 0 4px 0'});
panel.add(loading);
// Creates and styles 1 row of the legend.
var makeRow = function(color, name) {
// Create the label that is actually the colored box.
var colorBox = ui.Label({
style: {
backgroundColor: color,
// Use padding to give the box height and width.
padding: '8px',
margin: '0 0 4px 0'
}
});
// Create the label filled with the description text.
var description = ui.Label({
value: name,
style: {margin: '0 0 4px 6px'}
});
return ui.Panel({
widgets: [colorBox, description],
layout: ui.Panel.Layout.Flow('horizontal')
});
};
// Get the list of palette colors and class names from the image.
var palette = dict['colors'];
var names = dict['names'];
loading.style().set('shown', false);
for (var i = 0; i < names.length; i++) {
panel.add(makeRow(palette[i], names[i]));
}
Map.add(panel);
}
// Add the legend to the map
addCategoricalLegend(legend, dict, 'Global River Obstruction Database v1.1');
结果
样例代码
https://code.earthengine.google.com/?scriptPath=users/sat-io/awesome-gee-catalog-examples:hydrology/GLOBAL-RIVER-OBSTRUCTION-DATABASE
License¶
The datasets are provided under a Creative Commons 4.0 International License.
Provided by: Yang et al 2021
Curated in GEE by: Samapriya Roy
Keywords: river obstruction, dam, lock, low head dam, weir, partial dam, wing dam, dataset, fragmentation, SWOT
网址推荐
机器学习
https://www.cbedai.net/xg