【原创,转载请标注】GEE实用小操作合集(一)

1. 需要遮掉fc以外的地方。

varmask = ee.Image.constant(1).clip(fc.geometry()).mask().not()


2. difference 相当于arcgis pro的erase擦除功能,但是geometry collection和geometry

参考 https://gis.stackexchange.com/questions/300725/difference-between-two-polygons-in-earth-engine 


3. Mask 用法 掩膜

ee.image.mask

updatemask

unmask

4. 矢量转栅格

ImageCollection.reduceToImage(properties, reducer)

示例: //将矢量转为栅格,选择属性‘value’的平均值作为像元值 reduction reaction

var image_reduced=fc.reduceToImage(['value'],'mean');

示例:

var seamask  = sea.reduceToImage({properties: ['rec'], reducer: ee.Reducer.first()});

5. Reduce

参考:https://geohackweek.github.io/GoogleEarthEngine/04-reducers/ 

reducer“还原剂”,reduce减少的意思,还原反应: reduction reaction

Temporal Reducer: Get Image Statistics Over Time 时间上的reduce,可以用sum等算法

6. 展示imagecollection内所有图像的YMD


function ymdList(imgcol){

    var iter_func = function(image, newlist){

        var date = ee.Number.parse(image.date().format("YYYYMMdd"));

        newlist = ee.List(newlist);

        return ee.List(newlist.add(date).sort())

    };

    return imgcol.iterate(iter_func, ee.List([]));

}

var ymd = ymdList(collection)

print(ee.List(ymd).reduce(ee.Reducer.frequencyHistogram()))

7. colorramp如何分段赋颜色

(参考https://gis.stackexchange.com/questions/304141/setting-values-for-palette-in-google-earth-engine


varsetPalletes =function(image){

image = image.select('NDVI');

varimage02 = image.gte(0.2);

varimage04 = image.gte(0.4);

varimage06 = image.gte(0.6);

varimage08 = image.gte(0.8);

returnimage02.add(image04).add(image06).add(image08);

};

varnewImages = series.map(setPalletes);

Map.addLayer(newImages.first(), {bands: ['NDVI'],min:0,max:4,palette: ['black','red','orange','yellow','green']},'first');

代码示例:https://code.earthengine.google.com/05d07373354e0de70684dc7dbb4efab6

附:CSS3.0 colorhttps://www.w3.org/TR/2018/REC-css-color-3-20180619/

8. JavaScript 的函数虽然不能返回多个值,但是可以凑成一个数组再返回。

function create(year){

    return [year,year+1,year+2]

}

var x = create(yrd);

a = x[0];

b = x[1];

c = x[2];


9. 如何提取image的boundaries(暂未解决,谁有好方法欢迎留言)

现在image的 边界可以通过var tmpImgPol = tmpImg.get('system:footprint'); 获取footprint属性得到一个geometry属性的变量,但是这个变量不能获得geometry的任何方法,比较了一下,图中上面的polygon是手动构建的,下面的是读取footprint获取的,两个polygon还是有一些不一样的。

不然可以通过coordinates的方法获取

var tmpImgPol = ee.Geometry.Polygon(tmpImg.get('system:footprint'));


当然也可以通过reduceToVectors的方法,但是需要图像是integeral的,所以要做几步处理。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 影像图斑统计功能实现 主要功能 对SRTM数据的特定范围完成空间统计,输出指定矩形范围内的最大值 代码 步骤分析 ...
    赤豆冰棍阅读 2,693评论 0 1
  • //sentinel2 NDVI Demo //方法一:普通方式,通过将数学公式翻译为代码直接计算 functio...
    BNU_JW阅读 3,778评论 0 3
  • NDWI(Normalized Difference Water Index,归一化水指数),用遥感影像的特定波段...
    BNU_JW阅读 1,901评论 0 2
  • 在GEE中普通的List可以直接使用其自带的sort()方法排序,FeatureCollection也有自己的排序...
    BNU_JW阅读 747评论 0 0
  • 本文仅仅是将GEE官网上的代码整理一下,一方面自学,另一方面自我监督。文中有些问题是我想不通的,还需经历时间来理解...
    07e5cc5603ca阅读 642评论 0 0