Eclipse science group presentation given at Eclipse Converge and Devoxx 2017 in California. These slides give an overview of projects in the Eclipse Science working group in 2017.
3. Eclipse Advanced Visualization Project
projects.eclipse.org/projects/science.eavp
Visualization is a critical part of
science and engineering projects
and has roles in both setting up
problems and post-processing
results. The input or "construction"
side can include things like
constructing 3D geometries or
volume meshes of physical space
and the post-processing side can
include everything from visualizing
those geometries and meshes to
plotting results to analyzing
images to visualizing real data to
almost everything else
imagineable. There are numerous
technologies for performing these
tasks and most of them, with the
exception of SWT-XY-GRAPH, are
unavailable natively in the Eclipse
ecosystem.
Active Member Companies:
4. Eclipse ChemClipse
projects.eclipse.org/projects/science.chemclipse
Active Member Companies:
Eclipse ChemClipse supports the user to analyse
data acquired from systems used in analytical
chemistry. In particular, chromatography coupled
with mass spectrometry (GC/MS) or flame-
ionization detectors (GC/FID).
• Converter (import and/or export of raw data
sets)
• Classifier (non-destructive methods to extract
characteristic values)
• Filter (destructive methods to optimize the
data sets)
• Peak detection (finding peaks – each peak is
a chemical substance)
• Chromatogram/Peak integration (calculation
of the chromatogram/peak area)
• Identification (identification of each peak
mass spectrum)
• Quantitation (use the data for calibration
issues)
• Reporting (report the results for further
analytical steps)
• Processing (automation of the data handling)
5. Eclipse DAWNSci
projects.eclipse.org/projects/science.dawnsci
“Visualization, Data Slicing, Tools and Python” www.dawnsci.org
Active Member Companies:
DAWNSci is the public API to
DAWN (dawnsci.org). It allows
people customizing DAWN to
interact with a long term
programming interface providing
them with a way to ensure that
their extensions to DAWN work in
the future.
DAWN (DAWNSCI.ORG) Does
• Visualization of Data
• 100’s of formats supported
• Integration of plotting + Python
• Fully Scriptable Approach
• Many Scientific Perspectives
• Online Analysis Tools used
with Data Acquisition
• Integration with Experimental
Definition Database (ISPyB)
6. Eclipse January
projects.eclipse.org/projects/science.january
“Numpy Data Manipulation for Java”
Active Member Companies:
Eclipse January is a set of libraries for handling
numerical data in Java. It is inspired in part by NumPy
and aims to provide similar functionality.
Why use it?
Familiar. Provide familiar functionality, especially to
NumPy users.
Robust. Has test suite and is used in production heavily
at Diamond Light Source.
No more passing double[]. IDataset provide a consistent
object for basing APIs on with significantly improved
clarity over using double arrays or similar.
Optimized. Optimized for speed and getting better all
the time.
Scalable. Allows handling of data sets larger than
available memory with "Lazy Datasets".
Focus on your algorithms. By reusing this library it
allows you to focus on your code.
Taken From: NumpyExamples.java https://github.com/eclipse/january
import org.eclipse.january.dataset.IDataset;
IDataset a = DatasetFactory.createFromObject(new double[]{1,2,3,6,4,5,8,9,7}, 3, 3);
System.out.println("a has rank "+a.getRank());
System.out.println("a has size "+a.getSize());
double val = a.getDouble(-1,-1); // Last element
val = a.getDouble(1,4);
a = Random.rand(new int[]{10, 10}); // Random data different shape
IDataset set = a.getSliceView(new Slice(1,2)); // Entire Row
set = a.getSliceView(new Slice(5)); // First five rows
set = a.getSliceView(new Slice(-5,null)); // Last five rows
set = a.getSliceView(new Slice(0,3), new Slice(4,9)); // Subslice
a = Random.rand(new int[]{21, 10}); // Random data different shape
set = a.getSliceView(new Slice(null,null,2), null); // Every other two
set = a.getSliceView(new Slice(null,null,-1), null); // Reverse order
IDataset first = a.getSlice(new Slice(0,1), null);
IDataset aplus = DatasetUtils.append(a, first, 0); // Append something
IDataset b = DatasetFactory.createFromObject(new
double[]{1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9}, 3, 3);
IDataset d = Maths.multiply(a, b); // a.b
IDataset[] e = LinearAlgebra.calcEigenDecomposition(a); // Eigen
a = Random.rand(new int[]{100, 100}); // Random data different shape
IDataset s = DatasetUtils.sort(a, 0); // Sort row-wise
7. Eclipse Rich Beans
projects.eclipse.org/projects/science.richbeans
“UI Binding for Massive Bean Trees and Undefined Sizes”
Active Member Companies:
Eclipse Rich Beans is a widget set for Science User
Interfaces which automatically binds to data (beans)
using reflection. The binding layer is more flexible than
other technologies in the Eclipse Eco-system because it
scales to large complex bean trees. For instance it
provides widgets for editing lists of beans where a bean
in the list contains thousands of data points of
information.
• List Support
• Unlimited Nesting Supported
• Wide range of data entry widgets based on SWT
• Scalable to large data trees
• Simple to use OSGi service
• Easy to reuse in any project
• Low dependency design
UI BEAN
public class ExampleBean {
private List<ExampleItem> items;
//…
public class ExampleItem {
private String itemName;
private ItemChoice choice = ItemChoice.XY;
private Double x,y;
private double r,theta;
public enum ItemChoice {
XY, POLAR;
public static Map<String, ItemChoice> names() {
final Map<String,ItemChoice> ret = new HashMap<String,ItemChoice>(2);
ret.put("X-Y Graph", XY);
ret.put("Polar", POLAR);
return ret;
}
}
//…
private List<ExampleItem> items;
//… Example has 2000 items
public class ExampleItem {
private String itemName;
private ItemChoice choice = ItemChoice.XY;
private Double x,y;
private double r,theta;
private double d0, d1,d2,d3,d4,d5,d6,d7,d8, d9;
private double d10, d11,d12,d13,d14,d15,d16,d17,d18, d19;
private double d20, d21,d22,d23,d24,d25,d26,d27,d28, d29;
private double d30, d31,d32,d33,d34,d35,d36,d37,d38, d39;
private double d40, d41,d42,d43,d44,d45,d46,d47,d48, d49;
private double d50, d51,d52,d53,d54,d55,d56,d57,d58, d59;
private double d60, d61,d62,d63,d64,d65,d66,d67,d68, d69;
private double d70, d71,d72,d73,d74,d75,d76,d77,d78, d79;
private double d80, d81,d82,d83,d84,d85,d86,d87,d88, d89;
private double d90, d91,d92,d93,d94,d95,d96,d97,d98, d99;
//… Example has 100 fields
8. Eclipse Scanning
projects.eclipse.org/projects/science.scanning
“Making Moving Scientific Instruments and Writing Data EASY”
Active Member Companies:
Eclipse Scanning is a project for scanning
scientific instruments and writing data to
HDF5 files. It is designed to be integrated
with common control systems such as
EPICS and TANGO but it makes no
assumptions about how individual devices
are moved.
• Wide Range of Scanning Paths
• OSGi Design
• True nD unlimited degrees of freedom
• Fast and Multi-threaded
• Out performs custom Python
acquisition scripts
• Eclipse January Supported
• Java 8+
• HDF5 NeXus Compliant
• Easy to reuse in any project
• Low dependency design
9. Eclipse StatET
projects.eclipse.org/projects/science.statet
“Tooling for the R language”
Active Member Companies:
Eclipse StatET is an Eclipse-based IDE for
R. It offers a set of mature tools for R
coding and package building. This
includes:
• a fully integrated R console
• R script editors
• an integrated R Graphics view
• an object browser to explore the
objects R has in memory
• an integrated R Help system
• functionality to interact with multiple
local and remote installations of R
• a visual debugger for R
• editors and document processing
support for Sweave/knitr and
Rmarkdown documents
• support for running R CMD tools as
External launch configurations
Open Analytics
10. Eclipse TeXlipse
projects.eclipse.org/projects/science. texlipse
“Because LaTeX + Eclipse = Good”
Active Member Companies:
LaTeX is a typesetting system that is widely used by the science
community for document preparation and publications. The TeXlipse
project provides an Eclipse extension to support LaTex projects, so
that document preparation can be incorporated into the normal Eclipse
development activities. General LaTeX users will also find the
advanced editing and automatic document generation features of
TeXclipse provide a compelling alternative to other LaTeX
environments. TeXclipse supports the following features:
• Syntax/semantic editing of LaTeX documents
• Code folding
• Error annotations
• Content assist
• Line wrapping
• Table editor
• BibTeX editing support
• F3 navigation
• File and document outline
• Templates
• Build support (document typesetting)
• Spell checking
• Menu support for common LaTeX symbols
• BibTeX and BibLaTeX support
• Integration of PDF viewers
• Bibsonomy integration
11. Eclipse Triquetrum
projects.eclipse.org/projects/science. triquetrum
“Ptolemy-based Algorithms for Eclipse”
Active Member Companies:
Eclipse Triquetrum delivers an open platform for managing and
executing scientific workflows. The goal of Triquetrum is to support a
wide range of use cases, ranging from automated processes based
on predefined models, to replaying ad-hoc research workflows
recorded from a user's actions in a scientific workbench UI. It will
allow to define and execute models from personal pipelines with a
few steps to massive models with thousands of elements.
The integration of a workflow system in a platform for scientific
software can bring many benefits :
• the steps in scientific processes are made explicitly visible in the
workflow models (i.o. being hidden inside program code).
Such models can serve as a means to present, discuss and share
scientific processes in communities with different skills-sets
• allow differentiating for different roles within a common tools set
: software engineers, internal scientists, visiting scientists etc
• promotes reuse of software assets and modular solution design
• technical services for automating complex processes in a
scalable and maintainable way
• crucial tool for advanced analytics on gigantic datasets
• integrates execution tracing, provenance data, etc.
12. The Eclipse Integrated Computational
Environment
projects.eclipse.org/projects/science.ice Active Member Companies:
The Eclipse Integrated Computational Environment (ICE)
addresses the usability needs of the scientific and
engineering community for the Big Four modeling and
simulation activities. The focus of the ICE is to develop an
easily extended and reusable set of tools that can be
used by developers to create rich user interfaces for their
modeling and simulation products. Custom widgets and
data structures with well-defined interfaces and high-
coverage unit tests are provided for plugin developers.
Plugins based on the ICE tools are also developed and
released with the ICE for codes that the developers use
and the community contributes to the extent that
resources allow. The idea is that the tools should be
available for developers to do what they do and the
deployment mechanism should be ready and waiting
when they are finished.
Each of the big four tasks presents unique challenges, but
much of the capability required can be handled by
extensions to the existing Eclipse tools.