c# pdf viewer winforms : Move pdf pages control application system azure web page windows console Users_Manual15-part273

Variable Length Array Tables
33
6.2    Variable Length Array Tables
FITS standard also supports variable length array tables. The basic idea
is thatsometimes,itis desirable to have tables whose cells in the same field
(column) have the same data type but have different lengths/dimensions.
Compared with the standard table data structure, the variable length table
can save storage space if there is a large dynamic range of data length in
different cells.
Avariable length array table can have one or more fields (columns)
which are variable length. The rest of the fields (columns) in the same
table can still be regular, fixed-length ones. PyFITS will automatically
detectwhatkind offield itis reading. No special action is neededfrom the
user. The data type specification (i.e. the value of the TFORM keyword)
uses an extra letter ’P’ and the format is
rPt(max)
# Define the columns
>>> import numarray.strings as chararray
>>> a1 = chararray.array([’abcd’,’def’])
>>> r1 = numarray.array([11.,12.])
>>> c1 = pyfits.Column(name=’abc’,format=’A3’,array=a1)
>>> c2 = pyfits.Column(name=’def’,format=’E’, array=r1, bscale=2.3,
bzero=0.6)
>>> c3 = pyfits.Column(name=’t1’, format=’I’, array=[91,92,93])
# Create the table
>>> x = pyfits.ColDefs([c1,c2,c3],tbtype=’TableHDU’)
>>> hdu = pyfits.new_table(x,tbtype=’TableHDU’)
# Or, simply,
>>> hdu = pyfits.new_table([c1,c2,c3],tbtype=’TableHDU’)
>>> hdu.writeto(’ascii.fits’)
>>> hdu.data
array(
[(’abc’, 11.0, 91),
(’def’, 12.0, 92),
(’ ’, 0.0, 93)],
formats=[’1a3’, ’1a14’, ’1a10’],
shape=3,
names=[’abc’, ’def’, ’t1’])
Move pdf pages - re-order PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Customizing Page Order of PDF Document in C# Project
reorder pages in pdf reader; how to reorder pages in a pdf document
Move pdf pages - VB.NET PDF Page Move Library: re-order PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sort PDF Document Pages Using VB.NET Demo Code
change pdf page order reader; reordering pages in pdf document
34
Chapter 6: Less Familiar Objects
where ris 0, 1, orabsent, t is one of the lettercode forregulartable data
type (L, B, X, I, J, etc. currently, the X formatis not supported for variable
length array field in PyFITS), and max is the maimumnumberofelements.
So, for a variable length field of Int32, The corresponding format spec is,
e.g. ’PJ(100)’ .
The above exampleshows avariable length arrayfield ofdata typeInt16
and its first row has one element, second row has 2 elements etc.
Accessing variable length fields is almostidentical to regular fields, except
that operations on the whole filed are usually not possible. A user has to
process the field row by row.
6.2.1  Create Variable Length Array Table
To create a variable length table is almost identical to creating a regular
table. The only difference is in the creation of field definitions which are
variable length arrays. First, the data type specification will need the ’P’
letter, and secondly, the field data must be an objects array which is
>>> f = pyfits.open(’variable_length_table.fits’)
>>> print f[1].header[’tform5’]
1PI(20)
>>> print f[1].data.field(4)[:3]
[array([1], type=Int16) array([88,  2], type=Int16)
array([ 1, 88,  3], type=Int16)]
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
RasterEdge XDoc.PDF allows you to easily move PDF document pages position, including sorting pages and swapping two pages. Copying and Pasting Pages.
reverse pdf page order online; rearrange pages in pdf document
C# TIFF: How to Reorder, Rearrange & Sort TIFF Pages Using C# Code
Using this C#.NET Tiff image management library, you can easily change and move the position of any two or more Tiff file pages or make a totally new order for
reorder pdf page; pdf rearrange pages online
Random Access Group
35
included in the numarray module. Here is an example of creating a table
with two fields, one is regular and the other variable length array.
6.3    Random Access Group
Another less familiar data structure supported by FITS standard is the
random access group. This convention was established before the binary
table extension was introduced. In mostcses itsusecannowbe superseded
by the binary table.  It is mostly used in radio interferometry.
Like Primary HDU, a Random Access Group HDU is always the first
HDU of a FITS file. It’s data has one or more groups. Each group may
>>> import numarray.objects as obj
# Define columns
# What’s in the parenthesis of the P format is not important, it can be blank
>>> c1 = pyfits.Column(name=’var’, format=’PJ()’,\
array=obj.array([[45., 56], numarray.array([11, 12, 13])]))
>>> c2 = pyfits.Column(name=’xyz’,format=’2I’,array=[[11,3],[12,4]])
# the rest is the same as regular table.
# Create the table HDU
>>> tbhdu=pyfits.new_table([c1,c2])
>>> print tbhdu.data
RecArray[
(array([45, 56]), array([11,  3], type=Int16)),
(array([11, 12, 13]), array([12,  4], type=Int16))
]
# write to a FITS file
>>> tbhdu.writeto(’var_table.fits’)
>>> hdu = pyfits.open(’var_table.fits’)
# Note that heap info is taken care of (PCOUNT) when written to FITS file.
>>> print hdu[1].header.ascardlist()
XTENSION= ’BINTABLE’           / binary table extension
BITPIX  =                    8 / array data type
NAXIS   =                    2 / number of array dimensions
NAXIS1  =                   12 / length of dimension 1
NAXIS2  =                    2 / length of dimension 2
PCOUNT  =                   20 / number of group parameters
GCOUNT  =                    1 / number of groups
TFIELDS =                    2 / number of table fields
TTYPE1  = ’var     ’
TFORM1  = ’PJ(3)   ’
TTYPE2  = ’xyz     ’
TFORM2  = ’2I      ’
C# Word - Sort Word Pages Order in C#.NET
page reorganizing library control, developers can swap or adjust the order of all or several Word document pages, or just C# DLLs: Move Word Page Position.
how to move pages in pdf reader; reorder pdf pages
C# PowerPoint - Sort PowerPoint Pages Order in C#.NET
library control, developers can swap or adjust the order of all or several PowerPoint document pages, or just change the C# DLLs: Move PowerPoint Page Position.
move pdf pages in preview; rearrange pdf pages in preview
36
Chapter 6: Less Familiar Objects
have any number(including 0)of parameters, togetherwith an image. The
parameters and the image have the same data type.
Allgroups in the same HDUhave the same data structure, i.e. same data
type (specified by the keyword BITPIX, as in image HDU), same number
of parameters (specified by PCOUNT), and the same size and shape
(specified by NAXIS’s) of the image data. The number of groups is
specified by GCOUNT and the keyword NAXIS1 is always 0. Thus the
total data size for a Random Access Group HDU is
|BITPIX| * GCOUNT * (PCOUNT + NAXIS2*NAXIS3*... *NAXISn)
6.3.1  Header and Summary
Accessing the header of a Random Access Group HDU is no different
from any other HDU.  Just use the
.header
attribute.
The content of the HDU can similarly be summarized by using the
info()
method:
>>> f=pyfits.open(’random_group.fits’)
>>> print f[0].header[’groups’]
True
>>> print f[0].header[’gcount’]
7956
>>> print f[0].header[’pcount’]
6
>>> f.info()
Filename: random_group.fits
No.    Name         Type      Cards   Dimensions   Format
0
AN
GroupsHDU
158 (3, 4, 1, 1, 1) Float32
7956 Groups
6 Parameters
C# PDF insert text Library: insert text into PDF content in C#.net
int pageIndex = 0; // Move cursor to (400F, 100F). String outputFilePath = Program.RootPath + "\\" output.pdf"; doc.Save(outputFilePath);
how to move pages in pdf files; how to rearrange pages in a pdf reader
VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
RasterEdge XDoc.PDF allows you to easily move PDF document pages position in VB.NET sample codes, including sorting pages and swapping two pages.
how to change page order in pdf document; rearrange pages in pdf reader
Random Access Group
37
6.3.2  Data: Group Parameters
The data part of a random access group HDU is, like other HDU’s, in
the
.data
attribute.  It includes both parameter(s) and image array(s).
The data first lists all the parameters, then the image array, for the
specified group(s). As a reminder, the image data in this file has the shape
of (1,1,1,4,3) in Python or C convention, or (3,4,1,1,1) in IRAF or
FORTRAN convention.
To access the parameters, first find out what the parameter names are,
with the
.parnames
attribute:
The group parameter can be accessed by the
.par()
method. Like the
table
field()
method, the argument can be either index or name:
Note that the parameter name
’date’
appears twice. This is a feature in
the random access group, and it means to add the values together.  Thus:
# show the data in 100th group, including parameters and data
>>> print f[0].data[99]
(-8.1987486677035799e-06, 1.2010923615889215e-05,
-1.011189139244005e-05, 258.0, 2445728., 0.10, array([[[[[ 12.4308672 ,
0.56860745,   3.99993873],
[ 12.74043655,   0.31398511,   3.99993873],
[  0.        ,   0.        ,   3.99993873],
[
0.
,
0.
,
3.99993873]]]]], type=Float32))
# get the parameter names
>>> f[0].data.parnames
[’uu--’, ’vv--’, ’ww--’, ’baseline’, ’date’, ’date’]
# Access group parameter by name or by index
>>> print f[0].data.par(0)[99]
-8.1987486677035799e-06
>>> print f[0].data.par(’uu--’)[99]
-8.1987486677035799e-06
# Duplicate group parameter name ’date’ for 5th and 6th parameters
>>> print f[0].data.par(4)[99]
2445728.0
>>> print f[0].data.par(5)[99]
0.10
# When access by name, it adds the values together if the name is shared
# by more than one parameter
>>> print f[0].data.par(’date’)[99]
2445728.10
VB.NET PDF insert text library: insert text into PDF content in vb
Dim pageIndex As Integer = 0 ' Move cursor to (400F, 100F). Dim outputFilePath As String = Program.RootPath + "\\" output.pdf" doc.Save(outputFilePath).
how to reverse page order in pdf; pdf reverse page order preview
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
Get image information, such as its location, zonal information, metadata, and so on. Able to edit, add, delete, move, and output PDF document image.
pdf change page order acrobat; change page order in pdf reader
38
Chapter 6: Less Familiar Objects
The
.par()
is a method for eitherthe entire data object orone data item
(a group). So there are two possible ways to get a group parameter for a
certain group, this is similar to the situation in table data (with its
field()
method):
On the otherhand,tomodify a group parameter, we can eitherassignthe
new value directly (if accessing the row/group number last). or use the
setpar()
method (if accessing the row/group number first). The method
setpar()
is also needed for updating by name if the parameteris shared by
more than one parameters:
6.3.3  Data: Image Data
The image array ofthe data portion is accessable by the
.data
attribute
of the data object.  A numarray is returned:
# Access group parameter by selecting the row (group) number last
>>> print f[0].data.par(0)[99]
-8.1987486677035799e-06
# Access group parameter by selecting the row (group) number first
>>> print f[0].data[99].par(0)
-8.1987486677035799e-06
# Update group parameter when selecting the row (group) number last
>>> f[0].data.par(0)[99] = 99.
# Update group parameter when selecting the row (group) number first
>>> f[0].data[99].setpar(0, 99.)  # or setpar(’uu--’, 99.)
# Update group parameter by name when the name is shared by more than
# one parameters, the new value must be a tuple of constants or sequences
>>> f[0].data[99].setpar(’date’, (2445729., 0.3))
>>> f[0].data[:3].setpar(’date’, (2445729., [0.11,0.22,0.33]))
--> f[0].data[:3].par(’date’)
array([ 2445729.11      ,  2445729.22      ,  2445729.33000001])
# image part of the data
>>> print f[0].data.data[99]
array([[[[[ 12.4308672 ,   0.56860745,   3.99993873],
[ 12.74043655,   0.31398511,   3.99993873],
[  0.        ,   0.        ,   3.99993873],
[  0.        ,   0.        ,   3.99993873]]]]], type=Float32)
Random Access Group
39
6.3.4  Create a Random Access Group HDU
To create a randomaccess group HDUfrom scratch, use
GroupData()
to
encapsulate the data into the group data structure, and use
GroupsHDU()
to
create the HDU itself:
# Create the image arrays. The first dimension is the number of groups.
>>> imdata = numarray.arange(100., shape=(10,1,1,2,5))
# Next, create the group parameter data, we’ll have two parameters.
# Note that the size of each parameter’s data is also the number of groups.
# A parameter’s data can also be a numeric constant.
>>> pdata1 = numarray.arange(10)+0.1
>>> pdata2 = 42
# Create the group data object, put parameter names and parameter data
# in lists and assigned to their corresponding arguments.
# If the data type (bitpix) is not specified, the data type of the image
# will be used.
>>> x = pyfits.GroupData(imdata, parnames=[’abc’,’xyz’],  \
pardata=[pdata1, pdata2], bitpix=-32)
# Now, create the GroupsHDU and write to a FITS file.
>>> hdu = pyfits.GroupsHDU(x)
>>> hdu.writeto(’test_group.fits’)
>>> print hdu.header.ascardlist()[:]
SIMPLE  =                    T / conforms to FITS standard
BITPIX  =                  -32 / array data type
NAXIS   =                    5 / number of array dimensions
NAXIS1  =                    0
NAXIS2  =                    5
NAXIS3  =                    2
NAXIS4  =                    1
NAXIS5  =                    1
EXTEND  =                    T
GROUPS  =                    T / has groups
PCOUNT  =                    2 / number of parameters
GCOUNT  =                   10 / number of groups
PTYPE1  = ’abc     ’
PTYPE2  = ’xyz     ’
--> print hdu.data[:2]
RecArray[
(0.10000000149011612, 42.0, array([[[[ 0.,  1.,  2.,  3.,  4.],
[ 5.,  6.,  7.,  8.,  9.]]]], type=Float32)),
(1.1000000238418579, 42.0, array([[[[ 10.,  11.,  12.,  13.,  14.],
[ 15.,  16.,  17.,  18.,  19.]]]], type=Float32))
]
40
Chapter 6: Less Familiar Objects
41
C
HAPTER
7:
Reference Manual
In this chapter . . .
This chapter lists functions, public classes and their methods, and their
arguments in PyFITS.
42
Chapter 7: Reference Manual
Documents you may be interested
Documents you may be interested