代码之家  ›  专栏  ›  技术社区  ›  krishnab

谷歌地球引擎:寻找正确的图像尺寸以获得卫星图像的最大分辨率

  •  2
  • krishnab  · 技术社区  · 8 年前

    我是谷歌地球引擎的新手,曾试图获取整个刚果民主共和国的陆地卫星图像。该项目涉及一些计算机视觉和图像分割,所以我需要获得尽可能高的分辨率。

    我有一些代码是我从地球引擎开发出来的,用下面发布的一年的陆地卫星图像合成的。

    var geometry = ee.Geometry.Polygon(
        [[[29.70703125, -3.3160183381615123],
          [24.609375, -3.4476246666468526],
          [24.8291015625, -7.732765062729807],
          [29.970703125, -7.645664723491028]]]);
    
    // Composite 6 months of Landsat 8.
    
    Map.setCenter(  26.362312, -4.643601, 5);
    var boundingBox = geometry.bounds(1)
    var L8 = ee.ImageCollection('LANDSAT/LC08/C01/T1');
    var composite = ee.Algorithms.Landsat.simpleComposite({
      collection: L8.filterDate('2015-1-1', '2015-7-1').filterBounds(geometry),
      asFloat: true});
    var region = ee.Geometry(geometry.getInfo())
                            .toGeoJSONString()
    var params ={
          crs: 'EPSG:4326',
          region:region
        }
    Export.image(composite,'congo_test',params);
    

    问题是,每次我运行脚本时,它都会要求我 scale 价值所以我要求最高分辨率,但查询一直出错,因为它说我已经超过了图像导出的最大像素限制。

    所以基本上我需要弄清楚如何将刚果分割成一组区块,地球引擎允许我提取最高分辨率的合成图像。有人知道我如何计算出合适尺寸的多边形吗?

    2 回复  |  直到 8 年前
        1
  •  1
  •   krishnab    8 年前

    如@Val所示,这里的解决方案是应用 maxPixels 参数 param javascript中的变量。下面的最终javascript代码将根据maxPixels参数自动将图像分割成块。

    var geometry = ee.Geometry.Polygon(
        [[[29.70703125, -3.3160183381615123],
          [24.609375, -3.4476246666468526],
          [24.8291015625, -7.732765062729807],
          [29.970703125, -7.645664723491028]]]);
    
    // Composite 6 months of Landsat 8.
    
    Map.setCenter(  26.362312, -4.643601, 5);
    var boundingBox = geometry.bounds(1)
    var L8 = ee.ImageCollection('LANDSAT/LC08/C01/T1');
    var composite = ee.Algorithms.Landsat.simpleComposite({
      collection: L8.filterDate('2015-1-1', '2015-7-1').filterBounds(geometry),
      asFloat: true});
    var region = ee.Geometry(geometry.getInfo())
                            .toGeoJSONString()
    var params ={
          crs: 'EPSG:4326',
          maxPixels: 1e12,
          region:region
        }
    Export.image(composite,'congo_test',params);
    

    这对我很有效。谢谢@Val。

        2
  •  1
  •   Noel Gorelick    8 年前

    您应该在导出参数中指定比例。合成不再具有本机比例,因此默认为每像素1度。因为你从陆地卫星开始,你可能想要30的刻度。