首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在GEE中使用shapefile资源作为AOI?

如何在GEE中使用shapefile资源作为AOI?
EN

Stack Overflow用户
提问于 2021-08-05 09:13:35
回答 2查看 352关注 0票数 0

我已经将shapefile的zip文件作为资源上传到了Google Earth Engine。我如何让它成为我的AOI?我已经尝试添加AOI作为坐标和ee.Geometry.Polygon,但它不能涵盖我需要的整个AOI,而我的shapefile可以。但是我不确定如何在我的代码中实现这些shapefile,所以它出现了。这是我代码的第一部分。我对此非常陌生,任何帮助都将不胜感激!:)

代码语言:javascript
复制
var startDate = ee.Date('2018-12-01'); //2018-12-31'); GEE: 2017-03-28T00:00:00  ???
var endDate = ee.Date('2020-09-01'); //'2021-06-01'
var days = 45;
var cloud_shadow_percentage = 50; // (max)
var cloud_cover_percentage = 50;  // (max)

// note: Sentinel-2-SR from 2017-03-28 but TOA from 2015-06-23
// -----------------------------------------------------
//Map.addLayer(AOI, {}, 'AOI', true);  
Map.centerObject(AOI, 13);

var imageStartDate1 = startDate.advance(-days,"day");
var imageStartDate2 = startDate.advance(days,"day");
var imageEndDate1   = endDate.advance(-days,"day");
var imageEndDate2   = endDate.advance(days,"day");

//S2-SR: COPERNICUS/S2_SR //LANDSAT/LC08/C01/T1_SR
var S2 = ee.ImageCollection("COPERNICUS/S2_SR");

var imagery = ee.ImageCollection(S2)
    //.filterDate(imageEndDate1, imageEndDate2)
    .filterBounds(AOI)
    //.filterMetadata('CLOUD_SHADOW_PERCENTAGE', 'less_than', cloud_shadow_percentage)
    .filterMetadata('CLOUD_COVERAGE_ASSESSMENT', 'less_than', cloud_cover_percentage)
    ;

var Sen2_collection = ee.ImageCollection(imagery)
    .filterDate(imageStartDate1, imageStartDate2)
    .filterBounds(AOI);

var Sen2_ = ee.ImageCollection(Sen2_collection)
    .sort('CLOUD_COVERAGE_ASSESSMENT').first();  

var Sen2 =  ee.Image(Sen2_)
  .clip(AOI);

var Sen2end_collection = ee.ImageCollection(imagery)
    .filterDate(imageEndDate1, imageEndDate2)
    .filterBounds(AOI);

var Sen2end_ = ee.ImageCollection(Sen2end_collection)
    .sort('CLOUD_COVERAGE_ASSESSMENT').first(); 

var Sen2end =  ee.Image(Sen2end_)
  .clip(AOI);

Map.addLayer(Sen2, {bands:['B4', 'B3', 'B2'], min:0, max:5000}, 'rgb start', false);   
Map.addLayer(Sen2end, {bands:['B4', 'B3', 'B2'], min:0, max:5000}, 'rgb end', false);

print("Sen2_collection", Sen2_collection);
print("Sen2end_collection", Sen2end_collection);
print("Sen2", Sen2);
print("Sen2end", Sen2end);
EN

回答 2

Stack Overflow用户

发布于 2021-08-05 15:02:47

更新

嗨!我找到了能让它工作的代码。希望这能对其他人有所帮助:)

代码语言:javascript
复制
//Display the shapefile into the interactive map
Map.addLayer(AOI);
//Display the view to the center of the screen and scale the view
Map.centerObject(AOI,13);
//Define styling and determine the color of the shapefile 
var styling = {color: 'red', fillColor: '00000000'};
Map.addLayer(AOI.style(styling));

https://sryhandiniputeri.medium.com/input-a-shapefile-in-google-earth-engine-d358ced1d095

将'AOI‘部分重命名为您的'var ___’导入的名称。

票数 0
EN

Stack Overflow用户

发布于 2021-08-13 21:38:06

您的GEE代码运行良好,我只是将AOI用作多边形/shapefile,这是我的一项资产。

问题可能出在你正在使用的shapefile上。

  1. 这可能是因为shapefile可能有大量的JSON,shapefile有太多的细节/曲线/边,请求到服务器的polygons/multipolygon
  2. If有时会超过限制,GEE会给出错误。(如果是这种情况,则需要平滑shapefile的边界。)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68663744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档