Fusión de datos | |
---|---|
Desarrollador | S.V.Chekanov _ |
Escrito en | Java |
Sistema operativo | Unix , Linux , OS X , Microsoft Windows |
Primera edición | 2005 (nombre inicial JHepWork) |
plataforma de hardware | máquina virtual de Java |
ultima versión | 2.4 (febrero de 2019) |
Licencia | Código abierto (LGPL, GPL y similares) |
Sitio web | jwork.org/dmelt/ |
DataMelt (o DMelt para abreviar ) es un programa gratuito para computación científica [1] [2] . DataMelt es un entorno interactivo para computación, análisis y visualización de datos y aprendizaje automático. El programa DataMelt está diseñado para científicos, ingenieros y estudiantes. DataMelt es multiplataforma porque está escrito en Java , por lo que se ejecuta en cualquier sistema operativo donde se pueda instalar una máquina virtual Java. El programa está diseñado para análisis de datos estadísticos, ajuste de curvas, algoritmos de análisis de datos, cálculos numéricos, aprendizaje automático y trazado en 2D y 3D. DataMelt utiliza lenguajes de programación de alto nivel como Jython , JRuby . Java también se puede utilizar para llamar a las bibliotecas gráficas y numéricas de DataMelt.
DataMelt tiene su origen en la física de partículas , donde la minería de datos es la principal preocupación. Fue creado como un proyecto jHepWork en 2005 y originalmente fue escrito para el análisis de datos para físicos de partículas en el laboratorio DESY en Alemania. Posteriormente se mejoró en el Laboratorio Nacional de Argonne para la investigación de física de partículas [3] utilizando el concepto de software Java para el proyecto International Linear Collider , desarrollado en SLAC . Las versiones posteriores de jHepWork se han modificado para uso general (científicos, ingenieros, estudiantes con fines educativos) desde que se detuvo el proyecto International Linear Collider. En 2013, jHepWork pasó a llamarse DataMelt y se convirtió en un proyecto de propósito general respaldado por la comunidad. La principal fuente de referencia es el libro Analyzing Scientific Data Using Jython Scripting and Java. [4] que analiza las técnicas de análisis de datos utilizando scripts de Java y Jython . Esto también se discutió más tarde en la revista Java alemana SPEKTRUM. [5] . La cadena "HEP" en el nombre del proyecto "jHepWork" es la abreviatura de "Física de alta energía". Pero debido a su gran popularidad fuera de esta área de la física, ha sido rebautizado como SCaViS ( entorno informático 'C' científico ' S' y entorno de uso 'Vis' ). Este proyecto duró 3 años antes de ser renombrado DataMelt (o DMelt para abreviar).
DataMelt se ejecuta en las plataformas Windows, Linux, Mac y Android . El paquete de Android se llama AWork.
DataMelt y sus versiones anteriores, SCaVis (2013-2015) y JHepWork (2005-2013), que aún están disponibles en el repositorio de archivos de DataMelt , se analizan en estos artículos: [6] [7] [8] [9] El programa se comparó con otros programas similares en estos recursos [10] [11] [12] .
DataMelt (2015-), es un nuevo desarrollo de los programas JHepWork y SCaVis. Estos recursos comparan DataMelt con otros paquetes populares de análisis numérico y estadístico. [13] [14] [15] [16] . Según revisiones más recientes de artículos y blogs en línea, DataMelt es uno de los programas de análisis de datos más populares [17] [18] . .
Aquí hay un ejemplo de cómo mostrar histogramas 2D leyendo un archivo CVS descargado del sitio web del Banco Mundial .
desde jhplot.io.csv importar * desde java.io importar * desde jhplot importar * d = {} lector = CSVReader ( FileReader ( "ny.gdp.pcap.cd_Indicator_en_csv_v2.csv" )); while True : nextLine = lector . readNext () si nextLine es None : break xlen = len ( nextLine ) if xlen < 50 : continue d [ nextLine [ 0 ]] = float ( nextLine [ xlen - 2 ]) # clave=país, valor=DGP c1 = GráficoH ( "2013" , 800 , 400 ) #c1.setGTitle("2013 Producto interno bruto per cápita") c1 . visible () c1 . setChartBar () c1 . setNameY ( "US$ actuales" ) c1 . establecerNombreX ( "" ) c1 . setName ( "Producto interno bruto per cápita de 2013" ) name1 = "Fuente de datos: Indicadores de desarrollo mundial" set_value = nombre lambda : c1 . valueBar ( d [ nombre ], nombre , nombre1 ) set_value ( nombre = "Rusia" ) set_value ( name = "Polonia" ) set_value ( name = "Rumanía" ) set_value ( name = "Bulgaria" ) set_value ( name = "Bielorrusia" ) set_value ( name = "Ucrania" ) c1 . actualizar ()Cuando se ejecuta este script, el histograma se muestra en una ventana separada. La imagen se puede guardar en varios formatos.
Aquí hay otro ejemplo simple que ilustra cómo llenar un gráfico de barras 2D y mostrarlo en un lienzo. La secuencia de comandos también crea una forma de PDF . Esta secuencia de comandos ilustra cómo unir y mezclar clases Java nativas (del paquete java.util) y clases DataMelt (del paquete jhplot) dentro de una secuencia de comandos escrita con la sintaxis de Python.
desde java.util import Aleatorio desde jhplot import * c1 = HPlot3D ( "Lienzo" ) # crear un lienzo interactivo c1 . setGTitle ( "Título global" ) c1 . establecerNombreX ( "X" ) c1 . establecerNombreY ( "Y" ) c1 . visible () c1 . establecer rango automático () h1 = H2D ( "histograma 2D" , 25 , - 3,0 , 3,0 , 25 , - 3,0 , 3,0 ) rand = aleatorio () para i en el rango ( 200 ): h1 . relleno ( rand . nextGaussian (), rand . nextGaussian ()) c1 . dibujar ( h1 ) c1 . exportar ( "jhplot3d.eps" ) # exportar a gráficos vectoriales EPSEste script se puede ejecutar con el IDE de DataMelt o con Jython independiente después de especificar el classpath para las bibliotecas de DataMelt.