Acknowledgements
The contributor credits for ERDDAP™ is now on a separate page. ERDDAP™ is a product of the NOAA NMFS SWFSC ERD.
Bob Simons is the original main author of ERDDAP™ (the designer and software developer who wrote the ERDDAP-specific code). The starting point was Roy Mendelssohn's (Bob's boss) suggestion that Bob turn his ConvertTable program (a small utility which converts tabular data from one format to another and which was largely code from Bob's pre-NOAA work that Bob re-licensed to be open source) into a web service.
It was and is Roy Mendelssohn's ideas about distributed data systems, his initial suggestion to Bob, and his ongoing support (including hardware, network, and other software support, and by freeing up Bob's time so he could spend more time on the ERDDAP™ code) that has made this project possible and enabled its growth.
The ERDDAP-specific code is licensed as copyrighted open source, with NOAA holding the copyright. See the ERDDAP™ license.
ERDDAP™ uses copyrighted open source, Apache, LGPL, MIT/X, Mozilla, and public domain libraries and data.
ERDDAP™ does not require any GPL code or commercial programs.
The bulk of the funding for work on ERDDAP™ has come from NOAA, in that it paid Bob Simons' salary. For the first year of ERDDAP™, when he was a government contractor, funding came from the NOAA CoastWatch program, the NOAA IOOS program, and the now defunct Pacific Ocean Shelf Tracking (POST) program.
Much credit goes to the many ERDDAP™ administrators and users who have made suggestions and comments which have led to many improvements in ERDDAP. Many are mentioned by name in the List of Changes. Thank you all (named and unnamed) very much. Thus, ERDDAP™ is a great example of User-Driven Innovation, where product innovation often comes from consumers (ERDDAP™ users), not just the producers (ERDDAP™ developers).
Here is the list of software and datasets that are in the ERDDAP™ distribution. We are very grateful for all of these. Thank you very much.
[Starting in 2021, it has become almost impossible to properly list all of the sources of code for ERDDAP™ because a few of the libraries we use (notably netcdf-java and especially AWS) in turn use many, many other libraries. All of the libraries that ERDDAP™ code calls directly are included below, as are many of the libraries that the other libraries call in turn. If you see that we have omitted a project below, please let us know so we can add the project below and give credit where credit is due.]
Overview
ERDDAP™ is a Java Servlet program. At ERD, it runs inside of a Tomcat application server (license: Apache), with an Apache web server (license: Apache), running on a computer using the Red Hat Linux operating system (license: GPL).
Datasets
The data sets are from various sources. See the metadata (in particular the "sourceUrl", "infoUrl", "institution", and "license") for each dataset. Many datasets have a restriction on their use that requires you to cite/credit the data provider whenever you use the data. It is always good form to cite/credit the data provider. See How to Cite a Dataset in a Paper.
CoHort Software
The com/cohort classes are from CoHort Software (https://www.cohortsoftware.com) which makes these classes available with an MIT/X-like license (see classes/com/cohort/util/LICENSE.txt).
CoastWatch Browser
ERDDAP™ uses code from the CoastWatch Browser project (now decomissioned) from the NOAA CoastWatch West Coast Regional Node (license: copyrighted open source). That project was initiated and managed by Dave Foley, a former Coordinator of the NOAA CoastWatch West Coast Regional Node. All of the CoastWatch Browser code was written by Bob Simons.
OPeNDAP
Data from OPeNDAP servers are read with Java DAP 1.1.7 (license: LGPL).
NetCDF-java
NetCDF files (.nc), GMT-style NetCDF files (.grd), GRIB, and BUFR are read and written with code in the NetCDF Java Library (license: BSD-3) from Unidata.
Software Included in the NetCDF Java .jar:
- slf4j
The NetCDF Java Library and Cassandra need slf4j from the Simple Logging Facade for Java project. Currently, ERDDAP™ uses the slf4j-simple-xxx.jar renamed as slf4j.jar to meet this need. (license: MIT/X).
- JDOM
The NetCDF Java .jar includes XML processing code from JDOM (license: Apache), which is included in the netcdfAll.jar.
- Joda
The NetCDF Java .jar includes Joda for calendar calculations (which are probably not used by ERDDAP). (license: Apache 2.0).
- Apache
The NetCDF Java .jar includes .jar files from several Apache projects:
commons-codec,
commons-discovery,
commons-httpclient,
commons-logging
HttpComponents,
(For all: license: Apache)
These are included in the netcdfAll.jar.
- Other
The NetCDF Java .jar also includes code from: com.google.code.findbugs, com.google.errorprone, com.google.guava, com.google.j2objc, com.google.protobuf, edu.ucar, org.codehaus.mojo, com.beust.jcommander, com.google.common, com.google.re2j, and com.google.thirdparty. (Google uses Apache and BSD-like licenses.)
SGT
The graphs and maps are created on-the-fly with a modified version of NOAA's SGT (was at https://www.pmel.noaa.gov/epic/java/sgt/, now discontinued) version 3 (a Java-based Scientific Graphics Toolkit written by Donald Denbo at NOAA PMEL) (license: copyrighted open source (was at https://www.pmel.noaa.gov/epic/java/license.html)).
Walter Zorn
Big, HTML tooltips on ERDDAP's HTML pages are created with Walter Zorn's wz_tooltip.js (license: LGPL).
Sliders and the drag and drop feature of the Slide Sorter are created with Walter Zorn's wz_dragdrop.js (license: LGPL).
openPDF
The .pdf files are created with openpdf, a free Java-PDF library.
GSHHS
The shoreline and lake data are from GSHHS -- A Global Self-consistent, Hierarchical, High-resolution Shoreline Database (license: GPL) and created by Paul Wessel and Walter Smith.
WE MAKE NO CLAIM ABOUT THE CORRECTNESS OF THE SHORELINE DATA THAT COMES WITH ERDDAP™ -- DO NOT USE IT FOR NAVIGATIONAL PURPOSES.
GMT pscoast
The political boundary and river data are from the pscoast program in GMT, which uses data from the CIA World Data Bank II (license: public domain).
WE MAKE NO CLAIM ABOUT THE CORRECTNESS OF THE POLITICAL BOUNDARY DATA THAT COMES WITH ERDDAP.
ETOPO
The bathymetry/topography data used in the background of some maps is the ETOPO1 Global 1-Minute Gridded Elevation Data Set (Ice Surface, grid registered, binary, 2 byte int: etopo1_ice_g_i2.zip) (license: public domain), which is distributed for free by NOAA NGDC.
WE MAKE NO CLAIM ABOUT THE CORRECTNESS OF THE BATHYMETRY/TOPOGRAPHY DATA THAT COMES WITH ERDDAP. DO NOT USE IT FOR NAVIGATIONAL PURPOSES.
JavaMail
Emails are sent using code in mail.jar from Oracle's JavaMail API (license: COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.1).
JSON
ERDDAP™ uses json.org's Java-based JSON library to parse JSON data (license: copyrighted open source).
PostgrSQL
ERDDAP™ includes the PostGres JDBC driver (license: BSD). The driver is Copyright (c) 1997-2010, PostgreSQL Global Development Group. All rights reserved.
Lucene
ERDDAP™ use code from Apache Lucene. (license: Apache) for the "lucene" search engine option (but not for the default "original" search engine).
commons-compress
ERDDAP™ use code from Apache commons-compress. (license: Apache).
JEXL
ERDDAP™ support for evaluating expressions and scripts in <sourceNames>'s relies on the Apache project's: Java Expression Language (JEXL) (license: Apache).
Cassandra
ERDDAP™ includes Apache Cassandra's cassandra-driver-core.jar (license: Apache 2.0).
Cassandra's cassandra-driver-core.jar requires (and so ERDDAP™ includes):
- guava.jar (license: Apache 2.0).
- lz4.jar (license: Apache 2.0).
- metrics-core.jar (license: MIT).
- netty-all.jar (license: Apache 2.0).
- snappy-java.jar (license: Apache 2.0).
KT_ palettes
The color palettes which have the prefix "KT_" are a collection of .cpt palettes by Kristen Thyng (license: MIT/X), but slightly reformatted by Jennifer Sevadjian of NOAA so that they conform to ERDDAP's .cpt requirements.
Leaflet
ERDDAP™ uses the JavaScript library Leaflet (license: BSD 2) as the WMS client on WMS web pages in ERDDAP. It is excellent software (well designed, easy to use, fast, and free) from Vladimir Agafonkin.
AWS
For working with Amazon AWS (including S3), ERDDAP™ uses v2 of the AWS SDK for Java (license: Apache).
AWS requires Maven to pull in the dependencies. They include the following .jar files (where xxx is the version number, which changes over time, and the license type is in parentheses): annotations-xxx.jar (Apache), apache-client-xxx.jar (Apache), ams-xxx.jar (BSD), asm-xxx.jar (BSD), asm-analysis-xxx.jar (BSD), asm-commons-xxx.jar (BSD), asm-tree-xxx.jar (BSD), asm-util-xxx.jar (BSD), auth-xxx.jar (?), aws-core-xxx.jar (Apache), aws-query-protocol-xxx.jar (Apache), aws-xml-protocol-xxx.jar (Apache), checker-qual-xxx.jar (MIT), error_prone_annotations-xxx.jar (Apache), eventstream-xxx.jar (Apache), failureaccess-xxx.jar (Apache), httpcore-xxx.jar (Apache), j2objc-annotations-xxx.jar (Apache), jackson-annotations-xxx.jar (Apache), jackson-core-xxx.jar (Apache), jackson-databind-xxx.jar (Apache), jaxen-xxx.jar (BSD), jffi-xxx.jar (Apache), jffi-xxx.native.jar (Apache), jnr-constants-xxx.jar (Apache), jnr-ffi-xxx.jar (Apache), jnr-posix-xxx.jar (Apache), jnr-x86asm-xxx.jar (Apache), json-xxx.jar (Copyrighted open source), jsr305-xxx.jar (Apache), listenablefuture-xxx.jar (Apache), about a dozen netty .jar's (Apache), profiles-xxx.jar (Apache), protocol-core-xxx.jar (Apache), reactive-streams-xxx.jar (CCO 1.0), regions-xxx.jar (Apache), s3-xxx.jar (Apache), sdk-core-xxx.jar (Apache), utils-xxx.jar (?). To see the actual licenses, search for the .jar name in the Maven Repository and then rummage around in the project's files to find the license.
We are also very grateful for all of the software and websites that we use when developing ERDDAP, including
Chrome,
curl,
DuckDuckGo,
EditPlus,
FileZilla.
GitHub,
Google Search,
PuTTY,
stack overflow,
todoist,
Wikipedia,
the Internet, the World Wide Web, and all the other, great, helpful websites.
Thank you very much.