PR-CYBR/PR-CYBR-MAP

GitHub: PR-CYBR/PR-CYBR-MAP

面向波多黎各的交互式应急响应态势感知平台,集成气象雷达、飓风追踪、SDR 无线电监控、避难所导航和 Mesh 网络规划于一体。

Stars: 0 | Forks: 0

# PR-CYBR Map ## 描述 波多黎各的交互式应急响应和态势感知地图,采用 Jawg Matrix 主题风格,通过动态标记和实时应急数据展示关键位置。 ## 功能 ### 核心功能 - **交互式地图**:通过城市和区域的动态标记探索波多黎各 - **弹窗**:标记位置的信息弹窗 - **响应式设计**:兼容桌面和移动设备 ### 应急响应功能(新增) - **NOAA 气象雷达图层**:可随时开关的实时气象雷达数据 - **天气预警**:自动显示波多黎各活跃的 NOAA 天气预警 - **飓风追踪器**:实时追踪活跃的飓风和热带风暴及其预报路径 - **公用设施统计网格**:展示供水和供电情况的基础设施图层(夜间模式可用) - **避难所位置**: - 带有容量信息的应急飓风避难所位置 - 从任意地址到最近避难所的路线规划 - 使用 OSRM 路由的逐步导航 - **在线 SDR 无线电监控**: - 来自波多黎各无线电频率的实时语音转文本 - 滚动小部件展示开放使用频率上的无线电通信 - 分类消息(紧急、天气、避难所等) - **实时 SITREP 动态**: - 汇总来自多个来源的情况报告 - 集成 NWS、FEMA 和当地应急管理的 RSS 源 - 带有时间戳更新的滚动小部件 ## 如何查看 访问实时网站:[PR-CYBR Map](https://pr-cybr.github.io/PR-CYBR-MAP/) 该网站是一个多页面的 Astro 应用程序,包含以下部分: - **主页**:项目概述和快速链接 - **地图**:带有应急数据图层的交互式 Leaflet 地图 - **Mesh 网络**:社区 mesh 网络浏览器 (M3SH-BROWSER) - **培训中心**:Mesh 网络培训和学习资源 (M3SH-EDU) - **统计**:仓库指标和活动图表 - **讨论**:来自 GitHub Discussions 的社区对话 - **开发看板**:项目任务和进度追踪 - **创建 Issue**:带有模板的快速 Issue 创建 - **文档**:项目文档(README、FEATURES、TESTING、PR_SUMMARY) - **可视化**:Mermaid 图表和可视化内容 ## 架构 ### 多页面 Astro 站点 项目已迁移至位于 `site/` 目录的现代 Astro 站点: - **框架**:Astro + React + TailwindCSS + daisyUI - **主题**:10 个用户可选的暗色主题,支持 localStorage 持久化 - **数据快照**:在构建期间将 GitHub API 数据缓存为 JSON - **地图资产**:为了向后兼容,将旧版 CSS/JS 复制到构建目录中 - **自动化数据**:CI 工作流同步应急数据并构建站点 - **Mesh 工具**:用于 Meshtastic mesh 网络规划和部署的 M3SH 套件 ### 数据流 1. **应急数据** (`data/cache/`):由 `.github/workflows/update-data.yml` 每 30 分钟更新一次 2. **地图资产** (`css/`、`js/`):在构建期间复制到 `site/public/` 3. **GitHub 数据**:在 CI 构建期间通过 `site/scripts/` 中的脚本进行快照 4. **部署**:构建好的站点通过 `.github/workflows/pages.yml` 部署到 GitHub Pages ## 实时代码库思维导图 每次推送时自动生成:**repo-map.html**(通过 GitHub Pages 和 CI 产物)。 当 Pages 启用时,访问地址为:`https://pr-cybr.github.io/PR-CYBR-MAP/repo-map.html` ## 使用地图 ### 控制面板 左上角的控制面板提供对以下功能的快速访问: - 切换气象雷达图层 - 切换公用设施网格(仅限夜间模式) - 刷新飓风数据 - 刷新天气预警 - 从任意地址规划到最近避难所的路线 - **切换 Mesh 构建器** (M3SH-BLDR) ### 仪表盘小部件 右下角的两个小部件提供实时更新: - **无线电通信小部件**:显示转录的无线电通信内容 - **SITREP 小部件**:显示情况报告和应急动态源 ### 交互元素 - 点击标记查看位置详情 - 在弹窗中点击“查看更多”获取详细信息 - 使用避难所弹窗获取前往应急位置的路线 - 查看实时天气和飓风数据图层 ## M3SH Mesh 网络工具 PR-CYBR-MAP 包含用于规划和部署 Meshtastic mesh 网络的 **M3SH** (mesh-network) 套件: ### M3SH-BLDR - 虚拟 Mesh 构建器 - 直接在地图上的**交互式网络构建器** - 放置节点、绘制链路、配置设备 - **Deploy-M3SH 分析**提供: - 网络可靠性评分 - 覆盖范围估算 - 孤立和超范围检测 - 针对单个节点的配置建议 - 环境感知分析(城市/郊区/乡村/开阔地) - 10 多种设备模板(Spec5、RAKWireless、LILYGO、MorosX 等) ### M3SH-L0S - 视距助手 - 计算节点间的距离 - LOS(视距)概率估算 - 为扩展覆盖范围建议中继/上行链路位置 - 在地图上为建议的上行位置提供可视化标记 ### M3SH-BROWSER - 社区网络浏览器 - 浏览所有已知的波多黎各 mesh 网络 - 按波多黎各区域筛选并按名称搜索 - 查看网络配置文件,包括: - 节点数量和状态 - 覆盖范围和可靠性指标 - 配置摘要 - 联系信息 ### M3SH-EDU - 培训中心 - 涵盖 5 个类别的 **50 多份培训指南**: - 硬件设置(设备和无线电) - 软件配置(应用和工具) - 网络概念(协议和路由) - 系统管理(操作系统配置) - 平台指南(协作工具) - 可搜索的指南库 - 难度级别和标签 - 外部文档链接 ### 设计说明 M3SH 工具使用**启发式分析**进行部署规划。该架构旨在支持未来与以下工具的集成: - 用于 RF 覆盖分析的 **Meshtastic Site Planner** - 用于吞吐量建模的 **Meshtastic Simulator** - 用于地形感知 RF 传播的 **SPLAT!** 所有分析接口均设计为可直接替换的模块,无需更改 UI。 ## 开发 ### 本地站点开发 要在本地进行 Astro 站点开发: 1. 克隆仓库: git clone https://github.com/PR-CYBR/PR-CYBR-MAP.git cd PR-CYBR-MAP 2. 安装站点依赖: cd site npm install --legacy-peer-deps 3. 复制用于本地开发的数据: # 从仓库根目录运行 mkdir -p site/public/data/cache cp -r data/cache/* site/public/data/cache/ cp data/PR-CYBR-MAP.json site/public/data/cache/ 4. 添加 API token(可选 - 如果缺少将回退到 OSM): # 创建 site/public/data/config.json { "MAPBOX_ACCESS_TOKEN": "your_token_here", "JAWG_ACCESS_TOKEN": "your_token_here" } 5. 启动开发服务器: npm run dev 打开 http://localhost:4321 6. 构建生产版本: npm run build npm run preview ### 添加文档 将 Markdown 文件放在仓库根目录中。它们将自动链接到文档页面。 ### 添加 Mermaid 图表 1. 在 `mermaid/` 目录中创建 `.mmd` 文件 2. 它们将在构建期间自动复制到站点 3. 通过可视化页面访问它们 ### 主题定制 编辑 `site/tailwind.config.cjs` 以添加或修改 daisyUI 主题。 ### 本地设置(旧版地图) 1. 克隆仓库: git clone https://github.com/PR-CYBR/PR-CYBR-MAP.git cd PR-CYBR-MAP 2. 将所需的 access token 添加到 `data/config.json`: { "MAPBOX_ACCESS_TOKEN": "your_token_here", "JAWG_ACCESS_TOKEN": "your_token_here" } 3. 在本地提供服务(使用任何静态文件服务器): python -m http.server 8000 然后打开 http://localhost:8000 ### 部署 当更改推送到 `main` 分支时,站点会自动部署: 1. **更新数据工作流** (`.github/workflows/update-data.yml`): - 每 30 分钟运行一次 - 获取飓风、天气预警和避难所数据 - 将更新提交到 `data/cache/` 2. **Pages 部署工作流** (`.github/workflows/pages.yml`): - 在推送到 `main` 时触发 - 将旧版地图资产复制到站点 - 运行 GitHub API 快照脚本 - 构建 Astro 站点 - 部署到 GitHub Pages 推送到 `main` 后,站点将在 2-5 分钟内自动更新。 ### CI/CD 数据快照 在 CI 构建期间会对以下数据进行快照: - **stats.json**:仓库 star、fork、watcher、语言、提交活动 - **discussions.json**:最新的 25 个 GitHub Discussions - **projects.json**:GitHub Projects v2 看板或按状态分组的 issue 这些快照由 `site/scripts/` 中的 TypeScript 脚本生成,供统计、讨论和开发看板页面使用。 ### 自动化数据更新 系统使用 GitHub Actions 每 30 分钟自动更新一次应急数据: - 来自 NOAA NHC 的飓风追踪数据 - 来自 NOAA Weather Service 的天气预警 - 避难所状态和可用性 无需人工干预——系统是完全自主的。 ## 架构 ### 仅限客户端 整个应用程序在浏览器中运行,没有服务器端依赖: - 纯 HTML5、CSS3 和 JavaScript - 使用 Leaflet.js 进行地图渲染 - 直接调用公共应急数据源的 API - 本地缓存以提高性能和可靠性 ### 数据源 - **气象雷达**:NOAA RIDGE WMS 服务 - **天气预警**:NOAA Weather Service API - **飓风数据**:NOAA 国家飓风中心 GeoJSON 源 - **路由**:OSRM (Open Source Routing Machine) - **地理编码**:Nominatim (OpenStreetMap) ### 轻量化设计 - 最小依赖(仅 Leaflet.js) - 高效的缓存策略 - 针对 GitHub Pages 托管进行了优化 - 无需构建过程 ## 文件结构 ``` PR-CYBR-MAP/ ├── index.html # Main page ├── css/ │ ├── styles.css # Core styles │ ├── widgets.css # Widget styles │ └── ascope_sidebar.css # ASCOPE report styles ├── js/ │ ├── map.js # Main map initialization │ ├── weather.js # Weather radar & alerts │ ├── hurricane.js # Hurricane tracking │ ├── utilities.js # Utility grid overlay │ ├── shelters.js # Shelter locations & routing │ ├── sdr.js # Radio monitoring widget │ ├── sitrep.js # SITREP feed widget │ ├── controls.js # UI control handlers │ └── ascope_report.js # ASCOPE reporting ├── data/ │ ├── PR-CYBR-MAP.json # Location data │ ├── ascope_template.json │ └── cache/ # Auto-updated emergency data │ ├── hurricanes.json │ ├── weather_alerts.json │ └── shelters.json ├── .github/workflows/ │ ├── deploy.yml # Deployment automation │ └── update-data.yml # Data update automation └── README.md # This file ``` ## 许可证 详情请参见 LICENSE 文件。 ## 致谢 - 地图瓦片:[Jawg Maps](https://jawg.io) - 气象数据:[NOAA](https://www.noaa.gov) - 飓风数据:[National Hurricane Center](https://www.nhc.noaa.gov) - 路由服务:[OSRM Project](http://project-osrm.org/) - 基础地图:[OpenStreetMap](https://www.openstreetmap.org)
标签:Astro, CISA项目, ESC4, FEMA, GPT, HTTP/HTTPS抓包, Leaflet, NOAA, OSINT, OSRM, RSS, SDR, Syscall, Web开发, 交互式地图, 仪表盘, 公众安全, 前端, 地图, 基础设施监控, 实时处理, 库, 应急响应, 应急管理, 态势感知, 情报收集, 数据可视化, 数据聚合, 无线电监控, 气象监测, 水电统计, 波多黎各, 漏洞研究, 漏洞管理, 灾难避难所, 社区协作, 社区网络, 网格网络, 网络威胁, 网络安全, 自然灾害, 语音转文本, 路径规划, 隐私保护, 飓风追踪