بنقرة واحدة
energy-data-visualizer
Energy Data Visualizer (user)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Energy Data Visualizer (user)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Build field-level offshore infrastructure data bundles from local BSEE tables for engineering products. Use when users ask for field structures, platforms, pipelines, risers, jumpers, umbilicals, FMP/MCP systems, appurtenances, or product-ready field infrastructure joins.
Extract and process BSEE (Bureau of Safety and Environmental Enforcement) data including production, WAR (Well Activity Reports), and APD (Application for Permit to Drill) data. Use for querying production data, well activities, drilling permits, completions, and workovers by API number, block, lease, or field with automatic data normalization and caching.
Perform NPV analysis and economic evaluation for oil & gas assets. Use for cash flow modeling, price scenario analysis, Monte Carlo simulation, P10/P50/P90 probabilistic analysis, working interest calculations, and financial metrics (IRR, payback, NPV) for field development projects.
Forecast oil & gas well production using decline curve analysis. Use for EUR estimation, type curve generation, production modeling, and reserve calculations with Arps decline models (exponential, hyperbolic, harmonic).
Summarize worldenergydata source readiness, freshness, data locations, and scheduler blockers from repo metadata. Use when asked for worldenergydata data completeness, latest data dates, data locations, refresh status, scheduler source health, or acceptance-criteria inputs for data-source freshness.
Analyze drilling performance and metrics using API 12-digit well numbering system. Use for drilling time analysis, cost benchmarking, well comparison, sidetracks tracking, and drilling efficiency metrics across GOM fields.
| name | energy-data-visualizer |
| description | Energy Data Visualizer (user) |
Interactive visualization for oil & gas data analysis using Plotly
Use this skill when you need to:
"""
ABOUTME: Interactive visualization toolkit for energy data analysis
ABOUTME: Provides chart templates for production, economics, and mapping
"""
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import pandas as pd
class ProductionChartBuilder:
"""Build interactive production charts."""
def production_time_series(
self,
df: pd.DataFrame,
date_col: str = "date",
rate_cols: list = ["oil_bopd", "gas_mcfd"]
) -> go.Figure:
"""Create production rate vs time chart."""
fig = make_subplots(rows=2, cols=1, shared_xaxes=True)
colors = {"oil_bopd": "#2E7D32", "gas_mcfd": "#D32F2F"}
for col in rate_cols:
if col in df.columns:
fig.add_trace(
go.Scatter(x=df[date_col], y=df[col], name=col),
row=1, col=1
)
fig.update_layout(title="Production History", hovermode="x unified")
return fig
def decline_curve_plot(
self,
actual_df: pd.DataFrame,
forecast_df: pd.DataFrame = None,
log_scale: bool = True
) -> go.Figure:
"""Create decline curve with forecast overlay."""
fig = go.Figure()
fig.add_trace(go.Scatter(
x=actual_df["months"],
y=actual_df["rate"],
mode="markers",
name="Actual"
))
if forecast_df is not None:
fig.add_trace(go.Scatter(
x=forecast_df["months"],
y=forecast_df["p50"],
mode="lines",
name="P50 Forecast"
))
if log_scale:
fig.update_yaxes(type="log")
return fig
class EconomicsChartBuilder:
"""Build economic analysis charts."""
def cash_flow_waterfall(self, components: dict) -> go.Figure:
"""Create waterfall chart for cash flow breakdown."""
names = list(components.keys()) + ["Net"]
values = list(components.values())
values.append(sum(values))
fig = go.Figure(go.Waterfall(
x=names,
y=values,
measure=["relative"] * (len(values)-1) + ["total"]
))
fig.update_layout(title="Cash Flow Waterfall")
return fig
def npv_sensitivity_tornado(
self,
sensitivities: dict,
base_npv: float
) -> go.Figure:
"""Create tornado chart for NPV sensitivity."""
params = list(sensitivities.keys())
lows = [s["low"] - base_npv for s in sensitivities.values()]
highs = [s["high"] - base_npv for s in sensitivities.values()]
fig = go.Figure()
fig.add_trace(go.Bar(y=params, x=lows, orientation="h", name="Low"))
fig.add_trace(go.Bar(y=params, x=highs, orientation="h", name="High"))
fig.update_layout(barmode="overlay", title="NPV Sensitivity")
return fig
from worldenergydata.visualize import ProductionChartBuilder
import pandas as pd
# Load data
df = pd.read_csv("production.csv", parse_dates=["date"])
# Create chart
builder = ProductionChartBuilder()
fig = builder.production_time_series(df)
fig.write_html("reports/production.html")