SlideShare a Scribd company logo
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

P Y TABLES & Family
Analyzing and Sharing HDF5 Data with Python

Francesc Altet
Cárabos Coop. V.

HDF Workshop November 30, 2005 - December 2, 2005.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Who are we?
Cárabos is the company committed to the P Y TABLES suite
development and deployment.
We have years of experience in designing software
solutions for handling extremely large datasets.
What we provide:
Commercial support for the P Y TABLES suite.
P Y TABLES-based applications.
Consulting services for managing complex data
environments.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Who are we?
Cárabos is the company committed to the P Y TABLES suite
development and deployment.
We have years of experience in designing software
solutions for handling extremely large datasets.
What we provide:
Commercial support for the P Y TABLES suite.
P Y TABLES-based applications.
Consulting services for managing complex data
environments.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Who are we?
Cárabos is the company committed to the P Y TABLES suite
development and deployment.
We have years of experience in designing software
solutions for handling extremely large datasets.
What we provide:
Commercial support for the P Y TABLES suite.
P Y TABLES-based applications.
Consulting services for managing complex data
environments.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Outline
1

An Introduction to the Python Language
Facts about Python
Scientific Packages
An example

2

P Y TABLES
Overview
Usage Examples
P Y TABLES Pro

3

CSTABLES
Overview
Design goals
Examples of Use
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Outline
1

An Introduction to the Python Language
Facts about Python
Scientific Packages
An example

2

P Y TABLES
Overview
Usage Examples
P Y TABLES Pro

3

CSTABLES
Overview
Design goals
Examples of Use
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Main Features

Interpreted ⇒ Allows interactivity
Flexible data structures ⇒ Malleability
Minimalistic grammar ⇒ Easy to learn
Very complete library (Batteries included) ⇒ Boosts
productivity

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Main Features

Interpreted ⇒ Allows interactivity
Flexible data structures ⇒ Malleability
Minimalistic grammar ⇒ Easy to learn
Very complete library (Batteries included) ⇒ Boosts
productivity

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Main Features

Interpreted ⇒ Allows interactivity
Flexible data structures ⇒ Malleability
Minimalistic grammar ⇒ Easy to learn
Very complete library (Batteries included) ⇒ Boosts
productivity

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Main Features

Interpreted ⇒ Allows interactivity
Flexible data structures ⇒ Malleability
Minimalistic grammar ⇒ Easy to learn
Very complete library (Batteries included) ⇒ Boosts
productivity

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Very Suitable for Scientific/Engineer Fields
Interactivity has always been very appreciated for
increasing productivity.
Being interpreted does not necessarily mean being
inefficient. Python has solutions for linking C & Fortran
libraries in an easy way.
Programming is normally considered a necessary evil.
Rich expressivity of Python normally reduces the amount
of code to solve real problems.
Many efficient scientific libraries have been developed for
Python: Numeric, numarray, SciPy, Scientific-Python,
matplotlib...

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Very Suitable for Scientific/Engineer Fields
Interactivity has always been very appreciated for
increasing productivity.
Being interpreted does not necessarily mean being
inefficient. Python has solutions for linking C & Fortran
libraries in an easy way.
Programming is normally considered a necessary evil.
Rich expressivity of Python normally reduces the amount
of code to solve real problems.
Many efficient scientific libraries have been developed for
Python: Numeric, numarray, SciPy, Scientific-Python,
matplotlib...

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Very Suitable for Scientific/Engineer Fields
Interactivity has always been very appreciated for
increasing productivity.
Being interpreted does not necessarily mean being
inefficient. Python has solutions for linking C & Fortran
libraries in an easy way.
Programming is normally considered a necessary evil.
Rich expressivity of Python normally reduces the amount
of code to solve real problems.
Many efficient scientific libraries have been developed for
Python: Numeric, numarray, SciPy, Scientific-Python,
matplotlib...

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Very Suitable for Scientific/Engineer Fields
Interactivity has always been very appreciated for
increasing productivity.
Being interpreted does not necessarily mean being
inefficient. Python has solutions for linking C & Fortran
libraries in an easy way.
Programming is normally considered a necessary evil.
Rich expressivity of Python normally reduces the amount
of code to solve real problems.
Many efficient scientific libraries have been developed for
Python: Numeric, numarray, SciPy, Scientific-Python,
matplotlib...

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Outline
1

An Introduction to the Python Language
Facts about Python
Scientific Packages
An example

2

P Y TABLES
Overview
Usage Examples
P Y TABLES Pro

3

CSTABLES
Overview
Design goals
Examples of Use
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Basic Matrix Handling
Numeric
Very mature but lacking some features.
Still has a huge user base.
scipy.core
Called to substitute both Numeric & numarray. When
finished, it is supposed to have all the advantages of
Numeric & numarray together.
numarray
Created to overcome some of the limitations of Numeric.
Better handling of large arrays, heterogeneous data...
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Basic Matrix Handling
Numeric
Very mature but lacking some features.
Still has a huge user base.
scipy.core
Called to substitute both Numeric & numarray. When
finished, it is supposed to have all the advantages of
Numeric & numarray together.
numarray
Created to overcome some of the limitations of Numeric.
Better handling of large arrays, heterogeneous data...
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Basic Matrix Handling
Numeric
Very mature but lacking some features.
Still has a huge user base.
scipy.core
Called to substitute both Numeric & numarray. When
finished, it is supposed to have all the advantages of
Numeric & numarray together.
numarray
Created to overcome some of the limitations of Numeric.
Better handling of large arrays, heterogeneous data...
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Numerical Supplements
SciPy
Optimization, integration, special functions
Signal and image processing
Genetic algorithms, ODE solvers...
Scientific Python
Quaternions, automatic derivatives, (linear) interpolation,
polinomials, ...
Overlaps somewhat SciPy, but it has...
A nice netCDF module for I/O

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Numerical Supplements
SciPy
Optimization, integration, special functions
Signal and image processing
Genetic algorithms, ODE solvers...
Scientific Python
Quaternions, automatic derivatives, (linear) interpolation,
polinomials, ...
Overlaps somewhat SciPy, but it has...
A nice netCDF module for I/O

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Plotting (2D)

matplotlib example
matplotlib
Great interactivity.
Produces
publication quality
figures.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Plotting (2D)

PyQwt example
PyQwt
Fast plotting.
Nice to be
embedded in Qt
apps.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Plotting (3D)

MayaVi example
MayaVi
3D-oriented
scientific data
visualizer.
Uses the
Visualization
Toolkit (VTK).

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Outline
1

An Introduction to the Python Language
Facts about Python
Scientific Packages
An example

2

P Y TABLES
Overview
Usage Examples
P Y TABLES Pro

3

CSTABLES
Overview
Design goals
Examples of Use
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Programming as a Necessary Evil
Evaluate En (x) =

∞ e−xt
1
t n dt

for each value of n

from scipy import *
from scipy.integrate import quad, Inf
def integrand(t,n,x):
return exp(-x*t) / t**n
def expint(n,x):
return quad(integrand, 1, Inf, args=(n, x))[0]
v_expint = vectorize(expint)
print v_expint(3,arange(1.0,4.0,0.5))

The output
[ 0.10969197, 0.05673949, 0.03013338, 0.01629537,
0.00893065, 0.00494538,]

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Programming as a Necessary Evil

