https://github.com/52north/sensorweb-server-helgoland

Thin Web binding API to access series data.

https://github.com/52north/sensorweb-server-helgoland

Science Score: 10.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 15 committers (6.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.8%) to scientific vocabulary

Keywords

52north java observation rest-api sensor sensorweb series-data spi

Keywords from Contributors

hydrology sos waterml transactional aqd ereporting inspire ogc sensorml serializer
Last synced: 5 months ago · JSON representation

Repository

Thin Web binding API to access series data.

Basic Info
  • Host: GitHub
  • Owner: 52North
  • License: gpl-2.0
  • Language: Java
  • Default Branch: develop
  • Homepage:
  • Size: 14.8 MB
Statistics
  • Stars: 25
  • Watchers: 8
  • Forks: 23
  • Open Issues: 6
  • Releases: 16
Topics
52north java observation rest-api sensor sensorweb series-data spi
Created over 12 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License

README.md

52n Sensor Web Server Helgoland

Build Status Java CI Maven Central Total alerts Language grade: JavaScript Language grade: Java

series-rest-api architecture overview

Description

Thin Web binding API to access timeseries data.

The Sensor Web Server Helgoland is a REST API provides an access layer to sensor data via RESTful Web binding with different output formats like json, pdf or png. It provides a well defined Sevice Provider Interface (SPI) which can be implemented by arbitrary backend services to make data available via the API

The Sensor Web Server Helgoland provides a thin access layer to sensor and observation data via RESTful Web binding. In addition, it offers several IO functionalities e.g. * prerendering of series data, * generalization, * overlaying of data from multiple series * conversion of raw data to other formats like pdf and png

Output formats for stationary, mobile, insitu and remote sensors are available, each filterable by metadata parameters. This enables clients to access the data via different approaches, e.g. to filter all series by phenomena first or by a special procedure.

Next to the Web API, a Service Provider Interface (SPI) defines the underlying interface for data providing backends. With this, the API is flexible enough to be put ontop of arbitrary data stores. Its modular design enables a seamless integration into existing Web applications.

The following main frameworks are used to provide this API:

Existing SPI implementations:

References

License

The client is published under the GNU General Public License v2 (GPLv2).

Changelog

  • https://github.com/52North/sensorweb-server-helgoland/blob/develop/CHANGELOG.md
  • for detailed infos check https://github.com/52North/sensorweb-server-helgoland/pulls?q=is%3Apr+is%3Aclosed

Contributing

We try to follow the GitFlow model, although we do not see it that strict.

However, make sure to do pull requests for features, hotfixes, etc. by making use of GitFlow. Altlassian provides a good overview. of the most common workflows.

Contact

Henning Bredel (h.bredel@52north.org)

Quick Start

Client development

The Web API documentation gives a detailed overview on how to access the data provided by the API. Available I/O functions are described there, too, like generelization, chart rendering/overlay, etc.

~~The API documentation is in the 52°North wiki: https://wiki.52north.org/bin/view/SensorWeb/SensorWebClientRESTInterface~~

API Configuration

How to provide a custom SPI implementation is beyond this section. See (...TBD...) to get detailed information on this.

Logging

Generalizer

In file WEB-INF/classes/config-general.json add

"generalizer": { "defaultGeneralizer": "lttb", "noDataGapThreshold": 5 }

The parameters are described on the official Web API documentation.

Prerendering

Prerendering is supported for measurement data.

Prerendering configuration is a task which can be run regularly by a scheduler. Configuration is done as a PreRenderingJob bean. Checkout WEB-INF/spring/spi-impl-dao_tasks.xml how to set up a prerendering job. The actual rendering configuration for each dataset/phenomenon can be referenced within the job bean.

Rendering configuration tells how to render the actual dataset information. It comprises a phenomenonStyles section (valid for a set of dataset for a given phenomenon) and a datasetStyles section (which actually overrides a phenomenon style of a specific dataset) Each section can override parameters made in the generalConfig.

Only those datasets are prerendered having a match either in phenomenonStyles or datasetStyles.

Date formatting

In file WEB-INF/spring/config-general.json you can set timeformat Parameter. Please checkout the Java SimpleDateFormat rules how the format has to look like.

Rendering Hints

TBD

Status Intervals

TBD

Metadata from a Database

TBD

Credits

