Welcome to the ERDDAP™ GitHub repository
ERDDAP™ is a scientific data server that gives users a simple, consistent way to download subsets of gridded and tabular scientific datasets in common file formats and make graphs and maps. ERDDAP™ is a Free and Open Source Java Servlet developed by the NOAA NMFS SWFSC Environmental Research Division (ERD).
A live ERDDAP™ installation can be seen at: https://coastwatch.pfeg.noaa.gov/erddap/index.html.
Example screenshot of ERDDAP™'s web user interface 'Make-a-Graph' page
ERDDAP™ is a Java Servlet-based application and can be run in any compatible Java Servlet Container/Application Server, such as Apache Tomcat.
Local development and testing of ERDDAP™ code can be done without a production-scale installation. Two approaches are recommended:
- Jetty Servlet Container - see: ERDDAP™ Development with Maven and Jetty.
- Docker/Tomcat (building and running an ERDDAP™ development Docker image) - see: ERDDAP™ Development with Docker/Tomcat
For operational ERDDAP™ deployment, Apache Tomcat is recommended. See Deploying ERDDAP™ Operationally for instructions.
Simply run mvn test in a terminal to run the JUnit tests.
Note that by default tests that do an image comparison are enabled. To disable those tests add ImageComparison to the excludedGroups section of the surefire configuration. It is recommended you run the image tests before making changes to ERDDAP™ so you can generate a baseline set of images that will be later used for comparison.
These are slower tests, including those that interact with a locally running server. Run them with mvn verify.
If you have issues with tests, it could be good to try a mvn clean before running the tests.
While many of the tests interact with external servers, for example to load data. There are some tests that are almost entirely testing an external server and not ERDDAP™. These external tests are run using mvn verify -P external. In the code they are tagged with TagExternal. This is different from TagDisabledExternalERDDAP and TagDisabledExternalOther, which are used to label tests where the external source is either no longer available or extremely flaky.
The external tests should be run periodically (maybe around release time), but are unlikely to be relevant to day to day ERDDAP development™.
Metrics are collected using Prometheus. You can see the metrics on a local server at /erddap/metrics.
mvn package will create a war file.
If you'd like to skip the tests while building use mvn package -DskipTests. You can use the skipTests flags with other maven commands.
To format code locally you can run:
(Windows)
mvn git-code-format:format-code -D"gcf.globPattern=**/*"
(Other)
mvn git-code-format:format-code -Dgcf.globPattern=**/*
Code should be automatically formatted during a git pre-commit step to simplify reviews. It can still be useful sometimes to format code before making a git commit.
Below are relevant links for getting involved with the ERDDAP™ community and contributing to ERDDAP:
- Review conversations and ask questions at https://groups.google.com/g/erddap or at https://github.com/erddap/erddap/discussions
- Review and submit issues to https://github.com/erddap/erddap/issues
- To propose feature requests, follow this guidance: #93
Instructions for installing ERDDAP™ in Apache Tomcat are available at: https://erddap.github.io/docs/server-admin/deploy-install.
