https://github.com/nexus-main/nexus

Extensible user interface for your time-series data lake with REST API support.

https://github.com/nexus-main/nexus

Science Score: 26.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.8%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Extensible user interface for your time-series data lake with REST API support.

Basic Info
  • Host: GitHub
  • Owner: nexus-main
  • License: mit
  • Language: C#
  • Default Branch: dev
  • Homepage:
  • Size: 126 MB
Statistics
  • Stars: 7
  • Watchers: 1
  • Forks: 4
  • Open Issues: 174
  • Releases: 57
Created about 5 years ago · Last pushed 10 months ago
Metadata Files
Readme Changelog License

README.md

Nexus

GitHub Actions

Nexus is an extensible user interface for your time-series data lake with REST API support. It allows the end users access to any kind of equidistant and one-dimensional time-series data. Nexus relies on data sources which are able to read the underlying data format (e.g. a certain file format, databases, other Nexus instances, ...). Please check out the current ecosystem to see which data sources are available. That document also shows the three distinct ways to create a new data source.

Nexus allows streaming data directly into the UI or into Python, C# or Matlab clients. Additionally, Nexus supports exporting the data into a specific file format. Supported formats are CSV, HDF5, Matlab (v7.3) and Famos. Like for data sources, it is possible to create and register new custom data writers.

Usage

The main elements presented in Nexus are called catalogs. These catalogs are often equivalent to a measurement campaign. Within a catalog, there are resources (e.g. channels of a data acquisition device) which comprise a unique name, arbitrary properties (metadata) and one or more representations. A representation defines the sample period (e.g. 100 ms) and optional parameters of the associated resource.

Resources

Individual catalog items are identified by their resource path. For the resource T1 of catalog /SAMPLE/LOCAL the path identifying the 1 s representation is equal to /SAMPLE/LOCAL/T1/1_s.

Aggregation

In case you need aggregated data, in the UI, simply select a sample period larger than the original sample period. If you already had selected a catalog item and you change the sample period, it will become red. The UI offers you to select an appropriate aggregation method as shown on the right. When you select a sample period of 10 min and the Mean aggregation method, the resource path becomes /SAMPLE/LOCAL/T1/10_min_mean.

aggregation

When you copy the path from within the UI, the path is suffixed like this: /SAMPLE/LOCAL/T1/10_min_mean#base=1_s. The base parameter is only relevant when there are multiple representations per resource so that Nexus knows which representation to use for aggregation.

[!Note] Data will be aggregated on the fly but the results will be cached, so it is much faster the next time you request the same piece of data. A set of preselected data will aggregated on every night to further speed-up the access.

Visualization

To visualize data, select one or more resources and edit the settings on the left to your needs. When the settings are valid, the button Visualize will be become available. Click on that button to load and plot the requested data.

Graphs

Export

If you prefer to export the data as .csv files or to other formats for further processing, please adjust the settings on the right to your liking. If the settings are valid, the button on the lower right will be enabled. A click on that button starts the export process. The progress will be indicated by a circle which fills itself from 0% to 100%. When the export was successful, you will be able to click on that button to download the data. You can run multiple exports at the same time.

Personal Access Tokens

Both clients - Python and Matlab - require that you create a token which authenticates your script or application against Nexus.

You get this token in the Nexus UI's user menu as shown below. Once you have the token, you need to copy it into the scripts shown below (replace the <token> placeholder).

Tokens cannot access any catalogs by default (except public catalogs). Enter the catalog path the token needs access to as shown in the screenshot. This value is a regex pattern so you can cover more complex scenarios as well.

Personal access token

Python

Load

The following Jupyter Notebooks show how to load the data directly into Python’s memory:

Synchronous version

Asynchronous version

Export

The following Jupyter Notebooks export the data into a .csv file, downloads it as .zip file including the license (if available) and extracts the data to your local disk:

Synchronous version

Asynchronous version

Matlab

  • This script loads the data directly into Matlab’s memory

  • This script exports the data into a .csv file, downloads it as .zip file including the license (if available) and extracts the data to your local disk

Develop

bash git clone https://github.com/nexus-main/nexus cd nexus (cd src/Nexus && libman restore) dotnet workload restore dotnet run --project src/Nexus/Nexus.csproj

In a browser, navigate to http://localhost:5000.


[!Note] A more comprehensive documentation follows soon. In the meantime, if you are interested in how to setup Nexus and it's data sources, please open a new issue describing your use case.

:sparkles: Supported by code contributions from Fraunhofer IWES

Owner

  • Name: nexus-main
  • Login: nexus-main
  • Kind: organization

GitHub Events

Total
  • Create event: 35
  • Issues event: 121
  • Release event: 21
  • Watch event: 3
  • Delete event: 14
  • Issue comment event: 19
  • Push event: 186
  • Pull request event: 8
Last Year
  • Create event: 35
  • Issues event: 121
  • Release event: 21
  • Watch event: 3
  • Delete event: 14
  • Issue comment event: 19
  • Push event: 186
  • Pull request event: 8

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 72
  • Total pull requests: 1
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 22 hours
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 0.03
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 67
  • Pull requests: 1
  • Average time to close issues: 4 days
  • Average time to close pull requests: about 22 hours
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.03
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Apollo3zehn (145)
  • Conundraah (3)
Pull Request Authors
  • Apollo3zehn (11)
  • Conundraah (10)
  • joe97z (1)
Top Labels
Issue Labels
enhancement (21) web UI (16) good first issue (7) quality & reliability (7) bug (7) performance (3) API (3)
Pull Request Labels
quality & reliability (1)

Packages

  • Total packages: 6
  • Total downloads:
    • nuget 31,958 total
  • Total dependent packages: 3
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 198
  • Total maintainers: 1
