地震监测系统

简介: 地震监测系统

地震监测系统主要是利用地震检波器收集到的地壳运动信息,从而预测和确定地震的震中以 及强度 。

a2875ca7afa44f2c8b4541f7b87fcd7c.png


预测方法

地震检波器每隔固定的时间间隔采样一次预测地震的能量数据,并保存到文件中,地震监测系统会从文件中读取相应的能量数据,测试在给定的时间点上,一个短时间窗口内的取样值与一个长时间窗口内取样值的商,如果这个比例高于给定的阈值,那么在这个事件点上极有可能发生地震。取样方法:无论短/长时间内的取样值都是使用给定点能量数据的平方加上该点之前的一小部分点能量值的平方之和再求平均值


如: 某个时间点的及之前的 7 个能量数据如下,时间间隔是: 0.01 秒, 短时间周期取 2 个点,长时间周期取 5 个点:

f983a218bec34b82b6d81c8602c2b7ec.png


则:    短时间窗口内的取样值:     (5x5 + 4x4 + 2x2) / 3 = 15

长时间窗口内的取样值: (5x5 + 4x4 + 2x2 +1x1 + 1x1) / 5 = 9


具体开发需求

1.问题描述:


使用数据文件中的一组地震检波器测量值确定可能的地震事件的位置。

2. 输入输出描述:


程序的输入是名为seismic.dat的数据文件和用于计算短时间能量和长时间能量的取样值的数目。输出是给出关于潜在的地震事件次数的报告。

seismic.dat 的结构是这样的,第一行包含两个值: 地震检波器能量值的数目和时间间隔,从第二行开始就是能量值的数据,以空格分开

短时间窗口和长时间窗口的值可以由键盘读入

判定地震事件给定的阀值是 1.5


seismic.dat 中的数据如下:


11          0.01


1     2     1     1     1     5     4     2     1     1     1

算法设计:


1) 读取文件头并分配内存;


2) 从数据文件读取地震数据,从键盘读取计算能量的短时间和长时间窗口测量 值的数目;


3) 计算各个时间点上的短时间窗口和长时间窗口的能量值,打印出可能的地震 事件时间,在这里,因为会涉及到频繁调用短时间窗口和长时间窗口的能量值, 我们可以将计算能量值设计为单独的一个函数


代码实现:

#include <iostream>
#include <Windows.h>
#include <string>
#include <fstream>
#include <cmath>
using namespace std;
#define THRESHOLD 1.5
double power_r(double arr[], int j, int n);
int main(void)
{
  string filename;
  fstream fin;
  double time_s = 0;
  double* arr = NULL;
  double short_power = 0, long_power = 0;
  int num = 0, short_Windows = 0, long_Windows = 0;
  cout << "Enter Your Open File:" << endl;
  cin >> filename;
  fin.open(filename.c_str());
  if (fin.fail())
  {
    cout << "Error Open File.\n";
    exit(-1);
  }
  else
  {
    fin >> num >> time_s;
    if (num > 0)
    {
      arr = new double[num];
      for (int i = 0; i < num; i++)
      {
        fin >> arr[i];
      }
      cout << "请输入长窗口:" << endl;
      cin >> long_Windows;
      cout << "请输入短窗口:" << endl;
      cin >> short_Windows;
      for (int j = long_Windows-1; j < num; j++)
      {
        short_power = power_r(arr, j, short_Windows);
        long_power = power_r(arr, j, long_Windows);
        double ratio = 0;
        ratio = short_power / long_power;
        if (ratio > THRESHOLD)
        {
          cout << " Possible event at " << time_s * j <<"seconds\n";
        }
      }
      delete[] arr;
    }
    fin.close();
  }
  system("pause");
  return 0;
}
double power_r(double arr[],int j, int n) 
{
  double s = 0;
  for (int i = 0; i < n; i++)
  {
    s = s + pow(arr[j - i], 2);
  }
  return s / n;
}


