Skip to content
Back to skills

Orcaflex Enrichment

ASecurity

Convert OrcaFlex .dat binary model files to enriched YAML fixtures using worldenergydata public databases (vessel fleet, riser components, pipe schedules). All stages run on licensed-win-1. Output committed to digitalmodel as test fixtures.

  • 17 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 9, 2026
developmentpythongobashgitapidatabasedocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 28, 2026

npx -y skills add vamseeachanta/workspace-hub --skill orcaflex-enrichment --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Orcaflex Enrichment?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Orcaflex Enrichment
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vamseeachanta-orcaflex-enrichment/badge)](https://www.skillsdirectory.com/skills/vamseeachanta-orcaflex-enrichment)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---

name: orcaflex-enrichment
version: 1.0.0
description: >
  Convert OrcaFlex .dat binary model files to enriched YAML fixtures using
  worldenergydata public databases (vessel fleet, riser components, pipe schedules).
  All stages run on licensed-win-1. Output committed to digitalmodel as test fixtures.
type: reference
triggers:
  - "orcaflex dat to yaml"
  - "enrich orcaflex"
  - "extract orcaflex model"
  - "orcaflex pipeline fixtures"
computer: licensed-win-1
repos: [workspace-hub, worldenergydata, digitalmodel, client-c]
related_wrk: [WRK-589, WRK-593, WRK-594, WRK-595]
tags: []
category: data
---

# OrcaFlex Enrichment Skill

Converts binary OrcaFlex `.dat` model files to **enriched, client-clean YAML
test fixtures** using worldenergydata public databases.

## Pipeline (all on licensed-win-1)

```
Stage 1  Extract    .dat + OrcFxAPI → raw YAML params
Stage 2  Enrich     raw YAML + worldenergydata lookups → enriched YAML → client-c/
Stage 3  Clean      enriched YAML → strip client names → legal scan → digitalmodel/
```

## Stage 1 — Extract

```cmd
python scripts\data\orcaflex\dat-to-yaml.py ^
    --input "\\<server>\<share>\Orcaflex\0000 Drilling Riser Development\Latest" ^
    --output "client-c\data\raw\orcaflex-extracted\drilling-riser-development" ^
    --project drilling-riser-development
```

Extracts: `general`, `environment`, `lines[]`, `vessels[]` per .dat file.

## Stage 2 — Enrich + Stage (client-c)

```cmd
python scripts\data\orcaflex\enrich-and-clean.py ^
    --input  client-c\data\raw\orcaflex-extracted\ ^
    --output digitalmodel\data\orcaflex\ ^
    --dry-run
```

### Enrichment lookups performed

| Object | OrcaFlex field | worldenergydata lookup | Result field |
|--------|---------------|----------------------|--------------|
| Line | OD (m→in) | `DrillingRiserLoader.filter_by_size(od_in)` | `component_type`, `grade_range`, `api_standard` |
| Line | OD + WT | `PipelineSpecLookup.match_od_wt(od_m, wt_m)` | `nps_in`, `schedule`, `grade_range` |
| Vessel | type hint from context | BSEE rig fleet `.bin` | `vessel_class`, `water_depth_rating_m`, `dp_class` |

### Enriched YAML output example (line object)

```yaml
lines:
- component_type: marine_drilling_riser_joint
  nps_in: 21.0
  public_match:
    grade_range: [G105, S135]
    api_standard: API-STD-16F
    source: worldenergydata.vessel_fleet.DrillingRiserLoader
  dat_properties:      # numeric props from .dat — unchanged
    OD: [0.5334]
    WallThickness: [0.025]
    Length: [15.24, 15.24, 15.24]
    CDt: 0.01
    CDn: 1.0
  # name: stripped (client-specific)
```

### Enriched YAML output example (vessel object)

```yaml
vessels:
- vessel_class: drillship
  water_depth_rating_m: 3658
  dp_class: DP3
  public_source: worldenergydata.vessel_fleet.BSEE_rig_fleet
  dat_properties:
    InitialX: 0.0
    InitialY: 0.0
    InitialZ: 0.0
  # name: stripped
```

## Stage 3 — Clean + Commit

```cmd
bash scripts/legal/legal-sanity-scan.sh digitalmodel/data/orcaflex/
cd digitalmodel
git add data/orcaflex/
git commit -m "data(orcaflex): enriched fixtures from public vessel/riser databases"
```

## Priority Extraction Order

| Project | .dat count | Standards | worldenergydata lookup |
|---------|-----------|-----------|------------------------|
| `0000 Drilling Riser Dev/Latest` | 31 | DNV-OS-F201 | DrillingRiserLoader (21" joints) |
| `31290 WellHead Fatigue/BOP on Wellhead` | 240 | API-RP-2A-WSD | DrillingRiserLoader (BOP) |
| `611 the pipelay client S Lay/Reference` | 3 | DNV-OS-F101 | PipelineSpecLookup (pipe OD) |
| `5 - OrcaFlex API Check` | 1 | — | minimal fixture |

## worldenergydata Database Status

| Dataset | Status | Location |
|---------|--------|----------|
| `drilling_riser_components.csv` | 24 rows (partial) | `data/modules/vessel_fleet/curated/` |
| `rig_fleet_full.bin` | 2,320 rigs (Feb 2026) | `data/modules/bsee/.local/rig_fleet/` |
| `construction_vessels.csv` | missing — see WRK-593 | `data/modules/vessel_fleet/curated/` |
| `api_5l_pipe_schedule.csv` | missing — see WRK-594 | `data/modules/pipeline/` |

## Key worldenergydata API Calls

```python
from worldenergydata.vessel_fleet import DrillingRiserLoader

loader = DrillingRiserLoader()
# Match riser joint by OD
joints = loader.filter_by_size(od_in=21.0)

# Get all riser joints
all_joints = loader.get_riser_joints()

# Get BOPs
bops = loader.get_bops()
```

```python
# Pipeline spec lookup (after WRK-594)
from worldenergydata.bsee.pipeline import PipelineSpecLookup

lookup = PipelineSpecLookup()
spec = lookup.match_od_wt(od_m=0.2731, wt_m=0.012)
# → {nps_in: 10.75, schedule: "XS", grade_range: ["X60", "X65"], ...}
```

## Blocked By

- WRK-593: expand drilling_riser_components.csv + add construction_vessels.csv
- WRK-594: create api_5l_pipe_schedule.csv + PipelineSpecLookup class


## Documentation Reference

llm-wiki base: `data/llm-wiki/orcaflex/`

Relevant OrcaFlex topics:
- `Textdatafiles.md` -- YAML/text data file format for .dat extraction
- `Vesseldata.md`, `Vesseltypes.md` -- vessel object properties extracted in Stage 1
- `Lines.md`, `Linedata.md`, `Linetypes,Geometry,massexpansiondata.md` -- line object properties (OD, WT)
- `Environment.md`, `Generaldata.md` -- general/environment parameters

OrcFxAPI topics (`data/llm-wiki/orcfxapi/`):
- `Modelbuilding,Settingthedata.md` -- programmatic data extraction via OrcFxAPI
- `Pythoninterface,Objectdata.md` -- Python object data access for .dat reading

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.