GEE入门学习

、GEE官网:https://earthengine.google.com/  编码器:https://code.earthengine.google.com/

网络环境配置:用谷歌浏览器插件VPN,也可订阅相关软件的VPN

通过左上角Assets中New导入自己的数据,右边task可看到进度,查看导入的影像属性,可以看一下Feature是不是乱码,如果有原始数据导入后是乱码,建议在ArcGIS里重新导出,坐标投影推荐用WGS84,当然,其他投影也可以。

本次使用中我想要提取山西省地区的DEM,使用了以下代码:

// 加载矢量数据,假设你的矢量数据已上传为一个名为'my_vector_data'的FeatureCollection
var vectorData = ee.FeatureCollection('projects/ee-gardenq2000/assets/ShanxiBoundary');

// 加载SRTM DEM数据集
var srtm = ee.Image('USGS/SRTMGL1_003');

// 使用矢量数据剪裁DEM数据
var clippedDEM = srtm.clip(vectorData);

// 可视化设置(可选)
var visParams = {
    min: 0,
    max: 3000,
    palette: ['0000ff', '00ffff', 'ffff00', 'ff0000', 'ffffff']
};

// 在地图上显示剪裁后的DEM
Map.centerObject(vectorData, 9);
Map.addLayer(clippedDEM, visParams, 'Clipped DEM');

// 导出到Google Drive,注意设置参数
Export.image.toDrive({
  image: clippedDEM, // 更正为要导出的图像变量名
  description: 'exportedImage_UTM49N', // 导出图像的名称
  scale: 30, // 导出图像的分辨率,单位为米
  region: vectorData.geometry(), // 使用矢量数据的几何形状作为导出区域
  fileFormat: 'GeoTIFF', // 设置文件格式为GeoTIFF
  crs: 'EPSG:32649' // 设置坐标参考系统为WGS 1984 UTM Zone 49N
});

值得说道的是最后的 投影参数可以自定义,使用你自己需要的投影坐标系

如果想要去除使用Google Earth Engine (GEE) 导出图像时周围像素值为0的黑边,你可以通过设置Export.image.toDrive函数中的region参数为矢量数据边界,并利用mask函数来掩蔽(mask)掉那些不需要的像素。这样做可以确保导出的图像紧密贴合你感兴趣区域的实际边界,而非一个包含额外空白(或黑色)像素的矩形框架。

步骤 1: 应用掩蔽

首先,你需要确保只有那些落在矢量数据边界内的像素被包括在最终的图像中。这可以通过使用.mask()方法在clippedDEM上应用掩蔽来实现。clippedDEM是已经使用矢量数据剪裁过的DEM图像。

步骤 2: 修改导出参数

然后,在Export.image.toDrive函数调用中,确保region参数正确设置为矢量数据的边界。这一步已经在之前的修正中提及,通过使用vectorData.geometry()来完成。

完整的修正代码

假设其他部分的代码不变,只需添加掩蔽步骤并确保导出参数设置正确:

// 假定clippedDEM是已经剪裁的DEM图像
var maskedDEM = clippedDEM.updateMask(clippedDEM.gt(0)); // 假设海拔高度大于0的地区是我们感兴趣的

// 使用矢量数据边界作为导出区域
var exportRegion = vectorData.geometry();

// 在地图上显示处理后的DEM
Map.addLayer(maskedDEM, visParams, 'Masked DEM');

// 导出到Google Drive
Export.image.toDrive({
  image: maskedDEM, // 使用处理后的图像
  description: 'MaskedExportedImage_DEM', // 更新描述以反映这一变化
  scale: 30,
  region: exportRegion, // 确保使用矢量数据的几何形状
  fileFormat: 'GeoTIFF',
  crs: 'EPSG:32649'
});

在这个修正版本中,.updateMask(clippedDEM.gt(0))方法被用来掩蔽所有像素值不大于0的像素(通常是那些未被覆盖的、值为0的区域)。这样处理后,只有那些在你的矢量数据边界内且像素值大于0的部分被保留,从而在导出时去除了不需要的黑边。

请根据你的实际情况调整掩蔽条件。例如,如果你的DEM数据中有像素值确实为0但仍然是有效数据的情况(比如海平面),你可能需要根据实际情况调整掩蔽的逻辑。

