special.py 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750
  1. def check_id(data):
  2. return 1, data
  3. def jiao_yan_xiang_mu(data):
  4. return 1, data
  5. # 经度 113.7869444 113.7536111
  6. def jing_du(data):
  7. if data:
  8. if 113.7869444 > data > 113.7536111:
  9. return 1, data
  10. else:
  11. return 2, data
  12. else:
  13. return 2, data
  14. # 纬度 35.0458333 35.0125
  15. def weidu_du(data):
  16. if data:
  17. if 35.0458333 > data > 35.0125:
  18. return 1, data
  19. else:
  20. return 2, data
  21. else:
  22. return 2, data
  23. # 固件版本号
  24. def gu_jian_ban_ben(data):
  25. if data[0] == data[1]:
  26. return 1, data[0]
  27. else:
  28. return 2, f"设备{data[0]},输入{data[1]}"
  29. # 电压 合格条件(绿色):\n11~15
  30. def dian_ya(data):
  31. if data:
  32. min_num = min(data)
  33. max_num = max(data)
  34. if 11.0 < min_num and max_num < 15.0:
  35. return 1, f"最小值{min_num},最大值{max_num}"
  36. else:
  37. return 2, f"最小值{min_num},最大值{max_num}"
  38. else:
  39. return 2, "没有数据"
  40. # 信号 合格条件(绿色):\n>14
  41. def xin_hao(data):
  42. if data:
  43. min_num = min(data)
  44. max_num = max(data)
  45. is_right = False
  46. for k in data:
  47. if k > 14.0:
  48. is_right = True
  49. if is_right:
  50. return 1, f"最小值{min_num},最大值{max_num}"
  51. else:
  52. return 2, f"最小值{min_num},最大值{max_num}"
  53. else:
  54. return 2, "没有数据"
  55. # sim卡信息 大于等于180天单元格显示绿色\n2、小于180天大于等于30天单元格显示黄色、\n3、小于30天单元格显示为红色
  56. def sim(data):
  57. if isinstance(data, int):
  58. if 180 <= data:
  59. return 1, f"有效期剩余{data}天"
  60. elif 30 <= data < 180:
  61. return 3, f"有效期剩余{data}天"
  62. elif data < 30:
  63. return 2, f"有效期剩余{data}天"
  64. else:
  65. return 2, data
  66. def wei_zhi(data):
  67. if data == "河南省新乡市原阳县":
  68. return 1, data
  69. else:
  70. return 2, data
  71. # 上传数据条数 合格条件(绿色):\n1、大于7条\n2、两条数据时间间隔小于20分钟的出现频次2次以内、两条数据间隔大于40分钟出现频率2次以内
  72. def shu_ju_tiao_shu(data):
  73. if data:
  74. if len(data) > 7:
  75. # 计算数据间隔
  76. interval = []
  77. for k in range(len(data) - 1):
  78. interval.append(data[k] - data[k+1])
  79. lte_20 = []
  80. gte_40 = []
  81. for i in interval:
  82. if i < 1200:
  83. lte_20.append(i)
  84. if i > 2400:
  85. gte_40.append(i)
  86. if len(lte_20) < 2 and len(gte_40) < 2:
  87. return 1, f"数据量:{len(data)},间隔<20分钟:{len(lte_20)},间隔>40分钟:{len(gte_40)}"
  88. else:
  89. return 2, f"数据量:{len(data)},间隔<20分钟:{len(lte_20)},间隔>40分钟:{len(gte_40)}"
  90. else:
  91. return 2, f"数据量:{len(data)}"
  92. else:
  93. return 2, "无数据"
  94. # "风速": "合格条件(绿色):\n1、0<示值<10\n2、有1条合格 即可",
  95. def feng_su(data):
  96. # 去除字段中 -99.99 数据
  97. data = [i for i in data if i != -99.99]
  98. if data:
  99. min_num = min(data)
  100. max_num = max(data)
  101. for i in data:
  102. if 0 < i < 10:
  103. return 1, f"最小值{min_num},最大值{max_num}"
  104. else:
  105. return 2, f"最小值{min_num},最大值{max_num}"
  106. else:
  107. return 2, "没有数据"
  108. # "风向": "合格条件(绿色):\n1、0<示值<360\n2、有1条合格即可"
  109. def feng_xiang(data):
  110. # 去除字段中 -99.99 数据
  111. data = [i for i in data if i != -99.99]
  112. if data:
  113. min_num = min(data)
  114. max_num = max(data)
  115. for i in data:
  116. if 0 < i < 360:
  117. return 1, f"最小值{min_num},最大值{max_num}"
  118. else:
  119. return 2, f"最小值{min_num},最大值{max_num}"
  120. else:
  121. return 2, "没有数据"
  122. # "降雨量累计": "合格条件(绿色):\n1、0<示值\n2、00:00示值归零\n3、有1条合格即可"
  123. def jiang_yu(data):
  124. # 去除字段中 -99.99 数据
  125. data = [i for i in data if i != -99.99]
  126. if data:
  127. min_num = min(data)
  128. max_num = max(data)
  129. for i in data:
  130. if 0.1 < i :
  131. return 1, f"最小值{min_num},最大值{max_num}"
  132. else:
  133. return 2, f"最小值{min_num},最大值{max_num}"
  134. else:
  135. return 2, "没有数据"
  136. # "土壤含水率": "合格条件(绿色):\n1、0<示值<=100\n2、有1条合格即可
  137. def tu_rang_han_shui(data):
  138. # 去除字段中 -99.99 数据
  139. data = [i for i in data if i != -99.99]
  140. if data:
  141. min_num = min(data)
  142. max_num = max(data)
  143. for k in data:
  144. if 0<k<=100:
  145. return 1, f"最小值{min_num},最大值{max_num}"
  146. else:
  147. return 2, f"最小值{min_num},最大值{max_num}"
  148. else:
  149. return 2, "没有数据"
  150. # "土壤温度": "合格条件(绿色):\n1.≠0且在-5~35°C之间\n2、有1条合格即可"
  151. def tu_rang_wen_du(data):
  152. # 去除字段中 -99.99 数据
  153. data = [i for i in data if i != -99.99]
  154. if data:
  155. min_num = min(data)
  156. max_num = max(data)
  157. for i in data:
  158. if -5 < i < 35:
  159. return 1, f"最小值{min_num},最大值{max_num}"
  160. else:
  161. return 2, f"最小值{min_num},最大值{max_num}"
  162. else:
  163. return 2, "没有数据"
  164. # "盐分": "合格条件(绿色):\n1、0<示值<1000#2、有1条合格即可",
  165. def yan_fen(data):
  166. # 去除字段中 -99.99 数据
  167. data = [i for i in data if i != -99.99]
  168. if data:
  169. min_num = min(data)
  170. max_num = max(data)
  171. for i in data:
  172. if 0 < i < 1000:
  173. return 1, f"最小值{min_num},最大值{max_num}"
  174. else:
  175. return 2, f"最小值{min_num},最大值{max_num}"
  176. else:
  177. return 2, "没有数据"
  178. # "电导率": "合格条件(绿色):\n1、0<示值\n2、有1条合格即"
  179. def dian_dao_lv(data):
  180. # 去除字段中 -99.99 数据
  181. data = [i for i in data if i != -99.99]
  182. if data:
  183. min_num = min(data)
  184. max_num = max(data)
  185. for k in data:
  186. if k > 0.0:
  187. return 1, f"最小值{min_num},最大值{max_num}"
  188. else:
  189. return 2, f"最小值{min_num},最大值{max_num}"
  190. else:
  191. return 2, "没有数据"
  192. # "氮": "合格条件(绿色):\n1、0<示值\n2、有1条合格即可",
  193. def dan(data):
  194. # 去除字段中 -99.99 数据
  195. data = [i for i in data if i != -99.99]
  196. if data:
  197. min_num = min(data)
  198. max_num = max(data)
  199. for i in data:
  200. if 0 < i :
  201. return 1, f"最小值{min_num},最大值{max_num}"
  202. else:
  203. return 2, f"最小值{min_num},最大值{max_num}"
  204. else:
  205. return 2, "没有数据"
  206. # "磷": "合格条件(绿色):\n1、0<示值且不能为负值\n2、有1条合格即可",
  207. def lin(data):
  208. # 去除字段中 -99.99 数据
  209. data = [i for i in data if i != -99.99]
  210. if data:
  211. min_num = min(data)
  212. max_num = max(data)
  213. for i in data:
  214. if 0 < i:
  215. return 1, f"最小值{min_num},最大值{max_num}"
  216. else:
  217. return 2, f"最小值{min_num},最大值{max_num}"
  218. else:
  219. return 2, "没有数据"
  220. # "光合有效辐射": "合格条件(绿色):\n1、0<示值且不能为负值\n2、有1条合格即可",
  221. def guang_he_fu_she(data):
  222. # 去除字段中 -99.99 数据
  223. data = [i for i in data if i != -99.99]
  224. if data:
  225. min_num = min(data)
  226. max_num = max(data)
  227. for i in data:
  228. if 0 < i:
  229. return 1, f"最小值{min_num},最大值{max_num}"
  230. else:
  231. return 2, f"最小值{min_num},最大值{max_num}"
  232. else:
  233. return 2, "没有数据"
  234. # "日照时数": "合格条件(绿色):\n1、0.1≤示值\n2、有1条合格即可",
  235. def ri_zhao(data):
  236. # 去除字段中 -99.99 数据
  237. data = [i for i in data if i != -99.99]
  238. if data:
  239. min_num = min(data)
  240. max_num = max(data)
  241. for i in data:
  242. if 0.1 < i:
  243. return 1, f"最小值{min_num},最大值{max_num}"
  244. else:
  245. return 2, f"最小值{min_num},最大值{max_num}"
  246. else:
  247. return 2, "没有数据"
  248. # "PM2.5": "合格条件(绿色):\n1、0<示值且不能为负值\n2、有1条合格即可",
  249. def pm25(data):
  250. # 去除字段中 -99.99 数据
  251. data = [i for i in data if i != -99.99]
  252. if data:
  253. min_num = min(data)
  254. max_num = max(data)
  255. for i in data:
  256. if 0 < i:
  257. return 1, f"最小值{min_num},最大值{max_num}"
  258. else:
  259. return 2, f"最小值{min_num},最大值{max_num}"
  260. else:
  261. return 2, "没有数据"
  262. # "PM10": "合格条件(绿色):\n1、0<示值\n2、有1条合格即可",
  263. def pm10(data):
  264. # 去除字段中 -99.99 数据
  265. data = [i for i in data if i != -99.99]
  266. if data:
  267. min_num = min(data)
  268. max_num = max(data)
  269. for i in data:
  270. if 0 < i:
  271. return 1, f"最小值{min_num},最大值{max_num}"
  272. else:
  273. return 2, f"最小值{min_num},最大值{max_num}"
  274. else:
  275. return 2, "没有数据"
  276. # "负氧离子": "合格条件(绿色):\n1、0<示值<1000\n2、有1条合格即可",
  277. def fu_li_zi(data):
  278. # 去除字段中 -99.99 数据
  279. data = [i for i in data if i != -99.99]
  280. if data:
  281. min_num = min(data)
  282. max_num = max(data)
  283. for i in data:
  284. if 0 < i < 1000:
  285. return 1, f"最小值{min_num},最大值{max_num}"
  286. else:
  287. return 2, f"最小值{min_num},最大值{max_num}"
  288. else:
  289. return 2, "没有数据"
  290. # "总辐射": "合格条件(绿色):\n1、0<示值\n2、有1条合格即可",
  291. def zong_fu_she(data):
  292. # 去除字段中 -99.99 数据
  293. data = [i for i in data if i != -99.99]
  294. if data:
  295. min_num = min(data)
  296. max_num = max(data)
  297. for i in data:
  298. if 0 < i:
  299. return 1, f"最小值{min_num},最大值{max_num}"
  300. else:
  301. return 2, f"最小值{min_num},最大值{max_num}"
  302. else:
  303. return 2, "没有数据"
  304. # "二氧化碳": "合格条件(绿色):\n1、400<示值<1500\n2、有1条合格即可",
  305. def er_yang_hua_tan(data):
  306. # 去除字段中 -99.99 数据
  307. data = [i for i in data if i != -99.99]
  308. if data:
  309. min_num = min(data)
  310. max_num = max(data)
  311. for i in data:
  312. if 400 < i < 1500:
  313. return 1, f"最小值{min_num},最大值{max_num}"
  314. else:
  315. return 2, f"最小值{min_num},最大值{max_num}"
  316. else:
  317. return 2, "没有数据"
  318. # "蒸发量": "合格条件(绿色):\n1、0<示值\n2、有1条合格即可",
  319. def zheng_fa(data):
  320. # 去除字段中 -99.99 数据
  321. data = [i for i in data if i != -99.99]
  322. if data:
  323. min_num = min(data)
  324. max_num = max(data)
  325. for i in data:
  326. if 0 < i:
  327. return 1, f"最小值{min_num},最大值{max_num}"
  328. else:
  329. return 2, f"最小值{min_num},最大值{max_num}"
  330. else:
  331. return 2, "没有数据"
  332. # "土壤PH": "合格条件(绿色):\n1、6~8\n2、有1条合格即可",
  333. def tu_rang_ph(data):
  334. # 去除字段中 -99.99 数据
  335. data = [i for i in data if i != -99.99]
  336. if data:
  337. min_num = min(data)
  338. max_num = max(data)
  339. for i in data:
  340. if 5 < i < 10:
  341. return 1, f"最小值{min_num},最大值{max_num}"
  342. else:
  343. return 2, f"最小值{min_num},最大值{max_num}"
  344. else:
  345. return 2, "没有数据"
  346. # "钾": "合格条件(绿色):\n1、0<示值\n2、有1条合格即可",
  347. def jia(data):
  348. # 去除字段中 -99.99 数据
  349. data = [i for i in data if i != -99.99]
  350. if data:
  351. min_num = min(data)
  352. max_num = max(data)
  353. for i in data:
  354. if 0 < i:
  355. return 1, f"最小值{min_num},最大值{max_num}"
  356. else:
  357. return 2, f"最小值{min_num},最大值{max_num}"
  358. else:
  359. return 2, "没有数据"
  360. # "紫外辐射": "合格条件(绿色):\n1、0<示 值\n2、有1条合格即可",
  361. def zi_wai_fu_she(data):
  362. # 去除字段中 -99.99 数据
  363. data = [i for i in data if i != -99.99]
  364. if data:
  365. min_num = min(data)
  366. max_num = max(data)
  367. for i in data:
  368. if 0 < i:
  369. return 1, f"最小值{min_num},最大值{max_num}"
  370. else:
  371. return 2, f"最小值{min_num},最大值{max_num}"
  372. else:
  373. return 2, "没有数据"
  374. # "空气温度": "合格条件(绿色):\n1.-10~35°C,但不允许为0°C\n2、有1条合格即可",
  375. def keong_qi_wen_du(data):
  376. # 去除字段中 -99.99 数据
  377. data = [i for i in data if i != -99.99]
  378. if data:
  379. min_num = min(data)
  380. max_num = max(data)
  381. for i in data:
  382. if -10 < i < 35 and i != 0.0:
  383. return 1, f"最小值{min_num},最大值{max_num}"
  384. else:
  385. return 2, f"最小值{min_num},最大值{max_num}"
  386. else:
  387. return 2, "没有数据"
  388. # "空气湿度": "合格条件(绿色):\n1、0<示值<100\n2、有1条合格即可",
  389. def keong_qi_shi_du(data):
  390. # 去除字段中 -99.99 数据
  391. data = [i for i in data if i != -99.99]
  392. if data:
  393. min_num = min(data)
  394. max_num = max(data)
  395. for i in data:
  396. if 0 < i < 100:
  397. return 1, f"最小值{min_num},最大值{max_num}"
  398. else:
  399. return 2, f"最小值{min_num},最大值{max_num}"
  400. else:
  401. return 2, "没有数据"
  402. # "水质pH": "合格条件(绿色):\n1、6≤示值≤8\n2、有1条合格即可",
  403. def shui_zhi_ph(data):
  404. # 去除字段中 -99.99 数据
  405. data = [i for i in data if i != -99.99]
  406. if data:
  407. min_num = min(data)
  408. max_num = max(data)
  409. for i in data:
  410. if 6 < i < 8:
  411. return 1, f"最小值{min_num},最大值{max_num}"
  412. else:
  413. return 2, f"最小值{min_num},最大值{max_num}"
  414. else:
  415. return 2, "没有数据"
  416. # "水位": "合格条件(绿色):\n1、0<示值\n2、有1条合格即可",
  417. def shui_wei(data):
  418. # 去除字段中 -99.99 数据
  419. data = [i for i in data if i != -99.99]
  420. if data:
  421. min_num = min(data)
  422. max_num = max(data)
  423. for i in data:
  424. if 0 < i:
  425. return 1, f"最小值{min_num},最大值{max_num}"
  426. else:
  427. return 2, f"最小值{min_num},最大值{max_num}"
  428. else:
  429. return 2, "没有数据"
  430. # "水质电导率": "合格条件(绿色):\n1、0<示值\n2、有1条合格即可",
  431. def shui_zhi_dao_dian(data):
  432. # 去除字段中 -99.99 数据
  433. data = [i for i in data if i != -99.99]
  434. if data:
  435. min_num = min(data)
  436. max_num = max(data)
  437. for k in data:
  438. if k > 0.0:
  439. return 1, f"最小值{min_num},最大值{max_num}"
  440. else:
  441. return 2, f"最小值{min_num},最大值{max_num}"
  442. else:
  443. return 2, "没有数据"
  444. # "气压": "合格条件(绿色):\n1、900<示值<1150\n2、有1条合格即可",
  445. def qi_ya(data):
  446. # 去除字段中 -99.99 数据
  447. data = [i for i in data if i != -99.99]
  448. if data:
  449. min_num = min(data)
  450. max_num = max(data)
  451. for i in data:
  452. if 900 < i < 1150:
  453. return 1, f"最小值{min_num},最大值{max_num}"
  454. else:
  455. return 2, f"最小值{min_num},最大值{max_num}"
  456. else:
  457. return 2, "没有数据"
  458. # "光照度": "合格条件(绿色):\n1、0<示值<200000\n2、有1条合格即可",
  459. def guang_zhao_du(data):
  460. # 去除字段中 -99.99 数据
  461. data = [i for i in data if i != -99.99]
  462. if data:
  463. min_num = min(data)
  464. max_num = max(data)
  465. for i in data:
  466. if 0 < i < 200000:
  467. return 1, f"最小值{min_num},最大值{max_num}"
  468. else:
  469. return 2, f"最小值{min_num},最大值{max_num}"
  470. else:
  471. return 2, "没有数据"
  472. # "硫化氢": "合格条件(绿色):\n1、示值=0\n2、有1条合格即可",
  473. def liu_hua_qing(data):
  474. # 去除字段中 -99.99 数据
  475. data = [i for i in data if i != -99.99]
  476. if data:
  477. data = list(set(data))
  478. for i in data:
  479. if int(i) == 0:
  480. return 1, 0
  481. else:
  482. return 2, 0
  483. else:
  484. return 2, 0
  485. # "水温": "合格条件(绿色):\n1.0~30°C,但不允许为0°C\n2、 有1条合格即可",
  486. def shui_wen(data):
  487. # 去除字段中 -99.99 数据
  488. data = [i for i in data if i != -99.99]
  489. if data:
  490. min_num = min(data)
  491. max_num = max(data)
  492. for i in data:
  493. if 1.0 < i < 30:
  494. return 1, f"最小值{min_num},最大值{max_num}"
  495. else:
  496. return 2, f"最小值{min_num},最大值{max_num}"
  497. else:
  498. return 2, "没有数据"
  499. # "溶解氧": "合格条件(绿色):\n1、0<示值\n2、有1条合格即可",
  500. def rong_jie_yang(data):
  501. # 去除字段中 -99.99 数据
  502. data = [i for i in data if i != -99.99]
  503. if data:
  504. min_num = min(data)
  505. max_num = max(data)
  506. for i in min_num:
  507. if 0 < i:
  508. return 1, f"最小值{min_num},最大值{max_num}"
  509. else:
  510. return 2, f"最小值{min_num},最大值{max_num}"
  511. else:
  512. return 2, "没有数据"
  513. # "浊度": "合格条件(绿色):\n1、0<示值\n2、有1条合格即可",
  514. def zhuo_du(data):
  515. # 去除字段中 -99.99 数据
  516. data = [i for i in data if i != -99.99]
  517. if data:
  518. min_num = min(data)
  519. max_num = max(data)
  520. for i in data:
  521. if 0 < i:
  522. return 1, f"最小值{min_num},最大值{max_num}"
  523. else:
  524. return 2, f"最小值{min_num},最大值{max_num}"
  525. else:
  526. return 2, "没有数据"
  527. # "氨气": "合格条件(绿色):\n1、示值=0\n2、有1条合格即可",
  528. def an_qi(data):
  529. # 去除字段中 -99.99 数据
  530. data = [i for i in data if i != -99.99]
  531. if data:
  532. data = list(set(data))
  533. for i in data:
  534. if int(i) == 0:
  535. return 1, 0
  536. else:
  537. return 2, 0
  538. else:
  539. return 2, "没有数据"
  540. # "氧气": "合格条件(绿色):\n1、0<示值\n2、有1条合格即可",
  541. def yang_qi(data):
  542. # 去除字段中 -99.99 数据
  543. data = [i for i in data if i != -99.99]
  544. if data:
  545. min_num = min(data)
  546. max_num = max(data)
  547. for i in data:
  548. if 0 < i:
  549. return 1, f"最小值{min_num},最大值{max_num}"
  550. else:
  551. return 2, f"最小值{min_num},最大值{max_num}"
  552. else:
  553. return 2, "没有数据"
  554. # "PM100": "合格条件(绿色):\n1、0<示值\n2 、有1条合格即可",
  555. def pm100(data):
  556. # 去除字段中 -99.99 数据
  557. data = [i for i in data if i != -99.99]
  558. if data:
  559. min_num = min(data)
  560. max_num = max(data)
  561. for i in data:
  562. if 0 < i:
  563. return 1, f"最小值{min_num},最大值{max_num}"
  564. else:
  565. return 2, f"最小值{min_num},最大值{max_num}"
  566. else:
  567. return 2, "没有数据"
  568. # "露点温度": "合格条件(绿色):\n1.-10~35°C,但不允许为0°C\n2、有1条合格即可",
  569. def lou_dian_wen_du(data):
  570. # 去除字段中 -99.99 数据
  571. data = [i for i in data if i != -99.99]
  572. if data:
  573. min_num = min(data)
  574. max_num = max(data)
  575. for i in data:
  576. if -10 < i < 35 and int(i) != 0:
  577. return 1, f"最小值{min_num},最大值{max_num}"
  578. else:
  579. return 2, f"最小值{min_num},最大值{max_num},存在0的数据有{data.count(0.0)}条"
  580. else:
  581. return 2, "没有数据"
  582. # 热通量 上传条数的数据在均在±500内(但不能为0),即判定合格,否则不合格
  583. def re_tong_liang(data):
  584. # 去除字段中 -99.99 数据
  585. data = [i for i in data if i != -99.99]
  586. if data:
  587. min_num = min(data)
  588. max_num = max(data)
  589. for i in data:
  590. if -500 < i < 500 and int(i) != 0:
  591. return 1, f"最小值{min_num},最大值{max_num}"
  592. else:
  593. return 2, f"最小值{min_num},最大值{max_num},存在0的数据有{data.count(0.0)}条"
  594. else:
  595. return 2, "没有数据"
  596. # 合格数量
  597. def he_ge_shu(data):
  598. return data[0], data[1]
  599. # 有无雨雪 如果存在 -99 则不合格,反之存在 0 或 1 都合格
  600. def is_snow_rain(data):
  601. if data:
  602. if -99 not in data and -99.99 not in data:
  603. return 1, "合格"
  604. else:
  605. return 2, "存在-99或-99.99数据,不合格"
  606. else:
  607. return 2, "没有数据"
  608. # 有无雨雪 -100 到 0 合格,其它不合格
  609. def turang_shuishi(data):
  610. if data:
  611. for i in data:
  612. if i > 0 or i < -100:
  613. return 2, f"存在 {i} 数据,不合格"
  614. else:
  615. min_num = min(data)
  616. max_num = max(data)
  617. return 1, f"最小值{min_num},最大值{max_num}"
  618. else:
  619. return 2, "没有数据"
  620. # 噪声传感器
  621. def zaosheng(data):
  622. if data:
  623. for i in data:
  624. if i > 100 or i < 0:
  625. return 2, f"存在 {i} 数据,不合格"
  626. else:
  627. min_num = min(data)
  628. max_num = max(data)
  629. return 1, f"最小值{min_num},最大值{max_num}"
  630. else:
  631. return 2, "没有数据"
  632. # # "叶面湿度": "合格条件(绿色):\n1、0<示值<=100\n2、有1条合格即可
  633. def yemian_shi_du(data):
  634. # 去除字段中 -99.99 数据
  635. data = [i for i in data if i != -99.99]
  636. if data:
  637. min_num = min(data)
  638. max_num = max(data)
  639. for k in data:
  640. if 0<k<=100:
  641. return 1, f"最小值{min_num},最大值{max_num}"
  642. else:
  643. return 2, f"最小值{min_num},最大值{max_num}"
  644. else:
  645. return 2, "没有数据"
  646. # "叶面温度": "合格条件(绿色):\n1.≠0且在-5~35°C之间\n2、有1条合格即可"
  647. def yemian_wen_du(data):
  648. # 去除字段中 -99.99 数据
  649. data = [i for i in data if i != -99.99]
  650. if data:
  651. min_num = min(data)
  652. max_num = max(data)
  653. for i in data:
  654. if -5 < i < 35:
  655. return 1, f"最小值{min_num},最大值{max_num}"
  656. else:
  657. return 2, f"最小值{min_num},最大值{max_num}"
  658. else:
  659. return 2, "没有数据"