ERDDAP
Makes ocean and hydrology data easy to find, subset, visualize, and download.
https://github.com/erddap/erddap
Category: Hydrosphere
Sub Category: Ocean and Hydrology Data Access
Keywords
data environmental erddap noaa scientific server
Keywords from Contributors
cc0 lists resources ocean-sciences zarr oceanography
Last synced: about 14 hours ago
JSON representation
Repository metadata
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 (Apache and Apache-like) Java Servlet from NOAA NMFS SWFSC Environmental Research Division (ERD).
- Host: GitHub
- URL: https://github.com/erddap/erddap
- Owner: ERDDAP
- License: cc0-1.0
- Created: 2012-05-04T19:50:58.000Z (over 14 years ago)
- Default Branch: main
- Last Pushed: 2026-08-06T03:56:26.000Z (8 days ago)
- Last Synced: 2026-08-10T16:21:02.393Z (4 days ago)
- Topics: data, environmental, erddap, noaa, scientific, server
- Language: Java
- Homepage:
- Size: 134 MB
- Stars: 122
- Watchers: 25
- Forks: 74
- Open Issues: 51
- Releases: 44
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Governance: GOVERNANCE.md
README.md
ERDDAP™: Easier Access to Scientific Data
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
Developing with ERDDAP™
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.
Running JUnit tests
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.
Running integration tests
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.
External server 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™.
Useful test invocation commands
Run a single unit test
mvn -Dtest=EDDTableFromAsciiFilesTests#testBasic test
Attach a debugger to a single unit test (debugging port 8000 by default):
mvnDebug -DforkCount=0 -Dtest=EDDTableFromAsciiFilesTests#testBasic test
or
MAVEN_DEBUG_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:8000" \
mvn -DforkCount=0 -Dtest=EDDTableFromAsciiFilesTests#testBasic test
Run a single integration test:
mvn -Dtest=foo -Dsurefire.failIfNoSpecifiedTests=false -Dgcf.skip -Dit.test=JettyTests#displayInformation verify
Attach a debugger to a single integration test (debugging port 8000 by default):
mvnDebug -DforkCount=0 -Dtest=foo -Dsurefire.failIfNoSpecifiedTests=false -Dgcf.skip \
-Dit.test=JettyTests#displayInformation verify
or
MAVEN_DEBUG_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:8000" \
mvn -DforkCount=0 -Dtest=foo -Dsurefire.failIfNoSpecifiedTests=false -Dgcf.skip \
-Dit.test=JettyTests#testEDDGridNcoJsonMetadata verify
Metrics
Metrics are collected using Prometheus. You can see the metrics on a local server at /erddap/metrics.
Building a war
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.
Running the code formatter
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.
Contributing Code to ERDDAP™
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: https://github.com/erddap/erddap/discussions/93
Deploying ERDDAP™ Operationally
Instructions for installing ERDDAP™ in Apache Tomcat are available at: https://erddap.github.io/docs/server-admin/deploy-install.
Owner metadata
- Name: ERDDAP
- Login: ERDDAP
- Email: chris.john@noaa.gov
- Kind: organization
- Description:
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/126212064?v=4
- Repositories: 1
- Last ynced at: 2023-04-28T21:53:29.794Z
- Profile URL: https://github.com/ERDDAP
GitHub Events
Total
- Release event: 7
- Delete event: 25
- Member event: 2
- Pull request event: 176
- Fork event: 16
- Issues event: 63
- Watch event: 23
- Issue comment event: 252
- Push event: 121
- Gollum event: 1
- Pull request review comment event: 104
- Pull request review event: 110
- Create event: 32
Last Year
- Release event: 3
- Delete event: 19
- Pull request event: 49
- Fork event: 2
- Issues event: 13
- Watch event: 5
- Issue comment event: 59
- Push event: 58
- Gollum event: 1
- Pull request review comment event: 17
- Pull request review event: 23
- Create event: 24
Committers metadata
Last synced: 10 days ago
Total Commits: 570
Total Committers: 23
Avg Commits per committer: 24.783
Development Distribution Score (DDS): 0.563
Commits in past year: 176
Committers in past year: 8
Avg Commits per committer in past year: 22.0
Development Distribution Score (DDS) in past year: 0.511
| Name | Commits | |
|---|---|---|
| Chris John | c****n@n****v | 249 |
| Bob Simons | b****s@n****v | 117 |
| dependabot[bot] | 4****] | 53 |
| Chris John | C****n@g****m | 37 |
| Shane St Savage | s****e@a****o | 28 |
| seth.champagne | s****e@n****l | 23 |
| Qi Zeng | q****7@g****u | 18 |
| ayushsingh01042003 | 1****3 | 12 |
| Marco Alba | m****a@e****m | 6 |
| Roland Schweitzer | r****r@n****v | 5 |
| Harish-2003 | p****3@g****m | 5 |
| Micah Wengren | m****n@g****m | 3 |
| Q1Zeng | 5****g | 2 |
| Filipe | o****f@g****m | 2 |
| Robert | r****r@M****e | 2 |
| Alex Kerney | a****k@m****m | 1 |
| Bob Simons | B****0@g****m | 1 |
| Callum Rollo | c****o@o****m | 1 |
| Italo Borrelli | 4****i | 1 |
| Jiahui Hu | 1****3 | 1 |
| Mathew Biddle | 8****e | 1 |
| Rob Cermak | 1****u | 1 |
| roje-bodc | 6****c | 1 |
Committer domains:
- noaa.gov: 3
- mac.com: 1
- mi5725.marine.ie: 1
- ettsolutions.com: 1
- gatech.edu: 1
- nrlssc.navy.mil: 1
- axds.co: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 69
Total pull requests: 244
Average time to close issues: 6 months
Average time to close pull requests: 10 days
Total issue authors: 28
Total pull request authors: 20
Average comments per issue: 2.07
Average comments per pull request: 0.75
Merged pull request: 178
Bot issues: 0
Bot pull requests: 70
Past year issues: 13
Past year pull requests: 110
Past year average time to close issues: 3 months
Past year average time to close pull requests: 4 days
Past year issue authors: 8
Past year pull request authors: 6
Past year average comments per issue: 5.31
Past year average comments per pull request: 0.26
Past year merged pull request: 78
Past year bot issues: 0
Past year bot pull requests: 65
Top Issue Authors
- ChrisJohnNOAA (18)
- srstsavage (6)
- rmendels (4)
- benjwadams (3)
- ItaloBorrelli (3)
- ThomasThelen (3)
- MarcoAlbaETT (3)
- geofrizz (2)
- ayushsingh01042003 (2)
- LeoLeLonquer (2)
- Harish-2003 (2)
- BobSimons (2)
- honzaflash (2)
- turnbullerin (2)
- callumrollo (2)
Top Pull Request Authors
- ChrisJohnNOAA (109)
- dependabot[bot] (70)
- srstsavage (27)
- ayushsingh01042003 (13)
- Harish-2003 (7)
- mwengren (2)
- SethChampagneNRL (2)
- callumrollo (2)
- henjam-bodc (1)
- noaaroland (1)
- gostgmaer (1)
- lareinahu-2023 (1)
- MarcoAlbaETT (1)
- MathewBiddle (1)
- droplet-bot (1)
Top Issue Labels
- good first issue (8)
- enhancement (7)
- Straightforward (5)
- GSoC (2)
- bug (2)
- UI (1)
Top Pull Request Labels
- dependencies (70)
- java (39)
- github_actions (21)
- docker (5)
- GSoC-2024 (3)
- instill component (1)
- autorelease: tagged (1)
- docker_compose (1)
- GSoC-2025 (1)
Dependencies
- maven 3.9.16-eclipse-temurin-25-noble build
- tomcat 11.0.24-jdk25-temurin-noble build
- edu.ucar:cdm-core 5.10.0 compile
- jakarta.servlet:jakarta.servlet-api 6.1.0 provided
- at.yawk.lz4:lz4-java 1.11.1
- com.datastax.cassandra:cassandra-driver-core 3.11.5
- com.github.librepdf:openpdf 3.0.5
- com.google.auth:google-auth-library-oauth2-http 1.50.0
- com.google.guava:guava 33.6.0-jre
- com.hivemq:hivemq-community-edition-embedded 2026.5
- com.hivemq:hivemq-mqtt-client 1.3.17
- com.sun.mail:jakarta.mail 2.0.2
- edu.ucar:bufr 5.10.0
- edu.ucar:cdm-image 5.10.0
- edu.ucar:cdm-mcidas 5.10.0
- edu.ucar:cdm-misc 5.10.0
- edu.ucar:cdm-radial 5.10.0
- edu.ucar:cdm-s3 5.10.0
- edu.ucar:cdm-zarr 5.10.0
- edu.ucar:grib 5.10.0
- edu.ucar:netcdf4 5.10.0
- edu.ucar:opendap 5.10.0
- edu.ucar:udunits 5.10.0
- io.dropwizard.metrics:metrics-core 4.2.39
- io.github.classgraph:classgraph 4.8.186
- io.netty:netty-all 4.2.16.Final
- io.netty:netty-handler 4.2.16.Final
- io.prometheus:prometheus-metrics-core 1.8.0
- io.prometheus:prometheus-metrics-exporter-servlet-jakarta 1.8.0
- io.prometheus:prometheus-metrics-instrumentation-jvm 1.8.0
- io.prometheus:prometheus-metrics-model 1.8.0
- org.apache.commons:commons-compress 1.28.0
- org.apache.commons:commons-jexl3 3.7.0
- org.apache.hadoop:hadoop-client 3.5.0
- org.apache.lucene:lucene-core 10.5.0
- org.apache.lucene:lucene-queryparser 10.5.0
- org.apache.parquet:parquet-common 1.17.1
- org.apache.parquet:parquet-encoding 1.17.1
- org.apache.parquet:parquet-hadoop 1.17.1
- org.apache.sis.core:sis-metadata 1.6
- org.apache.sis.storage:sis-storage 1.6
- org.glassfish.jaxb:jaxb-runtime 4.0.9
- org.json:json 20260719
- org.nibor.autolink:autolink 0.12.0
- org.postgresql:postgresql 42.7.13
- org.semver4j:semver4j 6.0.0
- org.slf4j:slf4j-jdk14 2.0.18
- org.xerial.snappy:snappy-java 1.1.10.8
- software.amazon.awssdk.crt:aws-crt 0.48.3
- software.amazon.awssdk:regions 2.50.2
- software.amazon.awssdk:s3 2.50.2
- software.amazon.awssdk:s3-transfer-manager 2.50.2
- com.h2database:h2 2.4.240 test
- org.awaitility:awaitility 4.3.0 test
- org.eclipse.jetty.ee10:jetty-ee10-servlet 12.1.11 test
- org.eclipse.jetty.ee10:jetty-ee10-webapp 12.1.11 test
- org.eclipse.jetty:jetty-server 12.1.11 test
- org.junit.jupiter:junit-jupiter * test
- org.mockito:mockito-core 5.23.0 test
- org.wiremock:wiremock-standalone 3.13.2 test
- actions/checkout 3d3c42e5aac5ba805825da76410c181273ba90b1 composite
- zizmorcore/zizmor-action 3dc1ecc9bcb9e94e9b2c709687979e1298497054 composite
- actions/checkout 3d3c42e5aac5ba805825da76410c181273ba90b1 composite
- actions/setup-java b6effb05e454b25005698d916606bdc6ffcbf961 composite
- actions/checkout 3d3c42e5aac5ba805825da76410c181273ba90b1 composite
- actions/setup-java b6effb05e454b25005698d916606bdc6ffcbf961 composite
- docker/build-push-action 53b7df96c91f9c12dcc8a07bcb9ccacbed38856a composite
- docker/login-action dbcb813823bdd20940b903addbd779551569679f composite
- docker/metadata-action dc802804100637a589fabce1cb79ff13a1411302 composite
- docker/setup-buildx-action bb05f3f5519dd87d3ba754cc423b652a5edd6d2c composite
- docker/setup-qemu-action 96fe6ef7f33517b61c61be40b68a1882f3264fb8 composite
- debian bookworm-slim
- grafana/grafana latest
- nginxproxy/acme-companion 2.8
- nginxproxy/nginx-proxy 1.11
- prom/prometheus latest
Score: 8.28878581042693