nuget.org: nexus.packagemanagement

Type definitions to implement the package management for the Nexus system.

  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 7.1%
Average: 13.1%
Dependent packages count: 19.0%
Last synced: 10 months ago
nuget.org: nexus.sources.transform

A data source to transform Nexus catalog properties like resources names and group memberships.

  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 7.1%
Average: 13.1%
Dependent packages count: 19.0%
Last synced: 10 months ago
nuget.org: nexus.extensibility

Type definitions to implement data sources and data writers for the Nexus system.

  • Versions: 57
  • Dependent Packages: 3
  • Dependent Repositories: 0
  • Downloads: 12,863 Total
Rankings
Dependent repos count: 13.8%
Average: 18.6%
Dependent packages count: 18.8%
Downloads: 23.2%
Maintainers (1)
Last synced: 10 months ago
nuget.org: nexus.api

Client for the Nexus system.

  • Versions: 57
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 7,782 Total
Rankings
Dependent repos count: 13.8%
Dependent packages count: 18.8%
Average: 20.2%
Downloads: 27.9%
Maintainers (1)
Last synced: 10 months ago
nuget.org: nexus.remoting

Type definitions to implement data sources and data writers for the Nexus system.

  • Versions: 35
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 5,416 Total
Rankings
Dependent repos count: 13.8%
Dependent packages count: 18.8%
Average: 21.5%
Downloads: 31.9%
Maintainers (1)
Last synced: 10 months ago
nuget.org: nexus.sources.structuredfile

This package makes a base class available to simplify reading structured data files into Nexus.

  • Versions: 29
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 5,897 Total
Rankings
Dependent repos count: 13.8%
Dependent packages count: 18.8%
Average: 22.5%
Downloads: 34.8%
Maintainers (1)
Last synced: 10 months ago

Dependencies

.github/workflows/build-and-publish.yml actions
  • JamesIves/github-pages-deploy-action v4 composite
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v3 composite
  • actions/upload-artifact v3 composite
  • docker/login-action v1 composite
  • docker/setup-buildx-action v1 composite
  • softprops/action-gh-release v1 composite
Dockerfile docker
  • mcr.microsoft.com/dotnet/aspnet 6.0 build
src/Nexus/Nexus.csproj nuget
  • Microsoft.EntityFrameworkCore.Tools 6.0.0 development
  • MathNet.Numerics 4.15.0
  • Microsoft.AspNetCore.Authentication.Cookies 2.2.0
  • Microsoft.AspNetCore.Authentication.JwtBearer 6.0.0
  • Microsoft.AspNetCore.Authentication.OpenIdConnect 6.0.0
  • Microsoft.AspNetCore.Components.WebAssembly.Server 6.0.0
  • Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer 5.0.0
  • Microsoft.EntityFrameworkCore.InMemory 6.0.2
  • Microsoft.EntityFrameworkCore.Sqlite 6.0.0
  • NSwag.AspNetCore 13.15.10
  • OpenIddict 3.1.1
  • OpenIddict.AspNetCore 3.1.1
  • OpenIddict.EntityFrameworkCore 3.1.1
  • Serilog.AspNetCore 5.0.0
  • Serilog.Enrichers.ClientInfo 1.1.4
  • Serilog.Enrichers.CorrelationId 3.0.1
  • Serilog.Enrichers.Environment 2.2.0
  • Serilog.Expressions 3.3.0
  • Serilog.Sinks.Grafana.Loki 7.1.0
  • Serilog.Sinks.Seq 5.1.1
  • SharpZipLib 1.3.3
  • StreamJsonRpc 2.9.85
  • System.IO.Pipelines 6.0.0
src/Nexus.ClientGenerator/Nexus.ClientGenerator.csproj nuget
  • Microsoft.OpenApi.Readers 1.2.3
src/Nexus.UI/Nexus.UI.csproj nuget
  • Microsoft.AspNetCore.Components.Authorization 6.0.0
  • Microsoft.AspNetCore.Components.WebAssembly 6.0.0
  • Microsoft.AspNetCore.Components.WebAssembly.DevServer 6.0.0
  • SkiaSharp 2.88.0-preview.232
  • SkiaSharp.Views.Blazor 2.88.0-preview.232
src/extensibility/dotnet-extensibility/dotnet-extensibility.csproj nuget
  • Microsoft.Extensions.Logging 6.0.0
tests/Nexus.Tests/Nexus.Tests.csproj nuget
  • xunit.runner.visualstudio 2.4.3 development
  • Microsoft.NET.Test.Sdk 17.0.0
  • Moq 4.16.1
  • Serilog.AspNetCore 5.0.0
  • xunit 2.4.1
tests/clients/dotnet-client-tests/dotnet-client-tests.csproj nuget
  • xunit.runner.visualstudio 2.4.3 development
  • Microsoft.NET.Test.Sdk 17.0.0
  • Moq 4.16.1
  • xunit 2.4.1
tests/extensibility/dotnet-extensibility-tests/dotnet-extensibility-tests.csproj nuget
  • xunit.runner.visualstudio 2.4.3 development
  • Microsoft.Extensions.Logging.Abstractions 6.0.0
  • Microsoft.NET.Test.Sdk 17.0.0
  • Moq 4.16.1
  • xunit 2.4.1
src/clients/python-client/setup.py pypi
  • httpx >=0.22.0
src/clients/dotnet-client/dotnet-client.csproj nuget
tests/TestExtensionProject/TestExtensionProject.csproj nuget
src/clients/python-client/pyproject.toml pypi
src/extensibility/python-extensibility/pyproject.toml pypi
src/extensibility/python-extensibility/setup.py pypi