遥感影像配准


前言

由于GF-2影像的地理偏移,我们需要在地理上配准下载的Sentinel-2(4季节)和GF-2。

示例数据网盘链接:

链接:https://pan.baidu.com/s/1Tt-v2WqEpl26zN4LMeyF-w
提取码:kout


步骤

需要准备:1.ENVI;2.区域A的GF-2影像;3.区域A对应的四季节的哨兵影像。
哨兵影像要根据GF-2的矢量框,在Gee下载,矢量框的获取较为简单:
①定义地理坐标系为WGS1984;②重分类;③栅格转面
Gee下载四季影像

1.ENVI:打开Image Registration Workflow

2.Image Registration Workflow

(1)选择GF2为Base Image File,某季节Sentinel2为Warp,然后Next

(2)修改该参数为100

(3)人为选择5个左右控制点,然后Next

点“Start Editing"后便可以开始选择控制点

在GF-2上,瞅准某个位置,然后鼠标左键按下(出现十字),然后鼠标右键点击,弹出下图窗口,点击”Accept as Individual Points",然后会自动跳转到Sentinel-2影像,找到对应位置的点,同操作,便完成了控制点1的人工选择。

你也可以随时"Stop Editing",然后通过来回点击"Switch to Wrap"来查看两幅影像,去寻找你认为合适的控制点(我通常会选择十字路口房屋桥的交界处)。唯一需要注意的是,你决定要去选控制点时(“Start Editing”),第一个Accept是要在GF-2影像上点击的(有时候"Switch to Wrap"后,你没有切回Base Image,即使显示的是Wrap Image,你Accept的这个点,实际是在Base Image上的,这会导致你选择的控制点完全匹配不上)。

(4)删除离谱点

这时它自动选好了控制点,点击"Show Table"。

删除ERROR高的点,推荐一个个删,然后让RMS Error<1(同时控制点要在10个以上)
最后,修改此参数为Wrap Image,否则会导致Sentinel-2的分辨率重采样为1米。
点击Next,影像导出为tiff,ASCII文件有时能在人工选择控制点时提供帮助,提高效率,但有时没有用。
在这里能导入ASCII文件,有时候能让你不需要再人工选择控制点了(因为四张哨兵的地理信息是匹配的)

(5)在ENVI输出配准好的Sentinel影像为.tiff

Sentinel{}/Warpsenti{}_C.tiff

例如:目标区域1:
Sentinel1/Warpsenti1_C.tiff
Sentinel1/Warpsenti1_X.tiff
Sentinel1/Warpsenti1_Q.tiff
Sentinel1/Warpsenti1_D.tiff

最后

如果以GF-2为Base Image,那么每个区域要做4次配准,n个区域就是4n次配准;
如果以Sentinel-2为Base Image,那么每个区域只需要做1次配准,但最终的耕地结果可能和比赛方的“参考答案”存在地理偏差,不知道会不会因此影响比赛分数
如果不影响,那么就能大大节省时间!


Gee代码:
//—————————————————————————————需要修改的参数1:ro 矢量框路径————————————————————————
var ro = ee.FeatureCollection("users/Liuyifei/MAP_data/Studyarea/huantai");
ro = ro.first().geometry()
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);
}
var Mlt = function(image) {
  return image.multiply(10000);
};
//——————————————————————需要修改的参数2:folderr 第几个目标区域,只改数字————————————————————————
var folderr='Mapsenti'+'1';
//——————————————————————其它不需要动了————————————————————————
var start1='2020-12-01';
var end1='2021-03-01';
var dirname1=folderr+'_D';

var start2='2020-03-01';
var end2='2020-06-01';
var dirname2=folderr+'_C';

var start3='2021-06-01';
var end3='2021-09-01';
var dirname3=folderr+'_X';

var start4='2020-09-01';
var end4='2020-12-01';
var dirname4=folderr+'_Q';
// Map the function over one year of data.

// Load Sentinel-2 TOA reflectance data.

//export data1
var exportdataset1 =  ee.ImageCollection('COPERNICUS/S2_SR')
                  .filterBounds(ro)
                  .filterDate(start1,end1)
                  // Pre-filter to get less cloudy granules.
                  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20))
                  // .sort('CLOUDY_PIXEL_PERCENTAGE',false)
                  .map(maskS2clouds)
                  .select(['B2','B3', 'B4', 'B8']);

var exp1=exportdataset1.map(Mlt)
var mosaic1 = exp1.median().clip(ro);

