Getting Started • Available Packages • Architecture • Development • Code Style • Testing • License • Contributing • Links
All packages are distributed via NuGet and target .NET 10.0. Install individual packages as needed:
dotnet add package AuroraScienceHub.Integrations.NoaaClient// Register services
builder.Services.AddNoaaClients();
// Inject and use clients
public class SpaceWeatherService
{
private readonly IAceClient _aceClient;
public SpaceWeatherService(IAceClient aceClient)
{
_aceClient = aceClient;
}
public async Task<IReadOnlyCollection<MagnetometerRecord>> GetMagnetometerDataAsync()
{
return await _aceClient.GetMagnetometerDataAsync();
}
}Each package provides HTTP clients for accessing external data sources with strongly-typed response models and full dependency injection support.
AuroraScienceHub.Integrations.NoaaClient - Comprehensive NOAA Space Weather data access
| Component | Description |
|---|---|
| ACE Client | Advanced Composition Explorer satellite data - magnetometer and SWEPAM measurements |
| DSCOVR Client | Deep Space Climate Observatory data - solar wind and magnetic field measurements with multiple time ranges (2H, 1D, 3D, 7D) |
| KP-Index Client | Geomagnetic activity indices - nowcast and forecast data (3-day and 27-day) |
See detailed documentation for usage examples and API reference.
This repository provides production-ready HTTP clients for external space weather data sources with the following characteristics:
- Type-Safe Clients - Strongly-typed HTTP clients with dependency injection support via
IHttpClientFactory - Response Models - Well-defined DTOs for all API responses with validation
- Configuration - Options pattern for configuring API endpoints and behavior
- Modern .NET - Built on .NET 10 with latest C# features and performance optimizations
- Resilience - Built-in retry policies and error handling
- Testability - Designed for easy unit testing with interface-based design
- Single Responsibility - Each client focuses on a specific data source
- Dependency Injection - First-class DI support for ASP.NET Core and .NET applications
- Performance - Optimized parsing and minimal allocations
- Extensibility - Easy to extend with additional data sources
- .NET 10.0 SDK or later
- IDE: Visual Studio 2025+, Rider 2025+, or VS Code
# Clone the repository
git clone https://github.com/Aurora-Science-Hub/Integrations.git
cd Integrations
# Restore dependencies
dotnet restore
# Build the solution
dotnet build
# Run tests
dotnet testThe solution uses EditorConfig based on Azure SDK .NET to maintain consistent code style across all packages.
# Format code before committing
dotnet format
# Verify code style compliance
dotnet format --verify-no-changes- Nullable reference types enabled
- Warnings treated as errors
- Latest C# language version
- Code style enforcement in build
- Embedded debug symbols in packages
Unit tests are located in the tests/UnitTests/ directory.
- xUnit - Test execution framework
- Moq - Mocking library for unit tests
- Embedded Resources - Test data stored as embedded resources for reproducibility
# Run all tests
dotnet test
# Run tests in watch mode
dotnet watch test --project tests/UnitTests/UnitTests.csprojThe project maintains comprehensive test coverage for all data parsers and client implementations, ensuring data integrity and API reliability.
This project is licensed under the MIT License. See LICENSE file for details.
We welcome contributions! When contributing to this repository:
- Follow the established code style (enforced by EditorConfig)
- Run
dotnet formatbefore committing - Ensure all tests pass with
dotnet test - Update relevant README files for your changes
- Keep packages focused and loosely coupled
- Add unit tests for new features
Please report bugs and feature requests on the GitHub Issues page.
- NuGet Package: AuroraScienceHub.Integrations.NoaaClient
- Source Code: GitHub Repository
- Issue Tracker: GitHub Issues
- Changelog: CHANGELOG.md
- Release Notes: RELEASE_NOTES.md
This project integrates data from the NOAA Space Weather Prediction Center. We thank NOAA and NASA for providing free and open access to space weather data.