相关文章
|
2月前
|
传感器 数据采集 编解码
振弦采集仪在预防地震灾害监测中的作用与应用前景
振弦采集仪在预防地震灾害监测中的作用与应用前景
振弦采集仪在预防地震灾害监测中的作用与应用前景
|
5月前
|
存储 数据采集 安全
振弦式轴力计和振弦采集仪组成的监测解决方案
振弦式轴力计和振弦采集仪是两种常用的安全监测设备,可以用于监测桥梁、建筑物等结构体的变形、振动以及轴力等参数,以保证结构安全。下面是由振弦式轴力计和振弦采集仪组成的安全监测解决方案:
振弦式轴力计和振弦采集仪组成的监测解决方案
|
5月前
|
存储 数据采集 安全
振弦式轴力计和振弦采集仪组成的安全监测解决方案
振弦式轴力计和振弦采集仪是一种常用的结构安全监测工具,可以用于评估建筑物、桥梁、隧道或其他结构的结构健康状态和安全性能。这种监测方案较为先进、精确,并且能够监测长期的结构反应,因此在工程领域中广泛应用。
振弦式轴力计和振弦采集仪组成的安全监测解决方案
|
5月前
|
安全
振弦式轴力计和振弦采集仪组成的安全监测
振弦式轴力计和振弦采集仪是一种常用于安全监测的技术装置,主要用于检测桥梁、隧道、建筑物和其他结构的变形和振动情况。这种监测设备可以提供精确的数据,帮助工程师和建筑师了解结构的力学特性并确定其结构健康状况。
振弦式轴力计和振弦采集仪组成的安全监测
|
2月前
|
安全
振弦采集仪在预防地质灾害监测中的作用与应用
振弦采集仪是地震灾害监测领域中一项重要的技术装备,它通过检测地壳内部的振动情况,可以有效预防地震灾害的发生,并及时提供有关地震的数据,为人们提供重要的预警信息。振弦采集仪的应用前景广阔,可以在地震监测、预测和研究等方面发挥重要作用。
振弦采集仪在预防地质灾害监测中的作用与应用
|
3月前
|
传感器 数据采集 安全
工程监测振弦采集仪是一种用于岩土安全监测的仪器设备
工程监测振弦采集仪是一种用于岩土安全监测的仪器设备。它主要用于监测岩土体的振动特性和变形情况,以评估岩土体的稳定性和安全性。
|
9月前
|
传感器 安全 前端开发
井下空气质量检测预警系统学习
随着现代化煤矿深入开采,井下空气质量监测已成为重要的安全问题。煤矿通常有大量地瓦斯、煤尘等气体,如果空气质量不良,无疑会给矿工的健康和安全带来极大的威胁。因此,煤矿必须配备有效的井下空气质量检测预警系统,用来监测空气质量,预警可能的问题,为矿工提供更安全的工作环境。
井下空气质量检测预警系统学习
|
5月前
|
安全
振弦采集仪在地震灾害监测中的作用与意义
振弦采集仪在地震灾害监测中起着非常重要的作用,并且具有以下几个方面的意义:
振弦采集仪在地震灾害监测中的作用与意义
|
5月前
|
存储 传感器 数据采集
基于振弦式轴力计和采集仪的安全监测解决方案
振弦式轴力计是一种测量结构物轴向力的设备,通过测量结构物上的振弦振幅变化,可以确定结构物轴向力的大小。采集仪是一种用于采集和存储传感器数据的设备,通常与振弦式轴力计一起使用,用于实时监测结构物的安全状态。基于振弦式轴力计和采集仪的安全监测解决方案包括以下几个步骤:
基于振弦式轴力计和采集仪的安全监测解决方案
|
9月前
|
传感器 监控 安全
井下空气质量检测预警系统,煤矿生产、事故应急检测和实时监测
井下空气质量检测预警系统,主要用于煤矿生产、事故应急检测和实时监测
井下空气质量检测预警系统,煤矿生产、事故应急检测和实时监测