菜鸟速成记-IDL读取显示dat文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/github_37287822/article/details/72639899

DAT文件的读取

问题描述

之前,博主没有理解dat文件导致对文件获取产生问题和误解,还可笑的认为没办法获取demission的话,是没有办法读取dat文件的。

由于dat文件是遥感影像的常用格式之一。所以,首先认识一番,dat文件。

  1. 先找个文件夹看看它在哪
    Markdown

2.看看它们到底长什么样子

  • hdr 头文件
    Markdown

  • dat 文件
    Markdown

3.思考怎么去读取dat文件

读取dat文件的思路:
- 首先获取到dat文件的头文件信息。

  • 调用函数进行显示READ_BINARY()

Markdown

代码实现过程

由于代码实现过于简单,所以没有写相应的注释,有什么不会的直接留言~

pro read_dat

hdr_path=DIALOG_PICKFILE(/READ)
hdr_path=string(hdr_path)

head_info=strarr(6)
openr,lun,hdr_path,/get_lun
readf,lun,head_info
;print,head_info
free_lun,lun
 I=5;
 while (i gt 0) do begin
   temp=string(head_info[i])
   IF(temp.contains('samples'))THEN BEGIN
     xs=temp
   ENDIF
   IF(temp.contains('bands'))THEN BEGIN
     band=temp
   ENDIF
   IF(temp.contains('lines'))THEN BEGIN
     ys=temp
   ENDIF
   IF i GT 5 THEN BEGIN
     BREAK
   ENDIF
   i--
 endwhile
  ;print,head_info[j]

;xs=string(head_info[3])
xs=xs.split("=")
xs=xs[1]
;ys=string(head_info[4])
ys=ys.split("=")
ys=ys[1]
;band=string(head_info[4])
band=band.split("=")
band=band[1]

img_path=dialog_pickfile(/read)
img_path=string(img_path)
imageSize=[uint(xs),uint(ys)]
mbells = READ_BINARY(img_path, DATA_DIMS = imagesize)

; TrueColor display
DEVICE, DECOMPOSED = 0
LOADCT, 0
WINDOW, 0, XSIZE = imageSize[0], YSIZE = imageSize[1], $
   TITLE = 'A Binary Image, Scaled'
TVSCL, mbells
end

代码实现的效果

Markdown

灰度图实现效果

Markdown

送你们个惊喜

国外优秀网站

在GIS的沙场,传播有价值的东西!

展开阅读全文

没有更多推荐了,返回首页