Map.addLayer(mosaic1, {bands: ['B4', 'B3', 'B2'],min:0.0,max:0.3,gamma:0.5}, 'Crop Landcover');
  Export.image.toDrive({
      image:mosaic1,
      description:dirname1,
      scale:10,
      folder :folderr,
      // crs: "EPSG:32649",
      maxPixels: 1e13,
      region:ro,
      fileFormat: 'GeoTIFF',
      formatOptions: {
        cloudOptimized: true
      }
    });
var num=exportdataset1.size()
print('Winter',num)
//export data2
var exportdataset2 =  ee.ImageCollection('COPERNICUS/S2_SR')
                  .filterBounds(ro)
                  .filterDate(start2,end2)
                  // Pre-filter to get less cloudy granules.
                  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20))
                  .map(maskS2clouds)
                  .select(['B2','B3', 'B4', 'B8']);

var exp2=exportdataset2.map(Mlt);
var mosaic2 = exp2.median().clip(ro);
  
  Export.image.toDrive({
      image:mosaic2,
      description:dirname2,
      scale:10,
      folder :folderr,
      // crs: "EPSG:32649",
      maxPixels: 1e13,
      region:ro,
      fileFormat: 'GeoTIFF',
      formatOptions: {
        cloudOptimized: true
      }
    });
var num=exportdataset2.size()
print('Spring',num)
//export data3
var exportdataset3 =  ee.ImageCollection('COPERNICUS/S2_SR')
                  .filterBounds(ro)
                  .filterDate(start3,end3)
                  // Pre-filter to get less cloudy granules.
                  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20))
                  .map(maskS2clouds)
                  .select(['B2','B3', 'B4', 'B8']);

var exp3=exportdataset3.map(Mlt);
var mosaic3 = exp3.median().clip(ro);
  
  Export.image.toDrive({
      image:mosaic3,
      description:dirname3,
      scale:10,
      folder :folderr,
      // crs: "EPSG:32649",
      maxPixels: 1e13,
      region:ro,
      fileFormat: 'GeoTIFF',
      formatOptions: {
        cloudOptimized: true
      }
    });
var num=exportdataset3.size()
print('Summer',num)
//export data4
var exportdataset4 =  ee.ImageCollection('COPERNICUS/S2_SR')
                  .filterBounds(ro)
                  .filterDate(start4,end4)
                  // Pre-filter to get less cloudy granules.
                  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20))
                  .map(maskS2clouds)
                  .select(['B2','B3', 'B4', 'B8']);

var exp4=exportdataset4.map(Mlt);
var mosaic4 = exp4.median().clip(ro);
  
  Export.image.toDrive({
      image:mosaic4,
      description:dirname4,
      scale:10,
      folder :folderr,
      // crs: "EPSG:32649",
      maxPixels: 1e13,
      region:ro,
      fileFormat: 'GeoTIFF',
      formatOptions: {
        cloudOptimized: true
      }
    });
var num=exportdataset4.size()
print('Autumn',num)'''
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
本程序主要对遥感图像实现三种处理:几何校正、图像增强和图像配准。这三种处理都可以独立实现,然而对于原始的遥感图像将这三种处理依次进行效果更佳。 具体操作步骤如下: 1.在主窗口打开图像1 2.选择【几何校正】菜单,打开【图像几何校正】对话框进行几何校正。在此对话框中,首先打开待校正图像2,然后点击【选取特正点】按钮,按照提示依次在待校正图像和基准图像中手动选取特征点,最后点击【校正图像】得到几何校正结果,如果达到预期效果,则点击【保存并在主窗口打开】按钮,保存此校正图片,并在主窗口打开。 3.选择【图像增强】菜单,打开【图像增强】对话框进行图像增强。在此对话框中,首先在相应的处理类别(如:直方图增强、灰度增强等)中选择具体方法(如:均衡化、规定化等),然后点击本类别的按钮。增强后的结果会在右侧显示,如果达到预期效果,则点击【保存并在主窗口打开】按钮,保存此增强后的图片,并在主窗口打开。 4.选择【图像配准】菜单,打开【图像配准】对话框进行图像配准。在此对话框中,首先打开待匹配图像3,然后选择“半自动”或“手动”方法并点击【选取特正点】按钮,按照提示依次在待配准图像和基准图像中半自动或手动选取特征点(如果在半自动选取中特征点对应错误,可以更改特征点),最后点击【匹配图像】得到图像配准结果,如果达到预期效果,则点击【保存并在主窗口打开】按钮,保存此校正图片,并在主窗口打开。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值