百摩网
当前位置: 首页 生活百科

corona面板怎么设置(COVID仪表板升级)

时间:2023-07-24 作者: 小编 阅读量: 2 栏目名: 生活百科

COVID仪表板升级我最近升级我之前构建的COVIDRails仪表板在这篇文章中,我描述了动机和升级的细节以及共享代码片段每天‬分享‬最新‬软件‬开发‬,Devops,敏捷‬,测试‬以及‬项目‬管理‬最新‬,最热门‬的‬。

我最近升级我之前构建的COVID Rails仪表板。 在这篇文章中,我描述了动机和升级的细节以及共享代码片段。

每天‬分享‬最新‬软件‬开发‬,Devops,敏捷‬,测试‬以及‬项目‬管理‬最新‬,最热门‬的‬文章‬,每天‬花‬3分钟‬学习‬何乐而不为‬,希望‬大家‬点赞‬,评论,加‬关注‬,你的‬支持‬是我‬最大‬的‬动力‬。

早在2020年, 我写了一个使用Rails 6.0.2和ruby 2.5.1 COVID仪表板 。 给定一个日期范围,它显示一个线图的累积以及增量数据证实,死者,恢复情况。 其数据来源:

  1. COVID-19存储库的数据中心系统科学与工程(CSSE)约翰霍普金斯大学:这个GitHub库提供了一个CSV文件每天与国家层面的累积数据。
  2. 这个网站用来提供印度state-wise统计数据 但不幸的是已经停止操作。 国家级数据只有通过30 - 10月- 2021和可以获得通过REST API以JSON格式。

CSSE每天提供累积数据,而covid19india.org提供每日增量数据。我最近升级应用程序。 在这篇文章中,我描述了动机和升级的细节以及共享代码片段。

目标

该系统有两个 Python 和 Ruby 脚本 生成CSV格式的数据集 。 数据插入到数据库,Rails仪表板访问。

四个生成器脚本:

    gdc.py :环球数码创意代表全球每日累计。 脚本CSV文件作为命令行参数,提取每个国家的数据,并打印出来。 输出重定向到一个文件中 数据集/ global_daily_cumulative 文件夹中。 一个控制台的命令来运行它:

python3 gdc.py ../COVID-19/csse_covid_19_data/csse_covid_19_daily_reports/04-25-2020.csv > datasets/global_daily_cumulative/04-25-2020.csv

    gdd.py :GDD代表全球每日三角洲。 脚本计算三角洲数字减去一天的前一天的累积的号码的那一天。 输出重定向到一个文件中 数据集/ global_daily_delta 文件夹中。 一个控制台的命令来运行它:

python3 gdd.py datasets/global_daily_cumulative/04-25-2020.csv > datasets/global_daily_delta/04-25-2020.csv

    idd.rb :IDD代表印度日常三角洲。 脚本中提取的数据一天,日期作为命令行参数提供。 输出重定向到一个文件中 数据集/ india_daily_delta 文件夹中。 一个控制台的命令来运行它:

ruby idd.rb 25-Apr-20 > datasets/india_daily_delta/04-25-2020.csv

注意日期格式使用covid19india.org dd-month-yy。

    idc.rb :IDC代表印度日常累积。 脚本计算通过添加那一天一天的累积数据的增量(δ)前一天累积的号码。 输出重定向到一个文件中 数据集/ india_daily_cumulative 文件夹中。 一个控制台的命令来运行它:

ruby idc.rb 04-25-2020 > datasets/india_daily_cumulative/04-25-2020.csv

daily_all。 rb程序读取所有CSV文件在每个数据集目录,使聚合数据文件整理文件的内容。 例如,在global_daily_cumulative文件夹中所有文件的内容是global_daily_cumulative.csv整理。 主文件中的每一行数据的日期作为第一个字段。 文件名称:

  • global_daily_cumulative.csv
  • global_daily_delta.csvindia_daily_cumulative.csvindia_daily_delta.csv

生成的日常文件和四个聚合数据文件都有相同的数据格式:日期,地点,确认,死亡,恢复。

问题是,我必须运行的四个程序一天的数据。 当然,我可以堆一组命令一个星期在脚本文件并运行文件,但它仍然需要手动工作准备。

我曾经将数据插入到PostgreSQL通过使用 psql 通过CSV文件作为参数。 一个典型的命令,如下所示(在Windows上):

