SEG P1 Format

SEG P1 files can be converted into either point or line-based shapefile or Open Layers files that can then be attached to maps, and inspected and queried. Points files show shotpoints; lines files show ends and bends.

Imported Seg P1 files can't be used to create postings maps, but you can instead import a database of proprietary seismic into AccuMap from which seismic values can be posted. The advantage of shapefile or Open Layers seismic though, is that you can have multiple seismic layers instead of only one proprietary seismic database. Another advantage is that you can query the seismic and create lists of this data.

How AccuMap Interprets SEG P1 Format

The shotpoint import process uses each data record to create a single Open Layers point entity. Most of the data in the data record is attached to the point entity and displayed by AccuMap when the entity is inspected.

The seismic line import process uses a series of data records to create Open Layers line entities. All consecutive data records with the same line name are considered verticies of a line entity. Co-linear verticies are discarded (a vertex is considered co-linear if it's less than 2º out of line with its neighbors). The line name, starting shotpoint number, and ending shotpoint number are attached to each line entity and displayed by AccuMap when those entities are inspected.

Although AccuMap can import records of any length, only the first 80 characters have any significance.

Records are separated by end-of-line characters (and thus a SEG P1 file can be edited in a text editor, or a word processor in text-only mode).

Header Blocks

There can be any number of header blocks in a SEG P1 file, but there must be one header block at the very beginning of the file. If H is the first character in a record, the record is the first in a twenty-record header block. The contents of header blocks are otherwise entirely free-format and can contain any information.

Though keywords aren't mandatory, AccuMap scans the header block for specific ones (case is ignored). When AccuMap finds one, it searches for the first number that follows it and if the number is valid for that keyword, AccuMap accepts the number as valid.

Here's what AccuMap tries to detect in header blocks:

Information Keywords and Valid Values
Ellipsoid NAD (27, 83)
CLARKE (1866)
GRS (80)
Grid ATS (1.0, 1.1, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 3.1, 3.2)
STS (1.0, 1.1, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5)
UTM central meridian CM or MERIDIAN (87, 93, 99, 105, 111, 117, 123, 129, 135, 141)
ZONE (7, 8, 9, 10, 11, 12, 13, 14, 15, 16)

AccuMap needs to know the ellipsoid to correctly import each data record’s latitude and longitude. If one isn’t detected in the header block the current Datum that's selected using the Edit > Defaults menu is assumed.

The UTM central meridian is taken only as a reference for northings and eastings and no calculations are performed with it.

Data Records

Each individual data record includes a line name field. All consecutive data records with the same line name become a single line in the Open Layers line file. So, for example, a SEG P1 file with 20 different and uniquely named seismic lines results in 20 separate line entities in the Open Layers file.

If the first character in a record is a space, it means the record is a data record (except when the record is part of a header block). This is what AccuMap expects to find in each record:

Column Description Expected Field Contents or Formats
1 Data record identifier A space character
2-17 Line name Left-justified ASCII text
18-25 Shotpoint No. Integer
26 Reshoot code A space character or a character from A to Z
27-35
(Critical Field)
Latitude
Degrees must be from 0 - 90/180, minutes must be from 0 - 59, hundredths-of-seconds must be from 0 - 5999, and the complete value must be less than 90º/180º.
Gradients must be less than 100.0/200.0 and greater than or equal to 0.0.
ddmmssssh, where dd = degrees, mm = minutes, ssss = hundredths of seconds, and h = hemisphere (N or S).
OR

gg.gggggh
, where gg.ggggg = gradient and h = hemisphere (N or S).
36-45
(Critical Field)
Longitude
See Latitude above for valid ranges.
dddmmssssh, where ddd = degrees,mm = minutes, ssss = hundredths of seconds, and h = hemisphere (E or W).
OR

ggg.gggggh
, where ggg.ggggg = gradient, and h = hemisphere (E or W).
46-53
54-61
62-66
UTM Easting
UTM Northing
Elevation
Integer (decimetres)
67-80 Either time information if the values are within a valid range, otherwise, simply extra information. If time information, it occupies columns 67-77 and extra information (ASCII text) occupies columns 78-80.
Time information is in the format yydddhhmmss, where yy = year (20-99 are years 1920 to 1999 and 0-19 are years 2000 to 2019), ddd = day of year (1 = January 1), hh = hour (0-23), mm = minute (0-59), and ss = second (0-59) (GMT).

See Sample Seg-P1 FileSample Seg P1 File to see how a Seg P1 file you can import might look.