机器学习实战14-在日本福岛核电站排放污水的背景下,核电站对人口影响的分析实践

news2024/9/23 21:21:13

大家好,我是微学AI,今天给大家介绍一下机器学习实战14-在日本福岛核电站排放污水的背景下,核电站对人口影响的分析实践。
近日,日本政府举行内阁成员会议,决定于2023年8月24日启动福岛核污染水排海。当地时间2023年8月24日13时,日本福岛第一核电站启动核污染水排海。福岛第一核电站的核污水中含有多种放射性物质。对人体存在伤害,其中,锶-90可导致骨组织肉瘤、引发白血病;铯-137会引起软组织肿瘤与癌症;碘-129容易导致甲状腺癌;碳-14可能会损害人类DNA。
在这里插入图片描述

一、放射性物质

放射性物质 存在着三种主要的射线类型,它们分别是阿尔法射线(α)、贝塔射线(β)和伽马射线(γ):
1.阿尔法射线( α \alpha α射线):阿尔法射线是由氦原子核组成的带电粒子束。由于它们包含两个质子和两个中子,因此具有正电荷。阿尔法射线的穿透能力较弱,一般只能穿透数厘米的空气或者几个微米的固体,因此阿尔法射线通常不能通过人体或纸张等薄材料。然而,如果被内部摄入或吸入,则可能对人体造成较大的伤害。

2.贝塔射线( β \beta β射线):贝塔射线是由带电的高速电子或正电子组成的粒子束。电子射线称为 β − \beta^- β射线,而正电子射线称为 β + \beta^+ β+射线。贝塔射线比阿尔法射线具有更强的穿透能力,可以穿透空气和一些较薄的固体物质。然而,贝塔射线的穿透能力仍然相对有限,在适当的屏蔽下可以有效地阻挡。

3.伽马射线( γ \gamma γ射线):伽马射线是高能电磁辐射,类似于X射线。与阿尔法射线和贝塔射线不同,伽马射线不携带任何电荷或粒子,因此不受电场或磁场的影响。伽马射线具有很强的穿透能力,可以穿透大部分常见物质,包括人体组织。为了有效屏蔽伽马射线,通常需要使用较厚的铅、混凝土或其他密度较高的材料。

二、三种射线的核反应

以下是三种射线的典型核反应方程式的示例:

1.阿尔法射线 ( α \alpha α) 反应方程:
Z A X → Z − 2 A − 4 Y + 2 4 α \begin{equation} _{Z}^{A}X \rightarrow _{Z-2}^{A-4}Y + _{2}^{4}\alpha \end{equation} ZAXZ2A4Y+24α

这里 X X X 代表起始元素, Y Y Y 代表产生的元素, Z A _{Z}^{A} ZA 表示原子序数为 Z Z Z,质量数为 A A A 的核。

2.贝塔射线 ( β \beta β) 反应方程:
Z A X → Z + 1 A Y + e − + ν e ˉ \begin{equation} _{Z}^{A}X \rightarrow _{Z+1}^{A}Y + e^{-} + \bar{\nu_e} \end{equation} ZAXZ+1AY+e+νeˉ

这里 X X X 代表起始元素, Y Y Y 代表产生的元素, Z A _{Z}^{A} ZA 表示原子序数为 Z Z Z,质量数为 A A A 的核。 e − e^{-} e 表示负电子(电子), ν e ˉ \bar{\nu_e} νeˉ 表示反中微子。

3.伽马射线 ( γ \gamma γ) 反应方程:
Z A X ∗ → Z A X + γ \begin{equation} _{Z}^{A}X^{*} \rightarrow _{Z}^{A}X + \gamma \end{equation} ZAXZAX+γ

这里 X ∗ X^{*} X 表示激发态的核, X X X 表示基态的核, γ \gamma γ 表示伽马射线。
在这里插入图片描述

三、核电站的数据加载

数据下载地址:链接:https://pan.baidu.com/s/1wz5L2ykpjUNlKs2icTWkNg?pwd=2j0r
提取码:2j0r

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

df = pd.read_csv('nuclear.csv', delimiter=',')

countries_shortNames = [['UNITED STATES OF AMERICA', 'USA'], \
                        ['RUSSIAN FEDERATION', 'RUSSIA'], \
                        ['IRAN, ISLAMIC REPUBLIC OF', 'IRAN'], \
                        ['KOREA, REPUBLIC OF', 'SOUTH KOREA'], \
                        ['TAIWAN, CHINA', 'CHINA']]
for shortName in countries_shortNames:
    df = df.replace(shortName[0], shortName[1])

三、核电站的世界分布