The output
The plotting code (matplotlib)
xrng = arange(1.0,4.0,0.1)
plot(xrng, v_expint(1, xrng))
plot(xrng, v_expint(2, xrng))
plot(xrng, v_expint(3, xrng))
legend(("n=1", "n=2", "n=3"))
title(’Exponential Integral’)

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Facts about Python
Scientific Packages
An example

Resources
Introductory material:
docs.python.org/tut/tut.html
www.python.org/doc/Intros.html

Lutz & Ascher, "Learning Python": good introduction.
Martelli, "Python in a Nutshell": useful reference.
Martelli & Ascher, "Python Cookbook": more specialized,
useful recipes for particular problems.
Hans P. Langtangen, "Python Scripting for Computational
Science": teaches computational scientists and engineers
how to write small Python scripts efficiently.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Outline
1

An Introduction to the Python Language
Facts about Python
Scientific Packages
An example

2

P Y TABLES
Overview
Usage Examples
P Y TABLES Pro

3

CSTABLES
Overview
Design goals
Examples of Use
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

What is P Y TABLES?

Simply stated: a database for Python based on HDF5.
Designed to deal with extremely large datasets.
Provides an easy-to-use interface.
Supports many of the features of HDF5 and others that are
not present in it (e.g. indexation).
It is Open Source software (BSD license).

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Why HDF5?
I started looking for different backends for saving large
datasets, but HDF5 was the final winner.
Thought out for managing very large datasets in an
efficient way.
Let you organize datasets hierchically.
Very flexible and well tested in scientific environments.
Good maintenance and improvement rate.
It is Open Source software.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Why HDF5?
I started looking for different backends for saving large
datasets, but HDF5 was the final winner.
Thought out for managing very large datasets in an
efficient way.
Let you organize datasets hierchically.
Very flexible and well tested in scientific environments.
Good maintenance and improvement rate.
It is Open Source software.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

What Does Extremely Large Exactly Mean?
The Hitch Hiker’s Guide to the Galaxy offers this definition of
the word “Infinite”:
Infinite: Bigger than the biggest thing ever and then some.
Much bigger than that in fact, really amazingly immense, a
totally stunning size, real “wow, that’s big”. Infinity is just so big
that, by comparison, bigness looks really titchy. Gigantic
multiplied by colossal multiplied by staggeringly huge is the sort
of concept we’re trying to get across here.
Disclaimer
Agreed, ’Extremely Large’ may not exactly mean ’Infinite’,
although it is pretty close to this definition.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

What Does Extremely Large Exactly Mean?
The Hitch Hiker’s Guide to the Galaxy offers this definition of
the word “Infinite”:
Infinite: Bigger than the biggest thing ever and then some.
Much bigger than that in fact, really amazingly immense, a
totally stunning size, real “wow, that’s big”. Infinity is just so big
that, by comparison, bigness looks really titchy. Gigantic
multiplied by colossal multiplied by staggeringly huge is the sort
of concept we’re trying to get across here.
Disclaimer
Agreed, ’Extremely Large’ may not exactly mean ’Infinite’,
although it is pretty close to this definition.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

What Does Extremely Large Exactly Mean?
The Hitch Hiker’s Guide to the Galaxy offers this definition of
the word “Infinite”:
Infinite: Bigger than the biggest thing ever and then some.
Much bigger than that in fact, really amazingly immense, a
totally stunning size, real “wow, that’s big”. Infinity is just so big
that, by comparison, bigness looks really titchy. Gigantic
multiplied by colossal multiplied by staggeringly huge is the sort
of concept we’re trying to get across here.
Disclaimer
Agreed, ’Extremely Large’ may not exactly mean ’Infinite’,
although it is pretty close to this definition.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Which ELD Features Does P Y TABLES Support?
A good base library (HDF5).
Support for 64-bit in all data addressing.
Need to overcome a Python slicing limitation: only 32-bit
addresses are supported.

Buffered I/O.
A LRU cache system for an efficient reuse of objects.
Fast indexing and searching capabilities for tables.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Which ELD Features Does P Y TABLES Support?
A good base library (HDF5).
Support for 64-bit in all data addressing.
Need to overcome a Python slicing limitation: only 32-bit
addresses are supported.

Buffered I/O.
A LRU cache system for an efficient reuse of objects.
Fast indexing and searching capabilities for tables.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Which ELD Features Does P Y TABLES Support?
A good base library (HDF5).
Support for 64-bit in all data addressing.
Need to overcome a Python slicing limitation: only 32-bit
addresses are supported.

Buffered I/O.
A LRU cache system for an efficient reuse of objects.
Fast indexing and searching capabilities for tables.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Which ELD Features Does P Y TABLES Support?
A good base library (HDF5).
Support for 64-bit in all data addressing.
Need to overcome a Python slicing limitation: only 32-bit
addresses are supported.

Buffered I/O.
A LRU cache system for an efficient reuse of objects.
Fast indexing and searching capabilities for tables.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Which ELD Features Does P Y TABLES Support?
A good base library (HDF5).
Support for 64-bit in all data addressing.
Need to overcome a Python slicing limitation: only 32-bit
addresses are supported.

Buffered I/O.
A LRU cache system for an efficient reuse of objects.
Fast indexing and searching capabilities for tables.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Why Buffered I/O?
Because of speed (what else?):

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Why a Cache System?
1.- To achieve better open file times:

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Why a Cache System?
2.- To achieve a conservative usage of the memory:

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Why Fast Indexing?
It is not trifling in terms of time when you have to index tables
with more than one billion of rows:

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Ease of Use
Natural naming
# access to file:/group1/table
table = file.root.group1.table

Support for generalized slicing
# step means a stride in the slice
table[start:stop:step]

Support for iterators
# get the values in col1 that satisfy the
# (1.3 < col3 <= 2.) condition in table
col3 = table.cols.col3
[r[’col1’] for r in table.where(1.3 < col3 <= 2.)]
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Ease of Use
Natural naming
# access to file:/group1/table
table = file.root.group1.table

Support for generalized slicing
# step means a stride in the slice
table[start:stop:step]

Support for iterators
# get the values in col1 that satisfy the
# (1.3 < col3 <= 2.) condition in table
col3 = table.cols.col3
[r[’col1’] for r in table.where(1.3 < col3 <= 2.)]
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Ease of Use
Natural naming
# access to file:/group1/table
table = file.root.group1.table

Support for generalized slicing
# step means a stride in the slice
table[start:stop:step]

Support for iterators
# get the values in col1 that satisfy the
# (1.3 < col3 <= 2.) condition in table
col3 = table.cols.col3
[r[’col1’] for r in table.where(1.3 < col3 <= 2.)]
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Outline
1

An Introduction to the Python Language
Facts about Python
Scientific Packages
An example

2

P Y TABLES
Overview
Usage Examples
P Y TABLES Pro

3

CSTABLES
Overview
Design goals
Examples of Use
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Supported Objects in P Y TABLES
Table: Lets you deal with heterogeneous datasets.
Chunked. Enlargeable. Support for nested types.
Array: Provides quick and dirty array handling. Not
chunked. Non enlargeable.
CArray: Provides compressed array support. Chunked.
Not enlargeable.
EArray: Most general array support. Chunked.
Enlargeable.
VLArray: Collections of homogeneous data with a variable
number of entries. Chunked. Enlargeable.
Group: The structural component.
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

