DataMelt
Example DataMelt histogram and function Example DataMelt histogram and function | |
Initial release | 2005 (initial name JHepWork) |
---|---|
Stable release | 2.4
/ April 2019 |
Written in | Java |
Engine | |
Type | Data analysis |
License | Open source (LGPL, GPL and similar) |
Website | jwork |
Search DataMelt on Amazon.
DataMelt, or DMelt, is a computation and visualization environment[1][2] offering an interactive framework for scientific computation, data analysis and data visualization. It is designed for scientists, engineers and students. DataMelt is multiplatform since it is written in Java, thus it runs on any operating system where the Java virtual machine can be installed. The program is designed for statistical data analysis, curve fitting, data-mining algorithms, numeric computations and interactive scientific plotting in 2D and 3D.
DataMelt uses high-level programming languages, such as Jython, Apache Groovy, JRuby, but Java coding can also be used to call DataMelt numerical and graphical libraries [2]. Typical examples will be shown below. Scripts and Java code (in case of the Java programming) can be run either in a GUI editor of DataMelt or as batch programs. The graphical libraries of DataMelt can be used to create applets. All charts (or "Canvases") used for data representation can be embedded into web browser. DataMelt can be used[2] for analysis of large numerical data volumes, data mining, statistical data analysis and mathematics.
History[edit]
DataMelt has its roots in particle physics under the name jHepWork project[3][4]. The initial version was released in 2005 at the DESY laboratory in Germany. Later at was improved at the Argonne National Laboratory for studies in particle physics using the Java software concept for International Linear Collider project developed at SLAC. Later versions of jHepWork were modified for general public use (for scientists, engineers, students for educational purpose) since the International Linear Collider project has stalled. The main source of the jHepWork program is the book "Scientific Data analysis using Jython Scripting and Java" [5] which discusses data-analysis methods using Java and Jython scripting. The string "HEP" in the project name "jHepWork" abbreviates "High-Energy Physics". But due to a wide popularity outside this area of physics, it was renamed to ScaVis (Scientific Computation and Visualization Environment) in 2013, and became a general-purpose community-supported project. [6] This project existed for 3 years before it was renamed to DataMelt (or, in short, DMelt)[1][2]. DataMelt is hosted by the jWork.ORG portal[7].
Documentation[edit]
DataMelt runs on Windows, Linux, Mac and the Android platforms (the package for the Android is called AWork)[2]. Description of how to run this package on each platform is included in the installation package. In 2018, the DataMelt web page of this project contained about 600 examples written in Jython, Java, Groovy, JRuby, covering a number of fields, from general mathematics to data mining and data visualization. The Java API documentation includes the description of more than 40,000 Java classes. In addition, there is a wiki documentation. The documentation includes certain restrictions for general public due to the proprietorial nature of the documentation project.
License terms[edit]
The core source code of the numerical and graphical libraries is licensed by the GNU General Public License. The interactive development environment (IDE) used by DataMelt has some restrictions for commercial usage since language files, documentation files, examples, installer, code-assist databases, interactive help are licensed by the creative-common license. Full members of the DataMelt project have several benefits, such as: the license for commercial usage, access to the source repository, an extended help system, a user script repository and an access to the complete documentation.
Reviews[edit]
DataMelt and its earlier versions, SCaVis (2013-2015) and JHepWork (2005-2013), which are still available from the jWork.ORG archive repository.[8], are described in these articles:.[4][6] [3] [9]
The program was compared with other similar frameworks in these resources. The DataMelt (2015-), a new development of the JHepWork and SCaVis programs. Comparisons of DataMelt with other popular packages for statistical and numeric analysis are given in these resources [10] [11]. According to more recent surveys of online articles and blogs on data science, DataMelt is among popular data-analysis packages prior 2019[12]. This is also supported by this article-review[13]
Examples[edit]
Jython scripts[edit]
Here is an example of how to show 2D bar graphs by reading a CVS file downloaded from the World Bank web site.
from jhplot.io.csv import *
from java.io import *
from jhplot import *
d = {}
reader = CSVReader(FileReader("ny.gdp.pcap.cd_Indicator_en_csv_v2.csv"));
while True:
nextLine = reader.readNext()
if nextLine is None:
break
xlen = len(nextLine)
if xlen < 50:
continue
d[nextLine[0]] = float(nextLine[xlen-2]) # key=country, value=DGP
c1 = HChart("2013",800,400)
#c1.setGTitle("2013 Gross domestic product per capita")
c1.visible()
c1.setChartBar()
c1.setNameY("current US $")
c1.setNameX("")
c1.setName("2013 Gross domestic product per capita")
name1 = "Data Source: World Development Indicators"
set_value = lambda name: c1.valueBar(d[name], name, name1)
set_value(name="Russia")
set_value(name="Poland")
set_value(name="Romania")
set_value(name="Bulgaria")
set_value(name="Belarus")
set_value(name="Ukraine")
c1.update()
The execution of this script plots a bar chart in a separate window. The image can be saved in a number of formats.
Here is another simple example which illustrates how to fill a 2D histogram and display it on a canvas. The script also creates a figure in the PDF format. This script illustrates how to glue and mix the native Java classes (from the package java.util) and DataMelt classes (the package jhplot) inside a script written using the Python syntax.
from java.util import Random
from jhplot import *
c1 = HPlot3D("Canvas") # create an interactive canvas
c1.setGTitle("Global title")
c1.setNameX("X")
c1.setNameY("Y")
c1.visible()
c1.setAutoRange()
h1 = H2D("2D histogram", 25, -3.0, 3.0, 25, -3.0, 3.0)
rand = Random()
for i in range(200):
h1.fill(rand.nextGaussian(), rand.nextGaussian())
c1.draw(h1)
c1.export("jhplot3d.eps") # export to EPS Vector Graphics
This script can be run either using DataMelt IDE or using a stand-alone Jython after specifying classpath to DataMelt libraries. The output is shown below:
Groovy scripts[edit]
The same example can also be coded using the Groovy programming language which is supported by DataMelt.
import java.util.Random
import jhplot.*
c1 = new HPlot3D("Canvas") // create an interactive canvas
c1.setGTitle("Global title")
c1.setNameX("X")
c1.setNameY("Y")
c1.visible()
c1.setAutoRange()
h1 = new H2D("2D histogram",25,-3.0, 3.0,25,-3.0, 3.0)
rand = Random()
(1..200).each{ // or (0..<200).each{
// or Java: for (i=0; i<200; i++){
// if argument is required, you cann access it through "it" inside the loop:
// (0..<200).each{ println "step: ${it+1}" }
h1.fill(rand.nextGaussian(),rand.nextGaussian())
}
c1.draw(h1);
c1.export("jhplot3d.eps") // export to EPS Vector Graphics
Groovy is better integrated with Java and can be a factor three faster for long loops over primitives compared to Jython.
References[edit]
- ↑ 1.0 1.1 Numeric Computation and Statistical Data Analysis on the Java Platform (Book). S.V.Chekanov, Springer, (2016) ISBN 978-3-319-28531-3 Search this book on ., 700 pages, [1]
- ↑ 2.0 2.1 2.2 2.3 2.4 DataMelt: Free Computation and Visualization Environment. Author: Moaaz Aldesoky. Medevel.Com article .(retrieved Aug 2019) [2]
- ↑ 3.0 3.1 HEP data analysis using jHepWork and Java. Proceedings of the HERA-LHC workshop (2007-2008), DESY-CERN [3]
- ↑ 4.0 4.1 Data Analysis and Data Mining Using Java, Jython and jHepWork. Archived article. 2010. Oracle.com. [4]
- ↑ Scientific Data analysis using Jython Scripting and Java. Book. By S.V.Chekanov, Springer-Verlag, ISBN 978-1-84996-286-5 Search this book on ., [5]
- ↑ 6.0 6.1 SCaVis (previous name of DataMelt)– Werkbank für technisch-wissenschaftliche Berechnungen und Visualisierungen mit Java und Jython. by Rohe Klaus. Java SPEKTRUM. (in German) volume 5 (2013) 26-28 [6]
- ↑ jWork.ORG Community Portal focused on Java scientific software. [7]
- ↑ DataMelt project releases. [8]
- ↑ Suitability analysis of data mining tools and methods. [9]. S.Kovac, Bachelor's thesis (in English), jHepWork is reviewed on page 39-42, Masaryk University
- ↑ Comparative Analysis of Information Extraction Techniques for Data Mining, by Amit Verma et al. Indian Journal of Science and Technology, Vol 9, March 2016 [10]
- ↑ Brief Review of Educational Applications Using Data Mining and Machine Learning, [11], by A. Berenice Urbina Nájera, Jorgede la Calleja Mora, Redie ISSN 1607-4041. Revista Electrónica de Investigación Educativa, 19(4), 84-96
- ↑ Popularity of software programs for data science using recent reviews, Article (Sep 2018), T.Smalzer (retrieved in 2019), [12]
- ↑ Evaluation and comparison of open source software suites for data mining and knowledge discovery, by Abdulrahman H. Altalhi, J. M. Luna, M. A. Vallejo, S. Ventura, Wires/Willey, DOI: 10.1002/widm.1204 (2017), [13]
This article "DataMelt" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:DataMelt. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.