PowerShell

"C:\Program Files\PostgreSQL\13\bin\psql.exe" -h localhost -U postgres -d covid19 -c "SET client_encoding TO 'UTF8';" -c "\copy global_daily_cumulative(date, place, confirmed, deaths, recovered) FROM 'E:\Code\Corona2020\covid19\global_daily_cumulative.csv' DELIMITER ',' CSV;"

在Linux上,命令是:

psql -d covid19 -c "SET client_encoding TO 'UTF8';" -c "\copy india_daily_delta(date, place, confirmed, deaths, recovered) FROM '/var/www/datasets/covid19/india_daily_delta.csv' DELIMITER ',' CSV;"

完整的工作流程如下图所示:

有三个手动步骤。 我的目标是要做 的端到端自动化 。 的想法是只做一个git克隆或把我的电脑和运行一个Ruby文件。 就是这样。 同时,我也打算 升级的仪表板的技术堆栈 .

实现

我选择的语言肯定是Ruby,我移植两个Python程序Ruby。 四生成器脚本成为Ruby关联类的业务逻辑调用方法。 同样,我封装psql命令关联 InsertCovidDataInDb 。 global_daily_cumulative插入数据的文件。 csv, global_daily_delta。 csv, india_daily_cumulative。 csv和india_daily_delta。 csv表global_daily_cumulative, global_daily_delta india_daily_delta和india_daily_cumulative分别。

一个关联是一个Ruby类,包括关联的宝石,调用方法,编写业务逻辑。 没有创建一个类的对象,调用“叫”的方法来运行业务逻辑。 使用类似于Java静态方法。 环球数码创意的文件。 rb有很棒的课 GenerateGdcData gdd。 rb已经 GenerateGddData ,国际国内直拨电话。 rb已经 GenerateIddData 最后idc。 rb已经 GenerateIdcData 类。 例如,下面的代码 GenerateGdcData :

Ruby

require 'interactor'brrequire 'date'brrequire 'csv'brbr$indexes_to_read = {}br$indexes_to_read['format1'] = [1,3,4,5]br$indexes_to_read['format2'] = [3,7,8,9]brbrclass GenerateGdcDatabrinclude Interactorbr brdef callbrcountry_data_hash = {}brDir[context.folder'/*.csv'].each do |file_path|brfile_name = File.basename(file_path, ".*")br br# if file_name is before 03-22-2020, file_format = format1 else format2brfile_date= Date.new(file_name[6..9].to_i, file_name[0..1].to_i, file_name[3..4].to_i)brfile_format= file_date < Date.new(2020, 03, 22) ? "format1" : "format2"brfile_date_str = file_date.to_sbr brcountry_index= $indexes_to_read[file_format][0]brconfirmed_index= $indexes_to_read[file_format][1]brdeaths_index= $indexes_to_read[file_format][2]brrecovered_index= $indexes_to_read[file_format][3]brbrCSV.foreach(file_path, headers: true) do |row|brcountry = row[country_index]brif country == "Mainland China"brcountry = "China"brelsif country == "Korea, North"brcountry = "South Korea"brelsif country == "Korea, South"brcountry = "South Korea"brelsif country == "Gambia, The"brcountry = "Gambia"brelsif country == "Bahamas, The"brcountry = "Bahamas"brelsif country == "The Bahamas"brcountry = "Bahamas"brelsif country == "Gambia, The"brcountry = "Gambia"brelsif country == "The Gambia"brcountry = "Gambia"brendbrbrrow[confirmed_index] = row[confirmed_index] ? row[confirmed_index] : 0brrow[deaths_index]= row[deaths_index]? row[deaths_index]: 0brrow[recovered_index] = row[recovered_index] ? row[recovered_index] : 0brbrconfirmed = row[confirmed_index].to_ibrdeaths= row[deaths_index].to_ibrrecovered = row[recovered_index].to_ibrbrif file_format == "format2"brrow[0] = row[0] ? row[0] : 0brrow[5] = row[5] ? row[5] : 0.0brrow[6] = row[6] ? row[6] : 0.0brendbrbrif country_data_hash.has_key? [file_date,country]brcountry_data_hash[[file_date_str,country]][0]= confirmed if confirmedbrcountry_data_hash[[file_date_str,country]][1]= deaths if deathsbrcountry_data_hash[[file_date_str,country]][2]= recovered if recoveredbrelsebrcountry_data_hash[[file_date_str,country]] = [confirmed, deaths, recovered]brendbrendbrendbrcontext.gdc = country_data_hashbrendbrend