What’s New in P Y TABLES 1.2?
Added a new cache for the object tree.
Allows a contained use of memory (even with huge trees).
Almost instantaneous opening of files (good news for
interactive use!).

New NetCDF module (contributed by Jeff Whitaker).
Provides API emulation for Scientific.IO.NetCDF.
netCDF-3 ⇔ HDF5 conversions.
tables.NetCDF datasets can be shared over the internet
with the OPeNDAP protocol.
Plans to write data natively in netCDF-4 format in the future.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

What’s New in P Y TABLES 1.2?
Added a new cache for the object tree.
Allows a contained use of memory (even with huge trees).
Almost instantaneous opening of files (good news for
interactive use!).

New NetCDF module (contributed by Jeff Whitaker).
Provides API emulation for Scientific.IO.NetCDF.
netCDF-3 ⇔ HDF5 conversions.
tables.NetCDF datasets can be shared over the internet
with the OPeNDAP protocol.
Plans to write data natively in netCDF-4 format in the future.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Some Metrics on P Y TABLES 1.2
Core Library
~ 7.5 thousand LOC (Python)
~ 2.8 thousand LOC (Pyrex)
~ 4.0 thousand LOC (C)

Test Units
~ 3.1 thousand test units (Python)
~ 23 thousand LOC (Python)

Documentation
~ 5.0 thousand lines of on-line doc strings
~ 160 pages of Users’ Guide in PDF (and HTML)

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Outline
1

An Introduction to the Python Language
Facts about Python
Scientific Packages
An example

2

P Y TABLES
Overview
Usage Examples
P Y TABLES Pro

3

CSTABLES
Overview
Design goals
Examples of Use
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

What is P Y TABLES P RO?
It’s just a regular P Y TABLES but with enhanced features:
Improved search speed: Selections in tables with > 1
billion rows will be typically done in less than 1 second.
Complex queries: Supports an unlimited combination of
conditions.
Query optimizer: Queries are analyzed, reordered and
classified to get an optimum response time.
Support for complex indices: Expressions like col1 +
col2*col3 + col4**3 can be indexed and used for selections
afterwards.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Index Selection Speed

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Index Selection Speed: The Goal

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Usage Examples
P Y TABLES Pro

Current Status for P Y TABLES P RO

Improving the query response time.
Remains to be done:
Complex queries.
Query optimizer.

Date of release: 2nd quarter 2006 (tentative).

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

Outline
1

An Introduction to the Python Language
Facts about Python
Scientific Packages
An example

2

P Y TABLES
Overview
Usage Examples
P Y TABLES Pro

3

CSTABLES
Overview
Design goals
Examples of Use
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

CSTABLES: P Y TABLES Goes Client-Server

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

Outline
1

An Introduction to the Python Language
Facts about Python
Scientific Packages
An example

2

P Y TABLES
Overview
Usage Examples
P Y TABLES Pro

3

CSTABLES
Overview
Design goals
Examples of Use
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

Design Goals
Concurrency: Allows multiple access to the same file at the
same time.
Locking system: Avoids corruption of data.

High Throughput: Data is transmitted in large blocks.
High-speed compressor/decompressor used.
Client Cache: Metadata is kept in the client-side when an
object is first accessed.
Full P Y TABLES API compatibility: Existing P Y TABLES
programs can be re-used to access remote files
without changing virtually anything.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

Concurrency Issues
Question: CSTABLES does not provide threading or
asynchronous features yet. So, how does it deal with
several requests at a time?
Answer: Large data read and write requests are split into
small chunks. This considerably improves server response
time.
In addition, CSTABLES provides a lock mechanism that
allows applications to explicitly put a lock on a node or on
an entire subtree.
Different locking access modes:
READ, WRITE and ALL
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

Concurrency Issues
Question: CSTABLES does not provide threading or
asynchronous features yet. So, how does it deal with
several requests at a time?
Answer: Large data read and write requests are split into
small chunks. This considerably improves server response
time.
In addition, CSTABLES provides a lock mechanism that
allows applications to explicitly put a lock on a node or on
an entire subtree.
Different locking access modes:
READ, WRITE and ALL
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

Concurrency Issues
Question: CSTABLES does not provide threading or
asynchronous features yet. So, how does it deal with
several requests at a time?
Answer: Large data read and write requests are split into
small chunks. This considerably improves server response
time.
In addition, CSTABLES provides a lock mechanism that
allows applications to explicitly put a lock on a node or on
an entire subtree.
Different locking access modes:
READ, WRITE and ALL
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

Client Cache More in Depth
CSTABLES caches some of the metadata of the P Y TABLES
object tree.
When a client makes a change to the metadata, this
change is pushed to the other clients’ caches.
Easy to control which attributes should be cached and
which should not.
You should try to cache primarily read-only attributes.

Caveat emptor:
Caching attributes that are updated very often might generate
more traffic than attributes that are not cached at all!
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

Client Cache More in Depth
CSTABLES caches some of the metadata of the P Y TABLES
object tree.
When a client makes a change to the metadata, this
change is pushed to the other clients’ caches.
Easy to control which attributes should be cached and
which should not.
You should try to cache primarily read-only attributes.

Caveat emptor:
Caching attributes that are updated very often might generate
more traffic than attributes that are not cached at all!
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

Client Cache More in Depth
CSTABLES caches some of the metadata of the P Y TABLES
object tree.
When a client makes a change to the metadata, this
change is pushed to the other clients’ caches.
Easy to control which attributes should be cached and
which should not.
You should try to cache primarily read-only attributes.

Caveat emptor:
Caching attributes that are updated very often might generate
more traffic than attributes that are not cached at all!
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

Client Cache More in Depth
CSTABLES caches some of the metadata of the P Y TABLES
object tree.
When a client makes a change to the metadata, this
change is pushed to the other clients’ caches.
Easy to control which attributes should be cached and
which should not.
You should try to cache primarily read-only attributes.

Caveat emptor:
Caching attributes that are updated very often might generate
more traffic than attributes that are not cached at all!
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

Outline
1

An Introduction to the Python Language
Facts about Python
Scientific Packages
An example

2

P Y TABLES
Overview
Usage Examples
P Y TABLES Pro

3

CSTABLES
Overview
Design goals
Examples of Use
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

Two Different APIs
P Y TABLES API (prefix with csclient -ip=server_IP)
import tables
fileh = tables.openFile("file.h5")
print fileh.root.table.cols.col1[:]
fileh.close()
CSTABLES API (no need to be prefixed)
from cstables.client import client
c=client.Session()
app=c.connect("your_FQDN_server")
fileh=app.openFile("file.h5")
print fileh.root.table.cols.col1[:]
fileh.close()
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

Two Different APIs
P Y TABLES API (prefix with csclient -ip=server_IP)
import tables
fileh = tables.openFile("file.h5")
print fileh.root.table.cols.col1[:]
fileh.close()
CSTABLES API (no need to be prefixed)
from cstables.client import client
c=client.Session()
app=c.connect("your_FQDN_server")
fileh=app.openFile("file.h5")
print fileh.root.table.cols.col1[:]
fileh.close()
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

CSTABLES Status & Availability

The main design features are already implemented and
working.
Beta available (caveat: only works against P Y TABLES 1.0).
Focus now is on checking & debugging possible errors,
improving the throughput and bettering the Users’ Guide.
Future directions: threading, asynchronous
communications.

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

