Fortran Coder

查看: 2788|回复: 6
打印 上一主题 下一主题

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

[复制链接]

13

帖子

3

主题

0

精华

入门

F 币
55 元
贡献
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个采样点的数据






分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

13

帖子

3

主题

0

精华

入门

F 币
55 元
贡献
31 点
沙发
 楼主| 发表于 2022-8-31 10:52:06 | 只看该作者
本帖最后由 zy_cd 于 2022-8-31 11:03 编辑

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


835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
板凳
发表于 2022-9-2 14:17:00 | 只看该作者
试试 convert='IBM'

13

帖子

3

主题

0

精华

入门

F 币
55 元
贡献
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文件数据部分就是以整形存储的,用实型变量读的话就出现这种情况。

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
5#
发表于 2022-9-9 11:08:00 | 只看该作者
sgy卷头中3225-3226字节表示数据格式,你的可能是2

QQ截图20220909110452.png (82.1 KB, 下载次数: 159)

QQ截图20220909110452.png

13

帖子

3

主题

0

精华

入门

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


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

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
7#
发表于 2022-9-11 16:51:12 | 只看该作者
zy_cd 发表于 2022-9-9 16:09
确实是2,再次感谢,您也是物探专业的吗?

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

本版积分规则

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

GMT+8, 2024-12-24 09:06

Powered by Tencent X3.4

© 2013-2024 Tencent

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