回 帖 发 新 帖 刷新版面

主题:如何把SEGY格式的数据去道头?

说明:
SEGY格式数据是这样存储的:3600字节+240字节+6000字节+240字节+6000字节+............+240字节+6000字节.其中240字节存放60个整型数字,6000字节存放1500个浮点数字,现在想把该文件读入,跳过3600字节,把后边的数字写入新的文件中,我这里有一个老方法,按4字节读入,从901开始定位,但是由于该数据文件巨大(近似2Gb),由于频繁读写,所以非常慢,请各位高手帮我找到一种快速存储的好办法.
        CHARACTER*4 r
        character*80 file1,file2
        write(*,*) 'filename for input data'
        read(*,'(a80)') file1
        write(*,*) 'filenamne for output data'
        read(*,'(a80)') file2
        write(*,*) 'number of samples'
        read(*,*) nt_sample
        open(11,file=file1,access='direct',recl=4)
        open(12,file=file2,access='direct',recl=4)
        l=1
        do j=1,900
        read(11,rec=l)r
        l=l+1
        enddo
        ii=0
111     CONTINUE
        ii=ii+1
        DO J=1,60+nt_sample
        READ(11,rec=l,err=999)r
        WRITE(12,rec=l-900)r
        l=l+1
        ENDDO
        GOTO 111
999     CLOSE(11)
        CLOSE(12)
        END
[em10]

回复列表 (共4个回复)

沙发

我看了您的程序,没错!但是不能用啊!

板凳

这位仁兄是地球物理专业的吧!haha

3 楼

你的QQ是多少,请教下楼主

4 楼

但是非标准的SEGY格式没有卷头 怎么来判断哦?

我来回复

您尚未登录,请登录后再回复。点此登录或注册