The P Y TABLES Suite Is Getting Shape
P Y TABLES
The basic layer for the other components.
P Y TABLES Pro
P Y TABLES with a twist: Complex searches and ultra-fast
selections in tables.
CSTABLES
The client-server P Y TABLES. It supports as well generic HDF5
files.
V I TABLES
A data viewer for P Y TABLES (and HDF5) files.
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

The P Y TABLES Suite Is Getting Shape
P Y TABLES
The basic layer for the other components.
P Y TABLES Pro
P Y TABLES with a twist: Complex searches and ultra-fast
selections in tables.
CSTABLES
The client-server P Y TABLES. It supports as well generic HDF5
files.
V I TABLES
A data viewer for P Y TABLES (and HDF5) files.
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

The P Y TABLES Suite Is Getting Shape
P Y TABLES
The basic layer for the other components.
P Y TABLES Pro
P Y TABLES with a twist: Complex searches and ultra-fast
selections in tables.
CSTABLES
The client-server P Y TABLES. It supports as well generic HDF5
files.
V I TABLES
A data viewer for P Y TABLES (and HDF5) files.
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Overview
Design goals
Examples of Use

The P Y TABLES Suite Is Getting Shape
P Y TABLES
The basic layer for the other components.
P Y TABLES Pro
P Y TABLES with a twist: Complex searches and ultra-fast
selections in tables.
CSTABLES
The client-server P Y TABLES. It supports as well generic HDF5
files.
V I TABLES
A data viewer for P Y TABLES (and HDF5) files.
Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Summary
Python is a joy for scientific computing. Start using it now!
The P Y TABLES suite is designed to work with HDF5 files in
an interactive, efficient and, most importantly, easy way.
Outlook
Working hard to release CSTABLES in the first quarter of
2006. P Y TABLES P RO will come later on (~ 2nd quarter of
2006).
It would be nice to produce a parallel version of P Y TABLES
(long term goal).

Francesc Altet

P Y TABLES & Family
An Introduction to the Python Language
P Y TABLES
CSTABLES
Summary

Thank You!

Thanks also to:
Elena Pourmal, for inviting us to the Workshop.
Frank Baker, for being kind.
The HDF Group for pushing forward P Y TABLES.

Francesc Altet

P Y TABLES & Family

More Related Content

PDF
LibreOffice Conf 2011 Desktop Publishing
PDF
Seeing is Correcting:Linked Open Data for Portuguese
PDF
Python vs. r for data science
PPTX
Python Programming
PPTX
Mixed-language Python/C++ debugging with Python Tools for Visual Studio- Pave...
PPTX
Cross language alignments - challenges guidelines and gold sets
PDF
Python with Project at SQL School
LibreOffice Conf 2011 Desktop Publishing
Seeing is Correcting:Linked Open Data for Portuguese
Python vs. r for data science
Python Programming
Mixed-language Python/C++ debugging with Python Tools for Visual Studio- Pave...
Cross language alignments - challenges guidelines and gold sets
Python with Project at SQL School

What's hot (11)

PPTX
Why Python?
PDF
Lexical Resources for Portuguese
PDF
From Python to Kotlin - TalkingKT 2019
PPTX
Python and its Applications
PDF
Logics and Ontologies for Portuguese Understanding
PDF
What is Python? (Silicon Valley CodeCamp 2014)
PDF
What is Python? (Silicon Valley CodeCamp 2015)
PDF
PDF
Python - the basics
PDF
Python: The Programmer's Lingua Franca
PPTX
Python Programming Language
Why Python?
Lexical Resources for Portuguese
From Python to Kotlin - TalkingKT 2019
Python and its Applications
Logics and Ontologies for Portuguese Understanding
What is Python? (Silicon Valley CodeCamp 2014)
What is Python? (Silicon Valley CodeCamp 2015)
Python - the basics
Python: The Programmer's Lingua Franca
Python Programming Language
Ad

Similar to Analyzing and Sharing HDF5 Data with Python (20)

ODP
Five python libraries should know for machine learning
PPTX
Introduction_to_Python.pptx
PDF
python-for-advanced-data-science-techniques-and-best-practices-20240911071850...
PDF
A Whirlwind Tour Of Python
PDF
Python A Comprehensive Guide for Beginners.pdf
PPTX
Python libraries for data science
PDF
what is python ?
PDF
Python standard library &amp; list of important libraries
PDF
Python Programming: The Best Language for Every Coder
PDF
summer training report on python
PDF
R vs python
PDF
Top Libraries for Machine Learning with Python
PDF
Python Mastery Made Easy.pdf
PPSX
Introduction to Python programming language
PDF
Guide to Learn Python Programming.pdf
PDF
Introduction to Analytics with Azure Notebooks and Python
PPTX
Python basics
PDF
Python Distilled Developer s Library 1st Edition David Beazley
PDF
Why Python Should Be Your First Programming Language
PDF
The Great Debate.pdf
Five python libraries should know for machine learning
Introduction_to_Python.pptx
python-for-advanced-data-science-techniques-and-best-practices-20240911071850...
A Whirlwind Tour Of Python
Python A Comprehensive Guide for Beginners.pdf
Python libraries for data science
what is python ?
Python standard library &amp; list of important libraries
Python Programming: The Best Language for Every Coder
summer training report on python
R vs python
Top Libraries for Machine Learning with Python
Python Mastery Made Easy.pdf
Introduction to Python programming language
Guide to Learn Python Programming.pdf
Introduction to Analytics with Azure Notebooks and Python
Python basics
Python Distilled Developer s Library 1st Edition David Beazley
Why Python Should Be Your First Programming Language
The Great Debate.pdf
Ad

More from The HDF-EOS Tools and Information Center (20)

PDF
HDF5 2.0: Cloud Optimized from the Start
PDF
Using a Hierarchical Data Format v5 file as Zarr v3 Shard
PDF
Cloud-Optimized HDF5 Files - Current Status
PDF
Cloud Optimized HDF5 for the ICESat-2 mission
PPTX
Access HDF Data in the Cloud via OPeNDAP Web Service
PPTX
Upcoming New HDF5 Features: Multi-threading, sparse data storage, and encrypt...
PPTX
The State of HDF5 / Dana Robinson / The HDF Group
PDF
Cloud-Optimized HDF5 Files
PDF
Accessing HDF5 data in the cloud with HSDS
PPTX
Highly Scalable Data Service (HSDS) Performance Features
PDF
Creating Cloud-Optimized HDF5 Files
PPTX
HDF5 OPeNDAP Handler Updates, and Performance Discussion
PPTX
Hyrax: Serving Data from S3
PPSX
Accessing Cloud Data and Services Using EDL, Pydap, MATLAB
PDF
HDF - Current status and Future Directions
PPSX
HDFEOS.org User Analsys, Updates, and Future
PPTX
HDF - Current status and Future Directions
PDF
H5Coro: The Cloud-Optimized Read-Only Library
PPTX
MATLAB Modernization on HDF5 1.10
HDF5 2.0: Cloud Optimized from the Start
Using a Hierarchical Data Format v5 file as Zarr v3 Shard
Cloud-Optimized HDF5 Files - Current Status
Cloud Optimized HDF5 for the ICESat-2 mission
Access HDF Data in the Cloud via OPeNDAP Web Service
Upcoming New HDF5 Features: Multi-threading, sparse data storage, and encrypt...
The State of HDF5 / Dana Robinson / The HDF Group
Cloud-Optimized HDF5 Files
Accessing HDF5 data in the cloud with HSDS
Highly Scalable Data Service (HSDS) Performance Features
Creating Cloud-Optimized HDF5 Files
HDF5 OPeNDAP Handler Updates, and Performance Discussion
Hyrax: Serving Data from S3
Accessing Cloud Data and Services Using EDL, Pydap, MATLAB
HDF - Current status and Future Directions
HDFEOS.org User Analsys, Updates, and Future
HDF - Current status and Future Directions
H5Coro: The Cloud-Optimized Read-Only Library
MATLAB Modernization on HDF5 1.10

