idl - 如何运行 IDL 程序以在所有频段上执行频段数学?
问题描述
我尝试使用 IDL Band Math 处理图像。图像有 90 个波段并设置变量pos=[0,1...90,],但只有一个波段(band1)进入 last.tiff
PRO bandmath
compile_opt IDL2
e = envi()
Path = FILE_DIRNAME(ROUTINE_FILEPATH())+PATH_SEP()
print, Path
radiance_file = FILEPATH('QUAC.dat', $
root_dir=Path)
raster = e.OpenRaster(radiance_file)
print, raster
fid = ENVIRasterToFID(raster)
exp = '(b1 le 0)*0+(b1 gt 0)*(b1*0.0001)'
ENVI_File_Query, fid, DIMS=dims, NB=nb
pos = lindgen(nb)
print, pos
out_name = "last.tiff"
ENVI_DOIT, 'MATH_DOIT', DIMS = dims, FID = fid, $
POS = pos, EXP = exp, OUT_NAME = out_name, R_FID = r_fid
END
解决方案
您可以从 envi claasic 帮助中找到名为“ CF_DOIT ”的 API
推荐阅读
- java - 回到之前的活动
- python - 如何绘制方向梯度的直方图?
- javascript - highcharts:向 x 范围图表添加标记
- c++ - 直接显示当前位置 AVIMUX
- datepicker - ngModle 值未反映在“ng-pick-datetime”日期选择器控件的 UI 中
- jquery - 模式中的粘性标题和按钮
- c - 如何使此代码输出“交换后:10、5”?
- javascript - 如何在 Puppeteer 中接受 JavaScript 警报弹出窗口?
- phaser-framework - 如何在 Phaser 3 框架中播放视频?
- c - 为什么宏函数 ListView_GetSelectedColumn() 不起作用?它什么也不返回