-
Notifications
You must be signed in to change notification settings - Fork 0
/
temp2.py
130 lines (107 loc) · 3.53 KB
/
temp2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# -*- coding: utf-8 -*-
from asyncore import write
import time
import requests
import urllib3
import os
'''
import random
n=random.randrange(0,100)
'''
urllib3.disable_warnings()
#print(n)
url = "https://api.p2pquake.net/v1/human-readable?limit=100"
data = requests.get(url, verify=False).json()[47]
if data["code"] != (551):
exit()
#判定資料是否為地震情報(震源情報、震度速報等)
logfile = open('log.txt', encoding="utf8")
logid1 = logfile.read()
logfile.close
#讀取上次情報ID
logid2 = data["_id"]["$oid"]
#讀取此次情報ID
if logid1 == logid2:
exit()
#判定資料是否為重複
eq = data["earthquake"]
津波情報 = eq["domesticTsunami"]
深さ = (eq["hypocenter"]["depth"]).replace("km","キロ")
規模 = eq["hypocenter"]["magnitude"]
震源地= eq["hypocenter"]["name"]
最大震度 = eq["maxScale"]
発生日時 = eq["time"]
情報種類 = data["issue"]["type"]
震度 = data["points"]
#變數
if 最大震度 == 10:
最大震度 = ("1")
elif 最大震度 == 20:
最大震度 = ("2")
elif 最大震度 == 30:
最大震度 = ("3")
elif 最大震度 == 40:
最大震度 = ("4")
elif 最大震度 == 45:
最大震度 = ("5弱")
elif 最大震度 == 46:
最大震度 = ("5弱以上と推定")
elif 最大震度 == 50:
最大震度 = ("5強")
elif 最大震度 == 55:
最大震度 = ("6弱")
elif 最大震度 == 60:
最大震度 = ("6強")
elif 最大震度 == 70:
最大震度 = ("7")
#判定最大震度
if 規模 == "-1.0":
規模 = "不明"
if 津波情報 == "None":
津波情報 = "この地震による津波の心配はありません"
elif 津波情報 == "Unknown":
津波情報 = "津波情報不明"
elif 津波情報 == "Checking":
津波情報 = "津波の有無を調查中 念のため津波に注意してください"
elif 津波情報 == "NonEffective":
津波情報 = "多少の潮位変動があるかもしれません 被害の心配はありません"
elif 津波情報 == "Watch":
津波情報 = "津波注意報が発表中 海岸から離れてください "
elif 津波情報 == "Warning":
津波情報 = "津波警報等が発表中 直ちに高台に避難してください"
#判定海嘯情報種類
#print(data)
print(震度)
震度代碼= [70,60,55,50,45,46,40,30,20,10]
震度列表= ["<震度7>","<震度6強>","<震度6弱>","<震度5強>","<震度5弱>","<推定5弱以上>","<震度4>","<震度3>","<震度2>","<震度1>"]
def scale(y):
#各地震度函數
a=0
輸出 = ""
for i in 震度:
if (震度[a]["scale"]) == 震度代碼[y]:
輸出 = 輸出 + 震度[a]["addr"] + " "
a=a+1
#獲取完全資料以供下面分辨
if 震度列表[y] + 輸出[0:-1] != 震度列表[y]:
#分辨震度是否有資料,若無跳過
輸出=''
#初始化正式迴圈
a=0
for i in 震度:
if (震度[a]["scale"]) == 震度代碼[y]:
#分離所需震度
本次輸出 = 輸出 + 震度[a]["addr"] + " "
字數=0
for b in 本次輸出:
字數=字數+1
#本次迴圈字數
if 字數 > 11:
print(震度列表[y]+":"+輸出[0:-1])
輸出=''
else:
輸出=輸出 + 震度[a]["addr"] + " "
a=a+1
print(震度列表[y]+":"+輸出[0:-1])
for j in range(0,10):
scale(j)