Recently uploaded (20)

PDF
Electronic commerce courselecture one. Pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Machine learning based COVID-19 study performance prediction
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
KodekX | Application Modernization Development
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Chapter 3 Spatial Domain Image Processing.pdf
Electronic commerce courselecture one. Pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Machine learning based COVID-19 study performance prediction
Unlocking AI with Model Context Protocol (MCP)
Building Integrated photovoltaic BIPV_UPV.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
sap open course for s4hana steps from ECC to s4
Network Security Unit 5.pdf for BCA BBA.
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Diabetes mellitus diagnosis method based random forest with bat algorithm
The AUB Centre for AI in Media Proposal.docx
Digital-Transformation-Roadmap-for-Companies.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
KodekX | Application Modernization Development
Dropbox Q2 2025 Financial Results & Investor Presentation
The Rise and Fall of 3GPP – Time for a Sabbatical?
Chapter 3 Spatial Domain Image Processing.pdf

Analyzing and Sharing HDF5 Data with Python

  • 1. An Introduction to the Python Language P Y TABLES CSTABLES Summary P Y TABLES & Family Analyzing and Sharing HDF5 Data with Python Francesc Altet Cárabos Coop. V. HDF Workshop November 30, 2005 - December 2, 2005. Francesc Altet P Y TABLES & Family
  • 2. An Introduction to the Python Language P Y TABLES CSTABLES Summary Who are we? Cárabos is the company committed to the P Y TABLES suite development and deployment. We have years of experience in designing software solutions for handling extremely large datasets. What we provide: Commercial support for the P Y TABLES suite. P Y TABLES-based applications. Consulting services for managing complex data environments. Francesc Altet P Y TABLES & Family
  • 3. An Introduction to the Python Language P Y TABLES CSTABLES Summary Who are we? Cárabos is the company committed to the P Y TABLES suite development and deployment. We have years of experience in designing software solutions for handling extremely large datasets. What we provide: Commercial support for the P Y TABLES suite. P Y TABLES-based applications. Consulting services for managing complex data environments. Francesc Altet P Y TABLES & Family
  • 4. An Introduction to the Python Language P Y TABLES CSTABLES Summary Who are we? Cárabos is the company committed to the P Y TABLES suite development and deployment. We have years of experience in designing software solutions for handling extremely large datasets. What we provide: Commercial support for the P Y TABLES suite. P Y TABLES-based applications. Consulting services for managing complex data environments. Francesc Altet P Y TABLES & Family
  • 5. An Introduction to the Python Language P Y TABLES CSTABLES Summary Outline 1 An Introduction to the Python Language Facts about Python Scientific Packages An example 2 P Y TABLES Overview Usage Examples P Y TABLES Pro 3 CSTABLES Overview Design goals Examples of Use Francesc Altet P Y TABLES & Family
  • 6. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Outline 1 An Introduction to the Python Language Facts about Python Scientific Packages An example 2 P Y TABLES Overview Usage Examples P Y TABLES Pro 3 CSTABLES Overview Design goals Examples of Use Francesc Altet P Y TABLES & Family
  • 7. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Main Features Interpreted ⇒ Allows interactivity Flexible data structures ⇒ Malleability Minimalistic grammar ⇒ Easy to learn Very complete library (Batteries included) ⇒ Boosts productivity Francesc Altet P Y TABLES & Family
  • 8. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Main Features Interpreted ⇒ Allows interactivity Flexible data structures ⇒ Malleability Minimalistic grammar ⇒ Easy to learn Very complete library (Batteries included) ⇒ Boosts productivity Francesc Altet P Y TABLES & Family
  • 9. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Main Features Interpreted ⇒ Allows interactivity Flexible data structures ⇒ Malleability Minimalistic grammar ⇒ Easy to learn Very complete library (Batteries included) ⇒ Boosts productivity Francesc Altet P Y TABLES & Family
  • 10. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Main Features Interpreted ⇒ Allows interactivity Flexible data structures ⇒ Malleability Minimalistic grammar ⇒ Easy to learn Very complete library (Batteries included) ⇒ Boosts productivity Francesc Altet P Y TABLES & Family
  • 11. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Very Suitable for Scientific/Engineer Fields Interactivity has always been very appreciated for increasing productivity. Being interpreted does not necessarily mean being inefficient. Python has solutions for linking C & Fortran libraries in an easy way. Programming is normally considered a necessary evil. Rich expressivity of Python normally reduces the amount of code to solve real problems. Many efficient scientific libraries have been developed for Python: Numeric, numarray, SciPy, Scientific-Python, matplotlib... Francesc Altet P Y TABLES & Family
  • 12. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Very Suitable for Scientific/Engineer Fields Interactivity has always been very appreciated for increasing productivity. Being interpreted does not necessarily mean being inefficient. Python has solutions for linking C & Fortran libraries in an easy way. Programming is normally considered a necessary evil. Rich expressivity of Python normally reduces the amount of code to solve real problems. Many efficient scientific libraries have been developed for Python: Numeric, numarray, SciPy, Scientific-Python, matplotlib... Francesc Altet P Y TABLES & Family
  • 13. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Very Suitable for Scientific/Engineer Fields Interactivity has always been very appreciated for increasing productivity. Being interpreted does not necessarily mean being inefficient. Python has solutions for linking C & Fortran libraries in an easy way. Programming is normally considered a necessary evil. Rich expressivity of Python normally reduces the amount of code to solve real problems. Many efficient scientific libraries have been developed for Python: Numeric, numarray, SciPy, Scientific-Python, matplotlib... Francesc Altet P Y TABLES & Family
  • 14. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Very Suitable for Scientific/Engineer Fields Interactivity has always been very appreciated for increasing productivity. Being interpreted does not necessarily mean being inefficient. Python has solutions for linking C & Fortran libraries in an easy way. Programming is normally considered a necessary evil. Rich expressivity of Python normally reduces the amount of code to solve real problems. Many efficient scientific libraries have been developed for Python: Numeric, numarray, SciPy, Scientific-Python, matplotlib... Francesc Altet P Y TABLES & Family
  • 15. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Outline 1 An Introduction to the Python Language Facts about Python Scientific Packages An example 2 P Y TABLES Overview Usage Examples P Y TABLES Pro 3 CSTABLES Overview Design goals Examples of Use Francesc Altet P Y TABLES & Family
  • 16. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Basic Matrix Handling Numeric Very mature but lacking some features. Still has a huge user base. scipy.core Called to substitute both Numeric & numarray. When finished, it is supposed to have all the advantages of Numeric & numarray together. numarray Created to overcome some of the limitations of Numeric. Better handling of large arrays, heterogeneous data... Francesc Altet P Y TABLES & Family
  • 17. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Basic Matrix Handling Numeric Very mature but lacking some features. Still has a huge user base. scipy.core Called to substitute both Numeric & numarray. When finished, it is supposed to have all the advantages of Numeric & numarray together. numarray Created to overcome some of the limitations of Numeric. Better handling of large arrays, heterogeneous data... Francesc Altet P Y TABLES & Family
  • 18. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Basic Matrix Handling Numeric Very mature but lacking some features. Still has a huge user base. scipy.core Called to substitute both Numeric & numarray. When finished, it is supposed to have all the advantages of Numeric & numarray together. numarray Created to overcome some of the limitations of Numeric. Better handling of large arrays, heterogeneous data... Francesc Altet P Y TABLES & Family
  • 19. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Numerical Supplements SciPy Optimization, integration, special functions Signal and image processing Genetic algorithms, ODE solvers... Scientific Python Quaternions, automatic derivatives, (linear) interpolation, polinomials, ... Overlaps somewhat SciPy, but it has... A nice netCDF module for I/O Francesc Altet P Y TABLES & Family
  • 20. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Numerical Supplements SciPy Optimization, integration, special functions Signal and image processing Genetic algorithms, ODE solvers... Scientific Python Quaternions, automatic derivatives, (linear) interpolation, polinomials, ... Overlaps somewhat SciPy, but it has... A nice netCDF module for I/O Francesc Altet P Y TABLES & Family
  • 21. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Plotting (2D) matplotlib example matplotlib Great interactivity. Produces publication quality figures. Francesc Altet P Y TABLES & Family
  • 22. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Plotting (2D) PyQwt example PyQwt Fast plotting. Nice to be embedded in Qt apps. Francesc Altet P Y TABLES & Family
  • 23. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Plotting (3D) MayaVi example MayaVi 3D-oriented scientific data visualizer. Uses the Visualization Toolkit (VTK). Francesc Altet P Y TABLES & Family
  • 24. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Outline 1 An Introduction to the Python Language Facts about Python Scientific Packages An example 2 P Y TABLES Overview Usage Examples P Y TABLES Pro 3 CSTABLES Overview Design goals Examples of Use Francesc Altet P Y TABLES & Family
  • 25. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Programming as a Necessary Evil Evaluate En (x) = ∞ e−xt 1 t n dt for each value of n from scipy import * from scipy.integrate import quad, Inf def integrand(t,n,x): return exp(-x*t) / t**n def expint(n,x): return quad(integrand, 1, Inf, args=(n, x))[0] v_expint = vectorize(expint) print v_expint(3,arange(1.0,4.0,0.5)) The output [ 0.10969197, 0.05673949, 0.03013338, 0.01629537, 0.00893065, 0.00494538,] Francesc Altet P Y TABLES & Family
  • 26. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Programming as a Necessary Evil The output The plotting code (matplotlib) xrng = arange(1.0,4.0,0.1) plot(xrng, v_expint(1, xrng)) plot(xrng, v_expint(2, xrng)) plot(xrng, v_expint(3, xrng)) legend(("n=1", "n=2", "n=3")) title(’Exponential Integral’) Francesc Altet P Y TABLES & Family
  • 27. An Introduction to the Python Language P Y TABLES CSTABLES Summary Facts about Python Scientific Packages An example Resources Introductory material: docs.python.org/tut/tut.html www.python.org/doc/Intros.html Lutz & Ascher, "Learning Python": good introduction. Martelli, "Python in a Nutshell": useful reference. Martelli & Ascher, "Python Cookbook": more specialized, useful recipes for particular problems. Hans P. Langtangen, "Python Scripting for Computational Science": teaches computational scientists and engineers how to write small Python scripts efficiently. Francesc Altet P Y TABLES & Family
  • 28. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Outline 1 An Introduction to the Python Language Facts about Python Scientific Packages An example 2 P Y TABLES Overview Usage Examples P Y TABLES Pro 3 CSTABLES Overview Design goals Examples of Use Francesc Altet P Y TABLES & Family
  • 29. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro What is P Y TABLES? Simply stated: a database for Python based on HDF5. Designed to deal with extremely large datasets. Provides an easy-to-use interface. Supports many of the features of HDF5 and others that are not present in it (e.g. indexation). It is Open Source software (BSD license). Francesc Altet P Y TABLES & Family
  • 30. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Why HDF5? I started looking for different backends for saving large datasets, but HDF5 was the final winner. Thought out for managing very large datasets in an efficient way. Let you organize datasets hierchically. Very flexible and well tested in scientific environments. Good maintenance and improvement rate. It is Open Source software. Francesc Altet P Y TABLES & Family
  • 31. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Why HDF5? I started looking for different backends for saving large datasets, but HDF5 was the final winner. Thought out for managing very large datasets in an efficient way. Let you organize datasets hierchically. Very flexible and well tested in scientific environments. Good maintenance and improvement rate. It is Open Source software. Francesc Altet P Y TABLES & Family
  • 32. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro What Does Extremely Large Exactly Mean? The Hitch Hiker’s Guide to the Galaxy offers this definition of the word “Infinite”: Infinite: Bigger than the biggest thing ever and then some. Much bigger than that in fact, really amazingly immense, a totally stunning size, real “wow, that’s big”. Infinity is just so big that, by comparison, bigness looks really titchy. Gigantic multiplied by colossal multiplied by staggeringly huge is the sort of concept we’re trying to get across here. Disclaimer Agreed, ’Extremely Large’ may not exactly mean ’Infinite’, although it is pretty close to this definition. Francesc Altet P Y TABLES & Family
  • 33. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro What Does Extremely Large Exactly Mean? The Hitch Hiker’s Guide to the Galaxy offers this definition of the word “Infinite”: Infinite: Bigger than the biggest thing ever and then some. Much bigger than that in fact, really amazingly immense, a totally stunning size, real “wow, that’s big”. Infinity is just so big that, by comparison, bigness looks really titchy. Gigantic multiplied by colossal multiplied by staggeringly huge is the sort of concept we’re trying to get across here. Disclaimer Agreed, ’Extremely Large’ may not exactly mean ’Infinite’, although it is pretty close to this definition. Francesc Altet P Y TABLES & Family
  • 34. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro What Does Extremely Large Exactly Mean? The Hitch Hiker’s Guide to the Galaxy offers this definition of the word “Infinite”: Infinite: Bigger than the biggest thing ever and then some. Much bigger than that in fact, really amazingly immense, a totally stunning size, real “wow, that’s big”. Infinity is just so big that, by comparison, bigness looks really titchy. Gigantic multiplied by colossal multiplied by staggeringly huge is the sort of concept we’re trying to get across here. Disclaimer Agreed, ’Extremely Large’ may not exactly mean ’Infinite’, although it is pretty close to this definition. Francesc Altet P Y TABLES & Family
  • 35. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Which ELD Features Does P Y TABLES Support? A good base library (HDF5). Support for 64-bit in all data addressing. Need to overcome a Python slicing limitation: only 32-bit addresses are supported. Buffered I/O. A LRU cache system for an efficient reuse of objects. Fast indexing and searching capabilities for tables. Francesc Altet P Y TABLES & Family
  • 36. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Which ELD Features Does P Y TABLES Support? A good base library (HDF5). Support for 64-bit in all data addressing. Need to overcome a Python slicing limitation: only 32-bit addresses are supported. Buffered I/O. A LRU cache system for an efficient reuse of objects. Fast indexing and searching capabilities for tables. Francesc Altet P Y TABLES & Family
  • 37. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Which ELD Features Does P Y TABLES Support? A good base library (HDF5). Support for 64-bit in all data addressing. Need to overcome a Python slicing limitation: only 32-bit addresses are supported. Buffered I/O. A LRU cache system for an efficient reuse of objects. Fast indexing and searching capabilities for tables. Francesc Altet P Y TABLES & Family
  • 38. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Which ELD Features Does P Y TABLES Support? A good base library (HDF5). Support for 64-bit in all data addressing. Need to overcome a Python slicing limitation: only 32-bit addresses are supported. Buffered I/O. A LRU cache system for an efficient reuse of objects. Fast indexing and searching capabilities for tables. Francesc Altet P Y TABLES & Family
  • 39. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Which ELD Features Does P Y TABLES Support? A good base library (HDF5). Support for 64-bit in all data addressing. Need to overcome a Python slicing limitation: only 32-bit addresses are supported. Buffered I/O. A LRU cache system for an efficient reuse of objects. Fast indexing and searching capabilities for tables. Francesc Altet P Y TABLES & Family
  • 40. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Why Buffered I/O? Because of speed (what else?): Francesc Altet P Y TABLES & Family
  • 41. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Why a Cache System? 1.- To achieve better open file times: Francesc Altet P Y TABLES & Family
  • 42. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Why a Cache System? 2.- To achieve a conservative usage of the memory: Francesc Altet P Y TABLES & Family
  • 43. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Why Fast Indexing? It is not trifling in terms of time when you have to index tables with more than one billion of rows: Francesc Altet P Y TABLES & Family
  • 44. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Ease of Use Natural naming # access to file:/group1/table table = file.root.group1.table Support for generalized slicing # step means a stride in the slice table[start:stop:step] Support for iterators # get the values in col1 that satisfy the # (1.3 < col3 <= 2.) condition in table col3 = table.cols.col3 [r[’col1’] for r in table.where(1.3 < col3 <= 2.)] Francesc Altet P Y TABLES & Family
  • 45. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Ease of Use Natural naming # access to file:/group1/table table = file.root.group1.table Support for generalized slicing # step means a stride in the slice table[start:stop:step] Support for iterators # get the values in col1 that satisfy the # (1.3 < col3 <= 2.) condition in table col3 = table.cols.col3 [r[’col1’] for r in table.where(1.3 < col3 <= 2.)] Francesc Altet P Y TABLES & Family
  • 46. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Ease of Use Natural naming # access to file:/group1/table table = file.root.group1.table Support for generalized slicing # step means a stride in the slice table[start:stop:step] Support for iterators # get the values in col1 that satisfy the # (1.3 < col3 <= 2.) condition in table col3 = table.cols.col3 [r[’col1’] for r in table.where(1.3 < col3 <= 2.)] Francesc Altet P Y TABLES & Family
  • 47. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Outline 1 An Introduction to the Python Language Facts about Python Scientific Packages An example 2 P Y TABLES Overview Usage Examples P Y TABLES Pro 3 CSTABLES Overview Design goals Examples of Use Francesc Altet P Y TABLES & Family
  • 48. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Supported Objects in P Y TABLES Table: Lets you deal with heterogeneous datasets. Chunked. Enlargeable. Support for nested types. Array: Provides quick and dirty array handling. Not chunked. Non enlargeable. CArray: Provides compressed array support. Chunked. Not enlargeable. EArray: Most general array support. Chunked. Enlargeable. VLArray: Collections of homogeneous data with a variable number of entries. Chunked. Enlargeable. Group: The structural component. Francesc Altet P Y TABLES & Family
  • 49. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro What’s New in P Y TABLES 1.2? Added a new cache for the object tree. Allows a contained use of memory (even with huge trees). Almost instantaneous opening of files (good news for interactive use!). New NetCDF module (contributed by Jeff Whitaker). Provides API emulation for Scientific.IO.NetCDF. netCDF-3 ⇔ HDF5 conversions. tables.NetCDF datasets can be shared over the internet with the OPeNDAP protocol. Plans to write data natively in netCDF-4 format in the future. Francesc Altet P Y TABLES & Family
  • 50. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro What’s New in P Y TABLES 1.2? Added a new cache for the object tree. Allows a contained use of memory (even with huge trees). Almost instantaneous opening of files (good news for interactive use!). New NetCDF module (contributed by Jeff Whitaker). Provides API emulation for Scientific.IO.NetCDF. netCDF-3 ⇔ HDF5 conversions. tables.NetCDF datasets can be shared over the internet with the OPeNDAP protocol. Plans to write data natively in netCDF-4 format in the future. Francesc Altet P Y TABLES & Family
  • 51. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Some Metrics on P Y TABLES 1.2 Core Library ~ 7.5 thousand LOC (Python) ~ 2.8 thousand LOC (Pyrex) ~ 4.0 thousand LOC (C) Test Units ~ 3.1 thousand test units (Python) ~ 23 thousand LOC (Python) Documentation ~ 5.0 thousand lines of on-line doc strings ~ 160 pages of Users’ Guide in PDF (and HTML) Francesc Altet P Y TABLES & Family
  • 52. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Outline 1 An Introduction to the Python Language Facts about Python Scientific Packages An example 2 P Y TABLES Overview Usage Examples P Y TABLES Pro 3 CSTABLES Overview Design goals Examples of Use Francesc Altet P Y TABLES & Family
  • 53. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro What is P Y TABLES P RO? It’s just a regular P Y TABLES but with enhanced features: Improved search speed: Selections in tables with > 1 billion rows will be typically done in less than 1 second. Complex queries: Supports an unlimited combination of conditions. Query optimizer: Queries are analyzed, reordered and classified to get an optimum response time. Support for complex indices: Expressions like col1 + col2*col3 + col4**3 can be indexed and used for selections afterwards. Francesc Altet P Y TABLES & Family
  • 54. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Index Selection Speed Francesc Altet P Y TABLES & Family
  • 55. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Index Selection Speed: The Goal Francesc Altet P Y TABLES & Family
  • 56. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Usage Examples P Y TABLES Pro Current Status for P Y TABLES P RO Improving the query response time. Remains to be done: Complex queries. Query optimizer. Date of release: 2nd quarter 2006 (tentative). Francesc Altet P Y TABLES & Family
  • 57. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use Outline 1 An Introduction to the Python Language Facts about Python Scientific Packages An example 2 P Y TABLES Overview Usage Examples P Y TABLES Pro 3 CSTABLES Overview Design goals Examples of Use Francesc Altet P Y TABLES & Family
  • 58. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use CSTABLES: P Y TABLES Goes Client-Server Francesc Altet P Y TABLES & Family
  • 59. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use Outline 1 An Introduction to the Python Language Facts about Python Scientific Packages An example 2 P Y TABLES Overview Usage Examples P Y TABLES Pro 3 CSTABLES Overview Design goals Examples of Use Francesc Altet P Y TABLES & Family
  • 60. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use Design Goals Concurrency: Allows multiple access to the same file at the same time. Locking system: Avoids corruption of data. High Throughput: Data is transmitted in large blocks. High-speed compressor/decompressor used. Client Cache: Metadata is kept in the client-side when an object is first accessed. Full P Y TABLES API compatibility: Existing P Y TABLES programs can be re-used to access remote files without changing virtually anything. Francesc Altet P Y TABLES & Family
  • 61. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use Concurrency Issues Question: CSTABLES does not provide threading or asynchronous features yet. So, how does it deal with several requests at a time? Answer: Large data read and write requests are split into small chunks. This considerably improves server response time. In addition, CSTABLES provides a lock mechanism that allows applications to explicitly put a lock on a node or on an entire subtree. Different locking access modes: READ, WRITE and ALL Francesc Altet P Y TABLES & Family
  • 62. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use Concurrency Issues Question: CSTABLES does not provide threading or asynchronous features yet. So, how does it deal with several requests at a time? Answer: Large data read and write requests are split into small chunks. This considerably improves server response time. In addition, CSTABLES provides a lock mechanism that allows applications to explicitly put a lock on a node or on an entire subtree. Different locking access modes: READ, WRITE and ALL Francesc Altet P Y TABLES & Family
  • 63. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use Concurrency Issues Question: CSTABLES does not provide threading or asynchronous features yet. So, how does it deal with several requests at a time? Answer: Large data read and write requests are split into small chunks. This considerably improves server response time. In addition, CSTABLES provides a lock mechanism that allows applications to explicitly put a lock on a node or on an entire subtree. Different locking access modes: READ, WRITE and ALL Francesc Altet P Y TABLES & Family
  • 64. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use Client Cache More in Depth CSTABLES caches some of the metadata of the P Y TABLES object tree. When a client makes a change to the metadata, this change is pushed to the other clients’ caches. Easy to control which attributes should be cached and which should not. You should try to cache primarily read-only attributes. Caveat emptor: Caching attributes that are updated very often might generate more traffic than attributes that are not cached at all! Francesc Altet P Y TABLES & Family
  • 65. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use Client Cache More in Depth CSTABLES caches some of the metadata of the P Y TABLES object tree. When a client makes a change to the metadata, this change is pushed to the other clients’ caches. Easy to control which attributes should be cached and which should not. You should try to cache primarily read-only attributes. Caveat emptor: Caching attributes that are updated very often might generate more traffic than attributes that are not cached at all! Francesc Altet P Y TABLES & Family
  • 66. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use Client Cache More in Depth CSTABLES caches some of the metadata of the P Y TABLES object tree. When a client makes a change to the metadata, this change is pushed to the other clients’ caches. Easy to control which attributes should be cached and which should not. You should try to cache primarily read-only attributes. Caveat emptor: Caching attributes that are updated very often might generate more traffic than attributes that are not cached at all! Francesc Altet P Y TABLES & Family
  • 67. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use Client Cache More in Depth CSTABLES caches some of the metadata of the P Y TABLES object tree. When a client makes a change to the metadata, this change is pushed to the other clients’ caches. Easy to control which attributes should be cached and which should not. You should try to cache primarily read-only attributes. Caveat emptor: Caching attributes that are updated very often might generate more traffic than attributes that are not cached at all! Francesc Altet P Y TABLES & Family
  • 68. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use Outline 1 An Introduction to the Python Language Facts about Python Scientific Packages An example 2 P Y TABLES Overview Usage Examples P Y TABLES Pro 3 CSTABLES Overview Design goals Examples of Use Francesc Altet P Y TABLES & Family
  • 69. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use Two Different APIs P Y TABLES API (prefix with csclient -ip=server_IP) import tables fileh = tables.openFile("file.h5") print fileh.root.table.cols.col1[:] fileh.close() CSTABLES API (no need to be prefixed) from cstables.client import client c=client.Session() app=c.connect("your_FQDN_server") fileh=app.openFile("file.h5") print fileh.root.table.cols.col1[:] fileh.close() Francesc Altet P Y TABLES & Family
  • 70. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use Two Different APIs P Y TABLES API (prefix with csclient -ip=server_IP) import tables fileh = tables.openFile("file.h5") print fileh.root.table.cols.col1[:] fileh.close() CSTABLES API (no need to be prefixed) from cstables.client import client c=client.Session() app=c.connect("your_FQDN_server") fileh=app.openFile("file.h5") print fileh.root.table.cols.col1[:] fileh.close() Francesc Altet P Y TABLES & Family
  • 71. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use CSTABLES Status & Availability The main design features are already implemented and working. Beta available (caveat: only works against P Y TABLES 1.0). Focus now is on checking & debugging possible errors, improving the throughput and bettering the Users’ Guide. Future directions: threading, asynchronous communications. Francesc Altet P Y TABLES & Family
  • 72. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use The P Y TABLES Suite Is Getting Shape P Y TABLES The basic layer for the other components. P Y TABLES Pro P Y TABLES with a twist: Complex searches and ultra-fast selections in tables. CSTABLES The client-server P Y TABLES. It supports as well generic HDF5 files. V I TABLES A data viewer for P Y TABLES (and HDF5) files. Francesc Altet P Y TABLES & Family
  • 73. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use The P Y TABLES Suite Is Getting Shape P Y TABLES The basic layer for the other components. P Y TABLES Pro P Y TABLES with a twist: Complex searches and ultra-fast selections in tables. CSTABLES The client-server P Y TABLES. It supports as well generic HDF5 files. V I TABLES A data viewer for P Y TABLES (and HDF5) files. Francesc Altet P Y TABLES & Family
  • 74. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use The P Y TABLES Suite Is Getting Shape P Y TABLES The basic layer for the other components. P Y TABLES Pro P Y TABLES with a twist: Complex searches and ultra-fast selections in tables. CSTABLES The client-server P Y TABLES. It supports as well generic HDF5 files. V I TABLES A data viewer for P Y TABLES (and HDF5) files. Francesc Altet P Y TABLES & Family
  • 75. An Introduction to the Python Language P Y TABLES CSTABLES Summary Overview Design goals Examples of Use The P Y TABLES Suite Is Getting Shape P Y TABLES The basic layer for the other components. P Y TABLES Pro P Y TABLES with a twist: Complex searches and ultra-fast selections in tables. CSTABLES The client-server P Y TABLES. It supports as well generic HDF5 files. V I TABLES A data viewer for P Y TABLES (and HDF5) files. Francesc Altet P Y TABLES & Family
  • 76. An Introduction to the Python Language P Y TABLES CSTABLES Summary Summary Python is a joy for scientific computing. Start using it now! The P Y TABLES suite is designed to work with HDF5 files in an interactive, efficient and, most importantly, easy way. Outlook Working hard to release CSTABLES in the first quarter of 2006. P Y TABLES P RO will come later on (~ 2nd quarter of 2006). It would be nice to produce a parallel version of P Y TABLES (long term goal). Francesc Altet P Y TABLES & Family
  • 77. An Introduction to the Python Language P Y TABLES CSTABLES Summary Thank You! Thanks also to: Elena Pourmal, for inviting us to the Workshop. Frank Baker, for being kind. The HDF Group for pushing forward P Y TABLES. Francesc Altet P Y TABLES & Family