`Export.image.toDrive`函数是Google Earth Engine (GEE) 中用于将图像导出到Google Drive的一个非常有用的功能。这个函数有多个参数,可以让你定制化导出过程。下面是一些常见参数及其含义:

1. **`image`**:
   - 必需。要导出的`ee.Image`对象。
   - 示例:`image: clippedImage`

2. **`description`**:
   - 可选。导出文件的描述,将用作文件的名称。
   - 示例:`description: 'exported_image'`

3. **`folder`**:
   - 可选。Google Drive中的目标文件夹名称。如果未指定或文件夹不存在,文件将被导出到Drive的根目录。
   - 示例:`folder: 'GEE_Export'`

4. **`fileNamePrefix`**:
   - 可选。导出文件的前缀。如果未指定,将使用`description`作为文件名。
   - 示例:`fileNamePrefix: 'my_exported_image'`

5. **`scale`**:
   - 可选。导出图像的空间分辨率(米)。默认情况下,使用图像的原生分辨率。
   - 示例:`scale: 30`

6. **`crs`**:
   - 可选。导出图像的坐标参考系统的EPSG代码。默认使用图像的原生CRS。
   - 示例:`crs: 'EPSG:4326'`

7. **`crsTransform`**:
   - 可选。定义如何从投影坐标系转换到图像空间的线性变换数组。通常与`crs`参数一起使用。
   - 示例:`crsTransform: [1,0,0,0,1,0]`

8. **`region`**:
   - 可选。定义要导出图像的区域。可以是一个`ee.Geometry`对象或者一个表示边界的GeoJSON对象。如果未指定,将导出图像的整个范围。
   - 示例:`region: geometry`

9. **`maxPixels`**:
   - 可选。导出操作允许的最大像素数量。用于防止无意中导出大量数据。
   - 示例:`maxPixels: 1e9`

10. **`fileFormat`**:
    - 可选。导出文件的格式。可选项包括`GeoTIFF`和`TFRecord`。
    - 示例:`fileFormat: 'GeoTIFF'`

11. **`formatOptions`**:
    - 可选。一个对象,包含特定于文件格式的选项。例如,对于`GeoTIFF`,可以指定`cloudOptimized: true`来导出云优化的GeoTIFF。
    - 示例:`formatOptions: {cloudOptimized: true}`

// 假设你已经有了一个要导出的图像对象和一个定义导出区域的几何对象
var imageToExport = ee.Image('USGS/SRTMGL1_003'); // 示例图像
var exportRegion = ee.Geometry.Rectangle([78.9629, 20.5937, 82.9629, 24.5937]); // 示例导出区域(印度某地区)

// 定义导出参数
Export.image.toDrive({
  image: imageToExport, // 必需,要导出的ee.Image对象
  description: 'exported_image_demo', // 导出文件的描述,也用作文件名
  folder: 'GEE_Export', // Google Drive中的目标文件夹名称
  fileNamePrefix: 'my_exported_image_demo', // 导出文件的前缀
  scale: 30, // 导出图像的空间分辨率(米)
  crs: 'EPSG:4326', // 导出图像的坐标参考系统
  crsTransform: [0.00026949458523585647, 0, -180, 0, -0.00026949458523585647, 90], // 定义从投影坐标系到图像空间的线性变换
  region: exportRegion, // 定义要导出图像的区域
  maxPixels: 1e9, // 导出操作允许的最大像素数量
  fileFormat: 'GeoTIFF', // 导出文件的格式
  formatOptions: {cloudOptimized: true} // 特定于文件格式的选项
});

EPSG编号是用于唯一标识地理坐标系统、投影和数据转换的代码。这里列举一些常用的投影系统及其对应的EPSG编号:

1. **WGS 84** - 地理坐标系统(经度和纬度)
   - EPSG:4326
   - 这是最常用的全球地理坐标系统,广泛应用于GPS和Web地图。

2. **Web Mercator** - 投影坐标系统
   - EPSG:3857
   - 用于大多数在线地图服务(如Google Maps和OpenStreetMap),支持整个地球的方形展示。