The development of the 52°North Sensor Web Server Helgoland REST-API implementation was supported by several organizations and projects. Among other we would like to thank the following organisations and projects.

| Project/Logo | Description | | :-------------: | :------------- | | Cos4Cloud - Co-designed citizen observatories for the EOS-Cloud | The development of this version of the 52°North Sensor Web Server Helgoland API was supported by the European Union’s Horizon 2020 research project Cos4Cloud (co-funded by the European Commission under the grant agreement n°863463) | | BMBFTaMIS - Das Talsperren-Mess-Informations-System | The development of this version of the 52°North Sensor Web Server Helgoland API was supported by the German Federal Ministry of Education and Research research project TaMIS (co-funded by the German Federal Ministry of Education and Research, programme Geotechnologien, under grant agreement no. 03G0854[A-D]) | | JERICO-S3 - Science - Services- Sustainability | The development of this version of the 52°North Sensor Web Server Helgoland API was supported by the European Union’s Horizon 2020 research project JERICO-S3 (co-funded by the European Commission under the grant agreement n°871153) | | BMBFCOLABIS - Collaborative Early Warning Information Systems for Urban Infrastructures | The development of this version of the 52°North Sensor Web Server Helgoland API was supported by the German Federal Ministry of Education and Research research project COLABIS (co-funded by the German Federal Ministry of Education and Research, programme Geotechnologien, under grant agreement no. 03G0852A) | | NeXOS - Next generation, Cost-effective, Compact, Multifunctional Web Enabled Ocean Sensor Systems Empowering Marine, Maritime and Fisheries Management | The development of this version of the 52°North Sensor Web Server Helgoland API was supported by the European FP7 research project NeXOS (co-funded by the European Commission under the grant agreement n°614102) | | FixO3 - Fixed-Point Open Ocean Observatories | The development of this version of the 52°North Sensor Web Server Helgoland API was supported by the European FP7 research project FixO3 (co-funded by the European Commission under the grant agreement n°312463) | | ODIP II - Ocean Data Interoperability Platform | The development of this version of the 52°North Sensor Web Server Helgoland API was supported by the Horizon 2020 research project ODIP II (co-funded by the European Commission under the grant agreement n°654310) | | SeaDataCloud | The development of this version of the 52°North Sensor Web Server Helgoland API was supported by the Horizon 2020 research project SeaDataCloud (co-funded by the European Commission under the grant agreement n°730960) | | Wupperverband | The Wupperverband for water, humans and the environment (Germany) | | Belgian Interregional Environment Agency (IRCEL - CELINE) | The Belgian Interregional Environment Agency (IRCEL - CELINE) is active in the domain of air quality (modelling, forecasts, informing the public on the state of their air quality, e-reporting to the EU under the air quality directives, participating in scientific research on air quality, etc.). IRCEL — CELINE is a permanent cooperation between three regional environment agencies: Agence wallonne de l'Air et du Climat (AWAC), Bruxelles Environnement - Leefmilieu Brussel and Vlaamse Milieumaatschappij (VMM). | | GEOWOW - GEOSS interoperability for Weather, Ocean and Water | The development of this version of the 52°North Sensor Web Server Helgoland API was supported by the European FP7 research project GEOWOW (co-funded by the European Commission under the grant agreement n°282915) |

Owner

  • Name: 52°North Spatial Information Research GmbH
  • Login: 52North
  • Kind: organization
  • Email: info@52north.org
  • Location: Münster

Advancing spatial information infrastructures to foster open science

GitHub Events

Total
  • Issues event: 36
  • Watch event: 1
  • Delete event: 43
  • Issue comment event: 77
  • Push event: 2
  • Pull request event: 77
  • Fork event: 2
  • Create event: 38
Last Year
  • Issues event: 36
  • Watch event: 1
  • Delete event: 43
  • Issue comment event: 77
  • Push event: 2
  • Pull request event: 77
  • Fork event: 2
  • Create event: 38

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 2,569
  • Total Committers: 15
  • Avg Commits per committer: 171.267
  • Development Distribution Score (DDS): 0.576
Past Year
  • Commits: 57
  • Committers: 2
  • Avg Commits per committer: 28.5
  • Development Distribution Score (DDS): 0.281
