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

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

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

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主程序。

结论

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

    推荐阅读
  • 化妆用粉扑好还是化妆蛋(化妆用的海绵叫什么)

    如果是鸡蛋形、水滴形、葫芦形等,除了叫化妆海绵,还有一个专门的称呼,叫美妆蛋或海绵蛋,美妆蛋的形状剪裁各式各样,满足不同五官的化妆需求。图片来自网络,如有侵权请告知新手用粉扑还是美妆蛋粉扑是大家印象中根深蒂固的化妆工具,平时用来擦擦粉是很好用的。但是最近大部分粉扑爱好者都被美妆蛋种草了。在这里,推荐新手小白使用美妆蛋化妆,会让底妆更贴服,化妆更简单,十分容易上手。

  • 黑潮深海觉醒什么时候公测 黑潮深海觉醒版号

    官方暂未发布正式公测时间,请等待官方公告,预计在2021年初开启小规模测试。黑潮是一款角色扮演类游戏,在游戏中玩家掌握着世界的困境,可以感受到与众不同的风格,并不断找寻强劲的武器装备,让全球重新点燃光明之火。

  • 广州动物园的非洲狮介绍(动物园的那些事)

    狐獴新成员数量:3只出生日期:3月30日观赏位置:狐獴区名满天下的“丁满”一直以其可爱趣致的外表深得人心,据饲养员介绍,3只小狐獴出生于3月30日。今天在园里,工作人员告诉小e,它们也迎来了新生的幼鸟。出游时,记得做好疫情防控措施哦。

  • 四大生肖女好看又迷人 男人特喜欢(这些生肖女最受异性欢迎)

    这些生肖女最受异性欢迎喜欢星座的朋友们点击右上角关注一下哦!更多精彩等着你!​生肖蛇属蛇的女人集冷艳,性感,高贵气质于一身,她们多数是擅长化妆的人,但并不会把自己弄得庸脂俗粉,而是美的恰到好处再加上她们喜欢运动,注重身材保。

  • 李小璐回应恋爱问题(网曝李小璐秘密怀孕)

    视频中,李小璐非常一本正经地强调自己现在有两个女儿,这句话可把网友吓着了,众所周知,李小璐和贾乃亮在离婚前只有一个女儿甜馨。她之后特地解释另一个女儿就是自己经营的品牌,为了把这份事业做好,李小璐付出了很多心血。虽然李小璐最终和贾乃亮分开了,可却保留了最后的体面,也会团结起来一同陪伴孩子,避免孩子受到外界的伤害。

  • 电脑耳机和外放一起响 电脑耳机和外放一起响win7

    电脑耳机和外放一起响的解决方法是:1、首先打开,选择选项卡看看有没有“RTHDCPL.exe”;选择。打开运行,输入RTHDCPL.exe。选择选项卡,在其中寻找RTHDCPL将其前面的勾打上;输入msconfig。最后重新启动电脑就可以了。

  • 正规的spa店做完要洗澡吗(真人探店)

    说回当天,我和闺蜜简简嗨皮的吃了一顿泡椒牛蛙之后,就去了一家成都的整形医院。这家整形机构属于中型的,总共5层,基本的整形外科、皮肤科都有,还有牙科和中医科。最关键的来了,仪器用的这个,上面有spaceoxygen的字样。最后就是spa了,名字取得有点好听,其实就是敷了一张医用面膜,大概15分钟就取下来了。就这样,小气泡、无针水光和spa总共三个项目就做完了。

  • 为什么猛踩油门可以去除积碳(经常大脚油门对清理积碳有好处吗)

    车主都知道,车开久了会产生积碳。因为这其中含有大量杂质,它们就是积碳的主要成分。加上,劣质燃油还会使燃烧更不充分,会加重积碳产生。间断轰油门反而会增加积碳其实就是油门一脚深一脚浅,这样不仅是没办法清积碳,而且还会增加积碳的产生,主要是过量喷油导致的。燃烧室积碳轰油门难解决还有一些在燃烧室已经沉淀已久的积碳,普通的轰油门基本上是没有办法的,这些其实是汽油里面的烯烃类物质燃烧之后形成的。

  • 如何批量生成雷达图(雷达图的制作)

    雷达图是将多个分类的数据量映射到坐标轴上,对比某项目不同属性的特点,适用于了解同类别的不同属性的综合情况,以及比较不同类别的相同属性差异。雷达图也称为网络图,蜘蛛图,星图,蜘蛛网图,不规则多边形,极坐标图或Kiviat图。它相当于平行坐标图,轴径向排列。我们日常工作中的应用场景:对一个机体的几个评价维度进行评价,找出长板和短板。产品定义雷达图王者荣耀雷达图制作雷达图的制作

  • 臧克家代表作诗集是什么(关于臧克家代表作诗集介绍)

    臧克家代表作诗集是什么《老马》、《有的人》、《罪恶的黑手》、《难民》、《诗与生活》等。《罪恶的黑手》是现代诗人臧克家于1933年创作的一首诗,是臧克家早期诗歌的代表作。诗人通过帝国主义在华兴建教堂一事,深刻揭露了帝国主义者利用宗教对我国进行精神侵略的丑行。表达了诗的对黑暗现实的无比憎恨。同时诗人热情讴歌了人民的创造力,表达了对劳苦大众深深的同情和热爱,坚信最后的胜利属于人民。