主程序是在一个新的文件,generate_covid19_data.rb。 它的功能很简单:叫五个扶少团团员。

随着自动化升级,我升级堆栈:即。 从2.5.1 Ruby红宝石3.1.1; Rails从6.0.2 7.0.2.3 importmap顺风 ; 4.1.3 Chartkick从3.4.2; 最后,从12到14 PostgreSQL。

每当我现有的应用程序升级到Rails 7,我的方法是生成一个示例应用程序和非功能性文件复制到现有的应用程序。 具体地说,这些都是本、自由和app / javascript文件夹。 从那里我做其他的变化取决于哪种包装方法我选择。 在这种情况下,我改变了 webpacker 来 importmap 的,所以我需要确保文件bin / importmap。 rb在场并在application.html.erb javascript_importmap_tags。

如何运行

克隆CSSE GitHub回购。

$ git clone https://github.com/CSSEGISandData/COVID-19.git

克隆存储库。

$ git clone https://github.com/mh-github/covid19.git

创建一个名为covid19在PostgreSQL数据库的数据库。 创建四个表。 的命令是 可以在GitHub从92行开始 .rails更新covid19 / /仪表板/ config /数据库。 yml与数据库用户名、密码和端口号。 在文件insert_covid_data_in_db输入相同的值。 rb。到项目根目录:

$ cd covid19

你需要ruby-3.1.1。 如果你使用数位视讯,安装这个版本和使用。

$ rvm install 3.1.1br$ rvm use 3.1.1

安装 httparty , pg , 很棒的 宝石,如果你没有在你的系统。

$ gem install httparty pg interactor

插入数据到数据库中。

$ ruby generate_covid19_data.rb path/to/COVID-19

去仪表板文件夹:

$ cd rails/dashboard

切换到ruby 3.1.1。

$ rvm use 3.1.1

安装所需的宝石。

$ bundle install

运行服务器。

$ rails s

在浏览器中访问仪表盘http://locahost: 3000。 这是澳大利亚的截图显示的图表。

我把代码捕获数据插入时间。 psql似乎非常快。 以下数字:

表格

时间(秒)

global_daily_cumulative

171502年

3.09

global_daily_delta

171502年

3.087

india_daily_cumulative

21677

0.335

india_daily_delta

21195年

0.323

这些都不是坏的考虑到我的基础设施是我的桌面PC与i5 - 4570 CPU @ 3.20 ghz处理器,20 GB RAM, Windows 10 Pro v21H1, WSL2。 我PostgreSQL在Windows上运行,在WSL-Ubuntu主程序。

结论

