练习GEE数据加载及可视化
时间: 2025-06-30 14:04:51 浏览: 5
<think>我们正在讨论如何使用GoogleEarthEngine(GEE)加载数据并进行可视化。根据引用内容,我们可以从以下几个方面展开:1.数据加载:引用[1]提到使用DEM数据计算坡度和坡向,引用[2]提到使用土壤有机碳数据集,引用[3]提到加载ESA土地分类数据。2.可视化:引用[2]提到可视化土壤有机碳含量,引用[4]提到创建动图。因此,我们可以按照以下步骤进行:步骤1:加载数据(可以是影像、影像集合或特定数据集)步骤2:对数据进行处理(可选,比如计算NDVI、坡度等,但用户问题主要是加载和可视化,所以可选)步骤3:设置可视化参数步骤4:将数据添加到地图上进行可视化步骤5:高级可视化(如制作动图,引用[4])由于用户问题集中在加载和可视化,我们重点讲解这两个部分。注意:我们使用GEE的JavaScriptAPI(在线代码编辑器)进行演示,因为这是最常用的方式。但用户也可以使用PythonAPI,不过在线编辑器更便于可视化。具体步骤:1.加载数据:GEE提供了多种数据集,可以通过`ee.Image()`加载单幅影像,或`ee.ImageCollection()`加载影像集合。例如,加载Landsat8影像:```javascript//加载Landsat8影像集合,按日期、云量筛选varcollection=ee.ImageCollection('LANDSAT/LC08/C02/T1_L2').filterDate('2020-01-01','2020-12-31').filter(ee.Filter.lt('CLOUD_COVER',10));```或者加载单个影像(如SRTMDEM):```javascriptvardem=ee.Image('USGS/SRTMGL1_003');```或者加载土地分类数据(如引用[3]中的ESA土地分类):```javascriptvarlandCover=ee.Image("ESA/WorldCover/v100/2020");```2.可视化参数设置:可视化参数包括:-`bands`:选择要显示的波段(可以是一个或多个,如果是RGB显示则需要三个波段)-`min`和`max`:设置显示的最小和最大值(拉伸)-`palette`:设置颜色方案(单波段常用)-其他参数如`gamma`等例如,显示DEM:```javascriptvardemVis={min:0,max:4000,palette:['006633','E5FFCC','662A00','D8D8D8','F5F5F5']};```显示土地分类(分类数据通常用调色板):```javascriptvarlandCoverVis={min:10,max:100,palette:['#006400','#FFBB22','#FFFF4C','#F096FF','#FA0000','#B4B4B4','#F0F0F0','#0064C8','#0096A0','#00CF75','#002FA7']};```3.将数据添加到地图:```javascriptMap.addLayer(dem,demVis,'DEM');Map.addLayer(landCover,landCoverVis,'LandCover');```4.中心定位:```javascriptMap.centerObject(geometry,10);//geometry可以是点、区域等```5.高级可视化:制作动图(引用[4])使用影像集合制作动图:```javascript//假设我们有一个影像集合collection,并已经设置了可视化参数visvarthumb=ui.Thumbnail({image:collection,//注意:这里是一个影像集合,会按时间顺序制作动画params:vis,style:{position:'bottom-right',width:'600px'}});Map.add(thumb);```下面我们给出一个完整的示例,包括加载Landsat8影像、设置可视化参数、添加到地图,以及制作NDVI动画。示例:加载Landsat8影像并计算NDVI,然后制作时序动画步骤1:加载影像集合步骤2:计算NDVI(归一化植被指数)步骤3:设置NDVI的可视化参数(通常用绿色渐变)步骤4:将单景影像添加到地图步骤5:制作NDVI时序动画代码示例:```javascript//1.定义区域(这里使用中国的一个点,并放大到9级)varpoint=ee.Geometry.Point([116.0,39.0]);Map.centerObject(point,5);//2.加载Landsat8影像集合varcollection=ee.ImageCollection('LANDSAT/LC08/C02/T1_L2').filterDate('2020-01-01','2020-12-31').filter(ee.Filter.lt('CLOUD_COVER',10)).filterBounds(point);//3.计算NDVI函数varaddNDVI=function(image){varndvi=image.normalizedDifference(['SR_B5','SR_B4']).rename('NDVI');returnimage.addBands(ndvi);};//4.对集合中每幅影像计算NDVIvarndviCollection=collection.map(addNDVI);//5.创建一个NDVI影像集合(只包含NDVI波段)varndviBands=ndviCollection.select('NDVI');//6.设置NDVI可视化参数varvisParams={min:-1,max:1,palette:['blue','white','green']};//7.将第一幅影像添加到地图(预览)Map.addLayer(ndviCollection.first(),visParams,'FirstNDVI');//8.制作NDVI时序动画varthumb=ui.Thumbnail({image:ndviBands,params:visParams,style:{position:'bottom-right',width:'400px'}});Map.add(thumb);```注意:在GEE在线编辑器中运行此代码,地图上会显示第一幅NDVI影像,并在右下角出现一个动画播放器,可以播放整个时间序列的NDVI变化。另外,引用[3]中提到用remap重命名波段属性名称,这通常在需要重分类时使用,但本示例中我们直接使用了波段计算。总结:-加载数据:使用`ee.Image()`或`ee.ImageCollection()`,并通过过滤条件筛选数据。-可视化:通过设置可视化参数对象,然后使用`Map.addLayer()`添加图层。-高级可视化:使用`ui.Thumbnail`制作动画。最后,根据用户问题,我们生成相关问题。</think>### 如何使用 Google Earth Engine (GEE) 加载数据并进行可视化
以下是基于 GEE 官方文档和引用内容的完整操作指南,包含关键步骤和代码示例:
---
#### **1. 数据加载**
##### (1) 加载单幅影像
```javascript
// 加载全球DEM数据(SRTM)
var dem = ee.Image('USGS/SRTMGL1_003'); // 引用[1]
// 加载土地分类数据(ESA 10m分辨率)
var landCover = ee.Image("ESA/WorldCover/v100/2020"); // 引用[3]
// 加载土壤有机碳数据
var soilCarbon = ee.ImageCollection("OpenLandMap/SOL/SOL_ORGANIC-CARBON_USDA-6A1C_M/v02"); // 引用[2]
```
##### (2) 加载影像集合(时序数据)
```javascript
// 加载Landsat 8影像集
var landsat = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
.filterDate('2020-01-01', '2020-12-31')
.filterBounds(geometry); // geometry为自定义区域
```
##### (3) 关键过滤操作
```javascript
// 按空间范围过滤
var roi = ee.Geometry.Point([116.0, 39.0]); // 北京坐标
var filtered = landsat.filterBounds(roi);
// 按云量过滤(<10%)
var cloudFiltered = landsat.filter(ee.Filter.lt('CLOUD_COVER', 10));
// 按属性重命名波段
var renamed = landCover.remap([10,20,30], [1,2,3], 'classification'); // 引用[3]
```
---
#### **2. 数据可视化**
##### (1) 基本可视化参数设置
```javascript
// DEM可视化参数
var demVis = {
min: 0,
max: 4000,
palette: ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5'] // 引用[1]
};
// 土地分类可视化
var landCoverVis = {
min: 10,
max: 100,
palette: ['#006400','#FFBB22','#FFFF4C','#F096FF','#FA0000'] // 引用[3]
};
// 添加到地图
Map.addLayer(dem, demVis, 'DEM');
Map.addLayer(landCover, landCoverVis, 'Land Cover');
```
##### (2) 动态时序可视化(动图制作)
```javascript
// 创建NDVI时序动画
var ndviCol = landsat.map(function(img) {
return img.normalizedDifference(['SR_B5','SR_B4']).rename('NDVI'); // 引用[1]
});
var visParams = {min: -1, max: 1, palette: ['red','yellow','green']};
// 生成动图控件
var thumb = ui.Thumbnail({
image: ndviCol, // 使用影像集合生成动画
params: visParams,
style: {position: 'bottom-right', width: '600px'} // 引用[4]
});
Map.add(thumb);
```
##### (3) 统计图表可视化
```javascript
// 土壤有机碳直方图
var chart = ui.Chart.image.histogram({
image: soilCarbon.select('b0'), // 选择特定波段
region: roi,
scale: 1000
}).setOptions({title: 'Soil Organic Carbon Distribution'}); // 引用[2]
print(chart);
```
---
#### **3. 完整工作流示例**
```javascript
// 步骤1: 定义区域
var beijing = ee.Geometry.Point([116.4, 39.9]);
// 步骤2: 加载数据
var dem = ee.Image('USGS/SRTMGL1_003');
var landsat = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
.filterBounds(beijing)
.filterDate('2023-01-01','2023-12-31');
// 步骤3: 计算坡度(DEM衍生)
var slope = ee.Terrain.slope(dem); // 引用[1]
// 步骤4: 可视化设置
Map.centerObject(beijing, 8);
Map.addLayer(slope, {min:0, max:60, palette:['blue','yellow','red']}, 'Slope');
Map.addLayer(landsat, {bands:['SR_B4','SR_B3','SR_B2'], min:0, max:20000}, 'Landsat RGB');
```
---
### **核心技巧总结**
1. **数据选择**:
- 公共数据集使用`ee.Image('数据集ID')`或`ee.ImageCollection('集合ID')`
- 使用`filterBounds()`和`filterDate()`精准筛选数据[^1][^2]
2. **可视化优化**:
- 连续数据:设置`min/max`值增强对比度
- 分类数据:使用`palette`定义颜色映射[^3]
- 时序数据:用`ui.Thumbnail()`创建动画[^4]
3. **交互操作**:
- `Map.centerObject()`定位区域
- `print()`在控制台输出图表或数据
- 在线编辑器实时预览:https://code.earthengine.google.com/
> 通过组合数据加载、空间过滤和可视化参数,可快速实现从基础展示到高级动态分析的全流程[^1][^4]。
阅读全文
相关推荐
















