← 返回 Skills 市场
imjohnathanblog-spec

Geospatial Osint

作者 imjohnathan · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
340
总下载
0
收藏
1
当前安装
1
版本数
在 OpenClaw 中安装
/install geospatial-osint
功能描述
Open-source geospatial intelligence gathering and visualization dashboard. Use when building Worldview-style spy thriller dashboards, monitoring geopolitical...
使用说明 (SKILL.md)

Geospatial OSINT / Worldview Dashboard

This skill covers building real-time geospatial intelligence dashboards inspired by Bilawal Sidhu's Worldview project.

Quick Start

Core Data Sources (Free)

Source API/URL Use Case
ADS-B Exchange API, free key Commercial flights
ADS-B Exchange Military API Military aircraft
OpenSky Network Free API Flight data
MarineTraffic Free tier Ship positions
CelesTrak TLE files Satellite orbits
n2yo.com Free API Satellite passes
GPSJam Static GPS jamming heatmaps
Earthquakes GeoJSON Seismic data
Insecam Public cams CCTV cameras
OpenStreetMap Overpass API Road networks

Paid Options (Optional)

  • Planet Labs (daily imagery)
  • Maxar (high-res)
  • Capella Space (SAR)
  • MarineTraffic Pro

Architecture

Stack

Frontend:      Cesium.js (3D globe) + Three.js (effects)
Data Layer:    Polling APIs → WebSocket → Entity updates
Visual:        Post-processing (bloom, CRT, NVG, thermal)
Development:   Multi-agent CLI (OpenClaw, Claude, etc.)

Visual Modes

Worldview supports multiple rendering modes:

// Effect pipeline examples
const effects = {
  // Night Vision Goggles (green tint + scanlines)
  nvg: {
    colorMatrix: [0,1,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1],
    scanlines: true,
    vignette: 0.3
  },
  
  // Thermal (heat map coloring)
  thermal: {
    colorMap: 'inferno',
    threshold: true
  },
  
  // CRT (scanlines + curvature + glow)
  crt: {
    scanlines: 0.5,
    curvature: 0.02,
    bloom: 0.5
  },
  
  // Fluor (high contrast military green)
  fluor: {
    colorMatrix: [0,0.5,0,0, 0,1,0,0, 0,0.5,0,0, 0,0,0,1],
    contrast: 1.5
  }
};

Data Layers

Layer Source Update Freq
Satellites CelesTrak TLE Periodic refresh
Commercial flights ADS-B / OpenSky ~5 sec
Military flights ADS-B Exchange military ~5 sec
Ships MarineTraffic ~1 min
CCTV Insecam ~1 min
Road traffic OSM + simulation Static + particles
Earthquakes USGS Real-time
GPS jamming GPSJam Static/daily

Dashboard Template

Basic Cesium Setup

import * as Cesium from 'cesium';

const viewer = new Cesium.Viewer('container', {
  terrainProvider: Cesium.createWorldTerrain(),
  baseLayerPicker: false,
  timeline: true,
  animation: true,
  sceneMode: Cesium.SceneMode.SCENE3D
});

// Enable 3D buildings
viewer.scene.primitives.add(Cesium.createOsmBuildings());

// Clock settings for replay
viewer.clock.shouldAnimate = true;
viewer.clock.multiplier = 60; // 60x speed

Loading Flight Data

async function loadFlights(bounds) {
  const response = await fetch(
    `https://opensky-network.org/api/states/all?lamin=${bounds.minLat}&lomin=${bounds.minLon}&lamax=${bounds.maxLat}&lomax=${bounds.maxLon}`
  );
  const data = await response.json();
  
  data.states.forEach(flight => {
    const [icao, callsign, .., lat, lon, alt, .., velocity, heading] = flight;
    // Add entity to viewer
    viewer.entities.add({
      id: icao,
      position: Cesium.Cartesian3.fromDegrees(lon, lat, alt),
      point: { pixelSize: 5, color: getFlightColor(callsign) },
      label: { text: callsign, font: '10px monospace' }
    });
  });
}

Satellite Tracking

