IDL_植被变化监测

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

PRO ChangeDetection

  COMPILE_OPT idl2
  e=ENVI()

  ;第一和第二时相数据
  inputFile1 = 'D:\ENVI_outputdata\LC8_20160712_Subset'
  inputFile2 = 'D:\ENVI_outputdata\LC8_20180429_Subset'

  ;输出文件路径
  outputFile = e.GetTemporaryFilename()
  PRINT, outputFile

  Raster1 = e.OPENRASTER(inputFile1)
  Raster2 = e.OPENRASTER(inputFile2)

  View = e.GetView()
  Layer1 = View.CreateLayer(Raster1)
  Layer2 = View.CreateLayer(Raster2)
  View.Zoom, 1, /FULL_EXTENT

  ;快速大气校正
  QUACRaster1 = ENVIQUACRASTER(Raster1)
  QUACRaster2 = ENVIQUACRASTER(Raster2)

  ;计算NDVI
  Index = 'NDVI'
  Subset1 &#
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
IDL_IDLBridge是一个用于在IDL中启动子进程并执行代码的对象。通过创建IDL_IDLBridge对象并调用Execute方法,可以在IDL中启动子进程并执行指定的IDL代码。[1] 使用IDL_IDLBridge可以实现在异步计算中使用多进程加速数据处理的目的。通过在一个IDL进程等待的同时完成更多的处理,充分利用PC的CPU算力。 以下是使用IDL_IDLBridge的代码示例: compile_opt idl2 obridge = obj_new('IDL_IDLBridge') childprofile1='Full path to your IDL file' obridge->Execute,'.compile "' childprofile1 '"' obridge->Execute,'IDL file name',/NOWAIT IDL_IDLBridge还可以实现并行算法,特别适用于逐行计算的处理问题。可以通过设置回调函数来获取具体的执行信息,或者使用dialog_message函数来模拟print语句的效果。下面是一个示例代码: function_position = 'C:\Users\DN\Documents\IDL\mult2.pro' b='xpnp' oBridge2 = OBJ_NEW('IDL_IDLBridge',CALLBACK='demo_bridge_call') oBridge2->Execute,".compile " "'" Function_position "'" oBridge2->Setvar,"str",b oBridge2->Execute,"xxx=mult(str)",/nowait print,'xgggx',oBridge2->status() while(1) do begin sg=oBridge2->status() if(sg eq 0) then break endwhile pro demo_bridge_call, status, error, oBr CASE status of 2: str="Completed" 3: str="Error: " error 4: str=error ; Aborted message ENDCASE print,'str::',str END 另外,IDL_IDLBridge还可以同时开启多个进程来处理数据。以下是一个示例代码: pro MultiProcesses ;开启3个进程同时处理数据 compile_opt idl2 obridge1 = obj_new('IDL_IDLBridge') childprofile1='F:\Mekong_MultiRun\mekong_2010.pro' obridge1->Execute,'.compile "' childprofile1 '"' obridge1->Execute,'mekong_2010',/NOWAIT obridge2 = obj_new('IDL_IDLBridge') childprofile2='F:\Mekong_MultiRun\mekong_2011.pro' obridge2->Execute,'.compile "' childprofile2 '"' obridge2->Execute,'mekong_2011',/NOWAIT obridge3 = obj_new('IDL_IDLBridge') childprofile3='F:\Mekong_MultiRun\mekong_2012.pro' obridge3->Execute,'.compile "' childprofile3 '"' obridge3->Execute,'np_mekong_2012',/NOWAIT END 总结:IDL_IDLBridge是一个用于在IDL中启动子进程并执行代码的对象。它可以实现异步计算和多进程加速数据处理,并提供了一些回调函数和工具函数来获取执行信息和模拟print语句的效果。可以根据需要创建多个IDL_IDLBridge对象来同时处理多个任务。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xuquan0928

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值