Top Committers
Name Email Commits
Henning Bredel b****l@5****g 1,089
CarstenHollmann c****n@5****g 636
Henning Bredel h****l@5****g 416
dependabot[bot] 4****] 115
dependabot-preview[bot] 2****] 96
Jan Schulte j****e@5****g 93
speckij s****j@g****m 37
Christian Autermann c****n@5****g 25
Henning Bredel h****l@g****e 20
antego a****o 14
EHJ-52n e****s@5****g 11
Travis CI t****s@t****g 9
speckij j****5@u****e 6
Christian Autermann c****n@a****g 1
Daniel Nüst d****t@5****g 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 36
  • Total pull requests: 146
  • Average time to close issues: almost 9 years
  • Average time to close pull requests: 3 months
  • Total issue authors: 8
  • Total pull request authors: 1
  • Average comments per issue: 2.39
  • Average comments per pull request: 0.22
  • Merged pull requests: 69
  • Bot issues: 0
  • Bot pull requests: 146
Past Year
  • Issues: 0
  • Pull requests: 39
  • Average time to close issues: N/A
  • Average time to close pull requests: about 1 month
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.15
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 39
Top Authors
Issue Authors
  • ridoo (12)
  • nuest (9)
  • CarstenHollmann (6)
  • EHJ-52n (3)
  • ChrisMalewski (3)
  • zbodrosk (1)
  • autermann (1)
  • dirk-ecker (1)
Pull Request Authors
  • dependabot[bot] (146)
Top Labels
Issue Labels
Stale (36) enhancement (19) documentation (7) question (4) bug (3) v3.x (2) discussion (1) v2.0.x (1)
Pull Request Labels
dependencies (146) java (127) Stale (31) ruby (10) github_actions (9)

Dependencies

io/pom.xml maven
  • com.github.spotbugs:spotbugs-annotations provided
  • ${project.groupId}:helgoland-spi
  • ${project.groupId}:helgoland-xml-pdf-format
  • com.fasterxml.jackson.core:jackson-annotations
  • commons-codec:commons-codec
  • joda-time:joda-time
  • org.apache.xmlbeans:xmlbeans
  • org.apache.xmlgraphics:fop-core
  • org.jfree:jfreechart
  • org.locationtech.jts:jts-core
  • org.n52.arctic-sea:faroe-annotations
  • org.n52.arctic-sea:janmayen
  • org.quartz-scheduler:quartz
  • org.slf4j:jcl-over-slf4j
  • org.slf4j:slf4j-api
  • org.springframework:spring-beans
  • org.springframework:spring-context
  • org.springframework:spring-context-support
  • xml-apis:xml-apis
  • ch.qos.logback:logback-classic test
  • org.hamcrest:hamcrest test
  • org.hamcrest:hamcrest-core test
  • org.hamcrest:hamcrest-library test
  • org.junit.jupiter:junit-jupiter-api test
  • org.junit.jupiter:junit-jupiter-engine test
pom.xml maven
  • com.fasterxml.jackson:jackson-bom 2.13.4 import
  • org.springframework.boot:spring-boot-dependencies 2.7.3 import
  • com.github.spotbugs:spotbugs-annotations 4.7.2 provided
  • com.bedatadriven:jackson-datatype-jts 2.4
  • commons-codec:commons-codec 1.15
  • commons-io:commons-io 2.11.0
  • javax.measure:unit-api 2.1.3
  • joda-time:joda-time 2.11.1
  • org.apache.avalon.framework:avalon-framework-api 4.3.1
  • org.apache.avalon.framework:avalon-framework-impl 4.3.1
  • org.apache.commons:commons-math 2.2
  • org.apache.xmlbeans:xmlbeans 3.1.0
  • org.apache.xmlgraphics:fop-core 2.6
  • org.apiguardian:apiguardian-api 1.1.2
  • org.geotools:gt-epsg-hsql 27.1
  • org.geotools:gt-main 27.1
  • org.geotools:gt-metadata 27.1
  • org.geotools:gt-opengis 27.1
  • org.geotools:gt-referencing 27.1
  • org.geotools:gt-shapefile 27.1
  • org.jfree:jcommon 1.0.24
  • org.jfree:jfreechart 1.5.3
  • org.locationtech.jts:jts-core 1.19.0
  • org.n52.arctic-sea:faroe-annotations 9.8.0
  • org.n52.arctic-sea:janmayen 9.8.0
  • org.n52.arctic-sea:shetland 9.8.0
  • org.n52.arctic-sea:svalbard 9.8.0
  • org.n52.arctic-sea:svalbard-odata 9.8.0
  • org.n52.sensorweb-server.helgoland:helgoland-io 3.4.4-SNAPSHOT
  • org.n52.sensorweb-server.helgoland:helgoland-rest 3.4.4-SNAPSHOT
  • org.n52.sensorweb-server.helgoland:helgoland-spi 3.4.4-SNAPSHOT
  • org.n52.sensorweb-server.helgoland:helgoland-xml-pdf-format 3.4.4-SNAPSHOT
  • si.uom:si-quantity 2.1
  • tech.units:indriya 2.1.3
  • xalan:xalan 2.7.2
  • xml-apis:xml-apis 1.4.01
  • javax:javaee-api 8.0.1 test
  • org.hamcrest:hamcrest 2.2 test
  • org.hamcrest:hamcrest-core 2.2 test
  • org.hamcrest:hamcrest-library 2.2 test
  • org.junit:junit-bom 5.9.0 test