import folium
import matplotlib.cm as cm
import matplotlib.colors as colors

latitude, longitude = 40, 10.0
map_world_NPP = folium.Map(location=[latitude, longitude], zoom_start=2)

viridis = cm.get_cmap('viridis', df['NumReactor'].max())
colors_array = viridis(np.arange(df['NumReactor'].min() - 1, df['NumReactor'].max()))
rainbow = [colors.rgb2hex(i) for i in colors_array]

for nReactor, lat, lng, borough, neighborhood in zip(df['NumReactor'].astype(int), df['Latitude'].astype(float),
                                                     df['Longitude'].astype(float), df['Plant'], df['NumReactor']):
    label = '{}, {}'.format(neighborhood, borough)
    label = folium.Popup(label, parse_html=True)
    folium.CircleMarker(
        [lat, lng],
        radius=3,
        popup=label,
        color=rainbow[nReactor - 1],
        fill=True,
        fill_color=rainbow[nReactor - 1],
        fill_opacity=0.5).add_to(map_world_NPP)

# 在地图上显示
map_world_NPP.save('world_map.html')  # 保存为 HTML 文件
# 然后打开world_map.html 文件 可以看到

在这里插入图片描述
在这里插入图片描述

四、拥有最多核反应堆的20个国家对比

countries = df['Country'].unique()
df_count_reactor = [[i, df[df['Country'] == i]['NumReactor'].sum(), df[df['Country'] == i]['Region'].iloc[0]] for i in
                    countries]
df_count_reactor = pd.DataFrame(df_count_reactor, columns=['Country', 'NumReactor', 'Region'])
df_count_reactor = df_count_reactor.set_index('Country').sort_values(by='NumReactor', ascending=False)[:20]
ax = df_count_reactor.plot(kind='bar', stacked=True, figsize=(10, 3),
                           title='The 20 Countries With The Most Nuclear Reactors in 2010')
ax.set_ylim((0, 150))
for p in ax.patches:
    ax.annotate(str(p.get_height()), xy=(p.get_x(), p.get_height() + 2))
df_count_reactor['Country'] = df_count_reactor.index
sns.set(rc={'figure.figsize': (11.7, 8.27)})
sns.set_style("whitegrid")
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
ax = sns.barplot(x="NumReactor", y="Country", hue="Region", data=df_count_reactor, dodge=False, orient='h')
ax.set_title('2010年拥有最多核反应堆的20个国家', fontsize=16)
ax.set_xlabel('Reactors', fontsize=16)
ax.set_ylabel('')
ax.legend(fontsize='14')

plt.show()

在这里插入图片描述

五、核电站暴露人口的分析

def getMostExposedNPP(Exposedradius):
    df_pop_sort = df.sort_values(by=str('p10_' + str(Exposedradius)), ascending=False)[:10]
    df_pop_sort['Country'] = df_pop_sort['Plant'] + ',\n' + df_pop_sort['Country']
    df_pop_sort = df_pop_sort.set_index('Country')
    df_pop_sort = df_pop_sort.rename(
        columns={str('p90_' + str(Exposedradius)): '1990', str('p00_' + str(Exposedradius)): '2000',
                 str('p10_' + str(Exposedradius)): '2010'})
    df_pop_sort = df_pop_sort[['1990', '2000', '2010']] / 1E6
    ax = df_pop_sort.plot(kind='bar', stacked=False, figsize=(10, 4))
    ax.set_ylabel('Population Exposure in millions', size=14)
    ax.set_title(
        'Location of nuclear power plants \n with the most exposed population \n within ' + Exposedradius + ' km radius',
        size=16)
    print(df_pop_sort['2010'])

getMostExposedNPP('30')


latitude, longitude = 40, 10.0
map_world_NPP = folium.Figure(width=100, height=100)
map_world_NPP = folium.Map(location=[latitude, longitude], zoom_start=2)

for nReactor, lat, lng, borough, neighborhood in zip(df['NumReactor'].astype(int), df['Latitude'].astype(float),
                                                     df['Longitude'].astype(float), df['Plant'], df['NumReactor']):
    label = '{}, {}'.format(neighborhood, borough)
    label = folium.Popup(label, parse_html=True)
    folium.Circle(
        [lat, lng],
        radius=30000,
        popup=label,
        color='grey',
        fill=True,
        fill_color='grey',
        fill_opacity=0.5).add_to(map_world_NPP)

Exposedradius = '30'
df_sort = df.sort_values(by=str('p10_' + str(Exposedradius)), ascending=False)[:10]

