Jarus.Sora_v2.5 0.2.0

The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package Jarus.Sora_v2.5 --version 0.2.0
                    
NuGet\Install-Package Jarus.Sora_v2.5 -Version 0.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Jarus.Sora_v2.5" Version="0.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Jarus.Sora_v2.5" Version="0.2.0" />
                    
Directory.Packages.props
<PackageReference Include="Jarus.Sora_v2.5" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Jarus.Sora_v2.5 --version 0.2.0
                    
#r "nuget: Jarus.Sora_v2.5, 0.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Jarus.Sora_v2.5@0.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Jarus.Sora_v2.5&version=0.2.0
                    
Install as a Cake Addin
#tool nuget:?package=Jarus.Sora_v2.5&version=0.2.0
                    
Install as a Cake Tool

JARUS SORA — .NET Risk Assessment Library

.NET License: GPL v3 SORA

A .NET library implementing the JARUS SORA v2.5 (Specific Operations Risk Assessment) methodology for unmanned aircraft systems (UAS). It provides the complete risk assessment pipeline — from operational concept to safety requirements — as a deterministic, testable computation.

What is SORA?

The Specific Operations Risk Assessment is a risk-based methodology developed by JARUS (Joint Authorities for Rulemaking on Unmanned Systems) to evaluate whether a drone operation can be conducted safely. It is the de facto standard adopted by aviation authorities worldwide, including EASA in the EU and referenced by the FAA in the US.

SORA assigns a SAIL (Specific Assurance and Integrity Level, I–VI) to an operation based on its ground risk, air risk, and applied mitigations. The SAIL then drives 17 Operational Safety Objectives (OSOs) that the operator must comply with.

Features

  • Complete 10-step SORA pipeline — from ConOps input through SAIL determination to OSO requirements
  • All specification tables encoded — iGRC (Table 2), ground risk mitigations (Table 5), TMPR (Table 6), SAIL (Table 7), containment (Tables 8–13), and OSO robustness (Table 14)
  • Feedback loop support — Step 8 (Containment) can trigger reassessment back to Step 2 when buffer sizes change
  • Strongly typed domain model — enums and value objects for all SORA classifications (ARC, SAIL, robustness levels, population bands)
  • Pure functions, no side effects — each step is a deterministic computation, making the library easy to test and audit
  • Result-based error handling — explicit outcomes for "out of SORA scope" and "certified category required" instead of exceptions

The SORA Process

 ┌─────────────────────────────────────────────────────────────────┐
 │  Step 1   ConOps — Document the proposed operation              │
 │  Step 2   iGRC — Intrinsic Ground Risk Class (1–10)             │
 │  Step 3   Final GRC — Apply ground mitigations (M1A–M2)         │
 │  Step 4   Initial ARC — Air Risk Class (a–d)                    │
 │  Step 5   Residual ARC — Apply strategic air mitigations         │
 │  Step 6   TMPR — Tactical Mitigation Performance Requirements   │
 │  Step 7   SAIL — Specific Assurance and Integrity Level (I–VI)  │
 │  Step 8   Containment — Adjacent area requirements        ──┐   │
 │  Step 9   OSO — 17 Operational Safety Objectives            │   │
 │  Step 10  CSP — Comprehensive Safety Portfolio              │   │
 └─────────────────────────────────────────────────────────────┘   │
                         ▲  Feedback loop if buffer changes  ──────┘
                         └─── back to Step 2

Quick Start

// Define the UA and operational context
var aircraft = new UnmannedAircraft(
    MaxCharacteristicDimension: UaDimensionCategory.ThreeM,
    MaxSpeed: 35,           // m/s
    MassGrams: 4500
);

var conOps = new ConceptOfOperations(
    Aircraft: aircraft,
    PopulationDensity: PopulationDensityBand.LessThan500,
    AirspaceClass: AirRiskClass.B,
    VisualLineOfSight: VisualLineOfSight.BVlos,
    GroundMitigations: new[] {
        new GroundMitigation(MitigationType.M1A_Sheltering, RobustnessLevel.Low)
    }
);

// Run the assessment
var result = SoraAssessment.Evaluate(conOps);

// Read the outputs
Console.WriteLine($"iGRC: {result.IntrinsicGroundRiskClass}");   // 5
Console.WriteLine($"Final GRC: {result.FinalGroundRiskClass}");  // 4
Console.WriteLine($"Residual ARC: {result.ResidualAirRiskClass}"); // B
Console.WriteLine($"SAIL: {result.Sail}");                       // III
Console.WriteLine($"Containment: {result.ContainmentLevel}");    // Low

// Inspect OSO requirements
foreach (var oso in result.OperationalSafetyObjectives)
    Console.WriteLine($"  {oso.Id}: {oso.RequiredRobustness}");

Technology Stack

Component Technology
Runtime .NET 9
Language C# 13
Test Framework xUnit
Assertions FluentAssertions
Build dotnet CLI / MSBuild

Project Structure

src/
├── Jarus.Sora/                     # Main library
│   ├── Models/                      # Domain types (ConOps, UA, volumes, mitigations)
│   ├── Tables/                      # Static lookup data (iGRC, SAIL, OSO, Containment)
│   └── Steps/                       # One class per SORA step
│       ├── Step02_IntrinsicGrc.cs
│       ├── Step03_FinalGrc.cs
│       ├── Step04_InitialArc.cs
│       ├── Step05_ResidualArc.cs
│       ├── Step06_Tmpr.cs
│       ├── Step07_Sail.cs
│       ├── Step08_Containment.cs
│       └── Step09_Oso.cs
├── Jarus.Sora.Tests/               # Unit and integration tests

Building and Testing

# Build the solution
dotnet build

# Run all tests
dotnet test

# Run a specific test class
dotnet test --filter "ClassName~SailDeterminationTests"

# Run a single test by name
dotnet test --filter "FullyQualifiedName~Should_Return_SailIII_When_Grc4_ArcA"

Specification References

This library implements the following JARUS publications:

Document Edition Description
JAR-doc-25 2.5 (May 2024) SORA Main Body — the core methodology implemented by this library
Annex A 2.5 Guidance on documentation and CSP templates
Annex B 2.5 Integrity and assurance levels for ground risk mitigations
Annex C 2.5 Air Risk Class assignment and strategic mitigation process
Annex D 2.5 Tactical Mitigation Performance Requirements (TMPR)
Annex E 2.5 Containment and OSO integrity/assurance criteria
Annex F 2.5 Theoretical basis for ground risk classification

Disclaimer: This library is an independent implementation based on publicly available JARUS guidelines. It is not endorsed by or affiliated with JARUS. Always validate risk assessments with your competent authority before conducting operations.

Contributing

Contributions are welcome. Please ensure:

  1. All new lookup table entries include test cases for every cell
  2. Business rule changes reference the specific SORA section (e.g., "§4.3.3(d)")
  3. Domain types remain immutable

License

This project is licensed under the GNU General Public License v3.0. This means any software that incorporates this library must also be released under GPL-3.0 or a compatible license.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net9.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated