IDL将0值设置为nodata

博客主要讲述了在IDL中把0值设置为nodata的相关内容,但具体操作等细节未给出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pro set_nodata

GPP=fltarr(720,360)

for i=1982L,2010L do begin 
 input_image='F:\P_SM_SPEI_GPP\Jung\GPP_JUNG\GPP_year\year\'+strtrim(string(i),02)+'.tif'
 GPP_image = read_tiff(input_image,Geotiff=Geotiff)
  for line=0,719 do begin
   for piex=0,359 do begin
   if (GPP_image[line,piex] le 0) then begin
    GPP[line,piex]=!VALUES.F_NAN
   endif else begin 
    GPP[line,piex]=GPP_image[line,piex]
   endelse
   endfor
  endfor
  output_file='F:\P_SM_SPEI_GPP\Jung\GPP_JUNG\GPP_year\year_nodata\'+strtrim(string(i),02)+'.tif'
  openw,lun,output_file,/get_lun
  write_tiff,output_file,GPP,Geotiff=Geotiff,/FLOAT
  free_lun,lun
  print,  i, '      OK!'
endfor

end
### 在 ENVI 中将小于特定阈的像素设为 NoData 为了实现这一目标,可以采用多种方法来处理遥感图像中的无效数据。一种常见的方式是在ENVI中利用其内置工具或者编写IDL脚本来完成此操作。 #### 使用 ENVI 的 Band Math 功能 通过Band Math功能可以直接定义表达式来创建新的波段,在这里可以通过逻辑运算符设定条件,使得满足条件(即低于给定阈)的地方被赋予NoData标记。具体来说: ```idl ; 假设输入影像名为 input_image, 阈为 threshold_value output_expression = 'input_image gt threshold_value ? input_image : !VALUES.NODATA' ``` 这段 IDL 代码表示如果 `input_image` 大于 `threshold_value` 则保留原;否则赋NoData[^1]。 #### 编写自定义 IDL 脚本 对于更复杂的场景可能需要编写完整的 IDL程序来进行批量处理或者其他高级定制化需求。下面是一个简单的例子展示如何读取影像并应用上述规则: ```idl pro set_nodata_below_threshold, infile, outfile, threshold_value ; 加载环境变量 envi,/restore_base ; 打开原始文件 fid = ENVIRasterOpen(infile) ; 获取基本信息 dims = FID.DIMENSIONS nbands = SIZE(dims)[0]-1 ; 创建输出文件 outfid = ENVICreateRaster(outfile,'BYTE',dims,nbands,FID.PROJECTION,FID.GEOLOCATION) FOR i=0,nbands-1 DO BEGIN band_data = READ_IMAGE(FID,i) ; 应用掩膜 mask = WHERE(band_data LT threshold_value, count) IF (count GT 0) THEN band_data[mask] = !VALUES.NODATA WRITE_IMAGE(outfid,band_data,i) ENDFOREACH CLOSEFID, fid CLOSEFID, outfid end ``` 以上两种方式都可以有效地将在ENVI软件中将低于某个预设阈的所有像元转换成NoData状态,从而达到去除不需要的信息的目的[^3]。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值