项目作者: spiegel-im-spiegel

项目描述 :
Importing WHO COVID-2019 Cases Global Data
高级语言: Go
项目地址: git://github.com/spiegel-im-spiegel/cov19data.git
创建时间: 2020-08-26T03:24:23Z
项目社区:https://github.com/spiegel-im-spiegel/cov19data

开源协议:Apache License 2.0

下载


cov19data — Importing WHO COVID-2019 Cases Global Data

check vulns
lint status
GitHub license
GitHub release

This package is required Go 1.16 or later.

Migrated repository to github.com/goark/cov19data

Usage

Import This Package

  1. import "github.com/goark/cov19data"

Get COVID-2019 Global Data (raw data) from WHO Web Site

  1. //go:build run
  2. // +build run
  3. package main
  4. import (
  5. "context"
  6. "fmt"
  7. "io"
  8. "os"
  9. "github.com/goark/cov19data"
  10. "github.com/goark/fetch"
  11. )
  12. func main() {
  13. impt, err := cov19data.NewWeb(context.Background(), fetch.New())
  14. if err != nil {
  15. fmt.Fprintf(os.Stderr, "%+v\n", err)
  16. return
  17. }
  18. defer impt.Close()
  19. if _, err := io.Copy(os.Stdout, impt.RawReader()); err != nil {
  20. fmt.Println(err)
  21. }
  22. }

Import COVID-2019 Global Data from WHO Web Site to Structured Dataset.

  1. //go:build run
  2. // +build run
  3. package main
  4. import (
  5. "bytes"
  6. "context"
  7. "fmt"
  8. "io"
  9. "os"
  10. "time"
  11. "github.com/goark/cov19data"
  12. "github.com/goark/cov19data/entity"
  13. "github.com/goark/cov19data/filter"
  14. "github.com/goark/cov19data/values"
  15. "github.com/goark/errs"
  16. "github.com/goark/fetch"
  17. )
  18. func getData() ([]*entity.GlobalData, error) {
  19. impt, err := cov19data.NewWeb(context.Background(), fetch.New())
  20. if err != nil {
  21. return nil, errs.Wrap(err)
  22. }
  23. defer impt.Close()
  24. return impt.Data(
  25. filter.WithPeriod(
  26. values.NewPeriod(
  27. values.NewDate(2020, time.Month(9), 1),
  28. values.NewDate(2020, time.Month(9), 7),
  29. ),
  30. ),
  31. filter.WithCountryCode(values.CC_JP),
  32. filter.WithRegionCode(values.WPRO),
  33. )
  34. }
  35. func main() {
  36. data, err := getData()
  37. if err != nil {
  38. fmt.Printf("%+v\n", err)
  39. return
  40. }
  41. b, err := entity.ExportCSV(data)
  42. if err != nil {
  43. fmt.Printf("%v\n", err)
  44. return
  45. }
  46. if _, err := io.Copy(os.Stdout, bytes.NewReader(b)); err != nil {
  47. fmt.Println(err)
  48. }
  49. // Output:
  50. // Date_reported,Country_code,Country,WHO_region,New_cases,Cumulative_cases,New_deaths,Cumulative_deaths
  51. // 2020-09-01,JP,Japan,WPRO,527,68392,17,1296
  52. // 2020-09-02,JP,Japan,WPRO,609,69001,11,1307
  53. // 2020-09-03,JP,Japan,WPRO,598,69599,12,1319
  54. // 2020-09-04,JP,Japan,WPRO,669,70268,11,1330
  55. // 2020-09-05,JP,Japan,WPRO,608,70876,19,1349
  56. // 2020-09-06,JP,Japan,WPRO,543,71419,8,1357
  57. // 2020-09-07,JP,Japan,WPRO,437,71856,6,1363
  58. }

Make Histogram data by COVID-2019 Global Data from WHO Web Site.

  1. //go:build run
  2. // +build run
  3. package main
  4. import (
  5. "bytes"
  6. "context"
  7. "fmt"
  8. "io"
  9. "os"
  10. "time"
  11. "github.com/goark/cov19data"
  12. "github.com/goark/cov19data/filter"
  13. "github.com/goark/cov19data/histogram"
  14. "github.com/goark/cov19data/values"
  15. "github.com/goark/errs"
  16. "github.com/goark/fetch"
  17. )
  18. func getHist() ([]*histogram.HistData, error) {
  19. impt, err := cov19data.NewWeb(context.Background(), fetch.New())
  20. if err != nil {
  21. return nil, errs.Wrap(err)
  22. }
  23. defer impt.Close()
  24. return impt.Histogram(
  25. values.NewPeriod(
  26. values.NewDate(2020, time.Month(9), 1),
  27. values.NewDate(2020, time.Month(9), 28),
  28. ),
  29. 7,
  30. filter.WithCountryCode(values.CC_JP),
  31. filter.WithRegionCode(values.WPRO),
  32. )
  33. }
  34. func main() {
  35. hist, err := getHist()
  36. if err != nil {
  37. fmt.Fprintf(os.Stderr, "%+v\n", err)
  38. return
  39. }
  40. b, err := histogram.ExportCSV(hist)
  41. if err != nil {
  42. fmt.Fprintf(os.Stderr, "%v\n", err)
  43. return
  44. }
  45. if _, err := io.Copy(os.Stdout, bytes.NewReader(b)); err != nil {
  46. fmt.Println(err)
  47. }
  48. // Output:
  49. // Date_from,Date_to,Cases,Deaths
  50. // 2020-09-01,2020-09-07,3991,84
  51. // 2020-09-08,2020-09-14,3801,79
  52. // 2020-09-15,2020-09-21,3483,58
  53. // 2020-09-22,2020-09-28,2991,48
  54. }

Modules Requirement Graph

dependency.png