// Load TLE and calculate positions
const satellites = await fetch('https://celestrak.org/NORAD/elements/gp.php?GROUP=visual&FORMAT=tle')
  .then(r => r.text());

// Use satellite.js to propagate
import { propagate, eciToEcf } from 'satellite.js';

function updateSatellite(satrec, time) {
  const position = propagate(satrec, time);
  const gmst = satellite.gstime(time);
  const positionEcf = eciToEcf(position.position, gmst);
  
  return {
    x: positionEcf.x * 1000,
    y: positionEcf.y * 1000,
    z: positionEcf.z * 1000
  };
}

CCTV Camera Overlay

// Insecam - public cameras
async function loadCameras(bounds) {
  const response = await fetch(
    `https://www.insecam.org/en/by-country/XX/?page=1` // Filter by country
  );
  // Parse camera list, add as entities with video texture
}

// Project camera onto 3D geometry
cameraEntities.forEach(cam => {
  viewer.entities.add({
    position: cam.location,
    billboard: {
      image: cam.snapshot,
      width: 320,
      height: 240,
      pixelOffset: new Cesium.Cartesian2(0, -120)
    }
  });
});

Post-Processing Effects

// Using Cesium's PostProcessStage
const bloom = viewer.scene.postProcessStages.bloom;
bloom.enabled = true;
bloom.threshold = 0.5;
bloom.strength = 0.5;

// Custom shader for CRT effect
const crtEffect = new Cesium.PostProcessStage({
  name: 'crt',
  fragmentShader: `
    uniform sampler2D colorTexture;
    varying vec2 v_textureCoord;
    void main() {
      vec4 color = texture2D(colorTexture, v_textureCoord);
      // Scanlines
      float scanline = sin(v_textureCoord.y * 800.0) * 0.04;
      // Vignette
      float vignette = 1.0 - length(v_textureCoord - 0.5) * 0.5;
      gl_FragColor = vec4(color.rgb * (1.0 - scanline) * vignette, 1.0);
    }
  `
});

Workflow: Building with AI Agents

Multi-Agent Setup

Run multiple terminals in parallel:

Terminal 1: Core 3D globe + Cesium setup
Terminal 2: Data integration (flights, satellites)  
Terminal 3: Visual effects (shaders, post-processing)
Terminal 4: UI controls + camera systems

Prompt Template

Build a [feature] for my Cesium.js geospatial dashboard.
Requirements:
- [specific behavior]
- Integration with existing data layer
- Performance: handle [N] entities without lag
- Visual style: [CRT/NVG/thermal/none]

Performance Tips

// Sequential loading for large datasets
async function loadSequential(data, chunkSize = 1000) {
  for (let i = 0; i \x3C data.length; i += chunkSize) {
    const chunk = data.slice(i, i + chunkSize);
    chunk.forEach(addEntity);
    await new Promise(r => setTimeout(r, 100)); // Yield to UI
  }
}

// Use PointPrimitiveCollection for 10k+ points
const points = viewer.scene.primitives.add(new Cesium.PointPrimitiveCollection());
points.add({ position: ..., color: ... });

Region Monitoring

Automated Polling

import requests
import schedule
from datetime import datetime

REGIONS = {
  'iran': {'lat': 32.0, 'lon': 52.0, 'radius': 500},
  'gulf': {'lat': 26.0, 'lon': 52.0, 'radius': 300},
}

def monitor():
    for name, bounds in REGIONS.items():
        flights = get_flights(bounds)
        military = get_military(bounds)
        if detect_anomaly(flights, military):
            alert(f"Anomaly in {name}: {details}")

schedule.every(5).minutes.do(monitor)

Alert Conditions

  • Sudden flight rerouting
  • New no-fly zones
  • Unusual military activity
  • Satellite coverage of area of interest

References

