Расшифруйте файл SEGD и постройте любой след от него - PullRequest
0 голосов
/ 26 октября 2019

Есть файл SEGD с некоторыми сейсмическими данными. Как декодировать любую трассировку?

Скрипт Python может читать и декодировать заголовки в соответствии с документацией SEGD Rev 2.1. Как расшифровать и построить любой след. Попытался использовать 1-байтовый метод записи данных. Но с неправильным результатом. Тело данных:

«10111110», «00101001», «11001111», «00010010», «10111101», «10100110», «00110010», «00100100», «10111100», «10010000»,«10000100», «10010101», «00111101», «10101001», «00010110», «00100010», «00111110», «00001000», «10010001», «11011010», «00111101», «10101001», «00010110»',' 00100010 ',' 00111100 ',' 10011100 ',' 00010100 ',' 10001011 ',

ожидая получить что-то вроде

    1.000e+00,  1.000e+00,  1.000e+00,  1.000e+00,  3.125e-02,
    1.000e+00,  1.000e+00,  1.000e+00,  1.000e+00,  1.000e+00,
    1.000e+00,  1.000e+00,  1.000e+00,  3.125e-02,  3.125e-02,
    3.125e-02,  3.125e-02,  3.125e-02,  3.125e-02,  3.125e-02,
    3.125e-02,  3.125e-02,  3.125e-02,  3.125e-02,  3.125e-02,
    3.125e-02,  3.125e-02,  3.125e-02,  3.125e-02,  3.125e-02,
    3.125e-02,  3.125e-02, -1.000e+00, -1.000e+00, -1.000e+00,
   -1.000e+00, -1.000e+00, -1.000e+00, -1.000e+00, -1.000e+00,
    3.125e-02,  3.125e-02,  3.125e-02,  3.125e-02,  7.000e+00,
    2.600e+01,  4.100e+01,  6.100e+01,  7.500e+01,  7.400e+01,
    5.900e+01,  3.600e+01,  1.500e+01,  1.000e+00, -7.000e+00,
   -1.200e+01, -1.300e+01, -1.400e+01, -1.200e+01, -1.000e+01,

1 Ответ

0 голосов
/ 14 ноября 2019

Используйте структуру. Создайте формат и используйте его для чтения файла в начале трассы, а именно:

    tracedataformat = '!' + str('f' * ns)
    f.seek(pos)
    tr = np.zeros(ns, np.float)
    tr = np.array(struct.unpack(format, f.read(4 * ns)))
  • Чтение 32-битных операций с плавающей точкой в ​​формате IEEE
  • ns - числовыборок для чтения (получить из дескриптора каналов)
  • pos - позиция в байтах относительно начала файла начала трассы.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...