如何根据地震列表选择数据

时间:2019-05-25 10:10:55

标签: sql database oracle oracle-spatial

在这里,我有两个表,并希望在某些受限条件下选择数据,

这是地震列表EQLIST

TIME_                            LATITUDE  LONGITUDE  MAG  EQ_NUM

31-12月-10 04.30.54.520000 下午   0.663    -26.0450000 5.5  1

31-12月-10 04.11.03.180000 上午 -19.209    167.9020000 5.1  2

30-12月-10 11.47.03.930000 下午 -31.830   -178.1350000 5.0  3

30-12月-10 09.22.30.350000 下午 -19.984    168.3530000 5.0  4

30-12月-10 02.36.54.560000 下午 -10.819    165.3760000 5.6  5

... ...

这是数据表BIGDATA

UT                              GEOC_LAT          GEOC_LONG        LOCAL_TIME       KP

01-1月 -06 03.12.51.708000 下午 -32.3847389221191 110.833557128906 22.6032676696777 1.66666666667

01-1月 -06 04.59.07.351000 下午 -3.26855063438416 79.5669708251953 22.2898406982422 1.66666666667

01-1月 -06 05.10.00.245000 下午 36.1917686462402 70.4237747192383 21.8616523742676 1.66666666667

01-1月 -06 11.30.08.354000 上午 -50.4215278625488 331.457702636719 9.59950065612793 1

01-1月 -06 09.07.51.459000 下午 -8.55202579498291 195.695846557617 10.1773509979248 1.66666666667

... ...

条件

我想从BIGDATA的每次地震中,从EQLIST中选择满足以下条件的数据:

  1. 地震(EQLIST.TIME_(TIMESTAMP(6)))前2天(48小时)

  2. 半径内的距离,并且可以根据以下公式计算半径

    enter image description here

    其中M是震级(EQLIST.MAG(NUMBER))

  3. 夜间数据,(BIGDATA.LOCAL_TIME(数字)是从下午6点到第二天早上6点)

  4. BIGDATA.KP(NUMBER)<3

计算列

我也想:

  1. 计算震中(EQLIST.LATITUDE(NUMBER),EQLIST.LONGITUDE(NUMBER))和数据位置(BIGDATA.GEOC_LAT(NUMBER),BIGDATA.GEOC_LONG之间的距离(NUMBER))。

  2. 计算地震(EQLIST.TIME_(TIMESTAMP(6)))和数据(BIGDATA.UT(TIMESTAMP(6)))之间的间隔时间(小时)。

    < / li>
  3. 保留等效项数(EQLIST.EQ_NUM(NUMBER))。

希望您能理解我的意思,谢谢。

Oracle Spatial或Oracle Locator可能会有所帮助,我相信我可以使用它们。对此方向的任何建议将不胜感激。

0 个答案:

没有答案