0

我正在编写一个GEE脚本来监测瑞士一个湖泊的水位。我有一个Landsat 5乐队的剧本(2015年之前)和一个Sentinel2乐队的剧本。我正在尝试将水的像素分为蓝色和其他黑色:它适用于Landsat中的脚本,但不适用于S2,即使我更改了波段。。。我还试图进行间隙填充和平滑处理,但出现错误消息:“Image.reduceRegion,参数'Image':无效类型。预期类型:Image。实际类型:ImageCollection”

var区域兴趣=ee.几何。多边形([[[6.684030451902143,47.06054590866372],[6.711152949460737,47.06054590866372],[6.711152949460737,47.086149628020074],[6.684030451902143,47.086149628020074]]]);//火线上的缩放Map.centerObject(areaOfInterest);Map.addLayer(areaOfInterest);//德菲尼尔·乌内尔·坦普尔(Définir une aire tempelle)var startDate='2016-07-01';var endDate='2016-08-31';//Charger les données S2 pour la période sélectionne充电器var sentinelImageCollection=ee.ImageCollection('COPERNICUS/S2').filterBounds(感兴趣区域).filterDate(开始日期,结束日期);打印(“Nombre d'images=”,sentinelImageCollection.size());//电影导演的裸体和选择的裸体形象var sentinelImage=sentinelImageCollection.sort('CLOUDY_PIXEL_PERCENTAGE').first().clip(areaOfInterest);print(“Image la moins nuageuse=”,sentinelImage.date());//视觉化avec滤镜RGB地图添加层(哨兵图像,{最小值:0.0,最大值:2000,波段:['B4','B3','B2']},“RGB”);//计算器le NDWI无功ndwi=sentinelImage.normalizedDifference(['B3','B8']).rename('NDWI');地图添加层(ndwi、,{调色板:['red','yellow','green','cyan','blue']},“NDWI”);//Créer le filtre pour les pixels d'eau餐厅var ndwiThreshold=ndwi.gte(0.0);var ndwiMask=ndwiThreshold.updateMask(ndwiThreshold);地图添加图层(ndwi阈值,{调色板:['black','white']},“NDWI二进制掩码”);Map.addLayer(ndwiMask,{palette:['blue']},'NDWI Mask');//出口商l’image,speécifier le système de coordonne es,l’chelle,et sélectionner la re gion。导出.image.到驱动器({image:ndwiThreshold.visualize({min:0,max:1}),description:'NDWI二进制掩码',crs:“EPSG:4326”,比例:10,区域:感兴趣的区域});//Calculer les像素'eau dans l'airevar ndwi像素区域=ee.图像.pixelArea().addBands(ndwiMask.select('NDWI')).除法(1e6).缩小区域({减速机:ee.减速机.sum().组(1),几何体:感兴趣区域,比例:10,bestEffort:正确});var list=ee.list(ee.Dictionary(ndwiPixelArea).get('groups'));var group0=ee.Dictionary(list.get(0));var ndwiWaterArea=ee.Number(group0.get('sum')).float();打印(“Surface d’eau(km2):”,ndwi水域);//MNDWI计算//基础设施使用(B11)pour détecter l'eauvar mndwi=sentinelImageCollection.map(函数(图像){var mndwi=image.normalizedDifference(['B3','B11']);return mndwi.rename('mndwi').copyProperties(image,image.propertyNames());});//可视化var mndwiParams={min:-1,max:1,调色板:['blue','white','green']};Map.addLayer(mndwi,mndwiParams,'mndwi');//Calcul de la moyenne et de l’écart-type du NDWI sur la période(新德意志民主共和国首都)var mndwiMean=mndwi.reduce(ee.Reducer.mean());var mndwiStdDev=mndwi.reduce(e.Reducer.stdDev());打印(“Moyenne du MNDWI:”,mndwiMean);打印(“Ecart-type du MNDWI:”,mndwiStdDev);//《圣母玛利亚圣母玛利》(Création d'une collection de données tempoleles pour la régression linéaire)var timeSeries=ee.ImageCollection(mndwi.iiterate(函数(image,prev)){return ee.Image(prev).addBands(Image);},参见图像(0));//临时性进展var linearTrend=timeSeries.reduce(e.Reducer.linearFit());//林内尔退化植物提取物var slope=linearTrend.select('scale');//Tracéde la série tempolelle du MNDWI倾情于像素唐尼var图表=用户界面。图表.图像.系列({imageCollection:mndwi,区域:areaOfInterest,减速机:ee.减速机.mean(),比例:30//红色哨兵解决方案-2}).setOptions({title:'Série tempolelle du MNDWI'});打印(图表);//直方图var直方图=ui。图表.图像.直方图(mndwi,areaOfInterest,100,10);Histogram=Histogram.setOptions({title:“Histogramma MNDWI”});打印(直方图);//传奇宣言var调色板=['f3510','ebff10','20ff18','1afff2','1629ff']函数createColorBar(标题文本、调色板、最小值、最大值){//性别头衔var标题=用户界面。标签({值:titleText,style:{fontWeight:“bold”,textAlign:“center”,stretch:“horizontal”}});//库勒带var图例=ui。缩略图({image:ee.image.pixelLonLat().select(0),参数:{bbox:[0,0,1,0.1],尺寸:'200x20',格式:'png',最小值:0,最大值:1,调色板:调色板},样式:{拉伸:“水平”,边距:“8px 8px”,最大高度:“40px”},});//性别标签var标签=ui。面板({小部件:[用户界面。标签(最小,{margin:“4px 10px”,textAlign:“left”,拉伸:“horizontal”}),用户界面。标签((最小+最大)/2,{边距:“4px 20px”,text对齐:“中心”,拉伸:“水平”}),用户界面。标签(最大,{边距:“4px 10px”,文本对齐:“右”,拉伸:“水平”})],布局:ui。面板。Layout.flow(“水平”)});//联合国小组会议var legendPanel=ui。面板({小工具:[标题,图例,标签],样式:{position:“bottom-left”,填充:“8px 15px”}})返回图例面板}//性别纪念日var colorBar=createColorBar('Valeurs du NDWI',调色板,0,0.99)Map.add(colorBar)////Création d'un UI应用程序//////UI应用程序布局定义var标题=用户界面。标签(“NDWI Lac des Brenets探险家”);title.style().set({'位置':'上中',“fontSize”:“24px”});var resultsPanel=ui。面板();var chartPanel=ui。面板();var selectionPanel=ui。面板({布局:ui。面板。布局流量(“水平”),})结果面板.style().set({宽度:“400px”,位置:'底部-右侧'});var resetPanel=用户界面。面板();resultsPanel.add(selectionPanel)resultsPanel.add(chartPanel)resultsPanel.add(resetPanel)//函数pour remetter l’applicationál’état initialvar resetEverything=函数(){chartPanel.clear()selectionPanel.clear()resetPanel.clear()Map.clear()//添加deséléments a afficherMap.add(标题);Map.add(结果面板)地图.onClick(显示图表)//禁止任何形式的攻击//Map.setControlVisibility(false);//Map.setControlVisibility({zoomControl:true});//Définir la fenétre de visualisation缩写//var bounds=ee.Geometry。矩形(Map.getBounds())地图添加层(ndwi,mndwiParams,'ndwi',1)Map.add(colorBar)var标签=ui。标签(“Cliquez sur la cart pour afficher les données en un point”)resetPanel.add(标签)}//图形的着色和附加var displayChart=函数(点){resetPanel.clear()var按钮=ui。按钮({label:'重置',onClick:resetEverything})resetPanel.add(按钮)var pselect=ee.Geometry。点(点['lon'],点['lat'])。缓冲区(1e4);Map.addLayer(pselect,null,'area')//诺特雷点缓冲区中间带var ndwimean=sentinelImageCollection.select('NDWI').map(函数(img){var平均值=图像.reduceRegion({减速机:ee.减速机.mean(),几何体:选择,比例:1e3,bestEffort:正确,最大像素:1e14,平铺比例:4,});return ee.Feature(null,mean).set('system:time_start',img.get('system:time_start'));});var图表=用户界面。Chart.feature.byFeature(ndwimean,'system:time_start','NDWI').set选项({title:'NDWI时间序列',vAxis:{title:'NDWI'},hAxis:{title:'日期'},网格线:{计数:12},趋势线:{0:{type:'线性',color:'绿色',线宽:3,不透明度:0.2,}}});chartPanel.clear()selectionPanel.clear();//添加d'un bouton pour choisir la dateáafficherselectionPanel.add(ui.Label('Choissisez-une imageáafficher:'))chartPanel.add(图表)var addndwiLayer=函数(dateString){var date=ee.date.parse('YYYY-MM-DD',dateString)var image=ee.image(sentinelImage.filter(ee.filter.date(date,date.advance(1,'month')).mosaic()))Map.addLayer(image.select('NDWI'),mndwiParams,'NDWI-image-'+dateString)}sentinelImageCollection.aggregate_array('system:time_start').evaluate(函数(id){var dates=ee.List(ids).distinact().map(函数(时间戳){返回ee.Date(时间戳).format('YYYY-MM-DD')})dates.evaluate(函数(dateList){selectionPanel.add(ui.Select({项目:dateList,onChange:addndwiLayer,placeholder:'选择日期'}))})});}; //重新初始化resetEverything();

