Fortran Coder

查看: 201|回复: 6

[文件读写] 编写的SGY 文件道数据读取程序,读取的与seisee显示的不同

[复制链接]

13

帖子

3

主题

0

精华

入门

F 币
53 元
贡献
31 点
发表于 2022-8-31 10:51:31 | 显示全部楼层 |阅读模式
这是我写的代码
     
[Fortran] 纯文本查看 复制代码
 program SRME
    real*4,ALLOCATABLE::SEISMIC_DATA(:)
    CHARACTER*20 filename
    integer*2 SAMPLE_RATE,TRACE_LENGTH,TRACE_AMOUNT

      TRACE_AMOUNT=5765
    filename='Z10-CH-1.sgy'
      
    WRITE(*,*)'获得SGY数据采样率、采样长度'
    OPEN(15,FILE=FILENAME,ACCESS='DIRECT',
     $FORM='BINARY',RECL=2,convert='big_endian')
    READ(15,REC=1859) SAMPLE_RATE
    READ(15,REC=1858) TRACE_LENGTH
    WRITE(*,*)'采样率=',SAMPLE_RATE,'采样长度=',TRACE_LENGTH
    CLOSE(15)
    ALLOCATE(SEISMIC_DATA(1:TRACE_LENGTH))     
         
       OPEN(30,FILE=FILENAME,FORM='binary',
     $ACCESS='DIRECT',RECL=4,convert='big_endian')
       WRITE(*,*)'读取SGY地震数据'
       DO I=1,TRACE_AMOUNT
          OPEN(30,FILE=FILENAME,FORM='BINARY',
     $ACCESS='DIRECT',RECL=4,convert='big_endian')
            DO L1=1,TRACE_LENGTH
             READ(30,REC=900+60*I+(I-1)*TRACE_LENGTH+L1)
     $SEISMIC_DATA(L1)
             write(*,*)L1,seismic_data(l1)
          END DO
    PAUSE
         END DO
      END PROGRAM


这是运行结果,是sgy文件第一道前26个采样点的数据
2.jpg





13

帖子

3

主题

0

精华

入门

F 币
53 元
贡献
31 点
 楼主| 发表于 2022-8-31 10:52:06 | 显示全部楼层
本帖最后由 zy_cd 于 2022-8-31 11:03 编辑

这是用SEISEE软件打开的第一道前26个采样点数据

1.jpg

683

帖子

2

主题

0

精华

大宗师

F 币
3351 元
贡献
2071 点
发表于 2022-9-2 14:17:00 | 显示全部楼层
试试 convert='IBM'

13

帖子

3

主题

0

精华

入门

F 币
53 元
贡献
31 点
 楼主| 发表于 2022-9-9 10:16:34 | 显示全部楼层
li913 发表于 2022-9-2 14:17
试试 convert='IBM'

已解决, real*4,ALLOCATABLE::SEISMIC_DATA(:)这个语句改为 integer*4,ALLOCATABLE::SEISMIC_DATA(:)后就正常了。可能我用的sgy文件数据部分就是以整形存储的,用实型变量读的话就出现这种情况。

683

帖子

2

主题

0

精华

大宗师

F 币
3351 元
贡献
2071 点
发表于 2022-9-9 11:08:00 | 显示全部楼层
sgy卷头中3225-3226字节表示数据格式,你的可能是2
QQ截图20220909110452.png

13

帖子

3

主题

0

精华

入门

F 币
53 元
贡献
31 点
 楼主| 发表于 2022-9-9 16:09:33 | 显示全部楼层
本帖最后由 zy_cd 于 2022-9-9 16:14 编辑
li913 发表于 2022-9-9 11:08
sgy卷头中3225-3226字节表示数据格式,你的可能是2

2.jpg
确实是2,再次感谢,您也是物探专业的吗?

683

帖子

2

主题

0

精华

大宗师

F 币
3351 元
贡献
2071 点
发表于 2022-9-11 16:51:12 | 显示全部楼层
zy_cd 发表于 2022-9-9 16:09
确实是2,再次感谢,您也是物探专业的吗?

恩,Fortran程序员物探的很多。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2022-9-28 16:31

Powered by Tencent X3.4

© 2013-2022 Tencent

快速回复 返回顶部 返回列表