GNU Data Language (GDL) - a free and open-source implementation of IDLR©
Sylwester Arabas1, Marc Schellens*, Alain Coulais2, Joel Gales3, Peter Messmer4, and many other volunteers all around the world**
*: Marc is the primary author and the maintainer of GDL **: a list of contributors is available at the project’s website (http://gnudatalanguage.sf.net/) and in the AUTHORS file of the GDL tarballs and packages1: Institute of Geophysics, University of Warsaw, Poland; 2: LERMA, CNRS and Observatoire de Paris, Paris, France; 3: NASA Goddard Space Flight Center, Greenbelt, Maryland, USA; 4: Tech-X Corporation, Boulder, Colorado, USA
About GDL
GNU Data Language (GDL) is developed with the aim of providingan open-source drop-in replacement for the ITTVIS’s Interactive DataLanguage (IDL). It is free software developed by an international teamof volunteers led by Marc Schellens - the project’s founder (a listof contributors is available on the project’s website). GDL with its libraryroutines is designed as a tool for numerical data analysis andvisualisation. As its proprietary counterparts (IDL and PV-WAVE),GDL is used particularly in geosciences and astronomy. GDL isdynamically-typed, vectorized and has object-oriented programmingcapabilities. The library routines handle numerical calculations, datavisualisation, signal/image processing, interaction with host OS and datainput/output. GDL supports several data formats such as netCDF,HDF4, HDF5, GRIB, PNG, TIFF, DICOM, etc. Graphical outputis handled by X11, PostScript, SVG or z-buffer terminals, the last oneallowing output to be saved in a variety of raster graphics formats. Whilestill being in its beta-stage of development (see Coulais et al., 2009),GDL proved to be a usable tool both for research (Jaffey et al., 2008,2009) and teaching purposes (outlined hereby). GDL is released underthe GNU GPL licence - you are free to use it, to share it with anyone,to modify and improve it, and to share the modified version with anyone.Contributions and users’ feedback are welcome!
References
Coulais, A., M. Schellens, J. Gales, S. Arabas, M. Boquien, P. Chanial, P. Messmer,D. Fillmore, O. Poplawski, S. Maret, G. Marchal, N. Galmiche, and T. Mermet, 2009:Status of GDL - GNU Data Language. Astronomical Data Analysis Software andSystems XIX , ASP Conference Series, Sapporo, Japan.http://aramis2.obspm.fr/coulais/.
Jaffey, A., M. Cheung, and A. Kobashi, 2008: Online data analysis using Web GDL.AGU Fall Meeting 2008 , San Francisco, USA. http://www.agu.org/meetings/fm08/.
Jaffey, A., A. Kobashi, and M. Cheung, 2009: GPU acceleration of the scientific dataanalysis package GDL. NVIDIA Research Summit 2009 , San Jose, USA.http://www.nvidia.com/object/gtc 2009 archive.html.
Acknowledgements
Presentation of the poster during the EGU conference in Vienna was supported by theEuropean Geosciences Union (through the Young Scientist’s Travel Award forEuropeans) and the European Commission’s 6th FP IP EUCAARI (European Integratedproject on Aerosol Cloud Climate and Air Quality interactions, no. 036833-2). Thanksare due all volunteers who helped in the development of GDL by providing their feedbackin the form of patches, bug reports, support requests and comments. Development ofGDL is hosted at SourceForge. The LIDAR figure was provided by Michał Piądłowski.
Disclaimer
GDL is not an official GNU package (yet). IDL is a registered trademark of ITT VisualInformation Solutions (http://www.ittvis.com/).
Dependencies and useful libraries (all free & open)
GDL is an incremental compiler with integrated debugging facilities. It is written in C++ using theANTLR language-recognition framework. Extensions to GDL can be written in C++, GDL, andPython. Most of the library routines are implemented as interfaces to open-source libraries:
GNUScientific Library
(GSL)
Terence Parr's
ANTLR
C++STL, GCC
OpenMP(GCC >4.2)
UNIDATA's
netCDF
HDFGroup's
HDF4
ECMWF's
GRIB API
HDFGroup's
HDF5
ImageMagick's
Magick++
RobbieBarnett 's
GDLffDICOM
free, open & libre:
free & open:
MIT's
FFTW
PythonPython
wxWidgets
Paul Wessel's
GSHHS
PLplot
Gerald I. Evenden's
libproj4
UNIDATA's
UDUNITS
Matthew Craig's
TeXtoIDL
(optional)
(mandatory)
readlinezlib...
GNUautotools
(for development only)
Craig Markwardt's
MPFITcurve fitt ing, function
minimi-zation
2D & 3D plots, contours, surfaces, text
annotations etc
NASA's
Astron libincl. FITS IO
Craig Markwardt's
CMSVLIBIDL's SAVE
files I/O
calling Python code from GDL &
GDL as a Python module
shorelines etc
simple linear algebra, random numbers, histograms, interpolation,
splines, root-finding, physical constants catalogue, wavelets,
etc
(optional)
(IDL-written librariesfunctional under GDL)
e.g.
multithreadedmatrix
op.
grammar descriptionparsers
Example usage of GDL for classroom work on data analysis
GDL proved to be a useful tool for classroom work on dataanalysis. In 2010 it was used for the second time as a data-analysisenvironment during a meteorological-data processing coursetaught at the Institute of Geophysics, University of Warsaw. Thecourse covers hands-on training in handling of scientific data sets.GDL is used for reading GRIB, netCDF & HDF files, andperforming basic data analysis and visualisation tasks.
GDL plotting weather-forecast map from aGRIB file with NOAA GFS model output.
GDL used for analyzing LIDAR data (readingnetCDF files, producing PostScript plots) onLinux, using the IDLWAVE mode for Emacs.
GDL used as a part of a web-interface forcontrolling 2D fluid flow simulation and
visualizing the output (reading netCDF filesand outputting SVG plots).
GDL-generated PostScript plot of a Fourierspectrum in a LaTeX-generated PDF file.
GDL compressing weather-radar imagesusing truncated wavelet approximation.
GDL used for demonstrating Kalmanfiltering on randomly-generated signal.
GDL displaying MODIS satellite image(stored in a HDF file) on multiple X11
windows - using a true-color RGBcomposite, and using separate channels.
Supported platforms and availability of pre-compiled/pre-configured packages
Packaged versions of GDL are available for several Linux distributions(incl. Fedora, Gentoo and Debian) and Mac OS X (e.g. via Macports andFink). The source code (available at http://gnudatalanguage.sf.net/)compiles on other UNIX systems, including BSD, OpenSolaris. TM
TM
Poster presented at the European Geosciences Union General Assembly 2010, May 2010, Vienna, Austria (ESSI1 session: Earth & Space Science Informatics / International Geoscience Informatics Partnerships, Projects, and Collaboration Technologies)