3. **WGS 84 / UTM zone 系列** - 投影坐标系统
   - EPSG:32601 - EPSG:32660(北半球)
   - EPSG:32701 - EPSG:32760(南半球)
   - UTM(通用横轴墨卡托)系统将地球分为60个区域,每个区域有其唯一的EPSG代码。例如,WGS 84 / UTM zone 33N的EPSG代码是EPSG:32633。

4. **NAD83** - 地理坐标系统
   - EPSG:4269
   - 主要在北美使用,比WGS 84稍有不同。

5. **ETRS89** - 地理坐标系统
   - EPSG:4258
   - 欧洲地区广泛使用的坐标系统,与WGS 84非常接近。

6. **British National Grid** - 投影坐标系统
   - EPSG:27700
   - 英国使用的国家网格系统。

7. **Gauss-Kruger / Transverse Mercator** - 投影坐标系统
   - 对应多个EPSG代码,根据具体使用区域而定。例如,德国的Gauss-Kruger zone 4是EPSG:31468。

8. **Albers Equal Area** - 投影坐标系统
   - 对应多个EPSG代码,根据具体的使用区域和参数而定。例如,北美Albers投影是EPSG:5070。

9. **Lambert Conformal Conic** - 投影坐标系统
   - 同样对应多个EPSG代码,例如,美国的NAD83 / Louisiana South是EPSG:3452。

10. **Australia's GDA94 / MGA zone 系列** - 投影坐标系统
    - EPSG:28348 - EPSG:28358
    - 澳大利亚的地理数据使用GDA94坐标系,每个区域(MGA zone)有其唯一的EPSG代码。

最后,是对刚接触GEE的一点相关知识,来自AI:

欢迎你开始探索Google Earth Engine (GEE)! GEE是一个强大的云平台,允许用户分析和可视化地球上的大量地理数据。它特别适合进行地理空间数据分析,如环境监测、资源管理、城市规划等领域。这里有一些基础的介绍和常用操作来帮助你开始:

### 1. **理解基本概念**

- **Image**: 在GEE中,单幅图像被表示为`ee.Image`对象,可以包含多个波段,每个波段存储特定类型的数据(例如,红色、近红外波段)。

- **ImageCollection**: 一个`ee.ImageCollection`对象是多个图像的集合,这些图像通常按时间序列排列,非常适合进行时序分析。

- **Feature**: `ee.Feature`对象代表地理空间数据中的单个对象,例如一个湖泊或一块土地,它包含几何信息和属性信息。

- **FeatureCollection**: `ee.FeatureCollection`对象是多个`ee.Feature`的集合,用于表示和操作一组空间要素。

### 2. **开始使用GEE**

- 注册和访问GEE: 访问[Google Earth Engine](https://earthengine.google.com/)官网并使用你的Google账号注册。

- GEE Code Editor: GEE的在线代码编辑器([Code Editor](https://code.earthengine.google.com/))是学习和实验GEE代码的好地方,它提供了代码写作、运行和调试的环境。

### 3. **常用操作和示例**

- **加载和显示图像**: 你可以从GEE数据目录中加载图像并显示在地图上。

var image = ee.Image('srtm90_v4');
Map.addLayer(image, {min: 0, max: 3000}, 'SRTM DEM');

- **加载和显示图像集合**: 加载一个图像集合并过滤得到特定时间范围内的图像。

  var startDate = ee.Date('2020-01-01');
  var endDate = ee.Date('2020-12-31');
  var collection = ee.ImageCollection('LANDSAT/LC08/C01/T1')
                    .filterDate(startDate, endDate);
  var composite = collection.median();
  Map.addLayer(composite, {bands: ['B4', 'B3', 'B2'], max: 0.3}, 'Landsat Composite');

- **空间筛选**: 根据几何范围筛选图像或要素集合。

  var region = ee.Geometry.Point([103.8, 1.36]);
  var filteredCollection = collection.filterBounds(region);

- **导出数据**: 将处理后的图像或要素集合导出到你的Google Drive。

  Export.image.toDrive({
    image: composite,
    description: 'ImageToDriveExample',
    scale: 30,
    region: region
  });

### 4. **学习资源**

- **官方文档和教程**: GEE的[开发者指南](https://developers.google.com/earth-engine/guides)和[Tutorials](https://developers.google)

  • 15
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值