我尝试更改S2波段的波段,并尝试将ImageCollection更改为SentinelImageCollection

1答案1

重置为默认值
1

我正在尝试将水的像素分为蓝色和其他黑色:它适用于Landsat中的脚本,但不适用于S2,即使我更改了波段。。。

var ndwiWater=ndwi.gte(0.0);//1值==水var ndwiMask=ndwi.updateMask(ndwiWater);//获取ndwi水值Map.addLayer(ndwiWater,{palette:['black','blue']},'NDWI Binary Mask');Map.addLayer(ndwiMask,{palette:['blue']},'NDWI Mask');

这个ndwiWater公司变量是应应用于原始图像的二进制图像(0,1)(归一化差异水体指数)为了只选择值为1的像素(ndwi掩码).

我还试图进行间隙填充和平滑处理,但出现错误消息:“Image.reduceRegion,参数'Image':无效类型。预期类型:Image。实际类型:ImageCollection”

此错误与用户界面。图表.图像.直方图.根据功能文档,第一个参数必须是图像(而不是ImageCollection)。

//直方图var历史记录=ui。图表.图像.直方图(mndwi.first(),感兴趣区域,100,10);Histogram=Histogram.setOptions({title:“Histogramma MNDWI”});打印(直方图);

我希望这些评论有助于解决您的问题。

您的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.