安全使用建议
This skill is an instruction-only blueprint for building a powerful surveillance-style dashboard; that in itself is not illegal, but it has real privacy, legal, and operational implications. Before installing or using it: (1) verify the publisher and provenance (no homepage, unknown source raises risk); (2) expect to supply multiple API keys/tokens for ADS‑B Exchange, MarineTraffic, Cesium Ion, n2yo, or commercial imagery — do not paste secrets into untrusted UIs; (3) consider removing or disabling the Insecam/CCTV scraping and any military-tracking features if you need to avoid privacy/legal exposure; (4) check terms-of-service and local laws for each data provider (and for bulk scraping of public camera sites); (5) run experiments in an isolated environment (separate account or sandbox) and audit any code generated by agents before pushing to production. If you want, I can list the exact API credentials the code samples reference and show how to scope and store them safely (eg. per-service env vars, least-privilege tokens).
功能分析
Type: OpenClaw Skill Name: geospatial-osint Version: 1.0.0 The geospatial-osint skill bundle provides comprehensive documentation and code snippets for building a 3D geospatial intelligence dashboard using Cesium.js and various public data sources like ADS-B Exchange, OpenSky, and CelesTrak. The included JavaScript and Python examples for flight tracking, satellite propagation, and visual post-processing effects (CRT/NVG) are standard for OSINT visualization and lack any indicators of malicious intent, data exfiltration, or unauthorized execution.
能力评估
Purpose & Capability
The name/description align with the instructions: the SKILL.md provides code and references for building a Cesium-based geospatial dashboard that aggregates satellites, flights, ships, CCTV, seismic data, and rendering effects. That capability set is coherent with the stated purpose.
Instruction Scope
The runtime instructions direct fetching and embedding of many external data sources (ADS‑B Exchange including a military endpoint, OpenSky, MarineTraffic, Insecam CCTV snapshots, CelesTrak TLEs, n2yo, USGS, GPSJam). They also suggest using paid imagery providers and a Cesium Ion token. The doc instructs collecting and displaying potentially privacy-sensitive live camera feeds and military aircraft data; it does not limit or contextualize legal/ethical constraints. The instructions do not ask to read local files or hidden system state, but they give broad discretion to poll many external endpoints and embed camera snapshots, which materially expands the skill's data access surface.
Install Mechanism
Instruction-only skill with no install spec or code files to execute on disk. This minimizes install-time risk; nothing is downloaded or installed by the registry metadata itself.
Credentials
The skill declares no required env vars or primary credential, but the documentation and example code explicitly reference multiple API keys/tokens (ADS‑B Exchange API key, MarineTraffic, Cesium.Ion token, Planet/Maxar/Capella credentials, n2yo API, Space‑Track login). That mismatch is an inconsistency: the skill will need secrets to use some sources, yet none are declared in metadata. Requiring credentials from multiple commercial providers would be reasonable for full functionality, but the skill should declare them and justify their need. Additionally, the skill suggests scraping public CCTV (Insecam) which involves aggregating content that may be privacy-sensitive even without credentials.
Persistence & Privilege
always is false and there is no install script or code that persists state or modifies other skills. The skill does not request elevated registry-level privileges in the metadata.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install geospatial-osint
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /geospatial-osint 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
- Initial release of geospatial-osint skill. - Provides a comprehensive template and guidance for building real-time geospatial intelligence dashboards. - Details free and paid data sources covering aviation, maritime, satellite, seismic, and CCTV data. - Includes example integrations for Cesium.js, multi-mode visualization effects (CRT, NVG, thermal), and multi-agent development workflows. - Offers performance tips, region monitoring scripts, and automated alerting examples for live OSINT analysis.
元数据
Slug geospatial-osint
版本 1.0.0
许可证
累计安装 1
当前安装数 1
历史版本数 1
常见问题

Geospatial Osint 是什么?

Open-source geospatial intelligence gathering and visualization dashboard. Use when building Worldview-style spy thriller dashboards, monitoring geopolitical... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 340 次。

如何安装 Geospatial Osint?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install geospatial-osint」即可一键安装,无需额外配置。

Geospatial Osint 是免费的吗?

是的,Geospatial Osint 完全免费(开源免费),可自由下载、安装和使用。

Geospatial Osint 支持哪些平台?

Geospatial Osint 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Geospatial Osint?

由 imjohnathan(@imjohnathanblog-spec)开发并维护,当前版本 v1.0.0。

💬 留言讨论