for nReactor, lat, lng, borough, neighborhood in zip(df_sort['NumReactor'].astype(int),
                                                     df_sort['Latitude'].astype(float),
                                                     df_sort['Longitude'].astype(float), df_sort['Plant'],
                                                     df_sort['NumReactor']):
    label = '{}, {}'.format(neighborhood, borough)
    label = folium.Popup(label, parse_html=True)
    folium.CircleMarker(
        [lat, lng],
        radius=5,
        popup=label,
        color='red',
        fill=True,
        fill_color='red',
        fill_opacity=0.25).add_to(map_world_NPP)

for nReactor, lat, lng, borough, neighborhood in zip(df_sort['NumReactor'].astype(int),
                                                     df_sort['Latitude'].astype(float),
                                                     df_sort['Longitude'].astype(float), df_sort['Plant'],
                                                     df_sort['NumReactor']):
    label = '{}, {}'.format(neighborhood, borough)
    label = folium.Popup(label, parse_html=True)
    folium.Circle(
        [lat, lng],
        radius=30000,
        popup=label,
        color='red',
        fill=True,
        fill_color='red',
        fill_opacity=0.25).add_to(map_world_NPP)
# 在地图上显示
map_world_NPP.save('world_map2.html')  # 保存为 HTML 文件

在这里插入图片描述

六、总结

如果核电站靠近人口密集区,核污染水排海可能对周边人口产生一些严重影响:

1.健康风险:放射性物质对人体健康产生潜在威胁。如果核污染水排入海洋,有可能通过海洋食物链的途径进入人类的食物供应链中,从而增加食物中放射性物质的摄入风险。不当接触或摄入这些物质可能导致慢性疾病,如癌症和其他与放射性物质相关的健康问题。

2.社会心理影响:核事故可能引发社会心理压力和不安感。居住在福岛核电站附近的居民可能面临被迫疏散、失去家园、生活不稳定等问题,这对他们的心理健康和社会适应能力造成挑战。

3.经济影响:核事故对当地经济造成了持续的冲击。核电站事故导致了大量的停工和疏散措施,对当地居民和企业的生计和经济活动造成了严重影响。此外,核事故还对当地旅游业、农业和渔业等行业带来负面影响,进一步加剧了经济困难。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/935950.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【优化算法】Python实现面向对象的遗传算法

遗传算法 遗传算法(Genetic Algorithm)属于智能优化算法的一种,本质上是模拟自然界中种群的演化来寻求问题的最优解。与之相似的还有模拟退火、粒子群、蚁群等算法。 在具体介绍遗传算法之前,我们先来了解一些知识🧀 DNA: 携带有…

【Acwing901】滑雪(记忆化搜索)题目讲解

题目描述 题目分析 样例解释 轨迹如下所示 状态表示 可以用f[i,j]表示从点(i,j)开始往下滑的最长的滑雪轨迹,那么最终答案就是遍历每一个点的f[i,j],然后取最大值 状态计算 状态的转移也是非常的简单,…

ip地址查询进行企业网络数据管理

在现代企业中,数据管理变得越来越重要。企业需要了解和控制其网络上的各种数据流动,以保护敏感信息并提高网络安全性。IP地址查询是一种常用的技术,可以帮助企业有效地管理网络数据,并识别潜在的威胁。 IP地址查询是通过查找特定I…

Unix时间戳

江科大学习记录 Unix时间戳 Unix 时间戳(Unix Timestamp)定义为从UTC/GMT的1970年1月1日0时0分0秒开始所经过的秒数,不考虑闰秒时间戳存储在一个秒计数器中,秒计数器为32位/64位的整型变量世界上所有时区的秒计数器相同&#xf…

无涯教程-Python机器学习 - Based on human supervision函数

Python机器学习 中的 Based on human s - 无涯教程网无涯教程网提供https://www.learnfk.com/python-machine-learning/machine-learning-with-python-based-on-human-supervision.html

〔017〕Stable Diffusion 之 常用模型推荐 篇

✨ 目录 🎈 模型网站🎈 仿真系列🎈 国风系列🎈 卡通动漫系列🎈 3D系列🎈 一些好用的lora模型 🎈 模型网站 由于现在大模型超级多,导致每种画风的模型太多,那么如何选择最…

Kubernetes对象深入学习之五:TypeMeta无效之谜

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《Kubernetes对象深入学习之五》系列的第五篇,从前文的分析也能看出,代表对象类型的schema.ObjectKind,于…

uview ui 1.x ActonSheet项太多,设置滚动

问题:ActionSheet滚动不了。 使用uview ui :u-action-sheet, 但是item太多,超出屏幕了, 查了一下文档,并没有设置滚动的地方。 官方文档:ActionSheet 操作菜单 | uView - 多平台快速开发的UI框架 - uni-a…

