首页 > 其他分享 >GEE:获取sentinel2指定区域多个单景影像的值(样本点提取)

GEE:获取sentinel2指定区域多个单景影像的值(样本点提取)

时间:2023-10-07 10:08:28浏览次数:25  
标签:sentinel2 projection default image reducer 单景 scale GEE 影像


简介

本教程的主要目的是获取指定单景影像,然后获取指定波段的影像值,按照获取指定波段的影像进行值提取至点,因为这里暂时没有好的方法对哨兵数据的具体属性值进行提取,所以在筛选哨兵影像的时候,需要手动获取每一景影像的id,然后按照单一影像多波段的组合来实现整体的值提取至点,这里的需要提前准备好你所需提取的矢量数据集合.

函数

reduceRegions(collection, reducer, scalecrscrsTransformtileScale)

Apply a reducer over the area of each feature in the given collection.

The reducer must have the same number of inputs as the input image has bands.

Returns the input features, each augmented with the corresponding reducer outputs.

Arguments:

this:image (Image):

The image to reduce.

collection (FeatureCollection):

The features to reduce over.

reducer (Reducer):

The reducer to apply.

scale (Float, default: null):

A nominal scale in meters of the projection to work in.

crs (Projection, default: null):

The projection to work in. If unspecified, the projection of the image's first band is used. If specified in addition to scale, rescaled to the specified scale.

crsTransform (List, default: null):

The list of CRS transform values. This is a row-major ordering of the 3x2 transform matrix. This option is mutually exclusive with 'scale', and will replace any transform already set on the projection.

tileScale (Float, default: 1):

A scaling factor used to reduce aggregation tile size; using a larger tileScale (e.g. 2 or 4) may enable computations that run out of memory with the default.

Returns: FeatureCollection

需要获取的单景影像名称

GEE:获取sentinel2指定区域多个单景影像的值(样本点提取)_gee

代码:

var training = ee.FeatureCollection("projects/ee-bqt2000204051/assets/classfication_tree-points")
print("training trree",training)


function maskS2clouds(image) {
  var qa = image.select('QA60');

  // Bits 10 and 11 are clouds and cirrus, respectively.
  var cloudBitMask = 1 << 10;
  var cirrusBitMask = 1 << 11;

  // Both flags should be set to zero, indicating clear conditions.
  var mask = qa.bitwiseAnd(cloudBitMask).eq(0)
      .and(qa.bitwiseAnd(cirrusBitMask).eq(0));

  return image.updateMask(mask).divide(10000);
}


function renameS2_SR(img) {
  return img.select(
		["B2",  "B3",  "B4",  "B8",  "B11",  "B12",'QA60'],
		['Blue', 'Green', 'Red', 'NIR', 'SWIR1', 'SWIR2', 'QA_PIXEL']);
}


//--------------------4.所有常用的指数公式-------------------------
function calVI(img) {
  var ndvi = img.normalizedDifference(['NIR', 'Red']).rename('NDVI');
  
//Mcfeeters 1996
  var ndwi=img.normalizedDifference(["Green", "NIR"]).rename("NDWI");
  
var ndbi=img.normalizedDifference(["SWIR1", "NIR"]).rename("NDBI");

  var rvi = img.expression(  'NIR / RED ', 
  {  
      'NIR': img.select("NIR"),  
      'RED': img.select("Red")
  }).rename('RVI'); 
  
  
  var dvi = img.expression(  'NIR - RED ', 
  {  
      'NIR': img.select('NIR'),  
      'RED': img.select('Red')
  }).rename('DVI');  

            
  return img.addBands(ndvi).addBands(ndwi).addBands(ndbi).addBands(rvi).addBands(dvi);
}

var s2 = ee.ImageCollection('COPERNICUS/S2_SR')
                  .filterDate('2022-01-01', '2022-12-31')
                  .filterBounds(training)
                  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE',5))
                  .map(maskS2clouds).map(renameS2_SR).map(calVI)//.select(["B1"]).median().clip(roi1); //


print(s2.first())
print(s2)
print(s2.size())
//ee.ImageCollection.fromImages([image1])

var image1=ee.Image("COPERNICUS/S2_SR/20220115T032101_20220115T032101_T49SEA").select(["B1"])
//print(image1)
var image2=ee.Image("COPERNICUS/S2_SR/20220405T031541_20220405T032316_T49SEA").select(["B1"])
var image3=ee.Image("COPERNICUS/S2_SR/20220410T031539_20220410T032318_T49SEA").select(["B1"])

// var listimage = ee.List([image1,image2,image3])
// print(listimage.get(0))

var imagess = image1.addBands(image2).addBands(image3)




  var values = imagess.reduceRegions({
		collection:training,
		reducer:ee.Reducer.mean(),
	scale:10,
//	crs:null,
//	crsTransform:null,
//	tileScale:true,
})
  print(i+"image values", values )





