PIC-IRIS / PH5

Library of PH5 clients, apis, and utilities
Other
15 stars 9 forks source link

[FEATURE] Increasing Precision in Trace Headers (location & offset) #532

Open Stephen-Veitch opened 3 months ago

Stephen-Veitch commented 3 months ago

A PI inquired about floating-point precision in offset trace header (trace header byte range 37-40). This is not strictly possible, as segy trace headers are explicitly defined to be integer. This places a hard cap on max precision on offset (source-receiver distance) at 1 m. This is probably fine for most purposes, but may be insufficient for certain near-surface and very low velocity environments

However, there is probably value in finding ways to increase the precision of location values in segys generated from ph5s. The best place to do this is probably in the coordinates portion of the trace header:

Coordinates of the source and receiver (group) for each trace in a segy are defined in byte range 69--90 (see attached image).
Screenshot 2024-05-23 at 15 39 18

Locations are defined by 4-byte integers combined with a 2-btye integer scalar to get floating-point numbers for locations. The units of the coordinates re defined by bytes 89-90, and standardized coordinates can be defined in length, seconds of arc, decimal degrees, or Degrees Minutes Seconds.

I'm not sure what the best way to proceed is, but it seems like increasing the precision of these fields may be useful. The offset field is limited in capabilities, but sufficiently increasing the precision of the coordinate fields in the trace headers would allow the end-user to calculate more precise offset values from information included in the trace headers.