【C语言】程序环境预处理 -- 详解

一、程序的翻译环境和执行环境 在 ANSI C 的任何一种实现中,存在两个不同的环境。 翻译环境,在这个环境中源代码被转换为可执行的机器指令。执行环境,它用于实际执行代码。 1、翻译环境 组成一个程序的每个源文件通过编译过程分别转换成目标代…

如何让qt tableView每个item中个别字用不同颜色显示?

如何让qt tableView每个item中个别字用不同颜色显示? 从上面图片可以看到,Item为红色,数字5为黑色。 要实现在一个控件实现不同颜色,目前想到的只有QTextEdit 。有两种方法,第一种是代理,第二种是通过setI…

python+mysql+前后端分离国内职位数据分析(源码+文档+指导)

系统阐述的是使用国内python职位数据分析系统的设计与实现,对于Python、B/S结构、MySql进行了较为深入的学习与应用。主要针对系统的设计,描述,实现和分析与测试方面来表明开发的过程。开发中使用了 Flask框架和MySql数据库技术搭建系统的整体…

Linux(实操篇二)

Linux实操篇 Linux(实操篇二)1. 常用基本命令1.3 时间日期类1.3.1 date显示当前时间1.3.2 显示非当前时间1.3.3 date设置系统时间1.3.4 cal查看日历 1.4 用户管理命令1.4.1 useradd添加新用户1.4.2 passwd设置用户密码1.4.3 id查看用户是否存在1.4.4 cat /etc/passwd 查看创建了…

【python】python智能停车场数据分析(代码+数据集)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

TypeError: ‘set‘ object is not subscriptable

问题出现的背景:写了一个python脚本,在脚本里用到了 pyexcel_xlsx 这个包,这个包可以读取excel文件。在本地运行可以运行成功,在Linux服务器上面运行报这个错。两边python都是用到3.8版本的,pyexcel_xlsx 版本也相同…

2023-8-26 字符串哈希

题目链接&#xff1a;字符串哈希 #include <iostream>using namespace std;typedef unsigned long long ULL;const int N 100010, P 131;char str[N]; ULL h[N], p[N];ULL get(int l, int r) {return h[r] - h[l - 1] * p[r - l 1]; }int main() {int n, m;cin >…

3000-6000元优质全单吉他推荐,雅马哈LL16、卡马A1、VEAZEN费森S88和伊斯特曼E1D深度评测对比,哪一款会是你心目中的首选呢?

对于初学新手和进阶的朋友来说&#xff0c;可以入手一把性价比很不错的吉他当然是最理想的&#xff0c;对音质和手感有更高要求的&#xff0c;后期想要演出需求的&#xff0c;不妨考虑全单吉他。下面就给大家推荐四款市面上3000-6000元比较热门值得推荐的全单吉他系列品牌&…

分类预测 | MATLAB实现SSA-CNN-SVM基于麻雀算法优化卷积支持向量机分类预测

分类预测 | MATLAB实现SSA-CNN-SVM基于麻雀算法优化卷积支持向量机分类预测 目录 分类预测 | MATLAB实现SSA-CNN-SVM基于麻雀算法优化卷积支持向量机分类预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现SSA-CNN-SVM基于麻雀算法优化卷积支持向量机分类预测…

从源码到原理剖析activity核心知识点

如何在onResume方法中获取到View的宽高&#xff1f; 有两种方式&#xff1a;post和addOnGlobalLayoutListener override fun onResume() {super.onResume()Log.e("onresume",tabBottom.width.toString()"--"tabBottom.height.toString())//view.post之所以…

Docker之私有仓库 RegistryHabor

目录 一、Docker私有仓库&#xff08;Registry&#xff09; 1.1 Registry的介绍 二、搭建本地私有仓库 2.1首先下载 registry 镜像 2.2在 daemon.json 文件中添加私有镜像仓库地址 2.3运行 registry 容器 2.4Docker容器的重启策略 2.5为镜像打标签 2.6上传到私有仓库 2…

SpringBoot+MyBatisPlus+MySql+vue2+elementUi的案例、java访问数据库服务、java提供接口服务

文章目录 前言后端关键代码前端关键代码完整代码 前言 1、项目不使用前后端分离。 2、在创建SpringBoot的时候要注意各个插件间的版本问题。 3、后端技术SpringBootMyBatisPlusMySql。 4、前端技术vue2elementUi。 后端关键代码 简单介绍 1、数据库名称ssm_db 2、表名称tbl_bo…