Exporting to Scientific Data Files
sds_id = hdfsd('create',sd_id,ds_name,ds_type,ds_rank,ds_dims);
If
SDcreate
can successfully create the data set, it returns an HDF4 SD data
set identifier, (
sds_id
). Otherwise,
SDcreate
returns
-1
.
In this example, note the following:
• The data type you specify in
ds_type
must match the data type of the
MATLAB array that you want to write to the data set. In the example, the
array is of class
double
so the value of
ds_type
is set to
'double'
.If you
wanted to use another data type, such as
uint8
,convert the MATLAB
array to use this data type,
A = uint8([ 1 2 3 4 5 ; 6 7 8 9 10 ; 11 12 13 14 15 ]);
and specify the name of the MATLAB data type,
uint8
in this case, in the
ds_type
argument.
ds_type = 'uint8';
• The code fragment reverses the order of the values in the dimensions
argument (
ds_dims
). This processing is necessary because the MATLAB
size
function returns the dimensions in column-major order and HDF4
expects to receive dimensions in row-major order.
Step 3: Writing MATLAB Data to an HDF4 File
After creating an HDF4 file and creating a data set in the file, you can write
data to the entire data set or just a portion of the data set. In the HDF4 SD
API, you use the
SDwritedata
routine. In MATLAB, use the
hdfsd
function,
specifying as arguments:
• Name of the SD API routine,
'writedata'
in this case
• Valid HDF4 SD data set identifier,
sds_id
,returned by
SDcreate
• Location in the data set where you want to start writing data, called the
start vector in HDF4 terminology
• Number of elements along each dimension to skip between each write
operation, called the stride vector in HDF4 terminology
3-53
Pdf to tiff open source c# - control software platform:C# PDF Convert to Tiff SDK: Convert PDF to tiff images in C#.net, ASP.NET MVC, Ajax, WinForms, WPF
Online C# Tutorial for How to Convert PDF File to Tiff Image File
www.rasteredge.com
Pdf to tiff open source c# - control software platform:VB.NET PDF Convert to Tiff SDK: Convert PDF to tiff images in vb.net, ASP.NET MVC, Ajax, WinForms, WPF
Free VB.NET Guide to Render and Convert PDF Document to TIFF
www.rasteredge.com
3
Exporting Data
• Total number of elements to write along each dimension, called the edges
vector in HDF4 terminology
• MATLAB array to be written
Note You must specify the values of the start, stride, and edges arguments
in row-major order, rather than the column-major order used in MATLAB.
Note how the example uses
fliplr
to reverse the order of the dimensions in
the vector returned by the
size
function before assigning it as the value of
the edges argument.
The values you assign to these arguments depend on the MATLAB array
you want to export. For example, the following code fragment writes this
MATLAB 3-by-5 array of doubles,
A = [ 1 2 3 4 5; 6 7 8 9 10; 11 12 13 14 15 ];
into an HDF4 file:
ds_start = zeros(1:ndims(A)); % Start at the beginning
ds_stride = [];
% Write every element.
ds_edges = fliplr(size(A));
% Reverse the dimensions.
stat = hdfsd('writedata',sds_id,...
ds_start, ds_stride, ds_edges, A);
If it can write the data to the data set,
SDwritedata
returns
0
;otherwise,
it returns
-1
.
Note
SDwritedata
queues write operations. To ensure that these queued
write operations are executed, you must closethe file, using the
SDend
routine.
See “Step 6: Closing an HDF4 File” on page 3-57 for more information. As a
convenience, MATLAB provides a function,
MLcloseall
,that you can use to
close all open data sets and file identifiers with a single call. See “Using the
MATLAB HDF4 Utility API” on page 3-58 for more information.
3-54
control software platform:C# PDF Text Extract Library: extract text content from PDF file in
it is feasible for users to extract text content from source PDF document file the following C# example code for text extraction from PDF page Open a document
www.rasteredge.com
control software platform:C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
Free online C#.NET source code for combining multiple PDF pages together in .NET framework. Combine scanned images to PDF, such as tiff, jpg, png, gif, bmp
www.rasteredge.com
Exporting to Scientific Data Files
To write less than the entire data set, use the start, stride, and edges vectors
to specify where you want to start writing data and how much data you want
to write.
For example, the following code fragment uses
SDwritedata
to replace the
values of the entire second row of the sample data set:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
with the vector
B
:
B = [ 9 9 9 9 9];
In the example, the start vector specifies that you want to start the write
operation in the first column of the second row. Note how HDF4 uses
zero-based indexing and specifies the column dimension first. In MATLAB,
you would specify this location as
(2,1)
. The edges argument specifies the
dimensions of the data to be written. Note that the size of the array of data
to be written must match the edge specification.
ds_start = [0 1]; % Start writing at the first column, second row.
ds_stride = []; % Write every element.
ds_edges = [5 1]; % Each row is a 1-by-5 vector.
stat = hdfsd('writedata',sds_id,ds_start,ds_stride,ds_edges,B);
Step 4: Writing Metadata to an HDF4 File
You can optionally include information in an HDF4 file, called attributes, that
describes the file and its contents. Using the HDF4 SD API, you can associate
attributes with three types of HDF4 objects:
• An entire HDF4 file — File attributes, also called global attributes,
generally contain information pertinent to all the data sets in the file.
• A data set in an HDF4 file — Data set attributes, also called local
attributes, describe individual data sets.
• A dimension of a data set — Dimension attributes provide information
about one particular dimension of a data set.
3-55
control software platform:C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
Online C# source code for extracting, copying and pasting PDF The portable document format, known as PDF document, is of file that allows users to open & read
www.rasteredge.com
control software platform:VB.NET PDF Annotate Library: Draw, edit PDF annotation, markups in
Decode source PDF document file into an in-memory object, namely 2.pdf" Dim outputFilePath As String = Program.RootPath + "\\" Annot_8.pdf" ' open a PDF file
www.rasteredge.com
3
Exporting Data
To create an attribute in the HDF4 SD API, use the
SDsetattr
routine.
In MATLAB, use the
hdfsd
function, specifying
'setattr'
as the first
argument. As other arguments, specify
• A valid HDF4 SD identifier associated with the object. This value can
be a file identifier (
sd_id
), a data set identifier (
sds_id
), or a dimension
identifier (
dim_id
).
• A text string that defines the name of the attribute.
• The attribute value.
For example, this code creates a global attribute, named
my_global_attr
,
and associates it with the HDF4 file identified by
sd_id
:
status = hdfsd('setattr',sd_id,'my_global_attr','my_attr_val');
Note In the NCSA documentation, the
SDsetattr
routine has two additional
arguments: data type and the number of values in the attribute. When calling
this routine from MATLAB, you do not have to include these arguments.
The MATLAB HDF4 function can determine the data type and size of the
attribute from the value you specify.
The SD interface supports predefined attributes that have reserved names
and, in some cases, data types. Predefined attributes are identical to
user-defined attributes except that the HDF4 SD API has already defined
their names and data types. For example, the HDF4 SD API defines an
attribute, named
cordsys
,in which you can specify the coordinate system
used by the data set. Possible values of this attribute include the text strings
'cartesian'
,
'polar'
,and
'spherical'
.
Predefined attributes can be useful because they establish conventions that
applications can depend on. The HDF4 SD API supports predefined attributes
for data sets and dimensions only; there are no predefined attributes for files.
For a complete list of the predefined attributes, see the NCSA documentation.
In the HDF4 SD API, you create predefined attributes the same way you
create user-defined attributes, using the
SDsetattr
routine. In MATLAB, use
the
hdfsd
function, specifying
setattr
as the first argument:
3-56
control software platform:C# Create PDF from OpenOffice to convert odt, odp files to PDF in
Online source code for C#.NET class. to Use C#.NET Demo Code to Convert ODP to PDF in C#.NET Application. Description: Convert to PDF/TIFF and save it on the disk
www.rasteredge.com
control software platform:C# PDF: PDF Document Viewer & Reader SDK for Windows Forms
in different display formats, and save source PDF file using file to a specified path in C# WinForms application visible page in the currently open PDF document
www.rasteredge.com
Exporting to Scientific Data Files
attr_name = 'cordsys';
attr_value = 'polar';
status = hdfsd('setattr',sds_id,attr_name,attr_value);
The HDF4 SD API also includes specialized functions for writing and
reading the predefined attributes. These specialized functions, such as
SDsetdatastrs
,are sometimes easier to use, especially when you are reading
or writing multiple related predefined attributes. You must use specialized
functions to read or write the predefined dimension attributes.
You can associate multiple attributes with a single HDF4 object. HDF4
maintains an attribute index for each object. The attribute index is
zero-based. The first attribute has index value 0, the second has index value
1, and so on. You access an attribute by its index value.
Each attribute has the format
name=value
,where
name
(called
label
in
HDF4 terminology) is a text string up to 256 characters in length and
value
contains one or more entries of the same data type. A single attribute can
have multiple values.
Step 5: Closing HDF4 Data Sets
After writing data to a data set in an HDF4 file, you must close access to the
data set. In the HDF4 SD API, you use the
SDendaccess
routine to close a
data set. In MATLAB, use the
hdfsd
function, specifying
endaccess
as the
first argument. As the only other argument, specify a valid HDF4 SD data set
identifier,
sds_id
in this example:
stat = hdfsd('endaccess',sds_id);
Step 6: Closing an HDF4 File
After writing data to a data set and closing the data set, you must also close
the HDF4 file. In the HDF4 SD API, you use the
SDend
routine. In MATLAB,
use the
hdfsd
function, specifying
end
as the first argument. As the only other
argument, specify a valid HDF4 SD file identifier,
sd_id
in this example:
stat = hdfsd('end',sd_id);
You must close access to all the data sets in an HDF4 file before closing it.
3-57
control software platform:C# Word - MailMerge Processing in C#.NET
In C# class programming, you can use XML file which contains data source, and execute String docFilePath = @""; String xmlFilePath = @""; Open the document
www.rasteredge.com
control software platform:VB.NET PDF File Split Library: Split, seperate PDF into multiple
Separate source PDF document file by defined page range in VB.NET class application. Divide PDF file into multiple files by outputting PDF file size.
www.rasteredge.com
3
Exporting Data
Note Closing an HDF4 file executes all the write operations that have been
queued using
SDwritedata
.As a convenience, the MATLAB HDF Utility
API provides a function that can close all open data set and file identifiers
with a single call. See “Using the MATLAB HDF4 Utility API” on page 3-58
for more information.
Using the MATLAB HDF4 Utility API
In addition to the standard HDF4 APIs, listed in the
hdf
reference page,
MATLAB supports utility functions that are designed to make it easier to use
HDF4 in the MATLAB environment.
For example, using the gateway function to the MATLAB HDF4 utility API,
hdfml
,and specifying the name of the
listinfo
routine as an argument, you
can view all the currently open HDF4 identifiers. MATLAB updates this list
whenever HDF identifiers are created or closed. In the following example
only two identifiers are open.
hdfml('listinfo')
No open RI identifiers
No open GR identifiers
No open grid identifiers
No open grid file identifiers
No open annotation identifiers
No open AN identifiers
Open scientific dataset identifiers:
262144
Open scientific data file identifiers:
393216
No open Vdata identifiers
No open Vgroup identifiers
No open Vfile identifiers
No open point identifiers
No open point file identifiers
No open swath identifiers
No open swath file identifiers
No open access identifiers
No open file identifiers
3-58
control software platform:C# Create PDF from Tiff Library to convert tif images to PDF in C#
Selection of turning tiff into searchable PDF or scanned PDF. Online demo allows converting tiff to PDF online. C# source codes are provided to use in .NET class
www.rasteredge.com
Exporting to Scientific Data Files
Closing All Open HDF4 Identifiers. To close all the currently open
HDF4 identifiers in a single call, use the gateway function to the MATLAB
HDF4 utility API,
hdfml
,specifying the name of the
closeall
routine as
an argument. The following example closes all the currently open HDF4
identifiers.
hdfml('closeall')
3-59
3
Exporting Data
Exporting to Images
To export data from the MATLAB workspace using one of the standard
graphics file formats, use the
imwrite
function. Using this function, you can
export data in formats such as the Tagged Image File Format (TIFF), Joint
Photographic Experts Group (JPEG), and Portable Network Graphics (PNG).
For a complete list of supported formats, see the
imwrite
reference page.
The following example writes a multidimensional array of
uint8
data
I
from
the MATLAB workspace into a file in TIFF format. The class of the output
image written to the file depends on the format specified. For most formats, if
the input array is of class
uint8
,
imwrite
outputs the data as 8-bit values.
See the
imwrite
reference page for details.
whos I
Name
Size
Bytes
Class
I
650x600x3
1170000
uint8 array
Grand total is 1170000 elements using 1170000 bytes
imwrite(I, 'my_graphics_file.tif','tif');
Note
imwrite
supports different syntaxes for several of the standard formats.
For example, with TIFF file format, you can specify the type of compression
MATLAB uses to store the image. See the
imwrite
reference page for details.
For more control writing data to a TIFF file, use the
Tiff
object—see
“Exporting Image Data and Metadata to TIFF Files” on page 3-60 for more
information.
Exporting Image Data and Metadata to TIFF Files
While you can use
imwrite
to export image data and metadata (tags)
to Tagged Image File Format (TIFF) files, the function does have some
limitations. For example, when you want to modify image data or metadata in
the file, you must write the all the data to the file. You cannot write only the
updated portion. Using the
Tiff
object, you can write portions of the image
data and modify or add individual tags to a TIFF file. When you construct a
3-60
Exporting to Images
Tiff
object, it represents your connection with a TIFF file and provides access
to many of the routines in the LibTIFF library.
The following sections provide step-by-step examples of using
Tiff
object
methods and properties to perform some common tasks with TIFF files. To
get the most out of the
Tiff
object, you must be familiar with the TIFF
specification and technical notes. View this documentation at
LibTIFF -
TIFF Library and Utilities
Creating a New TIFF File
1
Create some image data. This example reads image data from a JPEG file
included with MATLAB:
imgdata = imread('ngc6543a.jpg');
2
Create a new TIFF file by constructing a
Tiff
object, specifying the name of
the new file as an argument. To create a file you must specify either write
mode (
'w'
)or append mode (
'a'
):
t = Tiff('myfile.tif','w');
When you create a new TIFF file, the
Tiff
constructor creates a filecontaining
an image file directory (IFD). A TIFF file uses this IFD to organize all the data
and metadata associated with a particular image. A TIFF file can contain
multiple IFDs. The
Tiff
object makes the IFD it creates the current IFD.
Tiff
object methods operate on the current IFD. You can navigate among IFDs in a
TIFF file and specify which IFD is the current IFD using
Tiff
object methods.
3
Set required TIFF tags using the
setTag
method of the
Tiff
object. These
required tags specify information about the image, such as its length
and width. To break the image data into strips, specify a value for the
RowsPerStrip
tag. To break the image data into tiles, specify values for
the
TileWidth
and
TileLength
tags. The example creates a structure that
contains tag names and values and passes that to
setTag
. You also can set
each tag individually.
tagstruct.ImageLength = size(imgdata,1)
tagstruct.ImageWidth = size(imgdata,2)
tagstruct.Photometric = Tiff.Photometric.RGB
tagstruct.BitsPerSample = 8
3-61
3
Exporting Data
tagstruct.SamplesPerPixel = 3
tagstruct.RowsPerStrip = 16
tagstruct.PlanarConfiguration = Tiff.PlanarConfiguration.Chunky
tagstruct.Software = 'MATLAB'
t.setTag(tagstruct)
For information about supported TIFF tags and how to set their
values, see “Setting Tag Values” on page 3-67. For example, the
Tiff
object supports properties that you can use to set the values of certain
properties. This example uses the
Tiff
object
PlanarConfiguration
property to specify the correct value for the chunky configuration:
Tiff.PlanarConfiguration.Chunky
.
4
Write the image data and metadata to the current directory using the
write
method of the
Tiff
object.
t.write(imgdata);
If you wanted to put multiple images into your file, call the
writeDirectory
method right after performing this write operation. The
writeDirectory
method sets up a new image file directory in the file and makes this new
directory the current directory.
5
Close your connection to the file by closing the
Tiff
object:
t.close();
6
Test that you created a valid TIFF file by using the
imread
function to read
the file, and then display the image:
imagesc(imread('myfile.tif'));
Writing a Strip or Tile of Image Data
Note You can only modify a strip or a tile of image data if the data is not
compressed.
3-62
Documents you may be interested
Documents you may be interested