无论项目大小,总会有机会的 重构 和自动化。 即使你的程序是一个基本教程类型,其技术堆栈升级到最新版本给实践和学习,你可以应用到你的工作的应用程序

    推荐阅读
  • 图片提取文字是怎么提取的(图片提取文字的方法)

    打开存储需要提取文字图片文件夹,对着图片右击鼠标——点击复制,我来为大家讲解一下关于图片提取文字是怎么提取的?这样就将图片粘贴到word文档中了,粘贴好就点击菜单栏“文件”。在另存为对话框中,点击文件类型下拉箭头——点击“PDF”——点击“保存”这样图片就以PDF文件形式保存起来了。在桌面找到刚刚保存的PDF文件,对着PDF文件右击鼠标——点击“打开方式”——点击“Word2016”。

  • 黄酒焖鸽怎么做(黄酒焖鸽的做法)

    鸽子宰杀后清洗干净;水烧开后放入鸽子焯水;再用水冲洗干净备用;热锅冷油,加入桂皮,香叶和八角煸炒出香味;加入料酒,酱油和盐;加水,倒入沙锅;加入鸽子,再调整水量,没过鸽子的三分之二即可;加入干玫瑰花和金银花,大火煮开后小火煲一个小时;加入事先浸泡好的茶树菇和黑木耳和一小块冰糖再煲半个小时即可。

  • 微信怎么直播游戏(怎样用微信直播游戏)

    微信怎么直播游戏?微信是可以游戏直播,是在微信手机客户端中,找到发现菜单,然后在游戏菜单,点击直播,就可以完成微信游戏的直播了,今天小编就来聊一聊关于微信怎么直播游戏?接下来我们就一起去研究一下吧!首先,点击手机桌面上的微信。接着,进入微信界面,点击发现进入;再接着,进入发现界面,点击游戏;然后,进入游戏界面,点击右边的直播;随即,进入微信游戏直播界面,就可点进去进行直播啦。

  • 三相接触器的接线方法(三相接触器的接线方法是什么)

    下面希望有你要的答案,我们一起来看看吧!三相接触器的接线方法首先电源三相分别接接触器的主触点L1,L2,L3,再从接触器的T1,T2,T3接出三根线接电机的三个接线柱,以上是主电路。控制电路:从L1引出一根线接停止按钮(停止按钮是常闭的,启动按钮是常开的,这个应该知道吧!)从停止按钮出来接启动按钮一端和接触器辅助触点的一端,然后从启动按钮的另一端接辅助触点的另一端,从这一端出来的线接线圈A1,线圈A2出线接L2或L3。

  • 个人征信网上怎么查询(网上怎么查个人征信)

    个人征信网上怎么查询网上查询征信需要登录中国人民银行征信中心官网,点击马上开始-新用户注册-选择银行卡/问题/数字证书方式进行身份验证-通过后选择征信报告-提交后等待身份验证码-输入身份验证码后即可查看征信报告。此外,通过中国人民银行授权的部分商业银行的网上银行也可以查询征信报告。且频繁查询征信还会对个人申请房贷、信用卡等造成影响,建议非必要情况不要随意查询征信。

  • 杀生丸玲一莲托生结局(人物结局圆满吗)

    杀生丸玲一莲托生结局杀生丸向玲表白,和玲最后在一起了。杀生丸和玲之间有一莲托生,一莲托生的意思大概就是生命共享,变相来说就是白头偕老。杀生丸,日本漫画《犬夜叉》及其衍生作品中的角色。是主角犬夜叉同父异母的哥哥,全妖血统,原形为巨大的犬妖。在重伤之际巧遇人类的女孩铃,这是他走向转变之路的开始。随着故事的发展,他的慈悲之心逐渐展露。

  • 得了蛀牙的牙齿长不好(蛀牙在口腔疾病中位居榜首)

    数据来源:丁香医生数据研究所调研数据还显示,最困扰国人的6种常见口腔问题分别是:蛀牙、牙结石、牙黄、牙齿敏感、牙龈出血、口腔异味。还是希望大家能够很好地预防蛀牙的发生。因此,早晚刷牙和每半年给牙齿检查就非常重要。

  • 西安未央区免费孕检指南(西安未央区孕前检查免费)

    西安未央区免费孕检指南:孕检对象:男女双方至少一方为未央区户籍孕检时间:在孕前3-6个月进行孕检项目:健康教育、病史询问、体格检查、临床实验室检查、影像学检查、风险评估、咨询指导和早孕及妊娠结局随访服务等,共19项服务内容,其中医学检查内容14项,包括实验室检查9项,病毒筛查4项,影像学检查1项。

  • 陈小纭个人简介(陈小纭个人资料)

    陈小纭个人简介陈小纭,1989年6月29日出生于吉林省,毕业于中央戏剧学院,中国内地女演员。2010年,陈小纭出演个人首部电视剧《夺爱》,自此开始演艺事业。2015年,出演古装武侠剧《少年四大名捕》,同年主演喜剧电影《肖张兄弟之爱在安达曼》。2016年,主演都市家庭情感剧《小别离》。2018年,参加首个青春体娱跨界类型节目《超新星全运会》。2019年,参加湖南卫视观察类真人秀节目《我家那小子第二季》。

  • 王者荣耀上官婉儿基础连招(王者荣耀上官婉儿三大基础连招口诀)

    新英雄上官婉儿出来以后,不少同学表示这个英雄超级难!一个诀窍在开始介绍连招之前,先要跟大家普及一个非常重要的知识点:玩上官婉儿,一定要养成左右手分开操作的习惯。但上官婉儿的大招在点击以后是靠方向键释放的,同时在每段位移中间有大概三秒的缓冲时间。所以想玩好上官婉儿,记得释放大招的时候左手离开界面,根据具体情况来进行操控。