UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
stnd_file.h
1 /* stnd_file.h */
2 /* $Id: stnd_file.h,v 1.11 2001/02/13 17:19:49 vlad Exp $ */
3 #ifndef __stnd_file_h
4 #define __stnd_file_h
5 
6 /***********************************************************************
7  *
8  * Формат заголовка файла трасс, принятый в пакете VSP-STND для MS DOS.
9  *
10  ***********************************************************************/
11 
12 /* Имя поля Смещение в байтах */
13 #define STND_FH_type 0
14 #define STND_FH_dspl 10
15 #define STND_FH_date 12
16 #define STND_FH_mod 21
17 #define STND_FH_modin 34
18 #define STND_FH_nprog 47
19 #define STND_FH_pole 56
20 
21 
22 /***********************************************************************
23  *
24  * Формат заголовка трассы, принятый в пакете VSP-STND для MS DOS.
25  *
26  ***********************************************************************/
27 
28 /* Имя поля Смещение в байтах */
29 #define STND_LHB 0
30 #define STND_Xsp 2
31 #define STND_Ysp 6
32 #define STND_Zsp 10
33 #define STND_Xpp 14
34 #define STND_Ypp 18
35 #define STND_Zpp 22
36 #define STND_Xdp 26
37 #define STND_Ydp 30
38 #define STND_Zdp 34
39 #define STND_Hcab 38
40 #define STND_Tstart 42
41 #define STND_Tend 46
42 #define STND_Tspl 50
43 #define STND_Tepl 54
44 #define STND_Tdt 58
45 #define STND_Nsp 62
46 #define STND_Fmg 64
47 #define STND_Ntr 66
48 #define STND_Kod 68
49 #define STND_Type 70
50 #define STND_Elem 72
51 #define STND_Nssp 74
52 #define STND_Nsop 76
53 #define STND_Frm 78
54 
55 
56 /* Стандартный размер заголовка файла в байтах;
57  может быть другим - смотри поле заголовка файла трасс dspl */
58 #ifndef STND_FileHdrSize
59 # define STND_FileHdrSize 90
60 #endif /* STND_FileHdrSize */
61 
62 /* Стандартный размер заголовка трассы в байтах;
63  может быть другим - смотри поле заголовка трассы LHB */
64 #ifndef STND_HdrSize
65 # define STND_HdrSize 80
66 #endif /* STND_HdrSize */
67 
68 /* Тип трассы */
69 #define STND_Type_DEVICE 0 /* Прибор глубинного зонда */
70 #define STND_Type_CONTROL 1 /* Контрольный прибор */
71 #define STND_Type_GROUND 2 /* Наземная расстановка */
72 
73 /* Формат отсчетов */
74 #define STND_Frm_INT_2 0 /* 2-х байтовый целый */
75 #define STND_Frm_REAL_2 1 /* 2-х байтовый вещественный */
76 #define STND_Frm_REAL_4 2 /* 4-х байтовый вещественный */
77 #define STND_Frm_INT_4 3 /* 4-х байтовый целый */
78 #define STND_Frm_REAL_8 4 /* 8-и байтовый вещественный */
79 #define STND_Frm_REAL_10 5 /* 10-и байтовый вещественный */
80 
81 
82 /***********************************************************************
83  *
84  * Формат таблицы PROF, принятый в пакете VSP-STND для MS DOS.
85  *
86  ***********************************************************************/
87 
88 /* Имя поля Смещение в байтах */
89 #define STND_LEADER_q1 0 /* Обычно 1 */
90 #define STND_LEADER_q2 2 /* Обычно 1 */
91 
92 /* Имя поля Смещение в байтах */
93 #define STND_PRF_npv 0 /* Номер ПВ */
94 #define STND_PRF_tbeg 2 /* Начальное время в мс */
95 #define STND_PRF_tend 6 /* Конечное время в мс */
96 #define STND_PRF_dt 10 /* Шаг дискретизации в мс */
97 #define STND_PRF_ftr 14 /* Формат трассы (см. STND_Frm_*) */
98 #define STND_PRF_length 16 /* Длина тела трассы в байтах */
99 #define STND_PRF_hbeg 18 /* Начальная глубина (нижняя) */
100 #define STND_PRF_hend 22 /* Конечная глубина (верхняя) */
101 #define STND_PRF_qtr 26 /* Количество трасс */
102 #define STND_PRF_qmg 28 /* Количество магнитограмм */
103 #define STND_PRF_qmgt 30 /* Количество типов магнитограмм */
104 #define STND_PRF_qver 32 /* Число версий */
105 #define STND_PRF_sw_ver 34 /* 0-последовательно; 1-мультиплексно */
106 
107 /* Имя поля Смещение в байтах */
108 #define STND_PRLSMG_lnumb_mg 0 /* Логический номер магнитограммы */
109 #define STND_PRLSMG_numb_type 2 /* Номер типа магнитограммы */
110 
111 /* Имя поля Смещение в байтах */
112 #define STND_MGT_numb_meth 0 /* Номер методики */
113 #define STND_MGT_q_trace 2 /* Число трасс в магнитограмме */
114 #define STND_MGT_lst_trace 4 /* Список номеров трасс */
115 #define STND_MGT_comp_s 100 /* Список компонент зонда */
116 #define STND_MGT_comp_c 105 /* Список компонент контр. прибора */
117 
118 /* Имя поля Смещение в байтах */
119 #define STND_HTR_hcab 0 /* Кабельная глубина */
120 #define STND_HTR_hcabmg 4 /* Каб. глубина нижней точки зонда */
121 #define STND_HTR_ntrf1 8 /* Номер трассы в исходном файле */
122 #define STND_HTR_ntr 10 /* Номер трассы в магнитограмме */
123 #define STND_HTR_nsp 12 /* Номер пункта взрыва */
124 #define STND_HTR_pos 14 /* Тип трассы */
125 #define STND_HTR_comp 15 /* Компонента */
126 #define STND_HTR_nps 18 /* Номер точки зонда */
127 #define STND_HTR_nmgf1 20 /* Номер магнитограммы в исх. файле */
128 #define STND_HTR_lnmg 22 /* Логический номер магнитограммы */
129 #define STND_HTR_fnmg 24 /* Полевой номер магнитограммы */
130 #define STND_HTR_nch 26 /* Номер контрольной скважины / #define STND_HTR_xsp 28 /* X-координата ПВ */ #define STND_HTR_ysp 32 /* Y-координата ПВ */ #define STND_HTR_zsp 36 /* Z-координата ПВ */ /* Размер частей файла PROF в байтах */ #define STND_LEADER_Size 4 #define STND_PRF_Size 36 #define STND_PRLSMG_Size 4 #define STND_MGT_Size 110 #define STND_HTR_Size 40 /* Максимальное число трасс в магнитограмме модификации */ #define STND_MAX_TR 48 /* * Следующая условно-обрабатываемая часть действительна только если * данный файл подключен НЕ из программы трансформации (смотри ft). */ #ifndef _filetrans_ #include <mix/Types.h> /*********************************************************************** * Описание структуры файла трасс VSP-STND ***********************************************************************/ /* Заголовок файла трасс VSP-STND Содержит информацию для истории обработки */ typedef struct { Char type[9]; /* Строчка "VSP-PC" */ Int2 dspl; /* Размер заголовка файла в байтах */ Char date[9]; /* Дата создания модификации, нр. "12/24/97" */ Char mod[13]; /* Имя файла модификации, нр. "pv001m01.v00" */ Char modin[13]; /* Источник получения модификации */ Char nprog[9]; /* Имя программы, создавшей модификацию */ Char pole[33]; /* Комментарий действия программы */ } STND_FileHeader; /* Структура, удобная для преобразования бинарного заголовка файла формата VSP-STND */ typedef struct { Char data1_char[9]; Int2 data2_int_2[1]; Char data3_char[9+13+13+9+33]; } STND_FileHeader_blocks; /* Заголовок трассы VSP-STND */ typedef struct { Int2 LHB; /* Размер заголовка трассы */ Real4 Xsp; /* Координаты ПВ */ Real4 Ysp; Real4 Zsp; Real4 Xpp; /* Координаты ПП */ Real4 Ypp; Real4 Zpp; Real4 Xdp; /* Координаты ОГТ */ Real4 Ydp; Real4 Zdp; Real4 Hcab; /* Кабельная глубина */ Int4 Tstart; /* Время первого отсчета, мс */ Int4 Tend; /* Время последнего отсчета, мс */ /* Таким образом, количество отсчетов вычисляется по формуле (Tend - Tstart)/Tdt + 1 */ Int4 Tspl; /* Время первого полезного отсчета, мс */ Int4 Tepl; /* Время последнего полезного отсчета, мс */ Int4 Tdt; /* Шаг дискретизации, мс */ Int2 Nsp; /* Номер ПВ */ Int2 Fmg; /* Полевой номер магнитограммы (взрыва) */ Int2 Ntr; /* Номер трассы (канала) */ Int2 Kod; /* Код ??? */ Int2 Type; /* Тип трассы */ Char Elem[2]; /* Компонента (ориентация прибора): "x","y".. */ Int2 Nssp; /* Номер статических поправок за ПВ */ Int2 Nsop; /* Номер статических поправок за ПП */ Int2 Frm; /* Формат отсчетов трассы */ } STND_TraceHeader; /* !!! ATTENTION !!! sizeof(STND_TraceHeader) > STND_HdrSize */ /* Структура, удобная для преобразования заголовка трассы формата VSP-STND */ typedef struct { Int2 data1_int_2[1]; Real4 data2_real_4[10]; Int4 data3_int_4[5]; Int2 data4_int_2[5]; Char data5_char[2]; Int2 data6_int_2[3]; } STND_TraceHeader_blocks;/* !!! ATTENTION !!! sizeof(STND_TraceHeader_blocks) > STND_HdrSize */ /*********************************************************************** * Описание структуры файла таблицы PROF VSP-STND ***********************************************************************/ /* Файл имеет следующую структуру: - Часть LEADER (4 байта). - Часть PRF (36 байтов). - Часть PRLSMG (4 байта), повторенная PRF::qmg раз. - Часть MGT (110 байтов), повторенная PRF::qmgt раз. - Часть HTR (40 байтов), повторенная PRF::qtr раз. */ /* Структура LEADER файла PROF VSP-STND неизвестного назначения */ typedef struct { Int2 q1; /* Обычно 1 */ Int2 q2; /* Обычно 1 */ } STND_LEADER_Struct; /* Структура PRF файла PROF VSP-STND */ typedef struct { Int2 npv; /* Номер ПВ */ Real4 tbeg; /* Начальное время в мс */ Real4 tend; /* Конечное время в мс */ Real4 dt; /* Шаг дискретизации в мс */ Int2 ftr; /* Формат трассы (см. STND_Frm_*) */ Int2 length; /* Длина тела трассы в байтах */ Real4 hbeg; /* Начальная глубина (нижняя) */ Real4 hend; /* Конечная глубина (верхняя, часто 0) */ Int2 qtr; /* Количество трасс */ Int2 qmg; /* Количество магнитограмм */ Int2 qmgt; /* Количество типов магнитограмм */ Int2 qver; /* Число версий */ Int2 sw_ver; /* 0 - версии записаны последовательно 1 - версии записаны мультиплексно */ } STND_PRF_Struct; /* Структура PRLSMG файла PROF VSP-STND */ typedef struct { Int2 lnumb_mg; /* Логический номер магнитограммы */ Int2 numb_type; /* Номер типа магнитограммы (см numb_meth) */ } STND_PRLSMG_Struct; /* Структура MGT файла PROF VSP-STND */ typedef struct { Int2 numb_meth; /* Номер методики */ Int2 q_trace; /* Число трасс в магнитограмме */ Int2 lst_trace[STND_MAX_TR]; /* Список номеров трасс */ Char comp_s[5]; /* Список компонент зонда */ Char comp_c[5]; /* Список компонент контр. прибора */ } STND_MGT_Struct; /* Структура HTR файла PROF VSP-STND */ typedef struct { Real4 hcab; /* Кабельная глубина */ Real4 hcabmg; /* Кабельная глубина нижней точки зонда */ Int2 ntrf1; /* Номер трассы в исходном файле */ Int2 ntr; /* Номер трассы в магнитограмме */ Int2 nsp; /* Номер пункта взрыва */ Char pos; /* Тип трассы: 's'-глубинная, 'c'-контрольная */ Char comp[3]; /* Компонента */ Int2 nps; /* Номер точки зонда */ Int2 nmgf1; /* Номер магнитограммы в исходном файле */ Int2 lnmg; /* Логический номер магнитограммы */ Int2 fnmg; /* Полевой номер магнитограммы */ Int2 nch; /* Номер контрольной скважины (0 для глуб.) */ Real4 xsp; /* X-координата ПВ */ Real4 ysp; /* Y-координата ПВ */ Real4 zsp; /* Z-координата ПВ */ } STND_HTR_Struct; #endif /* _filetrans_ */ #endif /* stnd_file.h */ */
131 #define STND_HTR_xsp 28 /* X-координата ПВ */
132 #define STND_HTR_ysp 32 /* Y-координата ПВ */
133 #define STND_HTR_zsp 36 /* Z-координата ПВ */
134 
135 
136 /* Размер частей файла PROF в байтах */
137 #define STND_LEADER_Size 4
138 #define STND_PRF_Size 36
139 #define STND_PRLSMG_Size 4
140 #define STND_MGT_Size 110
141 #define STND_HTR_Size 40
142 
143 /* Максимальное число трасс в магнитограмме модификации */
144 #define STND_MAX_TR 48
145 
146 
147 /*
148  * Следующая условно-обрабатываемая часть действительна только если
149  * данный файл подключен НЕ из программы трансформации (смотри ft).
150  */
151 #ifndef _filetrans_
152 
153 #include <mix/Types.h>
154 
155 /***********************************************************************
156  * Описание структуры файла трасс VSP-STND
157  ***********************************************************************/
158 
159 /* Заголовок файла трасс VSP-STND
160  Содержит информацию для истории обработки */
161 typedef struct
162 {
163  Char type[9]; /* Строчка "VSP-PC" */
164  Int2 dspl; /* Размер заголовка файла в байтах */
165  Char date[9]; /* Дата создания модификации, нр. "12/24/97" */
166  Char mod[13]; /* Имя файла модификации, нр. "pv001m01.v00" */
167  Char modin[13]; /* Источник получения модификации */
168  Char nprog[9]; /* Имя программы, создавшей модификацию */
169  Char pole[33]; /* Комментарий действия программы */
170 
172 
173 
174 /* Структура, удобная для преобразования
175  бинарного заголовка файла формата VSP-STND */
176 typedef struct
177 {
178  Char data1_char[9];
179  Int2 data2_int_2[1];
180  Char data3_char[9+13+13+9+33];
181 
183 
184 
185 /* Заголовок трассы VSP-STND */
186 typedef struct
187 {
188  Int2 LHB; /* Размер заголовка трассы */
189  Real4 Xsp; /* Координаты ПВ */
190  Real4 Ysp;
191  Real4 Zsp;
192  Real4 Xpp; /* Координаты ПП */
193  Real4 Ypp;
194  Real4 Zpp;
195  Real4 Xdp; /* Координаты ОГТ */
196  Real4 Ydp;
197  Real4 Zdp;
198  Real4 Hcab; /* Кабельная глубина */
199  Int4 Tstart; /* Время первого отсчета, мс */
200  Int4 Tend; /* Время последнего отсчета, мс */
201  /* Таким образом, количество отсчетов вычисляется по формуле
202  (Tend - Tstart)/Tdt + 1 */
203  Int4 Tspl; /* Время первого полезного отсчета, мс */
204  Int4 Tepl; /* Время последнего полезного отсчета, мс */
205  Int4 Tdt; /* Шаг дискретизации, мс */
206  Int2 Nsp; /* Номер ПВ */
207  Int2 Fmg; /* Полевой номер магнитограммы (взрыва) */
208  Int2 Ntr; /* Номер трассы (канала) */
209  Int2 Kod; /* Код ??? */
210  Int2 Type; /* Тип трассы */
211  Char Elem[2]; /* Компонента (ориентация прибора): "x","y".. */
212  Int2 Nssp; /* Номер статических поправок за ПВ */
213  Int2 Nsop; /* Номер статических поправок за ПП */
214  Int2 Frm; /* Формат отсчетов трассы */
215 
216 } STND_TraceHeader; /* !!! ATTENTION !!!
217  sizeof(STND_TraceHeader) > STND_HdrSize
218  */
219 
220 
221 /* Структура, удобная для преобразования
222  заголовка трассы формата VSP-STND */
223 typedef struct
224 {
225  Int2 data1_int_2[1];
226  Real4 data2_real_4[10];
227  Int4 data3_int_4[5];
228  Int2 data4_int_2[5];
229  Char data5_char[2];
230  Int2 data6_int_2[3];
231 
232 } STND_TraceHeader_blocks;/* !!! ATTENTION !!!
233  sizeof(STND_TraceHeader_blocks)
234  > STND_HdrSize
235  */
236 
237 
238 /***********************************************************************
239  * Описание структуры файла таблицы PROF VSP-STND
240  ***********************************************************************/
241 
242 /* Файл имеет следующую структуру:
243  - Часть LEADER (4 байта).
244  - Часть PRF (36 байтов).
245  - Часть PRLSMG (4 байта), повторенная PRF::qmg раз.
246  - Часть MGT (110 байтов), повторенная PRF::qmgt раз.
247  - Часть HTR (40 байтов), повторенная PRF::qtr раз.
248  */
249 
250 /* Структура LEADER файла PROF VSP-STND неизвестного назначения */
251 typedef struct
252 {
253  Int2 q1; /* Обычно 1 */
254  Int2 q2; /* Обычно 1 */
255 
257 
258 
259 /* Структура PRF файла PROF VSP-STND */
260 typedef struct
261 {
262  Int2 npv; /* Номер ПВ */
263  Real4 tbeg; /* Начальное время в мс */
264  Real4 tend; /* Конечное время в мс */
265  Real4 dt; /* Шаг дискретизации в мс */
266  Int2 ftr; /* Формат трассы (см. STND_Frm_*) */
267  Int2 length; /* Длина тела трассы в байтах */
268  Real4 hbeg; /* Начальная глубина (нижняя) */
269  Real4 hend; /* Конечная глубина (верхняя, часто 0) */
270  Int2 qtr; /* Количество трасс */
271  Int2 qmg; /* Количество магнитограмм */
272  Int2 qmgt; /* Количество типов магнитограмм */
273  Int2 qver; /* Число версий */
274  Int2 sw_ver; /* 0 - версии записаны последовательно
275  1 - версии записаны мультиплексно */
277 
278 
279 /* Структура PRLSMG файла PROF VSP-STND */
280 typedef struct
281 {
282  Int2 lnumb_mg; /* Логический номер магнитограммы */
283  Int2 numb_type; /* Номер типа магнитограммы (см numb_meth) */
284 
286 
287 
288 /* Структура MGT файла PROF VSP-STND */
289 typedef struct
290 {
291  Int2 numb_meth; /* Номер методики */
292  Int2 q_trace; /* Число трасс в магнитограмме */
293  Int2 lst_trace[STND_MAX_TR]; /* Список номеров трасс */
294  Char comp_s[5]; /* Список компонент зонда */
295  Char comp_c[5]; /* Список компонент контр. прибора */
296 
298 
299 
300 /* Структура HTR файла PROF VSP-STND */
301 typedef struct
302 {
303  Real4 hcab; /* Кабельная глубина */
304  Real4 hcabmg; /* Кабельная глубина нижней точки зонда */
305  Int2 ntrf1; /* Номер трассы в исходном файле */
306  Int2 ntr; /* Номер трассы в магнитограмме */
307  Int2 nsp; /* Номер пункта взрыва */
308  Char pos; /* Тип трассы: 's'-глубинная, 'c'-контрольная / Char comp[3]; /* Компонента */ Int2 nps; /* Номер точки зонда */ Int2 nmgf1; /* Номер магнитограммы в исходном файле */ Int2 lnmg; /* Логический номер магнитограммы */ Int2 fnmg; /* Полевой номер магнитограммы */ Int2 nch; /* Номер контрольной скважины (0 для глуб.) */ Real4 xsp; /* X-координата ПВ */ Real4 ysp; /* Y-координата ПВ */ Real4 zsp; /* Z-координата ПВ */ } STND_HTR_Struct; #endif /* _filetrans_ */ #endif /* stnd_file.h */ */
309  Char comp[3]; /* Компонента */
310  Int2 nps; /* Номер точки зонда */
311  Int2 nmgf1; /* Номер магнитограммы в исходном файле */
312  Int2 lnmg; /* Логический номер магнитограммы */
313  Int2 fnmg; /* Полевой номер магнитограммы */
314  Int2 nch; /* Номер контрольной скважины (0 для глуб.) */
315  Real4 xsp; /* X-координата ПВ */
316  Real4 ysp; /* Y-координата ПВ */
317  Real4 zsp; /* Z-координата ПВ */
318 
320 
321 
322 #endif /* _filetrans_ */
323 
324 #endif /* stnd_file.h */
Definition: stnd_file.h:223
Definition: stnd_file.h:289
Definition: stnd_file.h:301
Definition: stnd_file.h:260
Definition: stnd_file.h:161
Definition: stnd_file.h:251
Definition: stnd_file.h:186
Definition: stnd_file.h:176
Definition: stnd_file.h:280