c# pdf reader itextsharp : Delete pages from pdf in reader software Library cloud windows asp.net wpf class sumanual_600dpi_a43-part456

Chapter3
CoreSeismicUnixPrograms
ThecoreoftheSeismicUnixprogramsetperformsabroadcollectionoftasks,whichmaybe
viewedas beingcommon n to alargecollectionof researchandprocessing disciplines. . Many,
however,arepurelyseismicinnature,andareindicatedassuchinthetext.
Someofthesetasksinclude
• input/outputissues
• dataformatconversion,
• setting,viewing,andeditingtraceheaderfields
• viewingSUdata,
• windowing,sorting,andeditingthedata.
• generaloperations,
• transformandfilteringoperations,
• seismicoperationsonSUdata.
Itistheintentofthechaptersthatfollowistodealwithmanyoftheseissues. Pleasenote
thatmoredetailedinformationaboutanyoftheprogramsdiscussedcanbeobtainedbytyping
thenameoftheprogramonthecommandlinewithnoarguments,
% programname
or by typing:
% sudoc programname
to see the selfdoc information.
This chapter does not cover all SU programs, but just a sufficient number such that a person
with some Unix experience can get started with the package. Once you get the idea of how
SU is used, then you may draw on the help facilities to discover additional programs in the
package.
19
Delete pages from pdf in reader - remove PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Provides Users with Mature Document Manipulating Function for Deleting PDF Pages
acrobat remove pages from pdf; delete pages of pdf reader
Delete pages from pdf in reader - VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Visual Basic Sample Codes to Delete PDF Document Page in .NET
delete a page from a pdf acrobat; delete pages of pdf
20
CHAPTER 3. CORE SEISMIC UNIX PROGRAMS
3.1 Reading and Writing Data to and from Tapes
Reading tapes is more of an art than a science. This is true in general, and is especially true for
SU. The variability of hardware formats, as well as the variability of data format types, makes
the creation of a “general tape reading utility” a challenging, if not impossible, proposition.
The following programs are useful for the specialized data input and output tasks related
to geophysical applications, as well as to the internal SU data format
• BHEDTOPAR - convert a Binary tape HEaDer file to PAR file format
• DT1TOSU - Convert ground-penetrating radar data in the Sensors & Software X.dt1
GPR format to SU format
• SEGDREAD - read an SEG-D tape
• SEGYCLEAN - zero out unassigned portion of header
• SEGYREAD - read an SEG-Y tape
• SEGYHDRS - make SEG-Y ascii and binary headers for segywrite
• SEGYWRITE - write an SEG-Y tape
• SETBHED - SET the fields in a SEGY Binary tape HEaDer file
• SUADDHEAD - put headers on bare traces and set the tracl and ns fields
• SUSTRIP - remove the SEGY headers from the traces
• SUPASTE - paste existing SEGY headers on existing data
The following programs are useful for general data input, output, and data type conversion,
which may also find use in tape reading,
• A2B - convert ascii floats to binary
• B2A - convert binary floats to ascii
• FTNSTRIP - convert Fortran floats to C-style floats
• H2B - convert 8 bit hexidecimal floats to binary
• RECAST - RECAST data type (convert from one data type to another)
• TRANSP - TRANSPose an n1 by n2 element matrix
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
VB.NET Page: Insert PDF pages; VB.NET Page: Delete PDF pages; VB.NET Annotate: PDF Markup & Drawing. XDoc.Word for XImage.OCR for C#; XImage.Barcode Reader for C#
delete pdf page acrobat; delete a page from a pdf reader
C# PDF Page Insert Library: insert pages into PDF file in C#.net
how to merge PDF document files by C# code, how to rotate PDF document page, how to delete PDF page using C# .NET, how to reorganize PDF document pages and how
copy pages from pdf to new pdf; delete blank page in pdf online
3.1. READING AND WRITING DATA TO AND FROM TAPES
21
3.1.1 The SEGY format and the SU data format
The data format that is expected by all programs in the CWP/SU package whose names begin
with the letters ‘su’ (with the exception of the program subset), consists of “SEGY traces
written in the native binary format of the machine you are running the programs on.” To
understand what this phrase means, we must understand what the SEGY standard is.
In the early 1980’s, the most common data storage format was SEG-Y. This is the Society
of Exploration Geophysicists Y format which is described in the SEG’s publication Digital Tape
Standards. The format is still widely used, today, though there is no guarantee that the format
is used “by the book.”
The SEGY data format consists of 3 parts. The first part is a 3200 byte EBCDIC card image
header which contains 40 cards (i.e. 40 lines of text with 80 characters per line) worth of text
data describing the tape. The second part is a 400 byte binary header containing information
about the contents of the tape reel. The third portion of the SEG-Y format consists of the
actual seismic traces. Each trace has a 240 byte trace header. The data follow, written in one
of 4 possible 32 formats in IBM floating point notation as defined in IBM Form GA 22-6821.
(Note, this “IBM format” is not the common IEEE format found on modern IBM PC’s.)
The SU data format is based on the trace portion of the SEGY format. The primary
difference between the SEGY traces and SU traces is that the data portion of the SU format
are floats, written in the native binary float format of the machine you are running SU on. SU
data consists of the SEGY traces only! The ebcdic and binary reel headers are not preserved
in the SU format, so simply redirecting in a SEGY file will not work with any SU program.
To convert SEGY data into a form that can be used by SU programs, you will need to use
segyread.
3.1.2 SEGYREAD - Getting SEG-Y data into SU
The program segyread is used to convert data from the SEGY format to the SU format. If
you type:
% segyread
You will see the selfdoc for this program.
When reading a SEGY tape, or datafile, you will need to be aware of the byte-order (endian)
of the machine you are running on. The so-called “big-endian” or high-byte IEEE format is
found on SGI, SUN, IBM RS6000, and all Motorola chip-based systems. The “little-endian”
or low-byte systems are systems that are based on Intel and Dec chips. You will also need to
know what Unix device your tape drive is.
Atypical execution of segyread on a big-endian machine, looks like this:
% segyread tape=/dev/rmt0 verbose=1 endian=1 > data.su
More often you will have to use the following
% segyread tape=/dev/rmt0 verbose=1 endian=1 | segyclean > data.su
for reading a tape on a big-endian platform.
There are optional header fields (bytes 181-240) in the SEGY trace headers. There is no
standard for what may go in these fields, so many people have items that they place in these
fields for their own purposes. SU is no exception. There are several parameters used by SU
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Page: Insert PDF Pages. |. Home ›› XDoc.PDF ›› VB.NET PDF: Insert PDF Page. Add and Insert Multiple PDF Pages to PDF Document Using VB.
delete pages out of a pdf file; delete page from pdf document
VB.NET PDF delete text library: delete, remove text from PDF file
Visual Studio .NET application. Delete text from PDF file in preview without adobe PDF reader component installed. Able to pull text
delete a page from a pdf file; delete a page from a pdf
22
CHAPTER 3. CORE SEISMIC UNIX PROGRAMS
graphics programs that may be stored in these fields. The program segyclean zeros out the
values of the optional header fields so that SU graphics programs don’t become confused by
this information.
There are additional issues, such as whether or not your device is buffered or unbufferd (i.e.
9track 1/2 reel tape, or 8mm Exabyte) tape which may have to be experimented with when
you actually try to read a tape. Also, if you are trying to read a tape on a different system
than the one it was made on, you may simply not be able to read the tape.
The most common problem with reading tapes is matching the density that the tape was
written in, with the tapedrive that the tape is being read on. Some systems, for example
Silicon Graphics (SGI) systems, have many tape devices, which support different hardware
configurations and tape densities. Other systems, most notably recent versions of Linux have
an improved version of the Unix command “mt” which has a “setdensities” option. In either
case, it is common for tapes to be made using the default settings of a tape drive, or its default
densities.
As a last resort in all tape reading situations, it is often possible to use the Unix device-to-
device copying program dd to make an image of the entire tape on disk
% dd if=/dev/rmtx of=filename bs=32767 conv=noerror
where “/dev/rmtx” is replaced with your tapedrive device and “filename” is some file name you
choose. If this works, then the next step is totry usingsegyread as above, with “tape=filename.”
If dd fails, then it is likely that the hardware format of your tapedrive is not compatible with
your tape.
Of course, the best way to prevent tape reading problems is to make sure that you talk to
the person who is writing the tape before they write it. On SGI systems, in particular, there
are so many possible choices for the type of tape format, that the person who is making the
tape must have information about the platform that the tape is intended to be read on, before
they can make a tape that is guaranteed to be readable.
3.1.3 SEG-Y abuses
Unfortunately, there are formats which are called “SEGY” but which are not true to the SEG’s
standards for SEGY. One common variation is to honor most of the SEGY convention, but
have the traces be in an IEEE format.
Such data would be read via:
% segyread tape=/dev/rmt0 verbose=1 endian=1 conv=0 | segyclean > data.su
where the “conv=0” tells the program not to attempt the IBM to float conversion.
DOS SEGY
There is also a “DOS SEGY” format which is similar to the previous format, with the exception
that the traces and headers are all written in a little-endian format. On a big-endian machine,
the command to read such a dataset would be
% segyread tape=/dev/rmt0 verbose=1 endian=0 conv=0 | segyclean > data.su
will read the data. Note, that endian=0 is set to swap the bytes. (All of the bytes, header and
data are in the swapped format.) On a little-endian machine, the procedure is
C# PDF Page Rotate Library: rotate PDF page permanently in C#.net
batch changing PDF page orientation without other PDF reader control. NET, add new PDF page, delete certain PDF page, reorder existing PDF pages and split
delete blank page in pdf; delete pages on pdf online
C# PDF delete text Library: delete, remove text from PDF file in
Delete text from PDF file in preview without adobe PDF reader component installed in ASP.NET. C#.NET PDF: Delete Text from Consecutive PDF Pages.
delete pages from a pdf document; delete pdf pages in reader
3.1. READING AND WRITING DATA TO AND FROM TAPES
23
% segyread tape=/dev/rmt0 verbose=1 endian=1 conv=0 | segyclean > data.su
with endian=1, in this case preventing byteswapping.
In each case, if we had a diskfile with some ‘filename’, we would use “tape=filename.”
Landmark BCM2D format in SEISWORKS
Commercial seismic software can be sources of non-standard SEGY formats. In addition to
non-standard usage of the official header fields, commercial variations on SEGY may employ
definitions of parts of the optional SEGY header fields.
Aremedy for this problem, supplied by Matthias Imhoff of Virginia Tech, is a remapping
feature in segyread, which allows nonstandard fields to be remapped into compatible locations
in the SU header. The options remap= allows the destination SU header fields to be specified,
while byte= specifies the byte location in the SEGY trace header, and its data type.
For the example of Landmark BCM2D format, header fields 73 and 77 are floats, but these
are int’s in the standard SEGY format and are hence also int’s in the SU format. BCM2D also
has to header fields set as longs at bytes 181 and 185. The following usage of segyread
% segyread tape=... remap=d1,d2,gelev,selev byte=73f,77f,181l,185l > ...
The floats at 73 and 77 are mapped to d1 and d2, while the long integers at 181 and 185
are mapped to gelev and selev, which are integers in the SU format. By selecting compatible
destination fields, no precision is lost.
3.1.4 SEGYWRITE - Writing an SEGY Tape or Diskfile
The companion program to segyread is segywrite. This program permits data to be written
either to a tape or a diskfile in a number of variations on the SEGY format. This program is
useful for putting data into a form that can be read by commercial seismic packages. Before
showing examples of how segywrite is used, there are several preprocessing steps that must
be discussed in preparation for actually writing a tape.
3.1.5 SEGYHDRS - make SEG-Y ascii and binary headers for segywrite
To write a tape in exactly the SEGY format as specified by the SEG’s Digital Tape Standards
book, you will need to supply the ASCII and binary tape reel header files which will become the
EBCDIC and binary tape reel headers in the SEGY tape or file. These are the files “header”
and “binary” created by segywrite.
If you don’t have the “binary” and “header” files, then you must create them with the
program segyhdrs (pronounced SEG Y headers) The command
% segyhdrs < data.su
will write the files “header” and “binary” in the current working directory. As an example,
make some test data with suplane and then run segyhdrs on it
% suplane > data.su
% segyhdrs < data.su
You will see the files binary and header appear in your current working directory.
The program has options that will allow you to set the values of binary header fields. These
fields may be seen by typing:
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
C:\test1.pdf") Dim pdf2 As PDFDocument = New PDFDocument("C:\test2.pdf") Dim pageindexes = New Integer() {1, 2, 4} Dim pages = pdf.DuplicatePage(pageindexes
delete page from pdf reader; delete page on pdf file
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
C#.NET PDF Library - Copy and Paste PDF Pages in C#.NET. Easy to C#.NET Sample Code: Copy and Paste PDF Pages Using C#.NET. C# programming
delete pages in pdf reader; add and delete pages in pdf online
24
CHAPTER 3. CORE SEISMIC UNIX PROGRAMS
% sukeyword jobid
int jobid;
/* job identification number */
int lino;
/* line number (only one line per reel) */
int reno;
/* reel number */
short ntrpr;
/* number of data traces per record */
short nart;
/* number of auxiliary traces per record */
unsigned short hdt; /* sample interval in micro secs for this reel */
unsigned short dto; /* same for original field recording */
...
where “jobid” is the first binary header field.
The file “header” is an ASCII file which may be edited with a normal text editor. You can
put anything in there, as long as the format is 40 lines of 80 characters each. Segywrite will
automatically convert this program The default header file created by segyhdrs looks like this
C
This tape was made at the
C
C
Center for Wave Phenomena
C
Colorado School of Mines
C
Golden, CO, 80401
C
...
C
C
3.1.6 BHEDTOPAR, SETBHED - Editing the binary header file
The binary header file must be converted to an ASCII form, to be edited. The program
bhedtopar permits the “binary” file to be written in the form of a “parfile”
% bhedtopar < binary outpar=binary.par
which for the case of the header file created for the test SU data appears as follows
jobid=1
lino=1
reno=1
ntrpr=0
nart=0
hdt=4000
...
The values that are assigned to the various header files may be edited, and be reloaded into the
header file via setbhed
% setbhed bfile=binary par=binary.par
3.2. DATA FORMAT CONVERSION
25
Individual header field values may also be set. For example
% setbhed bfile=binary par=binary.par lino=3
which uses the contents of binary.par but with the field lino set to 3.
Finally, the tape may be written via a command sequence like this
% segywrite tape=/dev/rmtx verbose=1 < data.su
taking care to note that the files “header” and “binary” are in the current working directory.
You may use different names for these files, if you wish. Segywrite has a “bfile=” and an
“hfile=” option to permit you to input the files by the different names you choose.
3.1.7 SEGDREAD - Other SEG formats
There are other SEG formats (SEG-A, SEG-B, SEG-X, SEG-C, SEG-D, SEG-1, and SEG-2).
Of these, SEG-D, SEG-B, and SEG-2 are the types that you will most commonly encounter.
There is a segdread program which supports only 1of the vast number of variations on SEG-D.
In the directory $CWPROOT/Third
Party/ is a seg2segy conversion program which may
be used to convert SEG-2 format to SEG-Y. Future plans are to create a seg2read program,
which will be similar to segyread and segdread.
3.1.8 DT1TOSU - Non-SEG tape formats
Currently, there is only one non-SEG tape format that is completely supported in the SU
package, and two others which are supported through third-party codes which have not yet been
integrated into the package. This is the Sensors & Software DT1 format, via dt1tosu, which is
aGPR (ground penetrating radar) format. In the $CWPROOT/src/Third
Party directory are
two additional non-SEG conversion programs, these are segytoseres and bison2su. Future
plans include incorporating each of these codes into the main CWP/SU package.
3.2 Data Format conversion
Often, it is necessary to transfer data from other systems, or to input data which may be in
avariety of formats. A number of tools and tricks are available in SU for dealing with these
issues.
The following programs may be useful for such conversion problems
• A2B - convert ascii floats to binary
• B2A - convert binary floats to ascii
• FTNSTRIP - convert Fortran floats to C-style floats
• FTNUNSTRIP - convert C-style floats to Fortran-style floats
• H2B - convert 8 bit hexidecimal floats to binary
• RECAST - RECAST data type (convert from one data type to another)
• TRANSP - TRANSPose an n1 by n2 element matrix
26
CHAPTER 3. CORE SEISMIC UNIX PROGRAMS
• FARITH - File ARITHmetic – perform simple arithmetic with binary files
• SUADDHEAD - put headers on bare traces and set the tracl and ns fields
• SUSTRIP - remove the SEGY headers from the traces
• SUPASTE - paste existing SEGY headers on existing data
• SWAPBYTES - SWAP the BYTES of various data types
• SUSWAPBYTES - SWAP the BYTES in SU data to convert data from big endian to
little endian byte order, and vice versa
The purpose of this section is to discuss situations where these programs may be used.
3.2.1 A2B and B2A - ASCII to Binary, Binary to ASCII
Of all of the formats of data, the most transportable (and most space consuming) is ASCII.
No matter what system you are working on, it is possible to transport ASCII data to and from
that system. Also, because text editors support ASCII, it is usually possible to data entry and
data editing in the simplest of text editors.
Such data probably come in a multicolumn format, separated either by spaces or tabs. To
convert such a, say 5 column, dataset into binary floats, type:
% a2b < data.ascii n1=5 > data.binary
The reverse operation is
% b2a < data.binary n1=5 > data.ascii
3.2.2 FTNSTRIP - Importing Fortran Data to C
Often, because Fortran is a popular language in seismic data processing, data may be obtained
that was either created or processed in some way with Fortran. Binary data in Fortran are
separated by beginning-of-record and end-of-record delimiters. Binary data created by C pro-
grams do not have any such delimiters. To use Fortran data in a C program requires that the
Fortran labels be stripped off, via
ftnstrip < fortdata > cdata
This will produce C-style floats, most of the time. The program assumes that each record of
fortran data is preceded and followed by an integer listing the size of the record in bytes. There
have been fortran data types which have had only one or the other of these integer markers,
but having both a beginning-of-record (BOR) and an end-of-record (EOR) markers seems to
be standard today.
3.2. DATA FORMAT CONVERSION
27
3.2.3 Going from C to Fortran
It is fairly easy to transport data made with Fortran code to C, however, it may not be so easy
to go the other way. On the SGI Power Challenge, it is possible to read a file of C-floats called
“infile” via, open and read statements that look like:
OPEN(99,file=’infile’,form=’system’)
DO i=1,number
READ(99) tempnumber
Array(i)=tempnumber
END DO
CLOSE(99)
The statement ”form=’system’” does not work on all machines, however, as it is likely that
this is not standard Fortran. Thegeneral format command toread in binary is ”form=’unformatted’”.
This may not work on other systems, (for example, SUN). Indeed, it may not be generally guar-
anteed that you can read binary files in Fortran that have been created with a C-programs (as
in SU).
If you have problems with binary and the input files are not too big you could convert to
ASCII (using ’b2a’) and use formatted I/0
OPEN(99,file=’infile’)
DO i=1,number
READ(99,*) tempnumber
Array(i)=tempnumber
END DO
CLOSE(99)
FTNUNSTRIP - convert C binary floats to Fortran style floats
However, another possibility is tomake “fake” Fortran floats with a C-program. Such a program
is ftnunstrip.
This program assumes that the record length is constant throughout the input and output
files. In fortran code reading these floats, the following implied do loop syntax would be used:
DO i=1,n2 READ (10) (someARRAY(j), j=1,n1) END DO Here n1 is the number of samples
per record, n2 is the number of records, 10 is some default file (fort.10, for example) which is
opened as form=’unformatted’. Here “someArray(j)” is an array dimensioned to size n1.
Please note that the Fortran style of having BOR and EOR markers is smart, if used
properly, but is stupid if used incorrectly. The Fortran READ statement finds out from the
BOR marker how many bytes will follow, reads the number of values specified, keeping track
of the number of bytes. When it finishes reading, it compares the number of bytes read to
the number of bytes listed in the EOR value, and can effectively trap errors in bytes read, or
premature EOR.
Because there is an additional “sizeof(int)” (usually 4 bytes) at the beginning and end of
every record, it is smart to have as few records as is necessary. The worst case scenario is to
28
CHAPTER 3. CORE SEISMIC UNIX PROGRAMS
have every value of data be a record, meaning that the size of the file could be 2/3 BOR and
EOR markers and 1/3 data!
3.2.4 H2B - Importing 8 Bit Hexidecimal
The issue of converting 8 bit hexidecimal may seem to be one that would not come up very
often. However 8 bit hex is a common format for bitmapped images (grayscale PostScript) and
if you wish to take a scanned image and turn it into floats for further processing, then it will
come up.
1
If you have a scanned image, written as a 256 level grayscale bitmapped PostScript image,
then the bitmap portion is in 8 bit hex. By removing all of the PostScript commands, and
leaving only the bitmap then the command
% h2b < hexdata > floatdata
will convert the bitmap into a form that can be viewed and processed by programs in the
CWP/SU package.
3.2.5 RECAST - Changing Binary Data Types
Of course, C supports a variety of types, and instead of having a bunch of program to convert
each type into every other type, there is a program called “recast” that will do the job for a
large collection of these types.
Types supported by recast for input and output:
• float - floating point
• double - double precision
• int - (signed) integer
• char - character
• uchar - unsigned char
• short - short integer
• long - long integer
• ulong - unsigned long integer
For example, to convert integers to floats
% recast < data.ints in=int out=float > data.floats
The name of this program derives from the fact that an explicit type conversion in the C-
language is called a “cast.”
1
This issue came up originally, when a student had destroyed an original dataset, by accident, but only had
abit-mapped PostScript image of the data. Using h2b it was possible to recover the data from the PostScript
file.
Documents you may be interested
Documents you may be interested