Export.table.toDrive({
		collection:values,
//	description:,
//	folder:,
//	fileNamePrefix:,
//	fileFormat:,
//	selectors:,
//	maxVertices:,
})


  
}

提取3景影像的B1波段的属性值 

GEE:获取sentinel2指定区域多个单景影像的值(样本点提取)_gee_02

标签:sentinel2,projection,default,image,reducer,单景,scale,GEE,影像
From: https://blog.51cto.com/u_15654855/7732651

相关文章

  • iPhone 15 Pro A17 Pro Geekbench 跑分曝光 性能接近 M1
    苹果刚刚发布了新一代的iPhone,其中包括iPhone15Pro和iPhone15ProMax。这两款新机型使用了全新的A17Pro晶片,这是首款使用3纳米制程技术打造的晶片。苹果先前已经确认,A17Pro的运算速度比上一代的A16Bionic快达20%。CPU比A16快10%iPhone15Pro的首批Geekbench结果也......
  • 【Azure App Service for Linux】NodeJS镜像应用启动失败,遇见 RangeError: Incorrect
    问题描述在AppServiceForLinux中,部署NodeJS应用,应用启动失败。报错信息为:2023-08-29T11:21:36.329731566ZRangeError:Incorrectlocaleinformationprovided2023-08-29T11:21:36.329776866ZatIntl.getCanonicalLocales(<anonymous>)2023-08-29T11:21:36.329783066ZatC......
  • 【Azure App Service for Linux】NodeJS镜像应用启动失败,遇见 RangeError: Incorrect
    问题描述在AppServiceForLinux中,部署NodeJS应用,应用启动失败。报错信息为:2023-08-29T11:21:36.329731566ZRangeError:Incorrectlocaleinformationprovided2023-08-29T11:21:36.329776866ZatIntl.getCanonicalLocales(<anonymous>)2023-08-29T11:21:36.3297830......
  • CodeGeeX使用中的常见问题与解决方法
    上一篇文章中我们介绍了CodeGeeX插件中的“隐藏”设置,方便用户能够选择符合自己编程习惯的方式,更流畅的使用CodeGeeX。但仍然有一些使用问题,需要我们在产品持续迭代中进行优化,也有些问题是受限于IDE平台默认的交互或解析方式。今天为大家整理的,就是CodeGeeX使用中常见的问题和解决......
  • 继copilot之后,又一款免费帮你写代码的插件CodeGeeX
    合集-开发工具(6)  1.Weblogic11g安装部署-winserver篇05-072.给你安利一款国产良心软件uTools05-133.gitee图床不能用了,心态崩了05-164.windows环境下如何优雅搭建ftp服务?05-175.IntelliJIDEA上手这一篇就够了,从入门到上瘾05-226.继copilot之后,又一款免费帮你写代......
  • 开发效率工具CodeGeeX
    CodeGeeX是一个多编程语言代码生成预训练模型。官方地址:https://codegeex.cn##CodeGeeX有以下特点*__高精度代码生成:__支持生成Python、C++、Java、JavaScript和Go等多种主流编程语言的代码,在HumanEval-X代码生成任务上取得47%~60%求解率,较其他开源基线模型有更佳的平均性能。*......
  • CodeGeeX中这些隐藏的设置,你知道吗?
    随着CodeGeeX整体性能的升级,越来越多的用户发现CodeGeeX的很多实用功能,能够帮助程序员更快更好的编写代码和解决技术问题。近期,我们看到许多用户在使用CodeGeeX的过程中,有一些相似的疑问。比如,很多人希望能够通过调整设置,让CodeGeeX的生成方式、工作语言更符合自己的习惯。今天的......
  • CodeGeeX vscode代码提示,智能问答
    CodeGeeX官网https://codegeex.cn/zh-CN/CodeGeeXvscode代码提示,智能问答......
  • 写测试用例、重构函数、生成SQL查询……原来CodeGeeX还能做这些!
    CodeGeeX中的智能问答功能“AskCodeGeeX”可以帮助程序员解答开发过程中遇到的问题。但是“AskCodeGeeX”的能力不止于此,用它还能帮助程序员高效编写测试用例,添加代码调试信息,实现SQL语句等等。如果你还不知道如何实现,下面我们一起来看几个例子,看看程序员拥有一个超级编程助手,......
  • [OGeek2019]babyrop
    [OGeek2019]babyrop0x0164位程序,开启NX没有system函数和/bin/sh字符串0x02分析程序:main函数中,先读取一个随机数到fd,并作为参数传入sub_804871F函数,再将sub_804871F函数的返回值作为参数传入sub_80487D0函数里。main函数sub_804871F函数sub_80487D0函数观察程序我们可......