rest/pom.xml maven
  • com.github.spotbugs:spotbugs-annotations provided
  • javax.servlet:javax.servlet-api provided
  • org.springframework.boot:spring-boot-actuator provided
  • org.springframework:spring-context-support provided
  • ${project.groupId}:helgoland-io
  • ${project.groupId}:helgoland-spi
  • com.fasterxml.jackson.core:jackson-annotations
  • com.fasterxml.jackson.core:jackson-core
  • com.fasterxml.jackson.core:jackson-databind
  • commons-io:commons-io
  • joda-time:joda-time
  • org.n52.arctic-sea:faroe-annotations
  • org.n52.arctic-sea:janmayen
  • org.quartz-scheduler:quartz
  • org.slf4j:slf4j-api
  • org.springframework:spring-beans
  • org.springframework:spring-context
  • org.springframework:spring-core
  • org.springframework:spring-web
  • org.springframework:spring-webmvc
  • ch.qos.logback:logback-classic test
  • javax:javaee-api test
  • org.hamcrest:hamcrest test
  • org.hamcrest:hamcrest-core test
  • org.hamcrest:hamcrest-library test
  • org.junit.jupiter:junit-jupiter-api test
  • org.junit.jupiter:junit-jupiter-engine test
spi/pom.xml maven
  • com.github.spotbugs:spotbugs-annotations provided
  • com.fasterxml.jackson.core:jackson-annotations
  • com.fasterxml.jackson.core:jackson-core
  • com.fasterxml.jackson.core:jackson-databind
  • com.fasterxml.jackson.datatype:jackson-datatype-joda
  • com.github.spotbugs:spotbugs-annotations
  • commons-io:commons-io
  • javax.measure:unit-api
  • joda-time:joda-time
  • org.geotools:gt-epsg-hsql
  • org.geotools:gt-main
  • org.geotools:gt-metadata
  • org.geotools:gt-opengis
  • org.geotools:gt-referencing
  • org.locationtech.jts:jts-core
  • org.n52.arctic-sea:shetland
  • org.n52.arctic-sea:svalbard
  • org.n52.arctic-sea:svalbard-odata
  • org.slf4j:slf4j-api
  • org.springframework:spring-core
  • si.uom:si-quantity
  • tech.units:indriya
  • ch.qos.logback:logback-classic test
  • org.hamcrest:hamcrest test
  • org.hamcrest:hamcrest-core test
  • org.hamcrest:hamcrest-library test
  • org.junit.jupiter:junit-jupiter-api test
  • org.junit.jupiter:junit-jupiter-engine test
xml-pdf-format/pom.xml maven
  • org.apache.xmlbeans:xmlbeans
web-resources/src/main/docs/Gemfile rubygems
  • github-pages >= 0 development
  • html-proofer >= 0
  • jekyll >= 0
  • netrc >= 0
