IDL8.5进行影像裁剪代码

IDL8.5对影像进行裁剪代码如下:

IDL中英文分号是注释符号

;这个函数完成影像裁剪工作
;imgPath表示影像所在路径
;outPutPath表示裁剪后影像的输出路径
;upperLeftLat表示裁剪后影像左上角纬度
;upperLeftLon表示裁剪后影像左上角经度
;lowerRightLat表示裁剪后影像右下角纬度
;lowerRightLon表示裁剪后影像右下角经度
;本函数中的坐标为经纬度坐标,若为其他坐标系,适用性未知
Function Subset,imgPath,outPutPath,upperLeftLat,upperLeftLon, lowerRightLat ,lowerRightLon
    if File_test(outPutPath) eq 1 then Begin
        return, outPutPath
    endif
    COMPILE_OPT idl2
    e = ENVI(/HEADLESS)
    path = string(imgPath)
    raster = e.OpenRaster(path)
    SpaRef = raster.SPATIALREF
    SpaRef.ConvertLonLatToMap, UpperLeftLon, UpperLeftLat, ULMapX, ULMapY
    SpaRef.ConvertLonLatToMap, LowerRightLon, LowerRightLat, LRMapX, LRMapY
    SubsetRegion = ENVISubsetRaster(raster,SPATIALREF = SpaRef,SUB_RECT=[ULMapX, LRMapY, LRMapX, ULMapY])
    e.ExportRaster,SubsetRegion, outPutPath,'tiff'
    print,"裁剪成功"
END


;在这个过程中调用影像裁剪函数
PRO layerstack
  imgPath = "I:\LandslideResource\HJ数据\2011年\HJ1A-CCD2-15-84-20110313-L20000499902\499902\"
  imgPath = imgPath+"波段合成.tiff"
  outPutPath = imgPath+"波段合成_裁剪.tiff"
  UpperLeftLat = 27.16756
  UpperLeftLon = 103.22973
  LowerRightLat = 26.90028
  LowerRightLon = 103.535958
  Result = Subset(imgPath ,outputPath,upperLeftLat,upperLeftLon, lowerRightLat ,lowerRightLon);
END

以上代码在IDL8.5中测试通过,希望能帮助到大家

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值