Title: Cosmo'Lab Meeting
1Cosmo.Lab Meeting
- January 16th, 2002
- IRA Bologna
2Agenda
- 10.00 Startup
- 10.00 10.15 Financial and Administrative issues
(E. Rossi) - 10.15 11.00 Tom Oosterloo NFRA presentation
- 11.00 11.15 Coffee Break
- 11.15 11.45 Requirements collection status (C.
Gheller) - 11.45 12.30 Proposed implementation solutions
(L. Calori) - 12.30 13.00 Implementation example 1 C (A.
Germanà) - 13.00 14.00 Lunch
- 14.00 14.30 Implementation example 2 IncrTcl
(C. Gheller-F.Buonomo) - 14.30 16.30 Discussion
3Requirement collection
- End of this phase month 6 (February)
- Coordinated by CINECA
- Expected documentation Requirement and analysis
report - Present status On time !!! (Only NFRA
requirements were missing)
Proposed solutions
- AstroMD architecture
- Programming languages
- Data types
4IRA Radio Sources
The object is to model the structure and the
properties of galactic jets Observations allow
only to get a projected two-dimensional image of
the source. From this information, it is often
difficult to understand the three dimensional
shape and the basic properties and, finally, the
physics of the jet. In order to overcome this
difficulty we want to use theoretical modelling
and visualization, comparing the results to
observations, as follows
5IRA Radio Sources
6IRA - Radio Sources
7IRA Educational
The goal is to implement functionalities which
can be used to teach and present basic concept in
astronomy and to describe new discoveries and
trends in this field of science.
8IRA Educational
9OACT Cosmological simulations
Data coming from cosmological simulations can be
either point-data, that is the position or the
velocity (or other properties, e.g. the mass) of
particles representing a matter element, or
structured data, that is field (scalar or vector,
e.g. mass density or velocity) represented on a
(regular and Cartesian) computational mesh. The
two data types requires different kind of
visualization. In particular, particles are
represented as pixels and fields are visualized
by isosurfaces or by volume rendering
techniques. Two different types of analysis tools
are required. The first ones, that we indicate as
geometric tools, takes direct advantage of the 3D
visualization. They are interactive tools that
allow to perform an intuitive analysis of the
data set. The second are instead quantitative
tools that allow to extract accurate scientific
information. These are, in general, time
consuming algorithms, which have to be run in
background. In this case visualization serves as
a preprocessing selector which allows to find out
regions, hence sub-sets of data, in which the
quantitative analysis can be restricted, with
obvious speed-up of the calculation. Furthermore,
the calculation can be monitored interactively
and stopped as soon as a satisfactory result has
been reached (or, conversely, some problems
emerges).
10OACT Cosmological simulations
11OACT Cosmological simulations
12OACT Cosmological simulations
13IFCTR Galaxy catalogues
In this case the 3D visualization tool is used
mainly to interact with the archives, selecting
regions of space or single objects, retrieve
related data, upgrade the database. Furthermore
it can be interfaced with user provided analysis
applications. Data consists, for each database
element, of a number of parameters, from the 3
spatial coordinates, to the luminosity, the mass
end so on. AstroMD must be able to plot any three
parameters (not only the physical position) and
at the same time other properties (for example
with by the color of the point). Specific care
must be taken to handle spherical coordinates,
that have to be mapped on a cartesian reference
frame. In this case the three dimensional
visualization is extended to any (reasonable)
parameter space, in order to enhance the
possibility for the researcher of finding out and
analysing properties and correlations of
different physical parameters. Support for the
standard FITS file format is required. Specific
care will be dedicated in coupling AstroMD with
databases via SQL queries. Most of the data
associated to this workpackage are in fact stored
in standard databases (Oracle, MySQL) and
therefore it is necessary to provide tools able
to interact easily with them, taking also
advantage of the capacities built in the database
softwares.
14IFCTR Galaxy catalogues
15IFCTR Galaxy catalogues
16Conclusions
1. Overall Architecture all the applications
require the following objects
17Conclusions
2. Data structure
18Conclusions
2.1 Data formats the following formats will be
supported for I/O
possible future support also for HDF standard
19Conclusions
3. Programming languages the choice must take
into account the following requirements
20ITcl Example
source VTK_TCL/vtkInt.tcl include the basic
classessource reader-samp1.itclsource
viewer-samp1.itcl MAIN WINDOWwm title .
"Main Window"wm iconname . "Main Window"wm
geometry . 400x680wm geometry . 00global
nset n 0frame .basebutton .base.b1 -text "New
Variable" -command new_variablepack .base.b1
-fill xpack .base
21ITcl Example
proc new_variable global counter global
n set n expr n 1 puts n
interface frame .basen button .basen.b1
-text "Read" -command "read" button .basen.b2
-text "Show" -command "show" pack .basen.b1
.basen.b2 -side left pack .basen -fill
xproc read global n read_data
readern puts readern get_dimensionproc
show global n set W readern
get_output show_data shown W shown show
22ITcl Example
class read_data define private variables
variable W variable nx variable ny
variable nz variable filename variable
type define constructor and destructor
with default names constructor
define window name set W .string tolower
string trim this initialize private
variables set filename bmdens.pff
set type Float set nx 127 set ny
127 set nz 127 create interface
reader_gui
destructor erase define basic
methods method set_dimension ndum
method set_filename ndum method set_type
ndum method get_dimension method
get_filename method get_type method
get_name method get_output method
read_file method erase private
method reader_gui
23ITcl Example
body read_datareader_gui toplevel
W wm title W "Reader GUI" wm iconname
W "GUI" label W.l1 -text Data Reader
Interface pack W.l1 -side top
frame W.f20 entry W.f20.e1 -textvariable
scope filename -background white label
W.f20.l1 -text "File name" pack W.f20.e1
W.f20.l1 -side left frame W.f24
entry W.f24.e1 -textvariable scope type
-background white label W.f24.l1 -text "Data
type" pack W.f24.e1 W.f24.l1 -side left
pack W.f20 W.f21 W.f22 W.f23 W.f24 -anchor
nw frame W.fr1 button W.fr1.x1 -text
"Read" -command "this read_file" button
W.fr1.x2 -text "Quit" -command "this erase"
pack W.fr1.x1 W.fr1.x2 -side left pack
W.fr1 -fill xbody read_dataerase
destroy Wbody read_dataget_output
return W
24ITcl Example
body read_dataset_dimension ndum set nx
ndumbody read_dataset_filename ndum
set filename ndumbody read_dataset_type
ndum set type ndumbody
read_dataget_dimension return
nxbody read_dataget_filename
return filenamebody read_dataget_type
return typebody read_dataread_file
define reader using vtkImageReader
vtkImageReader readerW readerW SetFileName
filename readerW SetDataScalarTypeTotype
readerW SetDataByteOrderToBigEndian
readerW SetFileDimensionality 3 readerW
SetDataExtent 0 nx 0 nx 0 nx readerW
SetDataOrigin 0.5 0.5 0.5
25ITcl Example
body show_datadefine_variable
convert data to logarithmic (base 10) scale and
define extrema set loge loget
vtkImageMathematics loge loge
SetOperationToLog loge SetInput1 reader
GetOutput log10 Update set range
log10 GetOutput GetScalarRange set
mlog10maxval lindex range 1 set log10minval
lindex range 0 set mlog10minval expr
-log10minval puts "max, min mlog10maxval
mlog10minval" convert to char (0-255)
scale. Required for rendering set log10_0
log10_0t vtkImageMathematics log10_0
log10_0 SetOperationToAddConstant log10_0
SetConstantC mlog10minval log10_0 SetInput1
log10 GetOutput set log_norm expr
255.0/(mlog10maxvalmlog10minval) set fdata
fdatat vtkImageMathematics fdata fdata
SetOperationToMultiplyByK fdata SetConstantK
log_norm fdata SetInput1 log10_0
GetOutput set cdata cdatat puts
"cdata" puts cdata vtkImageCast cdata
cdata SetOutputScalarTypeToUnsignedChar
cdata SetInput fdata GetOutput
class show_data variable W variable t
variable reader variable cdata
constructor W set t this set
reader readerW define_variable
private method define_variable method show
26ITcl Example
body show_datashow Create transfer
functions for opacity and colorvtkPiecewiseFunc
tion opacityTransferFunctiont
opacityTransferFunctiont AddPoint 0 0.0
opacityTransferFunctiont AddPoint 255
0.2vtkColorTransferFunction colorTransferFunctio
nt colorTransferFunctiont AddRGBPoint
0.0 0.0 0.0 0.0 colorTransferFunctiont
AddRGBPoint 64.0 1.0 0.0 0.0
colorTransferFunctiont AddRGBPoint 128.0 0.0
0.0 1.0 colorTransferFunctiont AddRGBPoint
192.0 0.0 1.0 0.0 colorTransferFunctiont
AddRGBPoint 255.0 0.0 0.2 0.0 Create
property, mapper, volumevtkVolumeProperty
volumePropertyt volumePropertyt SetColor
colorTransferFunctiont volumePropertyt
SetScalarOpacity opacityTransferFunctiont vtkR
enderer ren1tvtkRenderWindow renWint
renWint AddRenderer ren1t renWint SetSize
256 256vtkRenderWindowInteractor irent
irent SetRenderWindow renWint add the
volumeren1t AddVolume volumetren1t
SetBackground 0.1 0.2 0.4 Render the
volumerenWint Render