web-resources/src/main/docs/Gemfile.lock rubygems
  • activesupport 6.0.3.7
  • addressable 2.8.0
  • coffee-script 2.4.1
  • coffee-script-source 1.11.1
  • colorator 1.1.0
  • commonmarker 0.17.13
  • concurrent-ruby 1.1.8
  • dnsruby 1.61.5
  • em-websocket 0.5.2
  • ethon 0.14.0
  • eventmachine 1.2.7
  • execjs 2.8.0
  • faraday 1.4.1
  • faraday-excon 1.1.0
  • faraday-net_http 1.0.1
  • faraday-net_http_persistent 1.1.0
  • ffi 1.15.0
  • forwardable-extended 2.6.0
  • gemoji 3.0.1
  • github-pages 214
  • github-pages-health-check 1.17.0
  • html-pipeline 2.14.0
  • html-proofer 3.19.1
  • http_parser.rb 0.6.0
  • i18n 0.9.5
  • jekyll 3.9.0
  • jekyll-avatar 0.7.0
  • jekyll-coffeescript 1.1.1
  • jekyll-commonmark 1.3.1
  • jekyll-commonmark-ghpages 0.1.6
  • jekyll-default-layout 0.1.4
  • jekyll-feed 0.15.1
  • jekyll-gist 1.5.0
  • jekyll-github-metadata 2.13.0
  • jekyll-mentions 1.6.0
  • jekyll-optional-front-matter 0.3.2
  • jekyll-paginate 1.1.0
  • jekyll-readme-index 0.3.0
  • jekyll-redirect-from 0.16.0
  • jekyll-relative-links 0.6.1
  • jekyll-remote-theme 0.4.3
  • jekyll-sass-converter 1.5.2
  • jekyll-seo-tag 2.7.1
  • jekyll-sitemap 1.4.0
  • jekyll-swiss 1.0.0
  • jekyll-theme-architect 0.1.1
  • jekyll-theme-cayman 0.1.1
  • jekyll-theme-dinky 0.1.1
  • jekyll-theme-hacker 0.1.2
  • jekyll-theme-leap-day 0.1.1
  • jekyll-theme-merlot 0.1.1
  • jekyll-theme-midnight 0.1.1
  • jekyll-theme-minimal 0.1.1
  • jekyll-theme-modernist 0.1.1
  • jekyll-theme-primer 0.5.4
  • jekyll-theme-slate 0.1.1
  • jekyll-theme-tactile 0.1.1
  • jekyll-theme-time-machine 0.1.1
  • jekyll-titles-from-headings 0.5.3
  • jekyll-watch 2.2.1
  • jemoji 0.12.0
  • kramdown 2.3.1
  • kramdown-parser-gfm 1.1.0
  • liquid 4.0.3
  • listen 3.5.1
  • mercenary 0.3.6
  • mini_portile2 2.8.0
  • minima 2.5.1
  • minitest 5.14.4
  • multipart-post 2.1.1
  • netrc 0.11.0
  • nokogiri 1.13.6
  • nokogumbo 2.0.5
  • octokit 4.21.0
  • parallel 1.20.1
  • pathutil 0.16.2
  • public_suffix 4.0.6
  • racc 1.6.0
  • rainbow 3.0.0
  • rb-fsevent 0.11.0
  • rb-inotify 0.10.1
  • rexml 3.2.5
  • rouge 3.26.0
  • ruby-enum 0.9.0
  • ruby2_keywords 0.0.4
  • rubyzip 2.3.0
  • safe_yaml 1.0.5
  • sass 3.7.4
  • sass-listen 4.0.0
  • sawyer 0.8.2
  • simpleidn 0.2.1
  • terminal-table 1.8.0
  • thread_safe 0.3.6
  • typhoeus 1.4.0
  • tzinfo 1.2.10
  • unf 0.1.4
  • unf_ext 0.0.7.7
  • unicode-display_width 1.7.0
  • yell 2.2.2
  • zeitwerk 2.4.2
.github/workflows/codeql-analysis.yml actions
  • actions/checkout v3 composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/autobuild v2 composite
  • github/codeql-action/init v2 composite
.github/workflows/daily.yml actions
  • actions/checkout v3 composite
  • actions/setup-java v3 composite
.github/workflows/pull.yml actions
  • actions/checkout v3 composite
  • actions/setup-java v3 composite
.github/workflows/pull_java_8.yml actions
  • actions/checkout v3 composite
  • actions/setup-java v3 composite
.github/workflows/push.yml actions
  • actions/checkout v3 composite
  • actions/setup-java v3 composite
.github/workflows/push_java_8.yml actions
  • actions/checkout v3 composite
  • actions/setup-java v3 composite