ScaDaMaLe Course site and book

Edited by Suparerk Angkawattanawit and Raazesh Sainudiin.

Peer-reviewed by project authors according to these instructions.

Introduction

A total of 22 PhD Student Groups did Projects of their choosing in Scalable Data Science and Distributed Machine Learning, a mandatory course of The WASP Graduate School AI-track in 2020-2021. See ScaDaMaLe Course Pathways to appreciate the pre-requisite modules 000_1 through 000_9 for the union of all 23 projects, including a voluntary one from Masters thesis students.

Best Group Project: The Group Project named MixUp and Generalization by by Olof Zetterqvist, Jimmy Aronsson and Fredrik Hellström of Chalmers University won the Best Group-Project Prize on the basis of peer-review. The prize was donated kindly by the Databricks University Alliance under Rob Reed.

Table of Contents

  1. The Two Cultures by Daniel Ahlsén, Martin Andersson, Niklas Gunnarsson and Jonathan Styrud.
  2. Exploring the GQA Scene Graph Dataset Structure and Properties by Adam Dahlgren, Pavlo Melnyk and Emanuel Sanchez Aimar.
  3. Signed Triads in Social Media by Guangyi Zhang.
  4. Distributed Linear Algebra by Måns Williamson and Jonatan Vallin.
  5. Wikipedia analysis using Latent Dirichlet Allocation (LDA) by Axel Berg, Johan Grönqvist and Jens Gulin.
  6. Unsupervised clustering of particle physics data with distributed training by Karl Bengtsson Bernander, Colin Desmarais, Daniel Gedon and Olga Sunneborn Gudnadottir.
  7. Motif Finding by Adam Lindhe, Petter Restadh and Francesca Tombari.
  8. Distributed Ensemble by Amanda Olmin, Amirhossein Ahmadian and Jakob Lindqvist.
  9. Topic Modeling with SARS-Cov-2 Genome by Hugo Werner and Gizem Çaylak.
  10. Twitter Streaming Using Geolocation and Emoji Based Sentiment Analysis by Georg Bökman and Rasmus Kjær Høier.
  11. Anomaly Detection with Iterative Quantile Estimation and T-digest by Alexander Karlsson, Alvin Jin and George Osipov.
  12. Analysis and Prediction of COVID-19 Data by Chi Zhang, Shuangshuang Chen and Magnus Tarle.
  13. Genomics Analysis with Glow and Spark by Karin Stacke and Milda Pocoviciute.
  14. Distributed Combinatorial Bandits by Niklas Åkerblom, Jonas Nordlöf and Emilio Jorge.
  15. Reinforcement Learning for Intraday Trading by Fabian Sinzinger, Karl Bäckström and Rita Laezza.
  16. Intrusion Detection by MohamedReza Faridghasemnia, Javad Forough, Quantao Yang and Arman Rahbar.
  17. Density Estimation via Voronoi Diagrams in High Dimensions by Robert Gieselmann and Vladislav Polianskii.
  18. Recommender System by Ines De Miranda De Matos Lourenço, Yassir Jedra and Filippo Vannella.
  19. Fundamental Matrix by Linn Öström, Patrik Persson, Johan Oxenstierna and Alexander Dürr.
  20. MixUp and Generalization by Olof Zetterqvist, Jimmy Aronsson and Fredrik Hellström.
  21. Graph Spectral Analysis by Ciwan Ceylan and Hanna Hultin.
  22. SWAP With DDP by Christos Matsoukas, Emir Konuk, Johan Fredin Haslum and Miquel Marti.
  23. Distributed Deep Learning by William Anzén and Christian von Koch.

ScaDaMaLe Course site and book

Link to video presentation: https://www.youtube.com/watch?v=NzxBRxheJ9s&feature=youtu.be

  1. Introduction

This is the final project in the Scalable Data Science and Distributed Machine Learning (6 credits) course. Our aim is to compare and distinguish forum threads from two of the most popular forum sites in Sweden; Familjeliv and Flashback. For this we will use both logisitic regression models and topic modelling. We will compare two different feature approaches using logistic regression; one using word occurencies as our input features and one using more advanced word2vec features. For topic modelling we will use an LDA model and observe the most significant words in each forum.

flvsfb

Project members: - Daniel Ahlsén - Martin Andersson - Niklas Gunnarsson - Jonathan Styrud

  1. Download data

For this project we use data resources from the swedish research unit Språkbanken (https://spraakbanken.gu.se/)

var root = "dbfs:/datasets/student-project-01"
try{
  dbutils.fs.ls(root)
} catch {
  case e: java.io.FileNotFoundException => dbutils.fs.mkdirs(root)
}

display(dbutils.fs.ls(root))

var fl_root = "dbfs:/datasets/student-project-01/familjeliv/"
try{
  dbutils.fs.ls(fl_root)
} catch {
  case e: java.io.FileNotFoundException => dbutils.fs.mkdirs(fl_root)
}

var fb_root = "dbfs:/datasets/student-project-01/flashback/"
try{
  dbutils.fs.ls(fb_root)
} catch {
  case e: java.io.FileNotFoundException => dbutils.fs.mkdirs(fb_root)
}

display(dbutils.fs.ls(root))
path name size
dbfs:/datasets/student-project-01/familjeliv/ familjeliv/ 0.0
dbfs:/datasets/student-project-01/flashback/ flashback/ 0.0
dbfs:/datasets/student-project-01/stoppord.csv stoppord.csv 1936.0
dbfs:/datasets/student-project-01/stopwords2.csv stopwords2.csv 145866.0
dbfs:/datasets/student-project-01/word2vec_model_sex/ word2vec_model_sex/ 0.0
//[   ]	familjeliv-adoption.xml.bz2	            2017-07-23 17:39	195M	 
//[   ]	familjeliv-allmanna-ekonomi.xml.bz2	    2017-09-18 13:50	838M	 
//[   ]	familjeliv-allmanna-familjeliv.xml.bz2	2017-09-19 15:49	1.1G	 
//[   ]	familjeliv-allmanna-fritid.xml.bz2	    2017-09-19 17:30	588M	 
//[   ]	familjeliv-allmanna-husdjur.xml.bz2	    2017-09-20 15:31	846M	 
//[   ]	familjeliv-allmanna-hushem.xml.bz2	    2017-09-21 12:27	1.3G	 
//[   ]	familjeliv-allmanna-kropp.xml.bz2	    2017-09-21 18:41	2.3G	 
//[   ]	familjeliv-allmanna-noje.xml.bz2	    2017-09-21 19:57	1.6G	 
//[   ]	familjeliv-allmanna-samhalle.xml.bz2	2017-09-22 03:52	5.0G	 
//[   ]	familjeliv-allmanna-sandladan.xml.bz2	2017-09-22 10:43	778M	 
//[   ]	familjeliv-anglarum.xml.bz2	            2017-07-23 18:10	336M	 
//[   ]	familjeliv-expert.xml.bz2	            2017-07-20 11:32	142M	 
//[   ]	familjeliv-foralder.xml.bz2	            2017-08-04 19:16	10G	 
//[   ]	familjeliv-gravid.xml.bz2	            2017-07-15 04:50	7.5G	 
//[   ]	familjeliv-kansliga.xml.bz2	            2017-09-05 18:13	14G	 
//[   ]	familjeliv-medlem-allmanna.xml.bz2	    2017-07-24 03:47	4.4G	 
//[   ]	familjeliv-medlem-foraldrar.xml.bz2	    2017-07-20 22:11	4.5G	 
//[   ]	familjeliv-medlem-planerarbarn.xml.bz2	2017-07-18 15:08	1.9G	 
//[   ]	familjeliv-medlem-vantarbarn.xml.bz2	2017-07-17 08:04	4.5G	 
//[   ]	familjeliv-pappagrupp.xml.bz2	        2017-06-28 16:18	38M	 
//[   ]	familjeliv-planerarbarn.xml.bz2	        2017-08-28 20:55	2.8G	 
//[   ]	familjeliv-sexsamlevnad.xml.bz2	        2017-08-25 16:39	2.3G	 
//[   ]	familjeliv-svartattfabarn.xml.bz2	    2017-07-03 07:04	2.6G

//[   ]	flashback-dator.xml.bz2	                2017-04-06 09:08	4.5G	 
//[   ]	flashback-droger.xml.bz2	            2017-04-06 08:59	3.5G	 
//[   ]	flashback-ekonomi.xml.bz2	            2017-04-06 10:53	1.2G	 
//[   ]	flashback-flashback.xml.bz2	            2017-04-05 18:16	429M	 
//[   ]	flashback-fordon.xml.bz2	            2017-04-06 12:00	1.0G	 
//[   ]	flashback-hem.xml.bz2	                2017-04-07 03:10	4.6G	 
//[   ]	flashback-kultur.xml.bz2	            2017-04-06 22:51	5.5G	 
//[   ]	flashback-livsstil.xml.bz2	            2017-04-07 00:11	1.7G	 
//[   ]	flashback-mat.xml.bz2	                2017-04-07 08:52	1.0G	 
//[   ]	flashback-ovrigt.xml.bz2	            2017-04-07 18:54	1.9G	 
//[   ]	flashback-politik.xml.bz2	            2017-04-14 17:06	9.0G	 
//[   ]	flashback-resor.xml.bz2	                2017-04-09 15:52	566M	 
//[   ]	flashback-samhalle.xml.bz2	            2017-04-12 20:36	8.3G	 
//[   ]	flashback-sex.xml.bz2	                2017-04-11 20:32	1.3G	 
//[   ]	flashback-sport.xml.bz2	                2017-04-12 22:10	3.3G	 
//[   ]	flashback-vetenskap.xml.bz2	            2017-04-14 20:34	5.8G	 
import sys.process._

val fl_data = Array("familjeliv-allmanna-ekonomi.xml",
                    "familjeliv-sexsamlevnad.xml")

val fb_data = Array("flashback-ekonomi.xml",
                    "flashback-sex.xml")

val url = "http://spraakbanken.gu.se/lb/resurser/meningsmangder/"
val tmp_folder_fl = "/tmp/familjeliv/"
val tmp_folder_fb = "/tmp/flashback/"

s"rm -f -r ${tmp_folder_fl}" .!! // Remove tmp folder if exists
s"rm -f -r ${tmp_folder_fb}" .!!

for (name <- fl_data){
  try{
    dbutils.fs.ls(s"${fl_root}${name}")
    println(s"${name} already exists!")
  }
  catch{
    case e: java.io.FileNotFoundException => {
      println(s"Downloading ${name} ...")
      s"wget -P ${tmp_folder_fl} ${url}${name}.bz2" .!!
      println("Unzipping ...")
      s"bzip2 -d ${tmp_folder_fl}${name}.bz2" .!!
      println("Moving ... ")
      val localpath=s"file:${tmp_folder_fl}${name}"
      dbutils.fs.mv(localpath, fl_root)
      println(s"Done ${name}!")
    }
  }
}

s"rm -f -r ${tmp_folder_fl}" .!!

for (name <- fb_data){
  try{
    dbutils.fs.ls(s"${fb_root}${name}")
    println(s"${name} already exists!")
  }
  catch{
    case e: java.io.FileNotFoundException => {
      println(s"Downloading ${name} ...")
      s"wget -P ${tmp_folder_fb} ${url}${name}.bz2" .!!
      println("Unzipping ...")
      s"bzip2 -d ${tmp_folder_fb}${name}.bz2" .!!
      println("Moving ... ")
      val localpath=s"file:${tmp_folder_fb}${name}"
      dbutils.fs.mv(localpath, fb_root)
      println(s"Done ${name}!")
    }
  }
}
s"rm -f -r ${tmp_folder_fb}" .!!
familjeliv-allmanna-ekonomi.xml already exists!
familjeliv-sexsamlevnad.xml already exists!
flashback-ekonomi.xml already exists!
flashback-sex.xml already exists!
import sys.process._
fl_data: Array[String] = Array(familjeliv-allmanna-ekonomi.xml, familjeliv-sexsamlevnad.xml)
fb_data: Array[String] = Array(flashback-ekonomi.xml, flashback-sex.xml)
url: String = http://spraakbanken.gu.se/lb/resurser/meningsmangder/
tmp_folder_fl: String = /tmp/familjeliv/
tmp_folder_fb: String = /tmp/flashback/
res14: String = ""

ScaDaMaLe Course site and book

  1. Methods to load data

Preprocessing and loading the relevant data

Each forum comes as an XML-file with the structure given below:

// Data comes in XML-files with the following structure.
/*
<corpus id="familjeliv-adoption">
<forum id="13-242" title="Adoption &gt; Intresserad" url="http://www.familjeliv.
se/forum/13/242">
<thread id="34277335" title="Tips för att välja land" postcount="25" lastpost="2
008-07-08 17:55:14" url="http://www.familjeliv.se/forum/thread/34277335-tips-for
-att-valja-land">
<text datefrom="20080707" dateto="20080707" timefrom="220854" timeto="220854" lix="30.55" ovix="60.74" nk="0.51" id="34284994" username="Miss TN" date="2008-07-07 22:08:54" url="http://www.familjeliv.se/forum/thread/34277335-tips-for-att-valja-land/2#anchor-m16">
<sentence id="bacc55562-baca83a75" _geocontext="|">
<w pos="VB" msd="VB.PRS.AKT" lemma="|känna|" lex="|känna..vb.2|känna..vb.1|" sense="|känna..1:0.522|känna..2:0.313|känna..4:0.158|känna..3:0.006|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="01" dephead="07" deprel="AA">Känner</w>
<w pos="PN" msd="PN.UTR.SIN.DEF.SUB" lemma="|ni|" lex="|ni..pn.1|" sense="|ni..1:-1.000|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="02" dephead="01" deprel="OO">ni</w>
<w pos="PP" msd="PP" lemma="|för|" lex="|för..pp.1|" sense="|för..1:-1.000|för..5:-1.000|för..6:-1.000|för..7:-1.000|för..9:-1.000|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="03" dephead="01" deprel="OA">för</w>
<w pos="DT" msd="DT.NEU.SIN.IND" lemma="|en|" lex="|en..al.1|" sense="|den..1:-1.000|en..2:-1.000|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="04" dephead="06" deprel="DT">ett</w>
<w pos="JJ" msd="JJ.POS.NEU.SIN.IND.NOM" lemma="|låg|" lex="|låg..av.1|" sense="|låg..1:-1.000|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="05" dephead="06" deprel="AT">lågt</w>
<w pos="NN" msd="NN.NEU.SIN.IND.NOM" lemma="|medgivande|" lex="|medgivande..nn.1|" sense="|medgivande..1:0.595|medgivande..2:0.405|" prefix="|medge..vb.1|mede..nn.1|" suffix="|givande..nn.1|ande..nn.1|" compwf="|medgiv+ande|med+givande|med+giv+ande|" complemgram="|medge..vb.1+ande..nn.1:4.632e-17|mede..nn.1+givande..nn.1:6.075e-27|mede..nn.1+giv..nn.1+ande..nn.1:5.387e-27|mede..nn.1+ge..vb.1+ande..nn.1:1.257e-29|" ref="06" dephead="03" deprel="PA">medgivande</w>
<w pos="VB" msd="VB.PRS.AKT" lemma="|skola|" lex="|skola..vb.2|" sense="|skola..4:-1.000|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="07" deprel="ROOT">ska</w>
<w pos="PN" msd="PN.UTR.PLU.DEF.SUB" lemma="|ni|" lex="|ni..pn.1|" sense="|ni..1:-1.000|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="08" dephead="07" deprel="SS">ni</w>
<w pos="AB" msd="AB" lemma="|verkligen|" lex="|verkligen..ab.1|" sense="|verkligen..1:-1.000|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="09" dephead="07" deprel="MA">verkligen</w>
<w pos="VB" msd="VB.INF.AKT" lemma="|sträva|" lex="|sträva..vb.1|" sense="|sträva..1:-1.000|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="10" dephead="07" deprel="VG">sträva</w>
.
.
.
</sentence>
</text>
</thread>
<thread id="42755312" title="Om vi planerar ett barn om sju år, när ska vi dra igång adoptionsprocessen?" postcount="3" lastpost="2009-04-01 18:39:55" url="http://www.familjeliv.se/forum/thread/42755312-om-vi-planerar-ett-barn-om-sju-ar-nar-ska-vi-dra-igang-adoptionsprocessen">
<text datefrom="20090331" dateto="20090331" timefrom="201724" timeto="201724" lix="27.48" ovix="50.60" nk="0.37" id="42755312" username="alvaereva" date="2009-03-31 20:17:24" url="http://www.familjeliv.se/forum/thread/42755312-om-vi-planerar-ett-barn-om-sju-ar-nar-ska-vi-dra-igang-adoptionsprocessen/1">
<sentence id="bac2ec05f-bace4e647" _geocontext="|">
<w pos="KN" msd="KN" lemma="|" lex="|" sense="|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="01" deprel="ROOT">Som</w>
.
.
.
*/
import org.apache.spark.sql.functions.{col,concat_ws, udf, flatten, explode, collect_list, collect_set, lit}
import org.apache.spark.sql.types.{ ArrayType, StructType, StructField, StringType, IntegerType }
import com.databricks.spark.xml._ // Add the DataFrame.read.xml() method
import org.apache.spark.sql.functions._


def read_xml(file_name: String): org.apache.spark.sql.DataFrame = {
  val sentence_schema = StructType(Array(
    StructField("w", ArrayType(StringType, true), nullable=true)
  ))
  val text_schema = StructType(Array(
     StructField("sentence", ArrayType(sentence_schema), nullable=false)
  ))

  val thread_schema = StructType(Array(
    StructField("_id", StringType, nullable = false),
    StructField("_title", StringType, nullable = false),
    StructField("_url", StringType, nullable = false),
    StructField("text", text_schema, nullable=false)
  ))

  val forum_schema = StructType(Array(
    StructField("_id", StringType, nullable = false),
    StructField("_title", StringType, nullable = false),
    StructField("_url", StringType, nullable = false),
    StructField("thread", ArrayType(thread_schema), nullable=false)
  ))

  val corpus_schema = StructType(Array(
    StructField("_id", StringType, nullable = false),
    StructField("forum", forum_schema, nullable=false)
  ))

  spark.read
    .option("rowTag", "forum")
    .schema(forum_schema)
    .xml(file_name)
 }

def get_dataset(file_name: String) : org.apache.spark.sql.DataFrame = {
  val xml_df = read_xml(file_name)
  val ds = xml_df.withColumn("thread", explode($"thread"))
  val splitted_name = file_name.split("/")
  val forum = splitted_name(splitted_name.size-2)
  val corpus = splitted_name(splitted_name.size-1)
  val value = udf((arr: Seq[String]) => arr.mkString(","))
  ds.select(col("_id") as "forum_id",
                     col("_title") as "forum_title",
                     col("thread._id") as "thread_id",
                     col("thread._title") as "thread_title",
                     flatten(col("thread.text.sentence.w")) as "w")
                .withColumn("w", explode($"w"))
               .groupBy("thread_id")
               .agg(first("thread_title") as("thread_title"),
                    collect_list("w") as "w",
                    first("forum_id") as "forum_id",
                    first("forum_title") as "forum_title")
               .withColumn("w", concat_ws(",",col("w")))
               .withColumn("platform", lit(forum))
               .withColumn("corpus_id", lit(corpus))
}
import org.apache.spark.sql.functions.{col, concat_ws, udf, flatten, explode, collect_list, collect_set, lit}
import org.apache.spark.sql.types.{ArrayType, StructType, StructField, StringType, IntegerType}
import com.databricks.spark.xml._
import org.apache.spark.sql.functions._
read_xml: (file_name: String)org.apache.spark.sql.DataFrame
get_dataset: (file_name: String)org.apache.spark.sql.DataFrame
def save_df(df: org.apache.spark.sql.DataFrame, filePath:String){
  df.write.format("parquet").save(filePath)  
}

def load_df(filePath: String): org.apache.spark.sql.DataFrame = {
  spark.read.format("parquet").load(filePath)
 }

def no_forums(df: org.apache.spark.sql.DataFrame): Long = {
  val forums = df.select("forum_title").distinct()
  forums.show(false)
  forums.count()
}
save_df: (df: org.apache.spark.sql.DataFrame, filePath: String)Unit
load_df: (filePath: String)org.apache.spark.sql.DataFrame
no_forums: (df: org.apache.spark.sql.DataFrame)Long
  1. Save preprocessed data

var fl_root = "dbfs:/datasets/student-project-01/familjeliv/"
var fb_root = "dbfs:/datasets/student-project-01/flashback/"

val fl_data = Array("familjeliv-allmanna-ekonomi",
                    "familjeliv-sexsamlevnad")

val fb_data = Array("flashback-ekonomi",
                    "flashback-sex")

for (name <- fl_data){
  try{
    println(s"${fb_root}${name}_df")
    dbutils.fs.ls(s"${fl_root}${name}_df")
    println(s"${name}_df already exists!")
  }
  catch{
    case e: java.io.FileNotFoundException => {
      val file_name = s"${fl_root}${name}.xml"
      val df = get_dataset(file_name)
      val file_path = s"${fl_root}${name}_df"
      save_df(df, file_path)
    }
  }
}

for (name <- fb_data){
  try{
    println(s"${fb_root}${name}_df")
    dbutils.fs.ls(s"${fb_root}${name}_df")
    println(s"${name}_df already exists!")
  }
  catch{
    case e: java.io.FileNotFoundException => {
      val file_name = s"${fb_root}${name}.xml"
      val df = get_dataset(file_name)
      val file_path = s"${fb_root}${name}_df"
      save_df(df, file_path)
    }
  }
}
dbfs:/datasets/student-project-01/flashback/familjeliv-allmanna-ekonomi_df
familjeliv-allmanna-ekonomi_df already exists!
dbfs:/datasets/student-project-01/flashback/familjeliv-sexsamlevnad_df
familjeliv-sexsamlevnad_df already exists!
dbfs:/datasets/student-project-01/flashback/flashback-ekonomi_df
flashback-ekonomi_df already exists!
dbfs:/datasets/student-project-01/flashback/flashback-sex_df
flashback-sex_df already exists!
fl_root: String = dbfs:/datasets/student-project-01/familjeliv/
fb_root: String = dbfs:/datasets/student-project-01/flashback/
fl_data: Array[String] = Array(familjeliv-allmanna-ekonomi, familjeliv-sexsamlevnad)
fb_data: Array[String] = Array(flashback-ekonomi, flashback-sex)

ScaDaMaLe Course site and book

/scalable-data-science/000_0-sds-3-x-projects/student-project-01_group-TheTwoCultures/01_load_data
import org.apache.spark.sql.functions.{col, concat_ws, udf, flatten, explode, collect_list, collect_set, lit}
import org.apache.spark.sql.types.{ArrayType, StructType, StructField, StringType, IntegerType}
import com.databricks.spark.xml._
import org.apache.spark.sql.functions._
read_xml: (file_name: String)org.apache.spark.sql.DataFrame
get_dataset: (file_name: String)org.apache.spark.sql.DataFrame
save_df: (df: org.apache.spark.sql.DataFrame, filePath: String)Unit
load_df: (filePath: String)org.apache.spark.sql.DataFrame
no_forums: (df: org.apache.spark.sql.DataFrame)Long
dbfs:/datasets/student-project-01/flashback/familjeliv-allmanna-ekonomi_df
familjeliv-allmanna-ekonomi_df already exists!
dbfs:/datasets/student-project-01/flashback/familjeliv-sexsamlevnad_df
familjeliv-sexsamlevnad_df already exists!
dbfs:/datasets/student-project-01/flashback/flashback-ekonomi_df
flashback-ekonomi_df already exists!
dbfs:/datasets/student-project-01/flashback/flashback-sex_df
flashback-sex_df already exists!
fl_root: String = dbfs:/datasets/student-project-01/familjeliv/
fb_root: String = dbfs:/datasets/student-project-01/flashback/
fl_data: Array[String] = Array(familjeliv-allmanna-ekonomi, familjeliv-sexsamlevnad)
fb_data: Array[String] = Array(flashback-ekonomi, flashback-sex)
var file_name = "dbfs:/datasets/student-project-01/familjeliv/familjeliv-allmanna-ekonomi.xml"
var xml_df = read_xml(file_name).cache()
var df = get_dataset(file_name).cache()
file_name: String = dbfs:/datasets/student-project-01/familjeliv/familjeliv-allmanna-ekonomi.xml
xml_df: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [_id: string, _title: string ... 2 more fields]
df: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [thread_id: string, thread_title: string ... 5 more fields]
xml_df.printSchema()
root
 |-- _id: string (nullable = false)
 |-- _title: string (nullable = false)
 |-- _url: string (nullable = false)
 |-- thread: array (nullable = false)
 |    |-- element: struct (containsNull = true)
 |    |    |-- _id: string (nullable = false)
 |    |    |-- _title: string (nullable = false)
 |    |    |-- _url: string (nullable = false)
 |    |    |-- text: struct (nullable = false)
 |    |    |    |-- sentence: array (nullable = false)
 |    |    |    |    |-- element: struct (containsNull = true)
 |    |    |    |    |    |-- w: array (nullable = true)
 |    |    |    |    |    |    |-- element: string (containsNull = true)
xml_df.show(10)
+------+--------------------+--------------------+--------------------+
|   _id|              _title|                _url|              thread|
+------+--------------------+--------------------+--------------------+
|19-290|Allmänna rubriker...|http://www.familj...|[[70148929, Frivi...|
|19-290|Allmänna rubriker...|http://www.familj...|[[58302374, Missh...|
|19-290|Allmänna rubriker...|http://www.familj...|[[36330819, Är så...|
|19-290|Allmänna rubriker...|http://www.familj...|[[75852809, Hur k...|
|19-290|Allmänna rubriker...|http://www.familj...|[[42304381, Hej a...|
|19-290|Allmänna rubriker...|http://www.familj...|[[41294375, när p...|
|19-295|Allmänna rubriker...|http://www.familj...|[[47653437, Har v...|
|19-295|Allmänna rubriker...|http://www.familj...|[[75266317, Anmäl...|
|19-295|Allmänna rubriker...|http://www.familj...|[[76559817, Fel a...|
|19-295|Allmänna rubriker...|http://www.familj...|[[62028128, Vad g...|
+------+--------------------+--------------------+--------------------+
only showing top 10 rows
df.printSchema()
root
 |-- thread_id: string (nullable = true)
 |-- thread_title: string (nullable = true)
 |-- w: string (nullable = false)
 |-- forum_id: string (nullable = true)
 |-- forum_title: string (nullable = true)
 |-- platform: string (nullable = false)
 |-- corpus_id: string (nullable = false)
display(df)

ScaDaMaLe Course site and book

//Imports
import org.apache.spark.ml.feature.StopWordsRemover
import org.apache.spark.ml.feature.RegexTokenizer
import org.apache.spark.ml.classification.LogisticRegression
import org.apache.spark.ml.feature.CountVectorizer
import org.apache.spark.ml.evaluation.BinaryClassificationEvaluator
import org.apache.spark.ml.feature.StopWordsRemover
import org.apache.spark.ml.feature.RegexTokenizer
import org.apache.spark.ml.classification.LogisticRegression
import org.apache.spark.ml.feature.CountVectorizer
import org.apache.spark.ml.evaluation.BinaryClassificationEvaluator
  1. Load the data

/scalable-data-science/000_0-sds-3-x-projects/student-project-01_group-TheTwoCultures/01_load_data
import org.apache.spark.sql.functions.{col, concat_ws, udf, flatten, explode, collect_list, collect_set, lit}
import org.apache.spark.sql.types.{ArrayType, StructType, StructField, StringType, IntegerType}
import com.databricks.spark.xml._
import org.apache.spark.sql.functions._
read_xml: (file_name: String)org.apache.spark.sql.DataFrame
get_dataset: (file_name: String)org.apache.spark.sql.DataFrame
save_df: (df: org.apache.spark.sql.DataFrame, filePath: String)Unit
load_df: (filePath: String)org.apache.spark.sql.DataFrame
no_forums: (df: org.apache.spark.sql.DataFrame)Long
dbfs:/datasets/student-project-01/flashback/familjeliv-allmanna-ekonomi_df
familjeliv-allmanna-ekonomi_df already exists!
dbfs:/datasets/student-project-01/flashback/familjeliv-sexsamlevnad_df
familjeliv-sexsamlevnad_df already exists!
dbfs:/datasets/student-project-01/flashback/flashback-ekonomi_df
flashback-ekonomi_df already exists!
dbfs:/datasets/student-project-01/flashback/flashback-sex_df
flashback-sex_df already exists!
fl_root: String = dbfs:/datasets/student-project-01/familjeliv/
fb_root: String = dbfs:/datasets/student-project-01/flashback/
fl_data: Array[String] = Array(familjeliv-allmanna-ekonomi, familjeliv-sexsamlevnad)
fb_data: Array[String] = Array(flashback-ekonomi, flashback-sex)
//Load dataframes
val file_path_familjeliv = "dbfs:/datasets/student-project-01/familjeliv/familjeliv-sexsamlevnad_df"
val file_path_flashback = "dbfs:/datasets/student-project-01/flashback/flashback-sex_df"
val df_familjeliv = load_df(file_path_familjeliv)
val df_flashback = load_df(file_path_flashback)
file_path_familjeliv: String = dbfs:/datasets/student-project-01/familjeliv/familjeliv-sexsamlevnad_df
file_path_flashback: String = dbfs:/datasets/student-project-01/flashback/flashback-sex_df
df_familjeliv: org.apache.spark.sql.DataFrame = [thread_id: string, thread_title: string ... 5 more fields]
df_flashback: org.apache.spark.sql.DataFrame = [thread_id: string, thread_title: string ... 5 more fields]
//Extract the text
val df_text_flashback = df_flashback.select("w")
val df_text_familjeliv = df_familjeliv.select("w")
df_text_flashback: org.apache.spark.sql.DataFrame = [w: string]
df_text_familjeliv: org.apache.spark.sql.DataFrame = [w: string]
  1. Add labels

//Add label columns and make sure that we have exactly the same amount of data from both forums
val df_text_flashback_c = df_text_flashback.withColumn("c", lit(0))
val df_text_familjeliv_c = df_text_familjeliv.orderBy(rand()).limit(df_text_flashback_c.count().toInt).withColumn("c", lit(1))
val df_text_full = df_text_flashback_c.union(df_text_familjeliv_c)

//Check the counts
println(df_text_flashback_c.count())
println(df_text_familjeliv_c.count())
println(df_text_full.count())
56621
56621
113242
df_text_flashback_c: org.apache.spark.sql.DataFrame = [w: string, c: int]
df_text_familjeliv_c: org.apache.spark.sql.DataFrame = [w: string, c: int]
df_text_full: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [w: string, c: int]
  1. Extract single words

val tokenizer = new RegexTokenizer()
  .setPattern("(?U),") // break by whitespace
  .setMinTokenLength(5) // Filter away tokens with length < 5
  .setInputCol("w") // name of the input column
  .setOutputCol("text") // name of the output column
val tokenized_df = tokenizer.transform(df_text_full).select("c", "text")
tokenized_df.show(3, false)
  1. Remove stopwords

//Stopwordsremover (similar to lda notebook)
val stoppord = sc.textFile("dbfs:/datasets/student-project-01/stoppord.csv").collect()
val stopwordList = Array("bara","lite","finns","vill","samt","inga","även","finns","ganska","också","igen","just","that","with","http","jpg",  "kanske","tycker","gillar","bra","000","måste","tjej","tjejer","tjejen","tjejerna","kvinna","kvinnor","kille","killar","killen","män","rätt","män","com","and","html","många","aldrig","www","mpg","avi","wmv","riktigt","känner","väldigt","font","size","mms","2008","2009", "flashback", "familjeliv").union(stoppord).union(StopWordsRemover.loadDefaultStopWords("swedish"))

val remover = new StopWordsRemover()
  .setStopWords(stopwordList)
  .setInputCol("text")
  .setOutputCol("filtered")
//Run the stopwordsremover
val removed_df = remover.transform(tokenized_df).select("c", "filtered")
removed_df: org.apache.spark.sql.DataFrame = [c: int, filtered: array<string>]
  1. Count words and create vocabulary vector

//Unlimited size vocabulary just to see how much there is
val vectorizerall = new CountVectorizer()
   .setInputCol("filtered")
   .setOutputCol("features")
   .setMinDF(5) // Only count words that occur in at least 5 threadss
   .fit(removed_df) // returns CountVectorizerModel

//This is the one we use, limit size of vocabulary
val vectorizer = new CountVectorizer()
   .setInputCol("filtered")
   .setOutputCol("features")
   .setVocabSize(1000) // Size of dictonary
   .setMinDF(5) // Only count words that occur in at least 5 threadss
   .fit(removed_df) // returns CountVectorizerModel
vectorizerall: org.apache.spark.ml.feature.CountVectorizerModel = CountVectorizerModel: uid=cntVec_e9a01f8ad0fe, vocabularySize=129204
vectorizer: org.apache.spark.ml.feature.CountVectorizerModel = CountVectorizerModel: uid=cntVec_9d51ff227f19, vocabularySize=1000
// Let's take a look at the vocabulary
vectorizer.vocabulary
// Count the word frequencies
val tf = vectorizer.transform(removed_df.select("c", "filtered")).select("c", "features").cache()

//Print the feature vector to show what it looks like
tf.take(1).foreach(println)
[0,(1000,[0,4,5,6,12,16,33,34,48,53,56,60,64,66,68,73,83,84,91,100,101,105,107,119,123,125,127,141,143,163,171,201,205,210,212,261,273,302,325,338,341,348,361,367,383,414,424,453,454,491,571,621,632,635,667,684,693,701,829,849,933,981],[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,1.0,1.0,3.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0])]
tf: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [c: int, features: vector]
  1. Split data into training and test data

//Train test split
val random_order = tf.orderBy(rand())
val splits = random_order.randomSplit(Array(0.8, 0.2), seed = 1337)
val training = splits(0)
val test = splits(1)
println(training.count())
println(test.count())
90818
22424
random_order: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [c: int, features: vector]
splits: Array[org.apache.spark.sql.Dataset[org.apache.spark.sql.Row]] = Array([c: int, features: vector], [c: int, features: vector])
training: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [c: int, features: vector]
test: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [c: int, features: vector]
  1. Logistic Regression model

\[P(y = 1) = \frac{1}{1+exp(-\beta X^T)}\]

\[ X = [1,x_1, \dots, x_m], \quad \beta = [\beta_0, \beta_1, ..., \beta_m] \]

where \(x_i\) is occurrence for word \(i\), \(m\) is 1000.

//Logistic regression
val lr = new LogisticRegression()
  .setLabelCol("c")
  .setMaxIter(100) //Run for 100 iterations (not necessary but let's stay on safe side)
  .setRegParam(0.0001) //Just a tiny bit of regularization to avoid overfitting
  .setElasticNetParam(0.5) // 50-50 between L1 and L2 loss

// Fit the model
val lrModel = lr.fit(training)

// Print the coefficients and intercept for logistic regression
println(s"Coefficients: ${lrModel.coefficients} Intercept: ${lrModel.intercept}")

// Check the training progress
lrModel.binarySummary.objectiveHistory.foreach(loss => println(loss))
//Ugly code to lookup maximum and minimum values
var maxarray = Array.ofDim[Double](5,2)
def findmax(idx: Int, value: Double) = {
  if (value > maxarray(4)(1)){
    maxarray(4)(0) = idx
    maxarray(4)(1) = value
    maxarray = maxarray.sortBy(- _(1))
  }
}
var minarray = Array.ofDim[Double](5,2)
def findmin(idx: Int, value: Double) = {
  if (value < minarray(4)(1)){
    minarray(4)(0) = idx
    minarray(4)(1) = value
    minarray = minarray.sortBy(_(1))
  }
}
maxarray: Array[Array[Double]] = Array(Array(0.0, 0.0), Array(0.0, 0.0), Array(0.0, 0.0), Array(0.0, 0.0), Array(0.0, 0.0))
findmax: (idx: Int, value: Double)Unit
minarray: Array[Array[Double]] = Array(Array(0.0, 0.0), Array(0.0, 0.0), Array(0.0, 0.0), Array(0.0, 0.0), Array(0.0, 0.0))
findmin: (idx: Int, value: Double)Unit
//Let's check which words are considered most important for classification
lrModel.coefficients.foreachActive((idx, value) => findmax(idx, value))

//First check familjeliv
println(maxarray.deep.foreach(println))
println(vectorizer.vocabulary(maxarray(0)(0).toInt))
println(vectorizer.vocabulary(maxarray(1)(0).toInt))
println(vectorizer.vocabulary(maxarray(2)(0).toInt))
println(vectorizer.vocabulary(maxarray(3)(0).toInt))
println(vectorizer.vocabulary(maxarray(4)(0).toInt))
lrModel.coefficients.foreachActive((idx, value) => findmin(idx, value))

//Check for flashback
println(minarray.deep.foreach(println))
println(vectorizer.vocabulary(minarray(0)(0).toInt))
println(vectorizer.vocabulary(minarray(1)(0).toInt))
println(vectorizer.vocabulary(minarray(2)(0).toInt))
println(vectorizer.vocabulary(minarray(3)(0).toInt))
println(vectorizer.vocabulary(minarray(4)(0).toInt))
Array(46.0, 1.8647655096872564)
Array(885.0, 1.275281418044729)
Array(950.0, 1.224376631679196)
Array(380.0, 0.9577079595234373)
Array(32.0, 0.8432880748567715)
()
anonym
förlossningen
maken
sambon
sambo
Array(990.0, -2.2314223680319945)
Array(664.0, -1.8291269454715258)
Array(857.0, -1.4232104863197035)
Array(275.0, -1.3427561053936439)
Array(173.0, -1.1857533047141897)
()
topic
bruden
vafan
brudar
jävligt
  1. Predict on test data

val predictions = lrModel.transform(test)
predictions.orderBy(rand()).select("c", "prediction", "probability").show(30, false)
+---+----------+-------------------------------------------+
|c  |prediction|probability                                |
+---+----------+-------------------------------------------+
|0  |0.0       |[0.9721401017870042,0.027859898212995764]  |
|0  |0.0       |[0.975623998737009,0.02437600126299096]    |
|1  |1.0       |[4.6730789993111417E-7,0.9999995326921002] |
|0  |0.0       |[0.933249707175278,0.066750292824722]      |
|0  |0.0       |[0.9902085789245901,0.009791421075409966]  |
|0  |0.0       |[0.5279677569376853,0.47203224306231467]   |
|0  |0.0       |[0.9932461412304279,0.00675385876957205]   |
|1  |1.0       |[2.43269453308815E-5,0.9999756730546691]   |
|1  |1.0       |[8.266454051870882E-10,0.9999999991733546] |
|0  |0.0       |[0.9997151003194746,2.8489968052548283E-4] |
|1  |0.0       |[0.5514931570249911,0.44850684297500887]   |
|0  |0.0       |[0.5858664716477586,0.41413352835224143]   |
|1  |1.0       |[0.002100566198113697,0.9978994338018863]  |
|1  |1.0       |[0.07917634407205193,0.920823655927948]    |
|0  |0.0       |[0.9970675008521647,0.0029324991478353007] |
|0  |0.0       |[0.9999595461915014,4.045380849869759E-5]  |
|0  |1.0       |[0.33337692071405434,0.6666230792859457]   |
|1  |1.0       |[0.36761800025826114,0.6323819997417389]   |
|1  |1.0       |[0.3245585295503879,0.6754414704496121]    |
|1  |1.0       |[0.2355899833856519,0.7644100166143482]    |
|0  |0.0       |[0.9999999999997755,2.2452150253864004E-13]|
|1  |1.0       |[0.18608690603389255,0.8139130939661074]   |
|0  |0.0       |[0.740890026139782,0.25910997386021795]    |
|0  |0.0       |[0.963586227883629,0.036413772116371014]   |
|1  |1.0       |[0.0021508873399861557,0.9978491126600139] |
|1  |1.0       |[0.3858439417926455,0.6141560582073544]    |
|1  |1.0       |[0.4517753939274335,0.5482246060725665]    |
|1  |1.0       |[0.02573645474447229,0.9742635452555276]   |
|0  |0.0       |[0.8022052550237544,0.19779474497624555]   |
|1  |1.0       |[0.042382658471976975,0.9576173415280229]  |
+---+----------+-------------------------------------------+
only showing top 30 rows

predictions: org.apache.spark.sql.DataFrame = [c: int, features: vector ... 3 more fields]
//Check auroc value
val evaluator = new BinaryClassificationEvaluator().setLabelCol("c")
evaluator.evaluate(predictions)
evaluator: org.apache.spark.ml.evaluation.BinaryClassificationEvaluator = BinaryClassificationEvaluator: uid=binEval_0812f13ed2be, metricName=areaUnderROC, numBins=1000
res19: Double = 0.928445521562674

ScaDaMaLe Course site and book

Classification using Word2Vec

Word embeddings

Word embeddings map words to vectors of real numbers. Frequency analysis, which we did in a another notebook, is an example of this. There, the 1000 most common words in a collection of text words were mapped to a 1000-dimensional space using one-hot encoding, while the other words were sent to the zero vector. An array of words is mapped to the sum of the one-hot encoded vectors.

A more sophisticated word embedding is Word2Vec, which uses the skip-gram model and hierarchical softmax. The idea is to map words to the vector so that it predicts the other words around it well. We refer to Efficient Estimation of Word Representations in Vector Space and Distributed Representations of Words and Phrases and their Compositionality for details.

The practical difference is that Word2Vec maps every word to a non-zero vector, and that the output dimension can be chosen freely. Also, the embedding itself has to be trained before use, using some large collection of words. An array of words is mapped to the average of these words.

This case study uses the sex forums on Flashback and Familjeliv. The aim is to determine which forum a thread comes from by using the resulting word embeddings, using logistic regression.

Preamble

This section loads libraries and imports functions from another notebook.

// import required libraries
import org.apache.spark.ml.feature.{Word2Vec,Word2VecModel}
import org.apache.spark.ml.{Pipeline, PipelineModel}
import org.apache.spark.ml.linalg.{Vector, Vectors}
import org.apache.spark.sql.Row
import org.apache.spark.ml.feature.RegexTokenizer
import org.apache.spark.ml.classification.LogisticRegression
import org.apache.spark.ml.evaluation.BinaryClassificationEvaluator
import org.apache.spark.ml.feature.{Word2Vec, Word2VecModel}
import org.apache.spark.ml.{Pipeline, PipelineModel}
import org.apache.spark.ml.linalg.{Vector, Vectors}
import org.apache.spark.sql.Row
import org.apache.spark.ml.feature.RegexTokenizer
import org.apache.spark.ml.classification.LogisticRegression
import org.apache.spark.ml.evaluation.BinaryClassificationEvaluator
/scalable-data-science/000_0-sds-3-x-projects/student-project-01_group-TheTwoCultures/01_load_data

Loading the data

To extract the data from the .xml-file we use get_dataset().

Scraping the data takes quite some time, so we also supply a second cell that loads saved results.

// process .xml-files
val file_name = "dbfs:/datasets/student-project-01/familjeliv/familjeliv-sexsamlevnad.xml"
val df = get_dataset(file_name)
val file_name2 = "dbfs:/datasets/student-project-01/flashback/flashback-sex.xml"
val df2 = get_dataset(file_name2)
// paths to saved dataframes
val file_path_familjeliv = "dbfs:/datasets/student-project-01/familjeliv/familjeliv-sexsamlevnad_df" 
val file_path_flashback = "dbfs:/datasets/student-project-01/flashback/flashback-sex_df"

// load saved data frame
val df_familjeliv = load_df(file_path_familjeliv)
val df_flashback = load_df(file_path_flashback)
file_path_familjeliv: String = dbfs:/datasets/student-project-01/familjeliv/familjeliv-sexsamlevnad_df
file_path_flashback: String = dbfs:/datasets/student-project-01/flashback/flashback-sex_df
df_familjeliv: org.apache.spark.sql.DataFrame = [thread_id: string, thread_title: string ... 5 more fields]
df_flashback: org.apache.spark.sql.DataFrame = [thread_id: string, thread_title: string ... 5 more fields]

The dataframes consist of 7 fields: * threadid - a unique numerical signifier for each thread * threadtitle - the title of the thread, set by the person who created it * w - a comma separated string of all posts in a thread * forumid - a numerical forum signifier * forumtitle - name of the forum to which the thread belongs * platform - the platform from which the thread comes (flashback or familjeliv) * corpus_id - the corpus from which the data was gathered

Let's have a look at the dataframes.

display(df_familjeliv)

We add labels and merge the two dataframes.

val df = df_flashback.withColumn("c", lit(0.0)).union(df_familjeliv.withColumn("c", lit(1.0)))
df: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [thread_id: string, thread_title: string ... 6 more fields]

Preprocessing the data

Next, we must split and clean the text. For this we use Regex Tokenizers. We do not eliminate stop words.

// define the tokenizer
val tokenizer = new RegexTokenizer()
  .setPattern("(?U),") // break by commas
  .setMinTokenLength(5) // Filter away tokens with length < 5
  .setInputCol("w") // name of the input column
  .setOutputCol("text") // name of the output column
tokenizer: org.apache.spark.ml.feature.RegexTokenizer = regexTok_f0701eaf4f60

Let's tokenize and check out the result.

// define the thread title tokenizer

val df_tokenized = tokenizer.transform(df)
display(df_tokenized.select("w","text"))

Define and training a Word2Vec model

We use the text from the threads to train the Word2Vec model. First we define the model.

// define the model
val word2Vec = new Word2Vec()
  .setInputCol("text")
  .setOutputCol("result")
  .setVectorSize(200)
  .setMinCount(0)
word2Vec: org.apache.spark.ml.feature.Word2Vec = w2v_945abe6fab57

We train the model by fitting it to any dataframe we wish. Here, we use the tokenized one. Training the model takes roughly 2h30m, so we save the result to avoid the hassle of redoing calculations.

// train it
val word2Vec_model = word2Vec.fit(df_tokenized)

// save it
word2Vec_model.save("dbfs:/datasets/student-project-01/word2vec_model_sex")

We can also load a saved model.

// load a saved model

val model = Word2VecModel.load("dbfs:/datasets/student-project-01/word2vec_model_sex")
model: org.apache.spark.ml.feature.Word2VecModel = w2v_854b46dceacc
import org.apache.spark.sql.functions.{col, concat_ws, udf, flatten, explode, collect_list, collect_set, lit}
import org.apache.spark.sql.types.{ArrayType, StructType, StructField, StringType, IntegerType}
import com.databricks.spark.xml._
import org.apache.spark.sql.functions._
read_xml: (file_name: String)org.apache.spark.sql.DataFrame
get_dataset: (file_name: String)org.apache.spark.sql.DataFrame
save_df: (df: org.apache.spark.sql.DataFrame, filePath: String)Unit
load_df: (filePath: String)org.apache.spark.sql.DataFrame
no_forums: (df: org.apache.spark.sql.DataFrame)Long
dbfs:/datasets/student-project-01/flashback/familjeliv-allmanna-ekonomi_df
familjeliv-allmanna-ekonomi_df already exists!
dbfs:/datasets/student-project-01/flashback/familjeliv-sexsamlevnad_df
familjeliv-sexsamlevnad_df already exists!
dbfs:/datasets/student-project-01/flashback/flashback-ekonomi_df
flashback-ekonomi_df already exists!
dbfs:/datasets/student-project-01/flashback/flashback-sex_df
flashback-sex_df already exists!
fl_root: String = dbfs:/datasets/student-project-01/familjeliv/
fb_root: String = dbfs:/datasets/student-project-01/flashback/
fl_data: Array[String] = Array(familjeliv-allmanna-ekonomi, familjeliv-sexsamlevnad)
fb_data: Array[String] = Array(flashback-ekonomi, flashback-sex)

Embedding using Word2Vec

Let's embedd the text and view the results.

// transform the text using the model

val embedded_text = model.transform(df_tokenized)
embedded_text: org.apache.spark.sql.DataFrame = [thread_id: string, thread_title: string ... 8 more fields]

Let's have a look!

display(embedded_text.select("c","result","text"))

Classification using Word2Vec

For classification we use logistic regression to compare with results from earlier. First we define the logistic regression model, using the same settings as before.

// Logistic regression
val logreg = new LogisticRegression()
  .setLabelCol("c")
  .setFeaturesCol("result")
  .setMaxIter(100)
  .setRegParam(0.0001)
  .setElasticNetParam(0.5)
logreg: org.apache.spark.ml.classification.LogisticRegression = logreg_55ef614f783e

The easiest way to do the classification is to gather the tokenizer, Word2Vec and logistic regression into a pipeline.

val pipeline = new Pipeline().setStages(Array(tokenizer, word2Vec, logreg))
pipeline: org.apache.spark.ml.Pipeline = pipeline_2254409a91a2

Split the data into training and test data

val random_order = df.orderBy(rand())
val splits = random_order.randomSplit(Array(0.8, 0.2))
val training = splits(0)
val test = splits(1)
random_order: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [thread_id: string, thread_title: string ... 6 more fields]
splits: Array[org.apache.spark.sql.Dataset[org.apache.spark.sql.Row]] = Array([thread_id: string, thread_title: string ... 6 more fields], [thread_id: string, thread_title: string ... 6 more fields])
training: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [thread_id: string, thread_title: string ... 6 more fields]
test: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [thread_id: string, thread_title: string ... 6 more fields]

Fit the model to the training data. This will take a while, so we make sure to save the result.

// fit the model to the training data
val logreg_model = pipeline.fit(training)

// save the model to filesystem
logreg_model.save("dbfs:/datasets/student-project-01/word2vec_logreg_model")
// load saved model

val loaded_model = PipelineModel.load("dbfs:/datasets/student-project-01/word2vec_logreg_model")
loaded_model: org.apache.spark.ml.PipelineModel = pipeline_25839437fccb
val predictions = loaded_model.transform(test).orderBy(rand())
predictions: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [thread_id: string, thread_title: string ... 11 more fields]
predictions.select("c","prediction","probability").show(30,false)
+---+----------+------------------------------------------+
|c  |prediction|probability                               |
+---+----------+------------------------------------------+
|1.0|1.0       |[0.005855361335036372,0.9941446386649635] |
|1.0|1.0       |[0.2712120894396273,0.7287879105603726]   |
|1.0|1.0       |[0.0017886928649958375,0.9982113071350042]|
|1.0|1.0       |[2.263165652125581E-4,0.9997736834347875] |
|0.0|1.0       |[0.42059601285820825,0.5794039871417918]  |
|1.0|1.0       |[6.566687042616189E-4,0.9993433312957383] |
|0.0|0.0       |[0.7054463412596114,0.29455365874038864]  |
|1.0|1.0       |[0.03103196407369915,0.9689680359263009]  |
|0.0|0.0       |[0.9294663779954874,0.07053362200451263]  |
|1.0|1.0       |[0.13974006800394764,0.8602599319960523]  |
|1.0|1.0       |[0.08228914085494436,0.9177108591450557]  |
|0.0|0.0       |[0.9788989176701534,0.021101082329846567] |
|0.0|0.0       |[0.9975070728891363,0.0024929271108637065]|
|1.0|1.0       |[0.0010781075297480556,0.998921892470252] |
|0.0|0.0       |[0.9253825302681451,0.07461746973185476]  |
|1.0|1.0       |[0.01751495449884683,0.9824850455011531]  |
|1.0|0.0       |[0.9864736560167631,0.013526343983237045] |
|1.0|1.0       |[0.002472519507918196,0.9975274804920817] |
|0.0|0.0       |[0.6174112612306129,0.3825887387693872]   |
|0.0|0.0       |[0.7130899106721519,0.2869100893278482]   |
|0.0|0.0       |[0.9263664682801233,0.07363353171987672]  |
|0.0|0.0       |[0.9561455191484204,0.04385448085157954]  |
|0.0|0.0       |[0.5835745861693306,0.41642541383066944]  |
|1.0|1.0       |[0.4296249407516458,0.5703750592483542]   |
|1.0|1.0       |[0.0032969395487662213,0.9967030604512337]|
|1.0|1.0       |[0.008645133666934816,0.9913548663330651] |
|1.0|1.0       |[4.1492836709996625E-5,0.9999585071632902]|
|0.0|1.0       |[0.43037903982909986,0.5696209601709002]  |
|0.0|1.0       |[0.43707897641990706,0.562921023580093]   |
|1.0|1.0       |[0.29846393214228517,0.7015360678577148]  |
+---+----------+------------------------------------------+
only showing top 30 rows
val evaluator = new BinaryClassificationEvaluator().setLabelCol("c")
evaluator.evaluate(predictions)
evaluator: org.apache.spark.ml.evaluation.BinaryClassificationEvaluator = binEval_0d518432d17a
res13: Double = 0.9499399325125091

An AUCROC of 0.95 is good, but not notably better than the other, conceptually simpler model. More is not always better!

Previously, we classified entire threads. Let's see if it works as well on thread titles.

val df_threads = df.select("c","thread_title").withColumnRenamed("thread_title","w")
val evaluation = loaded_model.transform(df_threads).orderBy(rand())
evaluator.evaluate(evaluation)
df_threads: org.apache.spark.sql.DataFrame = [c: double, w: string]
evaluation: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [c: double, w: string ... 5 more fields]
res14: Double = 0.5261045467524708

This did not work at all. It is essentially equivalent to guessing randomly. Thread titles contain only a few words, so this is not surprising.

Note: the same model was used as for both classifying tasks. Since thread titles were not part of the threads, the entire dataset could conceivably be used for training. Whether or not this would improve results is unclear.

ScaDaMaLe Course site and book

Notebook description

Flashback and Familjeliv are two well-known swedish online forums. Flashback is one of Sweden's most visited websites and has discussions on a wide-range of topics. It is famous for emphasizing freedom of speech and the members citizen journalism on many topics. The online forum Familjeliv, on the other hand, focuses more on questions about pregnancy, children and parenthood (the translation is "Family Life"). Part of the forum is also for more general topics, and this part of Familjeliv is probably more famous than its other parts.

What we want to do in this notebook is analyze the language used in these two, quite different, online forums. An interesting approach we will try here is to do some topic modeling with Latent Dirichlet Allocation (LDA). We know that each discussion forum in our data has multiple subforums, so it would be interesting to see if LDA can accurately pick up these different subforums as different topics, or if it sees other patterns in the threads (the threads are what corresponds to documents in the LDA method). We will also mainly do this with forums that have a correspondence in both Flashback and Familjeliv. For instance, both have forums dedicated to questions regarding economy and also forums discussing topics close to sex and relationships.

This notebook is to a large extent adapted from notebook 034LDA20NewsGroupsSmall.

Downloading the data

Data comes from språkbanken, see notebook 00downloaddata.

/scalable-data-science/000_0-sds-3-x-projects/student-project-01_group-TheTwoCultures/00_download_data
// Here we just import methods from notebook 01_load_data, so we can load our data

%run /scalable-data-science/000_0-sds-3-x-projects/student-project-01_group-TheTwoCultures/01_load_data

LDA Methods

Below we put some of the LDA pipeline, working with MLlib, into a single function called get_lda.

import org.apache.spark.ml.feature.{RegexTokenizer, StopWordsRemover, CountVectorizer}
import org.apache.spark.mllib.clustering.{LDA, OnlineLDAOptimizer}
import org.apache.spark.ml.{Pipeline, PipelineModel, PipelineStage}
import org.apache.spark.sql.types.{ LongType }
import org.apache.spark.ml.linalg.Vector

def get_lda(df: org.apache.spark.sql.DataFrame,  // Main function to do LDA
            min_token: Int,
            vocabSize: Int,
            minDF: Int,            
            numTopics: Int,
            maxIter: Int,
            stopWords: Array[String]) = {

  val corpus_df = df.select("w", "thread_id").withColumn("thread_id",col("thread_id").cast(LongType)) // From the whole dataframe we take out each thread

  val tokenizer = new RegexTokenizer()
  .setPattern("(?U)[\\W_]+") // break by white space character(s)  - try to remove emails and other patterns
  .setMinTokenLength(min_token) // Filter away tokens with length < min_token
  .setInputCol("w") // name of the input column
  .setOutputCol("tokens") // name of the output column

  val remover = new StopWordsRemover()
  .setStopWords(stopWords)
  .setInputCol(tokenizer.getOutputCol)
  .setOutputCol("filtered")

  val tokenized_df = tokenizer.transform(corpus_df) // Removes uninteresting words from each thread
  val filtered_df = remover.transform(tokenized_df).select("thread_id","filtered") // Chosing only the filtered threads

  val vectorizer = new CountVectorizer() // Creates dictionary and counts the occurences of different words
   .setInputCol(remover.getOutputCol)
   .setOutputCol("features")
   .setVocabSize(vocabSize) // Size of dictonary
   .setMinDF(minDF)
   .fit(filtered_df) // returns CountVectorizerModel

  val lda = new LDA() // Creates LDA Model with some user defined choice of parameters
  .setOptimizer(new OnlineLDAOptimizer().setMiniBatchFraction(0.8))
  .setK(numTopics)
  .setMaxIterations(maxIter)
  .setDocConcentration(-1) // use default values
  .setTopicConcentration(-1)

  val countVectors = vectorizer.transform(filtered_df).select("thread_id", "features")

  val lda_countVector = countVectors.map { case Row(id: Long, countVector: Vector) => (id, countVector) }
  val lda_countVector_mllib = lda_countVector.map { case (id, vector) => (id, org.apache.spark.mllib.linalg.Vectors.fromML(vector)) }.rdd

  val lda_model = lda.run(lda_countVector_mllib)
  (lda_model, vectorizer)
}
import org.apache.spark.ml.feature.{RegexTokenizer, StopWordsRemover, CountVectorizer}
import org.apache.spark.mllib.clustering.{LDA, OnlineLDAOptimizer}
import org.apache.spark.ml.{Pipeline, PipelineModel, PipelineStage}
import org.apache.spark.sql.types.LongType
import org.apache.spark.ml.linalg.Vector
get_lda: (df: org.apache.spark.sql.DataFrame, min_token: Int, vocabSize: Int, minDF: Int, numTopics: Int, maxIter: Int, stopWords: Array[String])(org.apache.spark.mllib.clustering.LDAModel, org.apache.spark.ml.feature.CountVectorizerModel)

Stopwords

Stop words are highly relevant to get interesting topics distributions, with not all weight on very common words that do not carry much meaning for a particular topic. To do this we both use collections by others and input words we find meaningless for these particular settings.

wget https://raw.githubusercontent.com/peterdalle/svensktext/master/stoppord/stoppord.csv -O /tmp/stopwords.csv
--2021-01-11 14:30:09--  https://raw.githubusercontent.com/peterdalle/svensktext/master/stoppord/stoppord.csv
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.52.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.52.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1936 (1.9K) [text/plain]
Saving to: ‘/tmp/stopwords.csv’

     0K .                                                     100% 11.5M=0s

2021-01-11 14:30:09 (11.5 MB/s) - ‘/tmp/stopwords.csv’ saved [1936/1936]
cp file:/tmp/stopwords.csv dbfs:/datasets/student-project-01/stopwords.csv
res24: Boolean = true
//Creating a list with stopwords

import org.apache.spark.ml.feature.StopWordsRemover
val stoppord = sc.textFile("dbfs:/datasets/student-project-01/stopwords.csv").collect()
val stopwordList = Array("bara","lite","finns","vill","samt","inga","även","finns","ganska","också","igen","just","that","with","http","jpg","kanske","tycker","gillar", "bra","the","000","måste","tjej","tjejer","tjejen","tjejerna","kvinna","kvinnor","kille","killar","killen","män","rätt","män","com","and","html","många","aldrig","www","mpg","avi","wmv","fan","förhelvetet","riktigt","känner","väldigt","font","size","mms","2008","2009","95kr","dom","får","ska","kommer","två","vet","mer","pengar","pengarna","göra","fick","tror","andra","helt","kunna","behöver","betala","inget","dock","inget","tack"
).union(stoppord).union(StopWordsRemover.loadDefaultStopWords("swedish")) // In this step we add custom stop words and another premade list of stopwords.

Experiments

Below we we chosen some similar forums from FB and FL. First two regarding economics, and two discussing sex and relationships. Here we run the two economics forums and see how well TDA captures any topic structure.

Here one does not have to use similar forums, but if one is interested in only Flashback forums one could use only those. We could also of course join several of these forums together to try to capture even broader topic distributions

// Loading the forums we will do LDA on.

val file_path_FL = "dbfs:/datasets/student-project-01/familjeliv/familjeliv-allmanna-ekonomi_df"
val file_path_FB = "dbfs:/datasets/student-project-01/flashback/flashback-ekonomi_df"
//val file_path_FL = "dbfs:/datasets/student-project-01/familjeliv/familjeliv-sexsamlevnad_df"
//val file_path_FB = "dbfs:/datasets/student-project-01/flashback/flashback-sex_df"

val df_FL = load_df(file_path_FL)
val df_FB = load_df(file_path_FB)
file_path_FL: String = dbfs:/datasets/student-project-01/familjeliv/familjeliv-allmanna-ekonomi_df
file_path_FB: String = dbfs:/datasets/student-project-01/flashback/flashback-ekonomi_df
df_FL: org.apache.spark.sql.DataFrame = [thread_id: string, thread_title: string ... 5 more fields]
df_FB: org.apache.spark.sql.DataFrame = [thread_id: string, thread_title: string ... 5 more fields]
// Dataframes containg a forum from FB.

df_FB.show
// Overview of number of threads in different subforums

df_FL.groupBy($"forum_title").agg(count($"forum_title").as("count")).show(false)
+----------------------------------------------------------+-----+
|forum_title                                               |count|
+----------------------------------------------------------+-----+
|Allmänna rubriker > Ekonomi & juridik > Konsument/Inhandla|26307|
|Allmänna rubriker > Ekonomi & juridik > Familjerätt       |1623 |
|Allmänna rubriker > Ekonomi & juridik > Övrigt            |1638 |
|Allmänna rubriker > Ekonomi & juridik > Ekonomi           |24284|
|Allmänna rubriker > Ekonomi & juridik > Spartips          |217  |
|Allmänna rubriker > Ekonomi & juridik > Juridik           |3246 |
|Allmänna rubriker > Ekonomi & juridik > Företagande       |957  |
|Allmänna rubriker > Ekonomi & juridik > Lån & skulder     |1168 |
+----------------------------------------------------------+-----+
df_FB.groupBy($"forum_title").agg(count($"forum_title").as("count")).show(false)
+---------------------------------------------------+-----+
|forum_title                                        |count|
+---------------------------------------------------+-----+
|Ekonomi > Privatekonomi                            |15154|
|Ekonomi > Bitcoin och andra virtuella valutor      |524  |
|Ekonomi > Värdepapper, valutor och råvaror: allmänt|8300 |
|Ekonomi > Fonder                                   |645  |
|Ekonomi > Företagande och företagsekonomi          |12139|
|Ekonomi > Nationalekonomi                          |3114 |
|Ekonomi > Aktier                                   |508  |
|Ekonomi > Ekonomi: övrigt                          |19308|
|Ekonomi > Offshore och skatteplanering             |1567 |
+---------------------------------------------------+-----+
// Set parameters, and perform two different LDAs, one on FB and one on FL

val min_token = 4 // only accept tokens larger or equal to
val vocabSize = 10000 // Size of the vocab dictionary
val minDF = 5 // The minimum number of different documents a term must appear in to be included in the vocabulary
val minTF = 2 // The minimum number of times a term has to appear in a document to be included in the vocabulary

val numTopics_FL = no_forums(df_FL).toInt //4 // Number of topics in LDA model
val numTopics_FB = no_forums(df_FB).toInt
val maxIter = 8  // Maximum number of iterations for LDA model
val stopwords = stopwordList
val (ldaModel_FL, vectorizer_FL) = get_lda(df_FL, min_token, vocabSize, minDF, numTopics_FL, maxIter, stopwords)
val (ldaModel_FB, vectorizer_FB) = get_lda(df_FB, min_token, vocabSize, minDF, numTopics_FB, maxIter, stopwords)

Results

Here we will visualize the most important part of the different topic distributions, both for FB and for FL.

// Here we pick out the most important terms in each topic for FL.

val topicIndices = ldaModel_FL.describeTopics(maxTermsPerTopic = 5)
val vocabList = vectorizer_FL.vocabulary
val topics = topicIndices.map { case (terms, termWeights) =>
  terms.map(vocabList(_)).zip(termWeights)
}
println(s"$numTopics_FL topics:")
topics.zipWithIndex.foreach { case (topic, i) =>
  println(s"TOPIC $i")
  topic.foreach { case (term, weight) => println(s"$term\t$weight") }
  println(s"==========")
}
// Here we pick out the most important terms in each topic for FB.

val topicIndices = ldaModel_FB.describeTopics(maxTermsPerTopic = 5)
val vocabList = vectorizer_FB.vocabulary
val topics = topicIndices.map { case (terms, termWeights) =>
  terms.map(vocabList(_)).zip(termWeights)
}
println(s"$numTopics_FB topics:")
topics.zipWithIndex.foreach { case (topic, i) =>
  println(s"TOPIC $i")
  topic.foreach { case (term, weight) => println(s"$term\t$weight") }
  println(s"==========")
}
// Zip topic terms with topic IDs
val termArray = topics.zipWithIndex

// Transform data into the form (term, probability, topicId)
val termRDD = sc.parallelize(termArray)
val termRDD2 =termRDD.flatMap( (x: (Array[(String, Double)], Int)) => {
  val arrayOfTuple = x._1
  val topicId = x._2
  arrayOfTuple.map(el => (el._1, el._2, topicId))
})

// Create DF with proper column names
val termDF = termRDD2.toDF.withColumnRenamed("_1", "term").withColumnRenamed("_2", "probability").withColumnRenamed("_3", "topicId")

display(termDF)
// Creates JSON data to display topic distribution of forum in FB
val rawJson = termDF.toJSON.collect().mkString(",\n")
displayHTML(s"""
<!DOCTYPE html>
<meta charset="utf-8">
<style>

circle {
  fill: rgb(31, 119, 180);
  fill-opacity: 0.5;
  stroke: rgb(31, 119, 180);
  stroke-width: 1px;
}

.leaf circle {
  fill: #ff7f0e;
  fill-opacity: 1;
}

text {
  font: 14px sans-serif;
}

</style>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>
<script>

var json = {
 "name": "data",
 "children": [
  {
     "name": "topics",
     "children": [
      ${rawJson}
     ]
    }
   ]
};

var r = 1000,
    format = d3.format(",d"),
    fill = d3.scale.category20c();

var bubble = d3.layout.pack()
    .sort(null)
    .size([r, r])
    .padding(1.5);

var vis = d3.select("body").append("svg")
    .attr("width", r)
    .attr("height", r)
    .attr("class", "bubble");


var node = vis.selectAll("g.node")
    .data(bubble.nodes(classes(json))
    .filter(function(d) { return !d.children; }))
    .enter().append("g")
    .attr("class", "node")
    .attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; })
    color = d3.scale.category20();

  node.append("title")
      .text(function(d) { return d.className + ": " + format(d.value); });

  node.append("circle")
      .attr("r", function(d) { return d.r; })
      .style("fill", function(d) {return color(d.topicName);});

var text = node.append("text")
    .attr("text-anchor", "middle")
    .attr("dy", ".3em")
    .text(function(d) { return d.className.substring(0, d.r / 3)});

  text.append("tspan")
      .attr("dy", "1.2em")
      .attr("x", 0)
      .text(function(d) {return Math.ceil(d.value * 10000) /10000; });

// Returns a flattened hierarchy containing all leaf nodes under the root.
function classes(root) {
  var classes = [];

  function recurse(term, node) {
    if (node.children) node.children.forEach(function(child) { recurse(node.term, child); });
    else classes.push({topicName: node.topicId, className: node.term, value: node.probability});
  }

  recurse(null, root);
  return {children: classes};
}
</script>
""")

1041

// Similar as above but for FL

val topicIndices = ldaModel_FL.describeTopics(maxTermsPerTopic = 6)
val vocabList = vectorizer_FL.vocabulary
val topics = topicIndices.map { case (terms, termWeights) =>
  terms.map(vocabList(_)).zip(termWeights)
}
println(s"$numTopics_FL topics:")
topics.zipWithIndex.foreach { case (topic, i) =>
  println(s"TOPIC $i")
  topic.foreach { case (term, weight) => println(s"$term\t$weight") }
  println(s"==========")
}

// Zip topic terms with topic IDs
val termArray = topics.zipWithIndex

// Transform data into the form (term, probability, topicId)
val termRDD = sc.parallelize(termArray)
val termRDD2 =termRDD.flatMap( (x: (Array[(String, Double)], Int)) => {
  val arrayOfTuple = x._1
  val topicId = x._2
  arrayOfTuple.map(el => (el._1, el._2, topicId))
})

// Create DF with proper column names
val termDF = termRDD2.toDF.withColumnRenamed("_1", "term").withColumnRenamed("_2", "probability").withColumnRenamed("_3", "topicId")

// Create JSON data to display topic distribution of forum in FB
val rawJson = termDF.toJSON.collect().mkString(",\n")
displayHTML(s"""
<!DOCTYPE html>
<meta charset="utf-8">
<style>

circle {
  fill: rgb(31, 119, 180);
  fill-opacity: 0.5;
  stroke: rgb(31, 119, 180);
  stroke-width: 1px;
}

.leaf circle {
  fill: #ff7f0e;
  fill-opacity: 1;
}

text {
  font: 14px sans-serif;
}

</style>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>
<script>

var json = {
 "name": "data",
 "children": [
  {
     "name": "topics",
     "children": [
      ${rawJson}
     ]
    }
   ]
};

var r = 1000,
    format = d3.format(",d"),
    fill = d3.scale.category20c();

var bubble = d3.layout.pack()
    .sort(null)
    .size([r, r])
    .padding(1.5);

var vis = d3.select("body").append("svg")
    .attr("width", r)
    .attr("height", r)
    .attr("class", "bubble");


var node = vis.selectAll("g.node")
    .data(bubble.nodes(classes(json))
    .filter(function(d) { return !d.children; }))
    .enter().append("g")
    .attr("class", "node")
    .attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; })
    color = d3.scale.category20();

  node.append("title")
      .text(function(d) { return d.className + ": " + format(d.value); });

  node.append("circle")
      .attr("r", function(d) { return d.r; })
      .style("fill", function(d) {return color(d.topicName);});

var text = node.append("text")
    .attr("text-anchor", "middle")
    .attr("dy", ".3em")
    .text(function(d) { return d.className.substring(0, d.r / 3)});

  text.append("tspan")
      .attr("dy", "1.2em")
      .attr("x", 0)
      .text(function(d) {return Math.ceil(d.value * 10000) /10000; });

// Returns a flattened hierarchy containing all leaf nodes under the root.
function classes(root) {
  var classes = [];

  function recurse(term, node) {
    if (node.children) node.children.forEach(function(child) { recurse(node.term, child); });
    else classes.push({topicName: node.topicId, className: node.term, value: node.probability});
  }

  recurse(null, root);
  return {children: classes};
}
</script>
""")

1042

def rawJson(lda_model: org.apache.spark.mllib.clustering.LDAModel, vectorizer: org.apache.spark.ml.feature.CountVectorizerModel): String = {
  val topicIndices = lda_model.describeTopics(maxTermsPerTopic = 6)
  val vocabList = vectorizer.vocabulary
  val topics = topicIndices.map { case (terms, termWeights) =>
    terms.map(vocabList(_)).zip(termWeights)
  }
  println(s"$numTopics_FL topics:")
  topics.zipWithIndex.foreach { case (topic, i) =>
    println(s"TOPIC $i")
    topic.foreach { case (term, weight) => println(s"$term\t$weight") }
    println(s"==========")
  }

  // Zip topic terms with topic IDs
  val termArray = topics.zipWithIndex

  // Transform data into the form (term, probability, topicId)
  val termRDD = sc.parallelize(termArray)
  val termRDD2 =termRDD.flatMap( (x: (Array[(String, Double)], Int)) => {
    val arrayOfTuple = x._1
    val topicId = x._2
    arrayOfTuple.map(el => (el._1, el._2, topicId))
  })

  // Create DF with proper column names
  val termDF = termRDD2.toDF.withColumnRenamed("_1", "term").withColumnRenamed("_2", "probability").withColumnRenamed("_3", "topicId")

  // Create JSON data to display topic distribution
  termDF.toJSON.collect().mkString(",\n")
}
// Create JSON data to display topic distribution
val rawJson_FL = rawJson(ldaModel_FL, vectorizer_FL)
val rawJson_FB = rawJson(ldaModel_FB, vectorizer_FB)
displayHTML(s"""
<!DOCTYPE html>
<meta charset="utf-8">
<style>

circle {
  fill: rgb(31, 119, 180);
  fill-opacity: 0.5;
  stroke: rgb(31, 119, 180);
  stroke-width: 1px;
}

.leaf circle {
  fill: #ff7f0e;
  fill-opacity: 1;
}

text {
  font: 12px sans-serif;
}

</style>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>
<script>

/////////////////////////////////////////////////////////////////////////////   
var json_FL = {
 "name": "data",
 "children": [
  {
     "name": "topics",
     "children": [
      ${rawJson_FL}
     ]
    }
   ]
};

var r1 = 500,
    format = d3.format(",d"),
    fill = d3.scale.category20c();

var bubble1 = d3.layout.pack()
    .sort(null)
    .size([r1, r1])
    .padding(1.5);

var vis1 = d3.select("body").append("svg")
    .attr("width", r1)
    .attr("height", r1)
    .attr("class", "bubble1");


var node = vis1.selectAll("g.node")
    .data(bubble1.nodes(classes(json_FL))
    .filter(function(d) { return !d.children; }))
    .enter().append("g")
    .attr("class", "node")
    .attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; })
    color = d3.scale.category20();

  node.append("title")
      .text(function(d) { return d.className + ": " + format(d.value); });

  node.append("circle")
      .attr("r", function(d) { return d.r; })
      .style("fill", function(d) {return color(d.topicName);});

var text = node.append("text")
    .attr("text-anchor", "middle")
    .attr("dy", ".3em")
    .text(function(d) { return d.className.substring(0, d.r / 3)});

  text.append("tspan")
      .attr("dy", "1.2em")
      .attr("x", 0)
      .text(function(d) {return Math.ceil(d.value * 10000) /10000; });
/////////////////////////////////////////////////////////////////////////////   
var json_FB = {
 "name": "data",
 "children": [
  {
     "name": "topics",
     "children": [
      ${rawJson_FB}
     ]
    }
   ]
};

var r2 = 500,
    format = d3.format(",d"),
    fill = d3.scale.category20c();

var bubble2 = d3.layout.pack()
    .sort(null)
    .size([r2, r2])
    .padding(1.5);

var vis2 = d3.select("body").append("svg")
    .attr("width", r2)
    .attr("height", r2)
    .attr("class", "bubble1");


var node = vis2.selectAll("g.node")
    .data(bubble1.nodes(classes(json_FB))
    .filter(function(d) { return !d.children; }))
    .enter().append("g")
    .attr("class", "node")
    .attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; })
    color = d3.scale.category20();

  node.append("title")
      .text(function(d) { return d.className + ": " + format(d.value); });

  node.append("circle")
      .attr("r", function(d) { return d.r; })
      .style("fill", function(d) {return color(d.topicName);});

var text = node.append("text")
    .attr("text-anchor", "middle")
    .attr("dy", ".3em")
    .text(function(d) { return d.className.substring(0, d.r / 3)});

  text.append("tspan")
      .attr("dy", "1.2em")
      .attr("x", 0)
      .text(function(d) {return Math.ceil(d.value * 10000) /10000; });

/////////////////////////////////////////////////////////////////////////////   

// Returns a flattened hierarchy containing all leaf nodes under the root.
function classes(root) {
  var classes = [];

  function recurse(term, node) {
    if (node.children) node.children.forEach(function(child) { recurse(node.term, child); });
    else classes.push({topicName: node.topicId, className: node.term, value: node.probability});
  }

  recurse(null, root);
  return {children: classes};
}
</script>

""")

1043

ScaDaMaLe Course site and book

Exploring the GQA Scene Graph Dataset Structure and Properties

Group 2 Project Authors:

  • Adam Dahlgren
  • Pavlo Melnyk
  • Emanuel Sanchez Aimar

Project Goal

This project aims to explore the scene graphs in the Genome Question Answering (GQA) dataset.

  • The structure, properties, and motifs of the ground truth data will be analysed.

  • Our presentation can be found at this video link and our open-source code is in this GitHub repository.

Graph structure

  • We want to extract the names of objects we see in the images and use their id's as vertices.
  • For one object category, we will have multiple id's and hence multiple vertices. In contrast, one vertex will represent an object category in the merged graph.
  • Object attributes are used as part of the vertices (in some graph representations we exploit).
  • The edge properties are the names of the relations (provided in JSON-files).

Loading data

  • We read the scene graph data as JSON files. Below is the example JSON object given by the GQA website, for scene graph 2407890.
sc = spark.sparkContext
# Had to change weather 'none' to '"none"' for the string to parse
json_example_str = '{"2407890": {"width": 640,"height": 480,"location": "living room","weather": "none","objects": {"271881": {"name": "chair","x": 220,"y": 310,"w": 50,"h": 80,"attributes": ["brown", "wooden", "small"],"relations": {"32452": {"name": "on","object": "275312"},"32452": {"name": "near","object": "279472"}}}}}}'
json_rdd = sc.parallelize([json_example_str])
example_json_df = spark.read.json(json_rdd, multiLine=True)
example_json_df.show()
+--------------------+
|             2407890|
+--------------------+
|[480, living room...|
+--------------------+
example_json_df.first()

Reading JSON files

  • Due to issues with the JSON files and how Spark reads them, we need to parse the files using pure Python. Otherwise, we get stuck in a loop and finally crash the driver.
from graphframes import *
import json
# load train and validation graph data:
f_train = open("/dbfs/FileStore/shared_uploads/scenegraph_motifs/train_sceneGraphs.json")
train_scene_data = json.load(f_train)

f_val = open("/dbfs/FileStore/shared_uploads/scenegraph_motifs/val_sceneGraphs.json")
val_scene_data = json.load(f_val)

Parsing graph structure

  • We use a Pythonic way to parse the JSON-files and obtain the vertices and edges of the graphs, provided vertex and edge schemas, respectively.
# Pythonic way of doing it, parsing a JSON graph representation.
# Creates vertices with the graph id, object name and id, optionally includes the attibutes
def json_to_vertices_edges(graph_json, scene_graph_id, include_object_attributes=False):
  vertices = []
  edges = []
  obj_id_to_name = {}

  vertex_ids = graph_json['objects']

  for vertex_id in vertex_ids:   
    vertex_obj = graph_json['objects'][vertex_id]
    name = vertex_obj['name']
    vertices_data = [scene_graph_id, vertex_id, name]

    if vertex_id not in obj_id_to_name:
      obj_id_to_name[vertex_id] = name

    if include_object_attributes:
      attributes = vertex_obj['attributes']  
      vertices_data.append(attributes)

    vertices.append(tuple(vertices_data))

    for relation in vertex_obj['relations']:
        src = vertex_id
        dst = relation['object']
        name = relation['name']
        edges.append([src, dst, name])

  for i in range(len(edges)):
    src_type = obj_id_to_name[edges[i][0]]
    dst_type = obj_id_to_name[edges[i][1]]
    edges[i].append(src_type)
    edges[i].append(dst_type)

  return (vertices, edges)
def parse_scene_graphs(scene_graphs_json, vertex_schema, edge_schema):  
  vertices = []
  edges = []

  # if vertice_schema has a field for attributes:
  include_object_attributes = len(vertex_schema) == 4

  for scene_graph_id in scene_graphs_json:
    vs, es = json_to_vertices_edges(scene_graphs_json[scene_graph_id], scene_graph_id, include_object_attributes)
    vertices += vs
    edges += es

  vertices = spark.createDataFrame(vertices, vertex_schema)
  edges = spark.createDataFrame(edges, edge_schema)

  return GraphFrame(vertices, edges)
from pyspark.sql.types import StructType, StructField, ArrayType, IntegerType, StringType

# create schemas for scene graphs:
vertex_schema = StructType([
  StructField("graph_id", StringType(), False), StructField("id", StringType(), False), StructField("object_name", StringType(), False)
])

vertex_schema_with_attr  = StructType([
  StructField("graph_id", StringType(), False),
  StructField("id", StringType(), False),
  StructField("object_name", StringType(), False),
  StructField("attributes", ArrayType(StringType()), True)
])

edge_schema = StructType([
  StructField("src", StringType(), False), StructField("dst", StringType(), False), StructField("relation_name", StringType(), False),
  StructField("src_type", StringType(), False), StructField("dst_type", StringType(), False)
])
# we will use the length of the vertice schemas to parse the graph from the json files appropriately:
len(vertex_schema), len(vertex_schema_with_attr)

Adding attributes to vertices and types to edges in the graph structure

  • If vertices have attributes, we can get more descriptive answers to our queries like "Objects of type 'person' are 15 times 'next-to' objects of type 'banana' ('yellow', 'small'); 10 times 'next-to' objects of type 'banana' ('green', 'banana')".

  • We can do more interesting queries if the edges disclose what type/name the source and destination has.

  • For instance, it is then possible to group the edges not only by the ID but also by which type of objects they are connected to, answering questions like "How often are objects of type 'person' in the relation 'next-to' with objects of type 'banana'?".

scene_graphs_train = parse_scene_graphs(train_scene_data, vertex_schema_with_attr, edge_schema)
scene_graphs_train_without_attributes = GraphFrame(scene_graphs_train.vertices.select('graph_id', 'id', 'object_name'), scene_graphs_train.edges)
scene_graphs_val = parse_scene_graphs(val_scene_data, vertex_schema_with_attr, edge_schema)
display(scene_graphs_train.vertices)
display(scene_graphs_val.vertices)
display(scene_graphs_train.edges)
display(scene_graphs_val.edges)
# person next-to banana (yellow, small) vs person next-to banana (green)
display(scene_graphs_train.find('(a)-[ab]->(b)').filter("(a.object_name = 'person') and (b.object_name = 'banana')"))
  • The original graph consists of multiple graphs, each representing an image.

  • Number of objects per image (graph):

# grouped_graphs = scene_graphs_train.vertices.groupBy('graph_id')
# display(grouped_graphs.count().sort('count', ascending=False))
print("Graphs/Scenes/Images: {}".format(scene_graphs_train.vertices.select('graph_id').distinct().count()))
print("Objects: {}".format(scene_graphs_train.vertices.count()))
print("Relations: {}".format(scene_graphs_train.edges.count()))
Graphs/Scenes/Images: 74289
Objects: 1231134
Relations: 3795907
display(scene_graphs_train.degrees.sort(["degree"],ascending=[0]).limit(20))

2_1

Finding most common attributes

  • "Which object characteristics are the most common?"
from pyspark.sql.functions import explode
# the attributes are sequences: we need to split them;
# explode the attributes in the vertices graph:
explodedAttributes = scene_graphs_train.vertices.select("id", "object_name", explode(scene_graphs_train.vertices.attributes).alias("attribute"))
explodedAttributes.printSchema()
display(explodedAttributes)
  • Above we see the object-attribute pairs seen in the dataset.
topAttributes = explodedAttributes.groupBy("attribute")
display(topAttributes.count().sort("count", ascending=False))

2_2

topAttributes = explodedAttributes.groupBy("attribute")
display(topAttributes.count().sort("count", ascending=False))

2_3

  • 7 out of the top 10 attributes are colors, where white is seen 92659 times, and black 59617 times.

  • We see a long tail-end distribution with only 68 out of a 617 attributes being seen more than a 1000 times in the dataset, and around 300 attributes are seen less than 100 times (e.g., breakable is seen 15 times, wrist 14 times, and immature 3 times).

topObjects = scene_graphs_train.vertices.groupBy("object_name")
topObjects = topObjects.count()
display(topObjects.sort("count", ascending=False))

2_4

display(topObjects.sort("count", ascending=True))

2_5

  • Again, we see that a few object types account for most of the occurrences. Interestingly, man (31370) and person (20218) is seen three and two times more than woman (11355), respectively. Apparently, windows are really important in this dataset, coming out on top with 35907 occurrences.

  • The top 259 object types are seen more than 1000 times, and after 819 objects are seen less than 100 times.

  • Looking at the tail-end of the distribution, we see that pikachu is mentioned once, whereas, e.g., wardrobe (5) and robot(8) are rarely seen which was not expected.

  • The nature of the GQA dataset suggests its general-purpose applicability. However, the skewed object categories distribution shown above implies otherwise.

Finding most common object pairs

  • "What are the most common two adjacent object categories in the graphs?"
topPairs = scene_graphs_train.edges.groupBy("src_type", "dst_type")
display(topPairs.count().sort("count", ascending=False))
topPairs = scene_graphs_train.edges.groupBy("src_type", "relation_name", "dst_type")
display(topPairs.count().sort("count", ascending=False))
  • In the tables above, we see that the most common relations reflect spatial properties such as to the right of with windows symmetrically related to each other standing for 2 x 28944 occurrences.

  • The most common relations are primarily between objects of the same category.

  • The first 'action'-encoding relation is seen in the 15th most common triple man-wearing-shirt (5254).

Finding most common relations

  • Could we categorise the edges according to what semantic function they play?

  • For instance, filtering out all spatial relations (behind, to the left of, etc.).

  • Suggested categories: spatial, actions, and semantic relations.

topPairs = scene_graphs_train.edges.groupBy("relation_name")
display(topPairs.count().sort("count", ascending=False))
  • The most common relations are spatial, overwhelmingly, with to the left of and to the right of accounting for 1.7 million occurrences each.

  • In contrast, the third most common relation on is seen "only" 90804 times. Out of the top 30 relations, 23 are spatial. Common actions can be seen as few times as 28, as in the case of opening.

  • Some of these relations encode both spatial and actions, such as in sitting on.

  • This shows some ambiguity in how the relation names are chosen, and how this relates to the attributes, such as sitting, looking, lying, that can also be encoded as object attributes.

  • Next, we filter out relations that begin with to the, in, on, behind of, or in front of, in order to bring forth more of the non-spatial relations.
# Also possible to do:
# from pyspark.sql.functions import udf
#from pyspark.sql.types import BooleanType

#filtered_df = spark_df.filter(udf(lambda target: target.startswith('good'),
#                                  BooleanType())(spark_df.target))

topPairs = scene_graphs_train.edges.filter("(relation_name NOT LIKE 'to the%') and (relation_name NOT LIKE '%on') and (relation_name NOT LIKE '%in') and (relation_name NOT LIKE '% of')").groupBy("src_type", "relation_name", "dst_type")
display(topPairs.count().sort("count", ascending=False))

2_6

  • In the pie chart above, we see that once we filter out the most common spatial relations, the remainder is dominated by wearing and the occasional associative of (as in, e.g., head-of-man).

  • These relations make up almost half of the non-spatial relations.

scene_graphs_train_without_attributes_graphid = GraphFrame(scene_graphs_train_without_attributes.vertices.select('id', 'object_name'), scene_graphs_train_without_attributes.edges)
motifs = scene_graphs_train_without_attributes_graphid.find("(a)-[ab]->(b); (b)-[bc]->(c)").filter("(a.object_name NOT LIKE b.object_name) and (a.object_name NOT LIKE c.object_name)")

display(motifs)
motifs_sorted = motifs.distinct()
display(motifs_sorted)
motifs_sorted.count()
  • Find circular motifs, i.e., motifs of type A -> relation_ab -> B -> relation_bc -> C -> relation_ca -> A:
circular_motifs = scene_graphs_train.find("(a)-[ab]->(b); (b)-[bc]->(c); (c)-[ca]->(a)")

display(circular_motifs)
circular_motifs.count()

This gives us 7 million cycles of length 3. However, this is most likely dominated by the most common spatial relations. In the cell below, we filter out these spatial relations and count cycles again.

circular_motifs = scene_graphs_train.find("(a)-[ab]->(b); (b)-[bc]->(c); (c)-[ca]->(a)").filter("(ab.relation_name NOT LIKE 'to the%') and (bc.relation_name NOT LIKE 'to the%') and (ca.relation_name NOT LIKE 'to the%') and (ab.relation_name NOT LIKE '% of') and (bc.relation_name NOT LIKE '% of') and (ca.relation_name NOT LIKE '% of')")

display(circular_motifs.select('ab', 'bc', 'ca'))
circular_motifs.count()
  • Without the most common spatial relations, we now have a significantly lower amount, 18805, of cycles of length 3.
  • Find symmetric motifs, i.e., motifs of type A -> relation_ab -> B -> relation_ab -> A:
symmetric_motifs = scene_graphs_train.find("(a)-[ab]->(b); (b)-[ba]->(a)").filter("ab.relation_name LIKE ba.relation_name")

display(symmetric_motifs)
symmetric_motifs.count()
symmetric_motifs = scene_graphs_train.find("(a)-[ab]->(b); (b)-[ba]->(a)").filter("ab.relation_name LIKE ba.relation_name").filter("(ab.relation_name NOT LIKE 'near') and (ab.relation_name NOT LIKE '% of')")

display(symmetric_motifs.select('ab', 'ba'))
symmetric_motifs.count()
  • The symmetric relations that are spatial behave as expected, and removing the most common ones shows that we have 3693 such symmetric relations.

  • However, when looking at the filtered symmetric motifs, we can see examples such as 'boy-wearing-boy' and 'hot dog-wrapped in-hot dog'.

  • These examples of symmetric action relations seem to reflect the expected structure of a scene graph poorly.

  • We assume that this is either an artefact of the human annotations containing noise or that the sought after denseness of the graphs used describing the images creates these kinds of errors.

temp = GraphFrame(scene_graphs_train.vertices.select('graph_id', 'id', 'object_name'), scene_graphs_train.edges)
temp.vertices.write.parquet("/tmp/motif-vertices")
temp.edges.write.parquet("/tmp/motif-edges")
temp = GraphFrame(scene_graphs_val.vertices.select('graph_id', 'id', 'object_name'), scene_graphs_val.edges)#
temp.vertices.write.parquet("/tmp/motif-vertices-val")
temp.edges.write.parquet("/tmp/motif-edges-val")
import org.graphframes.{examples,GraphFrame}

val vertices = sqlContext.read.parquet("/tmp/motif-vertices")
val edges = sqlContext.read.parquet("/tmp/motif-edges")
val rank_graph = GraphFrame(vertices, edges)
import org.graphframes.{examples, GraphFrame}
vertices: org.apache.spark.sql.DataFrame = [graph_id: string, id: string ... 1 more field]
edges: org.apache.spark.sql.DataFrame = [src: string, dst: string ... 3 more fields]
rank_graph: org.graphframes.GraphFrame = GraphFrame(v:[id: string, graph_id: string ... 1 more field], e:[src: string, dst: string ... 3 more fields])
val vertices_val = sqlContext.read.parquet("/tmp/motif-vertices-val")
val edges_val = sqlContext.read.parquet("/tmp/motif-edges-val")
val rank_graph_val = GraphFrame(vertices_val, edges_val)
vertices_val: org.apache.spark.sql.DataFrame = [graph_id: string, id: string ... 1 more field]
edges_val: org.apache.spark.sql.DataFrame = [src: string, dst: string ... 3 more fields]
rank_graph_val: org.graphframes.GraphFrame = GraphFrame(v:[id: string, graph_id: string ... 1 more field], e:[src: string, dst: string ... 3 more fields])
val ranks = rank_graph.pageRank.resetProbability(0.15).tol(0.01).run()
display(ranks.vertices)
#temp = GraphFrame(scene_graphs_train.vertices.select('graph_id', 'id', 'object_name'), scene_graphs_train.edges)

#ranks = temp.pageRank(resetProbability=0.15, tol=0.01)
#display(ranks.vertices)
import org.apache.spark.sql.functions._

val sorted_ranks = ranks.vertices.sort(col("pagerank").desc)
display(sorted_ranks)

val val_graphs_without_attributes = GraphFrame(rank_graph_val.vertices.select("graph_id", "id", "object_name"), rank_graph_val.edges)
val val_ranks = val_graphs_without_attributes.pageRank.resetProbability(0.15).tol(0.01).run()
display(val_ranks.vertices)
val val_sorted_ranks = val_ranks.vertices.sort(col("pagerank").desc)
display(val_sorted_ranks)

val graph_pagerank_sums_objects = ranks.vertices.groupBy("object_name").sum("pagerank")
graph_pagerank_sums_objects.show()
val graph_pagerank_sums_objects_sorted = graph_pagerank_sums_objects.sort(col("sum(pagerank)").desc)
graph_pagerank_sums_objects_sorted: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [object_name: string, sum(pagerank): double]
display(graph_pagerank_sums_objects_sorted)
  • Here, we see that the summed (accumulated) PageRank per object category reflects each object's number of occurrences (see the topObjects section). At least for the top 10 in this table.

  • This verifies that the most common objects are highly connected with others in their respective scene graphs.

  • We, therefore, conclude that they do not necessarily have a high information gain.

  • A high accumulated PageRank suggests a general nature of objects.

#%scala
val object_count = rank_graph.vertices.groupBy("object_name").count()
display(object_count)
  • We now sort by name so that we can perform a join.
val topObjects = object_count.sort(col("object_name").desc)
val graph_pagerank_sums_objects_sorted = graph_pagerank_sums_objects.sort(col("object_name").desc)
display(graph_pagerank_sums_objects_sorted)
val graph_pagerank_joined = graph_pagerank_sums_objects_sorted.join(topObjects, "object_name").withColumn("normalize(pagerank)", col("sum(pagerank)") / col("count"))
display(graph_pagerank_joined.sort(col("normalize(pagerank)").desc))
  • We further normalise the PageRank values, i.e., divide by the number of occurrences per object category in the scenes.

  • We observe that, in contrast to the accumulated PageRank, the normalised values reflect the uniqueness of object categories: the fewer the occurrences, the higher the normalised PageRank.

  • For example, televisions occurs only once in the entire dataset. Its corresponding PageRank (accumulated equals normalised in this case) is the highest of all, followed by pizza oven with 9 occurrences.w sort by name so that we can perform a join.

display(graph_pagerank_joined.sort(col("sum(pagerank)").desc).limit(30))
  • In the above table, we see that the normalised PageRank for the top 30 objects has a different ordering than the summed PageRanks.

  • For example, pole has the highest normalised PageRank, and the most common category window has a lower value.

  • An interesting observation is that the objects ground and sky both, relatively, have a significantly lower normalised PageRank, suggesting that a lower PageRank implies a lower semantic information gain. This can be explained by the fact that background objects like sky are rarely the main focus of an image.

val graph_pagerank_sums = ranks.vertices.groupBy("graph_id").sum("pagerank")
display(graph_pagerank_sums)
val graph_val_pagerank_sums = val_ranks.vertices.groupBy("graph_id").sum("pagerank")
display(graph_val_pagerank_sums)
display(graph_val_pagerank_sums.sort(col("sum(pagerank)").desc))

Merging vertices

  • We use object names (object categories with or without attributes) instead of IDs as vertex identifier to merge all scene graphs (each with its graph_id) into one meta-graph.

  • This enables us to analyse, e.g., how object types relate to each other in general, and how connected components can be formed based on specific image contexts.

  • The key intuition is that it could allow us to detect connected components representing scene categories such as traffic or bathroom, i.e., meta-understanding of images as a whole.

merged_vertices = scene_graphs_val.vertices.selectExpr('object_name as id', 'attributes as attributes')
display(merged_vertices)
merged_vertices.count()
merged_vertices = merged_vertices.distinct()
display(merged_vertices)
merged_vertices.count()
  • We see that there are 22243 unique combinations of objects and attributes.
merged_vertices_without_attributes = merged_vertices.select('id').distinct()
display(merged_vertices_without_attributes)
merged_vertices_without_attributes.count()
merged_edges = scene_graphs_val.edges.selectExpr('src_type as src', 'dst_type as dst', 'relation_name as relation_name')
display(merged_edges)
merged_edges.count()
scene_graphs_merged = GraphFrame(merged_vertices, merged_edges)

# display(scenegraphsmerged.vertices)

display(scene_graphs_merged.edges)
scene_graphs_merged_without_attributes = GraphFrame(merged_vertices_without_attributes, merged_edges)
display(scene_graphs_merged_without_attributes.vertices)
display(scene_graphs_merged_without_attributes.edges)

Computing the Connected Components

  • Here we compute the connected components of the merged scene graphs (one with the object attributes included and the other without).

  • Before merging, the connected components should roughly correspond to the number of scene graphs, as they are made up of at least 1 connected component each.

  • In the merged graphs, we can expect a much smaller set of connected components, and we hypothesize that these could correspond to scene categories (image classes).

sc.setCheckpointDir("/tmp/scene-graph-motifs-connected-components")
connected_components = scene_graphs_merged.connectedComponents()
display(connected_components)

# displays the index of a component for a given object category
components_count = connected_components.groupBy('component')
display(components_count.count().sort("count", ascending=False))
component count
0.0 22221.0
5.92705486854e11 2.0
1.082331758595e12 1.0
1.88978561028e11 1.0
2.92057776131e11 1.0
8.589934595e9 1.0
4.20906795012e11 1.0
1.090921693187e12 1.0
3.35007449088e11 1.0
8.76173328385e11 1.0
3.60777252879e11 1.0
1.657857376265e12 1.0
2.31928233985e11 1.0
1.279900254215e12 1.0
1.013612281856e12 1.0
1.06515188942e12 1.0
8.50403524616e11 1.0
9.44892805124e11 1.0
1.563368095744e12 1.0
1.700807049221e12 1.0
1.606317768704e12 1.0
1.571958030336e12 1.0
  • The number of connected components for the merged graph with attributes is 22, with the first component containing almost all instances.

We now run the connected components for the merged meta-graph without the attributes.

connected_components_without_attributes = scene_graphs_merged_without_attributes.connectedComponents()
display(connected_components_without_attributes)
components_count = connected_components_without_attributes.groupBy('component')
display(components_count.count().sort("count", ascending=False))
  • These results indicate that the merged graph is too dense due to the generic relations (e.g., the spatial relations 'next-to' et al.) connecting all objects into one big chunk.

  • Removing some of these most occurring relations could show an underlying graph structure that is more interesting.

General discussion

First, we recap the main points of the results of our analysis.

Objects

  • Interestingly, man (31370) and person (20218) is seen three and two times more than woman (11355), respectively.
  • The nature of the GQA dataset suggests its general-purpose applicability. However, the skewed object categories distribution shown above implies otherwise.

Attributes

  • Our analysis of the original dataset shows that a few of the most commonly annotated attributes account for the majority of all annotations.
  • Most common attributes are colours, black and white being the most common. white is seen 92659 times, and black 59617 times.
  • We suspect that since the dataset is generated using human annotators, many of the less common annotations, such as attributes occurring less than 100 times, are more error-prone and might have a high noise to label ratio.

Relations

  • The most common relations are, overwhelmingly, spatial properties with to the left of and to the right of, accounting for 1.7 million occurrences each.
  • The most common relations are primarily between objects of the same category.
  • For instance, windows are symmetrically related to each other, making up 2 x 28944 occurrences.
  • Some of these relations encode both spatial and action relation categories, e.g., sitting on.

PageRank

  • Our page rank results mainly reflect the number of occurrences of each object category.

To summarize, we see that GQA still has much room for improvement in terms of the distribution of objects and relations.

The analysis can be further deepened by considering the visual information provided in the dataset, i.e., the images.

ScaDaMaLe Course site and book

By Guangyi Zhang (guaz@kth.se)

Please click HERE to watch the accompanying video.

This project aims to verify the friend-foe motifs in a large-scale signed social network.

A signed network is a graph that contains both positive and negative links. The sign of a link contains rich semantics in different appliations. For example, in a social network, positive links can indicate friendly relationships, while negative ones indicate antagonistic interactions.

In on-line discussion sites such as Slashdot, users can tag other users as “friends” and “foes”. These provide us exemplary datasets to study a online signed network. In this notebook we explore the a dataset from Epinions, which contains up to 119,217 nodes, 841,200 edges, and millions of motifs. Epinions is the trust network of the Epinions product review web site, where users can indicate their trust or distrust of the reviews of others. We analyze the network data in an undirected representation.

References:

Leskovec, Jure, Daniel Huttenlocher, and Jon Kleinberg. "Signed networks in social media." Proceedings of the SIGCHI conference on human factors in computing systems. 2010.

Regarding the motifs, we investigate several interesting triads that are related to structural balance theory in an online social signed network. Structural balance originates in social psychology in the mid-20th-century, and considers the possible ways in which triangles on three individuals can be signed.

Let us explain different types of triads, which is shown in the figure below,

  • T3: “the friend of my friend is my friend”
  • T1: “the friend of my enemy is my enemy,” “the enemy of my friend is my enemy” and “the enemy of my enemy is my friend”
  • T2 and T0: does not quite make sense in social network. For example, two friends of mine are unlikely to be enemy to each other.

Our goal is to compare the numbers of different triads in our appointed dataset.

triads

pwd
/databricks/driver
wget http://snap.stanford.edu/data/soc-sign-epinions.txt.gz
ls -l
total 2924
drwxr-xr-x  2 root root    4096 Jan  1  1970 conf
-rw-r--r--  1 root root     733 Nov 24 15:24 derby.log
drwxr-xr-x 10 root root    4096 Nov 24 15:24 eventlogs
drwxr-xr-x  2 root root    4096 Nov 24 16:15 ganglia
drwxr-xr-x  2 root root    4096 Nov 24 16:04 logs
-rw-r--r--  1 root root 2972840 Dec  3  2009 soc-sign-epinions.txt.gz
gunzip soc-sign-epinions.txt.gz
ls -l
total 11000
drwxr-xr-x  2 root root     4096 Jan  1  1970 conf
-rw-r--r--  1 root root      733 Nov 24 15:24 derby.log
drwxr-xr-x 10 root root     4096 Nov 24 15:24 eventlogs
drwxr-xr-x  2 root root     4096 Nov 24 16:15 ganglia
drwxr-xr-x  2 root root     4096 Nov 24 16:04 logs
-rw-r--r--  1 root root 11243141 Dec  3  2009 soc-sign-epinions.txt
head soc-sign-epinions.txt
# Directed graph: soc-sign-epinions
# Epinions signed social network
# Nodes: 131828 Edges: 841372
# FromNodeId	ToNodeId	Sign
0	1	-1
1	128552	-1
2	3	1
4	5	-1
4	155	-1
4	558	1
mkdir -p epinions
mv soc-sign-epinions.txt epinions/
ls -l /dbfs/FileStore
mv epinions /dbfs/FileStore/
total 33
drwxrwxrwx 2 root root   24 May  1  2018 datasets_magellan
drwxrwxrwx 2 root root 4096 Nov 24 11:14 DIGSUM-files
drwxrwxrwx 2 root root 4096 Nov 24 11:14 import-stage
drwxrwxrwx 2 root root 4096 Nov 24 11:14 jars
drwxrwxrwx 2 root root 4096 Nov 24 11:14 plots
drwxrwxrwx 2 root root 4096 Nov 24 11:14 shared_uploads
drwxrwxrwx 2 root root 4096 Nov 24 11:14 simon_temp_files_feel_free_to_delete_any_time
drwxrwxrwx 2 root root 4096 Nov 24 11:14 tables
drwxrwxrwx 2 root root 4096 Nov 24 11:14 timelinesOfInterest
mv: preserving permissions for ‘/dbfs/FileStore/epinions/soc-sign-epinions.txt’: Operation not permitted
mv: preserving permissions for ‘/dbfs/FileStore/epinions’: Operation not permitted
ls /
path name size
dbfs:/FileStore/ FileStore/ 0.0
dbfs:/_checkpoint/ _checkpoint/ 0.0
dbfs:/databricks/ databricks/ 0.0
dbfs:/databricks-datasets/ databricks-datasets/ 0.0
dbfs:/databricks-results/ databricks-results/ 0.0
dbfs:/datasets/ datasets/ 0.0
dbfs:/digsum-dataframe.csv/ digsum-dataframe.csv/ 0.0
dbfs:/local_disk0/ local_disk0/ 0.0
dbfs:/ml/ ml/ 0.0
dbfs:/mnt/ mnt/ 0.0
dbfs:/mytmpdir-forUserTimeLine/ mytmpdir-forUserTimeLine/ 0.0
dbfs:/results/ results/ 0.0
dbfs:/test/ test/ 0.0
dbfs:/tmp/ tmp/ 0.0
dbfs:/tmpdir/ tmpdir/ 0.0
dbfs:/user/ user/ 0.0
ls /FileStore
path name size
dbfs:/FileStore/DIGSUM-files/ DIGSUM-files/ 0.0
dbfs:/FileStore/datasets_magellan/ datasets_magellan/ 0.0
dbfs:/FileStore/epinions/ epinions/ 0.0
dbfs:/FileStore/import-stage/ import-stage/ 0.0
dbfs:/FileStore/jars/ jars/ 0.0
dbfs:/FileStore/plots/ plots/ 0.0
dbfs:/FileStore/shared_uploads/ shared_uploads/ 0.0
dbfs:/FileStore/simon_temp_files_feel_free_to_delete_any_time/ simon_temp_files_feel_free_to_delete_any_time/ 0.0
dbfs:/FileStore/tables/ tables/ 0.0
dbfs:/FileStore/timelinesOfInterest/ timelinesOfInterest/ 0.0
ls file:/databricks/driver
path name size
file:/databricks/driver/conf/ conf/ 4096.0
file:/databricks/driver/logs/ logs/ 4096.0
file:/databricks/driver/derby.log derby.log 733.0
file:/databricks/driver/ganglia/ ganglia/ 4096.0
file:/databricks/driver/eventlogs/ eventlogs/ 4096.0
//%fs mv file:///databricks/driver/epinions /FileStore/
%fs ls /FileStore/epinions/
path name size
dbfs:/FileStore/epinions/soc-sign-epinions.txt soc-sign-epinions.txt 1.1243141e7
import org.apache.spark.sql._
import org.apache.spark.sql.functions._

import org.graphframes._

// This import is needed to use the $-notation
import spark.implicits._
import org.apache.spark.sql._
import org.apache.spark.sql.functions._
import org.graphframes._
import spark.implicits._
var df = spark.read.format("csv")
//   .option("header", "true")
  .option("inferSchema", "true")
  .option("comment", "#")
  .option("sep", "\t")
  .load("/FileStore/epinions")
df: org.apache.spark.sql.DataFrame = [_c0: int, _c1: int ... 1 more field]
df.count()
res1: Long = 841372
df.rdd.getNumPartitions 
res36: Int = 3
df.head(3)
res37: Array[org.apache.spark.sql.Row] = Array([0,1,-1], [1,128552,-1], [2,3,1])
df.printSchema()
root
 |-- _c0: integer (nullable = true)
 |-- _c1: integer (nullable = true)
 |-- _c2: integer (nullable = true)
val newNames = Seq("src", "dst", "rela")
val e = df.toDF(newNames: _*)
newNames: Seq[String] = List(src, dst, rela)
e: org.apache.spark.sql.DataFrame = [src: int, dst: int ... 1 more field]
e.printSchema()
root
 |-- src: integer (nullable = true)
 |-- dst: integer (nullable = true)
 |-- rela: integer (nullable = true)
// Vertex DataFrame
val v = spark.range(1, 131827).toDF("id")
v: org.apache.spark.sql.DataFrame = [id: bigint]
val g = GraphFrame(v, e)
g: org.graphframes.GraphFrame = GraphFrame(v:[id: bigint], e:[src: int, dst: int ... 1 more field])
g.edges.take(3)
res15: Array[org.apache.spark.sql.Row] = Array([0,1,-1], [1,128552,-1], [2,3,1])
// val results = g.triangleCount.run()

We can not make use of the convenient API triangleCount() because it does not take the sign of edges into consideration. We need to write our own code to find triads.

First, a triad should be undirected, but our graph concists of only directed edges.

One strategy is to keep only bi-direction edges of the same sign. But we need to examine how large is the proportion of edges we will lose.

// Search for pairs of vertices with edges in both directions between them, i.e., find undirected or bidirected edges.
val pair = g.find("(a)-[e1]->(b); (b)-[e2]->(a)")
println(pair.count())
val filtered = pair.filter("e1.rela == e2.rela")
println(filtered.count())
259751
254345
pair: org.apache.spark.sql.DataFrame = [a: struct<id: bigint>, e1: struct<src: int, dst: int ... 1 more field> ... 2 more fields]
filtered: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [a: struct<id: bigint>, e1: struct<src: int, dst: int ... 1 more field> ... 2 more fields]

Fortunately, we only lose a very small amount of edges.

It also makes sense for this dataset, because if A trusts B, then it is quite unlikely that B does not trust A.

In order to count different triads, first we have to find all triads.

val triad = g.find("(a)-[eab]->(b); (b)-[eba]->(a); (b)-[ebc]->(c); (c)-[ecb]->(b); (c)-[eca]->(a); (a)-[eac]->(c)")
println(triad.count())
3314925
triad: org.apache.spark.sql.DataFrame = [a: struct<id: bigint>, eab: struct<src: int, dst: int ... 1 more field> ... 7 more fields]

After finding all triads, we find each type by filtering.

val t111 = triad.filter("eab.rela = 1 AND eab.rela = ebc.rela AND ebc.rela = eca.rela")
println(t111.count())
3232357
t111: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [a: struct<id: bigint>, eab: struct<src: int, dst: int ... 1 more field> ... 7 more fields]
val t000 = triad.filter("eab.rela = -1 AND eab.rela = ebc.rela AND ebc.rela = eca.rela")
println(t000.count())
1610
t000: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [a: struct<id: bigint>, eab: struct<src: int, dst: int ... 1 more field> ... 7 more fields]
val t110 = triad.filter("eab.rela + ebc.rela + eca.rela = 1")
println(t110.count())
62634
t110: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [a: struct<id: bigint>, eab: struct<src: int, dst: int ... 1 more field> ... 7 more fields]
val t001 = triad.filter("eab.rela + ebc.rela + eca.rela = -1")
println(t001.count())
18324
t001: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [a: struct<id: bigint>, eab: struct<src: int, dst: int ... 1 more field> ... 7 more fields]
val n111 = t111.count()
val n001 = t001.count()
val n000 = t000.count() 
val n110 = t110.count()
val imbalanced = n000 + n110
val balanced = n111 + n001
n111: Long = 3232357
n001: Long = 18324
n000: Long = 1610
n110: Long = 62634
imbalanced: Long = 64244
balanced: Long = 3250681

As we can see, the number of balanced triads overwhelms the number of imbalanced ones, which verifies the effectiveness of structural balance theory.

Some tests about duplicated motifs

val g: GraphFrame = examples.Graphs.friends
g: org.graphframes.GraphFrame = GraphFrame(v:[id: string, name: string ... 1 more field], e:[src: string, dst: string ... 1 more field])
display(g.edges)
src dst relationship
a b friend
b c follow
c b follow
f c follow
e f follow
e d friend
d a friend
a e friend
val motifs = g.find("(a)-[e]->(b); (b)-[e2]->(a)")
motifs.show()
+----------------+--------------+----------------+--------------+
|               a|             e|               b|            e2|
+----------------+--------------+----------------+--------------+
|    [b, Bob, 36]|[b, c, follow]|[c, Charlie, 30]|[c, b, follow]|
|[c, Charlie, 30]|[c, b, follow]|    [b, Bob, 36]|[b, c, follow]|
+----------------+--------------+----------------+--------------+

motifs: org.apache.spark.sql.DataFrame = [a: struct<id: string, name: string ... 1 more field>, e: struct<src: string, dst: string ... 1 more field> ... 2 more fields]

As shown above, bi-direction edges are reported twice. Therefore, each triad is counted three times. However, this does not matter in our project, because the ratios between different triads remain the same.

ScaDaMaLe Course site and book

Distributed Linear Algebra

** Authors: ** - Måns Williamson - Jonatan Vallin

This project consists of two parts. In the first part we consider the theory and algorithms for distributed singular value decomposition of matrices, whereas in the second part we implement a music recommendation system closely related to low rank matrix factorization.

The video presentation for this project can be found here.

Distributed singular value decomposition

This part of the project deals with distributed singular value decomposition. The singular value decomposition of a real matrix \(A\) is given by \[A= U S V^T,\]

where \(S\) is a diagonal matrix of size \(n\times n\) and \(U\) (\(m\times n\) ) and \(V\) (\(n\times n\)) are real matrices such that \(U^T U =I\) and \(V^T V=I\). (See for example wikipedia , MIT and WolframMathworld ). A standard way of computing this is to first compute the product \(A^T A= VDV^T\). The matrix S is then obtained by taking the square root of the diagonal of \(D\) and finally we obtain \(U\) by computing \(U = AV S^{-1}\).

When one has large matrices and wants to compute the SVD distributed one takes into account the structure of the matrix and choose an algorithm that takes advantage of this.

One particular case is when one wants to compute the singular value decomposition of a so called "tall and skinny" matrix \(A\). This means that the number of rows \(m\) is much larger than the number of columns \(n\). An example of where this is the case is the Audioscrobbler recommender system used by Last.fm . The typicall dataset will be a tall and skinny matrix where each row contains three entries; an identifier for a song, an identifier for a user and a player count (so each row tells us how many times a user has played a song).

We will look at an algorithm in spark for computing the SVD where one make use of the structure of the tall and skinny matrix \(A\). The algorithm has the following steps:

  • It is computationally expensive to compute the product \(A^T A\) so we compute this distributed (map-reduce).

  • \(A^T A\) is of size \(n\times n\) ( \(n\) is small) so we can compute \(V\) and \(S\) locally by computing the eigenvectors and -values of \(A^TA\).

  • We then compute \(U= AVS^{-1}\) as distributed matrix multiplication by broadcasting \(VS^{-1}\) to each partition and compute the multiplication with the rows of \(A\).

In the spark mllib library theres a package for distributed linear algebra (Data Types) and an object that we will use is the IndexedRow-object . This takes two parameters; a vector and an index that indicates on which row of the matrix the index is located. We can then create an RDD in spark of IndexedRow-objects. Below we use the matrix

\[A = \begin{pmatrix} 1 & 2 \\ 3& 4 \\ 0& 0\\0&0 \end{pmatrix} \] to test the algorithm on. We start by creating the matrix as an array of tuples. We then map each partittion (tuple) to a dense vector that we zip with its index (so we have a (vector,index)-tuple) that we use to create an IndexedRow. (It's worth mentioning that there is an implementation of SVD in Spark for RowMatrices - an RDD of rows of a matrix without indices).

//Import the necessary objects:
import org.apache.spark.mllib.linalg.distributed.IndexedRow
import org.apache.spark.mllib.linalg.Matrices



//Create the matrix A above as a dense matrix:
val Amatrix = Matrices.dense(4,2,Array(1,3,0,0,2,4,0,0))

//Zip each row of a with its index and map it to an indexed row object (x._2 is the index and x._1 the array).
//Once we have an IndexedRow r we can get the index and vector by calling r.index and r.vector 
val A = sc.parallelize(Amatrix.rowIter.toArray.zipWithIndex.map(x=>new IndexedRow(x._2,x._1)))

 A.take(2)

import org.apache.spark.mllib.linalg.distributed.IndexedRow
import org.apache.spark.mllib.linalg.Matrices
Amatrix: org.apache.spark.mllib.linalg.Matrix =
1.0  2.0
3.0  4.0
0.0  0.0
0.0  0.0
A: org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.distributed.IndexedRow] = ParallelCollectionRDD[689] at parallelize at command-1767923094594942:13
res0: Array[org.apache.spark.mllib.linalg.distributed.IndexedRow] = Array(IndexedRow(0,[1.0,2.0]), IndexedRow(1,[3.0,4.0]))

The first part of the algorithm that is "expensive" is the computation of the product \(A^T A\) (we compute \(A^T A\) rather than \(A A^T\) since the former has the shape \(n \times n\) which we assume is small enough to fit on a local machine and \(A A^T\) is of size \(m\times m\) ) . We note that \[ \left( A^T A\right){j,k} = \sum{i=1}^m a_{ij} a_{ik}. \]

This means that we can compute \(A^T A\) by mapping a row (say the i:th row) \[a_i = \left(a_{i1}, \dots , a_{in} \right) \]

to all the products of its elements. We thus create a function that takes an IndexedRow \[a_i \] and maps it to key-value pairs \[ ((j,k), a_{ij} a_{ik}), 1\leq j \leq m, 1\leq k \leq n. \]

We then have an key-value RDD of ((Int,Int),Double)-tuples:

import scala.collection.mutable.ArrayBuffer


//Function that maps an indexed row (index,(a_1,...,a_n)) to   ((j,k),a_j*a_k), j=1,..,n and k=1,...,n
def f(v: IndexedRow): Array[((Int,Int),Double)]={
var keyvaluepairs = ArrayBuffer[((Int,Int),Double)]()
for(j<-0 to v.vector.size-1){
  for(k<-0 to v.vector.size-1){
  keyvaluepairs.append(((j,k),v.vector(j)*v.vector(k)))
  }
}
keyvaluepairs.toArray
}

//map M to key-value rdd where key =(j,k) and value = a_ij*a_ik.
//We use flatmap since we don't need to keep the row structure.
val keyvalRDD = A.flatMap(row =>f(row))

keyvalRDD.take(5)

We can now perform a reduceByKey-operation (join on \((j,k)\) ) and then sum over\[ ((j,k), a_{ij} a_{ik}) \] for all \(i\) to compute

\[ \left( A^T A\right){j,k} = \sum{i=1}^m a_{ij} a_{ik}. \]

We then have a key-value RDD of ((Int,Int),Double)-tuples, where the value is an entry in the matrix \(A\) and the key indicates on what position in the matrix it is located:

\[\left( (j,k), \left( A^T A\right)_{j,k} \right), 1\leq j \leq m, 1\leq k \leq n.\]

//Sum up all key-value pairs that have the same key (j,k) (corresponts to getting the element of A.T*A on the j:th row and k:th column).
val keyvalSum = keyvalRDD.reduceByKey((x,y)=>x+y)

keyvalSum.take(2)

We now make use of another object in the distributer linear algebra package in spark mllib; MatrixEntry . We map each key-value pair to a MatrixEntry-object (which has a row index, column index and a value). With this we can create a CoordinateMatrix . We can transform this to a RowMatrix that we finally collect.

import org.apache.spark.mllib.linalg.distributed.{CoordinateMatrix, MatrixEntry}
import breeze.linalg.DenseMatrix

//map to matrix entries
val matrix = keyvalSum.map(el => MatrixEntry(el._1._1, el._1._2, el._2))   

//Create a CoordinateMatrix
val mat = new CoordinateMatrix(matrix)


//Transform to RowMatrix and collect.
val ATArowmatrix = mat.toRowMatrix().rows.collect()

We now want to calculate the eigen values and eigen vectors of \(A^T A\) (locally) and in order to do this we transform it to a DenseMatrix (from the Breeze linear algebra package):

val m = mat.numRows()
val n = mat.numCols()

//Create an empty DenseMatrix (in which we will store the product A.T*A).
val ATA = DenseMatrix.zeros[Double](m.toInt,n.toInt)

//Each row will be a sparse vector. For each row we iterate over the non-zeros indices (foreachActive) and fill the i:th row of the ATA-matrix.
var i = 0
ATArowmatrix.foreach { vec =>
  vec.foreachActive { case (index, value) =>
    ATA(i, index) = value
  }
  i += 1
}

We compute the eigenvalues and eigenvectors. The matrix \(S\) in the SVD is obtained by computing the square root of the eigenvalues and inserting them in a diagonal matrix and the matrix \(V\) are the eigenvectors:

import scala.collection.mutable.ArrayBuffer
import breeze.linalg._, eigSym.EigSym

//lambda is a vector with the eigenvalues of A.T*A and evs the eigenvector matrix.
val EigSym(lambda, evs) = eigSym(ATA) 
//det(evs)

val w=lambda.map(x=>if(x >0) Math.sqrt(x) else 0) //square root of eigen values to compute the S matrix.
val S =diag(w)  
val V =evs

In the last step we need to compute \[U = AVS^{-1}.\]

Since both \(V\) and \(S^{-1}\) are of size \(n\times n\) (and \(n\) is relatively small) we can compute the product \(VS^{-1}\) locally and then broadcast it to each partition of \(A\) (which is an RDD of IndexedRow).

//Compute the inverse of S.
val Sinv = S.map(x=>if(x==0) 0 else 1/x)   //invert the diagonal matrix.

//Compute the product of V and inverse of S.
val M = V*Sinv

//Broadcast to the spark context.
sc.broadcast(M)

We define a function that we can use to multiply an IndexedRow with a DenseMatrix on the left. We use this to map each row of \(A\) to its product with \(VS^{-1}\):

import org.apache.spark.mllib.linalg.distributed.{IndexedRowMatrix}

//Function that multiplies an indexedRow object with a DenseMatrix (from breeze.linalg.DenseMatrix) on the left and returns an Array.
def prod(u: IndexedRow, m: DenseMatrix[Double]): Array[Double]={
var w = ArrayBuffer[Double]()
for(i<-0 to m.cols-1){
  var x: Double =0
  for(j<-0 to m.rows-1){
      x=x+m(j,i)*u.vector(j)
  }
  w.append(x)
}
w.toArray
}


//COmpute the matrix product by multiplying each indexed row with the Matrix M (and then collect the result)
val Urows =A.map(row => prod(row,M)).collect() 

//Create a dense matrix U with the rows.
val U = DenseMatrix(Urows:_*)   

Finally we print the product \(USV^T\) and check that it corresponds to \(A\)

//Print the product USV.t to check that it equals A:
println(U*S*V.t)

ScaDaMaLe Course site and book

Music Recommendation System

In general, recommender systems are algorithms designed for suggesting relevant items/products to users. In the last decades they have gained much interest because of the potential of increasing the user experience at the same time as generating more profit to companies. Nowadays, these systems can be found in several well-known services like Netfilx, Amazon, YouTube and Spotify. As an indicator of how valuable these algorithms are for such companies: back in 2006 Netflix announced the open Netflix Prize Competition for the best algorithm to predict users movie ratings based on collected data. The winning team with the best algorithm improving the state-of-the-art performance with at least 10% was promised an award of 1 000 000$. In this notebook we are going to develope a system for recommending musical artists to users given their listening history. We will implement a model related to matrix factorization discussed in the preceeding chapter.

Problem Setting

We let \(U\) be the set containing all \(m\) users and let \(I\) be the set containing all \(n\) available items. Now, we introduce the matrix \(R\in \mathbb{R}^{m \times n}\) with elements \(r{_u}{_i}\) as values encoding possible interactions between users \(u\in U\) and items \(i \in I\). This matrix is often very sparse because of the huge number of possible user-item interactions never observed. Depending on the type of information encoded in the interaction matrix \(R\) one usally refers to either explicit or implicit data.

For explicit data, \(r{_u}{_i}\) contains information directly related to user \(u\)'s preference for item \(i\), e.g movie ratings. In the case of implicit data, \(r{_u}{_i}\) contains indirect information of a user's preference for an item by observing past user behavior. Examples could be the number of times a user played a song or visited a webpage. Note that in the implicit case we are lacking information about items that the user dislikes because e.g if a user of a music service has not played any songs from a particular artist it could either mean that the user simply doesn't like that artist or that the user hasn't encountered that artist before but would potentially like it if the user had discovered the artist.

Given the observations in the interaction matrix \(R\), we would like our model to suggest unseen items relevant to the users.

Collaborative Filtering

Broadly speaking, recommender algorithms can be divided into two categories: content based and collaborative filtering (CF). Here, we will just focus on collaborative filtering which is a technique using patterns of user-item interactions and discarding any additional information about the users or items themselves. It is based on the assumption that if a user similar to you likes an item, then there is a high probability that you also like that particular item. In other words, similar users have similar tastes.

There are different approaches to CF, and we have chosen a laten factor model approach inspired by low-rank SVD factorization of matrices. The aim is to uncover latent features explaining the observed \(r{_u}{_i}\) values. Each user \(u\) is associated to a user-feature vector \(x{_u}\in \mathbb{R}^f\) and similarly each item \(i\) is associated to an item-feature vector \(y{_i} \in \mathbb{R}^f\). Then we want the dot products \(x{_u}^Ty{_i}\) to explain the observed \(r{_u}{_i}\) values. With all user- and item-features at hand in the latent space \(\mathbb{R}^f\) we can estimate a user \(u\)'s preference for an unseen item \(j\) by simply computing \(x{_u}^Ty{_j}\).

We transorm the problem of finding the vectors \(x{_u}, y{_i}\) into a minimization problem as suggested in the paper Collaborative Filtering for Implicit Feedback Datasets. First we introduce the binarized quantitiy \(p{_u}{_i}\) defined by:

\[p_{ui}=\begin{cases}1 \text{ if } r_{ui}>0, \\ 0 \text{ if } r_{ui}=0,\end{cases}\] encoding whether user \(u\) has interacted with and supposedly likes item \(i\). However, our confidence that user \(u\) likes item \(i\) given that \(p{_u}{_i}=1\) should vary with the actual observed \(r{_u}{_i}\) value. As an example, we would be more confident that a user likes an artist he/she has listened to hundreds of times than an artist played by the user only once. Therefore we introduce the confidence \(c{_u}{_i}\):

\[c_{ui}=1+\alpha r_{ui}\],

where \(\alpha\) is a hyperparameter. From the above equation we can see that the confidence for non observed user-item interaction defaults to 1. Now we formulize the minimization problem:

\[\min_{X,Y}\sum_{u\in U,i \in I}c_{ui}(p_{ui}-x_u^Ty_i)^2+\lambda(\sum_{u\in U}||x_u||^2+\sum_{i\in I}||y_i||^2),\] where \(X,Y\) are matrices holding the \(x_u,y_i\) as columns respectively. In addition, we also have a regularization term to avoid overfitting. Notice that this is closely related to regularized low-rank matrix factorization of the matrix \(P\) with \(p{_u}{_i}\) as elements. We want to approximate \(P\approx X^TY\) where both \(X,Y\) have low rank (\(f\)). Because of the weights \(c{_u}{_i}\) we care more about recover entries in \(P\) with high confidence, directly related to the observations.

Dataset

For this application we use a dataset containing user-artist listening information from the online music service Last.fm.

One of the available files contains triplets (userID artistID play_count) describing the number of times a user has played an artist. Another file contains tuples (artistID name) mapping the artistID:s to actual artist names. There are a total of 92834 (userID artistID play_count) triplets containing 1892 unique userIDs and 17632 unique artistIDs. Since the observations in the dataset do not contain direct information about artist preferences, this is an implicit dataset as discussed erlier. Based on this dataset we want our model to give artist recommendations to the users.

import spark.implicits._
import org.apache.spark.sql.functions._
import spark.implicits._
import org.apache.spark.sql.functions._

Lets load the data!

// Load the (userID, artistID, play_count) triplets.
val fileName_data="dbfs:/FileStore/tables/project4/hetrec2011-lastfm-2k/user_artists.dat"
val df_raw = spark.read.format("csv").option("header", "true").option("delimiter", "\t").option("inferSchema","true").load(fileName_data).withColumnRenamed("weight","play_count")
df_raw.cache()
df_raw.orderBy(rand()).show(5)

// Load the (artistID, name) tuples.
val fileName_names="dbfs:/FileStore/tables/project4/hetrec2011-lastfm-2k/artists.dat"
val artist_names = spark.read.format("csv").option("header", "true").option("delimiter", "\t").option("inferSchema","true").load(fileName_names).withColumnRenamed("id","artistID").select("artistID","name")
artist_names.cache()
artist_names.show(5)
+------+--------+----------+
|userID|artistID|play_count|
+------+--------+----------+
|  1553|    2478|       171|
|    65|    1858|       254|
|   496|       9|       161|
|   304|     163|        19|
|   747|     507|       626|
+------+--------+----------+
only showing top 5 rows

+--------+-----------------+
|artistID|             name|
+--------+-----------------+
|       1|     MALICE MIZER|
|       2|  Diary of Dreams|
|       3|Carpathian Forest|
|       4|     Moi dix Mois|
|       5|      Bella Morte|
+--------+-----------------+
only showing top 5 rows

fileName_data: String = dbfs:/FileStore/tables/project4/hetrec2011-lastfm-2k/user_artists.dat
df_raw: org.apache.spark.sql.DataFrame = [userID: int, artistID: int ... 1 more field]
fileName_names: String = dbfs:/FileStore/tables/project4/hetrec2011-lastfm-2k/artists.dat
artist_names: org.apache.spark.sql.DataFrame = [artistID: int, name: string]

We print some statistics and visualize the raw data.

val n_data = df_raw.count().asInstanceOf[Long].floatValue(); // Number of observations
val n_users = df_raw.agg(countDistinct("userID")).collect()(0)(0).asInstanceOf[Long].floatValue(); // Number of unique users
val n_artists = df_raw.agg(countDistinct("artistID")).collect()(0)(0).asInstanceOf[Long].floatValue(); // Number of unique artists
val sparsity = 1-n_data/(n_users*n_artists) //Sparsity of the data

println("Number of data points: " + n_data)
println("Number of users: " + n_users)
println("Number of artists: " + n_artists)
print("Sparsity:" + sparsity.toString + "\n")
Number of data points: 92834.0
Number of users: 1892.0
Number of artists: 17632.0
Sparsity:0.9972172
n_data: Float = 92834.0
n_users: Float = 1892.0
n_artists: Float = 17632.0
sparsity: Float = 0.9972172

Below we see that the play count variable tends to vary over a large range. From 1 to over 350 000.

display(df_raw.select("play_count"))

display(df_raw.select("play_count").filter($"play_count"<1000))

We count the total plays and number of unique listeners for each artist.

// Compute some statistics for the artists.
val artist_data_raw = df_raw.groupBy("artistID").agg(count("artistID") as "unique_users",
                                                      sum("play_count") as "total_plays_artist")
artist_data_raw.sort(desc("total_plays_artist")).join(artist_names,"artistID").show(5) // Top artists based on total plays
artist_data_raw.sort(desc("unique_users")).join(artist_names,"artistID").show(5) // Top artists based on number of unique listener
+--------+------------+------------------+------------------+
|artistID|unique_users|total_plays_artist|              name|
+--------+------------+------------------+------------------+
|     289|         522|           2393140|    Britney Spears|
|      72|         282|           1301308|      Depeche Mode|
|      89|         611|           1291387|         Lady Gaga|
|     292|         407|           1058405|Christina Aguilera|
|     498|         399|            963449|          Paramore|
+--------+------------+------------------+------------------+
only showing top 5 rows

+--------+------------+------------------+--------------+
|artistID|unique_users|total_plays_artist|          name|
+--------+------------+------------------+--------------+
|      89|         611|           1291387|     Lady Gaga|
|     289|         522|           2393140|Britney Spears|
|     288|         484|            905423|       Rihanna|
|     227|         480|            662116|   The Beatles|
|     300|         473|            532545|    Katy Perry|
+--------+------------+------------------+--------------+
only showing top 5 rows

artist_data_raw: org.apache.spark.sql.DataFrame = [artistID: int, unique_users: bigint ... 1 more field]
display(artist_data_raw.select("total_plays_artist"))

display(artist_data_raw.select("total_plays_artist").filter($"total_plays_artist"<10000))

display(artist_data_raw.select("unique_users"))

We count the total plays and the number of unique artists each user has listened to.

// Compute statistics for each user.
val user_data_raw = df_raw.groupBy("userID").agg(count("userID") as "unique_artists",
                                                  sum("play_count") as "total_plays_user")
user_data_raw.sort(desc("total_plays_user")).show(5) // Show users with most total plays
+------+--------------+----------------+
|userID|unique_artists|total_plays_user|
+------+--------------+----------------+
|   757|            50|          480039|
|  2000|            50|          468409|
|  1418|            50|          416349|
|  1642|            50|          388251|
|  1094|            50|          379125|
+------+--------------+----------------+
only showing top 5 rows

user_data_raw: org.apache.spark.sql.DataFrame = [userID: int, unique_artists: bigint ... 1 more field]
display(user_data_raw.select("total_plays_user"))

Now we join all statistics into a single dataframe.

// Merge all statistics and data into a single dataframe.
val df_joined = df_raw.join(artist_data_raw, "artistID").join(user_data_raw, "userID").join(artist_names,"artistID").select("userID", "artistID","play_count", "name", "unique_artists","unique_users", "total_plays_user","total_plays_artist")
df_joined.show(5)
+------+--------+----------+-------------+--------------+------------+----------------+------------------+
|userID|artistID|play_count|         name|unique_artists|unique_users|total_plays_user|total_plays_artist|
+------+--------+----------+-------------+--------------+------------+----------------+------------------+
|     2|      51|     13883|  Duran Duran|            50|         111|          168737|            348919|
|     2|      52|     11690|    Morcheeba|            50|          23|          168737|             18787|
|     2|      53|     11351|          Air|            50|          75|          168737|             44230|
|     2|      54|     10300| Hooverphonic|            50|          18|          168737|             15927|
|     2|      55|      8983|Kylie Minogue|            50|         298|          168737|            449292|
+------+--------+----------+-------------+--------------+------------+----------------+------------------+
only showing top 5 rows

df_joined: org.apache.spark.sql.DataFrame = [userID: int, artistID: int ... 6 more fields]

Collaborative filtering models suffer from the cold-start problem, meaning they have difficulties in making inference of new users or items. Therefore we will filter out artists with fewer than 20 unique listeners and users that have listened to less than 5 artists.

// Remove artists with less than 20 unique users, and recompute the statistics.
val df_filtered_1 = df_joined.filter($"unique_users">=20).select(df_joined("userID"),df_joined("artistID"),df_joined("play_count"))
val artist_data_1 = df_filtered_1.groupBy("artistID").agg(count("artistID") as "unique_users",
                                                          sum("play_count") as "total_plays_artist")
                                                     .withColumnRenamed("artistID","artistID_1")

val user_data_1 = df_filtered_1.groupBy("userID").agg(count("userID") as "unique_artists",
                                                          sum("play_count") as "total_plays_user")
                                                     .withColumnRenamed("userID","userID_1")

val df_joined_filtered_1 = df_filtered_1.join(artist_data_1, artist_data_1("artistID_1")===df_filtered_1("artistID"))
                                        .join(user_data_1, user_data_1("userID_1")===df_filtered_1("userID"))
                                        .select(df_filtered_1("userID"),df_filtered_1("artistID"),df_filtered_1("play_count"),
                                                 artist_data_1("unique_users"),artist_data_1("total_plays_artist"),
                                                 user_data_1("unique_artists"), user_data_1("total_plays_user"))

// Remove users with less than 5 unique users, and recompute the statistics.
val df_filtered_2 = df_joined_filtered_1.filter($"unique_artists">=5).select(df_filtered_1("userID"),df_filtered_1("artistID"),
                                                                             df_filtered_1("play_count"))

val artist_data = df_filtered_2.groupBy("artistID").agg(count("artistID") as "unique_users",
                                                        sum("play_count") as "total_plays_artist")
                                                   .withColumnRenamed("artistID","artistID_2")

val user_data = df_filtered_2.groupBy("userID").agg(count("userID") as "unique_artists",
                                                         sum("play_count") as "total_plays_user")
                                                   .withColumnRenamed("userID","userID_2")

// Now we collect our new filtered data.
val user_artist_data = df_filtered_2.join(artist_data, artist_data("artistID_2")===df_filtered_2("artistID"))
                                    .join(user_data, user_data("userID_2")===df_filtered_2("userID"))
                                    .select("userID","artistID","play_count","unique_users","total_plays_artist","unique_artists","total_plays_user")

user_artist_data.show(5)
+------+--------+----------+------------+------------------+--------------+----------------+
|userID|artistID|play_count|unique_users|total_plays_artist|unique_artists|total_plays_user|
+------+--------+----------+------------+------------------+--------------+----------------+
|   148|    1118|       214|          62|             53915|            12|            3026|
|   148|    1206|       245|          50|             32827|            12|            3026|
|   148|     206|       214|          83|             36944|            12|            3026|
|   148|     233|       170|         138|            160317|            12|            3026|
|   148|     429|       430|         162|             91740|            12|            3026|
+------+--------+----------+------------+------------------+--------------+----------------+
only showing top 5 rows

df_filtered_1: org.apache.spark.sql.DataFrame = [userID: int, artistID: int ... 1 more field]
artist_data_1: org.apache.spark.sql.DataFrame = [artistID_1: int, unique_users: bigint ... 1 more field]
user_data_1: org.apache.spark.sql.DataFrame = [userID_1: int, unique_artists: bigint ... 1 more field]
df_joined_filtered_1: org.apache.spark.sql.DataFrame = [userID: int, artistID: int ... 5 more fields]
df_filtered_2: org.apache.spark.sql.DataFrame = [userID: int, artistID: int ... 1 more field]
artist_data: org.apache.spark.sql.DataFrame = [artistID_2: int, unique_users: bigint ... 1 more field]
user_data: org.apache.spark.sql.DataFrame = [userID_2: int, unique_artists: bigint ... 1 more field]
user_artist_data: org.apache.spark.sql.DataFrame = [userID: int, artistID: int ... 5 more fields]

Below we can see that we have reduced the amount of data. The number of users are quite similar as before but the number of artists is significantly reduced indicating there were many artists in the raw data only played by a small fraction of users.

val n_data_new = user_artist_data.count().asInstanceOf[Long].floatValue(); // Number of observations
val n_users_new = user_artist_data.agg(countDistinct("userID")).collect()(0)(0).asInstanceOf[Long].floatValue(); // Number of unique users
val n_artists_new = user_artist_data.agg(countDistinct("artistID")).collect()(0)(0).asInstanceOf[Long].floatValue(); // Number of unique artists
val sparsity_new = 1-n_data/(n_users*n_artists) // Compute the sparsity

println("Number of data points: " + n_data_new)
println("Number of users: " + n_users_new)
println("Number of artists: " + n_artists_new)
print("Sparsity:" + sparsity.toString + "\n")
Number of data points: 53114.0
Number of users: 1819.0
Number of artists: 804.0
Sparsity:0.9972172
n_data_new: Float = 53114.0
n_users_new: Float = 1819.0
n_artists_new: Float = 804.0
sparsity_new: Float = 0.9972172
display(user_artist_data.select("play_count"))

display(artist_data.select("total_plays_artist"))

display(artist_data.select("unique_users"))

The total number of plays are correlated to the number of unique listeners (as expected) as illustrated in the figure below.

display(artist_data)

In the paper mentioned above, the authors suggest scaling the \(r{_u}{_i}\) if the values tends to vary over large range as in our case. They presented a log scaling scheme but after testing different approaches we found that scaling by taking the square root of the observed play counts (thus reducing the range) worked best.

//Scaling the play_counts
val user_artist_data_scaled = user_artist_data
.withColumn("scaled_value", sqrt(col("play_count"))).drop("play_count").withColumnRenamed("scaled_value","play_count")
user_artist_data_scaled.show(5)
+------+--------+------------+------------------+--------------+----------------+------------------+
|userID|artistID|unique_users|total_plays_artist|unique_artists|total_plays_user|        play_count|
+------+--------+------------+------------------+--------------+----------------+------------------+
|   148|     436|         124|             88270|            12|            3026| 18.33030277982336|
|   148|    1206|          50|             32827|            12|            3026|15.652475842498529|
|   148|     512|          67|             62933|            12|            3026|15.620499351813308|
|   148|     429|         162|             91740|            12|            3026| 20.73644135332772|
|   148|    1943|          25|             13035|            12|            3026| 17.26267650163207|
+------+--------+------------+------------------+--------------+----------------+------------------+
only showing top 5 rows

user_artist_data_scaled: org.apache.spark.sql.DataFrame = [userID: int, artistID: int ... 5 more fields]

Plotting the scaled data. We ca see that the range is smaller after the scaling.

display(user_artist_data_scaled.select("play_count"))

display(user_artist_data_scaled.select("play_count"))

We split our scaled dataset into training, validation and test sets.

// Split data into training, validation and test sets.
val Array(training_set, validation_set, test_set) = user_artist_data_scaled.select("userID","artistID","play_count").randomSplit(Array(0.6, 0.2, 0.2))
training_set.cache()
validation_set.cache()
test_set.cache()
training_set: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [userID: int, artistID: int ... 1 more field]
validation_set: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [userID: int, artistID: int ... 1 more field]
test_set: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [userID: int, artistID: int ... 1 more field]
res109: test_set.type = [userID: int, artistID: int ... 1 more field]

Alternating Least Squares

By looking at the minimization problem again, we see that if one of \(X\) and \(Y\) is fixed, the cost function is just quadratic and hence the minimum can be computed easily. Thus, we can alternate between re-computing the user and artist features while holding the other one fixed. It turns out that the over all const function is guaranteed to decrease in each iteration. This procedure is called Alternating Least Squares and is available in Spark. \[\min_{X,Y}\sum_{u\in U,i \in I}c_{ui}(p_{ui}-x_u^Ty_i)^2+\lambda(\sum_{u\in U}||x_u||^2+\sum_{i\in I}||y_i||^2),\]

The solution to the respective quadratic problems are:

\[x_u=(Y^TC^uY+\lambda Id )^{-1}Y^TC^up(u) \quad \forall u\in U,\] \[y_i=(X^TC^iX+\lambda Id )^{-1}X^TC^ip(i) \quad \forall i\in I,\]

where \(C^u, C^i\) are a diagonal matrices with diagonal entries \(c{_u}{_i}\) \(i \in I\) and \(c{_u}{_i}\) \(u \in U\) respectively. The \(p(u)\) and \(p(i)\) are vectors containing all binarized user and artist observations for user \(u\) and artist \(i\) respectively. The computational bottlneck is to compute the \(Y^TC^uY\) (require time \(O(f^2n)\) for each user). However, we can rewrite the product as \(Y^TC^uY=Y^TY+Y^T(C^u-I)Y\) and now we see that the term \(Y^TY\) does not depend on \(u\) and that \((C^u-I)\) will only have a number of non-zero entries equal to the number of artists user \(u\) has interacted with (which is usually much smaller than the total number of artists). Hence, that representation is much more beneficial computationally. A similar approach can be applied to \(X^TC^iX\). The matrix inversions need to be done on matrices of size \(f \times f\) where \(f\) is the dimension of the latent feature space and thus relatively small compared to \(m,n\).

When we have all the user and artist features we can produce a recommendation list of artist for user \(u\) by taking the dot products \(x{_u}^Ty{_i}\) for all artists and arrange them in a list in descending order with respect to these computed values.

Evaluation

One approach to measure the performance of the model would be to measure the RMSE:

\[\sqrt{\frac{1}{\#\text{observations}}\sum_{u, i}(p_{ui}^t-x_u^Ty_i)^2},\] where \(p_{ui}^t\) is the binarized observations from the test set. However, this metric is not very suitable for this particular application since for the zero entries of \(p^t{_u}{_i}\) we don't know if the user dislikes the artist or just hasn't discovered it. In the paper they suggest the mean percentile rank metric:

\[\overline{rank}=\frac{\sum_{u, i}r^t_{ui}rank_{ui}}{\sum_{u, i} r^t_{ui}},\] where \(rank_{ui}\) is the percentile rank of artist \(i\) in the produced recommendation list for user \(u\). Hence if artist \(j\) is in the first place in the list for user \(u\) we get that \(rank{_u}{_j}=0%\) and if it is in the last place we get \(rank{_u}{_j}=100%\). Thus, this metric is an weighted average of the percentiles of the artists the users have listened to. If user \(u\) has listened to artist \(j\) many times we have a large \(r{_u}{_j}\) value, but if the artist is ranked very low in the recommendation list for this user, it will increase the value of \(\overline{rank}\) drastically. If the model instead ranks this artist correctly in the top, the product \(r{_u}{_j}rank{_u}{_j}\) will get small. Hence, low values of \(\overline{rank}\) is desired.

Unfortunately, the \(\overline{rank}\) metric is not implemented in Spark yet, so below we have written our own function for computing it given the ranked artist lists for each user. We also remove an artist from the recommendation list for a user if we have observed that the user listened to that artist in the training data. This eliminates the easy recommendation, that is, recommending the same artists we know that the user has already listened to.

import org.apache.spark.sql.expressions.Window
import org.apache.spark.sql.Dataset
import org.apache.spark.sql.Row
import org.apache.spark.sql.DataFrame

// Function for computing the mean rank metric.
// Input:
// - prediction_scores_new: DataFrame with userIDs and corresponding recommendation lists.
// - training_set: DataFrame with observations in training set
// - validation_set: DataFrame with the observations needed for the evaluation of the metric.
// Output: Float corresponind to the mean_rank score.
def eval_model(predictions_scores_new: DataFrame, training_set: DataFrame, validation_set: DataFrame) : Float = {

  val predictions_scores = predictions_scores_new.withColumnRenamed("userID","userID_new") // Avoinding duplicate column names.
  val recommendations = predictions_scores.withColumn("recommendations", explode($"recommendations")) // Rearrange the recommendation lists.
                                      .select("userID_new","recommendations.artistID", "recommendations.rating")

  val recommendations_filtered = recommendations.join(training_set, training_set("userID")===recommendations("userID_new") && training_set("artistID")===recommendations("artistID"), "leftanti") // Erase artists appearing in the training for each user.

  // Compute ranking percentiles.
  val recommendations_percentiles = recommendations_filtered.withColumn("rank",percent_rank()
                                                            .over(Window.partitionBy("userID_new").orderBy(desc("rating"))))
  // Store everything in single DataFrame.
  val table_data = recommendations_percentiles.join(validation_set, recommendations_percentiles("userID_new")===validation_set("userID") && recommendations_percentiles("artistID")===validation_set("artistID"))

  // Compute the sum in the numerator for the metric.
  val numerator = table_data.withColumn("ru1rankui", $"rank"*$"play_count"*100.0)
                            .agg(sum("ru1rankui"))
                            .collect()(0)(0).asInstanceOf[Double]

  // Compute the sum in the denominator for the metric.
  val denumerator = table_data.agg(sum("play_count"))
                              .collect()(0)(0)
                              .asInstanceOf[Double]
  // Compute the mean percentile rank.
  val rank_score = numerator/denumerator
  rank_score.toFloat
}
import org.apache.spark.sql.expressions.Window
import org.apache.spark.sql.Dataset
import org.apache.spark.sql.Row
import org.apache.spark.sql.DataFrame
eval_model: (predictions_scores_new: org.apache.spark.sql.DataFrame, training_set: org.apache.spark.sql.DataFrame, validation_set: org.apache.spark.sql.DataFrame)Float

Now we import the ALS module from Spark and start the training. We perform a grid search over the hyper-parameters: the latent dimension \(f\), confidence parameter \(\alpha\) and regularization parameter \(\lambda\). We choose the parameter combinations based on the performance on the validation set.

import org.apache.spark.ml.recommendation.ALS
// Number of iterations in the ALS algorithm
val numIter = 10


 val ranks = List(10,50,100,150) // Dimension of latent feature space
 val lambdas=List(0.1, 1.0, 2.0) // Regularization parameter
 val alphas=List(0.5, 1.0, 5.0) // Confidence parameter

// Loop over all parameter combinations
for ( alpha <- alphas ){
  for ( lambda <- lambdas ){
    for ( rank <- ranks ){
      val als = new ALS()
        .setRank(rank)
        .setMaxIter(numIter)
        .setRegParam(lambda)
        .setUserCol("userID")
        .setItemCol("artistID")
        .setRatingCol("play_count")
        .setImplicitPrefs(true) // Indicate we have implicit data
        .setAlpha(alpha)
        .setNonnegative(true) // Constrain to non-negative values

      // Fit the model
      val model = als.fit(training_set)

      model.setColdStartStrategy("drop") // This is to ensure we handle unseen users or unseen artist saftely during the prediction.
           .setUserCol("userID")
           .setItemCol("artistID")
      // Generate the recommendations
      val predictions_scores = model.recommendForUserSubset(validation_set,n_artists_new.toInt)

      // Evaluate the model
      println("rank=" + rank + ", alpha=" + alpha + ", lambda=" + lambda + ", mean_rank=" + eval_model(predictions_scores, training_set, validation_set))
    }
  }
}

We get our final model by choosing \(f=150, \alpha=0.5\) and \(\lambda=2.0\) train the model again and evaluating it on the test set. We observe a test error of 7.75 %.

// Retrain the best model.

val numIter_final=10
val rank_final=150
val alpha_final=0.5
val lambda_final=2.0
val als_final = new ALS()
        .setRank(rank_final)
        .setMaxIter(numIter_final)
        .setRegParam(lambda_final)
        .setUserCol("userID")
        .setItemCol("artistID")
        .setRatingCol("play_count")
        .setImplicitPrefs(true)
        .setAlpha(alpha_final)
        .setNonnegative(true)
val model_final = als_final.fit(training_set)
model_final.setColdStartStrategy("drop")
     .setUserCol("userID")
     .setItemCol("artistID")

// Evaluate on the validation set.
val predictions_scores_val = model_final.recommendForUserSubset(validation_set,n_artists_new.toInt)
println("Validation set: mean_rank=" + eval_model(predictions_scores_val, training_set, validation_set))

// Evaluate on the test set.
val predictions_scores_test = model_final.recommendForUserSubset(test_set,n_artists_new.toInt)
println("Test set: mean_rank=" + eval_model(predictions_scores_val, training_set, test_set))
Validation set: mean_rank=7.7979865
Test set: mean_rank=7.75016
numIter_final: Int = 10
rank_final: Int = 150
alpha_final: Double = 0.5
lambda_final: Double = 2.0
als_final: org.apache.spark.ml.recommendation.ALS = als_f778f6cc23db
model_final: org.apache.spark.ml.recommendation.ALSModel = als_f778f6cc23db
predictions_scores_val: org.apache.spark.sql.DataFrame = [userID: int, recommendations: array<struct<artistID:int,rating:float>>]
predictions_scores_test: org.apache.spark.sql.DataFrame = [userID: int, recommendations: array<struct<artistID:int,rating:float>>]

Model Comparison

We compare our model with two naive ones.

Random Recommendations: First we just produce a ranom recommendation list for each user and evaluate the metric. Note that for a random ranking the expected ranking percentile for an artist would be 50%, expected value of the mean percentile rank should be: \(\mathbb{E}(\overline{rank})=\mathbb{E}(\frac{\sum{_u}{_i}r^t{_u}{_i}rank{_u}{_i}}{\sum{_u}{_i} r^t{_u}{_i}} ) = \frac{\sum{_u}{_i}r^t{_u}{_i}\mathbb{E}(rank{_u}{_i})}{\sum{_u}{_i} r^t{_u}{_i}}= \frac{\sum{_u}{_i}r^t{_u}{_i}\cdot 0.5}{\sum{_u}{_i} r^t{_u}{_i}}=0.5\) for this random model.

case class Rating(artistID: Int, rating: Float) // Simple class for getting the recommendations in suitable form.

// Generating random array of artistIDs.
val random = artist_data.select("artistID_2").distinct().orderBy(rand()).withColumn("idx",monotonically_increasing_id)
           .withColumn("rownumber",row_number.over(Window.orderBy(desc("idx")))).drop("idx").sort(desc("rownumber"))
          .collect.map(row =>Rating(row.getInt(0),row.getInt(1).toFloat))

val test_users = test_set.select("userID").distinct()

//Append the arrays to DataFrame.
val prediction_scores = user_artist_data.select("userID").distinct().withColumn("recommendations",typedLit(random))
                                        .join(test_users,"userID")

The actual value we get is \(\overline{rank}\approx 50.86 %\) which agrees with the above reasoning.

println("Random_model: mean_rank=" + eval_model(prediction_scores, training_set, test_set))
Random_model: mean_rank=50.860817

Popular Recommendations: We recommend each user the list of artist sorted by the number of total plays in the training dataset. Hence the list with the over all most popular artist will be presented as the recommendations independent of the user. Hence, this is not personalized recommenations.

//Generating arrays of artistIDs w.r.t most plays.
val most_popular = artist_data.select("artistID_2", "total_plays_artist").sort(desc("total_plays_artist"))
                              .collect.map(row =>Rating(row.getInt(0),row.getLong(1).toFloat))
val test_users = test_set.select("userID").distinct()

//Append the arrays to DataFrame.
val prediction_scores = user_artist_data.select("userID").distinct().withColumn("recommendations",typedLit(most_popular))
                                        .join(test_users,"userID")

For this model we get \(\overline{rank}\approx 24.6 %\) which is better than the random one but much worse than our ALS model that got \(\overline{rank}\approx 7.75 %\)

println("Popular_model: mean_rank=" + eval_model(prediction_scores, training_set, test_set))
Popular_model: mean_rank=24.553421

Below we define one functions for presenting a users top artists based on observations in the train set and recommended undiscovered artists generated by our model.

import org.apache.spark.ml.recommendation.ALSModel

// Function for showing the favorit artists for a given user based on the training set.
// Input:
// - userID: Int, the id of the user.
// - n: Int, number of top artists that should be presented.
// - user_artist_data: DataFrame with observations.
// - artist_names: Dataframe mapping artistIDs to actual artist names
// Output:
// - DataFrame with the users top artists
def userHistory(userID: Int, n: Int, user_artist_data: DataFrame, artist_names: DataFrame): DataFrame = {

  // Filter the userID and sort the artists w.r.t the play count. Append the actual artist names.
  val data = user_artist_data.filter($"userID"===userID).sort(desc("play_count")).join(artist_names, "artistID")
  data.select("userID","artistID","name").show(n)                            
  data.select("userID","artistID","name")
}

// Function for presenting recommended artist for a user.
// Input:
// - Model: ALSModel, the trained model
// - userID: DataFrame, with userID
// - n: Int, number of top artists that should be presented.
// - training_set: DataFrame used during the training.
// - artist_names: Dataframe mapping artistIDs to actual artist names
// Output:
// - DataFrame with the users recommended artists
def recommendToUser(model: ALSModel, userID: DataFrame, n: Int, training_set: DataFrame, artist_names: DataFrame) : DataFrame = {
  // Generate recommendations using the model.
  val recommendations = model.recommendForUserSubset(userID, n_artists_new.toInt).withColumn("recommendations", explode($"recommendations"))
                                      .select("userID","recommendations.artistID", "recommendations.rating").join(artist_names, "artistID").select("userID","artistID","name","rating")

  // Remove possible artists observed in the training set
  recommendations.join(training_set,training_set("userID")===recommendations("userID") && training_set("artistID")===recommendations("artistID"),"leftanti")
}

import org.apache.spark.ml.recommendation.ALSModel
userHistory: (userID: Int, n: Int, user_artist_data: org.apache.spark.sql.DataFrame, artist_names: org.apache.spark.sql.DataFrame)org.apache.spark.sql.DataFrame
recommendToUser: (model: org.apache.spark.ml.recommendation.ALSModel, userID: org.apache.spark.sql.DataFrame, n: Int, training_set: org.apache.spark.sql.DataFrame, artist_names: org.apache.spark.sql.DataFrame)org.apache.spark.sql.DataFrame

Let's generate some recommenations for a user.

println("Listening history:")
// Print top 5 artists for userID 302
val sub_data = userHistory(302, 5, training_set, artist_names)

// Generate top 5 recommendations of undiscovered artists,
val recommendations = recommendToUser(model_final, sub_data, 5, training_set, artist_names)
println("Recommendations:")
recommendations.show(5)
Listening history:
+------+--------+--------------+
|userID|artistID|          name|
+------+--------+--------------+
|   302|      55| Kylie Minogue|
|   302|      89|     Lady Gaga|
|   302|     265|   Céline Dion|
|   302|     288|       Rihanna|
|   302|     299|Jennifer Lopez|
+------+--------+--------------+
only showing top 5 rows

Recommendations:
+------+--------+------------------+----------+
|userID|artistID|              name|    rating|
+------+--------+------------------+----------+
|   302|     289|    Britney Spears|0.88509434|
|   302|     292|Christina Aguilera| 0.8353728|
|   302|     300|        Katy Perry| 0.7862937|
|   302|      67|           Madonna| 0.7838166|
|   302|     295|           Beyoncé|0.76221865|
+------+--------+------------------+----------+
only showing top 5 rows

sub_data: org.apache.spark.sql.DataFrame = [userID: int, artistID: int ... 1 more field]
recommendations: org.apache.spark.sql.DataFrame = [userID: int, artistID: int ... 2 more fields]

ScaDaMaLe Course site and book

Wikipedia analysis using Latent Dirichlet Allocation (LDA)

Authors: Axel Berg, Johan Grönqvist, Jens Gulin

Link to video presentation

Completed: 2021-01-13 Edited: 2021-01-25

Introduction

As part of the course assignment to set up a scalable pipeline, we run topic analysis on Wikipedia articles. Latent Dirichlet Allocation (LDA) extracts topics from the corpus and we use those to assign each article to the most covered topic. As a proof-of-concept system, we make a simple recommender system, highlighting the highest scoring articles for the topic as a follow-up of the currently read article.

Although the pipeline is meant to be generalizable, this workbook is not streamlined, but also explores the data. This is to help presentation, and also to support any effort to re-use the pipeline on another data source. If this was an automatic job on a stable data source, the throughput would benefit from removing the intermediate snapshot storage and sample output.

We currently run the pipeline on Swedish Wikipedia. Changing the download and data cleaning slightly, it should work on other sources. Most of the cells are language agnostic, but stopwords and tokenization needs to be adapted to new languages. Swedish Wikipedia is a bit peculiar, having a high number of articles automatically generated from structured data by bots. We discard those articles from the analysis, since their relatively high number and uniform wording skewed the results. The detection of auto-generated articles is thus specific and could be skipped or changed for other languages.

Results

We provide a notebook, primarily in Scala programming language, that can run on a Databricks cluster (7.3 LTS, including Apache Spark 3.0.1, Scala 2.12). Since this was a shared cluster with dynamic scaling, the runtime performance isn't clearly defined, but some notable measures are mentioned for reference. The reference cluster has up to 8 workers, each with 4 CPU and no GPU.

The pipeline works well and the topics produced seems ok. We have done no further qualitative evaluation and no systematic search for optimal hyper-parameters. In regards to runtime performance, the scalable cluster handles the workload in a fair manner and we have not focused on optimization at this point.

There are several potential improvements that are outside of the scope of this project. They include changes to improve execution time and topic quality, as well as use-cases utilizing the created model.

Scope

This notebook exemplifies topic analysis on Swedish Wikipedia. For overview and documentation, the code is divided into sections. Use the outline to navigate to relevant parts. The following stages illustrate the flow of the pipeline.

  1. Folders and Files
    1. Prepare language specific stop-word lists.
    2. Download a data dump of all pages from Wikipedia (compressed XML of current state).
  2. Clean the data
    1. Keep only article-space pages not automatically generated by algorithms.
    2. Filter the XML to extract meta data and raw article text.
    3. Remove links and other markup-formatting.
  3. Generate the LDA model
    1. Remove stopwords
    2. Train the model
  4. Analyse the model
    1. Pick an article and explore its topics.
    2. Recommend similar articles.

References

Acknowledgements

This work was partially supported by the Wallenberg AI, Autonomous Systems and Software Program (WASP) funded by the Knut and Alice Wallenberg Foundation.

Folders and Files

Define variables to make the rest of the notebook more generic.

To allow pipelines running in parallel and to simplify configurability, work is parameterized in a file and folder structure.

To simplify exploration, the data is saved to file as snapshots. This also avoids the need to rerun previous sections in every session.

// Setup Wikipedia source
val lang = "sv"
val freeze_date = "20201120"
val wp_file = s"${lang}wiki-${freeze_date}-pages-articles.xml"
val wp_zip_remote = s"https://dumps.wikimedia.org/${lang}wiki/${freeze_date}/${wp_file}.bz2"

// Stopwords download soure
val stopwords_remote = "https://raw.githubusercontent.com/peterdalle/svensktext/master/stoppord/stoppord.csv"

// Setup base paths for storage
val group = "05_lda"  // directory name to separate file structure, allows to run different instances in parallel
val localpath=s"file:/databricks/driver/$group/"
val dir_local = s"$group/"
val dir = s"dbfs:/datasets/$group/"

// Some file names
val stopwords_file = "stopwords.csv"
val stopwords_store = s"${dir}${stopwords_file}"

val wp_store = s"${dir}${wp_file}"

val filtered_articles_store = s"${dir}filtered_articles_${lang}_${freeze_date}"
val lda_countVector_store = s"${dir}lda_countvector_${lang}_${freeze_date}"

val lda_model_store = s"${dir}lda_${lang}_${freeze_date}.model"
lang: String = sv
freeze_date: String = 20201120
wp_file: String = svwiki-20201120-pages-articles.xml
wp_zip_remote: String = https://dumps.wikimedia.org/svwiki/20201120/svwiki-20201120-pages-articles.xml.bz2
stopwords_remote: String = https://raw.githubusercontent.com/peterdalle/svensktext/master/stoppord/stoppord.csv
group: String = 05_lda
localpath: String = file:/databricks/driver/05_lda/
dir_local: String = 05_lda/
dir: String = dbfs:/datasets/05_lda/
stopwords_file: String = stopwords.csv
stopwords_store: String = dbfs:/datasets/05_lda/stopwords.csv
wp_store: String = dbfs:/datasets/05_lda/svwiki-20201120-pages-articles.xml
filtered_articles_store: String = dbfs:/datasets/05_lda/filtered_articles_sv_20201120
lda_countVector_store: String = dbfs:/datasets/05_lda/lda_countvector_sv_20201120
lda_model_store: String = dbfs:/datasets/05_lda/lda_sv_20201120.model
# Just check where local path is
pwd
/databricks/driver
// Run this only to force a clean start
/*
// Delete DBFS store
dbutils.fs.rm(dir,recurse=true)
// Delete local files
import org.apache.commons.io.FileUtils;
import java.io.File;
FileUtils.deleteDirectory(new File(dir_local))
*/
import org.apache.commons.io.FileUtils
import java.io.File
// Prepare DBFS store
dbutils.fs.mkdirs(dir)
display(dbutils.fs.ls(dir))
// Prepare local folder
import org.apache.commons.io.FileUtils;
import java.io.File;
FileUtils.forceMkdir(new File(dir_local));
// Check local files
import sys.process._  // For spawning shell commands
s"ls -l ./  ${dir_local}" !!
warning: there was one feature warning; for details, enable `:setting -feature' or `:replay -feature'
import sys.process._
res19: String =
"./:
total 24
drwxr-xr-x 2 root root 4096 Jan 26 04:22 05_lda
drwxr-xr-x 2 root root 4096 Jan  1  1970 conf
-rw-r--r-- 1 root root  733 Jan 26 03:34 derby.log
drwxr-xr-x 3 root root 4096 Jan 26 03:33 eventlogs
drwxr-xr-x 2 root root 4096 Jan 26 04:15 ganglia
drwxr-xr-x 2 root root 4096 Jan 26 04:03 logs

05_lda/:
total 0
"

We download a list of suitable stopwords from a separate location.

// Download stopwords to store.
val local = s"${dir_local}${stopwords_file}"
val remote = stopwords_remote
try
{
  // -nc prevents download if already exist. !! converts wget output to string.
  s"wget -nc -O${local} ${remote}" !!
}
catch
{
  case e: Throwable => println("Exception: " + e)
}
--2021-01-26 04:23:45--  https://raw.githubusercontent.com/peterdalle/svensktext/master/stoppord/stoppord.csv
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.52.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.52.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1936 (1.9K) [text/plain]
Saving to: ‘05_lda/stopwords.csv’

     0K .                                                     100% 15.9M=0s

2021-01-26 04:23:45 (15.9 MB/s) - ‘05_lda/stopwords.csv’ saved [1936/1936]

warning: there was one feature warning; for details, enable `:setting -feature' or `:replay -feature'
local: String = 05_lda/stopwords.csv
remote: String = https://raw.githubusercontent.com/peterdalle/svensktext/master/stoppord/stoppord.csv
res20: Any = ""
// Check local stopwords file
s"ls -l ${dir_local}" !!
warning: there was one feature warning; for details, enable `:setting -feature' or `:replay -feature'
res21: String =
"total 4
-rw-r--r-- 1 root root 1936 Jan 26 04:23 stopwords.csv
"

Move stopwords to DBFS

dbutils.fs.cp(localpath + stopwords_file, dir)
res22: Boolean = true

Check that the file exists, and has some contents.

display(dbutils.fs.ls(stopwords_store))
path name size
dbfs:/datasets/05_lda/stopwords.csv stopwords.csv 1936.0

Wikipedia downloads are available as compressed files, and language and data is chosen via the name of the file. For a specific date, file share looks like this on Wikimedia.

There are several files, we use "pages-articles". This monolith file requires unpacking on driver node. To allow parallel download and unpacking the multistream may be a better choice.

In the current setup, download takes 6 minutes, extracting takes 10 minutes, moving to DBFS an additional 3 min.

// Download Wikipedia xml to store. -nc prevents overwrite if already exist. !! converts wget output to string.
val local = s"${dir_local}${wp_file}.bz2"
val remote = wp_zip_remote
try
{
  s"wget -nc -O${local} ${remote}" !!
}
catch
{
  case e: Throwable => println("Exception: " + e)
}

Extract the .xml-file

// Unpack bz2 to xml.
val local = s"${dir_local}${wp_file}.bz2"
try
{
  // -d unpack, -k keep source file, -v activate some output. !! converts output to string.
  s"bzip2 -dk -f -v ${local}" !!
}
catch
{
  case e: Throwable => println("Exception: " + e)
}
  05_lda/svwiki-20201120-pages-articles.xml.bz2: done
warning: there was one feature warning; for details, enable `:setting -feature' or `:replay -feature'
local: String = 05_lda/svwiki-20201120-pages-articles.xml.bz2
res27: Any = ""
s"ls ${dir_local}" !!
warning: there was one feature warning; for details, enable `:setting -feature' or `:replay -feature'
res28: String =
"stopwords.csv
svwiki-20201120-pages-articles.xml
svwiki-20201120-pages-articles.xml.bz2
"

Copy file to DBFS cluster

val local = s"${localpath}${wp_file}"
dbutils.fs.cp(local, dir)
local: String = file:/databricks/driver/05_lda/svwiki-20201120-pages-articles.xml
res29: Boolean = true

Verify that we now have an xml file with some contents. Swedish Wikipedia is 18 Gb unpacked.

display(dbutils.fs.ls(wp_store))
path name size
dbfs:/datasets/05_lda/svwiki-20201120-pages-articles.xml svwiki-20201120-pages-articles.xml 1.8963312968e10
// Discard the local files no longer needed
import org.apache.commons.io.FileUtils;
import java.io.File;
FileUtils.cleanDirectory(new File(dir_local))
import org.apache.commons.io.FileUtils
import java.io.File

Clean the data

Before we can try to build an LDA model, we need to split the contents into separate pages, and discard anything that is not relevant article content.

In the current setup, loading and filtering takes 4 minutes, cleaning and saving snapshot takes another 6 minutes.

Extracting Pages

The full wikipedia dump is a very large xml files, each page (with meta data) is enclosed in <page> </page> tags, so we split it into an RDD.

// ---------------spark_import
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import org.apache.spark.sql.SQLContext

// ----------------xml_loader_import
import org.apache.hadoop.io.LongWritable
import org.apache.hadoop.io.Text
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.io.{ LongWritable, Text }
import com.databricks.spark.xml._

import org.apache.hadoop.conf.Configuration

// ---- Matching
import scala.util.matching.UnanchoredRegex
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import org.apache.spark.sql.SQLContext
import org.apache.hadoop.io.LongWritable
import org.apache.hadoop.io.Text
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.io.{LongWritable, Text}
import com.databricks.spark.xml._
import org.apache.hadoop.conf.Configuration
import scala.util.matching.UnanchoredRegex

Our function to read the data uses a library call to extract pages into an RDD.

def readWikiDump(sc: SparkContext, file: String) : RDD[String] = {
  val conf = new Configuration()
  conf.set(XmlInputFormat.START_TAG_KEY, "<page>")
  conf.set(XmlInputFormat.END_TAG_KEY, "</page>")
  val rdd = sc.newAPIHadoopFile(file,
                                classOf[XmlInputFormat],
                                classOf[LongWritable],
                                classOf[Text],
                                conf)
  rdd.map{case (k,v) => (new String(v.copyBytes()))}
}
readWikiDump: (sc: org.apache.spark.SparkContext, file: String)org.apache.spark.rdd.RDD[String]

We look at a small sample to see that we succeeded in extracting pages, but we see that the pages still contain a lof of uninteresting bits in their text.

// Read the wiki dump
val dump = readWikiDump(sc, wp_store)

val n_wp_pages = dump.count()
dump.take(5)

Before we begin filtering the contents of pages, we want to discard:

  1. Pages that are redirects, i.e., pages containing a <redirect_title="..."> tag.
  2. Non-articles, i.e., pages not in namespace 0 (not containing <ns>0</ns>).
  3. Any page containing the macro tag stating that it was generated by a robot.
val redirection = "<redirect title=".r
def is_not_redirect(source : String) = { redirection.findFirstIn(source) == None }

val ns0 = "<ns>0</ns>".r
def is_article(source : String) = { ns0.findFirstIn(source) != None }

val autogenerated = "robotskapad|Robotskapad".r
def is_not_autogenerated(source : String) = { autogenerated.findFirstIn(source) == None }

val articles = dump.filter(is_not_redirect).filter(is_article).filter(is_not_autogenerated)

val n_articles = articles.count()
articles.take(5)

Note that we have filtered away around 80% of the pages. Our initial list turned out to be mostly autogenerated articles, and those are not very interesting to our topic analysis pursuits, so better off discarded.

Meta data

Before we clean the xml and markup, we extract the article id and title, as we may want to use them when we analyze the resulting LDA model.

val id_regexp = raw"<id>([0-9]*)</id>".r
def extract_id(source : String) = {
  val m = id_regexp.findFirstMatchIn(source).get
  m.group(1).toLong
}

val title_regexp = raw"<title>([^\<\>]*)</title>".r
def extract_title(source : String) = {
  val m = title_regexp.findFirstMatchIn(source).get
  m.group(1)
}

val labelled_articles = articles.map(source => (extract_id(source), extract_title(source), source))

labelled_articles.take(5).map({case(id, title, contents) => title})
id_regexp: scala.util.matching.Regex = <id>([0-9]*)</id>
extract_id: (source: String)Long
title_regexp: scala.util.matching.Regex = <title>([^\<\>]*)</title>
extract_title: (source: String)String
labelled_articles: org.apache.spark.rdd.RDD[(Long, String, String)] = MapPartitionsRDD[1021] at map at command-2629358840275853:13
res11: Array[String] = Array(Amager, Afrika, Amerika, Abbekås, Alingsås)

To break out of the xml structure we perform the following steps:

  1. Replace html-strings &amp;, &quot;, &nbsp;, &lt; and &gt; by &, `, ,<and>, repsectively. * First the&, as it's used as the&in other sequences, e.g. . * The<and>from<and&gtare used in tags. * The"from"` is irrelevant, so we drop it entirely.
    • This is not an exhaustive list, so there may be other
  2. Remove the following start- and stop-tags, and the contents in between:
    • id
    • ns
    • parentid
    • timestamp
    • contributor
    • comment
    • model
    • format
    • sha1
  3. We remove any tag, i.e., anything of the form <A> for any string A.
  4. We remove anything enclosed in double-curly-braces, i.e., anything on the form {{A}} for any A.
def filter_xml(source : String) = {
  val noAmp = raw"&amp;".r.replaceAllIn(source, "&")
  val noNbsp = raw"&nbsp;".r.replaceAllIn(noAmp, " ")
  val noQuot = raw"&quot;".r.replaceAllIn(noNbsp, "")
  val noLt = raw"&lt;".r.replaceAllIn(noQuot, "<")
  val noGt = raw"&gt;".r.replaceAllIn(noLt, ">")



  val tags = Seq("id", "ns", "parentid", "timestamp", "contributor", "comment", "model", "format", "sha1")
  var current = noGt
  for (tag <- tags) {
    val start = s"<$tag>".r
    val end = s"</$tag>".r
    while (start.findAllIn(current).hasNext) {
      val a = start.findAllIn(current).start
      val b = end.findAllIn(current).start
      val len = current.length
      current = current.substring(0, a) + current.substring(b+tag.length+3, current.length)
      assert (current.length < len)
    }
  }
  current = raw"<[^<>]*>".r.replaceAllIn(current, "")

  // A loop to remove innermost curly braces, then outer such things.
  val curly = raw"\{[^\{\}]*\}".r
  while (curly.findAllIn(current).hasNext)
  {
     current = curly.replaceAllIn(current, "")
  }

  current
  }


val filtered_xml = labelled_articles.map({ case(id, title, source) => (id, title, filter_xml(source)) })

filtered_xml.take(5)

The resulting strings contain a lot of markup structure, and we clean it by:

  1. Removing all $ and \, as scala will otherwise try to help us by doing magic to them.
  2. Removing all of the sections "Se även", "Referenser", "Noter", "Källor" and "Externa länkar"
  3. Remove links:
    1. Replace unnamed internal links [[LinkName]] by LinkName
    2. Replace named internal links [[Link|Properties|Name]] by Name
    3. Replace unnamed internal links again to clean up
    4. Replace named external links [Link Name] by Name
    5. Replace unnamed external links [Link] by Link
  4. Convert all text to lower case
  5. Remove quotation marks '
  6. Remove repeated whitespace, as the obtained results contain a lot of whitespace.

Note: The last line in the cell below incorrectly gets rendered as a string, as the databricks notebook does not realize that (on line 3) the string raw"\" ends there, but it guesses that \" is a quoted character and that the string continues to the end of the cell.

def sanitize(source: String) : String = {
  val noDollar = source.replaceAllLiterally("$", "")
  val noBackSlash = noDollar.replaceAllLiterally(raw"\", "")
  noBackSlash
}

val sanitized_xml = filtered_xml.map({case(id, title, source) => (id, title, sanitize(source))})
sanitize: (source: String)String
sanitized_xml: org.apache.spark.rdd.RDD[(Long, String, String)] = MapPartitionsRDD[1026] at map at command-2629358840275860:7
def filterMarkup(source: String) : String = {

  // Loop to remove some specific sections
  val sections = Seq("Se även", "Referenser", "Noter", "Källor", "Externa länkar")
  var current = source
  for (section <- sections) {
    val regexp = s"[=]+ *$section *[=]+".r
    if (regexp.findAllIn(current).hasNext)
    {
      val a = regexp.findAllIn(current).start
      val pre = current.substring(0, a)
      var post = current.substring(a, current.length)
      post = regexp.replaceAllIn(post, "")
      if ("^=".r.findAllIn(post).hasNext) {
        val b = "^=".r.findAllIn(post).start
        post = post.substring(b, post.length)
      }
      else {
        post = ""        
      }
      current = pre + post
    }
  }

  // Unnamed internal links appear in figure captions, confusing later matching
  val noUnnamedInternalLinks = raw"\[\[([^\|\]]*)\]\]".r.replaceAllIn(current, m => m.group(1))

  // Loop to remove internal links and their properties
  current = noUnnamedInternalLinks
  val regexp = raw"\[\[[^\|\[]*\|([^\[\]]*)\]\]".r
  while (regexp.findAllIn(current).hasNext) {
    val len = current.length
    current = regexp.replaceAllIn(current, m => "[[" + m.group(1) + "]]")
    assert (current.length < len)
  }
  val noNamedInternalLinks = current

  val noInternalLinks = raw"\[\[([^\]]*)\]\]".r.replaceAllIn(noNamedInternalLinks, m => m.group(1))
  val noNamedExternalLinks = raw"\[[^ \[]*\ ([^\]]*)\]".r.replaceAllIn(noInternalLinks, m => m.group(1))
  val noExternalLinks = raw"\[([^\]]*)\]".r.replaceAllIn(noNamedExternalLinks, m => m.group(1))


 val lowerCase = noExternalLinks.toLowerCase  

  val noQuoteChars = raw"'".r.replaceAllIn(lowerCase, "")
  // Loop to remove double whitespace characters
  current = noQuoteChars
  val doubleWhitespace = raw"\s(\s)".r
  while (doubleWhitespace.findAllIn(current).hasNext) {
    current = doubleWhitespace.replaceAllIn(current, m => m.group(1))
  }
  val noDoubleWhitespace = current
  noDoubleWhitespace
}


val filtered = sanitized_xml.map({case (id, title, source) => (id, title, filterMarkup(source))})

filtered.take(2)

Before leaving this section, we may want to save our results, so that the next section can reload it.

// dbutils.fs.rm(filtered_articles_store, recurse=true)
res19: Boolean = true
val outputs = filtered.map({case (id, title, contents) => (id, title.replaceAllLiterally(",", "**COMMA**"), contents.replaceAllLiterally("\n", "**NEWLINE**"))})
outputs.saveAsTextFile(filtered_articles_store);
outputs: org.apache.spark.rdd.RDD[(Long, String, String)] = MapPartitionsRDD[1038] at map at command-4443336225071544:1

We now turn to the spark library for our next set of preparatory steps, and as the library work on dataframes, we do so as well.

Loading previous results

If we want to continue from the result saved at the end of the previous section, we can reload the data here.

val format = "^\\(([^,]*),([^,]*),(.*)\\)$".r
def parse_line(s : String) = {
  assert (s(0) == '(')
  val firstComma = s.indexOf(",")
  val id = s.substring(1, firstComma).toLong
  val afterId = s.substring(firstComma+1, s.length)
  val nextComma = afterId.indexOf(",")
  val title = afterId.substring(0, nextComma)
  val contents = afterId.substring(nextComma+1, afterId.length-1)

  assert (afterId(afterId.length-1) == ')')
  (id, title.replaceAllLiterally("**COMMA**", ","), contents.replaceAllLiterally("**NEWLINE**", "\n"))
}

val filtered = spark.sparkContext.textFile(filtered_articles_store).map(parse_line)
val n_articles = filtered.count()
format: scala.util.matching.Regex = ^\(([^,]*),([^,]*),(.*)\)$
parse_line: (s: String)(Long, String, String)
filtered: org.apache.spark.rdd.RDD[(Long, String, String)] = MapPartitionsRDD[1042] at map at command-4443336225071727:15
n_articles: Long = 813245

DataFrame

The tokenization and stopword removal work on dataframes, so we create one, and look at some samples.

val corpus_df = filtered.toDF("id", "title", "contents")
corpus_df: org.apache.spark.sql.DataFrame = [id: bigint, title: string ... 1 more field]

The command below is the first step that requires all of the above steps to be completed for all the elements in the rdd, and it therefore takes a few minutes.

display(corpus_df.sample(0.0001))

Tokenization

In order to feed the articles into the LDA model, we first need to perform word tokenization. This splits the article into words, each matching the regular expression. In this case we ignore all non-alphabetic characters and only keep words with a minimal length of 4 characters in order to avoid short words that are not relevant to the subject.

import org.apache.spark.ml.feature.RegexTokenizer

// Set params for RegexTokenizer
val tokenizer = new RegexTokenizer()
  .setGaps(true) // pattern below identifies non-word alphabet
  .setPattern("[^a-zåäö]+") // break word and remove any detected non-word character(s).
  .setMinTokenLength(4) // Filter away tokens with length < 4
  .setInputCol("contents") // name of the input column
  .setOutputCol("tokens") // name of the output column

// Tokenize document
val tokenized_df = tokenizer.transform(corpus_df)
import org.apache.spark.ml.feature.RegexTokenizer
tokenizer: org.apache.spark.ml.feature.RegexTokenizer = RegexTokenizer: uid=regexTok_5d41547188e0, minTokenLength=4, gaps=true, pattern=[^a-zåäö]+, toLowercase=true
tokenized_df: org.apache.spark.sql.DataFrame = [id: bigint, title: string ... 2 more fields]
display(tokenized_df.sample(0.0001))

Remove Stopwords

Next, we remove the stopwords from the article. This should be done iteratively, as the final model might find patterns in words that are not relevant. In our first iteration we found several words being used that were not relevant so we added them to the list of stopwords and repeated the experiment, which lead to better results. This step can be repeated several times in order to improve the model further.

We load the stopwords we downloaded near the beginning of this notebook, and we add some custom stopwords that are relevant to wikipedia pages and articles.

val swedish_stopwords = sc.textFile(stopwords_store).collect()
val wikipedia_stopwords = Array("label", "note", "area", "unit", "type", "mark", "long", "right", "kartposition", "quot", "text", "title", "page", "timestamp", "revision", "name", "username", "sha1", "format", "coord", "left", "center", "align", "region", "nasa", "source", "mouth", "species", "highest", "style", "kategori", "http", "wikipedia", "referenser", "källor", "noter")
// Combine newly identified stopwords to our exising list of stopwords
val stopwords = swedish_stopwords.union(wikipedia_stopwords)

The spark ML library gives us functions to remove stopwords.

import org.apache.spark.ml.feature.StopWordsRemover

val remover = new StopWordsRemover()
  .setStopWords(stopwords)
  .setInputCol("tokens")
  .setOutputCol("filtered")

val filtered_df = remover.transform(tokenized_df)
import org.apache.spark.ml.feature.StopWordsRemover
remover: org.apache.spark.ml.feature.StopWordsRemover = StopWordsRemover: uid=stopWords_ecf00fa02fd5, numStopWords=366, locale=en, caseSensitive=false
filtered_df: org.apache.spark.sql.DataFrame = [id: bigint, title: string ... 3 more fields]

Vector of token counts

The LDA model takes word counts as input, so the next step is to count words that appear in the articles.

There are some hyperparameters to consider here, we focus on two:

  • vocabSize - the number of words kept as the vocabulary. The vectorizer will pick the words that appear most frequently in all articles.
  • minDF - the minimum number of articles that each word must appear in (i.e. document frequency). Will discard words that are very frequent in a small number of articles, but less frequent in general, and thus not generalizing to a larger topic.

We found that using a vocab size of 10 000 and a minDF of 5 worked well, but these can be experimented with further in order to obtain even better clusterings.

import org.apache.spark.ml.feature.CountVectorizer

val vectorizer = new CountVectorizer()
  .setInputCol("filtered")
  .setOutputCol("features")
  .setVocabSize(10000)
  .setMinDF(5) // the minimum number of different documents a term must appear in to be included in the vocabulary.
  .fit(filtered_df)
import org.apache.spark.ml.feature.CountVectorizer
vectorizer: org.apache.spark.ml.feature.CountVectorizerModel = CountVectorizerModel: uid=cntVec_ad38aa4e1641, vocabularySize=10000

Next, we convert the dataframe to an RDD that contains the word counts

import org.apache.spark.ml.linalg.Vector

val countVectors = vectorizer.transform(filtered_df).select("id", "features")
val lda_countVector = countVectors.map { case Row(id: Long, countVector: Vector) => (id, countVector) }
val lda_countVector_mllib = lda_countVector.map { case (id, vector) => (id, org.apache.spark.mllib.linalg.Vectors.fromML(vector)) }.rdd

lda_countVector_mllib.take(1)
import org.apache.spark.ml.linalg.Vector
countVectors: org.apache.spark.sql.DataFrame = [id: bigint, features: vector]
lda_countVector: org.apache.spark.sql.Dataset[(Long, org.apache.spark.ml.linalg.Vector)] = [_1: bigint, _2: vector]
lda_countVector_mllib: org.apache.spark.rdd.RDD[(Long, org.apache.spark.mllib.linalg.Vector)] = MapPartitionsRDD[1088] at rdd at command-4443336225071537:5
res41: Array[(Long, org.apache.spark.mllib.linalg.Vector)] = Array((1,(10000,[1,2,8,9,15,17,20,26,37,38,39,42,48,50,51,55,64,67,68,71,75,80,81,85,86,94,95,96,106,114,117,118,128,129,140,149,150,156,161,189,195,208,216,297,299,332,336,399,409,427,452,457,459,461,465,535,540,572,603,612,686,739,747,806,849,904,922,983,1002,1013,1037,1081,1128,1167,1170,1175,1272,1274,1295,1334,1374,1387,1474,1578,1593,1602,1707,1750,1764,1792,1835,1852,1927,2022,2027,2114,2182,2268,2358,2612,2726,2766,2929,3316,3386,3415,3468,3486,3588,3593,3634,3693,3735,4156,4184,4335,4339,4470,4579,4675,4691,4851,5046,5083,5118,5186,5355,5653,5712,5801,6051,6080,6140,6751,7381,7491,7602,8758,8892,8944,8990,9148,9185,9375,9416,9737,9779,9870],[7.0,2.0,1.0,3.0,3.0,1.0,1.0,4.0,4.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,3.0,1.0,1.0,1.0,1.0,1.0,5.0,2.0,2.0,1.0,4.0,2.0,1.0,4.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,2.0,2.0,1.0,1.0,1.0,1.0,3.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,4.0,1.0,3.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,4.0,1.0,1.0,1.0,1.0,2.0,1.0,2.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,3.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0])))

We can also save the countvector file for later use.

println(lda_countVector_store)

// lda_countVector_mllib.saveAsTextFile(lda_countVector_store);
dbfs:/datasets/05_lda/lda_countvector_sv_20201120

LDA

Hyper-parameters

It's now time to define our LDA model. We choose the online LDA due to speed and simplicity, altough one could also try using the expectation maximization algorithm here instead.

The online LDA takes two hyperparameters:

  • The number of topics to cluster - this should be set to some reasonable number depending on what the purpose of the clustering is. Sometimes we might have a-priori knowledge of what the number of topics ought to be, but for Wikipedia it is not obvious how this parameter should be determined.
  • The number of iterations - this can be increased in order to trade off between increased computational time and better clustering.

In this examples, we choose 50 topics since this makes it easy to visualize the results. We use 20 iterations, which yields a reasonable runtime (about 16 minutes).

val numTopics = 50
val maxIterations = 20
numTopics: Int = 50
maxIterations: Int = 20

LDA model

Let's review what the LDA model does.

Smoothed LDA
Illustration of the LDA algorithm (CC BY-SA: https://commons.wikimedia.org/wiki/File:Smoothed_LDA.png)

Explaining the notation, we have:

  • \(K\) - number of topics
  • \(M\) - number of documents
  • \(N_i\) - the number of words per document (different for each document i, of course)
  • \(\theta_i\) - the topic distribution for document i
  • \(\varphi_k\) - the word distribution for topic k
  • \(z_{ij}\) - the topic for the j-th word in document i
  • \(w_{ij}\) - the j-th word in document i
  • \(\alpha\) - Dirichlet prior on the per-document topic distributions
  • \(\beta\) - Dirichlet prior on the per-topic word distribution

When performing online LDA, we are fitting the data to this model by estimating values for \(\alpha\) and \(\beta\) iteratively. First, each word is randomly assigned to a topic. Then, using variational inference, the topics are reassigned in an iterative way using the empirical distributions of words within each document.

This can all be done using spark's built-in LDA optimizer.

import org.apache.spark.mllib.clustering.{LDA, OnlineLDAOptimizer}

val lda = new LDA()
  .setOptimizer(new OnlineLDAOptimizer().setMiniBatchFraction(0.8))
  .setK(numTopics)
  .setMaxIterations(maxIterations)
  .setDocConcentration(-1) // use default values
  .setTopicConcentration(-1) // use default values
import org.apache.spark.mllib.clustering.{LDA, OnlineLDAOptimizer}
lda: org.apache.spark.mllib.clustering.LDA = org.apache.spark.mllib.clustering.LDA@54e767e2

The next cell is where the magic happens. We invole the disitributed LDA training functionality to obtain the model.

val ldaModel = lda.run(lda_countVector_mllib)
ldaModel: org.apache.spark.mllib.clustering.LDAModel = org.apache.spark.mllib.clustering.LocalLDAModel@5c324bb0
// Save the model to file for later use.
dbutils.fs.rm(lda_model_store, recurse=true)
ldaModel.save(sc, lda_model_store)

We prepare by extracting a few relevant terms per topic, looking them up in the vocabulary.

val maxTermsPerTopic = 8
val topicIndices = ldaModel.describeTopics(maxTermsPerTopic)
val vocabList = vectorizer.vocabulary
val topics = topicIndices.map { case (terms, termWeights) =>
  terms.map(vocabList(_)).zip(termWeights)
}
println(s"$numTopics topics:")
topics.zipWithIndex.foreach { case (topic, i) =>
  println(s"TOPIC $i")
  topic.foreach { case (term, weight) => println(s"$term\t$weight") }
  println(s"==========")
}
Zip topic terms with topic IDs
val termArray = topics.zipWithIndex
// Transform data into the form (term, probability, topicId)
val termRDD = sc.parallelize(termArray)
val termRDD2 = termRDD.flatMap( (x: (Array[(String, Double)], Int) ) => {
  val arrayOfTuple = x._1
  val topicId = x._2
  arrayOfTuple.map(el => (el._1, el._2, topicId))
})
termRDD: org.apache.spark.rdd.RDD[(Array[(String, Double)], Int)] = ParallelCollectionRDD[1881] at parallelize at command-4443336225072171:2
termRDD2: org.apache.spark.rdd.RDD[(String, Double, Int)] = MapPartitionsRDD[1882] at flatMap at command-4443336225072171:3
// Create DF with proper column names
val termDF = termRDD2.toDF.withColumnRenamed("_1", "term").withColumnRenamed("_2", "probability").withColumnRenamed("_3", "topicId")
termDF: org.apache.spark.sql.DataFrame = [term: string, probability: double ... 1 more field]
 display(termDF)
Create JSON data
val rawJson = termDF.toJSON.collect().mkString(",\n")

Plot visualization

displayHTML(s"""
<!DOCTYPE html>
<meta charset="utf-8">
<style>

circle {
  fill: rgb(31, 119, 180);
  fill-opacity: 0.5;
  stroke: rgb(31, 119, 180);
  stroke-width: 1px;
}

.leaf circle {
  fill: #ff7f0e;
  fill-opacity: 1;
}

text {
  font: 14px sans-serif;
}

</style>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>
<script>

var json = {
 "name": "data",
 "children": [
  {
     "name": "topics",
     "children": [
      ${rawJson}
     ]
    }
   ]
};

var r = 1000,
    format = d3.format(",d"),
    fill = d3.scale.category20c();

var bubble = d3.layout.pack()
    .sort(null)
    .size([r, r])
    .padding(1.5);

var vis = d3.select("body").append("svg")
    .attr("width", r)
    .attr("height", r)
    .attr("class", "bubble");


var node = vis.selectAll("g.node")
    .data(bubble.nodes(classes(json))
    .filter(function(d) { return !d.children; }))
    .enter().append("g")
    .attr("class", "node")
    .attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; })
    color = d3.scale.category20();

  node.append("title")
      .text(function(d) { return d.className + ": " + format(d.value); });

  node.append("circle")
      .attr("r", function(d) { return d.r; })
      .style("fill", function(d) {return color(d.topicName);});

var text = node.append("text")
    .attr("text-anchor", "middle")
    .attr("dy", ".3em")
    .text(function(d) { return d.className.substring(0, d.r / 3)});

  text.append("tspan")
      .attr("dy", "1.2em")
      .attr("x", 0)
      .text(function(d) {return Math.ceil(d.value * 10000) /10000; });

// Returns a flattened hierarchy containing all leaf nodes under the root.
function classes(root) {
  var classes = [];

  function recurse(term, node) {
    if (node.children) node.children.forEach(function(child) { recurse(node.term, child); });
    else classes.push({topicName: node.topicId, className: node.term, value: node.probability});
  }

  recurse(null, root);
  return {children: classes};
}
</script>
""")

Finding Articles

If we are reading an article, we can use our LDA model to find other articles on the same topic.

When we created our model earlier, we did it as an LDA, but we need to be more specific, so we reload it as a LocalLDAModel.

// Load the model
import org.apache.spark.mllib.clustering.LocalLDAModel
val model = LocalLDAModel.load(sc, lda_model_store)
import org.apache.spark.mllib.clustering.LocalLDAModel
model: org.apache.spark.mllib.clustering.LocalLDAModel = org.apache.spark.mllib.clustering.LocalLDAModel@6067f4d5
// Load the countvector
// val lda_countVector_mllib_loaded = sc.textFile("lda_countvector_sv_20201208") // This doesn't work, need to figure out how to parse the loaded rdd
// print(lda_countVector_mllib_loaded)

We sample some articles.

val numsample = 20
val sample = lda_countVector_mllib.takeSample(false, numsample)

Compute topic distributions, and extract some additional information about them.

val sampleRdd = sc.makeRDD(sample)
val topicDistributions = model.topicDistributions(sampleRdd)
val MLTopics = topicDistributions.map({case(id, vs) => (id, vs.argmax)})
val ids = MLTopics.map({case(id, vs)=>id}).collect()
val selection = filtered.filter({case(id, title, contents) => ids.contains(id)}).map({case(id, title, contents) => (id, title)}).collect()
val allTopicProbs = model.topicDistributions(lda_countVector_mllib)
sampleRdd: org.apache.spark.rdd.RDD[(Long, org.apache.spark.mllib.linalg.Vector)] = ParallelCollectionRDD[2329] at makeRDD at command-4443336225072182:1
topicDistributions: org.apache.spark.rdd.RDD[(Long, org.apache.spark.mllib.linalg.Vector)] = MapPartitionsRDD[2330] at map at LDAModel.scala:373
MLTopics: org.apache.spark.rdd.RDD[(Long, Int)] = MapPartitionsRDD[2331] at map at command-4443336225072182:3
ids: Array[Long] = Array(2779114, 226060, 1613204, 4970370, 700470, 636341, 4987605, 766457, 4965484, 82392, 7982574, 7973374, 367933, 1204225, 1225253, 503655, 821159, 8299631, 4684122, 1695311)
selection: Array[(Long, String)] = Array((82392,Senmedeltiden), (226060,Río Verde, San Luis Potosí), (367933,Kontrollsumma), (503655,Adam Kårsnäs), (636341,Live at McCabe's Guitar Shop), (700470,R2-0), (766457,Pakistanska muslimska förbundet - L), (821159,Fisher Athletic FC), (1204225,Financial Institutions Reform, Recovery and Enforcement Act of 1989), (1225253,Gardar), (1613204,Bessan), (1695311,Borneol), (2779114,Sara Branham Matthews), (4684122,Cecil Blachford), (4965484,Riddarsynerätt), (4970370,Kenyaskratthärfågel), (4987605,Rihannas diskografi), (7973374,Ahtisaariplanen), (7982574,James S. Brown), (8299631,Mount Roper))
allTopicProbs: org.apache.spark.rdd.RDD[(Long, org.apache.spark.mllib.linalg.Vector)] = MapPartitionsRDD[2335] at map at LDAModel.scala:373

For each of our selected articles, we can now look for other articles that very strongly belong to the same topic.

for ( (article_id, topic_id) <- MLTopics.collect() ) {
  val title = selection.filter({case(id, title) => id == article_id})(0)._2
  val topicProbs = allTopicProbs.map({case(id, vs) => (id, vs(topic_id))})
  val top5articles = topicProbs.takeOrdered(5)(Ordering[Double].reverse.on(_._2))
  val top5ids = top5articles.map(_._1)
  val top5titles = filtered.filter({case(id, title, contents) => top5ids.contains(id) }).map({case(id, title, contents) => (title)}).collect
  println(s"Top 5 articles on the same topic as ${title}:")

  for (t <- top5titles) println(s" * ${t}")
  println("")
}

ScaDaMaLe Course site and book

Unsupervised clustering of particle physics data with distributed training

Authors: Karl Bengtsson Bernander, Colin Desmarais, Daniel Gedon, Olga Sunneborn Gudnadottir Video walk-through of the notebooks: https://drive.google.com/file/d/1D6DPETd2qVMpSJOLTRiVPjIdz_-VbNVn/view?usp=sharing

Note

This project was presented at the 25th International Conference on Computing in High-Energy and Nuclear Physics. A public recording of the presentation can be found here.

This notebook contains a short introduction to the collider particle physics needed to understand the data and the model, a short introcution to the method and a short motivation for developing the method. If you want to jump directly to the code, skip to the next notebook!

At the European Organization for Nuclear Research, CERN, the inner workings of particle physics are probed by accelerating particles to close to the speed of light and letting them collide. In the collisions, the energy contained in the colliding particles reforms into new particles, and by studying this process a lot can be learned about their interactions. Several experiments have operated as part of CERN since it was founded in 1955 and as of 2019, a total of 330 petabytes of particle physics data was stored by the organization. By 2030 the volume of the stored data is expected to be of the order of exabytes.

In addition to the disk space needed for such datasets, the experiments also require immense computing resources. These are used for translating the electrical signals of the particle detectors into formats appropriate for data analysis, simulating particle collisions and detectors, and analysing data. Much data processing is parallelized and distributed among machines connected to the Worldwide LHC Computing Grid.

displayHTML("""<iframe width="99%" height="340" src="https://my.matterport.com/show/?m=yYCddcrq6Zj" frameborder="0" allowfullscreen allow="xr-spatial-tracking"></iframe>""")
displayHTML("""<iframe width="99%" height="340" src="https://videos.cern.ch/video/OPEN-VIDEO-2018-041-001" frameborder="0" allowfullscreen allow="xr-spatial-tracking"></iframe>""")

As the datasets collected at CERN get bigger and the effects searched for in data get smaller, the challenge is to find new and more efficient methods to process data. Not surprisingly, machine learning is garnering more and more attention within the experiments, and a lot of machine learning methods have been developed in recent years to do everything from simulating detectors to data analysis. With datasets sometimes on the order of TBs even after preprocessing, however, distributed learning is a valuable tool. In this and the accompanying notebooks we present the UCluster method developed by Mikuni and Canelli for unsupervised clustering of particle physics data. We have adapted the code for use in notebooks and added the functionality of distributed training. The original code and the paper accompanying it can be found below.

Original Code
Paper

Everything around us -- that we can see, touch, and interact with -- is made up of tiny particles called atoms, which in turn are made up of even smaller particles: protons, neutrons and electrons. The protons and neutrons are also made up of even smaller particles -- the quarks. As far as we know, the quarks and the electrons are elementary particles, which means that they cannot be divided further into other particles. These three particles, two quarks and the electron, actually make up everything in our ordinary life. That's not the whole picture, though. Both the quarks and the electron exist in three generations, each generation heavier than the last but sharing the same fundamental nature. These are all matter particles, fermions, which includes also the almost massless neutrinos. In addition there are the force carriers, bosons, which is how the matter particles interact, and the Higgs boson which gives mass to the fermions. These particles and how they interact is contained in the Standard Model of Particle Physics, schematically depicted below:

The Standard Model

To create the heavier particles of the Standard model than the ones we are surrounded with daily, we need higher energies. This is because mass and energy are related through Einstein's famous formula \[E=mc^2\] At CERN, The Large Hadron Collider (LHC) gives kinetic energy to protons by accelerating them through a long chain of more and more powerful accelerators. They are then made to collide with each other, and in that collision new particles form using the total energy that the protons had when they collided. At the collision points of the LHC there are particle detectors designed to detect all of the different products of the collision and their properties. Below is a simulation of the CMS detector, one of the two general purpose detectors at the LHC. Going inside the detector, we follow the two protons (in blue) as they collide and produce new particles. The tracks coming out from the collision are made by charged particles, and the rectangles are the different modules of the detector that register a signal as the particles transversed the detector.

displayHTML("""<iframe width="99%" height="340" src="https://videos.cern.ch/video/CERN-VIDEO-2011-192-001" frameborder="0" allowfullscreen allow="xr-spatial-tracking"></iframe>""")

Using sophisticated algorithms developed over decades the collisions are reconstructed from the electric signals from the detector. They determine which types of particles were present in the products of the collision and their kinetic properties, energy and momentum. Some particles need to be reconstructed in several steps, since they decay to other particles before they even reach the detector. The aforementioned quarks decay into sprays of many other particles, and we call this a jet. They are identified by clustering the particles together into a cone, as is shown on the left in the picture below. In some cases, the jet is part of a collimated system of decay products, such as the one shown on the right below. This happens at high energies and is called a boosted system. In that case, resolving individual jets is hard, and so the whole system is made into one "fat jet". In the picture below, a boosted top quark (the only quark that decays before it reaches the detector) decays into a b-quark giving rise to a jet and a W boson that then decays into two quarks that also give rise to jets. Jet cone with tracks ![1] [1]: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTML-vd7DejQvpeHGmpV-CDVOc1yw78luh_YQ&usqp=CAU

Now that we have the particle data background needed, let's try to understand the code and the data we will be working with. Most, if not all, of the algorithms used to reconstruct particles at the large LHC experiments right now are either traditional algorithms without machine learning or supervised machine learning. These methods could have the disadvantage of being biased, however, when it comes to discovering new particles or interactions. A lot of machine learning interested physicists are therefore looking toward unsupervised methods for object (particle) reconstruction and data analysis. One such approach is taken by V. Mikuni and F. Canellia in the 2020 paper, Unsupervised clustering for collider physics.

displayHTML("""<a href="https://arxiv.org/pdf/2010.07106.pdf">
<img border="0" alt="UCluster paper" src="https://paperswithcode.com/static/thumbs/2010.07106.jpg" width="300" height="300">
</a>""")

In the paper, Mikuni and Canelli present UCluster, which is an unsupervised clustering algorithm for particle physics data. In the paper, they apply it to one multiclass classification problem and one anomaly detection problem. In these notebooks, we present only the first.

Jet classification

Given a jet, in the form of a list of particles contained in it and their properties, the task is to match it to the particle it came from. We choose three types of particles that can be reconstructed using fat jets: W bosons, Z bosons and top quarks. The dataset can be found here. We start by preprocessing it to get it on the format we want and throwing away information we don't need. We keep only the names and properties of the constituent particles. The properties include trajectory angles, energy, momentum and distances to center of jet. They are used as input feature in a deep neural graph net, in which each particle is represented by a node. It is pre-trained, and then a clustering step is added, before the whole thing is trained again. The authors report a 81% classification accuracy using the Hungarian method. The clusters formed can be seen below to the right and should be compared to the ground truth shown on the left.

1 2

This type of task arises in many particle physics data analyses

Motivation

The type of task described above, in which particles are classified according to which process they come from, is a common one in particle physics data analyses. Whether a new process is searched for or the parameters of an already known process are measured, the analysis boils down to extracting a small signal from a large dataset. Most of the data is easy to get rid of -- if it doesn't contain the particles that the sought after decay produces for example -- but a lot of it becomes a background that needs to be accounted for. In many cases, Monte Carlo simulations exist to accurately enough estimate this background, but in others they don't. In those cases datadriven methods have to be used, which can quickly become a very complicated task if background from more than one process has to be estimated that way. Unsupervised classification could be used directly on data to estimate the background from different processes.

Our contribution

The code we use comes from the UCluster git repository. Our contribution was to add the functionality of training the model in a distributed fashion. To do this, we use the Horovod runner, which necessitated a migration to TensorFlow 2 (from TensorFlow 1).

We start by seeing if the files necessary to run our notebooks are already in the distributed file system

ScaDaMaLe Course site and book

dbutils.fs.ls("dbfs:///FileStore/06_LHC")
res0: Seq[com.databricks.backend.daemon.dbutils.FileInfo] = WrappedArray(FileInfo(dbfs:/FileStore/06_LHC/LICENSE, LICENSE, 1071), FileInfo(dbfs:/FileStore/06_LHC/README.md, README.md, 3150), FileInfo(dbfs:/FileStore/06_LHC/data/, data/, 0), FileInfo(dbfs:/FileStore/06_LHC/h5/, h5/, 0), FileInfo(dbfs:/FileStore/06_LHC/models/, models/, 0), FileInfo(dbfs:/FileStore/06_LHC/scripts/, scripts/, 0), FileInfo(dbfs:/FileStore/06_LHC/utils/, utils/, 0))

Important!

Run the command line above to see if the required files and data are already available in the distributed file system, you should see the following:

Seq[com.databricks.backend.daemon.dbutils.FileInfo] = WrappedArray(FileInfo(dbfs:/FileStore/06LHC/LICENSE, LICENSE, 1071), FileInfo(dbfs:/FileStore/06LHC/README.md, README.md, 3150), FileInfo(dbfs:/FileStore/06LHC/data/, data/, 0), FileInfo(dbfs:/FileStore/06LHC/h5/, h5/, 0), FileInfo(dbfs:/FileStore/06LHC/models/, models/, 0), FileInfo(dbfs:/FileStore/06LHC/scripts/, scripts/, 0), FileInfo(dbfs:/FileStore/06_LHC/utils/, utils/, 0))

If these items appear, then skip most of this notebook, and go to Command Cell 21 to import data to the local driver

We start by installing everything necessary

pip install h5py

We start by preparing a folder on the local driver to process our files

rm -r 06_LHC
mkdir 06_LHC

Now get all necessary files from the project repository on Github

cd 06_LHC

wget https://github.com/dgedon/ProjectParticleClusteringv2/archive/main.zip
unzip main.zip
mv ProjectParticleClusteringv2-main/* .
rm -r ProjectParticleClusteringv2-main/ main.zip

We get the necessarry data (first training, then validation) and untar the file

cd 06_LHC
mkdir data
cd data


wget https://zenodo.org/record/3602254/files/hls4ml_LHCjet_100p_train.tar.gz
#mkdir data
#mv hls4ml_LHCjet_100p_train.tar.gz data
#cd data
tar --no-same-owner -xvf hls4ml_LHCjet_100p_train.tar.gz
cd 06_LHC/data
wget https://zenodo.org/record/3602254/files/hls4ml_LHCjet_100p_val.tar.gz
tar --no-same-owner -xvf hls4ml_LHCjet_100p_val.tar.gz

Now we preprocess the data. This transforms the data somehow in a useful way

cd 06_LHC/scripts
python prepare_data_multi.py --dir ../data/
cd 06_LHC/scripts
python prepare_data_multi.py --dir ../data/ --make_eval
rm -r ../data

Finally move everything onto the distributed file system. All necessary files are stored at FileStore/06_LHC

dbutils.fs.cp ("file:////databricks/driver/06_LHC", "dbfs:///FileStore/06_LHC", recurse=true) 

Important (continued from above)

Import files to local driver

Now for future notebooks, run the following command line below to import the files to the local driver. This may take a minute

dbutils.fs.cp("dbfs:///FileStore/06_LHC", "file:////databricks/driver/06_LHC", recurse=true)
res0: Boolean = true

Run the command line below to list the items in the 06_LHC folder. You should see the following:

  • LICENSE
  • README.md
  • h5
  • models
  • scripts
  • utils
ls 06_LHC/

You are now ready to go!

ScaDaMaLe Course site and book

This code has been migrated to Tensorflow 2 from the original code, but no other changes have been made.

ls 06_LHC
LICENSE
README.md
data
h5
models
scripts
utils

Get the imports.

import argparse
from argparse import Namespace
from datetime import datetime
import numpy as np
import tensorflow as tf
import socket
import os
import sys
from sklearn.cluster import KMeans
from tqdm import tqdm
#Added matplot for accuracy
import matplotlib.pyplot as plt

np.set_printoptions(edgeitems=1000)

from scipy.optimize import linear_sum_assignment

BASE_DIR = os.path.join(os.getcwd(), '06_LHC','scripts')  
#os.path.dirname(os.path.abspath(__file__))
sys.path.append(BASE_DIR)
sys.path.append(os.path.join(BASE_DIR, '..', 'models'))
sys.path.append(os.path.join(BASE_DIR, '..', 'utils'))
import provider
import gapnet_classify as MODEL

Get the input parameters. Necessary modifications: - import arguements by a namespace; not by an argument parser - change the data directories appropriately

parserdict = {'max_dim': 3, #help='Dimension of the encoding layer [Default: 3]')
              'n_clusters': 3, #help='Number of clusters [Default: 3]')
              'gpu': 0, #help='GPU to use [default: GPU 0]')
              'model': 'gapnet_clasify', #help='Model name [default: gapnet_classify]')
              'log_dir': 'log', #help='Log dir [default: log]')
              'num_point': 100, #help='Point Number [default: 100]')
              'max_epoch': 100, #help='Epoch to run [default: 200]')
              'epochs_pretrain': 10, #help='Epochs to for pretraining [default: 10]')
              'batch_size': 1024, #help='Batch Size during training [default: 512]')
              'learning_rate': 0.001, #help='Initial learning rate [default: 0.01]')

              'momentum': 0.9, #help='Initial momentum [default: 0.9]')
              'optimizer': 'adam', #help='adam or momentum [default: adam]')
              'decay_step': 500000, #help='Decay step for lr decay [default: 500000]')
              'wd': 0.0, #help='Weight Decay [Default: 0.0]')
              'decay_rate': 0.5, #help='Decay rate for lr decay [default: 0.5]')
              'output_dir': 'train_results', #help='Directory that stores all training logs and trained models')
              'data_dir': os.path.join(os.getcwd(),'06_LHC', 'h5'), # '../h5', #help='directory with data [default: hdf5_data]')
              'nfeat': 8, #help='Number of features [default: 8]')
              'ncat': 20, #help='Number of categories [default: 20]')
             }

FLAGS = Namespace(**parserdict)
H5_DIR = FLAGS.data_dir

EPOCH_CNT = 0
MAX_PRETRAIN = FLAGS.epochs_pretrain
BATCH_SIZE = FLAGS.batch_size
NUM_POINT = FLAGS.num_point
NUM_FEAT = FLAGS.nfeat
NUM_CLASSES = FLAGS.ncat
MAX_EPOCH = FLAGS.max_epoch
BASE_LEARNING_RATE = FLAGS.learning_rate
GPU_INDEX = FLAGS.gpu
MOMENTUM = FLAGS.momentum
OPTIMIZER = FLAGS.optimizer
DECAY_STEP = FLAGS.decay_step
DECAY_RATE = FLAGS.decay_rate

# MODEL = importlib.import_module(FLAGS.model) # import network module
MODEL_FILE = os.path.join(BASE_DIR, 'models', FLAGS.model + '.py')
LOG_DIR = os.path.join('..', 'logs', FLAGS.log_dir)

if not os.path.exists(LOG_DIR): os.makedirs(LOG_DIR)
os.system('cp %s.py %s' % (MODEL_FILE, LOG_DIR))  # bkp of model def
os.system('cp train_kmeans.py %s' % (LOG_DIR))  # bkp of train procedure

BN_INIT_DECAY = 0.5
BN_DECAY_DECAY_RATE = 0.5
BN_DECAY_DECAY_STEP = float(DECAY_STEP)
BN_DECAY_CLIP = 0.99

LEARNING_RATE_CLIP = 1e-5
HOSTNAME = socket.gethostname()

TRAIN_FILES = provider.getDataFiles(os.path.join(H5_DIR, 'train_files_wztop.txt'))
TEST_FILES = provider.getDataFiles(os.path.join(H5_DIR, 'test_files_wztop.txt'))

Define the utils functions.

def get_learning_rate(batch):
    learning_rate = tf.compat.v1.train.exponential_decay(
        BASE_LEARNING_RATE,  # Base learning rate.
        batch * BATCH_SIZE,  # Current index into the dataset.
        DECAY_STEP,  # Decay step.
        DECAY_RATE,  # Decay rate.
        staircase=True)
    learning_rate = tf.maximum(learning_rate, LEARNING_RATE_CLIP)  # CLIP THE LEARNING RATE!
    return learning_rate


def get_bn_decay(batch):
    bn_momentum = tf.compat.v1.train.exponential_decay(
        BN_INIT_DECAY,
        batch * BATCH_SIZE,
        BN_DECAY_DECAY_STEP,
        BN_DECAY_DECAY_RATE,
        staircase=True)
    bn_decay = tf.minimum(BN_DECAY_CLIP, 1 - bn_momentum)
    return bn_decay

Main training function: - calls the training one epoch - calls the evaluation one epoch - selects the loss and optimizer - save the final model

def train():
    with tf.Graph().as_default():
        with tf.device('/gpu:' + str(GPU_INDEX)):
            #ADDED THIS TO RECORD ACCURACY
            epochs_acc = []
            pointclouds_pl, labels_pl = MODEL.placeholder_inputs(BATCH_SIZE, NUM_POINT, NUM_FEAT)

            is_training_pl = tf.compat.v1.placeholder(tf.bool, shape=())

            # Note the global_step=batch parameter to minimize.
            # That tells the optimizer to helpfully increment the 'batch' parameter for you every time it trains.
            batch = tf.Variable(0)
            alpha = tf.compat.v1.placeholder(dtype=tf.float32, shape=())
            bn_decay = get_bn_decay(batch)
            tf.compat.v1.summary.scalar('bn_decay', bn_decay)
            print("--- Get model and loss")

            pred, max_pool = MODEL.get_model(pointclouds_pl, is_training=is_training_pl,
                                             bn_decay=bn_decay,
                                             num_class=NUM_CLASSES, weight_decay=FLAGS.wd,
                                             )

            class_loss = MODEL.get_focal_loss(pred, labels_pl, NUM_CLASSES)
            mu = tf.Variable(tf.zeros(shape=(FLAGS.n_clusters, FLAGS.max_dim)), name="mu",
                             trainable=True)  # k centroids
            kmeans_loss, stack_dist = MODEL.get_loss_kmeans(max_pool, mu, FLAGS.max_dim,
                                                            FLAGS.n_clusters, alpha)

            full_loss = kmeans_loss + class_loss

            print("--- Get training operator")
            # Get training operator
            learning_rate = get_learning_rate(batch)
            tf.compat.v1.summary.scalar('learning_rate', learning_rate)
            if OPTIMIZER == 'momentum':
                optimizer = tf.compat.v1.train.MomentumOptimizer(learning_rate, momentum=MOMENTUM)
            elif OPTIMIZER == 'adam':
                optimizer = tf.compat.v1.train.AdamOptimizer(learning_rate)

            train_op_full = optimizer.minimize(full_loss, global_step=batch)
            train_op = optimizer.minimize(class_loss, global_step=batch)

            # Add ops to save and restore all the variables.
            saver = tf.compat.v1.train.Saver()

        # Create a session
        config = tf.compat.v1.ConfigProto()
        config.gpu_options.allow_growth = True
        config.allow_soft_placement = True
        config.log_device_placement = False
        sess = tf.compat.v1.Session(config=config)

        sess.run(tf.compat.v1.global_variables_initializer())

        # Add summary writers
        merged = tf.compat.v1.summary.merge_all()
        train_writer = tf.compat.v1.summary.FileWriter(os.path.join(LOG_DIR, 'train'), sess.graph)
        test_writer = tf.compat.v1.summary.FileWriter(os.path.join(LOG_DIR, 'test'), sess.graph)

        # Init variables
        print("Total number of weights for the model: ",
              np.sum([np.prod(v.get_shape().as_list()) for v in tf.compat.v1.trainable_variables()]))
        ops = {'pointclouds_pl': pointclouds_pl,
               'labels_pl': labels_pl,
               'is_training_pl': is_training_pl,
               'max_pool': max_pool,
               'pred': pred,
               'alpha': alpha,
               'mu': mu,
               'stack_dist': stack_dist,
               'class_loss': class_loss,
               'kmeans_loss': kmeans_loss,
               'train_op': train_op,
               'train_op_full': train_op_full,
               'merged': merged,
               'step': batch,
               'learning_rate': learning_rate
               }

        for epoch in range(MAX_EPOCH):
            print('\n**** EPOCH %03d ****' % (epoch))
            sys.stdout.flush()

            is_full_training = epoch > MAX_PRETRAIN
            max_pool = train_one_epoch(sess, ops, train_writer, is_full_training)
            if epoch == MAX_PRETRAIN:
                centers = KMeans(n_clusters=FLAGS.n_clusters).fit(np.squeeze(max_pool))
                centers = centers.cluster_centers_
                sess.run(tf.compat.v1.assign(mu, centers))

            #eval_one_epoch(sess, ops, test_writer, is_full_training)
            #Added this line to record accuracy
            epoch_acc = eval_one_epoch(sess, ops, test_writer, is_full_training)
            epochs_acc.append(epoch_acc)
            if is_full_training:
                save_path = saver.save(sess, os.path.join(LOG_DIR, 'cluster.ckpt'))
            else:
                save_path = saver.save(sess, os.path.join(LOG_DIR, 'model.ckpt'))
            print("Model saved in file: %s" % save_path)
        plt.plot(epochs_acc)
        plt.ylabel('Validation accuracy')
        plt.xlabel('epochs')
        plt.show()
        plt.savefig('single_maching.png')

Training utils.

def get_batch(data, label, start_idx, end_idx):
    batch_label = label[start_idx:end_idx]
    batch_data = data[start_idx:end_idx, :, :]
    return batch_data, batch_label


def cluster_acc(y_true, y_pred):
    """
    Calculate clustering accuracy. Require scikit-learn installed
    """
    y_true = y_true.astype(np.int64)
    D = max(y_pred.max(), y_true.max()) + 1
    w = np.zeros((D, D), dtype=np.int64)
    for i in range(y_pred.size):
        w[y_pred[i], y_true[i]] += 1
    ind = linear_sum_assignment(w.max() - w)
    ind = np.asarray(ind)
    ind = np.transpose(ind)
    return sum([w[i, j] for i, j in ind]) * 1.0 / y_pred.size

One epoch training and evaluation functions. - loop over all batches in the training (or evaluation) dataloader. - prints training (and evaluation) loss. - switches loss after n=10 epochs. Reason is that the full loss requires an initial guess for the position of the cluster centroids. - prints training (and evaluation) cluster accuracy.

def train_one_epoch(sess, ops, train_writer, is_full_training):
    """ ops: dict mapping from string to tf ops """
    is_training = True

    train_idxs = np.arange(0, len(TRAIN_FILES))

    acc = loss_sum = 0
    y_pool = []
    for fn in range(len(TRAIN_FILES)):
        # print('----' + str(fn) + '-----')
        current_file = os.path.join(H5_DIR, TRAIN_FILES[train_idxs[fn]])
        current_data, current_label, current_cluster = provider.load_h5_data_label_seg(current_file)

        current_label = np.squeeze(current_label)

        file_size = current_data.shape[0]
        num_batches = file_size // BATCH_SIZE
        # num_batches = 5
        print(str(datetime.now()))

        # initialise progress bar
        process_desc = "TRAINING: Loss {:2.3e}"
        progress_bar = tqdm(initial=0, leave=True, total=num_batches,
                            desc=process_desc.format(0),
                            position=0)
        for batch_idx in range(num_batches):
            start_idx = batch_idx * BATCH_SIZE
            end_idx = (batch_idx + 1) * BATCH_SIZE
            batch_data, batch_label = get_batch(current_data, current_label, start_idx, end_idx)
            cur_batch_size = end_idx - start_idx

            # print(batch_weight)
            feed_dict = {ops['pointclouds_pl']: batch_data,
                         ops['labels_pl']: batch_label,
                         ops['is_training_pl']: is_training,
                         ops['alpha']: 2 * (EPOCH_CNT - MAX_PRETRAIN + 1),}
            if is_full_training:
                summary, step, _, loss_val, dist, lr = sess.run([ops['merged'], ops['step'],
                                                                 ops['train_op_full'], ops['kmeans_loss'],
                                                                 ops['stack_dist'], ops['learning_rate']],
                                                                feed_dict=feed_dict)

                batch_cluster = np.array([np.where(r == 1)[0][0] for r in current_cluster[start_idx:end_idx]])
                cluster_assign = np.zeros((cur_batch_size), dtype=int)

                for i in range(cur_batch_size):
                    index_closest_cluster = np.argmin(dist[:, i])
                    cluster_assign[i] = index_closest_cluster

                acc += cluster_acc(batch_cluster, cluster_assign)
            else:
                summary, step, _, loss_val, max_pool, lr = sess.run([ops['merged'], ops['step'],
                                                                     ops['train_op'], ops['class_loss'],
                                                                     ops['max_pool'], ops['learning_rate']],
                                                                    feed_dict=feed_dict)

                if len(y_pool) == 0:
                    y_pool = np.squeeze(max_pool)
                else:
                    y_pool = np.concatenate((y_pool, np.squeeze(max_pool)), axis=0)

            loss_sum += np.mean(loss_val)

            train_writer.add_summary(summary, step)

            # Update train bar
            process_desc.format(loss_val)
            progress_bar.update(1)
        progress_bar.close()

    print('learning rate: %f' % (lr))
    print('train mean loss: %f' % (loss_sum / float(num_batches)))
    print('train clustering accuracy: %f' % (acc / float(num_batches)))
    return y_pool


def eval_one_epoch(sess, ops, test_writer, is_full_training):
    """ ops: dict mapping from string to tf ops """
    global EPOCH_CNT
    is_training = False
    test_idxs = np.arange(0, len(TEST_FILES))
    # Test on all data: last batch might be smaller than BATCH_SIZE
    loss_sum = acc = 0
    acc_kmeans = 0

    for fn in range(len(TEST_FILES)):
        # print('----' + str(fn) + '-----')
        current_file = os.path.join(H5_DIR, TEST_FILES[test_idxs[fn]])
        current_data, current_label, current_cluster = provider.load_h5_data_label_seg(current_file)
        current_label = np.squeeze(current_label)

        file_size = current_data.shape[0]
        num_batches = file_size // BATCH_SIZE
        
        process_desc = "VALIDATION: Loss {:2.3e}"
        progress_bar = tqdm(initial=0, leave=True, total=num_batches,
                        desc=process_desc.format(0),
                        position=0)
        # num_batches = 5
        for batch_idx in range(num_batches):
            start_idx = batch_idx * BATCH_SIZE
            end_idx = (batch_idx + 1) * BATCH_SIZE
            batch_data, batch_label = get_batch(current_data, current_label, start_idx, end_idx)
            cur_batch_size = end_idx - start_idx

            feed_dict = {ops['pointclouds_pl']: batch_data,
                         ops['is_training_pl']: is_training,
                         ops['labels_pl']: batch_label,
                         ops['alpha']: 2 * (EPOCH_CNT - MAX_PRETRAIN + 1),}

            if is_full_training:
                summary, step, loss_val, max_pool, dist, mu = sess.run([ops['merged'], ops['step'],
                                                                        ops['kmeans_loss'],
                                                                        ops['max_pool'], ops['stack_dist'],
                                                                        ops['mu']],
                                                                       feed_dict=feed_dict)
                if batch_idx == 0:
                    print("mu: {}".format(mu))
                batch_cluster = np.array([np.where(r == 1)[0][0] for r in current_cluster[start_idx:end_idx]])
                cluster_assign = np.zeros((cur_batch_size), dtype=int)
                for i in range(cur_batch_size):
                    index_closest_cluster = np.argmin(dist[:, i])
                    cluster_assign[i] = index_closest_cluster

                acc += cluster_acc(batch_cluster, cluster_assign)

            else:
                summary, step, loss_val = sess.run([ops['merged'], ops['step'],
                                                    ops['class_loss']],
                                                   feed_dict=feed_dict)

            test_writer.add_summary(summary, step)

            loss_sum += np.mean(loss_val)
            
            # Update train bar
            process_desc.format(loss_val)
            progress_bar.update(1)
        progress_bar.close()

    total_loss = loss_sum * 1.0 / float(num_batches)
    print('test mean loss: %f' % (total_loss))
    print('testing clustering accuracy: %f' % (acc / float(num_batches)))
    
    #Added this to save accuracy
    return acc/float(num_batches)
    
    
    EPOCH_CNT += 1

run the training

train()

Result: - We see that the learning on a single machine works. - One epoch takes about 30 minutes - Resulting accuracy lies at about 0.55

ScaDaMaLe Course site and book

This notebook extends the TF v2.x code from the single machine notebook 23_ds_single_machine. The modification are such that the code enables multi-machine training using the horovod framwork.

We will highlight the changes compared the single machine implementation.

First: Check if the data is in local. If not, go to notebook 1_data_and_preprocssing and download the data from dbfs to local.

ls 06_LHC/
LICENSE
README.md
data
h5
models
scripts
utils

Get the imports.

import argparse
from argparse import Namespace
from datetime import datetime
import numpy as np
import tensorflow as tf
import socket
import os
import sys
from sklearn.cluster import KMeans
from tqdm import tqdm
import h5py
#Added matplot for accuracy
import matplotlib.pyplot as plt

np.set_printoptions(edgeitems=1000)

from scipy.optimize import linear_sum_assignment

BASE_DIR = os.path.join(os.getcwd(), '06_LHC','scripts')  
#os.path.dirname(os.path.abspath(__file__))
sys.path.append(BASE_DIR)
sys.path.append(os.path.join(BASE_DIR, '..', 'models'))
sys.path.append(os.path.join(BASE_DIR, '..', 'utils'))
import provider
import gapnet_classify as MODEL

Get the input parameters.

parserdict = {'max_dim': 3, #help='Dimension of the encoding layer [Default: 3]')
              'n_clusters': 3, #help='Number of clusters [Default: 3]')
              'gpu': 0, #help='GPU to use [default: GPU 0]')
              'model': 'gapnet_clasify', #help='Model name [default: gapnet_classify]')
              'log_dir': 'log', #help='Log dir [default: log]')
              'num_point': 100, #help='Point Number [default: 100]')
              'max_epoch': 100, #help='Epoch to run [default: 200]')
              'epochs_pretrain': 20, #help='Epochs to for pretraining [default: 10]')
              'batch_size': 1024, #help='Batch Size during training [default: 512]')
              'learning_rate': 0.001, #help='Initial learning rate [default: 0.01]')

              'momentum': 0.9, #help='Initial momentum [default: 0.9]')
              'optimizer': 'adam', #help='adam or momentum [default: adam]')
              'decay_step': 500000, #help='Decay step for lr decay [default: 500000]')
              'wd': 0.0, #help='Weight Decay [Default: 0.0]')
              'decay_rate': 0.5, #help='Decay rate for lr decay [default: 0.5]')
              'output_dir': 'train_results', #help='Directory that stores all training logs and trained models')
              'data_dir': os.path.join(os.getcwd(),'06_LHC', 'h5'), # '../h5', #help='directory with data [default: hdf5_data]')
              'nfeat': 8, #help='Number of features [default: 8]')
              'ncat': 20, #help='Number of categories [default: 20]')
             }

FLAGS = Namespace(**parserdict)
H5_DIR = FLAGS.data_dir

EPOCH_CNT = 0
MAX_PRETRAIN = FLAGS.epochs_pretrain
BATCH_SIZE = FLAGS.batch_size
NUM_POINT = FLAGS.num_point
NUM_FEAT = FLAGS.nfeat
NUM_CLASSES = FLAGS.ncat
MAX_EPOCH = FLAGS.max_epoch
BASE_LEARNING_RATE = FLAGS.learning_rate
GPU_INDEX = FLAGS.gpu
MOMENTUM = FLAGS.momentum
OPTIMIZER = FLAGS.optimizer
DECAY_STEP = FLAGS.decay_step
DECAY_RATE = FLAGS.decay_rate

# MODEL = importlib.import_module(FLAGS.model) # import network module
MODEL_FILE = os.path.join(BASE_DIR, 'models', FLAGS.model + '.py')
LOG_DIR = os.path.join(os.getcwd(), '06_LHC', 'logs', FLAGS.log_dir)

if not os.path.exists(LOG_DIR): os.makedirs(LOG_DIR)
os.system('cp %s.py %s' % (MODEL_FILE, LOG_DIR))  # bkp of model def
os.system('cp train_kmeans.py %s' % (LOG_DIR))  # bkp of train procedure

BN_INIT_DECAY = 0.5
BN_DECAY_DECAY_RATE = 0.5
BN_DECAY_DECAY_STEP = float(DECAY_STEP)
BN_DECAY_CLIP = 0.99

LEARNING_RATE_CLIP = 1e-5
HOSTNAME = socket.gethostname()

TRAIN_FILES = provider.getDataFiles(os.path.join(H5_DIR, 'train_files_wztop.txt'))
TEST_FILES = provider.getDataFiles(os.path.join(H5_DIR, 'test_files_wztop.txt'))

Define the utils functions.

def get_learning_rate(batch):
    learning_rate = tf.compat.v1.train.exponential_decay(
        BASE_LEARNING_RATE,  # Base learning rate.
        batch * BATCH_SIZE,  # Current index into the dataset.
        DECAY_STEP,  # Decay step.
        DECAY_RATE,  # Decay rate.
        staircase=True)
    learning_rate = tf.minimum(learning_rate, LEARNING_RATE_CLIP)  # CLIP THE LEARNING RATE!
    return learning_rate


def get_bn_decay(batch):
    bn_momentum = tf.compat.v1.train.exponential_decay(
        BN_INIT_DECAY,
        batch * BATCH_SIZE,
        BN_DECAY_DECAY_STEP,
        BN_DECAY_DECAY_RATE,
        staircase=True)
    bn_decay = tf.minimum(BN_DECAY_CLIP, 1 - bn_momentum)
    return bn_decay

Modification: - create checkpoint directory for horovod - directory is user chosen

import os
import time
 
checkpoint_dir = '/dbfs/databricks/driver/06_LHC/logs/train/{}/'.format(time.time())
 
os.makedirs(checkpoint_dir)

Create horovod h5 loading function: - not the rank and size is inputed. - rank is the current device id - size is the total number of available GPUs - we split the data in the h5 file for each device.

def load_h5_hvd(h5_filename, rank=0, size=1):
    f = h5py.File(h5_filename, 'r')
    data = f['data'][rank::size]
    label = f['pid'][rank::size]
    seg = f['label'][rank::size]
    print("loaded {0} events".format(len(data)))

    return (data, label, seg)

Main training function. Modifications are: - import packages again. Otherwise single devices may cause problems. - initialise the horovod runner - copy the files from local to each GPU such that they are available for horovod. - scale the learning rate by the number of available devices. - add a horovod specific distributed optimizer. - use hooks for checkpoint saving ever 1000 steps. - switch from a normal TF training session to a monitored training session.

def train_hvd():
    import horovod.tensorflow as hvd
    import tensorflow as tf
    import shutil

    
    # do all the imports here again in order for hvd to work nicely
    import horovod.tensorflow as hvd
    import argparse, shlex
    from datetime import datetime
    import numpy as np
    import tensorflow as tf
    import socket
    import os
    import sys
    from sklearn.cluster import KMeans
    from tqdm import tqdm
    np.set_printoptions(edgeitems=1000)
    from scipy.optimize import linear_sum_assignment
    BASE_DIR = os.path.join(os.getcwd(), '06_LHC','scripts')
    sys.path.append(BASE_DIR)
    sys.path.append(os.path.join(BASE_DIR, '..', 'models'))
    sys.path.append(os.path.join(BASE_DIR, '..', 'utils'))
    
    # HOROVOD: initialize Horovod.
    hvd.init()
    
    # HOROVOD: Copy files from local to each single GPU directory
    src = "/dbfs/FileStore/06_LHC"
    dst = os.path.join(os.getcwd(), '06_LHC')
    print("Copying data/files to local horovod folder...")
    shutil.copytree(src, dst)
    print("Done with copying!")
    
    import provider
    import gapnet_classify as MODEL
    
    
    with tf.Graph().as_default():
        with tf.device('/gpu:' + str(GPU_INDEX)):
            #ADDED THIS TO RECORD ACCURACY
            epochs_acc = []          
            pointclouds_pl, labels_pl = MODEL.placeholder_inputs(BATCH_SIZE, NUM_POINT, NUM_FEAT)

            is_training_pl = tf.compat.v1.placeholder(tf.bool, shape=())

            # Note the global_step=batch parameter to minimize.
            # That tells the optimizer to helpfully increment the 'batch' parameter for you every time it trains.
            batch = tf.Variable(0)
            alpha = tf.compat.v1.placeholder(dtype=tf.float32, shape=())
            bn_decay = get_bn_decay(batch)
            tf.compat.v1.summary.scalar('bn_decay', bn_decay)
            print("--- Get model and loss")

            pred, max_pool = MODEL.get_model(pointclouds_pl, is_training=is_training_pl,
                                             bn_decay=bn_decay,
                                             num_class=NUM_CLASSES, weight_decay=FLAGS.wd,
                                             )

            class_loss = MODEL.get_focal_loss(pred, labels_pl, NUM_CLASSES)
            mu = tf.Variable(tf.zeros(shape=(FLAGS.n_clusters, FLAGS.max_dim)), name="mu",
                             trainable=True)  # k centroids
            kmeans_loss, stack_dist = MODEL.get_loss_kmeans(max_pool, mu, FLAGS.max_dim,
                                                            FLAGS.n_clusters, alpha)

            full_loss = kmeans_loss + class_loss

            print("--- Get training operator")
            # Get training operator
            learning_rate = get_learning_rate(batch)
            # HOROVOD: scale learning rate from hvd dependent number of processes (=hvd.size)
            tf.compat.v1.summary.scalar('learning_rate', learning_rate * hvd.size())
            if OPTIMIZER == 'momentum':
                optimizer = tf.compat.v1.train.MomentumOptimizer(learning_rate * hvd.size(), momentum=MOMENTUM)
            elif OPTIMIZER == 'adam':
                optimizer = tf.compat.v1.train.AdamOptimizer(learning_rate * hvd.size())
            # HOROVOD: add Horovod Distributed Optimizer
            optimizer = hvd.DistributedOptimizer(optimizer)

            global_step = tf.compat.v1.train.get_or_create_global_step() 
            train_op_full = optimizer.minimize(full_loss, global_step=global_step) #batch)
            train_op = optimizer.minimize(class_loss, global_step=global_step) #batch)

            # Add ops to save and restore all the variables.
            saver = tf.compat.v1.train.Saver()
             
        # HOROVOD
        hooks = [
          # Horovod: BroadcastGlobalVariablesHook broadcasts initial variable states
          # from rank 0 to all other processes. This is necessary to ensure consistent
          # initialization of all workers when training is started with random weights
          # or restored from a checkpoint.
          hvd.BroadcastGlobalVariablesHook(0),
          
          #checkpoint_dir_mod = checkpoint_dir if hvd.rank() == 0 else None
          
          tf.compat.v1.train.CheckpointSaverHook(checkpoint_dir=checkpoint_dir,
                                                 checkpoint_basename='cluster.ckpt',
                                                 save_steps=1_000
                                                ),

          # this one basically prints every n steps the "step" and the "loss". Output is cleaner without
          # tf.compat.v1.train.LoggingTensorHook(tensors={'step': global_step, 'loss': full_loss}, every_n_iter=75),
        ]

        # Create a session
        config = tf.compat.v1.ConfigProto()
        config.gpu_options.allow_growth = True
        config.allow_soft_placement = True
        config.log_device_placement = False
        config.gpu_options.visible_device_list = str(hvd.local_rank())
        
        # global variable initializer must be defined before session definition
        init_global_step = tf.compat.v1.global_variables_initializer()
        
        # MonitoredTrainingSession
        # takes care of session initialization,
        # restoring from a checkpoint, saving to a checkpoint, and closing when done
        # or an error occurs.
        #checkpoint_dir_mod = checkpoint_dir if hvd.rank() == 0 else None
        sess = tf.compat.v1.train.MonitoredTrainingSession(checkpoint_dir=checkpoint_dir,
                                                           hooks=hooks,
                                                           config=config)

        # get one batch_data from the training files in oder to inintialise the session
        train_idxs = np.arange(0, len(TRAIN_FILES))
        current_file = os.path.join(os.getcwd(), '06_LHC', 'h5', TRAIN_FILES[train_idxs[0]])
        current_data, current_label, current_cluster = load_h5_hvd(current_file, hvd.rank(), hvd.size())
        batch_data, batch_label = get_batch(current_data, current_label, 0, BATCH_SIZE)
        # 
        feed_dict = {pointclouds_pl: batch_data,
                     labels_pl: batch_label,
                     is_training_pl: False,
                     alpha: 2 * (EPOCH_CNT - MAX_PRETRAIN + 1),}
        #NOT SO CLEAR THAT init_global_step IS NECESSARY. 
        sess.run(init_global_step, feed_dict=feed_dict)

        # hels with merging: CHANGE THIS IF POSSIBLE
        sess.graph._unsafe_unfinalize()
        # Add summary writers
        merged = tf.compat.v1.summary.merge_all()
        train_writer = tf.compat.v1.summary.FileWriter(os.path.join(LOG_DIR, 'train'), sess.graph)
        test_writer = tf.compat.v1.summary.FileWriter(os.path.join(LOG_DIR, 'test'), sess.graph)
        
        # Init variables
        print("Total number of weights for the model: ", np.sum([np.prod(v.get_shape().as_list()) for v in tf.compat.v1.trainable_variables()]))
        ops = {'pointclouds_pl': pointclouds_pl,
          'labels_pl': labels_pl,
          'is_training_pl': is_training_pl,
          'max_pool': max_pool,
          'pred': pred,
          'alpha': alpha,
          'mu': mu,
          'stack_dist': stack_dist,
          'class_loss': class_loss,
          'kmeans_loss': kmeans_loss,
          'train_op': train_op,
          'train_op_full': train_op_full,
          'merged': merged,
          'step': batch,
          'learning_rate': learning_rate
        }

        for epoch in range(MAX_EPOCH):
            print('\n**** EPOCH %03d ****' % (epoch))
            sys.stdout.flush()
            
            is_full_training = epoch > MAX_PRETRAIN
            max_pool = train_one_epoch(sess, ops, train_writer, hvd.rank(), hvd.size(), is_full_training)
            if epoch == MAX_PRETRAIN:
                centers = KMeans(n_clusters=FLAGS.n_clusters).fit(np.squeeze(max_pool))
                centers = centers.cluster_centers_
                sess.run(tf.compat.v1.assign(mu, centers))
            
            #eval_one_epoch(sess, ops, test_writer, hvd.rank(), hvd.size(), is_full_training)
            #Added these lines to record accuracy
            epoch_acc = eval_one_epoch(sess, ops, test_writer, hvd.rank(), hvd.size(), is_full_training)
            epochs_acc.append(epoch_acc)
            """if is_full_training:
                save_path = saver.save(sess, os.path.join(LOG_DIR, 'cluster.ckpt'))
            else:
                save_path = saver.save(sess, os.path.join(LOG_DIR, 'model.ckpt'))"""
            #print("Model saved in file: %s" % save_path)
    return epochs_acc

Training utils.

def get_batch(data, label, start_idx, end_idx):
    batch_label = label[start_idx:end_idx]
    batch_data = data[start_idx:end_idx, :, :]
    return batch_data, batch_label


def cluster_acc(y_true, y_pred):
    """
    Calculate clustering accuracy. Require scikit-learn installed
    """
    y_true = y_true.astype(np.int64)
    D = max(y_pred.max(), y_true.max()) + 1
    w = np.zeros((D, D), dtype=np.int64)
    for i in range(y_pred.size):
        w[y_pred[i], y_true[i]] += 1
    ind = linear_sum_assignment(w.max() - w)
    ind = np.asarray(ind)
    ind = np.transpose(ind)
    return sum([w[i, j] for i, j in ind]) * 1.0 / y_pred.size

One epoch training and evaluation functions: - the applicable horovod rank and size is fed into both functions. - use the rank and size to load the correct h5 data. - remove progress bars since progress bars from each device would overlap.

def train_one_epoch(sess, ops, train_writer, hvd_rank, hvd_size, is_full_training):
    """ ops: dict mapping from string to tf ops """
    is_training = True

    train_idxs = np.arange(0, len(TRAIN_FILES))

    acc = loss_sum = 0
    y_pool = []
    for fn in range(len(TRAIN_FILES)):
        # print('----' + str(fn) + '-----')
        current_file = os.path.join(os.getcwd(), '06_LHC', 'h5', TRAIN_FILES[train_idxs[fn]])
        current_data, current_label, current_cluster = load_h5_hvd(current_file, hvd_rank, hvd_size)

        current_label = np.squeeze(current_label)

        file_size = current_data.shape[0]
        num_batches = file_size // BATCH_SIZE
        # num_batches = 5
        print(str(datetime.now()))

        # initialise progress bar
        #process_desc = "TRAINING: Loss {:2.3e}"
        #progress_bar = tqdm(initial=0, leave=True, total=num_batches,
        #                    desc=process_desc.format(0),
        #                    position=0)
        for batch_idx in range(num_batches):
            start_idx = batch_idx * BATCH_SIZE
            end_idx = (batch_idx + 1) * BATCH_SIZE
            batch_data, batch_label = get_batch(current_data, current_label, start_idx, end_idx)
            cur_batch_size = end_idx - start_idx

            # print(batch_weight)
            feed_dict = {ops['pointclouds_pl']: batch_data,
                         ops['labels_pl']: batch_label,
                         ops['is_training_pl']: is_training,
                         ops['alpha']: 2 * (EPOCH_CNT - MAX_PRETRAIN + 1),}
            if is_full_training:
                summary, step, _, loss_val, dist, lr = sess.run([ops['merged'], ops['step'],
                                                                 ops['train_op_full'], ops['kmeans_loss'],
                                                                 ops['stack_dist'], ops['learning_rate']],
                                                                feed_dict=feed_dict)

                batch_cluster = np.array([np.where(r == 1)[0][0] for r in current_cluster[start_idx:end_idx]])
                cluster_assign = np.zeros((cur_batch_size), dtype=int)

                for i in range(cur_batch_size):
                    index_closest_cluster = np.argmin(dist[:, i])
                    cluster_assign[i] = index_closest_cluster

                acc += cluster_acc(batch_cluster, cluster_assign)
            else:
                summary, step, _, loss_val, max_pool, lr = sess.run([ops['merged'], ops['step'],
                                                                     ops['train_op'], ops['class_loss'],
                                                                     ops['max_pool'], ops['learning_rate']],
                                                                    feed_dict=feed_dict)

                if len(y_pool) == 0:
                    y_pool = np.squeeze(max_pool)
                else:
                    y_pool = np.concatenate((y_pool, np.squeeze(max_pool)), axis=0)

            loss_sum += np.mean(loss_val)

            #train_writer.add_summary(summary, step)
            if hvd_rank == 0:
                train_writer.add_summary(summary, step)
              
              

            # Update train bar
            #process_desc.format(loss_val)
            #progress_bar.update(1)
        #progress_bar.close()

    print('learning rate: %f' % (lr))
    print('train mean loss: %f' % (loss_sum / float(num_batches)))
    #if is_full_training:
    print('train clustering accuracy: %f' % (acc / float(num_batches)))
    return y_pool


def eval_one_epoch(sess, ops, test_writer, hvd_rank, hvd_size, is_full_training):
    """ ops: dict mapping from string to tf ops """
    global EPOCH_CNT
    is_training = False
    test_idxs = np.arange(0, len(TEST_FILES))
    # Test on all data: last batch might be smaller than BATCH_SIZE
    loss_sum = acc = 0
    acc_kmeans = 0

    for fn in range(len(TEST_FILES)):
        # print('----' + str(fn) + '-----')
        current_file = os.path.join(os.getcwd(), '06_LHC', 'h5', TEST_FILES[test_idxs[fn]])
        current_data, current_label, current_cluster = load_h5_hvd(current_file, hvd_rank, hvd_size)
        current_label = np.squeeze(current_label)

        file_size = current_data.shape[0]
        num_batches = file_size // BATCH_SIZE
        
        """process_desc = "VALIDATION: Loss {:2.3e}"
        progress_bar = tqdm(initial=0, leave=True, total=num_batches,
                        desc=process_desc.format(0),
                        position=0)"""
        for batch_idx in range(num_batches):
            start_idx = batch_idx * BATCH_SIZE
            end_idx = (batch_idx + 1) * BATCH_SIZE
            batch_data, batch_label = get_batch(current_data, current_label, start_idx, end_idx)
            cur_batch_size = end_idx - start_idx

            feed_dict = {ops['pointclouds_pl']: batch_data,
                         ops['is_training_pl']: is_training,
                         ops['labels_pl']: batch_label,
                         ops['alpha']: 2 * (EPOCH_CNT - MAX_PRETRAIN + 1),}

            if is_full_training:
                summary, step, loss_val, max_pool, dist, mu = sess.run([ops['merged'], ops['step'],
                                                                        ops['kmeans_loss'],
                                                                        ops['max_pool'], ops['stack_dist'],
                                                                        ops['mu']],
                                                                       feed_dict=feed_dict)
                
                batch_cluster = np.array([np.where(r == 1)[0][0] for r in current_cluster[start_idx:end_idx]])
                cluster_assign = np.zeros((cur_batch_size), dtype=int)
                for i in range(cur_batch_size):
                    index_closest_cluster = np.argmin(dist[:, i])
                    cluster_assign[i] = index_closest_cluster

                acc += cluster_acc(batch_cluster, cluster_assign)

            else:
                summary, step, loss_val = sess.run([ops['merged'], ops['step'],
                                                    ops['class_loss']],
                                                   feed_dict=feed_dict)

            #test_writer.add_summary(summary, step)
            if hvd_rank == 0:
                test_writer.add_summary(summary, step)

            loss_sum += np.mean(loss_val)
            
            """# Update train bar
            process_desc.format(loss_val)
            progress_bar.update(1)"""
        #progress_bar.close()

    total_loss = loss_sum * 1.0 / float(num_batches)
    print('test mean loss: %f' % (total_loss))
    #if is_full_training:
    print('testing clustering accuracy: %f' % (acc / float(num_batches)))

    return acc/float(num_batches)
    
    EPOCH_CNT += 1
    

Run the training: - initialise the Horovod runner with np=2 GPUs. The cluster does not allow more GPUs - run the horovod runner with the given training function.

from sparkdl import HorovodRunner
 
hr = HorovodRunner(np=2)
epochs_acc=hr.run(train_hvd)
plt.plot(epochs_acc)
plt.ylabel('Validation accuracy')
plt.xlabel('epochs')
plt.show()
plt.savefig('distributed.png')
print(epochs_acc)

Results: - Execution of the command for np=2 GPUs takes 3.39 hours. - Plot below show the validation accuracy vs epoch. - Note that we switch to the full loss after n=10 epochs. - We observe an improvement in the cluster validation set accuracy after around 50 epochs. - Highest cluster validation set accuracy lies at about 68%. - Output of the algorithm is the stored model.

The Standard Model

checkpoint_dir

ScaDaMaLe Course site and book

Evaluation

In this notebook we evaluate the trained model on new data. The data has already been downloaded in notebook 11 and is stored in the h5 directory together with the training data. At the end of this notebook we will have the clustering accuracy of the model on this new data.

Import packages needed for the script and set the correct paths

import argparse
from argparse import Namespace
from math import *
import numpy as np
from datetime import datetime
import json
import os, ast
import sys
import socket
from sklearn.cluster import KMeans
np.set_printoptions(edgeitems=1000)
from scipy.optimize import linear_sum_assignment
import h5py
import tensorflow as tf
from tqdm import tqdm


from scipy.optimize import linear_sum_assignment

BASE_DIR = os.path.join(os.getcwd(), '06_LHC','scripts')  
sys.path.append(BASE_DIR)
sys.path.append(os.path.join(BASE_DIR, '..', 'models'))
sys.path.append(os.path.join(BASE_DIR, '..', 'utils'))
import provider
import gapnet_classify as MODEL

Default settings

parserdict = {'gpu':0, #help='GPUs to use [default: 0]')
              'n_clusters':3,# type=int, default=3, #help='Number of clusters [Default: 3]')
              'max_dim':3, #type=int, default=3, #help='Dimension of the encoding layer [Default: 3]')
              'log_dir': 'log',#default='log', #help='Log dir [default: log]')
              'batch':1024,# type=int, default=512, #help='Batch Size  during training [default: 512]')
              'num_point':100, # type=int, default=100, #help='Point Number [default: 100]')
              'data_dir':'../h5/', #default='../h5', #help='directory with data [default: ../h5]')
              'nfeat':8,# type=int, default=8, #help='Number of features [default: 8]')
              'ncat':20, # type=int, default=20, #help='Number of categories [default: 20]')
              'name': "evaluation", #default="", #help='name of the output file')
              'h5_folder':'../h5/', #default="../h5/", #help='folder to store output files')
              'full_train':True,# default=False, action='store_true',
                    #help='load full training results [default: False]')
              'checkpoint_folder':'/dbfs/databricks/driver/06_LHC/logs/train/', #help: The folder where the checkpoint is saved. The script
                   #will retrieved the latest checkpoint created here.
             }

FLAGS = Namespace(**parserdict)
#LOG_DIR = os.path.join('..', 'logs', FLAGS.log_dir)
LOG_DIR = os.path.join(os.getcwd(), '06_LHC', 'logs', FLAGS.log_dir)
DATA_DIR = FLAGS.data_dir
H5_DIR = os.path.join(BASE_DIR, DATA_DIR)
H5_OUT = FLAGS.h5_folder
CHECKPOINT_PATH = FLAGS.checkpoint_folder
if not os.path.exists(H5_OUT): os.mkdir(H5_OUT)

Some helper functions

#Calculate the clustering accuracy
def cluster_acc(y_true, y_pred):
    """
    Calculate clustering accuracy. Require scikit-learn installed
    """
    y_true = y_true.astype(np.int64)
    D = max(y_pred.max(), y_true.max()) + 1
    w = np.zeros((D, D), dtype=np.int64)
    for i in range(y_pred.size):
        w[y_pred[i], y_true[i]] += 1
    ind = linear_sum_assignment(w.max() - w)
    ind = np.asarray(ind)
    ind = np.transpose(ind)
    return sum([w[i, j] for i, j in ind]) * 1.0 / y_pred.size
# Find the latest checkpoint (the training script saves one every 1000th step)
def find_ckpt(path,base):
  files = os.listdir(os.path.join(path,os.listdir(path)[-1]))
  s=base+".ckpt-"
  ckpts = [r for r in files if s in r]
  numbers = [int(r.split('.')[1].split('-')[1]) for r in ckpts]
  ckpt = base+'.ckpt-'+str(np.max(numbers))
  return os.path.join(path,os.listdir(path)[-1],ckpt)
ls /dbfs/databricks/driver/06_LHC/logs/train/
1608312111.5291479
1608312856.6910331
1608316348.7265332
1608316368.303585
1608316645.5256958
1608317160.1003277
1608317514.0408154
1608317816.3961644
1608545228.287947
1609765453.8899894
1614197922.0756063
1614199473.6461
1614199773.0030868
1614199944.5590024
1614205764.5543048
1614253383.643093
1614266637.6848218
1614283969.6952937
1614352318.071854
1614372841.6587343
1614427683.679712
1614435113.1720457
1614435261.5545285
1614447752.0912156
1614447848.5286212
1614516429.048815
1614516851.6496608
1618854193.501687

Run the evaluation script

NUM_POINT = FLAGS.num_point
BATCH_SIZE = FLAGS.batch
NFEATURES = FLAGS.nfeat
FULL_TRAINING = FLAGS.full_train

NUM_CATEGORIES = FLAGS.ncat
# Only used to get how many parts per categor
print('#### Batch Size : {0}'.format(BATCH_SIZE))
print('#### Point Number: {0}'.format(NUM_POINT))
print('#### Using GPUs: {0}'.format(FLAGS.gpu))

print('### Starting evaluation')

EVALUATE_FILES = provider.getDataFiles(os.path.join(H5_DIR, 'evaluate_files_wztop.txt'))


def eval():
    with tf.Graph().as_default():
        with tf.device('/gpu:' + str(FLAGS.gpu)):
            pointclouds_pl, labels_pl = MODEL.placeholder_inputs(BATCH_SIZE, NUM_POINT, NFEATURES)
            batch = tf.Variable(0, trainable=False)
            alpha = tf.compat.v1.placeholder(tf.float32, shape=())
            is_training_pl = tf.compat.v1.placeholder(tf.bool, shape=())
            pred, max_pool = MODEL.get_model(pointclouds_pl, is_training=is_training_pl, num_class=NUM_CATEGORIES)
            mu = tf.Variable(tf.zeros(shape=(FLAGS.n_clusters, FLAGS.max_dim)), name="mu",
                             trainable=False)  # k centroids

            classify_loss = MODEL.get_focal_loss(pred, labels_pl, NUM_CATEGORIES)
            kmeans_loss, stack_dist = MODEL.get_loss_kmeans(max_pool, mu, FLAGS.max_dim,
                                                            FLAGS.n_clusters, alpha)

            saver = tf.compat.v1.train.Saver()

        config = tf.compat.v1.ConfigProto()
        config.gpu_options.allow_growth = True
        config.allow_soft_placement = True
        sess = tf.compat.v1.Session(config=config)

        if FULL_TRAINING:
            #saver.restore(sess, os.path.join(LOG_DIR, 'cluster.ckpt'))
            saver.restore(sess, find_ckpt(CHECKPOINT_PATH,'cluster'))
        else:
            saver.restore(sess, find_ckpt(CHECKPOINT_PATH,'model'))
            #saver.restore(sess, os.path.join(LOG_DIR, 'model.ckpt'))
        print('model restored')

        ops = {'pointclouds_pl': pointclouds_pl,
               'labels_pl': labels_pl,
               'stack_dist': stack_dist,
               'kmeans_loss': kmeans_loss,
               'pred': pred,
               'alpha': alpha,
               'max_pool': max_pool,
               'is_training_pl': is_training_pl,
               'classify_loss': classify_loss, }

        eval_one_epoch(sess, ops)


def get_batch(data, label, start_idx, end_idx):
    batch_label = label[start_idx:end_idx]
    batch_data = data[start_idx:end_idx, :, :]
    return batch_data, batch_label


def eval_one_epoch(sess, ops):
    is_training = False

    eval_idxs = np.arange(0, len(EVALUATE_FILES))
    y_val = []
    acc = 0
    
    for fn in range(len(EVALUATE_FILES)):
        current_file = os.path.join(H5_DIR, EVALUATE_FILES[eval_idxs[fn]])
        current_data, current_label, current_cluster = provider.load_h5_data_label_seg(current_file)
        adds = provider.load_add(current_file, ['masses'])

        current_label = np.squeeze(current_label)

        file_size = current_data.shape[0]
        num_batches = file_size // BATCH_SIZE
       # num_batches = 5

        for batch_idx in range(num_batches):
            start_idx = batch_idx * BATCH_SIZE
            end_idx = (batch_idx + 1) * BATCH_SIZE

            batch_data, batch_label = get_batch(current_data, current_label, start_idx, end_idx)
            batch_cluster = current_cluster[start_idx:end_idx]
            cur_batch_size = end_idx - start_idx

            feed_dict = {ops['pointclouds_pl']: batch_data,
                         ops['labels_pl']: batch_label,
                         ops['alpha']: 1,  # No impact on evaluation,
                         ops['is_training_pl']: is_training,
                         }

            loss, dist, max_pool = sess.run([ops['kmeans_loss'], ops['stack_dist'],
                                             ops['max_pool']], feed_dict=feed_dict)
            cluster_assign = np.zeros((cur_batch_size), dtype=int)
            for i in range(cur_batch_size):
                index_closest_cluster = np.argmin(dist[:, i])
                cluster_assign[i] = index_closest_cluster

            batch_cluster = np.array([np.where(r == 1)[0][0] for r in current_cluster[start_idx:end_idx]])

            if len(y_val) == 0:
                y_val = batch_cluster
                y_assign = cluster_assign
                y_pool = np.squeeze(max_pool)
                y_mass = adds['masses'][start_idx:end_idx]
            else:
                y_val = np.concatenate((y_val, batch_cluster), axis=0)
                y_assign = np.concatenate((y_assign, cluster_assign), axis=0)
                y_pool = np.concatenate((y_pool, np.squeeze(max_pool)), axis=0)
                y_mass = np.concatenate((y_mass, adds['masses'][start_idx:end_idx]), axis=0)

    with h5py.File(os.path.join(H5_OUT, '{0}.h5'.format(FLAGS.name)), "w") as fh5:
        dset = fh5.create_dataset("pid", data=y_val)  # Real jet categories
        dset = fh5.create_dataset("label", data=y_assign)  # Cluster labeling
        dset = fh5.create_dataset("max_pool", data=y_pool)
        dset = fh5.create_dataset("masses", data=y_mass)
    
    print("Clustering accuracy is ",cluster_acc(y_val,y_assign))

################################################


if __name__ == '__main__':
    eval()
#### Batch Size : 1024
#### Point Number: 100
#### Using GPUs: 0
### Starting evaluation
INFO:tensorflow:Restoring parameters from /dbfs/databricks/driver/06_LHC/logs/train/1614516851.6496608/cluster.ckpt-13000
model restored
loaded 143984 events
loaded 302664 events
loaded 75666 events
Clustering accuracy is  0.5005421075295275

The clustering accuracy for the fully trained model should be output above. In addition, the .h5 file ../h5/evaluate.h5 containing information about true and predicted labels (as well as masses and pooling) has been written. This can be used to make visualizations such as the one in the introduction notebook (taken from the paper).

os.listdir(H5_OUT)
from tsne import bh_sne

ScaDaMaLe Course site and book

import os

Get original code

ls
06_LHC
conf
derby.log
eventlogs
ganglia
logs
#%sh
#wget https://github.com/olgeet/UCluster/archive/refs/heads/master.zip
#unzip master.zip

Unzip and move original code to 06LHCTF1. Copy the entire h5 folder from 06_LHC since it contains already preprocessed h5 files, which have been processed without TF and should be usable with any version.

rm -r 06_LHC_TF1
mkdir 06_LHC_TF1
cd 06_LHC_TF1
mv ../UCluster-master/* .
rm -r ../UCluster-master/ ../master.zip
cp ../06_LHC/h5/* ./h5/
rm: cannot remove '06_LHC_TF1': No such file or directory
ls 06_LHC_TF1/h5
eval_multi_20v_100P.h5
evaluate_files_RD.txt
evaluate_files_b1.txt
evaluate_files_b2.txt
evaluate_files_b3.txt
evaluate_files_gwztop.txt
evaluate_files_wztop.txt
test_files_RD.txt
test_files_b1.txt
test_files_b2.txt
test_files_b3.txt
test_files_gwztop.txt
test_files_wztop.txt
test_multi_20v_100P.h5
train_files_RD.txt
train_files_b1.txt
train_files_b2.txt
train_files_b3.txt
train_files_gwztop.txt
train_files_wztop.txt
train_multi_20v_100P.h5

Imports. Only changed some paths

from argparse import Namespace
import math
import subprocess
from datetime import datetime
import numpy as np
import tensorflow as tf
import socket
import importlib
import os,ast
import sys
from sklearn.cluster import KMeans
import h5py
np.set_printoptions(edgeitems=1000)

from scipy.optimize import linear_sum_assignment
BASE_DIR = os.path.join(os.getcwd(), '06_LHC_TF1','scripts') 
sys.path.append(BASE_DIR)
sys.path.append(os.path.join(BASE_DIR,'..', 'models'))
sys.path.append(os.path.join(BASE_DIR,'..' ,'utils'))
import provider
import gapnet_classify as MODEL

print(tf.__version__)
1.15.4

Uses Namespace from argparse instead

parserdict = {'max_dim': 3, #help='Dimension of the encoding layer [Default: 3]')
              'n_clusters': 3, #help='Number of clusters [Default: 3]')
              'gpu': 0, #help='GPU to use [default: GPU 0]')
              'model': 'gapnet_clasify', #help='Model name [default: gapnet_classify]')
              'log_dir': 'log', #help='Log dir [default: log]')
              'num_point': 100, #help='Point Number [default: 100]')
              'max_epoch': 100, #help='Epoch to run [default: 200]')
              'epochs_pretrain': 20, #help='Epochs to for pretraining [default: 10]')
              'batch_size': 1024, #help='Batch Size during training [default: 512]')
              'learning_rate': 0.001, #help='Initial learning rate [default: 0.01]')

              'momentum': 0.9, #help='Initial momentum [default: 0.9]')
              'optimizer': 'adam', #help='adam or momentum [default: adam]')
              'decay_step': 500000, #help='Decay step for lr decay [default: 500000]')
              'wd': 0.0, #help='Weight Decay [Default: 0.0]')
              'decay_rate': 0.5, #help='Decay rate for lr decay [default: 0.5]')
              'output_dir': 'train_results', #help='Directory that stores all training logs and trained models')
              'data_dir': os.path.join(os.getcwd(),'06_LHC_TF1', 'h5'), # '../h5', #help='directory with data [default: hdf5_data]')
              'nfeat': 8, #help='Number of features [default: 8]')
              'ncat': 20, #help='Number of categories [default: 20]')
             }

FLAGS = Namespace(**parserdict)
H5_DIR = FLAGS.data_dir

EPOCH_CNT = 0
MAX_PRETRAIN = FLAGS.epochs_pretrain
BATCH_SIZE = FLAGS.batch_size
NUM_POINT = FLAGS.num_point
NUM_FEAT = FLAGS.nfeat
NUM_CLASSES = FLAGS.ncat
MAX_EPOCH = FLAGS.max_epoch
BASE_LEARNING_RATE = FLAGS.learning_rate
GPU_INDEX = FLAGS.gpu
MOMENTUM = FLAGS.momentum
OPTIMIZER = FLAGS.optimizer
DECAY_STEP = FLAGS.decay_step
DECAY_RATE = FLAGS.decay_rate

# MODEL = importlib.import_module(FLAGS.model) # import network module
MODEL_FILE = os.path.join(BASE_DIR, 'models', FLAGS.model + '.py')
LOG_DIR = os.path.join('..', 'logs', FLAGS.log_dir)

if not os.path.exists(LOG_DIR): os.makedirs(LOG_DIR)
os.system('cp %s.py %s' % (MODEL_FILE, LOG_DIR))  # bkp of model def
os.system('cp train_kmeans.py %s' % (LOG_DIR))  # bkp of train procedure

BN_INIT_DECAY = 0.5
BN_DECAY_DECAY_RATE = 0.5
BN_DECAY_DECAY_STEP = float(DECAY_STEP)
BN_DECAY_CLIP = 0.99

LEARNING_RATE_CLIP = 1e-5
HOSTNAME = socket.gethostname()

TRAIN_FILES = provider.getDataFiles(os.path.join(H5_DIR, 'train_files_wztop.txt'))
TEST_FILES = provider.getDataFiles(os.path.join(H5_DIR, 'test_files_wztop.txt'))

Some helper functions (commented in log_string because FOUT doesn't work for some reason)

def log_string(out_str):
    #LOG_FOUT.write(out_str+'\n')
    #LOG_FOUT.flush()
    print(out_str)

def get_learning_rate(batch):
    learning_rate = tf.train.exponential_decay(
                        BASE_LEARNING_RATE,  # Base learning rate.
                        batch * BATCH_SIZE,  # Current index into the dataset.
                        DECAY_STEP,          # Decay step.
                        DECAY_RATE,          # Decay rate.
                        staircase=True)
    learning_rate = tf.maximum(learning_rate, LEARNING_RATE_CLIP) # CLIP THE LEARNING RATE!
    return learning_rate        


def get_bn_decay(batch):
    bn_momentum = tf.train.exponential_decay(
                      BN_INIT_DECAY,
                      batch*BATCH_SIZE,
                      BN_DECAY_DECAY_STEP,
                      BN_DECAY_DECAY_RATE,
                      staircase=True)
    bn_decay = tf.minimum(BN_DECAY_CLIP, 1 - bn_momentum)
    return bn_decay

Main training function (nothing changed)

def train():
    with tf.Graph().as_default():
        with tf.device('/gpu:'+str(GPU_INDEX)):
            pointclouds_pl,  labels_pl = MODEL.placeholder_inputs(BATCH_SIZE, NUM_POINT,NUM_FEAT) 

            is_training_pl = tf.placeholder(tf.bool, shape=())

            # Note the global_step=batch parameter to minimize. 
            # That tells the optimizer to helpfully increment the 'batch' parameter for you every time it trains.
            batch = tf.Variable(0)
            alpha = tf.placeholder(dtype=tf.float32, shape=())
            bn_decay = get_bn_decay(batch)
            tf.summary.scalar('bn_decay', bn_decay)
            print("--- Get model and loss")

            pred , max_pool = MODEL.get_model(pointclouds_pl, is_training=is_training_pl,
                                              bn_decay=bn_decay,
                                              num_class=NUM_CLASSES, weight_decay=FLAGS.wd,
            )
                                                                                        

            class_loss = MODEL.get_focal_loss(pred, labels_pl,NUM_CLASSES)
            mu = tf.Variable(tf.zeros(shape=(FLAGS.n_clusters,FLAGS.max_dim)),name="mu",trainable=True) #k centroids
            kmeans_loss, stack_dist= MODEL.get_loss_kmeans(max_pool,mu,  FLAGS.max_dim,
                                                            FLAGS.n_clusters,alpha)
            
            full_loss = 10*kmeans_loss + class_loss


            
            print("--- Get training operator")
            # Get training operator
            learning_rate = get_learning_rate(batch)
            tf.summary.scalar('learning_rate', learning_rate)
            if OPTIMIZER == 'momentum':
                optimizer = tf.train.MomentumOptimizer(learning_rate, momentum=MOMENTUM)
            elif OPTIMIZER == 'adam':
                optimizer = tf.train.AdamOptimizer(learning_rate)

            
            train_op_full = optimizer.minimize(full_loss, global_step=batch)
            train_op = optimizer.minimize(class_loss, global_step=batch)
            
            # Add ops to save and restore all the variables.
            saver = tf.train.Saver()
        
        # Create a session
        config = tf.ConfigProto()
        config.gpu_options.allow_growth = True
        config.allow_soft_placement = True
        config.log_device_placement = False
        sess = tf.Session(config=config)

        sess.run(tf.global_variables_initializer())

        
        
        # Add summary writers
        merged = tf.summary.merge_all()
        train_writer = tf.summary.FileWriter(os.path.join(LOG_DIR, 'train'), sess.graph)
        test_writer = tf.summary.FileWriter(os.path.join(LOG_DIR, 'test'), sess.graph)

        # Init variables
        print("Total number of weights for the model: ",np.sum([np.prod(v.get_shape().as_list()) for v in tf.trainable_variables()]))
        ops = {'pointclouds_pl': pointclouds_pl,
               'labels_pl':labels_pl,
               'is_training_pl': is_training_pl,
               'max_pool':max_pool,
               'pred': pred,
               'alpha': alpha,
               'mu': mu,
               'stack_dist':stack_dist,
               'class_loss': class_loss,
               'kmeans_loss': kmeans_loss,
               'train_op': train_op,
               'train_op_full': train_op_full,
               'merged': merged,
               'step': batch,
               'learning_rate':learning_rate
        }




        for epoch in range(MAX_EPOCH):
            log_string('**** EPOCH %03d ****' % (epoch))
            sys.stdout.flush()
            
            is_full_training = epoch > MAX_PRETRAIN
            max_pool = train_one_epoch(sess, ops, train_writer,is_full_training)
            if epoch == MAX_PRETRAIN:
                centers  = KMeans(n_clusters=FLAGS.n_clusters).fit(np.squeeze(max_pool))
                centers = centers.cluster_centers_
                sess.run(tf.assign(mu,centers))
                
            
            eval_one_epoch(sess, ops, test_writer,is_full_training)
            if is_full_training:
                save_path = saver.save(sess, os.path.join(LOG_DIR, 'cluster.ckpt'))
            else:
                save_path = saver.save(sess, os.path.join(LOG_DIR, 'model.ckpt'))


            log_string("Model saved in file: %s" % save_path)

Helper functions needed for training (nothing changed)

def get_batch(data,label,  start_idx, end_idx):
    batch_label = label[start_idx:end_idx]
    batch_data = data[start_idx:end_idx,:,:]
    return batch_data, batch_label

def cluster_acc(y_true, y_pred):
    """
    Calculate clustering accuracy. Require scikit-learn installed
    """
    y_true = y_true.astype(np.int64)
    D = max(y_pred.max(), y_true.max()) + 1
    w = np.zeros((D, D), dtype=np.int64)
    for i in range(y_pred.size):
        w[y_pred[i], y_true[i]] += 1
    ind = linear_sum_assignment(w.max() - w)
    ind = np.asarray(ind)
    ind = np.transpose(ind)
    return sum([w[i, j] for i, j in ind]) * 1.0 / y_pred.size
        

Train one epoch (nothing changed)

  def train_one_epoch(sess, ops, train_writer,is_full_training):
    """ ops: dict mapping from string to tf ops """
    is_training = True
    
    
    train_idxs = np.arange(0, len(TRAIN_FILES))
    
    acc =  loss_sum = 0
    y_pool = []
    for fn in range(len(TRAIN_FILES)):
        #log_string('----' + str(fn) + '-----')
        current_file = os.path.join(H5_DIR,TRAIN_FILES[train_idxs[fn]])
        current_data, current_label, current_cluster = provider.load_h5_data_label_seg(current_file)
        
        current_label = np.squeeze(current_label)
        
        file_size = current_data.shape[0]
        num_batches = file_size // BATCH_SIZE
        #num_batches = 5
        log_string(str(datetime.now()))        

        
        for batch_idx in range(num_batches):
            start_idx = batch_idx * BATCH_SIZE
            end_idx = (batch_idx+1) * BATCH_SIZE
            batch_data, batch_label = get_batch(current_data, current_label,start_idx, end_idx)
            cur_batch_size = end_idx-start_idx
                

            #print(batch_weight) 
            feed_dict = {ops['pointclouds_pl']: batch_data,
                         ops['labels_pl']: batch_label,
                         ops['is_training_pl']: is_training,
                         ops['alpha']: 2*(EPOCH_CNT-MAX_PRETRAIN+1),
                         
                        
            }
            if is_full_training:
                summary, step, _, loss_val,dist,lr = sess.run([ops['merged'], ops['step'],
                                                            ops['train_op_full'], ops['kmeans_loss'],
                                                            ops['stack_dist'],ops['learning_rate']
                                                           ], 
                                                              feed_dict=feed_dict)

            
                batch_cluster = np.array([np.where(r==1)[0][0] for r in current_cluster[start_idx:end_idx]])
                cluster_assign = np.zeros((cur_batch_size), dtype=int)


                for i in range(cur_batch_size):
                    index_closest_cluster = np.argmin(dist[:, i])
                    cluster_assign[i] = index_closest_cluster

                acc+=cluster_acc(batch_cluster,cluster_assign)
            else:
                summary, step, _, loss_val,max_pool,lr = sess.run([ops['merged'], ops['step'],
                                                                   ops['train_op'], ops['class_loss'],
                                                                   ops['max_pool'],ops['learning_rate']],
                                                               
                                                               feed_dict=feed_dict)
                
                
                
                if len(y_pool)==0:
                    y_pool=np.squeeze(max_pool)                
                else:
                    y_pool=np.concatenate((y_pool,np.squeeze(max_pool)),axis=0)
                
            loss_sum += np.mean(loss_val)

            train_writer.add_summary(summary, step)
    log_string('learning rate: %f' % (lr))
    log_string('train mean loss: %f' % (loss_sum / float(num_batches)))
    log_string('train clustering accuracy: %f' % (acc/ float(num_batches)))
    return y_pool

Evaluate one epoch (nothing changed)

def eval_one_epoch(sess, ops, test_writer,is_full_training):
    """ ops: dict mapping from string to tf ops """
    global EPOCH_CNT
    is_training = False
    test_idxs = np.arange(0, len(TEST_FILES))
    # Test on all data: last batch might be smaller than BATCH_SIZE
    loss_sum = acc =0
    acc_kmeans = 0


    for fn in range(len(TEST_FILES)):
        #log_string('----' + str(fn) + '-----')
        current_file = os.path.join(H5_DIR,TEST_FILES[test_idxs[fn]])
        current_data, current_label, current_cluster = provider.load_h5_data_label_seg(current_file)
        current_label = np.squeeze(current_label)

            
            
        file_size = current_data.shape[0]
        num_batches = file_size // BATCH_SIZE
        #num_batches = 5
        for batch_idx in range(num_batches):
            start_idx = batch_idx * BATCH_SIZE
            end_idx = (batch_idx+1) * BATCH_SIZE
            batch_data, batch_label = get_batch(current_data, current_label,start_idx, end_idx)
            cur_batch_size = end_idx-start_idx
            
            feed_dict = {ops['pointclouds_pl']: batch_data,
                         ops['is_training_pl']: is_training,
                         ops['labels_pl']: batch_label,
                         ops['alpha']: 2*(EPOCH_CNT-MAX_PRETRAIN+1),

            }

            if is_full_training:
                summary, step, loss_val, max_pool,dist,mu= sess.run([ops['merged'], ops['step'],
                                                                     ops['kmeans_loss'],
                                                                     ops['max_pool'],ops['stack_dist'],
                                                                     ops['mu']
                                                                 ],
                                                                    feed_dict=feed_dict)
                if batch_idx==0:
                    log_string("mu: {}".format(mu))     
                batch_cluster = np.array([np.where(r==1)[0][0] for r in current_cluster[start_idx:end_idx]])
                cluster_assign = np.zeros((cur_batch_size), dtype=int)
                for i in range(cur_batch_size):
                    index_closest_cluster = np.argmin(dist[:, i])
                    cluster_assign[i] = index_closest_cluster

                acc+=cluster_acc(batch_cluster,cluster_assign)
                

            else:
                summary, step, loss_val= sess.run([ops['merged'], ops['step'],
                                                   ops['class_loss']
                                               ],
                                                  feed_dict=feed_dict)


            test_writer.add_summary(summary, step)
            


            loss_sum += np.mean(loss_val)
        
    total_loss = loss_sum*1.0 / float(num_batches)
    log_string('test mean loss: %f' % (total_loss))
    log_string('testing clustering accuracy: %f' % (acc / float(num_batches)))

    EPOCH_CNT += 1

Running the training (no file written)

# if __name__ == "__main__":
# #    log_string('pid: %s'%(str(os.getpid())))
#     train()
# #    LOG_FOUT.close()

ScaDaMaLe Course site and book

Motif Finding

Finding motifs in graphs is no just fun, it also has applications! Here we study the possibility to use GraphFrames as a tool to be used in practice.

Math tells us that motifs has important implications on the general structure of the graphs. For example, two DAG models are the same if they have the same of two motifs, v-structures and skeletons.

Motif finding in graphframes uses a domain specific language (DSL). Here we mention the restrictions of that language and why another might be desirable. One problem is that more complicated queries are (seemingly) not supported. Our man probem however will be the way we count the motifs. GraphFrames uses motif finding algorithms and returns a list of all found subgraphs. Thus we will quickly run out of memory. More specialized software can preform this counting, but uses highly specialized tools not suitable for general motif finding.

Link to intro video: https://www.youtube.com/watch?v=GFG5MGKxJTs

Project members: - Adam Lindhe - Petter Restadh - Francesca Tombari

First we load the packages we need.

import org.apache.spark.sql._
import org.apache.spark.sql.functions._

import org.graphframes._
import org.apache.spark.sql._
import org.apache.spark.sql.functions._
import org.graphframes._

Special Graphs

Here we code some usual motifs that are common within graph theory.

/*
** A function counting the number of multiple edges.
*/
def count_mult_edges(input_graph: GraphFrame) = {
  input_graph.find("(a)-[e1]->(b); (a)-[e2]->(b)").filter("e1 != e2").count
}
count_mult_edges: (input_graph: org.graphframes.GraphFrame)Long
/*
** A function counting the number of 3-cycles.
*/
def count_3_cycle(input_graph: GraphFrame): Long = {
  input_graph.find("(a)-[]->(b); (b)-[]->(c); (c)-[]->(a)").count
}
count_3_cycle: (input_graph: org.graphframes.GraphFrame)Long
/*
** A function counting the number of loop edges.
*/
def count_loop(input_graph: GraphFrame) = {
  input_graph.find("(a)-[]->(a)").count
}
count_loop: (input_graph: org.graphframes.GraphFrame)Long
/*
** A function counting the number of bidirected edges.
*/
def count_bidir_edges(input_graph: GraphFrame) = {
  input_graph.find("(a)-[]->(b); (b)-[]->(a)").filter("a.id != b.id").count
}
count_bidir_edges: (input_graph: org.graphframes.GraphFrame)Long

Complete graphs

We code the motifs of the simplest complete graphs, we include an edge i->j if i comes before j alphabetically. That is, we code for the edges a->b and a->c but not for c->b. As we will see later the graphs of interest does not contain any loops, thus we do not have to filter the result ensuring that all nodes are distinct.

For simplicial abstract complexes these graphs correspond to the faces. Thus counting them corresponds to finding entries in the f-vector.

/*
** Two functions counting the number of 2- and 4-dimensional faces of a
** simplicial graphical simplex. It is assumed the the input_graph does
** not contain any loops.
*/

def count_K2(input_graph: GraphFrame): Long = { // Should be the same as the number of edges.
  input_graph.find("(a)-[]->(b)").count
}

def count_K3(input_graph: GraphFrame): Long = {
  input_graph.find("(a)-[]->(b); (a)-[]->(c); (b)-[]->(c)").count
}

def count_K4(input_graph: GraphFrame): Long = {
  input_graph.find("(a)-[]->(b); (a)-[]->(c); (a)-[]->(d); (b)-[]->(c); (b)-[]->(d); (c)-[]->(d)").count
}
count_K2: (input_graph: org.graphframes.GraphFrame)Long
count_K3: (input_graph: org.graphframes.GraphFrame)Long
count_K4: (input_graph: org.graphframes.GraphFrame)Long

Application

Here we will see an example where we have done motif fining in a rats brain-network. Here we will also see the restrictions of what we can do without more specialized code.

Read the edges.

/*
** The file edges.csv contains lines on the form "1,5,edge" indicating
** we have an edge from vertex 1 to vertex 5. As we do not care about the
** third entry (i just says "edge") we choose just the two first entries.
*/

val edges = spark.read.format("csv").option("sep",",").load("/FileStore/shared_uploads/petterre@kth.se/edges.csv").withColumnRenamed("_c0", "src").withColumnRenamed("_c1", "dst").select("src", "dst")

edges.count
edges: org.apache.spark.sql.DataFrame = [src: string, dst: string]
res0: Long = 7822274

Get the vertices from the edges.

/*
** For simplicity we read all the nodes from the column "scr". Notice
** that we use the fact that every node is the source of at least one
** edge. Thus we can get the vertices like this.
*/

val vertices = edges.select("src").groupBy("src").count().select("src").sort(desc("src")).withColumnRenamed("src", "id")

vertices.count
vertices: org.apache.spark.sql.DataFrame = [id: string]
res2: Long = 31346

Since every node is the source of another, we are good to go.

/*
** Now we can create out graph of interest.
*/

val rat_brain_graph = GraphFrame(vertices, edges)
rat_brain_graph: org.graphframes.GraphFrame = GraphFrame(v:[id: string], e:[src: string, dst: string])

Graph specifics

As we can see above we have 31,346 vertices and 7,822,274 edges. The adjacancy matrix would be very sparse with only 0.7% of it's entries being 1. Thus it is generally better to store this as a list of edges (as graphframes does) as opposed to an adjacancy matrix. Despite the matrix being sparse, this is a rather dense graph with the average degree of each node being just above 499.

Here we will look closer at some specifics of this graph. Some of these are very important for designing better algorithms.

/*
** As mentioned before, we do not want loops in this graph. Thus we
** call our above function and check whether we have any.
*/
count_loop(rat_brain_graph) // 0
res4: Long = 0
/*
** A very relevant question is if this graph is connected. If it is not
** it would be more efficient to just look at the induvidual components.
** That is not the case.
*/

spark.sparkContext.setCheckpointDir("/FileStore/shared_uploads/petterre@kth.se/")

val rat_brain_graph_connected_components = rat_brain_graph.connectedComponents.run()
rat_brain_graph_connected_components.select("component").describe().show()
+-------+---------+
|summary|component|
+-------+---------+
|  count|    31346|
|   mean|      0.0|
| stddev|      0.0|
|    min|        0|
|    max|        0|
+-------+---------+

rat_brain_graph_connected_components: org.apache.spark.sql.DataFrame = [id: string, component: bigint]
/*
** Let us continue to look at some stastistics for this graph. We can
** count the number of 3-cycles.
*/

count_3_cycle(rat_brain_graph) //25 630 728
res7: Long = 25630728
/*
** Let us continue to look at some stastistics for this graph. We can
** count the number of multiple edges.
*/

count_mult_edges(rat_brain_graph) // 0
res8: Long = 0
/*
** Let us continue to look at some stastistics for this graph. We can
** count the number of bidirected edges.
*/

count_bidir_edges(rat_brain_graph) //165 220
res9: Long = 165220

Count complete graphs

Now we will (try to) run the motif finding algorithms and see how they preform.

/*
** First we look after K2. As that is the graph a->b, we expect this to
** be equal to the number of edges, otherwise something is wrong.
*/
count_K2(rat_brain_graph) //7 822 274
res11: Long = 7822274
/*
** Now we find K3. As we will see, this takes a lot of time, longer than
** we want it to. This is because 'find' does a general search algorithm.
** See below for a discussion.
*/

count_K3(rat_brain_graph) //35 976 731
res12: Long = 35976731
//count_K4(rat_brain_graph)

Troubles and fixes

As we saw above finding K3 takes a lot of time, and when running "countK4(ratbraingraph)" we run out of memory. This is because we do not use any of the structure of the graphs. Finding graphical simplicies can be made a lot quicker since we can use the structure of the graph \(K_n\) and the structure of the "ratbrain_graph".

How this can be done quicker can be read in "Computing persistent homology of directed flag complexes" by Daniel Luetgehetmann, Dejan Govc, Jason Smith, and Ran Levi (https://arxiv.org/abs/1906.10458).

This is a direct implementation.
/*
** A implementation of counting cells. It is not parallelized but could be
** if we start collecting the results in a better way.
*/

def count_cells(old_child_set: DataFrame, f_vector: List[Int], edges: DataFrame, cut_of: Int, dim: Int): List[Int] = {
  // Make a new f-vector that is mutable
  var f_vector_new = f_vector;
  // For each new node
  for (vert <- old_child_set.collect()){
    // Update the f-vector
    f_vector_new = f_vector_new.updated(dim, f_vector_new(dim) +1);
    // If we have not reached our cut off limit
    if (cut_of > dim){
      // Find the children of "vert" and find the intersection.
      // val child_set = old_child_set.intersect(edges.filter(edges("src") === vert(0)).select("dst"));
      // Call this function recursively
      f_vector_new = count_cells(old_child_set.intersect(edges.filter(edges("src") === vert(0)).select("dst")), f_vector_new, edges, cut_of, dim+1);
    }
  }
  // Return the f-vector
  f_vector_new
}
count_cells: (old_child_set: org.apache.spark.sql.DataFrame, f_vector: List[Int], edges: org.apache.spark.sql.DataFrame, cut_of: Int, dim: Int)List[Int]
This is a parallelized version. Notice that the parallelization is very naive and it starts to many threads.
/*
** Helper function to count_cells_par. Does a component-wise addition.
** Badly written.
*/

def component_addition(a: List[Int], b:List[Int]): List[Int] = {
  // Do it the dumb way
  List(a(0)+b(0),a(1)+b(1),a(2)+b(2),a(3)+b(3),a(4)+b(4),a(5)+b(5),a(6)+b(6),a(7)+b(7),a(8)+b(8),a(9)+b(9))
}
component_addition: (a: List[Int], b: List[Int])List[Int]
/*
** A parallel (?) implementation of counting cells.
*/

def count_cells_par(old_child_set: DataFrame, edges: DataFrame, cut_of: Int, dim: Int): List[Int] = {
  if ((cut_of > dim) && (old_child_set.count > 0)){
    return old_child_set.collect().par.map(vert => count_cells_par(old_child_set.intersect(edges.filter(edges("src") === vert(0)).select("dst")), edges, cut_of, dim+1)/* vert_to_f-vector*/).reduce(component_addition(_,_)).updated(dim, 1)
  }
  else{
    return List(0,0,0,0,0,0,0,0,0,0).updated(dim, 1);
  }
}
count_cells_par: (old_child_set: org.apache.spark.sql.DataFrame, edges: org.apache.spark.sql.DataFrame, cut_of: Int, dim: Int)List[Int]

Here we implement a version with hopefully better parallelization. It does just one step of parallelization, as oppose to starting to many threads.

/*
** A parallel (?) implementation of counting cells.
*/

def count_cells_opt(old_child_set: DataFrame, edges: DataFrame, cut_of: Int, dim: Int): List[Int] = {
  if ((cut_of > dim) && (old_child_set.count > 0)){
    return old_child_set.collect().par.map(vert => count_cells_opt_helper(old_child_set.intersect(edges.filter(edges("src") === vert(0)).select("dst")), edges, cut_of, dim+1)/* vert_to_f-vector*/).reduce(component_addition(_,_)).updated(dim, 1)
  }
  else{
    return List(0,0,0,0,0,0,0,0,0,0).updated(dim, 1);
  }
}

def count_cells_opt_helper(old_child_set: DataFrame, edges: DataFrame, cut_of: Int, dim: Int): List[Int] = {
  if ((cut_of > dim) && (old_child_set.count > 0)){
    // The next line should not parallelize the process.
    return old_child_set.collect().map(vert => count_cells_par(old_child_set.intersect(edges.filter(edges("src") === vert(0)).select("dst")), edges, cut_of, dim+1)/* vert_to_f-vector*/).reduce(component_addition(_,_)).updated(dim, 1)
  }
  else{
    return List(0,0,0,0,0,0,0,0,0,0).updated(dim, 1);
  }
}
count_cells_opt: (old_child_set: org.apache.spark.sql.DataFrame, edges: org.apache.spark.sql.DataFrame, cut_of: Int, dim: Int)List[Int]
count_cells_opt_helper: (old_child_set: org.apache.spark.sql.DataFrame, edges: org.apache.spark.sql.DataFrame, cut_of: Int, dim: Int)List[Int]

GraphFrame calling

Here we have funcions so that we can call the count_cellst directly on a GraphFrame.

/*
** Makes it easier to call "count_cells" on a GraphFrame object. Notice
** that we can get wrong results if the input graph has loops. We recommend
** running "count_loops" to see if that is the case.
*/

def f_vector_of_graphframe(graph: GraphFrame, cut_of: Int): List[Int] = {
  var f_vector = List(0,0,0,0,0,0,0,0,0,0);
  if (cut_of > 9){
    print("Too big cut_of")
    f_vector
  }
  count_cells(graph.vertices.select("id"), f_vector, graph.edges.select("src", "dst"), cut_of, 0);
}
f_vector_of_graphframe: (graph: org.graphframes.GraphFrame, cut_of: Int)List[Int]
/*
** Makes it easier to call "count_cells_par" on a GraphFrame object. Notice
** that we can get wrong results if the input graph has loops. We recommend
** running "count_loops" to see if that is the case.
*/

def f_vector_of_graphframe_par(graph: GraphFrame, cut_of: Int): List[Int] = {
  var temp_int = 0;
  if (cut_of > 9){
    print("Too big cut_of")
    temp_int = 9;
  }
  else{
    temp_int = cut_of;
  }
  count_cells_par(graph.vertices.select("id"), graph.edges.select("src", "dst"), temp_int, 0);
}
f_vector_of_graphframe_par: (graph: org.graphframes.GraphFrame, cut_of: Int)List[Int]
/*
** Makes it easier to call "count_cells_opt" on a GraphFrame object. Notice
** that we can get wrong results if the input graph has loops. We recommend
** running "count_loops" to see if that is the case.
*/

def f_vector_of_graphframe_opt(graph: GraphFrame, cut_of: Int): List[Int] = {
  var f_vector = List(0,0,0,0,0,0,0,0,0,0);
  if (cut_of > 9){
    print("Too big cut_of")
    f_vector
  }
  count_cells_opt(graph.vertices.select("id"), graph.edges.select("src", "dst"), cut_of, 0);
}
f_vector_of_graphframe_opt: (graph: org.graphframes.GraphFrame, cut_of: Int)List[Int]

Example

Let us take a small example that we can run in a fair time and show.

/*
** First we will define a small graph that is manageable by hand. This
** graph encodes for a simplicial complex with f-vector (6, 11, 7, 1).
*/
// Vertex DataFrame
val v = sqlContext.createDataFrame(List(
  ("a", 1),
  ("b", 2),
  ("c", 3),
  ("d", 4),
  ("e", 5),
  ("f", 6)
)).toDF("id", "no")

// Edge DataFrame
val e = sqlContext.createDataFrame(List(
  ("a", "b"),
  ("a", "c"),
  ("b", "c"),
  ("b", "d"),
  ("d", "c"),
  ("b", "e"),
  ("c", "e"),
  ("d", "e"),
  ("a", "f"),
  ("c", "a"),
  ("c", "f")
)).toDF("src", "dst")

val g = GraphFrame(v, e);
v: org.apache.spark.sql.DataFrame = [id: string, no: int]
e: org.apache.spark.sql.DataFrame = [src: string, dst: string]
g: org.graphframes.GraphFrame = GraphFrame(v:[id: string, no: int], e:[src: string, dst: string])
f_vector_of_graphframe(g, 5)
res18: List[Int] = List(6, 11, 7, 1, 0, 0, 0, 0, 0, 0)
f_vector_of_graphframe_par(g, 5)
res19: List[Int] = List(1, 6, 11, 7, 1, 0, 0, 0, 0, 0)
f_vector_of_graphframe_opt(g, 5)
res20: List[Int] = List(1, 6, 11, 7, 1, 0, 0, 0, 0, 0)
println(g.vertices.count)
println(count_K2(g))
println(count_K3(g))
println(count_K4(g))
6
11
7
1
//f_vector_of_graphframe_opt(rat_brain_graph, cut_of = 2)

ScaDaMaLe Course site and book

Data Processing

Here we will load the data as it was given to us, as a ".npy" file, and rewrite it in a simpler format. Why we do this is motivated in "Coding_Motifs", subsection "application".

# Load packages

import numpy as np

Read the data as a numpy object (since we got it like that), and save it as a ".csv" since scala can read that.


M = np.load('/dbfs/FileStore/shared_uploads/adlindhe@kth.se/M.npy')
np.savetxt("/dbfs/FileStore/shared_uploads/adlindhe@kth.se/M.csv", M, delimiter=",")

Right now the data is an adjacency matrix of size 31346 times 31346 but only 0.7% of all entries are 1. Thus we would like to save it down as something a little easier to handle. We can read the adjacency matrix directly as a dataframe, but that does not work well with graphframes. Instead we want it as an edgelist.

/*
** Example on how we can read the data.
*/
val Ms = spark.read.format("csv").option("sep",",").option("MaxColumns",40000).load("/FileStore/shared_uploads/adlindhe@kth.se/M.csv")

Thus we rewrite it as a edgelist. Thus we can more easily load it into graphframes.

# Loop over the whole matrix. This takes time (~ 1h).

edges_file = open("/dbfs/FileStore/shared_uploads/petterre@kth.se/edges.csv", "w")

for i in range(len(M)):
  for j in range(len(M[i])):
    for k in range(M[i][j]):
      edges_file.write(str(i) + "," + str(j) + ",edge\n")

edges_file.close()

Look at it to see if it looks ok.

head /dbfs/FileStore/shared_uploads/petterre@kth.se/edges.csv
Ms.cache // cache the DataFrame this time
Ms.count // now after this action, the next count will be fast...
display(Ms)

ScaDaMaLe Course site and book

Intro

In this notebook we create a code-writing program. Coding a specific motif generally makes for very long strings, the length grows as \(n^2\). Thus coding them directly is very inefficient. We solved this problem via a simple program. Here we can simply feed the adjacancy matrix of the motif we want to find, and it gives us the scala code.

import numpy as np

In this funtion we input the adjacancy matrix of the motif we want to find. Then it produces the text of a scala command. Than command can then be copy-pasted into another notebook.

Here we simply go through the adjacancy matrix and fix the string thereafter. In this function the motif we want to find is induced by the graph. Thus each edge is either wanted or forbidden.

loops - Do we care about loops or not.

def matrix_to_string(input_matrix, input_function_name, loops = True):
  ret_string = "def " + input_function_name + "(input_graph: GraphFrame) = {\n\tval string_" +input_function_name+ " = \""
  filter_string = ""
  pos_edges = ""
  neg_edges = ""
  alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
  
  for i in range(len(input_matrix)):
    for j in range(len(input_matrix[i])):
      if i == j:
        if loops and input_matrix[i][j] != 0:
          pos_edges += "(" + alphabet[i] + ")-[]->(" + alphabet[j] + "); "
        elif loops:
          neg_edges += "!(" + alphabet[i] + ")-[]->(" + alphabet[j] + "); "
      elif input_matrix[i][j] != 0:
        pos_edges += "(" + alphabet[i] + ")-[]->(" + alphabet[j] + "); "
      else:
        neg_edges += "!(" + alphabet[i] + ")-[]->(" + alphabet[j] + "); "
      if i > j:
        filter_string += ".filter(\"" + alphabet[j] + ".id != " + alphabet[i] + ".id\")"
  ret_string += pos_edges + neg_edges
  ret_string = ret_string[0:-2]
  ret_string += "\"\n\tinput_graph.find(g_1)"
  ret_string += filter_string
  ret_string += ".count\n}\n"
  return ret_string
  
  
  

In this funtion we input the signed adjacancy matrix of the motif we want to find. Then it produces the text of a scala command. Than command can then be copy-pasted into another notebook.

Here we simply go through the adjacancy matrix and fix the string thereafter. In this function each edge can either be demanded, forbidden, or allowed. The three states are represented by 1, -1, and all other values.

loops - Do we care about loops or not.

def matrix_to_string_signed(input_matrix, input_function_name):
  ret_string = "def " + input_function_name + "(input_graph: GraphFrame) = {\n\tval string_" +input_function_name+ " = \""
  filter_string = ""
  pos_edges = ""
  neg_edges = ""
  alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
  
  for i in range(len(input_matrix)):
    for j in range(len(input_matrix[i])):
      if input_matrix[i][j] == 1:
        pos_edges += "(" + alphabet[i] + ")-[]->(" + alphabet[j] + "); "
      elif input_matrix[i][j] == -1:
        neg_edges += "!(" + alphabet[i] + ")-[]->(" + alphabet[j] + "); "
      if i > j:
        filter_string += ".filter(\"" + alphabet[j] + ".id != " + alphabet[i] + ".id\")"
  ret_string += pos_edges + neg_edges
  ret_string = ret_string[0:-2]
  ret_string += "\"\n\tinput_graph.find(g_1)"
  ret_string += filter_string
  ret_string += ".count\n}\n"
  return ret_string

Examples

Here is a quick example where we have coded for a "claw". Another name for the claw is a star of size 3, meaning it has 4 vertices.

print(matrix_to_string([[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,0]], "count_claw", loops = False))
def count_claw(input_graph: GraphFrame) = {
	val g_1 = "(a)-[]->(d); (b)-[]->(d); (c)-[]->(d); !(a)-[]->(b); !(a)-[]->(c); !(b)-[]->(a); !(b)-[]->(c); !(c)-[]->(a); !(c)-[]->(b); !(d)-[]->(a); !(d)-[]->(b); !(d)-[]->(c)"
	input_graph.find(g_1).filter("a.id != b.id").filter("a.id != c.id").filter("b.id != c.id").filter("a.id != d.id").filter("b.id != d.id").filter("c.id != d.id").count
}

Here we cave coded for a v-structure.

print(matrix_to_string([[0,0,1],[0,0,1],[0,0,0]], "count_v_struc", loops = False))
def count_v_struc(input_graph: GraphFrame) = {
	val g_1 = "(a)-[]->(c); (b)-[]->(c); !(a)-[]->(b); !(b)-[]->(a); !(c)-[]->(a); !(c)-[]->(b)"
	input_graph.find(g_1).filter("a.id != b.id").filter("a.id != c.id").filter("b.id != c.id").count
}

Counting how many loops

print(matrix_to_string([[1]], "count_loop"))
def count_loop(input_graph: GraphFrame) = {
	val g_1 = "(a)-[]->(a)"
	input_graph.find(g_1).count
}

A very important thing we want to look at is complete graphs.

As these can grow big, we write a function to generate them.

def adj_matrix_complete_graph(size):
  adj_matrix = np.zeros((size,size))
  for i in range(len(adj_matrix)):
    for j in range(i+1, len(adj_matrix[i])):
      adj_matrix[i][j] = 1
  return adj_matrix
  

Now we can generate the code of interest.

for i in range(3,7+1):
  print(matrix_to_string_signed(adj_matrix_complete_graph(i), "count_K"+str(i)))
def count_K3(input_graph: GraphFrame) = {
	val g_1 = "(a)-[]->(b); (a)-[]->(c); (b)-[]->(c)"
	input_graph.find(g_1).filter("a.id != b.id").filter("a.id != c.id").filter("b.id != c.id").count
}

def count_K4(input_graph: GraphFrame) = {
	val g_1 = "(a)-[]->(b); (a)-[]->(c); (a)-[]->(d); (b)-[]->(c); (b)-[]->(d); (c)-[]->(d)"
	input_graph.find(g_1).filter("a.id != b.id").filter("a.id != c.id").filter("b.id != c.id").filter("a.id != d.id").filter("b.id != d.id").filter("c.id != d.id").count
}

def count_K5(input_graph: GraphFrame) = {
	val g_1 = "(a)-[]->(b); (a)-[]->(c); (a)-[]->(d); (a)-[]->(e); (b)-[]->(c); (b)-[]->(d); (b)-[]->(e); (c)-[]->(d); (c)-[]->(e); (d)-[]->(e)"
	input_graph.find(g_1).filter("a.id != b.id").filter("a.id != c.id").filter("b.id != c.id").filter("a.id != d.id").filter("b.id != d.id").filter("c.id != d.id").filter("a.id != e.id").filter("b.id != e.id").filter("c.id != e.id").filter("d.id != e.id").count
}

def count_K6(input_graph: GraphFrame) = {
	val g_1 = "(a)-[]->(b); (a)-[]->(c); (a)-[]->(d); (a)-[]->(e); (a)-[]->(f); (b)-[]->(c); (b)-[]->(d); (b)-[]->(e); (b)-[]->(f); (c)-[]->(d); (c)-[]->(e); (c)-[]->(f); (d)-[]->(e); (d)-[]->(f); (e)-[]->(f)"
	input_graph.find(g_1).filter("a.id != b.id").filter("a.id != c.id").filter("b.id != c.id").filter("a.id != d.id").filter("b.id != d.id").filter("c.id != d.id").filter("a.id != e.id").filter("b.id != e.id").filter("c.id != e.id").filter("d.id != e.id").filter("a.id != f.id").filter("b.id != f.id").filter("c.id != f.id").filter("d.id != f.id").filter("e.id != f.id").count
}

def count_K7(input_graph: GraphFrame) = {
	val g_1 = "(a)-[]->(b); (a)-[]->(c); (a)-[]->(d); (a)-[]->(e); (a)-[]->(f); (a)-[]->(g); (b)-[]->(c); (b)-[]->(d); (b)-[]->(e); (b)-[]->(f); (b)-[]->(g); (c)-[]->(d); (c)-[]->(e); (c)-[]->(f); (c)-[]->(g); (d)-[]->(e); (d)-[]->(f); (d)-[]->(g); (e)-[]->(f); (e)-[]->(g); (f)-[]->(g)"
	input_graph.find(g_1).filter("a.id != b.id").filter("a.id != c.id").filter("b.id != c.id").filter("a.id != d.id").filter("b.id != d.id").filter("c.id != d.id").filter("a.id != e.id").filter("b.id != e.id").filter("c.id != e.id").filter("d.id != e.id").filter("a.id != f.id").filter("b.id != f.id").filter("c.id != f.id").filter("d.id != f.id").filter("e.id != f.id").filter("a.id != g.id").filter("b.id != g.id").filter("c.id != g.id").filter("d.id != g.id").filter("e.id != g.id").filter("f.id != g.id").count
}

ScaDaMaLe Course site and book

Distributed ensembles

Amanda Olmin, Amirhossein Ahmadian and Jakob Lindqvist

Video presentation

Python version: python 3.7

Library dependencies - PySpark - PyTorch - toolz - matplotlib

Introduction

In this project, we create a distributed ensemble of neural networks that we can train and make predictions with in a distributed fashion, and we also apply this model to the out-of-distribution detection problem [2] (detecting inputs that are highly dissimilar from the training data).

Why ensembles?

Ensembles of neural networks - often have better predictive performance than single ensemble members [1] - have shown to provide reliable uncertainty estimates

The latter quality is beneficial in itself but is especially useful when it comes to tasks such as out-of-distribution detection, where a model’s uncertainty estimates can be used to determine if a sample is in-distribution or not. We demonstrate this in the experiments below.

Distributed ensembles

In Spark, it is common to distribute data over several worker nodes. In this way, the same function is performed on several nodes on different parts of the data. The result from each node is then communicated and aggregated to a final function output. Similarily, we can train a neural network (a single ensemble member) in a distributed way by distributing the data that we use to train it. This can for example be done using the built-in MLP and MLPC classes in Pyspark [3]. However, this approach requires continuous communication between nodes to update model weights (possibly at every iteration) since every node keeps its own version of the model weights. The approach therefore scales badly as - the number of model parameters grow (more information to communicate between nodes) - when the complexity of the training algorithm increases, e.g. we wish to use a stochastic training algorithm

In this regard, the communication becomes a bottleneck. Asynchronous updating can reduce the amount of communication, but might also hurt model performance [4].

Considering that the ensemble members are independent models, they never need to communicate during the training phase. Hence, training ensemble members in a way that requires the otherwise independent training processes to integrate or synchronize, would cause unnecessary costs, for example since the training processes all need to communicate through the driver node. The same holds for prediction; no communication is needed between ensemble members except at the very end when the predictions are aggregated.

To avoid unnecessary communication, we distribute the ensemble members and train them on separate worker nodes such that we - are able to train several ensemble members in parallell (limited by the number of nodes in our cluster) and independently - avoid communication between worker nodes

To achieve this, we implement our own training processes below. In addition, we implement our own MLP class with the help of PyTorch. MLP objects and their training data are then distributed on worker nodes using Spark. This is not only to avoid distributing the training data over several nodes during training but also to package the ensemble members in a way that makes it possible for us to send them between the driver and the worker nodes prior to and at the end of training.

from random import randrange
import random
from pathlib import Path
# External libs added to cluster
from pyspark.mllib.random import RandomRDDs
from pyspark.ml.feature import StringIndexer, OneHotEncoder, StandardScaler, VectorAssembler
from pyspark.ml import Pipeline
from pyspark.rdd import PipelinedRDD
from toolz.itertoolz import partition_all
from toolz.itertoolz import cons
import numpy as np
import torch
import torch.nn as nn
import torch.optim as optim
from matplotlib import pyplot as plt

Data

We introduce the functions that we use to load the data for the experiments that we conduct. We split the available training data between ensemble members using sampling with or without replacement. The number of training data points that we can distribute to each ensemble member is only limited by the memory available to each worker node.

TOY DATA

We create a function for generating data consisting of Gaussian clusters. The function takes as input, user defined means and variances for each cluster in the data as well as the total number of observations and a vector of intended class proportions. It also comes with an option to split the final RDD into train and test sets.

We will use this data later on to demonstrate our distributed ensembles framework as well as to generate out-of-distribution data for OOD detection.

def create_gaussian_RDD(means, variances, num_observations, class_proportions, train_test_split=False):
  """Create toy Gaussian classification data
  Let C := number of clusters/classes and P := number of data features

  Args:
    means (np.array[float]): mean vector of shape (C, P)
    variances (np.array[float]): vector of variances, shape (C, P)
    num_observations (scalar[int]): the total number of observations in the final data set
    class_proportions (np.array[float]): vector of class proportions, length C
    train_test_split: whether to split the data into train/test sets or not

  Returns:
    Gaussian data, RDD of tuples (list(features), int(label))
  """

  assert means.shape[0] == variances.shape[0]
  assert means.shape[1] == variances.shape[1]
  assert class_proportions.sum() == 1

  num_classes = means.shape[0]
  num_features = means.shape[1]

  data_rdd = sc.emptyRDD()
  for k in range(num_classes):

    # Generate standard normal data
    class_size = int(num_observations * class_proportions[k])
    class_rdd = RandomRDDs.normalVectorRDD(sc, numRows=class_size, numCols=num_features, numPartitions=1) #, seed=123)

    # Map to true distribution
    class_rdd_transformed = class_rdd.map(lambda v: means[k, :] + (variances[k, :]**0.5) * v)

    # Add labels
    class_rdd_w_label = class_rdd_transformed.map(lambda v: (v, k))

    data_rdd = data_rdd.union(class_rdd_w_label)

  # We will shuffle and repartition the data
  num_partitions = 10
  shuffled_rdd =  data_rdd.sortBy(lambda v: randrange(num_observations)).repartition(num_partitions)
  final_rdd = shuffled_rdd.map(tuple).map(lambda v: (list(v[0]), int(v[1])))

  if train_test_split:
    train_rdd, test_rdd = final_rdd.randomSplit(weights=[0.8, 0.2], seed=12)
    final_rdd = (train_rdd, test_rdd)

  return final_rdd                                   

FIRE WALL DATA

We will also consider some real data. The dataset that we will use consits of traffic from a firewall tracking record. We have accessed it through the UCI Machine Learning repository [4]: https://archive.ics.uci.edu/ml/datasets/Internet+Firewall+Data.

  • Number of data points: 65,532.

  • Number of features: 11 (all numerical).

  • Number of classes: 4 (allow/deny/drop/reset both).

def load_firewall_data(train_test_split=False,file_location="/FileStore/shared_uploads/amanda.olmin@liu.se/fire_wall_data.csv"):
  """Load and preprocess firewall data
  Args:
     file_location: file location from which to load the data
     train_test_split: whether to split the data into train/test sets or not

  Returns:
     Firewall data, RDD of tuples (list(features), int(label))
  """

  # File location and type
  # file_location = "/FileStore/shared_uploads/amanda.olmin@liu.se/fire_wall_data.csv"
  file_type = "csv"

  # CSV options
  infer_schema = "true"
  first_row_is_header = "true"
  delimiter = ","

  # Load the data from file
  df = spark.read.format(file_type) \
      .option("inferSchema", infer_schema) \
      .option("header", first_row_is_header) \
      .option("sep", delimiter) \
      .load(file_location)

  # Preprocess data
  col_num = ["Source Port", "Destination Port", "NAT Source Port", "NAT Destination Port", "Bytes", "Bytes Sent", "Bytes Received", "Packets", "Elapsed Time (sec)", "pkts_sent", "pkts_received"]

  # Index qualitative variable
  indexer = StringIndexer(inputCol = "Action", outputCol = "label")

  # Scale numerical features
  va = VectorAssembler(inputCols = col_num, outputCol = "numerical_features")
  scaler = StandardScaler(inputCol = "numerical_features", outputCol = "features")

  # Apply pipeline
  pipeline = Pipeline(stages=[indexer, va, scaler])
  final_df = pipeline.fit(df).transform(df).select("features", "label")

  # Convert to RDD
  final_rdd = final_df.rdd.map(tuple).map(lambda v: (list(v[0]), int(v[1])))

  if train_test_split:
    train_rdd, test_rdd = final_rdd.randomSplit(weights=[0.8, 0.2], seed=12)
    final_rdd = (train_rdd, test_rdd)

  return final_rdd

** RDD partition **

Below, we provide a function that partitions an RDD. We will use it to distribute data between ensemble members.

def get_partitioned_rdd(input_rdd, partition_size=1000):
  """Partition RDD

  Args:
    input_rdd: RDD to be partitioned

  Returns:
    Partitioned RDD
  """

  return input_rdd.mapPartitions(lambda partition: partition_all(partition_size, partition))

PyTorch Model

To implement the ensemble members, we first write an ordinary feedforward (MLP) neural network class using PyTorch, which has a Softmax output and Tanh activation functions. The number of layers and neurons in each layer is passed as an argument to the constructor of this class. Moreover, any instance of this network class (parameters and structure) can be easily stored in and loaded from a state dictionary (state_dict) object.

#Feedforward network for classification
class MLP(nn.Module):

  def __init__(self,shape):
    #shape: number of neurons in each layer (including the input and output layers)
    super(MLP,self).__init__()

    self.units=nn.ModuleList()
    for i in range(len(shape)-1):
      self.units.append(nn.Linear(shape[i],shape[i+1]))

    self._shape=shape
    self._nlayers=len(shape)

  def forward(self,x):

    y=x

    for i,layer in enumerate(self.units):
      if i<self._nlayers-2:
        y=nn.functional.tanh(layer(y))
      else:
        y=nn.functional.softmax(layer(y),dim=1)

    return y

  #constructing an instance of this class based on a state dictionary (network parameters)
  @staticmethod
  def from_state_dict(state_dict):
    net_shape = MLP.shape_from_state_dict(state_dict)
    net=MLP(net_shape)
    net.load_state_dict(state_dict)
    return net

  @staticmethod
  def shape_from_state_dict(state_dict):
    """Infer MLP layer shapes from state_dict"""
    iter_ = iter(state_dict.items())
    _, input_size = next(iter_)
    bias_tensors = filter(lambda key_val: key_val[0].find("bias") != -1, iter_)
    shapes = map(lambda key_val: key_val[1].size(0), bias_tensors)
    return list(cons(input_size.size(1), shapes))

Functions for training and testing networks

Here we have some functions that are used to train/test each individual network in the ensemble. The Train function takes the initial weights of a network, trains it on a set of input-taraget data based on stochastic gradient optimization and cross-entropy loss, and returns the state dictionary of the trained network. PyTorch's backpropagation and optimization tools are used to implement this function as usual. The Predict function simply takes the state dictionary corresponding to a network as well as a data point (or batch of data), and returns the output (probabilities) of the network at that point.

We note that Spark can automatically distribute these functions on the nodes, and thus writing them for a distributed ensemble is not basically different from a local setup.

#utility class for pytorch data loader
class DataSet(torch.utils.data.Dataset):
  def __init__(self, x, y):
    self.x = x
    self.y = y

  def __len__(self):
    return self.x.shape[0]

  def __getitem__(self, ind):
    x = self.x[ind]
    y = self.y[ind]

    return x, y

#The main training function (is run on worker nodes)
def Train(net_params,x,y):
  #net_params: initial parameters of the feedforward network (state dictionary)
  #x,y: training data (pytorch tensors)

  n_epochs=100
  batchsize=10

  net=MLP.from_state_dict(net_params)

  train_data = DataSet(x, y)
  dataloader = torch.utils.data.DataLoader(train_data, batch_size=batchsize)

  opt=optim.Adam(net.parameters())
  loss=nn.CrossEntropyLoss()

  for i in range(n_epochs):
    for batch in dataloader:

      opt.zero_grad()

      xb,yb=batch

      yhat=net(xb)
      err=loss(yhat,yb)
      err.backward()

      opt.step()

  err=loss(net(x),y)
  lossval=float(err.detach().numpy())

  #returns parameters of the trained network and loss
  return (net.state_dict(),lossval)

#Get the output of a feedforward network given an input tensor
def Predict(net_params, x):
  #net_params: parameters (state dictionary) of the network
  #x: input (pytorch tensor)
  net = MLP.from_state_dict(net_params)
  net.eval()
  return net(x)

#Reshaping and converting the tuples stored in a dataset RDD into input and target tensors
def Totensor(d):
  #d: the dataset (list of tuples)

  x=[v[0] for v in d]
  y=[v[1] for v in d]
  x=torch.tensor(x,dtype=torch.float)
  y=torch.tensor(y,dtype=torch.long)

  return (x,y)

def make_prediction(state_dict, x):
  print(state_dict)
  return Predict(state_dict, x)

Creating an ensemble of networks, and training them in parallel

We now use the class and functions defined above to create an ensemble of feedforward neural networks, and train it in a distributed fashion, where each network is trained on a single worker independently from the other ones. Firstly, several networks are initialized using the MLP class with a random number of hidden layers and neurons, and random initial weights. Using randomness helps to increase the diversity in the ensemble (without which, the outputs of ensemble members could get correlated with each other).

As mentioned before, the training data is partioned into equal size parts, and each of the networks in the ensemble is assigned one part. Since the dataset is assumed to be an RDD (to let it be huge), an iterator object is needed which collects one part of the data RDD (transfers it from the cloud to the driver node) in each call. Note that we here implicitly assume that each part of the data (but not the whole dataset) fits into the memory of a single machine.

After constructing the network object and loading data for each member of the ensemble, the state dictionary of the network and its corresponding training data are packed into a tuple, and appended to a list. The list of state_dict/data tuples is then parallelized to obtain an Spark RDD. We found out that it is difficult to directly put the PyTorch neural network objects in an RDD, apparently becasue Spark does not know by default how to encode these objects and transfer them between nodes. Therefore, we use the state dictionary instead, which contains all the necessary information about a network.

Finally, the network training function (Train defined above) is applied to each element of the model/data RDD, in the form of a map operation. This tells Spark to run the function on each element in parallel (on worker machines) independently.

def train_ensemble(n_models, inputdims, nclasses, max_layers, min_neurons, max_neurons, data_iterator):
  """Constructing and training a distributed ensemble of feedforward networks

    Args:
      n_models: number of the ensemble memebrs
      inputdims: number of features dimesnions
      nclasses: number of the classes
      max_layers: maximum allowed number of hidden layers for the networks
      min_neurons,max_neurons: the valid range for the number of neurons in each hidden layer
      data_iterator: a Python iterator over the parts of the training data (one part per each member of the ensemble)

    Returns: a list of state dictionaries of the trained networks
  """

  # initialization
  model_data=[] # pairs of model parameters and their training data
  for i in range(n_models):
    # pick random number of hidden layers and neurons for each network
    nhidden=random.randint(1, max_layers)
    shape=[inputdims]
    for k in range(nhidden):
      shape.append(random.randint(min_neurons, max_neurons))
    shape.append(nclasses)

    net=MLP(shape)

    #fetch the next part of data
    d=next(data_iterator)
    x=d[0]
    y=d[1]

    model_data.append((net.state_dict(),x,y))

  # distribute the array
  model_data_par= sc.parallelize(model_data)
  # execute the train function on the worker nodes
  models_trained = model_data_par.map(lambda t: Train(*t))

  #transfer the trained models and loss values to the driver
  models_trained=models_trained.collect()

  #print the training loss values
  print("training losses:")
  print([v[1] for v in models_trained])

  # return the state dicts
  return [v[0] for v in models_trained]

** Utility functions for saving and loading the ensemble model from the disk **

def save_models_distr(models, dir_, model_names=None):
  dir_ = Path(dir_)
  dir_.mkdir(exist_ok=True, parents=True)

  if model_names is None:
    model_names = [f"m{idx}.pt" for idx in range(0, models.count())]
  assert len(model_names) == models.count()
  model_paths = [dir_ / model_name for model_name in model_names]
  model_paths = sc.parallelize(model_paths)
  models.zip(model_paths).foreach(lambda dict_and_path: torch.save(*dict_and_path))

def save_models(models, dir_, model_names=None):
  dir_ = Path(dir_)
  dir_.mkdir(exist_ok=True, parents=True)

  if model_names is None:
    model_names = [f"m{idx}.pt" for idx in range(0, len(models))]
  assert len(model_names) == len(models)
  model_paths = [dir_ / model_name for model_name in model_names]
  for state_dict, path in zip(models, model_paths):
    torch.save(state_dict, path)

def load_models(model_names, dir_):
  dir_ = Path(dir_)
  model_paths = [dir_ / model_name for model_name in model_names]
  state_dicts = [torch.load(path) for path in model_paths]
  return sc.parallelize(state_dicts)

Distributed ensembles prediction API

From the training process we get a distributed iterator models over the trained models. (NB. the train_ensemble function actually collects the trained models for convenience.) Internally this is an iterator over torch.state_dicts holding the param's of each model respectively.

There are different ways in which we can do predictions:

  • Distributed predictions with ens_preds(models, test_x), which maps the combined model and test data to predictions for each data point. This iterator can be collected to a list of the predictions for each ensemble member, or further processed in a distributed and functional manner. This is the most flexible variant since it preserves the prediction of every member on every datapoint. It is also the most expensive (if we do collect all the data).

  • Reduced/aggregated predictions with ens_preds_reduced(models, test_x, red_fn). Working with an ensemble, we are often concerned with some aggregate of the members' predictions, eg., the average prediction. For this we provide an reducing version of ens_preds where the user need only supply the reduce function red_fn, describing how to combine the predictions of two ensemble members. For instance, if you would like to get the average probability vector of a classifier ensemble for every data point you would use:

    avg_prob_vecs = ens_preds_reduced(models, x, lambda x, y: (x+y)/2)
    

    Internally, this simply calls .reduce(red_fn) on the iterator returned from ens_preds. This is merely a convenience function.

  • Metrics per ensemble member. If the number of test samples is large, we will collect a lot of predictions over the cluster. If we know that we only want an aggregate metric for each member across the whole test data, we use the ens_metrics method for aggregation on the worker nodes.

    avg_acc_per_member = ens_metrics(models, test_input, test_true_labels, <list of metric functions>)
    

    Note that each metric function must be on the form: f: R^(N x D_x) x R^(N) --> T

def ens_preds(models, test_x):
  """Distributed ensemble predictions
  Takes a set of models and test data and makes distributed predictions
  Let N := number of data points and D_x := the dimension of a single datapoint x

  Args:
    models (list[state_dict]): set of models represented as a list (state_dict, shape)
    test_x (torch.Tensor): Tensor of size (N, D_x)

  Returns:
    Distributed iterator over the predictions. E.g. an iterator over probability vectors in the case of a classifier ens.
  """
  pred_iter = _pred_models_iter(models, test_x)
  return pred_iter.map(lambda t: Predict(*t))

def ens_preds_reduced(models, test_x, red_fn):
  """Reduced/aggregated ensemble predictions
  Takes a set of models and test data and makes distributed predictions and reduces them with a provided `red_fn`
  Let N := number of data points and D_x := the dimension of a single datapoint x

  Args:
    models (list[state_dict]): set of models represented as a list (state_dict, shape)
    test_x (torch.Tensor): Tensor of size (N, D_x)
    red_fn function: f: R^D_x x R^D_x --> R^D_x

  Returns:
    Single reduced/aggregated prediction of the whole ensemble
  """
  return ens_preds(models, test_x).reduce(red_fn)

def ens_metrics(models, test_x, test_y, metrics):
  """Distributed ensemble metrics
  Takes a set of models and test data, predicts probability vectors and calculates the provided metrics
  given true labels `test_y`
  Let N := number of data points and D_x := the dimension of a single datapoint x

  Args:
    models (list[state_dict]): set of models represented as a list (state_dict, shape)
    test_x (torch.Tensor): Tensor of size (N, D_x)
    test_y (torch.Tensor): Tensor of size (N). NB: hard labels
    metrics (list[functions]): List of functions where each funcion f: R^(N x D_x) x R^(N) --> T, where T is a generic output type.
  """
  return ens_preds(models, test_x).map(lambda prob_vecs: [metric(prob_vecs, test_y) for metric in metrics])


def _pred_models_iter(models, test_x):
  """Helper function to generate a distributed iterator over models and test data
  NB: the same `test_x` is given to all elements in the iterator

  Args:
    models (list[state_dict]): set of models represented as a list (state_dict, shape)
    test_x (torch.Tensor): Tensor of size (N, D_x)
  """
  if isinstance(models, PipelinedRDD):
    return models.map(lambda model: (model, test_x))
  elif isinstance(models, list):
    models_and_data = [(params, test_x) for params in models]
    return sc.parallelize(models_and_data)
  else:
    raise TypeError("'models' must be an RDD or a list")

def avg_accuracy(prob_vecs, labels):
  """Example metrics function: average accuracy
  Let N := number of data points and C := the number of classes

  Args:
    prob_vecs (torch.Tensor): Tensor of size (N, C)
    labels (torch.Tensor): Tensor of size (N), hard labels, with classes corresponding to indices 0, ..., C-1

  Returns:
    torch.Tensor: Tensor of size (N), average accuracy over all datapoints.
  """
  hard_preds = torch.argmax(prob_vecs, 1)
  return (hard_preds == labels).float().mean()

def entropy(prob_vecs):
  return - (prob_vecs * torch.log(prob_vecs)).sum(1)

def avg_entropy(prob_vec_1, prob_vec_2):
  e_1 = entropy(prob_vec_1)
  e_2 = entropy(prob_vec_2)
  return (e_1 + e_2)

Application example: Distributed predictions

Let's first demonstrate our distributed ensembles with a simple toy example. We'll create gaussian toy data with three slightly overlapping clusters:

means = np.array([(0, 0), (1,0), (1, 1)])
variances = 0.1 * np.ones((3, 2))
num_observations = 5000
class_proportions = np.array([1/3, 1/3, 1/3])
data_train, data_test = create_gaussian_RDD(means, variances, num_observations, class_proportions, train_test_split=True)

Now we'll create and distributedly train a classifier ensemble and save it to file. This is not necessary, we can -- in fact -- make predictions with the trained ensemble without ever collecting it from the worker nodes, but in most use cases it will be convenient to save the ensemble on disk.

data_iterator=get_partitioned_rdd(data_train).map(Totensor).toLocalIterator()
n_models=5 # ensemble size
inputdims=2 # features dimensions
nclasses=3 # number of classes
max_layers=2
min_neurons=2
max_neurons=5

models_trained = train_ensemble(n_models, inputdims, nclasses, max_layers, min_neurons, max_neurons, data_iterator)
saved_models_dir = Path("saved_models/gaussian")
save_models(models_trained, saved_models_dir)
training losses:
[0.6597320437431335, 0.6314507126808167, 0.6506103277206421, 0.6424266695976257, 0.657072901725769]

Making distributed predictions

With the trained ensemble we can make predictions and calculate metrics, all in a distributed manner.

test_xx, test_yy = Totensor(data_test.collect())
model_names = [f"m{idx}.pt" for idx in range(n_models)]
models = load_models(model_names, saved_models_dir).collect()
avg_prob_vecs = ens_preds_reduced(models, test_xx, lambda x, y: (x+y)/2) # (A single) Average prob. vec for all data points.
avg_acc = ens_metrics(models, test_xx, test_yy, [avg_accuracy]).collect() # Average acc. for each ens. over all data points

print(f"Average accuracy for each ensemble member: {[acc[0].item() for acc in avg_acc]}")
print(f"Average accuracy for the whole ensemble: {avg_accuracy(avg_prob_vecs, test_yy).item()}")
Average accuracy for each ensemble member: [0.9240759015083313, 0.9240759015083313, 0.9160839319229126, 0.9110888838768005, 0.9220778942108154]
Average accuracy for the whole ensemble: 0.9210789203643799

We can also make use of the uncertainty description provided by the ensemble. We'll plot the test data, each point coloured the predicted distribution, which will illustrate the certain predictions with distinct colur and uncertain with muddied colours.

preds = avg_prob_vecs.detach().numpy()
hard_preds = avg_prob_vecs.argmax(1).detach().numpy()
every_nth = 5
train_xx, train_yy = Totensor(data_train.collect())

(fig, (ax_1, ax_2)) = plt.subplots(1, 2)
# For the train data we use the true labels to simulate a completely certain prediction.
color_map = {0: [1, 0 ,0], 1: [0, 1, 0], 2: [0, 0, 1]}
ax_1.scatter(train_xx[:, 0], train_xx[:, 1], c=[color_map[class_.item()] for class_ in train_yy], label="Train")
ax_2.scatter(test_xx[::every_nth, 0], test_xx[::every_nth, 1], c=preds[::every_nth], label="Test")
ax_1.set_title("Train")
ax_2.set_title("Test")
plt.show()

Application example: Out of distribution detection

Our distributed ensemble can be used for out of distribution (OOD) detection. A simple way is to measure the entropy of the combined ensemble prediction; high entropy signals weird data, not seen in the training distribution.

"Real world" out of distribution data can be hard to come by, but a typical example would be images in different contexts. E.g. scenic vistas or pathology scans may share the same feature space but have very different distribution. For the data we have collected, no such OOD set exists, so we will showcase it with an OOD set of gaussian noise. Of course, noise that is very far from the in distribution (ID) data will saturate the classifiers softmax for one element, actually yielding very confident, low entropy, nonsense predictions.

Regardless, let's see how to do this with the distributed ensemble. First, we train it and again, save the trained parameters to file

data_train, data_test = load_firewall_data(True)
data_iterator=get_partitioned_rdd(data_train).map(Totensor).toLocalIterator()

n_models=10
models_trained=train_ensemble(n_models,
                              inputdims=11,
                              nclasses=4,
                              max_layers=4,
                              min_neurons=5,
                              max_neurons=15,
                              data_iterator=data_iterator)
saved_models_dir = Path("saved_models/firewall")
save_models(models_trained, saved_models_dir)
training losses:
[0.7487057447433472, 0.750811755657196, 0.7578539252281189, 0.7506877183914185, 0.7623474597930908, 0.7521470785140991, 0.7517384886741638, 0.7481321692466736, 0.750828742980957, 0.7547193765640259]
def gen_ood_data(test_x, num_samples):
  num_test_samples, dim_x = test_x.size()
  random_mean = np.random.rand(dim_x).reshape(1, dim_x)
  random_cov = np.random.rand(dim_x).reshape(1, dim_x) * 10
  ood_x, _ = Totensor(create_gaussian_RDD(random_mean, random_cov, num_test_samples, np.array([1.0]), train_test_split=False).collect())
  return ood_x


data = data_test.collect()
batch_size = -1
batch = data[0:batch_size]
test_xx, test_yy = Totensor(batch)
ood_x = gen_ood_data(test_xx, batch_size)

models_p = load_models(model_names, saved_models_dir).collect()

# We can either calculate the average entropy of the ensemble members
avg_entropy_id = ens_preds(models_p, test_xx).map(entropy).reduce(lambda x, y: (x+y)/2).detach().numpy()
avg_entropy_ood = ens_preds(models_p, ood_x).map(entropy).reduce(lambda x, y: (x+y)/2).detach().numpy()

# ... or we the entropy of the average ensemble prediction.
entropy_avg_id = entropy(ens_preds_reduced(models_p, test_xx, lambda x, y: (x+y)/2)).detach().numpy()
entropy_avg_ood = entropy(ens_preds_reduced(models_p, ood_x, lambda x, y: (x+y)/2)).detach().numpy()

# Set entropy measure
entropy_id = avg_entropy_id
entropy_ood = avg_entropy_ood

Comparison of the entropy of the ensemble classifier on in-distribution and OOD data

def entropy_hist(id_, ood, n_bins, upper_x_bound):
  (fig, (ax_1, ax_2)) = plt.subplots(2, 1)
  _plot_hist(ax_1, id_, n_bins, "ID", "b", upper_x_bound)
  _plot_hist(ax_2, ood, n_bins, "OOD", "r", upper_x_bound)
  fig.suptitle("Entropy histogram")
  ax_2.set_xlabel("entropy")
  plt.show()

def _plot_hist(ax, counts, n_bins, label, color, upper_x_bound):
    ax.hist(counts, bins=n_bins, label=label, color=color, density=True)
    ax.set_xbound(lower = 0.0, upper = upper_x_bound)
    ax.set_ylabel("rel freq")
    ax.legend()

n_bins = 100
entropy_bound = 0.15
entropy_hist(entropy_id, entropy_ood, n_bins, entropy_bound)

Evaluation of the OOD detection in terms of ROC curve and area under this curve (AUROC)

def is_ood(entropies, cut_off_entropy):
  return entropies > cut_off_entropy

def fpr_and_tpr(id_, ood, res):
  max_entropy = max(id_.max(), ood.max())
  # max_entropy = id_.max()
  thresholds = np.arange(0.0, max_entropy, max_entropy / res)
  roc = np.array([(fpr(id_, th), tpr(ood, th)) for th in thresholds])
  roc = roc[roc[:,0].argsort()]
  fprs, tprs = (roc[:, 0], roc[:, 1])
  return fprs, tprs

def fpr(id_, th):
  id_pred = is_ood(id_, th)
  fp = id_pred.sum()
  tn = id_pred.shape[0] - fp
  return fp / (tn + fp)

def tpr(ood, th):
  ood_pred = is_ood(ood, th)
  tp = ood_pred.sum()
  fn = ood_pred.shape[0] - tp
  return tp / (tp + fn)

fpr, tpr = fpr_and_tpr(avg_entropy_id, avg_entropy_ood, res = 100)
(fig, ax) = plt.subplots()

ax.plot(fpr, tpr)
ax.set_xlabel("FPR")
ax.set_ylabel("TPR")
ax.set_title("ROC")

print(f"AUROC: {np.trapz(tpr, fpr)}")
AUROC: 0.6480554090292237

References

[1] Lakshminarayanan, B., Pritzel, A., & Blundell, C. (2017). Simple and scalable predictive uncertainty estimation using deep ensembles. In Advances in neural information processing systems (pp. 6402-6413).

[2] Ovadia, Y., Fertig, E., Ren, J., Nado, Z., Sculley, D., Nowozin, S., ... & Snoek, J. (2019). Can you trust your model's uncertainty? Evaluating predictive uncertainty under dataset shift. In Advances in Neural Information Processing Systems (pp. 13991-14002).

[3] Apache Spark. (2021, 01, 11). Classification and Regression [https://spark.apache.org/docs/latest/ml-classification-regression.html].

[4] Chen, J., Pan, X., Monga, R., Bengio, S., & Jozefowicz, R. (2016). Revisiting distributed synchronous SGD. arXiv preprint arXiv:1604.00981.

[5] Dua, D. and Graff, C. (2019). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science.

ScaDaMaLe Course site and book

Group Project Authors:

  • Hugo Werner
  • Gizem Çaylak e-mail

Video link: https://kth.box.com/s/y3jsb9lgp6cll6op15o6z77rchaefh24

Problem description:

SARS-CoV-2 is spreading across the world and as it spreads mutations are occuring. A way to understand the spreading and the mutations is to explore the structure and information hidden in the genome.

Project goal:

The Goal of this project is to explore a SARS-CoV-2 genome dataset and try to predict the origin of a SARS-CoV-2 genome sample.

Data:

We will use publicly available NCBI SARS-CoV-2 genome with their geographic region information.

Geographic region | ##samples |
Africa397 |
Asia |2534 |
Europe |1418 |
North America |26836
Oceania |13304
South America |158 |

Data link: https://www.ncbi.nlm.nih.gov/labs/virus/vssi/#/virus?SeqTypes=Nucleotide&VirusLineagess=Severe%20acute%20respiratory%20syndrome%20coronavirus%202%20(SARS-CoV-2),%20taxid:2697049

Background:

  • Genome: Sequence of nucleotides (A-T-G-C) [https://en.wikipedia.org/wiki/Genome]
  • k-mer: Subsequences of length k of a genome [https://en.wikipedia.org/wiki/K-mer]
  • Sequence analysis of SARS-CoV-2 genome reveals features important for vaccine design [https://www.nature.com/articles/s41598-020-72533-2]
  • Latent Dirichlet Allocation (LDA) tutorial from the course

Challenges:

  • How to encode genome sequence?
    • Project solution :
      • Represent genome as k-mers and use countVectorizer to convert k-mers into a matrix of token counts (term-frequency table)
      • Extract features with Latent Dirichlet Allocation (LDA) by considering each genome sequence as a document and each 3-mer as a word. So, we have a collection of genomes consisting of 3-mers.
  • How to relate encoded features to the origins?
    • Project solution: We used a Random Forest Classifier and tried both topic distributions, LDA output, and k-mer frequencies directly. One advantage is interpretability: we can understand the positive or negative relations a topic has on the origin.
  • How to solve unbalanced class problem? E.g. North America has 26836 samples but South America has only 158
    • Project solution: Use f1 measure as metric

Project steps:

  1. Get SARS-CoV-2 data from NCBI
  2. Process data:
  3. Extract 3-mers:
  4. Split train/test dataset with split ratio 0.7
  5. Extract topic features: We used Latent Dirichlet Allocation to extract patterns from k-mers features.
  6. Classify: We used Random Forest Classifier
    • (Classification directly on k-mers features) To find a mapping from extracted k-mers features to labels (multiclass problem).
    • (Classification on LDA features) To find a mapping from extracted topic distributions to labels (multiclass problem).
  7. Evaluation: We use (accuracy and f1) measure as our evaluation metrics. We compared Classification on LDA features vs Classification directly on k-mers features to see whether LDA is capable of summarizing the data (and thus reducing the feature dimensionality)

What we lack mainly:

  • A biological interpretation of the results (whether found terms in topic distributions are significant/connected in a biological network).

ScaDaMaLe Course site and book

// Paths to datasets of different regions.
val paths: List[String] = List("dbfs:/FileStore/shared_uploads/hugower@kth.se/sequences_oceania.fasta",
                               "dbfs:/FileStore/shared_uploads/hugower@kth.se/sequences_northamerica.fasta",
                               "dbfs:/FileStore/shared_uploads/hugower@kth.se/sequences_southamerica.fasta",
                               "dbfs:/FileStore/shared_uploads/hugower@kth.se/sequences_europe.fasta",
                               "dbfs:/FileStore/shared_uploads/hugower@kth.se/sequences_africa.fasta",
                               "dbfs:/FileStore/shared_uploads/hugower@kth.se/sequences_asia.fasta")
paths: List[String] = List(dbfs:/FileStore/shared_uploads/hugower@kth.se/sequences_oceania.fasta, dbfs:/FileStore/shared_uploads/hugower@kth.se/sequences_northamerica.fasta, dbfs:/FileStore/shared_uploads/hugower@kth.se/sequences_southamerica.fasta, dbfs:/FileStore/shared_uploads/hugower@kth.se/sequences_europe.fasta, dbfs:/FileStore/shared_uploads/hugower@kth.se/sequences_africa.fasta, dbfs:/FileStore/shared_uploads/hugower@kth.se/sequences_asia.fasta)
import scala.util.matching.Regex

// regex pattern to take region name, label, from complete path name (Must be changed accordingly if path follows a different structure)
val pattern: Regex = "/[a-zA-Z]+_([a-zA-Z]+)\\.".r 

def read_datasets(paths:List[String]): List[RDD[(String,String)]] = {
  if (paths.size < 1) { // return an empty RDD
    return List.fill(0) (sc.emptyRDD)
  }
  else {
    pattern.findFirstMatchIn(paths.head) match { // extract the label based on the pattern defined above
      case Some(x) => {
        val label:String = x.group(1)  // create the label based on the path name
        return (sc.textFile(paths.head).filter(_ != "").map(_.trim()).map(s => (s,label)))::read_datasets(paths.tail) // read the file in path and attach the data with its label to RDD list
      }
      case None => throw new RuntimeException("no label found")
    }
  }
}
import scala.util.matching.Regex
pattern: scala.util.matching.Regex = /[a-zA-Z]+_([a-zA-Z]+)\.
read_datasets: (paths: List[String])List[org.apache.spark.rdd.RDD[(String, String)]]
// read data and set the delimiter as ">" which seperates each sample in fasta format
sc.hadoopConfiguration.set("textinputformat.record.delimiter",">")
val datasets = read_datasets(paths)
  
datasets: List[org.apache.spark.rdd.RDD[(String, String)]] = List(MapPartitionsRDD[202189] at map at command-3103574048361361:13, MapPartitionsRDD[202196] at map at command-3103574048361361:13, MapPartitionsRDD[202205] at map at command-3103574048361361:13, MapPartitionsRDD[202210] at map at command-3103574048361361:13, MapPartitionsRDD[202215] at map at command-3103574048361361:13, MapPartitionsRDD[202220] at map at command-3103574048361361:13)
datasets.length
res0: Int = 6
datasets(0).take(1)
// combine the datasets into one and cache for optimization
val data = datasets.reduce( (a,b) => a++b).cache()
data: org.apache.spark.rdd.RDD[(String, String)] = UnionRDD[202273] at $plus$plus at command-3103574048361373:1
data.take(1)
// get the headers for each sample (the first line of each sample is a header)
val headers = data.map( {case (genome,label) => (genome.split("\n").head.split('|'),label)})
headers.count
headers: org.apache.spark.rdd.RDD[(Array[String], String)] = MapPartitionsRDD[35] at map at command-3103574048360661:1
res2: Long = 31550
headers.take(5)
res3: Array[(Array[String], String)] = Array((Array("MW320729.1 ", Severe acute respiratory syndrome coronavirus 2 isolate SARS-CoV-2/human/AUS/VIC16982/2020, complete genome),oceania), (Array("MW320730.1 ", Severe acute respiratory syndrome coronavirus 2 isolate SARS-CoV-2/human/AUS/VIC17307/2020, complete genome),oceania), (Array("MW320731.1 ", Severe acute respiratory syndrome coronavirus 2 isolate SARS-CoV-2/human/AUS/VIC17193/2020, complete genome),oceania), (Array("MW320733.1 ", Severe acute respiratory syndrome coronavirus 2 isolate SARS-CoV-2/human/AUS/VIC16732/2020, complete genome),oceania), (Array("MW320735.1 ", Severe acute respiratory syndrome coronavirus 2 isolate SARS-CoV-2/human/AUS/VIC16821/2020, complete genome),oceania))
// remove the headers and only get genome sequences of samples.
val samples = data.map( {case (genome,label) => (genome.split("\n").tail.mkString(""), label)}).cache()
samples.count
samples: org.apache.spark.rdd.RDD[(String, String)] = MapPartitionsRDD[202309] at map at command-3103574048360662:2
res0: Long = 31550
// get the genome lengths per sample (this is just to check if there are extreme cases so we would remove those)
val genome_length_per_s = samples.map({case (genome,label) => genome.length()})
genome_length_per_s: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[14298] at map at command-3103574048360664:1
// check the statistics if there is any significant variation
genome_length_per_s.stats
res6: org.apache.spark.util.StatCounter = (count: 31550, mean: 29812.288621, stdev: 81.069114, max: 30018.000000, min: 28645.000000)
// A tail recursive overlapping subsequence function 
// ex1: input: ("abcd", 2, true) -> output: "ab bc cd": 
// ex2: input: ("abcd", 2, false) -> output: "ab cd"
def subsequence_str( sequence:String, k:Int, overlapping:Boolean ): String = {
  def helper(seq:String, acc:String): String = {
    if (seq.length < k ) {
      return acc
    }
    else {
      val sub = seq.substring(0,k)
      if(overlapping) helper(seq.tail, acc + sub + " ")
      else helper(seq.substring(k), acc + sub + " ")
    }
  }
  return helper(sequence, "")
}
subsequence_str: (sequence: String, k: Int, overlapping: Boolean)String
// Extract the subsequences, kmers, for each sample
val k_mers = samples.map( {case (genome,label) => (subsequence_str(genome, 3, false),label)} ).cache()
k_mers: org.apache.spark.rdd.RDD[(String, String)] = MapPartitionsRDD[202801] at map at command-3103574048360668:1
k_mers.take(1)
// index kmers
val kmers_df = k_mers.zipWithIndex.map({case ((a,b),c) => (a,b,c)}).toDF("genome", "label", "id").cache()
kmers_df: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [genome: string, label: string ... 1 more field]
kmers_df.take(1)
// split train and test data
val split = kmers_df.randomSplit(Array(0.7, 0.3), seed=42)
split: Array[org.apache.spark.sql.Dataset[org.apache.spark.sql.Row]] = Array([genome: string, label: string ... 1 more field], [genome: string, label: string ... 1 more field])
val train = split(0).cache()
train.take(1)
train.count
res6: Long = 22155
val test = split(1).cache()
test.take(1)
test.count
res9: Long = 9395
// save the results for the next notebook
dbutils.fs.rm("/FileStore/shared_uploads/caylak@kth.se/data_test_nonoverlapping", recurse=true) // remove existing folder
test.write.parquet("dbfs:/FileStore/shared_uploads/caylak@kth.se/data_test_nonoverlapping")

dbutils.fs.rm("/FileStore/shared_uploads/caylak@kth.se/data_train_nonoverlapping", recurse=true) // remove existing folder
train.write.parquet("dbfs:/FileStore/shared_uploads/caylak@kth.se/data_train_nonoverlapping")

ScaDaMaLe Course site and book

val k_mers_df_train = spark.read.parquet("dbfs:/FileStore/shared_uploads/caylak@kth.se/data_train_nonoverlapping").cache()
val k_mers_df_test = spark.read.parquet("dbfs:/FileStore/shared_uploads/caylak@kth.se/data_test_nonoverlapping").cache()
k_mers_df_train: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [genome: string, label: string ... 1 more field]
k_mers_df_test: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [genome: string, label: string ... 1 more field]

This part is adapted from the LDA course tutorial '034LDA20NewsGroupsSmall'.

import org.apache.spark.ml.feature.RegexTokenizer

// Set params for RegexTokenizer
val tokenizer = new RegexTokenizer()
.setPattern("[\\W_]+") // break by white space character(s)
.setInputCol("genome") // name of the input column
.setOutputCol("tokens") // name of the output column

// Tokenize train and test documents
val tokenized_df_train = tokenizer.transform(k_mers_df_train)
val tokenized_df_test = tokenizer.transform(k_mers_df_test)
import org.apache.spark.ml.feature.RegexTokenizer
tokenizer: org.apache.spark.ml.feature.RegexTokenizer = RegexTokenizer: uid=regexTok_b3a99fc4c607, minTokenLength=1, gaps=true, pattern=[\W_]+, toLowercase=true
tokenized_df_train: org.apache.spark.sql.DataFrame = [genome: string, label: string ... 2 more fields]
tokenized_df_test: org.apache.spark.sql.DataFrame = [genome: string, label: string ... 2 more fields]
display(tokenized_df_train.select("tokens"))
display(tokenized_df_test.select("tokens"))

Since there are 64 = 4*4*4 possible words (3-mers) for a genome (which consists of A-T-G-C, 4 letters), we initially planned to use a fixed vocabulary.

import org.apache.spark.ml.feature.CountVectorizerModel
// create a dictionary array from all possible k-mers
val k = 3
val fixed_vocab = List.fill((k))(List("a","t","g","c")).flatten.combinations(k).flatMap(_.permutations).toArray.map(_.mkString("")) // https://stackoverflow.com/questions/38406959/creating-all-permutations-of-a-list-with-a-limited-range-in-scala
val fixed_vectorizer = new CountVectorizerModel(fixed_vocab)
.setInputCol("tokens")
.setOutputCol("features")
import org.apache.spark.ml.feature.CountVectorizerModel
k: Int = 3
fixed_vocab: Array[String] = Array(aaa, aat, ata, taa, aag, aga, gaa, aac, aca, caa, att, tat, tta, atg, agt, tag, tga, gat, gta, atc, act, tac, tca, cat, cta, agg, gag, gga, agc, acg, gac, gca, cag, cga, acc, cac, cca, ttt, ttg, tgt, gtt, ttc, tct, ctt, tgg, gtg, ggt, tgc, tcg, gtc, gct, ctg, cgt, tcc, ctc, cct, ggg, ggc, gcg, cgg, gcc, cgc, ccg, ccc)
fixed_vectorizer: org.apache.spark.ml.feature.CountVectorizerModel = CountVectorizerModel: uid=cntVecModel_4bd2f56ddf2e, vocabularySize=64

However, we observed that there are some unexpected rare k-mers such as aay, ktg in the genome sequences. If they are really rare (less than 10), we have decided to eliminate them. But if they are more common, with the intuition that this sequencing error (could not find a document indicating what they refer to so we assumed they are errors) might indicate some pattern for that sample, we keep them. This approach provided us better topic diversity and results.

import org.apache.spark.ml.feature.CountVectorizer

// Create a dictionary of kmers
val vectorizer = new CountVectorizer()
      .setInputCol("tokens")
      .setOutputCol("features")
      .setMinDF(10)  // a term must appear at least in 10 documents to be included in the vocabulary.
      .fit(tokenized_df_train) // create the vocabulary based on the train data
import org.apache.spark.ml.feature.CountVectorizer
vectorizer: org.apache.spark.ml.feature.CountVectorizerModel = CountVectorizerModel: uid=cntVec_cf83465b3abd, vocabularySize=241
// Vocabulary of k-mers which contains some weird nucleotides
val vocabList = vectorizer.vocabulary
vocabList: Array[String] = Array(ttt, tgt, aaa, tta, aca, ttg, taa, att, aat, ctt, caa, tga, gtt, atg, act, aga, tat, tac, aac, tgg, tgc, aag, tca, cta, ttc, tct, gtg, agt, gaa, cat, gct, ctg, cac, gta, ata, tag, gat, ggt, cag, acc, gca, cca, atc, agg, gac, cct, agc, gag, gga, ctc, gtc, ggc, tcc, gcc, acg, cgt, ggg, ccc, tcg, cgc, cga, gcg, cgg, ccg, nnn, nna, naa, ntt, tnn, cnn, gnn, ann, nnt, nng, nnc, agn, ttn, aan, acn, tan, nat, tcn, ngt, nct, can, gtn, ctn, nta, atn, ana, tgn, nca, ggn, nga, tna, nac, ntg, gcn, gan, tgk, ngc, ccn, ncc, ngg, tnt, ntc, nag, agk, yta, cnt, ktt, aya, gkt, kta, gnt, nan, ytt, ktg, gkc, tty, ayt, tay, yaa, acy, gsc, aay, tgy, ggk, ant, tyt, yac, yat, tya, ang, anc, cay, tkt, cng, cak, rcc, cna, cgn, aty, akt, ggw, gyt, tng, raa, cyt, acw, ytg, aak, yca, ntn, gna, gay, cty, kat, kct, tkg, gnc, ngn, yag, tnc, kca, ayc, tyg, gka, ygt, aka, cnc, cya, ayg, ttk, gng, tth, maa, ncn, yga, tka, ama, aar, ytc, gtk, kag, cch, ncg, ctk, kaa, gty, yct, ara, rtg, ckt, tar, gya, tkc, tak, tgr, ccy, akg, kac, crc, grt, ggr, trt, gcy, tyc, ygg, gak, wga, ygc, cgk, gcr, kgt, wtc, tck, cwt, waa, tcy, vcc, tma, atr, agy, rgc, rac, tgs, kgc, gam, atk, cyc, haa, agr, tha, rgt, gwg, tra, cra, gtr, gkg, nam)
vocabList.size
res4: Int = 241
// Create vector of token counts
val countVectors_train = vectorizer.transform(tokenized_df_train).select("id", "features")
val countVectors_test = vectorizer.transform(tokenized_df_test).select("id", "features")
countVectors_train: org.apache.spark.sql.DataFrame = [id: bigint, features: vector]
countVectors_test: org.apache.spark.sql.DataFrame = [id: bigint, features: vector]
tokenized_df_train.take(1)
countVectors_train.take(5)
countVectors_test.take(5)

Fix the incompatibility between mllib Vector and ml Vector, which causes conflict when LDA topic distribution is given as RandomForestClassifier input

import org.apache.spark.ml.linalg.{Vector => MLVector}
import org.apache.spark.mllib.{linalg => mllib}
import org.apache.spark.ml.{linalg => ml}
// convert each sample from ml to mllib vectors (because this causes problems in classifier step)
val lda_countVector_train = countVectors_train.map { case Row(id: Long, countVector: MLVector) => (id, mllib.Vectors.fromML(countVector)) }.cache()
val lda_countVector_test = countVectors_test.map { case Row(id: Long, countVector: MLVector) => (id, mllib.Vectors.fromML(countVector)) }.cache()
import org.apache.spark.ml.linalg.{Vector=>MLVector}
import org.apache.spark.mllib.{linalg=>mllib}
import org.apache.spark.ml.{linalg=>ml}
lda_countVector_train: org.apache.spark.sql.Dataset[(Long, org.apache.spark.mllib.linalg.Vector)] = [_1: bigint, _2: vector]
lda_countVector_test: org.apache.spark.sql.Dataset[(Long, org.apache.spark.mllib.linalg.Vector)] = [_1: bigint, _2: vector]
// format: Array(id, (VocabSize, Array(indexedTokens), Array(Token Frequency)))
lda_countVector_test.take(1)
res10: Array[(Long, org.apache.spark.mllib.linalg.Vector)] = Array((13340,(241,[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63],[334.0,211.0,327.0,282.0,288.0,277.0,95.0,278.0,315.0,259.0,245.0,70.0,310.0,311.0,291.0,129.0,213.0,181.0,189.0,99.0,87.0,221.0,189.0,183.0,136.0,217.0,181.0,152.0,251.0,136.0,265.0,150.0,108.0,174.0,183.0,89.0,213.0,245.0,163.0,99.0,158.0,138.0,107.0,78.0,142.0,146.0,53.0,116.0,98.0,93.0,101.0,90.0,56.0,73.0,42.0,67.0,34.0,31.0,39.0,29.0,28.0,37.0,20.0,19.0])))
// The number of topics
val num_topics = 20
num_topics: Int = 20
import org.apache.spark.mllib.clustering.{LDA, EMLDAOptimizer,DistributedLDAModel}

val lda = new LDA()
.setOptimizer(new EMLDAOptimizer())
.setK(num_topics)
.setMaxIterations(20000)
.setDocConcentration(-1) // use default values
.setTopicConcentration(-1) // use default values
import org.apache.spark.mllib.clustering.{LDA, EMLDAOptimizer, DistributedLDAModel}
lda: org.apache.spark.mllib.clustering.LDA = org.apache.spark.mllib.clustering.LDA@53a22046
// Run the LDA based on the model described  
val lda_countVector_train_mllib = lda_countVector_train.rdd
val lda_countVector_test_mllib = lda_countVector_test.rdd
val ldaModel = lda.run(lda_countVector_train_mllib)
lda_countVector_train_mllib: org.apache.spark.rdd.RDD[(Long, org.apache.spark.mllib.linalg.Vector)] = MapPartitionsRDD[399] at rdd at command-685894176420037:2
lda_countVector_test_mllib: org.apache.spark.rdd.RDD[(Long, org.apache.spark.mllib.linalg.Vector)] = MapPartitionsRDD[404] at rdd at command-685894176420037:3
ldaModel: org.apache.spark.mllib.clustering.LDAModel = org.apache.spark.mllib.clustering.DistributedLDAModel@4e5ac90e
// Cast to distributed LDA model (which is possible through EMLDAOptimizer in the model) so we can get topic distributions
val distLDAModel = ldaModel.asInstanceOf[DistributedLDAModel]
distLDAModel: org.apache.spark.mllib.clustering.DistributedLDAModel = org.apache.spark.mllib.clustering.DistributedLDAModel@4e5ac90e
val topicIndices = distLDAModel.describeTopics(maxTermsPerTopic = 10)
// https://spark.apache.org/docs/1.5.0/api/scala/index.html#org.apache.spark.mllib.clustering.DistributedLDAModel
// Get the topic distributions for each train document which we will use as features in the classification step
val topicDistributions_train = distLDAModel.topicDistributions.cache()
topicDistributions_train: org.apache.spark.rdd.RDD[(Long, org.apache.spark.mllib.linalg.Vector)] = MapPartitionsRDD[828598] at map at LDAModel.scala:768
lda_countVector_test_mllib.take(1)
res11: Array[(Long, org.apache.spark.mllib.linalg.Vector)] = Array((13340,(241,[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63],[334.0,211.0,327.0,282.0,288.0,277.0,95.0,278.0,315.0,259.0,245.0,70.0,310.0,311.0,291.0,129.0,213.0,181.0,189.0,99.0,87.0,221.0,189.0,183.0,136.0,217.0,181.0,152.0,251.0,136.0,265.0,150.0,108.0,174.0,183.0,89.0,213.0,245.0,163.0,99.0,158.0,138.0,107.0,78.0,142.0,146.0,53.0,116.0,98.0,93.0,101.0,90.0,56.0,73.0,42.0,67.0,34.0,31.0,39.0,29.0,28.0,37.0,20.0,19.0])))
// Get the topic distributions for each test document which we will use as features in the classification step
val topicDistributions_test = distLDAModel.toLocal.topicDistributions(lda_countVector_test_mllib).cache()
topicDistributions_test: org.apache.spark.rdd.RDD[(Long, org.apache.spark.mllib.linalg.Vector)] = MapPartitionsRDD[828874] at map at LDAModel.scala:373
assert (topicDistributions_train.take(1)(0)._2.size == num_topics)
topicDistributions_train.take(1)
res13: Array[(Long, org.apache.spark.mllib.linalg.Vector)] = Array((31198,[0.050970660127433086,0.03854914539182694,0.04233208760127245,0.05520192993035042,0.04529229810049971,0.044746575004622195,0.04738680077580458,0.04917176116296172,0.028216072817023714,0.06235014298552372,0.07282634237929085,0.05367477019497316,0.02834755979614659,0.007634148695007966,0.0747900052332216,0.07432157320344387,0.05619372014685311,0.05917612984447815,0.059889692006826215,0.048928584602440005]))
topicDistributions_test.take(1)
res14: Array[(Long, org.apache.spark.mllib.linalg.Vector)] = Array((13340,[0.05125119795748651,0.05590356021965471,0.057337790514388406,0.053942804029345516,0.03184697426952284,0.054473799789446706,0.055602712254395316,0.07875351104584705,0.05294681251741617,0.03326797507323466,0.04996448701691076,0.06303737755619679,0.07611049117795103,0.009242706964001621,0.017554379171811085,0.026326662949499827,0.040104268572631795,0.09709248658013904,0.03851877943786023,0.05672122290225994]))
import org.apache.spark.mllib.linalg.{Vectors => OldVectors}
import org.apache.spark.ml.linalg.{Vectors => NewVectors}

val n_topicDistributions_train = topicDistributions_train.map({case (a,b) =>(a,b.asML)})
val n_topicDistributions_test = topicDistributions_test.map({case (a,b) =>(a,b.asML)})
import org.apache.spark.mllib.linalg.{Vectors=>OldVectors}
import org.apache.spark.ml.linalg.{Vectors=>NewVectors}
n_topicDistributions_train: org.apache.spark.rdd.RDD[(Long, org.apache.spark.ml.linalg.Vector)] = MapPartitionsRDD[828876] at map at command-685894176420046:4
n_topicDistributions_test: org.apache.spark.rdd.RDD[(Long, org.apache.spark.ml.linalg.Vector)] = MapPartitionsRDD[828877] at map at command-685894176420046:5
// save the topic distributions for train and test with partitioning for the next notebook
dbutils.fs.rm("/FileStore/shared_uploads/caylak@kth.se/topic_dist_train_t20_i20k_no_cv", recurse=true) // remove existing folder
n_topicDistributions_train.toDF.write.parquet("dbfs:/FileStore/shared_uploads/caylak@kth.se/topic_dist_train_t20_i20k_no_cv")

dbutils.fs.rm("/FileStore/shared_uploads/caylak@kth.se/topic_dist_test_t20_i20k_no_cv", recurse=true) // remove existing folder
n_topicDistributions_test.toDF.write.parquet("dbfs:/FileStore/shared_uploads/caylak@kth.se/topic_dist_test_t20_i20k_no_cv")
// Get the top word distributions for each topic
val topics = topicIndices.map { case (terms, termWeights) =>
  terms.map(vocabList(_)).zip(termWeights)
}
println(s"$num_topics topics:")
topics.zipWithIndex.foreach { case (topic, i) =>
  println(s"TOPIC $i")
  topic.foreach { case (term, weight) => println(s"$term\t$weight") }
  println(s"==========")
}
//Zip topic terms with topic IDs
val termArray = topics.zipWithIndex
// Transform data into the form (term, probability, topicId)
val termRDD = sc.parallelize(termArray)
val termRDD2 =termRDD.flatMap( (x: (Array[(String, Double)], Int)) => {
  val arrayOfTuple = x._1
  val topicId = x._2
  arrayOfTuple.map(el => (el._1, el._2, topicId))
})
termRDD: org.apache.spark.rdd.RDD[(Array[(String, Double)], Int)] = ParallelCollectionRDD[829330] at parallelize at command-685894176420051:2
termRDD2: org.apache.spark.rdd.RDD[(String, Double, Int)] = MapPartitionsRDD[829331] at flatMap at command-685894176420051:3
// Create DF with proper column names
val termDF = termRDD2.toDF.withColumnRenamed("_1", "term").withColumnRenamed("_2", "probability").withColumnRenamed("_3", "topicId")
termDF: org.apache.spark.sql.DataFrame = [term: string, probability: double ... 1 more field]
Create JSON data
val rawJson = termDF.toJSON.collect().mkString(",\n")
displayHTML(s"""
<!DOCTYPE html>
<meta charset="utf-8">
<style>

circle {
  fill: rgb(31, 119, 180);
  fill-opacity: 0.5;
  stroke: rgb(31, 119, 180);
  stroke-width: 1px;
}

.leaf circle {
  fill: #ff7f0e;
  fill-opacity: 1;
}

text {
  font: 14px sans-serif;
}

</style>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>
<script>

var json = {
 "name": "data",
 "children": [
  {
     "name": "topics",
     "children": [
      ${rawJson}
     ]
    }
   ]
};

var r = 1000,
    format = d3.format(",d"),
    fill = d3.scale.category20c();

var bubble = d3.layout.pack()
    .sort(null)
    .size([r, r])
    .padding(1.5);

var vis = d3.select("body").append("svg")
    .attr("width", r)
    .attr("height", r)
    .attr("class", "bubble");


var node = vis.selectAll("g.node")
    .data(bubble.nodes(classes(json))
    .filter(function(d) { return !d.children; }))
    .enter().append("g")
    .attr("class", "node")
    .attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; })
    color = d3.scale.category20();

  node.append("title")
      .text(function(d) { return d.className + ": " + format(d.value); });

  node.append("circle")
      .attr("r", function(d) { return d.r; })
      .style("fill", function(d) {return color(d.topicName);});

var text = node.append("text")
    .attr("text-anchor", "middle")
    .attr("dy", ".3em")
    .text(function(d) { return d.className.substring(0, d.r / 3)});

  text.append("tspan")
      .attr("dy", "1.2em")
      .attr("x", 0)
      .text(function(d) {return Math.ceil(d.value * 10000) /10000; });

// Returns a flattened hierarchy containing all leaf nodes under the root.
function classes(root) {
  var classes = [];

  function recurse(term, node) {
    if (node.children) node.children.forEach(function(child) { recurse(node.term, child); });
    else classes.push({topicName: node.topicId, className: node.term, value: node.probability});
  }

  recurse(null, root);
  return {children: classes};
}
</script>
""")

ScaDaMaLe Course site and book

val k_mers_df_train = spark.read.parquet("dbfs:/FileStore/shared_uploads/caylak@kth.se/data_train").cache()
val k_mers_df_test = spark.read.parquet("dbfs:/FileStore/shared_uploads/caylak@kth.se/data_test").cache()
k_mers_df_train: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [genome: string, label: string ... 1 more field]
k_mers_df_test: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [genome: string, label: string ... 1 more field]
val k_mers_df_train = spark.read.parquet("dbfs:/FileStore/shared_uploads/caylak@kth.se/data_train_nonoverlapping").cache()
val k_mers_df_test = spark.read.parquet("dbfs:/FileStore/shared_uploads/caylak@kth.se/data_test_nonoverlapping").cache()
k_mers_df_train: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [genome: string, label: string ... 1 more field]
k_mers_df_test: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [genome: string, label: string ... 1 more field]

Format data

Generate word count vectors

import org.apache.spark.ml.feature.RegexTokenizer

// Set params for RegexTokenizer
val tokenizer = new RegexTokenizer()
.setPattern("[\\W_]+") // break by white space character(s)  - try to remove emails and other patterns
.setInputCol("genome") // name of the input column
.setOutputCol("tokens") // name of the output column

// Tokenize document
val tokenized_df_train = tokenizer.transform(k_mers_df_train)
val tokenized_df_test = tokenizer.transform(k_mers_df_test)
import org.apache.spark.ml.feature.RegexTokenizer
tokenizer: org.apache.spark.ml.feature.RegexTokenizer = RegexTokenizer: uid=regexTok_5df744efa843, minTokenLength=1, gaps=true, pattern=[\W_]+, toLowercase=true
tokenized_df_train: org.apache.spark.sql.DataFrame = [genome: string, label: string ... 2 more fields]
tokenized_df_test: org.apache.spark.sql.DataFrame = [genome: string, label: string ... 2 more fields]
display(tokenized_df_train.select("tokens"))
import org.apache.spark.ml.feature.CountVectorizer
val vectorizer = new CountVectorizer()
      .setInputCol("tokens")
      .setOutputCol("features")
      .setMinDF(10)
      .fit(tokenized_df_train)
import org.apache.spark.ml.feature.CountVectorizer
vectorizer: org.apache.spark.ml.feature.CountVectorizerModel = CountVectorizerModel: uid=cntVec_9226a16a835f, vocabularySize=241
val vocabList = vectorizer.vocabulary
vocabList: Array[String] = Array(ttt, tgt, aaa, tta, aca, ttg, taa, att, aat, ctt, caa, tga, gtt, atg, act, aga, tat, tac, aac, tgg, tgc, aag, tca, cta, ttc, tct, gtg, agt, gaa, cat, gct, ctg, cac, gta, ata, tag, gat, ggt, cag, acc, gca, cca, atc, agg, gac, cct, agc, gag, gga, ctc, gtc, ggc, tcc, gcc, acg, cgt, ggg, ccc, tcg, cgc, cga, gcg, cgg, ccg, nnn, nna, naa, ntt, tnn, cnn, gnn, ann, nnt, nng, nnc, agn, ttn, aan, acn, tan, nat, tcn, ngt, nct, can, gtn, ctn, nta, atn, tgn, ana, nca, ggn, nga, tna, nac, ntg, gcn, gan, tgk, ngc, ccn, ncc, ngg, tnt, ntc, nag, agk, yta, cnt, ktt, aya, gkt, kta, gnt, nan, ytt, ktg, gkc, tty, ayt, tay, yaa, acy, gsc, aay, tgy, ggk, ant, tyt, yac, tya, yat, anc, ang, cay, tkt, cak, cna, cng, rcc, akt, ggw, aty, cgn, gyt, tng, acw, aak, cyt, ytg, raa, yca, ntn, gay, gna, kat, kct, gnc, ngn, cty, tkg, tnc, yag, ayc, kca, aka, tyg, gka, ygt, cnc, cya, ttk, ayg, tka, gng, maa, tth, yga, ncn, ama, aar, kag, ytc, gtk, cch, ncg, kaa, ctk, gty, yct, ara, rtg, ckt, tar, gya, kac, tgr, crc, ccy, tkc, tak, akg, tyc, grt, gcy, trt, ggr, ygg, gak, gcr, kgt, ygc, cgk, wga, wtc, tma, tck, atr, waa, vcc, cwt, tcy, tgs, rgc, rac, agy, kgc, gam, haa, agr, rgt, tha, cyc, atk, gtr, tra, nam, gkg, gwg, cra)
vocabList.size
res17: Int = 241
// Create vector of token counts
val countVectors_train = vectorizer.transform(tokenized_df_train).select("id", "features")
val countVectors_test = vectorizer.transform(tokenized_df_test).select("id", "features")
countVectors_train: org.apache.spark.sql.DataFrame = [id: bigint, features: vector]
countVectors_test: org.apache.spark.sql.DataFrame = [id: bigint, features: vector]
import org.apache.spark.ml.linalg.{Vector => MLVector}
import org.apache.spark.mllib.{linalg => mllib}
import org.apache.spark.ml.{linalg => ml}

val lda_countVector_train = countVectors_train.map { case Row(id: Long, countVector: MLVector) => (id, mllib.Vectors.fromML(countVector)) }.cache()
val lda_countVector_test = countVectors_test.map { case Row(id: Long, countVector: MLVector) => (id, mllib.Vectors.fromML(countVector)) }.cache()
import org.apache.spark.ml.linalg.{Vector=>MLVector}
import org.apache.spark.mllib.{linalg=>mllib}
import org.apache.spark.ml.{linalg=>ml}
lda_countVector_train: org.apache.spark.sql.Dataset[(Long, org.apache.spark.mllib.linalg.Vector)] = [_1: bigint, _2: vector]
lda_countVector_test: org.apache.spark.sql.Dataset[(Long, org.apache.spark.mllib.linalg.Vector)] = [_1: bigint, _2: vector]
import org.apache.spark.mllib.linalg.{Vectors => OldVectors}
import org.apache.spark.ml.linalg.{Vectors => NewVectors}


val lda_countVector_train_1 = lda_countVector_train.map({case (a,b) =>(a,b.asML)})
val lda_countVector_test_1 = lda_countVector_test.map({case (a,b) =>(a,b.asML)})
import org.apache.spark.mllib.linalg.{Vectors=>OldVectors}
import org.apache.spark.ml.linalg.{Vectors=>NewVectors}
lda_countVector_train_1: org.apache.spark.sql.Dataset[(Long, org.apache.spark.ml.linalg.Vector)] = [_1: bigint, _2: vector]
lda_countVector_test_1: org.apache.spark.sql.Dataset[(Long, org.apache.spark.ml.linalg.Vector)] = [_1: bigint, _2: vector]
val trainDF = lda_countVector_train_1.toDF()
val testDF = lda_countVector_test_1.toDF()

trainDF: org.apache.spark.sql.DataFrame = [_1: bigint, _2: vector]
testDF: org.apache.spark.sql.DataFrame = [_1: bigint, _2: vector]
spark.conf.set("spark.sql.autoBroadcastJoinThreshold", -1)

val mergedTrainingData = trainDF.join(k_mers_df_train,trainDF("_1") === k_mers_df_train("id"),"inner").withColumnRenamed("_2","features").drop("_1")
val mergedTestData = testDF.join(k_mers_df_test,testDF("_1") === k_mers_df_test("id"),"inner").withColumnRenamed("_2","features").drop("_1")
mergedTrainingData: org.apache.spark.sql.DataFrame = [features: vector, genome: string ... 2 more fields]
mergedTestData: org.apache.spark.sql.DataFrame = [features: vector, genome: string ... 2 more fields]

Classification

The count vectors are used as features for classification

import org.apache.spark.ml.feature.{StringIndexer,VectorAssembler}
import org.apache.spark.ml.Pipeline
import org.apache.spark.ml.feature.LabeledPoint
import org.apache.spark.ml.classification.RandomForestClassifier
import org.apache.spark.ml.linalg.Vector

val transformers = Array(
              new StringIndexer().setInputCol("label").setOutputCol("label_id"))

// Train a RandomForest model.
val rf = new RandomForestClassifier() 
              .setLabelCol("label_id")
              .setFeaturesCol("features")
              .setNumTrees(500)
              .setFeatureSubsetStrategy("auto")
              .setImpurity("gini")
              .setMaxDepth(20)
              .setMaxBins(32)
              .setSeed(12345)

val model = new Pipeline().setStages(transformers :+ rf).fit(mergedTrainingData)
import org.apache.spark.ml.feature.{StringIndexer, VectorAssembler}
import org.apache.spark.ml.Pipeline
import org.apache.spark.ml.feature.LabeledPoint
import org.apache.spark.ml.classification.RandomForestClassifier
import org.apache.spark.ml.linalg.Vector
transformers: Array[org.apache.spark.ml.feature.StringIndexer] = Array(strIdx_e8cf65204547)
rf: org.apache.spark.ml.classification.RandomForestClassifier = rfc_0a45a46b7366
model: org.apache.spark.ml.PipelineModel = pipeline_14ad91398432
import org.apache.spark.mllib.evaluation.MulticlassMetrics

def evaluateModel(model: org.apache.spark.ml.PipelineModel, df: org.apache.spark.sql.DataFrame){
  val predictionsOnData = model.transform(df)
  val predictionAndLabelsRdd = predictionsOnData.select("prediction", "label_id").as[(Double,Double)].rdd

  val metricsMulti = new MulticlassMetrics(predictionAndLabelsRdd)
  val accuracy = metricsMulti.accuracy
  
  val fm0 = metricsMulti.fMeasure(0)
  val fm1 = metricsMulti.fMeasure(1)
  val fm2 = metricsMulti.fMeasure(2)
  val fm3 = metricsMulti.fMeasure(3)
  val fm4 = metricsMulti.fMeasure(4)
  val fm5 = metricsMulti.fMeasure(5)
  
  println("Confusion matrix:")
  println(metricsMulti.confusionMatrix)
  
  println("Summary Statistics")
  println(s"Accuracy = $accuracy")
  
  println(s"fm0 = $fm0")
  println(s"fm1 = $fm1")
  println(s"fm2 = $fm2")
  println(s"fm3 = $fm3")
  println(s"fm4 = $fm4")
  println(s"fm5 = $fm5")

}
evaluateModel(model, mergedTrainingData)
Confusion matrix:
12776.0  0.0     0.0     0.0    0.0    0.0   
70.0     6955.0  3.0     0.0    0.0    0.0   
139.0    1.0     1002.0  1.0    0.0    0.0   
133.0    0.0     4.0     756.0  0.0    0.0   
36.0     0.0     0.0     0.0    175.0  0.0   
33.0     0.0     0.0     0.0    0.0    71.0  
Summary Statistics
Accuracy = 0.981042654028436
fm0 = 0.9841697800716405
fm1 = 0.99470823798627
fm2 = 0.9312267657992566
fm3 = 0.9163636363636364
fm4 = 0.9067357512953368
fm5 = 0.8114285714285714
evaluateModel(model, mergedTestData)
Confusion matrix:
5450.0  8.0     6.0    4.0    0.0   0.0   
140.0   2743.0  8.0    0.0    0.0   0.0   
189.0   7.0     314.0  6.0    0.0   0.0   
116.0   1.0     7.0    269.0  0.0   0.0   
44.0    2.0     1.0    3.0    46.0  0.0   
9.0     0.0     0.0    0.0    0.0   22.0  
Summary Statistics
Accuracy = 0.9413517828632251
fm0 = 0.9548002803083393
fm1 = 0.9706298655343242
fm2 = 0.7370892018779341
fm3 = 0.7970370370370371
fm4 = 0.647887323943662
fm5 = 0.8301886792452831

ScaDaMaLe Course site and book

//Load LDA model or the topic distributions
// data format: org.apache.spark.sql.DataFrame = [genome:string, label:string, id:long]
val k_mers_df_train = spark.read.parquet("dbfs:/FileStore/shared_uploads/caylak@kth.se/data_train_nonoverlapping")
val k_mers_df_test = spark.read.parquet("dbfs:/FileStore/shared_uploads/caylak@kth.se/data_test_nonoverlapping")

// data format: org.apache.spark.sql.DataFrame = [_1: bigint, _2: vector] the vector part contains the topic distributions
val trainingData = spark.read.parquet("dbfs:/FileStore/shared_uploads/caylak@kth.se/topic_dist_train_t20_i20k_no_cv")
val testData = spark.read.parquet("dbfs:/FileStore/shared_uploads/caylak@kth.se/topic_dist_test_t20_i20k_no_cv")
k_mers_df_train: org.apache.spark.sql.DataFrame = [genome: string, label: string ... 1 more field]
k_mers_df_test: org.apache.spark.sql.DataFrame = [genome: string, label: string ... 1 more field]
trainingData: org.apache.spark.sql.DataFrame = [_1: bigint, _2: vector]
testData: org.apache.spark.sql.DataFrame = [_1: bigint, _2: vector]
//Merge data sources to get labels
spark.conf.set("spark.sql.autoBroadcastJoinThreshold", -1)
val mergedTrainingData = trainingData.join(k_mers_df_train,trainingData("_1") === k_mers_df_train("id"),"inner").withColumnRenamed("_2","features").drop("_1")
val mergedTestData = testData.join(k_mers_df_test,testData("_1") === k_mers_df_test("id"),"inner").withColumnRenamed("_2","features").drop("_1")
mergedTrainingData: org.apache.spark.sql.DataFrame = [features: vector, genome: string ... 2 more fields]
mergedTestData: org.apache.spark.sql.DataFrame = [features: vector, genome: string ... 2 more fields]
mergedTrainingData.show(5)
+--------------------+--------------------+-------+----+
|            features|              genome|  label|  id|
+--------------------+--------------------+-------+----+
|[0.05124403025197...|CTT GTA GAT CTG T...|oceania|  26|
|[0.04866065493877...|CTC TTG TAG ATC T...|oceania|  29|
|[0.04856023665158...|ACT TTC GAT CTC T...|oceania| 474|
|[0.05114514533282...|CTT GTA GAT CTG T...|oceania| 964|
|[0.04856846330546...|ACT TTC GAT CTC T...|oceania|1677|
+--------------------+--------------------+-------+----+
only showing top 5 rows
mergedTestData.show(5)
+--------------------+--------------------+-------+----+
|            features|              genome|  label|  id|
+--------------------+--------------------+-------+----+
|[0.04856691976914...|ACT TTC GAT CTC T...|oceania|2250|
|[0.04775129705622...|ACT TTC GAT CTC T...|oceania|3091|
|[0.04856692420144...|ACT TTC GAT CTC T...|oceania|7279|
|[0.04881282010425...|ACT TTC GAT CTC T...|oceania|8075|
|[0.05110516016513...|CTT GTA GAT CTG T...|oceania|9458|
+--------------------+--------------------+-------+----+
only showing top 5 rows
import org.apache.spark.sql.functions._
import org.apache.spark.ml._


//Split the feature vector into seprate columns
val vecToArray = udf( (xs: linalg.Vector) => xs.toArray )
val dfArr = mergedTrainingData.withColumn("featuresArr" , vecToArray($"features") )
val elements = Array("f1", "f2", "f3", "f4", "f5", "f6","f7", "f8", "f9","f10")
val sqlExpr = elements.zipWithIndex.map{ case (alias, idx) => col("featuresArr").getItem(idx).as(alias) }
val df_feats = dfArr.select((col("label") +: sqlExpr) : _*)
import org.apache.spark.sql.functions._
import org.apache.spark.ml._
vecToArray: org.apache.spark.sql.expressions.UserDefinedFunction = SparkUserDefinedFunction($Lambda$9301/1088827103@108f1ec1,ArrayType(DoubleType,false),List(Some(class[value[0]: vector])),None,true,true)
dfArr: org.apache.spark.sql.DataFrame = [features: vector, genome: string ... 3 more fields]
elements: Array[String] = Array(f1, f2, f3, f4, f5, f6, f7, f8, f9, f10)
sqlExpr: Array[org.apache.spark.sql.Column] = Array(featuresArr[0] AS `f1`, featuresArr[1] AS `f2`, featuresArr[2] AS `f3`, featuresArr[3] AS `f4`, featuresArr[4] AS `f5`, featuresArr[5] AS `f6`, featuresArr[6] AS `f7`, featuresArr[7] AS `f8`, featuresArr[8] AS `f9`, featuresArr[9] AS `f10`)
df_feats: org.apache.spark.sql.DataFrame = [label: string, f1: double ... 9 more fields]
df_feats.describe().show()
+-------+------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+
|summary|       label|                  f1|                  f2|                  f3|                  f4|                  f5|                  f6|                  f7|                  f8|                  f9|                 f10|
+-------+------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+
|  count|       22155|               22155|               22155|               22155|               22155|               22155|               22155|               22155|               22155|               22155|               22155|
|   mean|        null| 0.04931437716125177| 0.05103219325119624| 0.05043777410343692| 0.04985720003755815| 0.05109828486193199|0.049969419011346175|0.049612622552246397| 0.05172608119915934| 0.05519918725594238|0.050902505322165705|
| stddev|        null| 0.00376757883941906|0.012025788212709033|0.008575417672641356|0.007216341887817029|   0.017036551424972|0.006744772303600655|0.006141190111960429|0.015925101732795318|0.028248525286887288|0.011750518257958392|
|    min|      africa|7.597652484573448E-5|7.931226826328689E-5|7.472127009799751E-5|8.488001247712824E-5|5.737788781311747E-5|7.510235436716417E-5| 8.01478429209781E-5|1.102376409869290...|7.060888276954563E-5|5.730971677795215...|
|    max|southamerica| 0.07096255125893133| 0.08483680076143339| 0.07401129608174387| 0.09129137902172121| 0.07569705042586143| 0.09892558758161725| 0.12033929830179531| 0.08811599095688616| 0.09753703174079206| 0.08152012057643862|
+-------+------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+
import org.apache.spark.sql.functions.rand
display(df_feats.sample(true,0.5).orderBy(rand()))

import org.apache.spark.ml.feature.{StringIndexer,VectorAssembler}
import org.apache.spark.ml.Pipeline
import org.apache.spark.ml.feature.LabeledPoint
import org.apache.spark.ml.classification.RandomForestClassifier
import org.apache.spark.ml.linalg.Vector

val transformers = Array(
              new StringIndexer().setInputCol("label").setOutputCol("label_id"))

// Train a RandomForest model.
val rf = new RandomForestClassifier()
              .setLabelCol("label_id")
              .setFeaturesCol("features")
              .setNumTrees(500)
              .setFeatureSubsetStrategy("auto")
              .setImpurity("gini")
              .setMaxDepth(20)
              .setMaxBins(32)
              .setSeed(12345)

val model = new Pipeline().setStages(transformers :+ rf).fit(mergedTrainingData)
import org.apache.spark.ml.feature.{StringIndexer, VectorAssembler}
import org.apache.spark.ml.Pipeline
import org.apache.spark.ml.feature.LabeledPoint
import org.apache.spark.ml.classification.RandomForestClassifier
import org.apache.spark.ml.linalg.Vector
transformers: Array[org.apache.spark.ml.feature.StringIndexer] = Array(strIdx_5c4c8beb7d03)
rf: org.apache.spark.ml.classification.RandomForestClassifier = rfc_c92cc57e8554
model: org.apache.spark.ml.PipelineModel = pipeline_fd80c4a01f49
import org.apache.spark.mllib.evaluation.MulticlassMetrics

def evaluateModel(model: org.apache.spark.ml.PipelineModel, df: org.apache.spark.sql.DataFrame){
  val predictionsOnData = model.transform(df)
  val predictionAndLabelsRdd = predictionsOnData.select("prediction", "label_id").as[(Double,Double)].rdd

  val metricsMulti = new MulticlassMetrics(predictionAndLabelsRdd)

  val accuracy = metricsMulti.accuracy
  val fm0 = metricsMulti.fMeasure(0)
  val fm1 = metricsMulti.fMeasure(1)
  val fm2 = metricsMulti.fMeasure(2)
  val fm3 = metricsMulti.fMeasure(3)
  val fm4 = metricsMulti.fMeasure(4)
  val fm5 = metricsMulti.fMeasure(5)

  println("Confusion matrix:")
  println(metricsMulti.confusionMatrix)

  println("Summary Statistics")
  println(s"Accuracy = $accuracy")

  println(s"fm0 = $fm0")
  println(s"fm1 = $fm1")
  println(s"fm2 = $fm2")
  println(s"fm3 = $fm3")
  println(s"fm4 = $fm4")
  println(s"fm5 = $fm5")

}
import org.apache.spark.mllib.evaluation.MulticlassMetrics
evaluateModel: (model: org.apache.spark.ml.PipelineModel, df: org.apache.spark.sql.DataFrame)Unit

Review fit of training dataset

evaluateModel(model, mergedTrainingData)
Confusion matrix:
12688.0  80.0    7.0     1.0    0.0    0.0   
137.0    6891.0  0.0     0.0    0.0    0.0   
53.0     18.0    1071.0  1.0    0.0    0.0   
47.0     3.0     0.0     843.0  0.0    0.0   
16.0     2.0     0.0     1.0    192.0  0.0   
19.0     0.0     0.0     0.0    0.0    85.0  
Summary Statistics
Accuracy = 0.9826224328593997
fm0 = 0.9860118122474355
fm1 = 0.9828840393667095
fm2 = 0.9644304367402071
fm3 = 0.9695227142035653
fm4 = 0.9528535980148882
fm5 = 0.8994708994708994

Performance on Test dataset

evaluateModel(model, mergedTestData)
Confusion matrix:
5373.0  89.0    3.0   3.0    0.0  0.0   
368.0   2522.0  0.0   1.0    0.0  0.0   
478.0   15.0    20.0  3.0    0.0  0.0   
193.0   8.0     0.0   192.0  0.0  0.0   
89.0    5.0     0.0   1.0    1.0  0.0   
14.0    0.0     0.0   0.0    0.0  17.0  
Summary Statistics
Accuracy = 0.8648217136774881
fm0 = 0.896770424768422
fm1 = 0.9121157323688969
fm2 = 0.07421150278293136
fm3 = 0.6475548060708264
fm4 = 0.020618556701030924
fm5 = 0.7083333333333333

ScaDaMaLe Course site and book

Word count vectors as features for classification, overlapping k-mers

Confusion matrix
5453.08.06.01.00.0
135.02754.01.01.00.0
211.04.0297.04.00.0
115.00.03.0275.00.0
42.01.02.03.048.0
7.00.00.02.00.0

Summary Statistics * Accuracy = 0.942

Word count vectors as features for classification, overlapping k-mers

Confusion matrix
5446.08.010.04.00.0
137.02746.00.01.00.0
186.07.0314.09.00.0
112.02.09.0270.00.0
43.03.01.03.046.0
10.00.00.00.00.0

Summary Statistics * Accuracy = 0.941

Word count vectors as features for classification, overlapping k-mers

Confusion matrix
5446.08.010.04.00.0
137.02746.00.01.00.0
186.07.0314.09.00.0
112.02.09.0270.00.0
43.03.01.03.046.0
10.00.00.00.00.0

Summary Statistics * Accuracy = 0.941

Number of topics:10 Number of iterations: 100 Nonoverlapping accuracy table:

Confusion matrix
5167.0288.00.011.00.0
2414.0472.00.01.00.0
496.020.00.00.00.0
217.05.00.0170.00.0
94.02.00.00.00.0
28.00.00.03.00.0

Summary Statistics * Accuracy = 0.618 * fm0 = 0.744 * fm1 = 0.257 * fm2 = 0.0 * fm3 = 0.588 * fm4 = 0.0

Number of topics:10 Number of iterations: 1000 Nonoverlapping accuracy table:

Confusion matrix
5290.0113.010.03.00.0
1012.01667.022.00.03.0
430.010.076.00.00.0
213.06.03.0169.00.0
93.02.01.00.00.0
31.00.00.00.00.0

Summary Statistics * Accuracy = 0.787 * fm0 = 0.847 * fm1 = 0.740 * fm2 = 0.242 * fm3 = 0.600 * fm4 = 0.0

Number of topics:20 Number of iterations: 100 Nonoverlapping accuracy table:

Confusion matrix
4174.01286.00.08.00.0
829.02056.00.06.00.0
408.0108.00.00.00.0
189.034.00.0170.00.0
48.048.00.00.00.0
29.01.00.01.00.0

Summary Statistics * Accuracy = 0.681 * fm0 = 0.749 * fm1 = 0.640 * fm2 = 0.0 * fm3 = 0.588 * fm4 = 0.0

Number of topics:20 Number of iterations: 20000 Nonverlapping accuracy table:

Confusion matrix
5373.089.03.03.00.0
368.02522.00.01.00.0
478.015.020.03.00.0
193.08.00.0192.00.0
89.05.00.01.01.0
14.00.00.00.00.0

Summary Statistics * Accuracy = 0.865 * fm0 = 0.897 * fm1 = 0.912 * fm2 = 0.074 * fm3 = 0.648 * fm4 = 0.021

Number of topics:20 Number of iterations: 15000 Overlapping accuracy table:

Confusion matrix
5419.025.012.012.00.0
190.02687.07.07.00.0
398.013.089.015.00.0
193.02.02.0196.00.0
89.02.03.01.01.0
11.00.00.00.00.0

Summary Statistics * Accuracy = 0.895 * fm0 = 0.921 * fm1 = 0.956 * fm2 = 0.283 * fm3 = 0.628 * fm4 = 0.021

Number of topics:50 Number of iterations: 100 Nonoverlapping accuracy table:

Confusion matrix
5250.0217.00.01.00.0
2667.0224.00.00.00.0
503.013.00.00.00.0
220.03.00.0170.00.0
94.02.00.00.00.0
30.01.00.00.00.0

Summary Statistics * Accuracy = 0.601 * fm0 = 0.738 * fm1 = 0.134 * fm2 = 0.0 * fm3 = 0.603 * fm4 = 0.0

Summary Tables for (LDA + Classification) and Classification

  • (LDA + Classification) Varying number of topics and fixed number of iterations = 100:
# topicsAccuracy
100.618
200.681
500.601

Conclusion: 20, approximately the number of aminoacids, is a good candidate for the number of topics

  • We tried both nonoverlapping and overlapping k-mer features directly on classifier:
Data typeAccuracy
Nonoverlapping k-mers0.941
Overlapping k-mers0.942
  • Also, on (LDA + classification) for number of topics = 20. While for nonoverlapping the number of iterations are 20000, for overlapping the number of iterations are 15000. Due to 'unexpected shutdown' of clusters we couldn't run LDA on overlapping clusters for 20000 iterations. However results suggests that overlapping k-mers helps LDA to learn structure better in terms of prediction power (but not efficiently) :
Data typeAccuracy
Nonoverlapping k-mers0.865
Overlapping k-mers0.895

Conclusion: For classifier, there is not much difference on overlapping or nonoverlapping k-mer features; however for LDA having overlapping helps to learn structure more. But increased time complexity of overlapping k-mers requires LDA to have more iterations to learn.

  • (LDA + Classification) Varying number of iterations and topics :
(# iterations, # topics, overlapping)Accuracy
(100, 10, false)0.618
(1000, 10, false)0.787
(100, 20, false)0.681
(15000, 20, true)0.895
(20000, 20, false)0.865

Conclusion: Also considering the topic summaries, we can conclude that the number of iterations highly affect the topic diversity, and thus classifier performance. Although we can check convergence of EM algorithm to stop, this migh be problematic due to increasing computation time with the number of iterations.

  • The best of (LDA + Classification) where the number of topics is 20 and the number of iterations is 15000 and vs direct Classification on k-mers performance comparision.
MethodAccuracy
(LDA + Classification)0.895
Direct Classification0.942

Conclusion: We couldn't perform higher number of iterations (due to limited time and cluster restarts); however, this result shows that LDA is capable of summarizing k-mer features. Once, we learn the mapping from k-mers to reduced topic distribution space via LDA, then we can use this reduced number of features to train classifier. This makes the data more scalable and may save computation time in the long run.

Our conclusions

  • What we have tried and failed? What we have learned?
    • Overlapping k-mers with low iteration led poor diversity in topics
    • With expectation maximization LDA required iteration increases significantly. Where to stop the iteration becomes a problem due to computation time concerns.
    • Changing doc or term concentration did not lead better results
    • We tried several number of topics (10, 20, 50) and #topics = 20, which is almost equal to number of aminoacids, yields the best result (coincidence or the number of aminoacids is a good choice for topic number?)
    • Using a fixed vocabulary of k-mers (using nucleotide alphabet A-T-G-C) yields poor topic diversity [since there are sequencing errors in genomes, there are different k-mers such as TAK, TAR. And, we concluded that these errors actually give some insight on the virus]
  • The comparison between LDA-based classifier and directly-k-mers classifier demonstrates that with enough iterations LDA is capable of summarising the data.
  • There is not much difference between overlapping and nonoverlapping k-mer features when we directly give them to classifier. However, for LDA overlapping features require much higher number of iterations for convergence [or topic divergence]
  • Very final conclusion: Directly giving k-mers to classifier works better. However, once we learn from LDA with reduced number of features (from k-mers to topic distributions), we can have a good result on classification which can save computation time and make it scalable (by reducing the number of features to the number of topics chosen).

“Everything should be made as simple as possible, but no simpler.”

ScaDaMaLe Course site and book

In this project we have used Spark Streaming and the twitter4j library to perform filtered streaming of tweets. As we were interested in combining location and sentiment information, we filtered for location tagged tweets. This was necessary as only around 1% of tweets coming straight from the twitter hose has information on the country of origin.

In particular we hoped to explore the following ideas/questions: * Sentiment analysis of text can be difficult across different languages. However, the same emojis are used on twitter all over the world (although some emojis are more popular in some regions). Could this be used to compare sentiment across borders? * From the filtered stream we get tweets containing information on country of origin and timestamps. What insight can we get by visualizing tweets as a function of time and space?

We saw this project as an opportunity to learn more about twitter and streaming in general as none of us had any prior experience with this.

Contents

Our project consists of 8 notebooks. We recommend you read through the first four, and if you are curious about some of the functions we use or how the data was collected, then have a look in the appendix notebooks as well. The appendices are not quite as tidy as the first four notebooks.

  • 01 Introduction
  • 02 Clustering emoticons based on tweets
  • 03 Dynamic Tweet Maps
  • 04 Conclusion
  • 05 Appendix get cc data
  • 06 Appendix Tweet carto functions
  • 07a Appendix ExtendedTwitterUtils2run
  • 07b Appendix TTTDFfunctions

Notes on data collection

Tweets were collected using functions from the course notebooks 07_a_appendix_extendedTwitterUtils and 07_b_appendix_TTTDFfunctions (originally numbered 025). Some minor changes were made in order to perform filtered streaming only of countries with a known country of origin.

In notebook 05_appendix_get-cc-data we run the function streamFuncWithProcessing(). This function creates a new twitter stream by calling the createStream methods from the ExtendedTwitterUtils object in notebook 07_a. One of the arguments to this method is a filterquery, which has been set to require that the tweet must have registered coordinates. Longitudes range from -180 to 180 degrees and latitudes range from -90 to 90 degrees, covering the entire globe.

// Create filter

val locationsQuery = new FilterQuery().locations(Array(-180.0, -90.0), Array(180.0, 90.0)) // all locations

// Create a Twitter Stream for the input source.

val twitterStream = ExtendedTwitterUtils.createStream(ssc, auth, Some(locationsQuery))

We used the databricks jobs feature to automatically run the data acquisition for 3 minutes every hour from December 22nd 2020 until January 2nd 2021. We also acquired data continuously on the 22nd. In total this yielded around 2 million tweets.

ScaDaMaLe Course site and book

Clustering emoticons based on tweets

In this notebook we will look at the symbols in the Unicode block Emoticons, which contains 80 commonly used emojis. The goal is to find out which emoticons are related to each other and hopefully finding clusters that correspond vaguely to some sentiment of an emoticon. We will do this in a fairly naïve way since our focus was on learning streaming, spark and scala. First let's have a look at the emojis in question, they are presented in the table from Wikipedia below.

In the following two cells we create a list of these emoticons and load the previously collected dataset of tweets.

val emoticonsList = List(
  "😀", "😁", "😂",	"😃", "😄",	"😅", "😆",	"😇", "😈",	"😉", "😊",	"😋", "😌", "😍", "😎", "😏",
  "😐",	"😑", "😒",	"😓", "😔", "😕", "😖", "😗", "😘", "😙", "😚", "😛", "😜", "😝", "😞", "😟",
  "😠",	"😡", "😢", "😣", "😤", "😥", "😦", "😧", "😨", "😩", "😪", "😫", "😬", "😭", "😮", "😯",
  "😰",	"😱", "😲", "😳", "😴", "😵", "😶", "😷", "😸", "😹", "😺", "😻", "😼", "😽", "😾", "😿",
  "🙀",	"🙁", "🙂", "🙃", "🙄", "🙅", "🙆", "🙇", "🙈", "🙉", "🙊", "🙋", "🙌", "🙍", "🙎", "🙏"
)

val emoticonsMap = emoticonsList.zipWithIndex.toMap
val nbrEmoticons = emoticonsList.length
val fullDF = sqlContext.read.parquet("/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus/{2020,2021,continuous_22_12}/*/*/*/*/*")
println(fullDF.count)
2013137
fullDF: org.apache.spark.sql.DataFrame = [CurrentTweetDate: timestamp, CurrentTwID: bigint ... 7 more fields]

How to cluster emoticons

We could just look at the descriptions and appearances of the various emoticons and cluster them into broad categories based on that. However, instead we will try to use our collected tweet dataset to create a clustering. Then we will use the intuition based on the descriptions and appearances to judge how successful this approach was.

We will use the Jaccard distance between emoticons to try to cluster them. The Jaccard distance between emoticons \(e_1\) and \(e_2\) is given by

\[ d(e_1, e_2) = 1 - \frac{\# (e_1\wedge e_2)}{\# (e_1) + \# (e_2) - \# (e_1\wedge e_2)}, \]

where \(\#(e)\) is the number of tweets collected containing the emoticon \(e\), and \(\# (e_1\wedge e_2)\) is the number of tweets collected containing both \(e_1\) and \(e_2\).

In order to find the Jaccard distances between emoticons, we must create a matrix containing for each pair of emoticons how often they appear together in the dataset of tweets and also in how many tweets each emoticon appears individually. First we define a function to create such a matrix for an individual tweet. Then we will sum these matrices for all the tweets. The matrices will be represented by a 1D array following a certain indexing scheme and containing the entries of the upper triangular part of the matrix (there would be redundancy in finding the whole matrix since it will be symmetric).

def emoticonPairToIndex (a : Int, b : Int) : Int = { // helper function for indexing
  val i = if (a < b) a else b // makes sure j >= i
  val j = if (a < b) b else a
  return i*nbrEmoticons - (i * (i+1))/2 + j
}

def createEmoticonIterator (s : String) : scala.util.matching.Regex.MatchIterator = { // helper function for iterating through the emoticons in a string s
  return s"""[${emoticonsList.mkString}]""".r.findAllIn(s)
}

def createEmoticonMatrix (s : String) : Array[Int] = { // The pair (i, j) will be at location i*(nbrEmoticons - (i+1)/2) + j in this array (this is compatible with later scipy functions)
  var m = Array.fill((nbrEmoticons*nbrEmoticons + nbrEmoticons)/2)(0) // there are 80 emoticons and thus 80^2 / 2 + 80 / 2 emoticon pairs including pairs of the same emoticon
  val emoticonIterator = createEmoticonIterator(s)
  // sets m to 1 for each index corresponding to a pair of emoticons present in the string s (very hacky code...)
  emoticonIterator.zipWithIndex.foreach(em_pair => // iterate over emoticons in s
                                        (createEmoticonIterator(s).drop(em_pair._2)).foreach( // iterate over remaining emoticons in s
                                          second_em =>
                                            (m(emoticonPairToIndex(
                                                emoticonsMap(em_pair._1),
                                                emoticonsMap(second_em))
                                              )
                                            = 1) // set m to 1 for each emoticon pair found in s
                                         )
                                       )
  return m
}
emoticonPairToIndex: (a: Int, b: Int)Int
createEmoticonIterator: (s: String)util.matching.Regex.MatchIterator
createEmoticonMatrix: (s: String)Array[Int]

In the cell below we sum all the "occurence-matrices" and print the diagonal of the summed matrix, i.e. the number of tweets containing each individual emoticon. It is clear that some emoticons are used far more often than others.

val emoticonsMatrix = fullDF.select("CurrentTweet")
                            .filter($"CurrentTweet".rlike(emoticonsList.mkString("|"))) // filters tweets with emoticons
                            .map(row => createEmoticonMatrix(row.mkString)) // creates an "adjacency matrix" for each tweet
                            .reduce((_, _).zipped.map(_ + _)) // sums the matrices elementwise

emoticonsList.zipWithIndex.foreach({case (e, i) => println(e + ", " + Integer.toString(emoticonsMatrix(emoticonPairToIndex(i, i))) + " occurences")})

In the following two cells we create the Jaccard distance matrix which we want to use to cluster the emoticons.

def jaccardDistance (e1 : Int, e2 : Int) : Double = { // specify the emojis in terms of their indices in the list
  return 1.0 - 1.0 * emoticonsMatrix(emoticonPairToIndex(e1, e2)) /
    (emoticonsMatrix(emoticonPairToIndex(e1, e1)) +  emoticonsMatrix(emoticonPairToIndex(e2, e2)) - emoticonsMatrix(emoticonPairToIndex(e1, e2)))
}
jaccardDistance: (e1: Int, e2: Int)Double
var jaccardMatrix = Array.fill(emoticonsMatrix.length)(1.0)
(0 until nbrEmoticons).foreach(i => (i until nbrEmoticons).foreach(j => (jaccardMatrix(emoticonPairToIndex(i, j)) = jaccardDistance(i, j))))

Finally we write the Jaccard distance matrix and the emoticon list to file so that we don't have to keep rerunning the above cells and so that we can load them into python cells next.

//scala.tools.nsc.io.File("/dbfs/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus/emoticonsList.txt").writeAll(emoticonsList.mkString("\n"))
//scala.tools.nsc.io.File("/dbfs/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus/jMatrix.txt").writeAll(jaccardMatrix.mkString("\n"))

Clustering using python

We now switch to python cells in order to use various clustering methods implemented in SciPy and scikit-learn. First we install and import some packages for later use, then we load the previously saved Jaccard matrix and emoticons list.

%pip install pycountry
Python interpreter will be restarted.
Collecting pycountry
  Downloading pycountry-20.7.3.tar.gz (10.1 MB)
Building wheels for collected packages: pycountry
  Building wheel for pycountry (setup.py): started
  Building wheel for pycountry (setup.py): finished with status 'done'
  Created wheel for pycountry: filename=pycountry-20.7.3-py2.py3-none-any.whl size=10746863 sha256=870cc02de7d6d11499effd59f2b73acdbffc04146079c4a4f9a841ca30f2b587
  Stored in directory: /root/.cache/pip/wheels/57/e8/3f/120ccc1ff7541c108bc5d656e2a14c39da0d824653b62284c6
Successfully built pycountry
Installing collected packages: pycountry
Successfully installed pycountry-20.7.3
Python interpreter will be restarted.
import json
import os
from matplotlib import font_manager as fm, pyplot as plt, rcParams
import numpy as np
import pandas as pd
import pycountry
from scipy.cluster.hierarchy import dendrogram, linkage
from sklearn.manifold import locally_linear_embedding, TSNE
from sklearn.neighbors import NearestNeighbors
jMatrix = np.loadtxt("/dbfs/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus/jMatrix.txt")

emoticonsList = []

with open("/dbfs/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus/emoticonsList.txt", 'r') as filehandle:
    for line in filehandle:
        e = line.strip() #remove line break
        emoticonsList.append(e)

nbrEmoticons = len(emoticonsList)
print(emoticonsList)
['😀', '😁', '😂', '😃', '😄', '😅', '😆', '😇', '😈', '😉', '😊', '😋', '😌', '😍', '😎', '😏', '😐', '😑', '😒', '😓', '😔', '😕', '😖', '😗', '😘', '😙', '😚', '😛', '😜', '😝', '😞', '😟', '😠', '😡', '😢', '😣', '😤', '😥', '😦', '😧', '😨', '😩', '😪', '😫', '😬', '😭', '😮', '😯', '😰', '😱', '😲', '😳', '😴', '😵', '😶', '😷', '😸', '😹', '😺', '😻', '😼', '😽', '😾', '😿', '🙀', '🙁', '🙂', '🙃', '🙄', '🙅', '🙆', '🙇', '🙈', '🙉', '🙊', '🙋', '🙌', '🙍', '🙎', '🙏']

Some of the SciPy clustering implementations require a full distance matrix, rather than the condensed representation consisting of only the upper triangular part which we have been using thus far. So we create a full matrix in the cell below. In the cell after that we define a helper function for plotting 2D embeddings of emoticons, note that this function loads the unifont-upper font for emoticon rendering, which can be downloaded from http://unifoundry.com/unifont/index.html.

def emoticonPairToIndex(a, b): # same helper function as already defined in scala previously
  i = min(a, b) # makes sure j >= i
  j = max(a, b)
  return i * nbrEmoticons - (i * (i+1))//2 + j

fullDistanceMatrix = np.zeros([nbrEmoticons, nbrEmoticons])
for r in range(nbrEmoticons):
  for c in range(nbrEmoticons):
    fullDistanceMatrix[r, c] = jMatrix[emoticonPairToIndex(r, c)]
def scatterEmojis(emoticonsEmbedded):
  # This function plots a scatter plot of emoticons.
  # emoticonsEmbedded should be an 80x2 array
  # containing 2D coordinates for each of the
  # 80 emoticons in the unicode emoticon block (in the correct order).

  # standardize the embedding for nicer plotting:
  emoticonsEmbedded = emoticonsEmbedded - np.mean(emoticonsEmbedded)
  emoticonsEmbedded = emoticonsEmbedded/np.std(emoticonsEmbedded)

  # for proper emoji rendering change the font
  fpath = os.path.join(rcParams["datapath"], "/dbfs/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus/unifont_upper-13.0.05.ttf")
  prop = fm.FontProperties(fname=fpath, size=50)

  fig = plt.figure(figsize=(14, 14))
  for i, label in enumerate(emoticonsList):
      plt.text(emoticonsEmbedded[i, 0], emoticonsEmbedded[i, 1], label, fontproperties=prop)
  plt.setp(plt.gca(), frame_on=False, xticks=(), yticks=())

Locally linear embedding

First off we will look at embedding the emoticons into 2D in ways that respect the Jaccard distances at least to a degree.

Locally linear embedding (LLE) is one such method, which is focused on good presentation of local neighborhoods. You can read more about it in the scikit-learn documentation embedded below.

nbrNeighbors = 8
emoticonsNeighbors = NearestNeighbors(n_neighbors=nbrNeighbors, metric="precomputed").fit(fullDistanceMatrix)
emoticonsEmbedded, err = locally_linear_embedding(emoticonsNeighbors, n_neighbors=nbrNeighbors, n_components=2)

As we can see in the scatter plot below, LLE succeeds in separating the emoticons broadly into happy (down to the left), sad (up) and animal (down to the right) categories. Also some local clusters can be spotted, such as the three emoticons sticking out their tongues, close to the lower left corner.

scatterEmojis(emoticonsEmbedded)

t-distributed Stochastic Neighbor Embedding (t-SNE)

Another approach for embedding the distances into 2D is t-SNE. You can read more about this method in the sk-learn documentation below.

emoticonsEmbedded = TSNE(n_components=2, perplexity=20.0, early_exaggeration=12.0, learning_rate=2.0, n_iter=10000,
                         metric='precomputed', angle=0.01).fit_transform(fullDistanceMatrix)

t-SNE also does a good job at showing a separation between happy and sad emojis but the result is not as convincing as the LLE case. One could spend more time on optimizing the hyperparameters and probably find a better embedding here.

scatterEmojis(emoticonsEmbedded)

Hierarchical clustering

Instead of trying to embed the distances into 2D, we can also create a nice graphical representation in the form of a dendrogram or hierarchical clustering. For this we need to process the distance matrix somewhat again in the following cell.

# remove diagonal from jMatrix, as this is expected by the scipy linkage function:
diagonalIndices = [emoticonPairToIndex(i, i) for i in range(nbrEmoticons)]
jMatrixUpper = jMatrix[[i for i in range((nbrEmoticons**2 + nbrEmoticons)//2) if not i in diagonalIndices]]
assert len(jMatrixUpper) == len(jMatrix) - nbrEmoticons, "the upper matrix should have exactly 80 elements fewer than the upper+diagonal"

# creating a linkage matrix
Z = linkage(jMatrixUpper, 'complete', optimal_ordering=True)

Hierarchical clustering works by starting of with clusters of size one which are just the emoticons and then iteratively joining those clusters which are closest together. The distance between clusters can be defined in various ways, here we somewhat arbitrarily choose so called "complete linkage" which means that the distance between clusters \(a\) and \(b\) is given by the maximum Jaccard distance between some emoticon in \(a\) and some emoticon in \(b\).

We can use dendrograms to neatly represent hirearchical clusterings graphically. The closer two emoticons (or rather emoticon clusters) are to each other, the further down in the dendrogram their branches merge.

The interested WASP PhD student could consider taking the WASP Topological Data Analysis course to learn more about hierarchical clustering.

# plotting a dendrogram
fig = plt.figure(figsize=(40, 8))
dn = dendrogram(Z, labels=emoticonsList, leaf_rotation=0, color_threshold=1.)
ax = plt.gca()

# for proper emoji rendering change the font
fpath = os.path.join(rcParams["datapath"], "/dbfs/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus/unifont_upper-13.0.05.ttf")
prop = fm.FontProperties(fname=fpath, size=28)
x_labels = ax.get_xmajorticklabels()
for x in x_labels:
    x.set_fontproperties(prop)

ax.set_ylim([.85, 1.01])

We identify six main clusters in the dendrogram above. From left to right:

  • The green "prayer" cluster (🙌🙏😊🙇🙋😷) which also contains the mask emoji and a common smile emoji,
  • the teal "happy" cluster (😝😛😜😎😉😏😈😌😋😍😘😇😀😃😄😁😆😅🙂🙃),
  • the magenta "cat" cluster (😹😸😽😺😻😿😾🙀😼),
  • the yellow "shocked and kisses" or "SK" cluster (😶😬😲😮😯😗😙😚),
  • a combined "not happy" cluster consisting of the next black, green, red, teal and magenta clusters (😵😧😦😨😰😱😳😂😭😩😔😢😞😥😓😪😴😫😖😣😟🙁😕😐😑😒🙄😤😡😠),
  • finally the yellow "monkey" cluster (🙈🙊🙉).

We proceed with these clusters as they appeal sufficiently to our intuition to seem worthwhile. The observant reader will however have noted some curiosities such as the fact that the "not happy" cluster contains the crying laughing emoji 😂 which is the most popular emoticon in our tweet dataset and which might be used in both happy and not so happy contexts.

Next, we finish the clustering part of this notebook by saving the clusters to file.

monkeyEmoticons = dn["leaves"][76:79]
prayerEmoticons = dn["leaves"][0:6]
shockedAndKissesEmoticons = dn["leaves"][38:46]
happyEmoticons = dn["leaves"][9:29]
notHappyEmoticons = dn["leaves"][46:76]
catEmoticons = dn["leaves"][29:38]
emoticonsDict = {"monkey" : monkeyEmoticons,
                 "prayer" : prayerEmoticons,
                 "SK" : shockedAndKissesEmoticons,
                "happy" : happyEmoticons,
                "notHappy" : notHappyEmoticons,
                "cat" : catEmoticons}
print(emoticonsDict)
{'monkey': [72, 74, 73], 'prayer': [76, 79, 10, 71, 75, 55], 'SK': [54, 44, 50, 46, 47, 23, 25, 26], 'happy': [29, 27, 28, 14, 9, 15, 8, 12, 11, 13, 24, 7, 0, 3, 4, 1, 6, 5, 66, 67], 'notHappy': [53, 39, 38, 40, 48, 49, 51, 2, 45, 41, 20, 34, 30, 37, 19, 42, 52, 43, 22, 35, 31, 65, 21, 16, 17, 18, 68, 36, 33, 32], 'cat': [57, 56, 61, 58, 59, 63, 62, 64, 60]}
#with open('/dbfs/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus/emoticonClusters.json', 'w+') as f:
#    json.dump(emoticonsDict, f)

Filtering the tweets by cluster

We return to scala cells to filter the original dataset by what emoticons are present in each tweet. First we load the clusters from the just created json-file.

import org.json4s.jackson.JsonMethods.parse
val jsonString = scala.io.Source.fromFile("/dbfs/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus/emoticonClusters.json").mkString
val emoticonClusters = parse(jsonString).values.asInstanceOf[Map[String, List[BigInt]]]
emoticonClusters.foreach({case (key, list) => println(key + ": " + list.map(i => emoticonsList(i.toInt)).mkString)})
prayer: 🙌🙏😊🙇🙋😷
monkey: 🙈🙊🙉
happy: 😝😛😜😎😉😏😈😌😋😍😘😇😀😃😄😁😆😅🙂🙃
SK: 😶😬😲😮😯😗😙😚
cat: 😹😸😽😺😻😿😾🙀😼
notHappy: 😵😧😦😨😰😱😳😂😭😩😔😢😞😥😓😪😴😫😖😣😟🙁😕😐😑😒🙄😤😡😠
import org.json4s.jackson.JsonMethods.parse
jsonString: String = {"monkey": [72, 74, 73], "prayer": [76, 79, 10, 71, 75, 55], "SK": [54, 44, 50, 46, 47, 23, 25, 26], "happy": [29, 27, 28, 14, 9, 15, 8, 12, 11, 13, 24, 7, 0, 3, 4, 1, 6, 5, 66, 67], "notHappy": [53, 39, 38, 40, 48, 49, 51, 2, 45, 41, 20, 34, 30, 37, 19, 42, 52, 43, 22, 35, 31, 65, 21, 16, 17, 18, 68, 36, 33, 32], "cat": [57, 56, 61, 58, 59, 63, 62, 64, 60]}
emoticonClusters: Map[String,List[BigInt]] = Map(prayer -> List(76, 79, 10, 71, 75, 55), monkey -> List(72, 74, 73), happy -> List(29, 27, 28, 14, 9, 15, 8, 12, 11, 13, 24, 7, 0, 3, 4, 1, 6, 5, 66, 67), SK -> List(54, 44, 50, 46, 47, 23, 25, 26), cat -> List(57, 56, 61, 58, 59, 63, 62, 64, 60), notHappy -> List(53, 39, 38, 40, 48, 49, 51, 2, 45, 41, 20, 34, 30, 37, 19, 42, 52, 43, 22, 35, 31, 65, 21, 16, 17, 18, 68, 36, 33, 32))

Next, we create a dataframe emoticonDF with a row for each tweet containing at least one emoticon. We add a column for each cluster indicating if the cluster is represented by some emoticon in the tweet. This dataframe is saved to file to be used in the next notebook 03 which focuses more on data visualization. Here we will finish this notebook by using the databricks display function to plot geopraphic information.

val emoticonDF = fullDF.filter($"CurrentTweet".rlike(emoticonsList.mkString("|"))) // filter tweets with emoticons
                       .select(($"countryCode" :: // select the countryCode column
                                $"CurrentTweetDate" :: // and the timestamp
                                (for {(name, cluster) <- emoticonClusters.toList} yield  // also create a new column for each emoticon cluster indicating if the tweet contains an emoticon of that cluster
                                 $"CurrentTweet".rlike(cluster.map(i => emoticonsList(i.toInt)).mkString("|"))
                                                .alias(name))) // rename new column
                                                : _*) // expand list

emoticonDF.show(3)
+-----------+-------------------+------+------+-----+-----+-----+--------+
|countryCode|   CurrentTweetDate|prayer|monkey|happy|   SK|  cat|notHappy|
+-----------+-------------------+------+------+-----+-----+-----+--------+
|         EG|2020-12-31 15:59:54| false| false|false|false|false|    true|
|         SA|2020-12-31 15:59:54|  true| false|false|false|false|   false|
|         DO|2020-12-31 15:59:54| false| false| true|false|false|   false|
+-----------+-------------------+------+------+-----+-----+-----+--------+
only showing top 3 rows

emoticonDF: org.apache.spark.sql.DataFrame = [countryCode: string, CurrentTweetDate: timestamp ... 6 more fields]
// save to file
// emoticonDF.write.format("parquet").mode("overwrite").save("/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus/processedEmoticonClusterParquets/emoticonCluster.parquet")

The goal for the last part of this notebook will be to display for each country what proportion of its total tweets correspond to a certain cluster. First we create a dataframe emoticonCCDF which contains the total number of tweets with some emoticon for each country. Using that dataframe we create dataframes containing the described proportions for each cluster and transfer these dataframes from scala to python by using the createOrReplaceTmpView function.

val emoticonCCDF = emoticonDF.groupBy($"countryCode")
                             .count
emoticonCCDF.show(3)
+-----------+-----+
|countryCode|count|
+-----------+-----+
|         DZ|  157|
|         MM|   44|
|         TC|    5|
+-----------+-----+
only showing top 3 rows

emoticonCCDF: org.apache.spark.sql.DataFrame = [countryCode: string, count: bigint]
def createPropClusterDF (cluster : org.apache.spark.sql.Column) : org.apache.spark.sql.DataFrame = {  
  // This function filters the emoticonDF by a cluster-column and then
  // creates a dataframe with a row per country and columns for the countryCode and proportion
  // of tweets from that country that fall into the cluster as well as the count of tweets
  // falling into the cluster.
  val nbrClusterTweets = emoticonDF.filter(cluster).count
  val clusterDF = emoticonDF.filter(cluster)
                            .groupBy($"countryCode")
                            .count
  val propDF = emoticonCCDF.alias("total")
                           .join(clusterDF.alias("cluster"), "countryCode")
                           .select($"countryCode", $"cluster.count".alias("count"), ($"cluster.count" / $"total.count").alias("proportion"))
  return propDF
}
createPropClusterDF: (cluster: org.apache.spark.sql.Column)org.apache.spark.sql.DataFrame

Below we see an example of the dataframes generated by createPropClusterDF.

val clusterColumn = $"notHappy"
val propClusterDF = createPropClusterDF(clusterColumn)
propClusterDF.show(3)
+-----------+-----+------------------+
|countryCode|count|        proportion|
+-----------+-----+------------------+
|         DZ|   80|0.5095541401273885|
|         MM|   14|0.3181818181818182|
|         CI|  164|0.6507936507936508|
+-----------+-----+------------------+
only showing top 3 rows

clusterColumn: org.apache.spark.sql.ColumnName = notHappy
propClusterDF: org.apache.spark.sql.DataFrame = [countryCode: string, count: bigint ... 1 more field]
def createPropClusterDFAndCreateTmpView (clusterName : String) = {
  // function for creating proportion dataframes for each cluster and making them available for later python code
  val propClusterDF = createPropClusterDF(org.apache.spark.sql.functions.col(clusterName))
  // make df available to python/sql etc
  propClusterDF.createOrReplaceTempView(clusterName)
}
createPropClusterDFAndCreateTmpView: (clusterName: String)Unit
// create proportion dataframes for each cluster and make them available for later python code
emoticonClusters.keys.foreach(createPropClusterDFAndCreateTmpView _)

Now we turn to python to use the pycountry package in order to translate the country codes into another standard (three letters instead of two) which makes plotting with the built in databricks display a breeze. The cell below contains some functions that read the dataframes from the temporary view created in scala and translate them to pandas dataframes with the three letter country codes. Also, we filter out countries for which there are fewer than 100 tweets.

def add_iso_a3_col(df_cc):
  cc_dict = {}
  for country in pycountry.countries:
    cc_dict[country.alpha_2] = country.alpha_3

    df_cc["iso_a3"] = df_cc["countryCode"].map(cc_dict)
  return df_cc

def cc_df_from_spark_to_pandas_and_process(df_cc, columnOfInterest):
  #df_cc should be a dataframe with a column "countryCode" and a column columnOfInterest which has some interesting numerical data
  df_cc = df_cc.toPandas()
  add_iso_a3_col(df_cc)
  df_cc = df_cc[["iso_a3", columnOfInterest]]  #reorder to have iso_a3 as first column (required in order to use the map view in display), and select the useful columns
  return df_cc

from pyspark.sql.functions import col
def createProps(clusterName):
  df = sql("select * from " + clusterName)
  return cc_df_from_spark_to_pandas_and_process(df.filter(col("count")/col("proportion") >= 100), "proportion") # filter so that only countries with at least 100 tweets in a given country are used

Finally, we can show the proportion of tweets in each country that fall into each cluster. Make sure that the plot type is set to map in the outputs from the cells below. It is possible to hover over the countries to see the precise values.

If anything interesting can actually be read from these plots we leave for the reader to decide.

display(createProps("happy"))

display(createProps("notHappy"))

display(createProps("monkey"))

display(createProps("cat"))

display(createProps("SK"))

display(createProps("prayer"))

ScaDaMaLe Course site and book

Dynamic Tweet Maps

In this notebook we are going to make some maps depicting when and where tweets are sent.

We will also use the sentiment classes from the previous notebooks to illustrate which type of tweets are frequent at different times in different countries.

Dependencies:

In order to run this notebook you need to install some dependencies, via apt, pip and git. To install the dependencies run the following three cells (it might take a few minutes).

(We have used the cluster "small-2-8Ws-class-01-sp3-sc2-12" for our experiments.)

sudo apt-get -y install libproj-dev
sudo apt-get -y install libgeos++-dev
Reading package lists...
Building dependency tree...
Reading state information...
libproj-dev is already the newest version (4.9.3-2).
The following packages were automatically installed and are no longer required:
  libcap2-bin libpam-cap zulu-repo
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 17 not upgraded.
Reading package lists...
Building dependency tree...
Reading state information...
libgeos++-dev is already the newest version (3.6.2-1build2).
The following packages were automatically installed and are no longer required:
  libcap2-bin libpam-cap zulu-repo
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 17 not upgraded.
%pip install plotly
%pip install pycountry
%pip install geopandas
%pip install geoplot
%pip install imageio
Python interpreter will be restarted.
Collecting plotly
  Downloading plotly-4.14.3-py2.py3-none-any.whl (13.2 MB)
Requirement already satisfied: six in /databricks/python3/lib/python3.7/site-packages (from plotly) (1.14.0)
Collecting retrying>=1.3.3
  Downloading retrying-1.3.3.tar.gz (10 kB)
Building wheels for collected packages: retrying
  Building wheel for retrying (setup.py): started
  Building wheel for retrying (setup.py): finished with status 'done'
  Created wheel for retrying: filename=retrying-1.3.3-py3-none-any.whl size=11430 sha256=d44981ab5b644b464561fdd8ffbda5b3b476a52efe985dab72bd1549d6a6d1f0
  Stored in directory: /root/.cache/pip/wheels/f9/8d/8d/f6af3f7f9eea3553bc2fe6d53e4b287dad18b06a861ac56ddf
Successfully built retrying
Installing collected packages: retrying, plotly
Successfully installed plotly-4.14.3 retrying-1.3.3
Python interpreter will be restarted.
Python interpreter will be restarted.
Collecting pycountry
  Downloading pycountry-20.7.3.tar.gz (10.1 MB)
Building wheels for collected packages: pycountry
  Building wheel for pycountry (setup.py): started
  Building wheel for pycountry (setup.py): finished with status 'done'
  Created wheel for pycountry: filename=pycountry-20.7.3-py2.py3-none-any.whl size=10746863 sha256=2b60c51268a303df86bea421d372ba1ed4001f8ffa211a0d9e98601fa0ab1ed5
  Stored in directory: /root/.cache/pip/wheels/57/e8/3f/120ccc1ff7541c108bc5d656e2a14c39da0d824653b62284c6
Successfully built pycountry
Installing collected packages: pycountry
Successfully installed pycountry-20.7.3
Python interpreter will be restarted.
Python interpreter will be restarted.
Collecting geopandas
  Downloading geopandas-0.8.2-py2.py3-none-any.whl (962 kB)
Requirement already satisfied: pandas>=0.23.0 in /databricks/python3/lib/python3.7/site-packages (from geopandas) (1.0.1)
Collecting pyproj>=2.2.0
  Downloading pyproj-3.0.0.post1-cp37-cp37m-manylinux2010_x86_64.whl (6.4 MB)
Collecting fiona
  Downloading Fiona-1.8.18-cp37-cp37m-manylinux1_x86_64.whl (14.8 MB)
Collecting shapely
  Downloading Shapely-1.7.1-cp37-cp37m-manylinux1_x86_64.whl (1.0 MB)
Requirement already satisfied: python-dateutil>=2.6.1 in /databricks/python3/lib/python3.7/site-packages (from pandas>=0.23.0->geopandas) (2.8.1)
Requirement already satisfied: numpy>=1.13.3 in /databricks/python3/lib/python3.7/site-packages (from pandas>=0.23.0->geopandas) (1.18.1)
Requirement already satisfied: pytz>=2017.2 in /databricks/python3/lib/python3.7/site-packages (from pandas>=0.23.0->geopandas) (2019.3)
Requirement already satisfied: certifi in /databricks/python3/lib/python3.7/site-packages (from pyproj>=2.2.0->geopandas) (2020.6.20)
Requirement already satisfied: six>=1.5 in /databricks/python3/lib/python3.7/site-packages (from python-dateutil>=2.6.1->pandas>=0.23.0->geopandas) (1.14.0)
Collecting munch
  Downloading munch-2.5.0-py2.py3-none-any.whl (10 kB)
Collecting click-plugins>=1.0
  Downloading click_plugins-1.1.1-py2.py3-none-any.whl (7.5 kB)
Collecting attrs>=17
  Downloading attrs-20.3.0-py2.py3-none-any.whl (49 kB)
Collecting cligj>=0.5
  Downloading cligj-0.7.1-py3-none-any.whl (7.1 kB)
Collecting click<8,>=4.0
  Downloading click-7.1.2-py2.py3-none-any.whl (82 kB)
Installing collected packages: click, munch, cligj, click-plugins, attrs, shapely, pyproj, fiona, geopandas
Successfully installed attrs-20.3.0 click-7.1.2 click-plugins-1.1.1 cligj-0.7.1 fiona-1.8.18 geopandas-0.8.2 munch-2.5.0 pyproj-3.0.0.post1 shapely-1.7.1
Python interpreter will be restarted.
Python interpreter will be restarted.
Collecting geoplot
  Downloading geoplot-0.4.1-py3-none-any.whl (28 kB)
Requirement already satisfied: seaborn in /databricks/python3/lib/python3.7/site-packages (from geoplot) (0.10.0)
Requirement already satisfied: matplotlib in /databricks/python3/lib/python3.7/site-packages (from geoplot) (3.1.3)
Collecting mapclassify>=2.1
  Downloading mapclassify-2.4.2-py3-none-any.whl (38 kB)
Collecting contextily>=1.0.0
  Downloading contextily-1.0.1-py3-none-any.whl (23 kB)
Collecting cartopy
  Downloading Cartopy-0.18.0.tar.gz (14.4 MB)
Requirement already satisfied: pandas in /databricks/python3/lib/python3.7/site-packages (from geoplot) (1.0.1)
Requirement already satisfied: geopandas in /local_disk0/.ephemeral_nfs/envs/pythonEnv-318e9509-84da-4944-ac59-77216123051e/lib/python3.7/site-packages (from geoplot) (0.8.2)
Collecting descartes
  Downloading descartes-1.1.0-py3-none-any.whl (5.8 kB)
Collecting mercantile
  Downloading mercantile-1.1.6-py3-none-any.whl (13 kB)
Collecting pillow
  Downloading Pillow-8.1.0-cp37-cp37m-manylinux1_x86_64.whl (2.2 MB)
Collecting geopy
  Downloading geopy-2.1.0-py3-none-any.whl (112 kB)
Requirement already satisfied: joblib in /databricks/python3/lib/python3.7/site-packages (from contextily>=1.0.0->geoplot) (0.14.1)
Collecting rasterio
  Downloading rasterio-1.2.0-cp37-cp37m-manylinux1_x86_64.whl (19.1 MB)
Requirement already satisfied: requests in /databricks/python3/lib/python3.7/site-packages (from contextily>=1.0.0->geoplot) (2.22.0)
Requirement already satisfied: scipy>=1.0 in /databricks/python3/lib/python3.7/site-packages (from mapclassify>=2.1->geoplot) (1.4.1)
Requirement already satisfied: numpy>=1.3 in /databricks/python3/lib/python3.7/site-packages (from mapclassify>=2.1->geoplot) (1.18.1)
Requirement already satisfied: scikit-learn in /databricks/python3/lib/python3.7/site-packages (from mapclassify>=2.1->geoplot) (0.22.1)
Collecting networkx
  Downloading networkx-2.5-py3-none-any.whl (1.6 MB)
Requirement already satisfied: python-dateutil>=2.6.1 in /databricks/python3/lib/python3.7/site-packages (from pandas->geoplot) (2.8.1)
Requirement already satisfied: pytz>=2017.2 in /databricks/python3/lib/python3.7/site-packages (from pandas->geoplot) (2019.3)
Requirement already satisfied: six>=1.5 in /databricks/python3/lib/python3.7/site-packages (from python-dateutil>=2.6.1->pandas->geoplot) (1.14.0)
Requirement already satisfied: shapely>=1.5.6 in /local_disk0/.ephemeral_nfs/envs/pythonEnv-318e9509-84da-4944-ac59-77216123051e/lib/python3.7/site-packages (from cartopy->geoplot) (1.7.1)
Collecting pyshp>=1.1.4
  Downloading pyshp-2.1.3.tar.gz (219 kB)
Requirement already satisfied: setuptools>=0.7.2 in /usr/local/lib/python3.7/dist-packages (from cartopy->geoplot) (45.2.0)
Requirement already satisfied: pyproj>=2.2.0 in /local_disk0/.ephemeral_nfs/envs/pythonEnv-318e9509-84da-4944-ac59-77216123051e/lib/python3.7/site-packages (from geopandas->geoplot) (3.0.0.post1)
Requirement already satisfied: fiona in /local_disk0/.ephemeral_nfs/envs/pythonEnv-318e9509-84da-4944-ac59-77216123051e/lib/python3.7/site-packages (from geopandas->geoplot) (1.8.18)
Requirement already satisfied: certifi in /databricks/python3/lib/python3.7/site-packages (from pyproj>=2.2.0->geopandas->geoplot) (2020.6.20)
Requirement already satisfied: munch in /local_disk0/.ephemeral_nfs/envs/pythonEnv-318e9509-84da-4944-ac59-77216123051e/lib/python3.7/site-packages (from fiona->geopandas->geoplot) (2.5.0)
Requirement already satisfied: click-plugins>=1.0 in /local_disk0/.ephemeral_nfs/envs/pythonEnv-318e9509-84da-4944-ac59-77216123051e/lib/python3.7/site-packages (from fiona->geopandas->geoplot) (1.1.1)
Requirement already satisfied: attrs>=17 in /local_disk0/.ephemeral_nfs/envs/pythonEnv-318e9509-84da-4944-ac59-77216123051e/lib/python3.7/site-packages (from fiona->geopandas->geoplot) (20.3.0)
Requirement already satisfied: cligj>=0.5 in /local_disk0/.ephemeral_nfs/envs/pythonEnv-318e9509-84da-4944-ac59-77216123051e/lib/python3.7/site-packages (from fiona->geopandas->geoplot) (0.7.1)
Requirement already satisfied: click<8,>=4.0 in /local_disk0/.ephemeral_nfs/envs/pythonEnv-318e9509-84da-4944-ac59-77216123051e/lib/python3.7/site-packages (from fiona->geopandas->geoplot) (7.1.2)
Collecting geographiclib<2,>=1.49
  Downloading geographiclib-1.50-py3-none-any.whl (38 kB)
Requirement already satisfied: cycler>=0.10 in /databricks/python3/lib/python3.7/site-packages (from matplotlib->geoplot) (0.10.0)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /databricks/python3/lib/python3.7/site-packages (from matplotlib->geoplot) (2.4.6)
Requirement already satisfied: kiwisolver>=1.0.1 in /databricks/python3/lib/python3.7/site-packages (from matplotlib->geoplot) (1.1.0)
Requirement already satisfied: decorator>=4.3.0 in /databricks/python3/lib/python3.7/site-packages (from networkx->mapclassify>=2.1->geoplot) (4.4.1)
Collecting affine
  Downloading affine-2.3.0-py2.py3-none-any.whl (15 kB)
Collecting snuggs>=1.4.1
  Downloading snuggs-1.4.7-py3-none-any.whl (5.4 kB)
Requirement already satisfied: idna<2.9,>=2.5 in /databricks/python3/lib/python3.7/site-packages (from requests->contextily>=1.0.0->geoplot) (2.8)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /databricks/python3/lib/python3.7/site-packages (from requests->contextily>=1.0.0->geoplot) (1.25.8)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/lib/python3/dist-packages (from requests->contextily>=1.0.0->geoplot) (3.0.4)
Building wheels for collected packages: cartopy, pyshp
  Building wheel for cartopy (setup.py): started
  Building wheel for cartopy (setup.py): finished with status 'done'
  Created wheel for cartopy: filename=Cartopy-0.18.0-cp37-cp37m-linux_x86_64.whl size=15127828 sha256=a7843bd96a5753ca15c4c1952b65a93a5ae9378f67d5c17cf1398436b77dfb80
  Stored in directory: /root/.cache/pip/wheels/0b/a9/54/172056df34478378e0636d30cd4d1a868de00e37254649bf1a
  Building wheel for pyshp (setup.py): started
  Building wheel for pyshp (setup.py): finished with status 'done'
  Created wheel for pyshp: filename=pyshp-2.1.3-py3-none-any.whl size=37262 sha256=f31c01d2d2d597d89e643a155abbf55b7de6db2c096a5aa21a9d267d548ed9b3
  Stored in directory: /root/.cache/pip/wheels/43/f8/87/53c8cd41545ba20e536ea29a8fcb5431b5f477ca50d5dffbbe
Successfully built cartopy pyshp
Installing collected packages: snuggs, geographiclib, affine, rasterio, pyshp, pillow, networkx, mercantile, geopy, mapclassify, descartes, contextily, cartopy, geoplot
Successfully installed affine-2.3.0 cartopy-0.18.0 contextily-1.0.1 descartes-1.1.0 geographiclib-1.50 geoplot-0.4.1 geopy-2.1.0 mapclassify-2.4.2 mercantile-1.1.6 networkx-2.5 pillow-8.1.0 pyshp-2.1.3 rasterio-1.2.0 snuggs-1.4.7
Python interpreter will be restarted.
Python interpreter will be restarted.
Collecting imageio
  Downloading imageio-2.9.0-py3-none-any.whl (3.3 MB)
Requirement already satisfied: numpy in /databricks/python3/lib/python3.7/site-packages (from imageio) (1.18.1)
Requirement already satisfied: pillow in /local_disk0/.ephemeral_nfs/envs/pythonEnv-318e9509-84da-4944-ac59-77216123051e/lib/python3.7/site-packages (from imageio) (8.1.0)
Installing collected packages: imageio
Successfully installed imageio-2.9.0
Python interpreter will be restarted.
git clone https://github.com/mthh/cartogram_geopandas.git
cd cartogram_geopandas/
python setup.py install
Cloning into 'cartogram_geopandas'...
Compiling cycartogram.pyx because it changed.
[1/1] Cythonizing cycartogram.pyx
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.7
copying cartogram_geopandas.py -> build/lib.linux-x86_64-3.7
running build_ext
building 'cycartogram' extension
creating build/temp.linux-x86_64-3.7
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.7m -I/local_disk0/.ephemeral_nfs/envs/pythonEnv-318e9509-84da-4944-ac59-77216123051e/include/python3.7m -c cycartogram.c -o build/temp.linux-x86_64-3.7/cycartogram.o
cycartogram.c: In function ‘__pyx_f_11cycartogram_transform_geom’:
cycartogram.c:2084:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
                                       ^
cycartogram.c:2134:41: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
                                         ^
cycartogram.c: In function ‘__pyx_pf_11cycartogram_9Cartogram_4cartogram’:
cycartogram.c:3835:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
                                     ^
x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.7/cycartogram.o -o build/lib.linux-x86_64-3.7/cycartogram.cpython-37m-x86_64-linux-gnu.so
running install_lib
copying build/lib.linux-x86_64-3.7/cycartogram.cpython-37m-x86_64-linux-gnu.so -> /local_disk0/.ephemeral_nfs/envs/pythonEnv-318e9509-84da-4944-ac59-77216123051e/lib/python3.7/site-packages
copying build/lib.linux-x86_64-3.7/cartogram_geopandas.py -> /local_disk0/.ephemeral_nfs/envs/pythonEnv-318e9509-84da-4944-ac59-77216123051e/lib/python3.7/site-packages
byte-compiling /local_disk0/.ephemeral_nfs/envs/pythonEnv-318e9509-84da-4944-ac59-77216123051e/lib/python3.7/site-packages/cartogram_geopandas.py to cartogram_geopandas.cpython-37.pyc
running install_egg_info
Writing /local_disk0/.ephemeral_nfs/envs/pythonEnv-318e9509-84da-4944-ac59-77216123051e/lib/python3.7/site-packages/cartogram_geopandas-0.0.0c.egg-info
/databricks/python/lib/python3.7/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /databricks/driver/cartogram_geopandas/cycartogram.pyx
  tree = Parsing.p_module(s, pxd, full_module_name)

Defining some functions

We will process the collected data a bit before making any plots. To do this we will load some functions from notebook 06appendixtweetcartofunctions.

"./06_appendix_tweet_carto_functions"

Initial processing of dataframe

This step only needs to be run if you want to overwrite the existing preprocessed dataframea "processedDF.csv". Otherwise you can just skip to the next cell and load the already generated dataframe.

path = "/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus/{2020,2021}/*/*/*/*/*"
df = load_twitter_geo_data(path)
#Data collection was continuous during the 22nd December whereas for the remaining days we only streamed for 3 minutes per hour.
df = df[(df['day'] != 22) & (df['day'] != 2 )].reset_index() #Data collection was continuous during the 22nd December whereas for the remaining days we only streamed for 3 minutes per hour. Data collection ended in the middle of Jan second so to only have full day we disregard Jan 2.
pre_proc_path = "/dbfs/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus/tmp/processedDF.csv"
df.to_csv(pre_proc_path)

Quick initial data exploration

Let's start by having a look at the first 5 elements.

For now we are only looking at country of origin and timestamp, so we have neither loaded the tweets or the derived sentiment classes from before.

# Load the data
pre_proc_path = "/dbfs/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus/tmp/processedDF.csv"
df = pd.read_csv(pre_proc_path)
display(df.head(5))
Unnamed: 0 index countryCode CurrentTweetDate date year month day dayofweek hour minute second
0.0 3654.0 ID 2020-12-31 12:59:54 2020-12-31 2020.0 12.0 31.0 3.0 12.0 59.0 54.0
1.0 3655.0 GB 2020-12-31 12:59:54 2020-12-31 2020.0 12.0 31.0 3.0 12.0 59.0 54.0
2.0 3656.0 TH 2020-12-31 12:59:54 2020-12-31 2020.0 12.0 31.0 3.0 12.0 59.0 54.0
3.0 3657.0 PK 2020-12-31 12:59:54 2020-12-31 2020.0 12.0 31.0 3.0 12.0 59.0 54.0
4.0 3658.0 ID 2020-12-31 12:59:54 2020-12-31 2020.0 12.0 31.0 3.0 12.0 59.0 54.0

The tweets we have loaded were sent between Dec 23 and Jan 1, and the timestamps are given in Greenwich Mean Time (GMT). We can use the display function again to have a look at how tweets are distributed as a function of time of day. To get tweets from a single timezone we just have a look at tweets from the United Kingdom (which has the country code GB).

The histograms below show a clear dip in twitter activity from around eleven at night untill around eight in the morning. The night between the 24th and 25th of December shows a small spike right after midnight and new years shows a large spike after midnight. It seems that people like to tweet when celebrating!

There is an abnormal peak on December 27th at 21. We have not been able to determine what this is due to.

NOTE: The cell below has been configured (via the display user interface) to show histograms using date as key and hour as values.

display(df.query("countryCode=='GB'"))

If we look at Saudi Arabia it seems that something is happening on December 31rst and December 28th.

  • The timestamps are in GMT, so the smalller peak at 21:00 on December 31rst is actually located at midnight. Although Saudi Arabia follows the islamic calendar it looks like there are still people celebrating the gregorian new year. We do not know what could be the reason for the larger peak on December 31rst.

  • The largest spike is located on December 28th. It covers tweets send between 12:00 and 16:00 GMT, which would correspond to 15:00-18:00 local time. We have tried to find the cause of this peak, and we think it might be due to the conviction of female rights activist Loujain al-Hathloul who was sentenced to five years and 8 months of prison on this date. We could not find an exact timestamp for this event, but the report from france24 is timestamped to 12:20 (presumably Western European time), which corresponds to 14:20 in Saudi Arabia. It might be that there was a bit of lag time between media starting to report on the events and the case gaining traction on social media. Of course the spike could also be due to something else, but this sentencing seems like a likely cause.

Links: * https://www.thehindu.com/news/international/saudi-activist-loujain-al-hathloul-sentenced-to-5-years-8-months-in-prison/article33437467.ece Timestamp: 17:30 IST corresponding to 15:00 in Saudi Arabia * https://www.aljazeera.com/news/2020/12/28/saudi-court-hands-jail-sentence-to-womens-rights-activist No timestamp * https://www.france24.com/en/live-news/20201228-saudi-activist-loujain-al-hathloul-jailed-for-5-years-8-months Timestamp: 12:20 CET corresponding to 14:20 in Saudi Arabia

NOTE: The articles from thehindu.com and France24 are identical, as they both come from AFP.

display(df.query("countryCode=='SA'"))

The display function produces normalized histograms, so the below cell prints the daily number of tweets.

There is indeed a lot more tweets collected on the 28th and on the 31rst.

dateList = ["2020-12-23", "2020-12-24", "2020-12-25", "2020-12-26", "2020-12-27", "2020-12-28", "2020-12-29", "2020-12-30", "2020-12-31", "2021-01-01"]
for d in dateList:
  N = len(df.query("(countryCode=='SA') and (date=='%s')"%d))
  print("%d tweets were collected in Saudi Arabia on %s"%(N, d))
1519 tweets were collected in Saudi Arabia on 2020-12-23
1437 tweets were collected in Saudi Arabia on 2020-12-24
1556 tweets were collected in Saudi Arabia on 2020-12-25
1871 tweets were collected in Saudi Arabia on 2020-12-26
1529 tweets were collected in Saudi Arabia on 2020-12-27
3123 tweets were collected in Saudi Arabia on 2020-12-28
1700 tweets were collected in Saudi Arabia on 2020-12-29
1643 tweets were collected in Saudi Arabia on 2020-12-30
3127 tweets were collected in Saudi Arabia on 2020-12-31
1486 tweets were collected in Saudi Arabia on 2021-01-01

Mapping the tweets

To create maps using the tweets we will first group the tweets by country codes, producing a new dataframe with one row per country.

The map below is generated by selecting the map option in the display UI. This view only offers a simple discrete colorbar, but we can see that the most tweet producing countries are the United States and Brazil. Hovering above countries gives more detailed information, and shows that the Japan, the UK and India also produce a lot of tweets.

We also get tweets from a number of countries which have blocked access to twitter (China: 1825, North Korea: 5, Iran: 1590 and Turkmenistan: 7).

https://en.wikipedia.org/wiki/CensorshipofTwitter#GovernmentblockingofTwitteraccess

# Group by country code
df_cc = country_code_grouping(df)
df_cc = add_iso_a3_col(df_cc)
df_cc = df_cc[["iso_a3", "count"]] #reorder to have iso_a3 as first column (required in order to use the map view in display). Also we don't need countryCode and index columns.

# Inspect result
display(df_cc)

Right now we are dealing with a regular dataframe. But to make some more advanced plots we will need information about the shapes of the countries (in the form of polygons). We get the shapes via the function creategeodf(), which relies on the geopandas library. When calling display on a geopandas dataframe we just get the raw table, and none of the premade visualizations we get when displaying pandas dataframes.

# Create the geopandas dataframe
df_world = create_geo_df(df_cc)
# Inspect result
display(df_world.head())
pop_est continent name iso_a3 gdp_md_est geometry numTweets
0 920938 Oceania Fiji FJI 8374.0 MULTIPOLYGON (((180.00000 -16.06713, 180.00000... 4.0
1 53950935 Africa Tanzania TZA 150600.0 POLYGON ((33.90371 -0.95000, 34.07262 -1.05982... 877.0
2 603253 Africa W. Sahara ESH 906.5 POLYGON ((-8.66559 27.65643, -8.66512 27.58948... 1.0
3 35623680 North America Canada CAN 1674000.0 MULTIPOLYGON (((-122.84000 49.00000, -122.9742... 12069.0
4 326625791 North America United States of America USA 18560000.0 MULTIPOLYGON (((-122.84000 49.00000, -120.0000... 205916.0

Choropleth maps

  • A choropleth map is a map in which regions are assigned a color based on a numerical attribute. This could for example be each regions population, average life expectancy, or number of geo tagged tweets.

Cartograms

  • A cartogram is a way to represent geograpic differences in some variable, by altering the size of regions. The areas and shapes of regions are distorted in order to create an approximately equal density of the selected variable across all regions. In our case there are a lot of tweets coming from brazil and the US so these regions will grow in order to produce a lower tweet density. There is a tradeoff between shape preservation and getting equal density. This is especially evident when the density you are trying to equalize differs by several orders of magnitude.
  • The available python cartogram package cartogramgeopandas is based on Dougenik, J. A, N. R. Chrisman, and D. R. Niemeyer: 1985. "An algorithm to construct continuous cartograms". It is very sparsely documented and does not report error scores and tends to diverge if allowed to run for too many iterations. We found the Gui program Scapetoad to offer superior performance. Scapetoad is based on Mark Newman's C-code "Cart", which is based on his and Michael T. Gastner's paper "Diffusion-based method for producingdensity-equalizing maps" from 2004. Scapetoad is working on a Python API, but it has not been released yet. So inspite of its shortcomings we will be using cartogramgeopandas, since Scapetoad can not be called from a notebook.
  • Due to the limitations of the cartogram_geopandas library, we choose to run for a modest number of iterations. This means we do not have direct proportionality between distorted area and number of tweets, rather the distortions give us a qualitative representation of where tweeting is frequent.

Links: * mthh, 2015: https://github.com/mthh/cartogram_geopandas * Dougenik, Chrisman and Niemeyer, 1985: https://onlinelibrary.wiley.com/doi/epdf/10.1111/j.0033-0124.1985.00075.x * Gastner and Newman: https://arxiv.org/abs/physics/0401102

To begin with we will plot all the tweets collected between 23:00:00 and 23:59:59 (GMT) on December 31rst. On the left side a world map with colors indicating number of tweets is shown, and on the right side a cartogram. It seems the United kingdom is tweeting a lot at this moment, which makes sense as they are about to enter 2021. Happy new year!

df = pd.read_csv(pre_proc_path)
df = df.query("(day==31) and (hour==23)")
# Group by country code
df_cc = country_code_grouping(df)
df_cc = add_iso_a3_col(df_cc)
df_cc = df_cc[["iso_a3", "count"]] #reorder to have iso_a3 as first column (required in order to use the map view in display). Also we don't need countryCode and index columns.
# Create the geopandas dataframe
df_world = create_geo_df(df_cc)


#fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(30,15))

# Make a choropleth plot
# df_world.plot(column='numTweets', cmap='viridis', ax=axes[0])

# The make_cartogram function can not handle a tweetcount of zero, so a not so elegant solution is to clip the tweet count at 1.
# The alternative (to remove countries without tweets) is not elegant either (and causes problems when we look at the time evolution, since countries will be popping in and out of existence).
df_world["numTweets"] = df_world["numTweets"].clip(1, max(df_world["numTweets"]))

df_cartogram = make_cartogram(df_world, 'numTweets', 5, inplace=False)
# df_cartogram.plot(column='numTweets', cmap='viridis', ax=axes[1])


# plt.show()
/local_disk0/.ephemeral_nfs/envs/pythonEnv-318e9509-84da-4944-ac59-77216123051e/lib/python3.7/site-packages/cartogram_geopandas.py:48: UserWarning: Geometry is in a geographic CRS. Results from 'area' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.

  return crtgm.make()

Animating the time evolution of tweets

Rather than looking at a snapshot of the worlds twitter activity it would be interesting to look at how twitter activity looks across hours and days.

The following cell generates a number of png cartograms. One for every hour between December 23rd 2020 and January 2nd 2021.

It takes quite long to generate them all (around eight minutes) so you might want to just load the pregenerated pngs in the cell below.

NOTE: Geopandas prints some warnings related to using unprojected geometries (We work in longitude and latitude rather than some standard 2D map projection). This is not an issue since we are not using the area function.

pre_proc_path = "/dbfs/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus/tmp/processedDF.csv"
df = pd.read_csv(pre_proc_path)
key = "hour"
timeOfDayList = list(range(0, 24))
nIter = 5
cartogram_key = "numTweets"
for day in range(23,32):
  out_path = "/dbfs/FileStore/group10/cartogram/2020_Dec_%d_hour_"%day
  legend = "2020 December %d: "%day
  animate_cartogram(df.query("(day==%d) and (year==2020)"%day), key, timeOfDayList, out_path, nIter, cartogram_key, legend)
for day in range(1,2):
  out_path = "/dbfs/FileStore/group10/cartogram/2021_Jan_%d_hour_"%day
  legend = "2021 January %d: "%day
  animate_cartogram(df.query("(day==%d) and (year==2021)"%day), key, timeOfDayList, out_path, nIter, cartogram_key, legend)

Now that we have generated the PNGs we can go ahead and combine them into a gif using the python imageIO library.

images=[] # array for storing the png frames for the gif
timeOfDayList = list(range(0, 24))
#Append images to image list
for day in range(23,32):
  for hour in timeOfDayList:
    out_path = "/dbfs/FileStore/group10/cartogram/2020_Dec_%d_hour_%d.png"%(day, hour)
    images.append(imageio.imread(out_path))
for day in range(1,2):
  for hour in timeOfDayList:
    out_path = "/dbfs/FileStore/group10/cartogram/2021_Jan_%d_hour_%d.png"%(day, hour)
    images.append(imageio.imread(out_path))
#create gif from the image list
imageio.mimsave("/dbfs/FileStore/group10/cartogram/many_days_cartogram.gif", images, duration=0.2)

The result is the following animation. The black vertical bar indicates where in the world it is midnight, the yellow vertical bar indicates where it is noon, and the time shown at the top is the current GMT time. The color/z-axis denotes the number of tweets produced in the given hour. Unsurprisingly we see countries inflate during the daytime and deflate close to midnight when people tend to sleep.

Sentiment mapping

This cartogram animation expresses the amount of tweets both through the size distortions and the z-axis (the color). In a way it is a bit redundant to illustrate the same things in two ways. The plot would be more informative if instead the z-axis is used to express some measure of sentiment.

We will load a dataframe containing sentiment cluster information extracted in the previous notebook. This dataframe only contains tweets which contained "Unicode block Emoticons", which is about 14% of the tweets we collected between December 23rd and January 1rst. The dataframe has boolean columns indicating if an emoji from a certain cluster is present. We will use the happy and not happy clusters found in the previous notebooks to express a single sentiment score:

df["sentiment"] = (1 + df["happy"] - df["notHappy"])/2 This is useful since it allows us to make a map containing information about both clusters. A caveat is that the although these clusters mostly contain what we would consider happy and unhappy emojis respectively, they do also contain some rather ambivalent emojis. The unhappy cluster for example contains a smiley that is both smiling and crying. On top of this emojis can take on different meanings in different contexts. Expressed in this way we get that: * A sentiment value of 0 means that the tweet contains unhappy emojis and no happy emojis. * A sentiment value of 0.5 means that the tweet either contain both happy and unhappy emojis or that it contains neither happy or unhappy emojis. * A sentiment value of 1 means that the tweet did not contain unhappy emojis but did contain happy emojis.

The pie chart below reveals that unhappy tweets are significantly more common than happy ones.

path = "/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus/processedEmoticonClusterParquets/emoticonCluster.parquet"
cluster_names = ["all", "happy", "notHappy", "cat", "monkey", "SK", "prayer"]
df = load_twitter_geo_data_sentiment(path)
df = df[(df['day'] != 22) & (df['day'] != 2 )] #Data collection was continuous during the 22nd December whereas for the remaining days we only streamed for 3 minutes per hour. Data collection ended in the middle of Jan second so to only have full day we disregard Jan 2.

# Let's try combining the happy and sad columns to one "sentiment" column.
df["sentiment"] = (1 + df["happy"] - df["notHappy"])/2

display(df[["happy", "notHappy", "sentiment"]])

Next we will look at a choropleth world map using the "sentiment" score as z-axis. Countries with fewer than 100 tweets are not shown here.

It looks like the tweets from Africa, The US and the middle east are less happy than those from latin America, Europe, Asia and Oceania.

df_cc = country_code_grouping_sentiment(df)
df_cc = add_iso_a3_col(df_cc)
df_cc = df_cc[["iso_a3", "count", "sentiment"]] #reorder to have iso_a3 as first column (required in order to use the map view in display). Also we don't need countryCode and index columns.
df_cc
# Create the geopandas dataframe
df_world = create_geo_df_sentiment(df_cc)

vmin = min(df_world.query("numTweets>=20")["sentiment"])
vmax = max(df_world.query("numTweets>=20")["sentiment"])
cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", ["red","yellow","green"])
cmap.set_under(color='gray', alpha=0.5)

#We filter out countries with very few emojii tweets
df_world.loc[df_world["numTweets"] < 100, 'sentiment'] = vmin -1
# df_world = df_world.query("numTweets>10").reset_index()

# Make a choropleth plot
# df_world.plot(column='sentiment', cmap=cmap, legend=True, vmin=vmin, vmax=vmax, figsize=(20,8))
# plt.title("Sentiment by country", fontsize=24)
# plt.xlabel("Longitude $^\circ$", fontsize=20)
# plt.ylabel("Latitude $^\circ$", fontsize=20)
# plt.show()

Let us have a look at how this sentiment score ranks the countries (with more than 100 emoji tweets) from happiest to unhappiest.

Japan, Sweden and Netherlands are in the lead.

display(df_world.query("numTweets>=100").sort_values("sentiment", ascending=False)[["name", "continent", "numTweets", "sentiment"]])

We are now ready to generate an animated cartogram using the number of tweets to determine the area distortions and using the sentiment score as the color dimension.

We do not have as many emoji tweets, so here we limit ourselves to only one frame per day. We color countries with less than 30 tweets per day grey, since their sentiment score will be extremely unreliable.

The following cell generates the animation, but as we already have produced it you can skip straight to the next cell where it is displayed.

#Load data
path = "/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus/processedEmoticonClusterParquets/emoticonCluster.parquet"
cluster_names = ["all", "happy", "notHappy", "cat", "monkey", "SK", "prayer"]
df = load_twitter_geo_data_sentiment(path)
df = df[(df['day'] != 22) & (df['day'] != 2 )] #Data collection was continuous during the 22nd December whereas for the remaining days we only streamed for 3 minutes per hour. Data collection ended in the middle of Jan second so to only have full day we disregard Jan 2.

# Combine the happy and sad columns into one "sentiment" column.
df["sentiment"] = (1 + df["happy"] - df["notHappy"])/2

# Arguments for the function animate_cartogram_sentiment(...)
legendList = ["2020-12-23", "2020-12-24", "2020-12-25", "2020-12-26", "2020-12-27", "2020-12-28", "2020-12-29", "2020-12-30", "2020-12-31", "2021-01-01"]
key = "day"
nIter = 5
minSamples = 30
cartogram_key = "numTweets"
dayList = [23, 24, 25, 26, 27, 28, 29, 30, 31, 1]
cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", ["red","yellow","green"])
cmap.set_under(color='gray', alpha=0.5)
cmap.set_bad(color='gray', alpha=0.5)

# Find upper and lower range for the color dimension.
# We want to utilize the full dynamic range of the z-axis.
vmin = 0.45
vmax = 0.55
for day in dayList:
  df_filtered = df.query("day==%d"%day).reset_index()
  df_cc = country_code_grouping_sentiment(df_filtered)
  df_cc = df_cc.query("count>%d"%minSamples)
  lower = min(df_cc["sentiment"])
  upper = max(df_cc["sentiment"])
  if lower<vmin:
    vmin = lower
  if upper>vmax:
    vmax = upper

out_path = "/dbfs/FileStore/group10/cartogram/sentiment"
animate_cartogram_sentiment(df.reset_index(), key, dayList, out_path, nIter, cartogram_key, minSamples, cmap, vmin, vmax, legendList)

Unfortunately we do not have enough data to color all the countries, but some interesting things can still be observed. * Most countries tweet happier at Christmas and New Years. Take a look at Spain and Brazil for example. * Japan and most of Europe looks consistently happy, while Africa, Saudi Arabia and the US looks unhappy. * The UK looks comparatively less happy than the rest of Europe.

We keep in mind that these differences may be caused by or exaggerated by differences in how emojis are used differently in different countries.

Next we aggregate all of the tweet data into one set of 24 hours, i.e. we merge all the days into one to try to see trends in emoticon use depending on time of day.

We want to visualize the different clusters in cartogram animations. First we filter the tweets by cluster so that we get a dataframe per cluster containing only the tweets wherein there is an emoticon from that cluster. In the cartograms we scale each country by how large a proportion of the total tweets from that country pertaining to that cluster are tweeted in a given hour. So if the area (in the current projection...) of a particular country is \(A\), then its "mass" (recall that these plots aim for equal "density") at hour \(h\) in these plots will be \[A + \sigma p_h A,\] where \(p_h\) is the proportion of tweets in that country and cluster that is tweeted at hour \(h\) and \(\sigma\) is a scaling factor which we set to 2. In order to reduce noise, all countries which have fewer than 100 tweets of a given cluster are set to have constant "mass" corresponding to their area.

path = "/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus/processedEmoticonClusterParquets/emoticonCluster.parquet"
cluster_names = ["all", "happy", "notHappy", "cat", "monkey", "SK", "prayer"]
# # This cell might take 15-20 minutes to run

# for cluster_name in cluster_names:
#    if cluster_name == "all":
#      df = load_twitter_geo_data(path)
#    else:
#      df = load_twitter_geo_data_with_filter(path, cluster_name)

#    df = df[df['day'] != 22].reset_index() #Data collection was continuous during the 22nd December whereas for the remaining days we only streamed for 3 minutes per hour.
#    df = df[(df['day'] != 22) & (df['day'] != 2 )].reset_index() #Data collection was continuous during the 22nd December whereas for the remaining days we only streamed for 3 minutes per hour. Data collection ended in the middle of Jan second so to only have full day we disregard Jan 2.

#    # add column in order to be able to display ratio of total tweets
#    df['numTweets'] = df.groupby('countryCode')['countryCode'].transform('count')
#    df["proportion"] = 1 / df["numTweets"]

#    # filter out countries with very few tweets
#    df = df[df.numTweets >= 100]
#    # create cartogram
#    key = "hour"
#    timeOfDayList = list(range(0, 24))
#    out_path = "/dbfs/FileStore/group10/cartogram_" + cluster_name
#    nIter = 30
#    cartogram_key = "proportion"

#    animate_cartogram_extra(df[["index", "countryCode", "proportion", "hour"]], key, timeOfDayList, out_path, nIter, cartogram_key, default_value=0, scale_factor=3, vmin=0.0, vmax=0.15)

Below are the obtained plots for emoticon use by time of day in the different countries. The colorbar corresponds to the proportion of tweets from a country tweeted in a given hour and the areas are scaled as described above. The black line is again midnight and the yellow line noon.

For some of the clusters, for instance "cat" and "monkey", it is clear that we have too little data to be able to say anything interesting. Perhaps the one conclusion one can draw there is that the monkey emoticons are not used very often in the US or Japan (since those countries tweet a lot but did not have more than 100 total tweets with monkey emoticons).

The other plots mostly show that people tweet more during the day than at night. Perhaps the amount of emoticons in each of the "happy" and "notHappy" clusters is too large to be able to find some distinctiveness in the time of day that people use them.

The most interesting cluster to look at in this way might be the prayer cluster where it appears that we can see glimpses of the regular prayers in countries such Egypt and Saudi Arabia.

clusters_to_plot = ["happy", "notHappy", "SK", "cat", "monkey", "prayer"]
html_str = "\n".join([f"""
  <figure>
  <img src="/files/group10/cartogram_{cluster_name}.gif" style="width:60%">
  <figcaption>The "{cluster_name}" cluster.</figcaption>
  </figure>
  <hr style="height:3px;border:none;color:#333;background-color:#333;" />
  """ for cluster_name in clusters_to_plot])

displayHTML(html_str)

ScaDaMaLe Course site and book

Conclusion

We identified 6 clusters of tweets. Interestingly the most common emoticon 😂 was placed in the not happy cluster. This emoji is supposed to mean "laughing with tears of joy". However it seems it oftentimes appear in tweets together with unhappy looking emojis. Perhaps it is often used to indicate a sense of humorous despair. Considering this one should be a bit skeptical about using our emoji clusters to estimate sentiment of individual tweets, since our model just assigns each emojis one of six meanings (or clusters).

By plotting the collected data as cartograms/choropleth maps across different time intervals we were able to visualize change in tweet frequency around the holidays. In particular we noticed an increase in happy tweets around Christmas and New Year's Eve, in many countries. So although our simple model has some issues it does seem to work to some extent.

We also identified a spike in twitter activity in Saudi Arabia on December 28th, which we speculate may have been caused by the jail sentence given to the activist Loujain al-Hathloul. To tell if this is the case it would be necessary to analyze the particular tweets and hashtags from Saudi Arabia in our dataset.

Mapping the sentiment clusters showed that in particular african countries had a large proportion of unhappy tweets. It also showed that the US, tweets significantly less happy tweets than other "western" countries, which may be related to the recent divisive political campaigns. However, both cases might also be caused by regional differences in use of for example the crying while laughing emoji.

We were probably a bit too cautious when only collecting data for three minutes per hour. We were afraid of spending too many of the courses resources. However, in the end both the size and processing time of our dataset was modest, so we could easily have been collecting data continuously, which would have allowed us to generate animations at a better time resolution. Due to the same concerns regarding computational resources we only collected data for around 10 days. This unfortunately meant that we didn't record the storming of the US congress or Donald Trumps ban from twitter, which would have been interesting to study. But we did learn that you can never have too much data 😂.

ScaDaMaLe Course site and book

// parameter for number of minutes of streaming (can be used in Jobs feature)
dbutils.widgets.text("nbr_minutes", "3", label = "Minutes of streaming (int)")
val nbr_minutes = dbutils.widgets.get("nbr_minutes").toInt
nbr_minutes: Int = 2

If the cluster was shut down, then start a new cluster and install the following libraries on it (via maven).

  • gson with maven coordinates com.google.code.gson:gson:2.8.6
  • twitter4j-examples with maven coordinates org.twitter4j:twitter4j-examples:4.0.7
"./07_a_appendix_extendedTwitterUtils2run"
import twitter4j._
import twitter4j.auth.Authorization
import twitter4j.conf.ConfigurationBuilder
import twitter4j.auth.OAuthAuthorization
import org.apache.spark.streaming._
import org.apache.spark.streaming.dstream._
import org.apache.spark.storage.StorageLevel
import org.apache.spark.streaming.receiver.Receiver
defined class ExtendedTwitterReceiver
defined class ExtendedTwitterInputDStream
import twitter4j.Status
import twitter4j.auth.Authorization
import org.apache.spark.storage.StorageLevel
import org.apache.spark.streaming.StreamingContext
import org.apache.spark.streaming.dstream.{ReceiverInputDStream, DStream}
defined object ExtendedTwitterUtils
done running the extendedTwitterUtils2run notebook - ready to stream from twitter
"./07_b_appendix_TTTDFfunctions"
USAGE: val df = tweetsDF2TTTDF(tweetsJsonStringDF2TweetsDF(fromParquetFile2DF("parquetFileName")))
                  val df = tweetsDF2TTTDF(tweetsIDLong_JsonStringPairDF2TweetsDF(fromParquetFile2DF("parquetFileName")))
                  
import org.apache.spark.sql.types.{StructType, StructField, StringType}
import org.apache.spark.sql.functions._
import org.apache.spark.sql.types._
import org.apache.spark.sql.ColumnName
import org.apache.spark.sql.DataFrame
fromParquetFile2DF: (InputDFAsParquetFilePatternString: String)org.apache.spark.sql.DataFrame
tweetsJsonStringDF2TweetsDF: (tweetsAsJsonStringInputDF: org.apache.spark.sql.DataFrame)org.apache.spark.sql.DataFrame
tweetsIDLong_JsonStringPairDF2TweetsDF: (tweetsAsIDLong_JsonStringInputDF: org.apache.spark.sql.DataFrame)org.apache.spark.sql.DataFrame
tweetsDF2TTTDF: (tweetsInputDF: org.apache.spark.sql.DataFrame)org.apache.spark.sql.DataFrame
tweetsDF2TTTDFWithURLsAndHashtags: (tweetsInputDF: org.apache.spark.sql.DataFrame)org.apache.spark.sql.DataFrame
tweetsDF2TTTDFLightWeight: (tweetsInputDF: org.apache.spark.sql.DataFrame)org.apache.spark.sql.DataFrame

Loading twitter credentials

You need to have a twitter developer account to run the data collection. Save your credentials in a notebook called KeysAndTokens, in your user home directory.

// needs upgraded databricks subscription, works on project shard

var usr = dbutils.notebook.getContext.tags("user")
var keys_notebook_location = "/Users/" + usr + "/KeysAndTokens"
dbutils.notebook.run(keys_notebook_location, 100)
Warning: No value returned from the notebook run. To return a value from a notebook, use dbutils.notebook.exit(value)
usr: String = bokman@chalmers.se
keys_notebook_location: String = /Users/bokman@chalmers.se/KeysAndTokens
res18: String = null
import com.google.gson.Gson 
import org.apache.spark.sql.functions._
//import org.apache.spark.sql.types._

val outputDirectoryRoot = "/datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus" // output directory


val batchInterval = 1 // in minutes
val timeoutJobLength =  batchInterval * 5

var newContextCreated = false
var numTweetsCollected = 0L // track number of tweets collected

// This is the function that creates the SteamingContext and sets up the Spark Streaming job.
def streamFuncWithProcessing(): StreamingContext = {
  // Create a Spark Streaming Context.
  val ssc = new StreamingContext(sc, Minutes(batchInterval))
  // Create the OAuth Twitter credentials 
  val auth = Some(new OAuthAuthorization(new ConfigurationBuilder().build()))
  
  // Create filter
  val locationsQuery = new FilterQuery().locations(Array(-180.0, -90.0), Array(180.0, 90.0)) // all locations
  
  // Create a Twitter Stream for the input source.  
  val twitterStream = ExtendedTwitterUtils.createStream(ssc, auth, Some(locationsQuery))
  // Transform the discrete RDDs into JSON
  val twitterStreamJson = twitterStream.map(x => { val gson = new Gson();
                                                 val xJson = gson.toJson(x)
                                                 xJson
                                               }) 
  // take care
  val partitionsEachInterval = 1 // This tells the number of partitions in each RDD of tweets in the DStream.
  
  // get some time fields from current `.Date()`, use the same for each batch in the job
  val year = (new java.text.SimpleDateFormat("yyyy")).format(new java.util.Date())
  val month = (new java.text.SimpleDateFormat("MM")).format(new java.util.Date())
  val day = (new java.text.SimpleDateFormat("dd")).format(new java.util.Date())
  val hour = (new java.text.SimpleDateFormat("HH")).format(new java.util.Date())
  
  // what we want done with each discrete RDD tuple: (rdd, time)
  twitterStreamJson.foreachRDD((rdd, time) => { // for each filtered RDD in the DStream
      val count = rdd.count() //We count because the following operations can only be applied to non-empty RDD's
      if (count > 0) {
        val outputRDD = rdd.repartition(partitionsEachInterval) // repartition as desired
        // to write to parquet directly in append mode in one directory per 'time'------------       
        val outputDF = outputRDD.toDF("tweetAsJsonString")
        val processedDF = tweetsDF2TTTDF(tweetsJsonStringDF2TweetsDF(outputDF)).filter($"countryCode" =!= lit(""))

        
        // Writing the full processed df (We probably don't need it, but useful for exploring the data initially)
        processedDF.write.mode(SaveMode.Append)
                .parquet(outputDirectoryRoot + "/" + year + "/" + month + "/" + day + "/" + hour + "/" + time.milliseconds) 
        
        // end of writing as parquet file-------------------------------------
        numTweetsCollected += count // update with the latest count
      }
  })
  newContextCreated = true
  ssc
}
import com.google.gson.Gson
import org.apache.spark.sql.functions._
outputDirectoryRoot: String = /datasets/ScaDaMaLe/twitter/student-project-10_group-Geosmus
batchInterval: Int = 1
timeoutJobLength: Int = 5
newContextCreated: Boolean = false
numTweetsCollected: Long = 0
streamFuncWithProcessing: ()org.apache.spark.streaming.StreamingContext
// Now just use the function to create a Spark Streaming Context
val ssc = StreamingContext.getActiveOrCreate(streamFuncWithProcessing)
ssc: org.apache.spark.streaming.StreamingContext = org.apache.spark.streaming.StreamingContext@212f8bef
// you only need one of these to start
ssc.start()
// ssc.awaitTerminationOrTimeout(30000) //time in milliseconds
// Note, this is not fool-proof...
Thread.sleep(nbr_minutes*60*1000) //time in milliseconds
ssc.stop(stopSparkContext = false)
numTweetsCollected // number of tweets collected so far

ScaDaMaLe Course site and book

import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import pycountry
import geopandas
from cartogram_geopandas import make_cartogram
import imageio

def load_twitter_geo_data(path):
  df = spark.read.parquet(path)
  df = df.select('countryCode', "CurrentTweetDate")
  df = df.toPandas()
  
  # Add some new datetime derived columns.
  df["date"] = df["CurrentTweetDate"].dt.date
  df["year"] = df["CurrentTweetDate"].dt.year
  df["month"] = df["CurrentTweetDate"].dt.month
  df["day"] = df["CurrentTweetDate"].dt.day
  df["dayofweek"] = df["CurrentTweetDate"].dt.dayofweek
  df["hour"] = df["CurrentTweetDate"].dt.hour
  df["minute"] = df["CurrentTweetDate"].dt.minute
  df["second"] = df["CurrentTweetDate"].dt.second
  return df

def load_twitter_geo_data_with_filter(path, filter_str):
  df = spark.read.parquet(path)
  df = df.filter(filter_str).select('countryCode', "CurrentTweetDate")
  df = df.toPandas()
  
  # Add some new datetime derived columns.
  df["year"] = df["CurrentTweetDate"].dt.year
  df["month"] = df["CurrentTweetDate"].dt.month
  df["day"] = df["CurrentTweetDate"].dt.day
  df["dayofweek"] = df["CurrentTweetDate"].dt.dayofweek
  df["hour"] = df["CurrentTweetDate"].dt.hour
  df["minute"] = df["CurrentTweetDate"].dt.minute
  df["second"] = df["CurrentTweetDate"].dt.second
  return df

def country_code_grouping(df):
  df['count'] = df.groupby('countryCode')['countryCode'].transform('count') #The count inside the transform function calls pandas count function
  df_cc = df.drop_duplicates(subset=['countryCode'])
  df_cc = df_cc.filter(['countryCode', 'count']).reset_index()
  return df_cc

def country_code_grouping_extra(df, key):
  #df['count'] = df.groupby('countryCode')['countryCode'].transform('count') #The count inside the transform function calls pandas count function
  df_cc = df[["countryCode", key]].groupby('countryCode').sum().reset_index() #df.drop_duplicates(subset=['countryCode'])
  return df_cc

def add_iso_a3_col(df_cc):
  cc_dict = {}
  for country in pycountry.countries:
    cc_dict[country.alpha_2] = country.alpha_3

    df_cc["iso_a3"] = df_cc["countryCode"].map(cc_dict)
  return df_cc

def create_geo_df(df_cc):
  df_world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
  # natural earth has missing iso_a3 names for France, Norway, Somalia, Kosovo and Northen Cypruys..
  # See the following issue: https://github.com/geopandas/geopandas/issues/1041
  # The following lines manually fixes it for all but Northern Cyprus, which does not have an iso_a3 code.
  df_world.loc[df_world['name'] == 'France', 'iso_a3'] = 'FRA'
  df_world.loc[df_world['name'] == 'Norway', 'iso_a3'] = 'NOR'
  df_world.loc[df_world['name'] == 'Somaliland', 'iso_a3'] = 'SOM'
  df_world.loc[df_world['name'] == 'Kosovo', 'iso_a3'] = 'RKS'

  numTweetDict = {}
  for countryCode in df_world["iso_a3"]:
      numTweetDict[countryCode] = 0
  for index, row in df_cc.iterrows():
      numTweetDict[row["iso_a3"]] = row["count"]

  df_world["numTweets"] = df_world["iso_a3"].map(numTweetDict)
  
  # Could be useful to throw away antarctica and antarctic isles.
  # df_world = df_world.query("(continent != 'Antarctica') or (continent != 'Seven seas (open ocean)')") 

  # Redundant
  # df_world_proj = df_world.to_crs({'init': 'EPSG:4326'})
  # df_world["area"] = df_world_proj['geometry'].area
  # df_world["tweetDensity"] = df_world["numTweets"]/df_world["area"]
  # df_world["tweetPerCapita"] = df_world["numTweets"]/df_world["pop_est"]
  return df_world


def create_geo_df_extra(df_cc, data_of_interest="count", default_value=0):
  df_world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
  # natural earth has missing iso_a3 names for France, Norway, Somalia, Kosovo and Northen Cypruys..
  # See the following issue: https://github.com/geopandas/geopandas/issues/1041
  # The following lines manually fixes it for all but Northern Cyprus, which does not have an iso_a3 code.
  df_world.loc[df_world['name'] == 'France', 'iso_a3'] = 'FRA'
  df_world.loc[df_world['name'] == 'Norway', 'iso_a3'] = 'NOR'
  df_world.loc[df_world['name'] == 'Somaliland', 'iso_a3'] = 'SOM'
  df_world.loc[df_world['name'] == 'Kosovo', 'iso_a3'] = 'RKS'

  dataTweetDict = {}
  for countryCode in df_world["iso_a3"]:
      dataTweetDict[countryCode] = default_value
  for index, row in df_cc.iterrows():
      dataTweetDict[row["iso_a3"]] = row[data_of_interest]

  df_world[data_of_interest] = df_world["iso_a3"].map(dataTweetDict)
  
  # Could be useful to throw away antarctica and antarctic isles.
  # df_world = df_world.query("(continent != 'Antarctica') or (continent != 'Seven seas (open ocean)')") 

  # Redundant
  # df_world_proj = df_world.to_crs({'init': 'EPSG:4326'})
  # df_world["area"] = df_world_proj['geometry'].area
  # df_world["tweetDensity"] = df_world["numTweets"]/df_world["area"]
  # df_world["tweetPerCapita"] = df_world["numTweets"]/df_world["pop_est"]
  return df_world
def animate_cartogram(df, filterKey, filterList, out_path, nIter, cartogram_key, legend=""):
  vmax = max(df.groupby([filterKey, "countryCode"]).count()["index"]) # Get maximum count within a single country in a single hour. We will use this to fix the colorbar.
  images=[] # array for storing the png frames for the gif
  for i in filterList:
    # Load the data and add ISOa3 codes.
    df_filtered = df.query("%s==%d"%(filterKey, i)).reset_index()
    df_cc = country_code_grouping(df_filtered)
    df_cc = add_iso_a3_col(df_cc)

    # Create the geopandas dataframe
    df_world = create_geo_df(df_cc)
    #Create cartogram
    # The make_cartogram function can not handle a tweetcount of zero, so a not so elegant solution is to clip the tweet count at 1.
    # The alternative (to remove countries without tweets) is not elegant either, and causes problems when we look at the time evolution, since countries will be popping in and out of existence.
    df_world2 = df_world.copy(deep=True)
    df_world2["numTweets"] = df_world2["numTweets"].clip(lower=1)
    df_cartogram = make_cartogram(df_world2, cartogram_key, nIter, inplace=False)
    plot = df_cartogram.plot(column=cartogram_key, cmap='viridis', figsize=(20, 8), legend=True, vmin=0, vmax=vmax) 

    # Plot a vertical line indicating midnight. 360degrees/24hours = 15 degrees/hour
    if i<12:
      t_midnight = -15*i #15deg per hour
      t_noon = t_midnight + 180
    else:
      t_midnight = 180 - (i-12)*15
      t_noon = t_midnight - 180

    plt.axvline(x=t_midnight, ymin=-90, ymax=90, ls="--", c="black")
    plt.axvline(x=t_noon, ymin=-90, ymax=90, ls="--", c="yellow")
    plt.title(legend + "Time of day (GMT): %02d"%i, fontsize=24)
    plt.xlabel("Longitude $^\circ$", fontsize=20)
    plt.ylabel("Latitude $^\circ$", fontsize=20)
    plt.ylim(-90,90)
    plt.xlim(-180,180)

    #Save cartogram as a png
    fig = plot.get_figure()
    fig.savefig(out_path + "%d.png"%i)
    plt.close(fig)
    #Append images to image list
    images.append(imageio.imread(out_path + "%d.png"%i))
  #create gif from the image list
  imageio.mimsave(out_path + ".gif", images, duration=0.5)
  
def animate_cartogram_extra(df, filterKey, filterList, out_path, nIter, cartogram_key, default_value, scale_factor=2, vmin=0.0, vmax=1.0):
  # uses scaling proportional to original area of country
  images=[] # array for storing the png frames for the gif
  
  for i in filterList:
    # Load the data and add ISOa3 codes.
    df_filtered = df.query("%s==%d"%(filterKey, i)).reset_index()
    df_cc = country_code_grouping_extra(df_filtered, cartogram_key)
    df_cc = add_iso_a3_col(df_cc)

    # Create the geopandas dataframe
    df_world = create_geo_df_extra(df_cc, cartogram_key, default_value)
     
    # scale by area
    df_world["__scaled"] = (scale_factor - 1) * df_world[cartogram_key] * pd.to_numeric(df_world['geometry'].area)
      
    # make sure the quantity of interest > 0, add area to every value
    df_world["__scaled"] = pd.to_numeric(df_world['geometry'].area) + df_world["__scaled"]
    
    #Create cartogram
    df_cartogram = make_cartogram(df_world, "__scaled", nIter, inplace=False)
    
    plot = df_cartogram.plot(column=cartogram_key, cmap='viridis', figsize=(20, 8), legend=cartogram_key, vmin=vmin, vmax=vmax)
    
    # Plot a vertical line indicating midnight and one indicating noon. 360degrees/24hours = 15 degrees/hour
    if i<12:
      t_midnight = -15*i #15deg per hour
      t_noon = t_midnight + 180
    else:
      t_midnight = 180 - (i-12)*15
      t_noon = t_midnight - 180

    plt.axvline(x=t_midnight, ymin=-90, ymax=90, ls="--", c="black")
    plt.axvline(x=t_noon, ymin=-90, ymax=90, ls="--", c="yellow")
    
    plt.title("Time of day (GMT): %02d"%i, fontsize=24)
    plt.xlabel("Longitude $^\circ$", fontsize=20)
    plt.ylabel("Latitude $^\circ$", fontsize=20)
    plt.ylim(-90,90)
    plt.xlim(-180,180)
    
    #Save cartogram as a png
    fig = plot.get_figure()
    fig.savefig(out_path + "%d.png"%i)
    plt.close(fig)
    #Append images to image list
    images.append(imageio.imread(out_path + "%d.png"%i))
  #create gif from the image list
  imageio.mimsave(out_path + ".gif", images, duration=0.5)
def load_twitter_geo_data_sentiment(path):
  df = spark.read.parquet(path)
  df = df.select('countryCode', "CurrentTweetDate", "prayer", "monkey", "happy", "SK", "cat", "notHappy")
  df = df.toPandas()
  
  # Add some new datetime derived columns.
  df["date"] = df["CurrentTweetDate"].dt.date
  df["year"] = df["CurrentTweetDate"].dt.year
  df["month"] = df["CurrentTweetDate"].dt.month
  df["day"] = df["CurrentTweetDate"].dt.day
  df["dayofweek"] = df["CurrentTweetDate"].dt.dayofweek
  df["hour"] = df["CurrentTweetDate"].dt.hour
  df["minute"] = df["CurrentTweetDate"].dt.minute
  df["second"] = df["CurrentTweetDate"].dt.second
  return df

def country_code_grouping_sentiment(df):
  df['count'] = df.groupby(['countryCode', 'sentiment'])['countryCode'].transform('count') #The count inside the transform function calls pandas count function
  df["sentiment"] = df.groupby(['countryCode'])["sentiment"].transform("mean")
  df = df.drop_duplicates("countryCode")
  df_cc = df.filter(['countryCode', 'count', "sentiment"]).reset_index()
  return df_cc

def create_geo_df_sentiment(df_cc):
  df_world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
  # natural earth has missing iso_a3 names for France, Norway, Somalia, Kosovo and Northen Cypruys..
  # See the following issue: https://github.com/geopandas/geopandas/issues/1041
  # The following lines manually fixes it for all but Northern Cyprus, which does not have an iso_a3 code.
  df_world.loc[df_world['name'] == 'France', 'iso_a3'] = 'FRA'
  df_world.loc[df_world['name'] == 'Norway', 'iso_a3'] = 'NOR'
  df_world.loc[df_world['name'] == 'Somaliland', 'iso_a3'] = 'SOM'
  df_world.loc[df_world['name'] == 'Kosovo', 'iso_a3'] = 'RKS'

  numTweetDict = {}
  for countryCode in df_world["iso_a3"]:
      numTweetDict[countryCode] = 0
  for index, row in df_cc.iterrows():
      numTweetDict[row["iso_a3"]] = row["count"]
  df_world["numTweets"] = df_world["iso_a3"].map(numTweetDict)

  sentimentDict = {}
  for countryCode in df_world["iso_a3"]:
      sentimentDict[countryCode] = 0
  for index, row in df_cc.iterrows():
      sentimentDict[row["iso_a3"]] = row["sentiment"]
  df_world["sentiment"] = df_world["iso_a3"].map(sentimentDict)
  
  # Could be useful to throw away antarctica and antarctic isles.
  # df_world = df_world.query("(continent != 'Antarctica') or (continent != 'Seven seas (open ocean)')") 

  # Redundant
  # df_world_proj = df_world.to_crs({'init': 'EPSG:4326'})
  # df_world["area"] = df_world_proj['geometry'].area
  # df_world["tweetDensity"] = df_world["numTweets"]/df_world["area"]
  # df_world["tweetPerCapita"] = df_world["numTweets"]/df_world["pop_est"]
  return df_world

def animate_cartogram_sentiment(df, filterKey, filterList, out_path, nIter, cartogram_key, minSamples, cmap, vmin, vmax, legendList):

  images=[] # array for storing the png frames for the gif
  frameCount = 0
  for i in filterList:
    
    # Load the data and add ISOa3 codes.
    df_filtered = df.query("%s==%d"%(filterKey, i)).reset_index()
    df_cc = country_code_grouping_sentiment(df_filtered)
    df_cc = add_iso_a3_col(df_cc)

    # Create the geopandas dataframe
    df_world = create_geo_df_sentiment(df_cc)
    
    #Create cartogram
    # The make_cartogram function can not handle a tweetcount of zero, so a not so elegant solution is to clip the tweet count at 1.
    # The alternative (to remove countries without tweets) is not elegant either, and causes problems when we look at the time evolution, since countries will be popping in and out of existence.
    df_world2 = df_world.copy(deep=True)
    df_world2["numTweets"] = df_world2["numTweets"].clip(lower=1)
    
    # We want to color all countries with less than minSamples tweets grey.
    # The colormap will do this if these countries sentiment score is below vmin.
    df_world2.loc[df_world["numTweets"] < minSamples, 'sentiment'] = vmin -1
    df_cartogram = make_cartogram(df_world2, cartogram_key, nIter, inplace=False)
    plot = df_cartogram.plot(column="sentiment", cmap=cmap, figsize=(20, 8), legend=True, vmin=vmin, vmax=vmax)

    plt.title(legendList[frameCount], fontsize=24)
    plt.xlabel("Longitude $^\circ$", fontsize=20)
    plt.ylabel("Latitude $^\circ$", fontsize=20)
    plt.ylim(-90,90)
    plt.xlim(-180,180)
    
    frameCount += 1
    #Save cartogram as a png
    fig = plot.get_figure()
    fig.savefig(out_path + "%d.png"%i)
    plt.close(fig)
    #Append images to image list
    images.append(imageio.imread(out_path + "%d.png"%i))
  #create gif from the image list
  imageio.mimsave(out_path + ".gif", images, duration=1)

ScaDaMaLe Course site and book

Note, this notebook has been edited slightly from the course notebook supplied by Raaz.

Extended spark.streaming.twitter.TwitterUtils

2016-2020 Ivan Sadikov and Raazesh Sainudiin

We extend twitter utils from Spark to allow for filtering by user-ids using .follow and strings in the tweet using .track method of twitter4j.

This is part of Project MEP: Meme Evolution Programme and supported by databricks, AWS and a Swedish VR grant.

The analysis is available in the following databricks notebook: * http://lamastex.org/lmse/mep/src/extendedTwitterUtils.html

Copyright 2016-2020 Ivan Sadikov and Raazesh Sainudiin

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
import twitter4j._
import twitter4j.auth.Authorization
import twitter4j.conf.ConfigurationBuilder
import twitter4j.auth.OAuthAuthorization

import org.apache.spark.streaming._
import org.apache.spark.streaming.dstream._
import org.apache.spark.storage.StorageLevel
import org.apache.spark.streaming.receiver.Receiver
// modifications inspired by https://github.com/apache/bahir/blob/master/streaming-twitter/src/main/scala/org/apache/spark/streaming/twitter/TwitterInputDStream.scala
class ExtendedTwitterReceiver(
    twitterAuth: Authorization,
    query: Option[FilterQuery],
    storageLevel: StorageLevel
  ) extends Receiver[Status](storageLevel) {

  @volatile private var twitterStream: TwitterStream = _
  @volatile private var stopped = false

  def onStart() {
    try {
      val newTwitterStream = new TwitterStreamFactory().getInstance(twitterAuth)
      newTwitterStream.addListener(new StatusListener {
        def onStatus(status: Status): Unit = {
          store(status)
        }
        // Unimplemented
        def onDeletionNotice(statusDeletionNotice: StatusDeletionNotice) {}
        def onTrackLimitationNotice(i: Int) {}
        def onScrubGeo(l: Long, l1: Long) {}
        def onStallWarning(stallWarning: StallWarning) {}
        def onException(e: Exception) {
          if (!stopped) {
            restart("Error receiving tweets", e)
          }
        }
      })

      // do filtering only when filters are available
      if (query.isDefined) {
        newTwitterStream.filter(query.get)
      } else {
        newTwitterStream.sample()
      }
      setTwitterStream(newTwitterStream)
      println("Twitter receiver started")
      stopped = false
    } catch {
      case e: Exception => restart("Error starting Twitter stream", e)
    }
  }

  def onStop() {
    stopped = true
    setTwitterStream(null)
    println("Twitter receiver stopped")
  }

  private def setTwitterStream(newTwitterStream: TwitterStream) = synchronized {
    if (twitterStream != null) {
      twitterStream.shutdown()
    }
    twitterStream = newTwitterStream
  }
}
class ExtendedTwitterInputDStream(
    ssc_ : StreamingContext,
    twitterAuth: Option[Authorization],
    query: Option[FilterQuery],
    storageLevel: StorageLevel
  ) extends ReceiverInputDStream[Status](ssc_)  {

  private def createOAuthAuthorization(): Authorization = {
    new OAuthAuthorization(new ConfigurationBuilder().build())
  }

  private val authorization = twitterAuth.getOrElse(createOAuthAuthorization())

  override def getReceiver(): Receiver[Status] = {
    new ExtendedTwitterReceiver(authorization, query, storageLevel)
  }
}
import twitter4j.Status
import twitter4j.auth.Authorization
import org.apache.spark.storage.StorageLevel
import org.apache.spark.streaming.StreamingContext
import org.apache.spark.streaming.dstream.{ReceiverInputDStream, DStream}

object ExtendedTwitterUtils {
  def createStream(
      ssc: StreamingContext,
      twitterAuth: Option[Authorization],
      query: Option[FilterQuery] = None,
      storageLevel: StorageLevel = StorageLevel.MEMORY_AND_DISK_SER_2
    ): ReceiverInputDStream[Status] = {
    new ExtendedTwitterInputDStream(ssc, twitterAuth, query, storageLevel)
  }
}
println("done running the extendedTwitterUtils2run notebook - ready to stream from twitter")

ScaDaMaLe Course site and book

Note, this notebook has been edited slightly from the course notebook supplied by Raaz.

Tweet Transmission Tree Function

This is part of Project MEP: Meme Evolution Programme and supported by databricks, AWS and a Swedish VR grant.

Please see the following notebook to understand the rationale for the Tweet Transmission Tree Functions: * http://lamastex.org/lmse/mep/src/TweetAnatomyAndTransmissionTree.html

Copyright 2016-2020 Akinwande Atanda and Raazesh Sainudiin

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
import org.apache.spark.sql.types.{StructType, StructField, StringType};
import org.apache.spark.sql.functions._
import org.apache.spark.sql.types._
import org.apache.spark.sql.ColumnName
import org.apache.spark.sql.DataFrame

spark.sql("set spark.sql.legacy.timeParserPolicy=LEGACY")

def fromParquetFile2DF(InputDFAsParquetFilePatternString: String): DataFrame = {
      sqlContext.
        read.parquet(InputDFAsParquetFilePatternString)
}

def tweetsJsonStringDF2TweetsDF(tweetsAsJsonStringInputDF: DataFrame): DataFrame = {
      sqlContext
        .read
        .json(tweetsAsJsonStringInputDF.map({case Row(val1: String) => val1}))
      }

def tweetsIDLong_JsonStringPairDF2TweetsDF(tweetsAsIDLong_JsonStringInputDF: DataFrame): DataFrame = {
      sqlContext
        .read
        .json(tweetsAsIDLong_JsonStringInputDF.map({case Row(val0:Long, val1: String) => val1}))
      }

def tweetsDF2TTTDF(tweetsInputDF: DataFrame): DataFrame = {
 tweetsInputDF.select(
  unix_timestamp($"createdAt", """MMM dd, yyyy hh:mm:ss a""").cast(TimestampType).as("CurrentTweetDate"),
  $"id".as("CurrentTwID"),
  $"lang".as("lang"),
  $"place.countryCode".as("countryCode"),
  //$"geo.coordinates".as("coordinates"),
  //$"geoLocation.latitude".as("lat"),
  //$"geoLocation.longitude".as("lon"),
  //unix_timestamp($"retweetedStatus.createdAt", """MMM dd, yyyy hh:mm:ss a""").cast(TimestampType).as("CreationDateOfOrgTwInRT"), 
  //$"retweetedStatus.id".as("OriginalTwIDinRT"),  
  //unix_timestamp($"quotedStatus.createdAt", """MMM dd, yyyy hh:mm:ss a""").cast(TimestampType).as("CreationDateOfOrgTwInQT"), 
  //$"quotedStatus.id".as("OriginalTwIDinQT"), 
  //$"inReplyToStatusId".as("OriginalTwIDinReply"), 
  //$"user.id".as("CPostUserId"),
  //unix_timestamp($"user.createdAt", """MMM dd, yyyy hh:mm:ss a""").cast(TimestampType).as("userCreatedAtDate"),
  //$"retweetedStatus.user.id".as("OPostUserIdinRT"), 
  //$"quotedStatus.user.id".as("OPostUserIdinQT"),
  //$"inReplyToUserId".as("OPostUserIdinReply"),
  //$"user.name".as("CPostUserName"), 
  //$"retweetedStatus.user.name".as("OPostUserNameinRT"), 
  //$"quotedStatus.user.name".as("OPostUserNameinQT"), 
  //$"user.screenName".as("CPostUserSN"), 
  //$"retweetedStatus.user.screenName".as("OPostUserSNinRT"), 
  //$"quotedStatus.user.screenName".as("OPostUserSNinQT"),
  //$"inReplyToScreenName".as("OPostUserSNinReply"),
  $"user.favouritesCount",
  $"user.followersCount",
  $"user.friendsCount",
  //$"user.isVerified",
  $"user.isGeoEnabled",
  $"text".as("CurrentTweet"),
  //$"retweetedStatus.userMentionEntities.id".as("UMentionRTiD"), 
  //$"retweetedStatus.userMentionEntities.screenName".as("UMentionRTsN"), 
  //$"quotedStatus.userMentionEntities.id".as("UMentionQTiD"), 
  //$"quotedStatus.userMentionEntities.screenName".as("UMentionQTsN"), 
  //$"userMentionEntities.id".as("UMentionASiD"), 
  //$"userMentionEntities.screenName".as("UMentionASsN")
 )//.withColumn("TweetType",
    //when($"OriginalTwIDinRT".isNull && $"OriginalTwIDinQT".isNull && $"OriginalTwIDinReply" === -1,
    //  "Original Tweet")
    //.when($"OriginalTwIDinRT".isNull && $"OriginalTwIDinQT".isNull && $"OriginalTwIDinReply" > -1,
    //  "Reply Tweet")
   // .when($"OriginalTwIDinRT".isNotNull &&$"OriginalTwIDinQT".isNull && $"OriginalTwIDinReply" === -1,
     // "ReTweet")
    //.when($"OriginalTwIDinRT".isNull && $"OriginalTwIDinQT".isNotNull && $"OriginalTwIDinReply" === -1,
    //  "Quoted Tweet")
    //.when($"OriginalTwIDinRT".isNotNull && $"OriginalTwIDinQT".isNotNull && $"OriginalTwIDinReply" === -1,
    //  "Retweet of Quoted Tweet")
    //.when($"OriginalTwIDinRT".isNotNull && $"OriginalTwIDinQT".isNull && $"OriginalTwIDinReply" > -1,
    //  "Retweet of Reply Tweet")
    //.when($"OriginalTwIDinRT".isNull && $"OriginalTwIDinQT".isNotNull && $"OriginalTwIDinReply" > -1,
    //  "Reply of Quoted Tweet")
    //.when($"OriginalTwIDinRT".isNotNull && $"OriginalTwIDinQT".isNotNull && $"OriginalTwIDinReply" > -1,
    //  "Retweet of Quoted Rely Tweet")
    //  .otherwise("Unclassified"))
//.withColumn("MentionType", 
//    when($"UMentionRTid".isNotNull && $"UMentionQTid".isNotNull, "RetweetAndQuotedMention")
//    .when($"UMentionRTid".isNotNull && $"UMentionQTid".isNull, "RetweetMention")
//    .when($"UMentionRTid".isNull && $"UMentionQTid".isNotNull, "QuotedMention")
//    .when($"UMentionRTid".isNull && $"UMentionQTid".isNull, "AuthoredMention")
//    .otherwise("NoMention"))
//.withColumn("Weight", lit(1L))
}

def tweetsDF2TTTDFWithURLsAndHashtags(tweetsInputDF: DataFrame): DataFrame = {
 tweetsInputDF.select(
  unix_timestamp($"createdAt", """MMM dd, yyyy hh:mm:ss a""").cast(TimestampType).as("CurrentTweetDate"),
  $"id".as("CurrentTwID"),
  $"lang".as("lang"),
  $"geoLocation.latitude".as("lat"),
  $"geoLocation.longitude".as("lon"),
  unix_timestamp($"retweetedStatus.createdAt", """MMM dd, yyyy hh:mm:ss a""").cast(TimestampType).as("CreationDateOfOrgTwInRT"), 
  $"retweetedStatus.id".as("OriginalTwIDinRT"),  
  unix_timestamp($"quotedStatus.createdAt", """MMM dd, yyyy hh:mm:ss a""").cast(TimestampType).as("CreationDateOfOrgTwInQT"), 
  $"quotedStatus.id".as("OriginalTwIDinQT"), 
  $"inReplyToStatusId".as("OriginalTwIDinReply"), 
  $"user.id".as("CPostUserId"),
  unix_timestamp($"user.createdAt", """MMM dd, yyyy hh:mm:ss a""").cast(TimestampType).as("userCreatedAtDate"),
  $"retweetedStatus.user.id".as("OPostUserIdinRT"), 
  $"quotedStatus.user.id".as("OPostUserIdinQT"),
  $"inReplyToUserId".as("OPostUserIdinReply"),
  $"user.name".as("CPostUserName"), 
  $"retweetedStatus.user.name".as("OPostUserNameinRT"), 
  $"quotedStatus.user.name".as("OPostUserNameinQT"), 
  $"user.screenName".as("CPostUserSN"), 
  $"retweetedStatus.user.screenName".as("OPostUserSNinRT"), 
  $"quotedStatus.user.screenName".as("OPostUserSNinQT"),
  $"inReplyToScreenName".as("OPostUserSNinReply"),
  $"user.favouritesCount",
  $"user.followersCount",
  $"user.friendsCount",
  $"user.isVerified",
  $"user.isGeoEnabled",
  $"text".as("CurrentTweet"), 
  $"retweetedStatus.userMentionEntities.id".as("UMentionRTiD"), 
  $"retweetedStatus.userMentionEntities.screenName".as("UMentionRTsN"), 
  $"quotedStatus.userMentionEntities.id".as("UMentionQTiD"), 
  $"quotedStatus.userMentionEntities.screenName".as("UMentionQTsN"), 
  $"userMentionEntities.id".as("UMentionASiD"), 
  $"userMentionEntities.screenName".as("UMentionASsN"),
  $"urlEntities.expandedURL".as("URLs"),
  $"hashtagEntities.text".as("hashTags")
 ).withColumn("TweetType",
    when($"OriginalTwIDinRT".isNull && $"OriginalTwIDinQT".isNull && $"OriginalTwIDinReply" === -1,
      "Original Tweet")
    .when($"OriginalTwIDinRT".isNull && $"OriginalTwIDinQT".isNull && $"OriginalTwIDinReply" > -1,
      "Reply Tweet")
    .when($"OriginalTwIDinRT".isNotNull &&$"OriginalTwIDinQT".isNull && $"OriginalTwIDinReply" === -1,
      "ReTweet")
    .when($"OriginalTwIDinRT".isNull && $"OriginalTwIDinQT".isNotNull && $"OriginalTwIDinReply" === -1,
      "Quoted Tweet")
    .when($"OriginalTwIDinRT".isNotNull && $"OriginalTwIDinQT".isNotNull && $"OriginalTwIDinReply" === -1,
      "Retweet of Quoted Tweet")
    .when($"OriginalTwIDinRT".isNotNull && $"OriginalTwIDinQT".isNull && $"OriginalTwIDinReply" > -1,
      "Retweet of Reply Tweet")
    .when($"OriginalTwIDinRT".isNull && $"OriginalTwIDinQT".isNotNull && $"OriginalTwIDinReply" > -1,
      "Reply of Quoted Tweet")
    .when($"OriginalTwIDinRT".isNotNull && $"OriginalTwIDinQT".isNotNull && $"OriginalTwIDinReply" > -1,
      "Retweet of Quoted Rely Tweet")
      .otherwise("Unclassified"))
.withColumn("MentionType", 
    when($"UMentionRTid".isNotNull && $"UMentionQTid".isNotNull, "RetweetAndQuotedMention")
    .when($"UMentionRTid".isNotNull && $"UMentionQTid".isNull, "RetweetMention")
    .when($"UMentionRTid".isNull && $"UMentionQTid".isNotNull, "QuotedMention")
    .when($"UMentionRTid".isNull && $"UMentionQTid".isNull, "AuthoredMention")
    .otherwise("NoMention"))
.withColumn("Weight", lit(1L))
}

println("""USAGE: val df = tweetsDF2TTTDF(tweetsJsonStringDF2TweetsDF(fromParquetFile2DF("parquetFileName")))
                  val df = tweetsDF2TTTDF(tweetsIDLong_JsonStringPairDF2TweetsDF(fromParquetFile2DF("parquetFileName")))
                  """)
// try to modify the function tweetsDF2TTTDF so some fields are not necessarily assumed to be available
// there are better ways - https://stackoverflow.com/questions/35904136/how-do-i-detect-if-a-spark-dataframe-has-a-column

def tweetsDF2TTTDFLightWeight(tweetsInputDF: DataFrame): DataFrame = {
 tweetsInputDF.select(
  unix_timestamp($"createdAt", """MMM dd, yyyy hh:mm:ss a""").cast(TimestampType).as("CurrentTweetDate"),
  $"id".as("CurrentTwID"),
  $"lang".as("lang"),
  //$"geoLocation.latitude".as("lat"),
  //$"geoLocation.longitude".as("lon"),
  unix_timestamp($"retweetedStatus.createdAt", """MMM dd, yyyy hh:mm:ss a""").cast(TimestampType).as("CreationDateOfOrgTwInRT"), 
  $"retweetedStatus.id".as("OriginalTwIDinRT"),  
  unix_timestamp($"quotedStatus.createdAt", """MMM dd, yyyy hh:mm:ss a""").cast(TimestampType).as("CreationDateOfOrgTwInQT"), 
  $"quotedStatus.id".as("OriginalTwIDinQT"), 
  $"inReplyToStatusId".as("OriginalTwIDinReply"), 
  $"user.id".as("CPostUserId"),
  unix_timestamp($"user.createdAt", """MMM dd, yyyy hh:mm:ss a""").cast(TimestampType).as("userCreatedAtDate"),
  $"retweetedStatus.user.id".as("OPostUserIdinRT"), 
  $"quotedStatus.user.id".as("OPostUserIdinQT"),
  $"inReplyToUserId".as("OPostUserIdinReply"),
  $"user.name".as("CPostUserName"), 
  $"retweetedStatus.user.name".as("OPostUserNameinRT"), 
  $"quotedStatus.user.name".as("OPostUserNameinQT"), 
  $"user.screenName".as("CPostUserSN"), 
  $"retweetedStatus.user.screenName".as("OPostUserSNinRT"), 
  $"quotedStatus.user.screenName".as("OPostUserSNinQT"),
  $"inReplyToScreenName".as("OPostUserSNinReply"),
  $"user.favouritesCount",
  $"user.followersCount",
  $"user.friendsCount",
  $"user.isVerified",
  $"user.isGeoEnabled",
  $"text".as("CurrentTweet"), 
  $"retweetedStatus.userMentionEntities.id".as("UMentionRTiD"), 
  $"retweetedStatus.userMentionEntities.screenName".as("UMentionRTsN"), 
  $"quotedStatus.userMentionEntities.id".as("UMentionQTiD"), 
  $"quotedStatus.userMentionEntities.screenName".as("UMentionQTsN"), 
  $"userMentionEntities.id".as("UMentionASiD"), 
  $"userMentionEntities.screenName".as("UMentionASsN")
 ).withColumn("TweetType",
    when($"OriginalTwIDinRT".isNull && $"OriginalTwIDinQT".isNull && $"OriginalTwIDinReply" === -1,
      "Original Tweet")
    .when($"OriginalTwIDinRT".isNull && $"OriginalTwIDinQT".isNull && $"OriginalTwIDinReply" > -1,
      "Reply Tweet")
    .when($"OriginalTwIDinRT".isNotNull &&$"OriginalTwIDinQT".isNull && $"OriginalTwIDinReply" === -1,
      "ReTweet")
    .when($"OriginalTwIDinRT".isNull && $"OriginalTwIDinQT".isNotNull && $"OriginalTwIDinReply" === -1,
      "Quoted Tweet")
    .when($"OriginalTwIDinRT".isNotNull && $"OriginalTwIDinQT".isNotNull && $"OriginalTwIDinReply" === -1,
      "Retweet of Quoted Tweet")
    .when($"OriginalTwIDinRT".isNotNull && $"OriginalTwIDinQT".isNull && $"OriginalTwIDinReply" > -1,
      "Retweet of Reply Tweet")
    .when($"OriginalTwIDinRT".isNull && $"OriginalTwIDinQT".isNotNull && $"OriginalTwIDinReply" > -1,
      "Reply of Quoted Tweet")
    .when($"OriginalTwIDinRT".isNotNull && $"OriginalTwIDinQT".isNotNull && $"OriginalTwIDinReply" > -1,
      "Retweet of Quoted Rely Tweet")
      .otherwise("Unclassified"))
.withColumn("MentionType", 
    when($"UMentionRTid".isNotNull && $"UMentionQTid".isNotNull, "RetweetAndQuotedMention")
    .when($"UMentionRTid".isNotNull && $"UMentionQTid".isNull, "RetweetMention")
    .when($"UMentionRTid".isNull && $"UMentionQTid".isNotNull, "QuotedMention")
    .when($"UMentionRTid".isNull && $"UMentionQTid".isNull, "AuthoredMention")
    .otherwise("NoMention"))
.withColumn("Weight", lit(1L))
}

ScaDaMaLe Course site and book

Anomaly Detection with Iterative Quantile Estimation and T-digest

Project group 11

Alexander Karlsson, Alvin Jin and George Osipov

13 January 2021

Link: https://liuonline-my.sharepoint.com/:f:/g/personal/geoos58liuse/El8VTHoZPVpDqpkdkpmJK8IB0Bd-YZw0t5-WRKeTXsqckA?e=faazbx (expires 28/02/2020).

The folder contains both the original recording (1x, ~25min) and the recommended sped-up recording (1.25x, ~20min). The latter is shorter and more fun.

  1. Introduction

Anomaly detection is often implemented as a threshold detector where scalar valued scores (often computed from a higher dimensional sample) above a set threshold are classified as detections. It is often desired that the number of false alarms, i.e. non-anomalous samples that have higher score than the threshold, should be constant. This requires an adaptive threshold if the distribution of the scores varies with time. In this project we will look at two aspects of anomaly detection 1. How to calulate the threshold or quantile for a fixed distribution 2. How to apply this quantile to distributions that change over time using a simple filter

For quantile estimation (QE) we will use t-digest and compare it to a more naive approach which will be presented later. A problem for both these methods are data streams that arise from distributions that change over time. Assume that each sample received a time \(t\) can be written as

\[ x(t) = f(t) + w(t), \]

where \(f(t)\) is a trend value that varies with time and \(w(t)\) is a random variable with a distribution that may also vary with time. We are interested in finding anomalies in \(w(t)\). If we were to estimate a quantile from samples obtained from a time interval \(T_s\), the anomalies would depend on both \(f(t)\) and \(w(t)\), e.g. if \(f(t)\) is a linearly increasing function and \(w(t)\) is constant, most of the anomalous samples would be the more recent ones. This could be mitigated by taking samples from a small enough interval such that \(f(t)\) and \(w(t)\) can be considered constant during that time. This approach requires a continuous update of the estimated quantile, which we denote \(q[n]\), where \(n\) is the index of the time interval at time \(nT_s\). In some cases this may be a sufficently accurate solution. However, assume now that \(w(t)\) is constant but will occasionally change to a distribution with higher mean, i.e. this change is now the anomaly we are trying to detect. If we use the same target quantile in all time steps, these anomalies would go undetected. A compromise is to filter the stream of estimated quantiles \(q[1],q[2],...,q[n]\) in a manner that preserves scalability. The data stream we will look at will have the following form. Each time step yields \(N\) samples with Gaussian distribution with standard deviation \(\sigma\)=1 and mean \[ \mu[n]=\frac{n}{1000}, \] and with 5\(%\) probability, 1\(%\) of the data will have mean \[ \mu[n]=\frac{n}{1000} + 2. \]

  1. QE with t-digest

With t-digest the distribution is estimated using a set of clusters where each cluster is represented by a mean value and weight (the number of samples assigned to the cluster). Clusters at the tail ends of the distribution will have smaller weights. This is determined by a non-decreasing function referred to as a scale function and will result in an error in the QE that is relative to the quantile rather than an absolute error, which is the fundamental idea with t-digest. Any quantile can be estimated by interpolating between cluster points. The algorithm is explained in detail in [Dunning]. The clusters can be computed in a scalable manner which makes the algorithm suitable for large datasets.

  1. Naive QE

A simpler and perhaps more naive approach for empirical QE is to estimate the desired quantile as the the \(k\)'th ordered statistic, i.e. the value \(q=x_k\) for which \(k\) samples are smaller or equal to \(q\), e.g. the 95'th percentile from 1000 samples would then be estimated as the 950'th ordered statistic. If the data is i.i.d. the estimated quantile will then be a random variable with pdf [Rohling]

\[ p(x_k)= k {N\choose k} \left[ P(x) \right]^{k-1} \left[ 1-P(x) \right]^{N-k} p(x), \]

where \(x_k\) is the \(k\)'th ordered statistic, \(P(x)\) is the cdf of the random variable \(x\) and \(p(x)\) is the pdf.

However, if the data is distributed, sorting becomes problematic. We therefore present an iterative, and more scalable, method of finding the desired quantile (or rather, the ordered statistic). We start with a random guess \(\hat{q}\) (e.g. the mean) and count the number of samples that are larger than \(\hat{q}\). This can be done in a distributed fashion where each node reports on the number of samples greater than \(\hat{q}\) as well as the total number of samples in each node. These number are then aggregated at the master node and the ratio yields an estimate of a quantile for \(\hat{q}\). If this is larger than the desired quantile, \(\hat{q}\) should be decreased and vice versa. One then proceeds by iteratively changing \(\hat{q}\) until the desired quantile is found. The search can be made efficient using the following steps

  1. Choose an integer \(k\) that correspends to the desired quantile, e.g. \(k\)=950 for \(N\)=1000 (95'th percentile).

  2. Arbitrarily choose an initial guess of \(\hat{q}\).

  3. Count the number of samples that are greater than \(\hat{q}\), call this \(M\). If \(M > N-k\) increase \(\hat{q}\) by 1, then by 2,4,8,16 etc. until \(M < N-k\) (or reverse this process if \(M\) is initially lower than \(N-k\) ). We now have an upper limit (U) and a lower limit (L) for the desired quantile, \(\hat{q}_U\) and \(\hat{q}_L\). Let \(d\) = \(\hat{q}_U\) - \(\hat{q}_L\).

  4. Let \(\hat{q} = \hat{q}_L\). In each iteration update \(\hat{q} \leftarrow \hat{q} + ud/2\) and then \(d \leftarrow d/2\) where \(u\) is +1 if \(M > N-k\) and -1 otherwise. Stop iterating when \(M=N-k\).

This approach will converge to a solution in time proportional to log\(_2(N)\). For other types of iterative searches for finding an emperical quantile see [Möller].

  1. Filtering Time Varying Quantiles

An interesting problem with both the presented method for QE and t-digest is how to balance new and old estimates. One approach is to make one new estimate for each new batch. This will fail however if one batch suddenly contains a larger burst of "outliers" as these might then go undetected due to the temporary change of the statistics.

Another is to estimate the desired quantiles from one batch and then keep this estimate in the proceeding batches. This will also fail if the distribution varies slowly, i.e. with time the calculated parameters will correspond to different quantiles than what was originally desired. One could mitigate this effect by averaging or updating new estimates with older. However if we estimate the quantiles based on all samples from the beginning up until time \(n\) we need to weight them properly, otherwise we may still have large errors due to distributions that change with time.

A simple tradeoff is to introduce a filter with some forget rate \(T\), i.e. samples that are older than \(T\) no longer effect the current estimate while the more recent estimates are weighted together. A basic approach is an equally weighted sliding window of size \(T\) where

\[ \bar{q}[n]= \frac{1}{T}\sum_{i=0}^{T-1}q[n-i] \]

is the weighted estimate and \(q[n]\) is the quantile estimated from batch/time \(n\). This requires storing \(T\) samples in a memory and writing (i.e. replacing the oldest sample with the newest) in each time step, which may or may not be an issue. Another is to have a filter with exponential decay where each sample \(q[i]\) for \(i=0,...,n\) is weighted by a factor \(ce^{-(n-i)/\tau}\) for \(\tau>0\) and

\[ c= \left[\sum_{i=0}^{\infty}e^{-i/\tau}\right]^{-1} = 1 - e^{-1/\tau}. \]

The weights of previous samples at time \(n=100\) for two different values of \(\tau\) are shown below

Im1

This can be simply implemented with the filter

\[ \bar{q}[n]= \bar{q}[n-1]e^{-1/\tau} + cq[n] = \sum_{i=0}^{n}cq[i]e^{(i-n)/\tau}. \]

The sum of \(n\) weights is

\[ \sum_{i=0}^{n} ce^{-i/\tau} = c\frac{1 - e^{-n/\tau}}{1-e^{-1/\tau}} = 1 - e^{-n/\tau} \]

which can be approximated as one, e.g. if \(n=5\tau\) the weights mass is greater than 0.99. If we regard \(q[n]\) as a random variable with expected value \(\mu\) and variance \(\sigma^2\) that have been approximately constant for a duration of \(L\gg\tau\) samples the filter will be asymptotically unbiased

\[ \mathbf{E}\left[q[n] \right] = \mathbf{E}\left[\sum_{i=0}^{n}cq[i]e^{(i-n)/\tau} \right] = \mathbf{E}\left[q[i] \right] \sum_{i=0}^{n}ce^{-i/\tau} = \mu(1 - e^{-n/\tau})\approx \mu. \]

Assuming for the sake of analysis that \(\mu=0\) and that \(q[n]\) is uncorrelated, i.e. \(\mathbf{E}\left[q[j]q[i] \right]= \sigma^2\) if \(j=i\) and \(\mathbf{E}\left[q[j]q[i] \right]= 0\) otherwise, we get the variance as

\[ \text{var}\left[q[n] \right] = \mathbf{E}\left[\left(\sum_{i=0}^{n}cq[i]e^{(i-n)/\tau} \right)^2\right] = \mathbf{E}\left[q[i]^2 \right] \sum_{i=0}^{n}c^2e^{-2i/\tau} = \sigma^2c^2\frac{(1 - e^{-2n/\tau})}{(1 - e^{-2/\tau})} = \sigma^2\frac{(1 - e^{-1/\tau})^2(1 - e^{-2n/\tau})}{(1 - e^{-1/\tau})(1 + e^{-1/\tau})} \approx \sigma^2\frac{(1 - e^{-1/\tau})}{(1 + e^{-1/\tau})} = \gamma\sigma^2\]

i.e. a reduction by a factor \(\gamma\). This can be compared to the factor \(1/T\) which is the reduction in variance from a rectangular sliding window of length \(T\), e.g. if \(T=100\) we get the same steady state reduction in variance if \(\tau=50\). The value of \(\gamma\) as a function of \(\tau\) is shown below

Im2

The transfer function for this filter in \(z\)-domain is \[ H(z) = \frac{\bar{Q}(z)}{Q(z)} = \frac{1-e^{-1/\tau}}{1 - e^{-1/\tau}z^{-1}}. \] The frequency response, obtained by letting \(z=e^{j2\pi\nu}\) where the normalized frequency is \(\nu = T_sf\), \(f\) is the frequency and \(T_s\) is the time between samples, is shown below

Im3

The figure shows the tradeoff between supressing (in magnitude) higher frequencies and following changes (i.e. keeping phase). The trend that the filter should follow should be slow enough such that it can be approximated as constant for a duration of \(L\gg\tau\), i.e. depending of the frequency of the desired trend, the sampling rate, \(1/T_s\), needs to be high enough to satisfy this. If the flow of samples is constant this will in turn limit the number of samples in each batch and the smallest quantile that can be estimated.

  1. Implementation

// neccessary imports
import org.isarnproject.sketches.java.TDigest
import org.isarnproject.sketches.spark.tdigest._
import scala.util.Random
import scala.util.Random._
import org.apache.spark.sql.functions._
import org.apache.spark.sql.Dataset
import scala.math._
import org.apache.commons.math3.distribution.NormalDistribution
import org.isarnproject.sketches.java.TDigest
import org.isarnproject.sketches.spark.tdigest._
import scala.util.Random
import scala.util.Random._
import org.apache.spark.sql.functions._
import org.apache.spark.sql.Dataset
import scala.math._
import org.apache.commons.math3.distribution.NormalDistribution
// Define 2-Gaussian mixture model
// This code is taken from [041_SketchingWithTDigest]

def myMixtureOf2Normals( normalLocation: Double, abnormalLocation: Double, normalWeight: Double, r: Random) : Double = {
  val sample = if (r.nextDouble <= normalWeight) {r.nextGaussian+normalLocation }
               else {r.nextGaussian + abnormalLocation}
  return sample
   }
myMixtureOf2Normals: (normalLocation: Double, abnormalLocation: Double, normalWeight: Double, r: scala.util.Random)Double
// Define the naive QE function
def itrQuantEstimator[D](data:Dataset[D], target: Int): Double = {
  // find an interval
  var x = 0.0
  var x_old = 0.0
  var qfound=false
  var step = 1.0
  var Na_old = data.filter($"value">x).count()
  var Na = Na_old
  var scale=1.0
  if (Na_old < 10){scale= (-1)}
  step = step*scale  
  var Nitr = 0
  while (qfound == false){
    // updata iteretion count
    Nitr = Nitr + 1
    // update x
    x = x + step
    // update step
    step = step*2
    Na = data.filter($"value">x).count()
    if (Na*scale < target*scale){
      qfound = true}
    else{
      Na_old=Na
      x_old=x
    }
  }

  // set upper and lower limit
  var UL = x_old
  var LL=x
  if (x_old < x){UL = x; LL=x_old }

  // Find the quantile for current batch
  var Int = UL - LL
  qfound = false
  x=LL
  scale=1
  while (qfound == false){
    // updata iteretion count
    Nitr = Nitr + 1
    // update x
    Int = Int/2
    x = x + scale*Int
    Na = data.filter($"value">x).count()
    if (Na == target){
      qfound = true}
    else if (Na < target){
           // decrease x
      scale= -1
    }
    else if(Na > target){
    // increase x
      scale= 1
    }

  }
  return x
}
itrQuantEstimator: [D](data: org.apache.spark.sql.Dataset[D], target: Int)Double
// Estimate quantiles in loop

val N = 100000 // samples per batch

// Naive QE parameters
val Nmk = 10 // integer "N - k"

// t-digest parameters
val targetQ = 1.0 - Nmk.toDouble/N.toDouble
val comp = 0.2 // Compression parameter
val Nc = 25 // Number of bins
val udf_tDigest = TDigestAggregator.udf[Double](comp,Nc)

// filter parameters
val tau = 20.0
val c = 1.0 - exp(-1.0/tau)
var q_tf = 0.0 //filterd t-digets quantile estimate
var q_nf = 0.0 //filterd naive quantile estimate

// loop parameters
val T = 500 // time or number of batches
var resMap = scala.collection.mutable.Map[Int,(Int,Double,Double,Double,Double,Double,Double,Double,Double,Double,Double)]() // create an empty map for storing results
var q_true = 0.0 // true quantile
var Na_true = 0.0 // true number of
var rr = 0.0 // realisation of anomalies
var Na_t1 = 0.0 // number of anomalies using t-digest estimate from first batch
var Na_tf = 0.0 // number of anomalies using filtered t-digest estimate from current batch
var Na_n1 = 0.0 // number of anomalies using naive estimate from first batch
var Na_nf = 0.0 // number of anomalies using filtered naive estimate from current batch
var q_t1 = 0.0 // first QE with t-digets
var q_n1 = 0.0 // first QE with naive QE
var q_t = 0.0 // t-digest quantile estimate
var q_n = 0.0 // naive quantile estimate

// data parameters
var mu1=0.0
var mu2=0.0
var wN=1.0
val seed = 10L
val r = new Random(seed) // create random instace with "seed"


// Start loop
for( t <- 1 to T){
  //get batch of data
  rr=r.nextFloat
  if( rr < 0.95 )
  {wN=1.0} // All data is normal
  else
  {wN=0.99} // 1% of data is anomalous
  mu1=t.toDouble/1000.0
  mu2=mu1 + 2
  val data = sc.parallelize(Vector.fill(N){myMixtureOf2Normals(mu1, mu2, wN, r)}).toDF.as[Double]


  //do t-digest
  val agg = data.agg(udf_tDigest($"value"))
  val td = agg.first.getAs[TDigest](0)
  q_t = td.cdfInverse(targetQ)

  if( t == 1 ){q_t1 = q_t} // save first quantile estimate  
  if( t == 1 ){q_tf = q_t}else{q_tf = q_t*c + exp(-1.0/tau)*resMap(t-1)._5}   // if first batch use no filter weight
  Na_t1 = data.filter($"value">q_t1).count()
  Na_tf = data.filter($"value">q_tf).count()

  //do naive QE
  q_n = itrQuantEstimator(data,Nmk)

  if( t == 1 ){q_n1 = q_n} // save first quantile estimate  
  if( t == 1 ){q_nf = q_n}else{q_nf = q_n*c + exp(-1.0/tau)*resMap(t-1)._9}   // if first batch use no filter weight
  Na_n1 = data.filter($"value">q_n1).count()
  Na_nf = data.filter($"value">q_nf).count()

  //get true quantile and true number of anomalies (ignoring anomalies)
  val normalDataDistribution = new NormalDistribution(mu1, 1);
  q_true = normalDataDistribution.inverseCumulativeProbability(targetQ)

  val abnormalDataDistribution = new NormalDistribution(mu2, 1);
  var cdf_N = normalDataDistribution.cumulativeProbability(q_true)
  var cdf_A = abnormalDataDistribution.cumulativeProbability(q_true)

  Na_true = N*wN*(1.0-cdf_N) + N*(1.0-wN)*(1.0-cdf_A)


  // save results
  resMap += (t -> (t,q_true,Na_true,q_t,q_tf,Na_t1,Na_tf,q_n,q_nf,Na_n1,Na_nf))
  println("Batch Number: "+ t)

}

// Put results into dataframe for presentation
val resL = resMap.toList.map(_._2) // convert to list and extract data
val resS = resL.sortBy(x => x._1) // sort
val res_all = resS.toDF("Time index, n","true quantile","true number of anomalies","QE with t-digest","filtered QE with t-digest","number of anomalies with fix t-digest quantile","number of anomalies with filtered t-digest quantile","Naive QE","filtered naive QE","number of anomalies with fix naive QE","number of anomalies with filtered naive QE") // convert to DF
  1. Results

// Plot estimated and true quantiles
display(res_all)

We see that the filtered quantiles are not affected by the bursts of anomalies, seen as spikes in the instantaneous estimates. We also note that the difference between quantiles using the t-digest and naive method is small. The number of iterations in each time step for the naive method varied between 4 and 18 with a mean of 10 iterations. This can be reduced by using the estimated quantile in step \(n-1\) as the initial guess in step \(n\).

// Plot number of anomalies and true number of anomalies
display(res_all)

If a fixed quantile is used the number of anomalies will increase with time due to the changing statistics of the data distribution. By properly filtering the estimates, the number of anomalies are kept at a constant level (10 in this case) in time slots with the normal distribution while still detecting the bursts of outliers (seen as spikes with 52.7 calculated anomaleties) in time slots with the abnormal distribution. The emperical mean relative errors for the quantile defined as

\[ \varepsilon_q = \frac{1}{T}\sum_{n=1}^{T}\frac{|q[n] - \hat{q}[n]|}{q[n]}\]

was 0.0052 with the naive QE and 0.0054 with t-digest, using the filtered quantiles. The corresponding error for the number of anomalies (this is ideally \(N-k = 10\) in normal batches and 52.7 in abnormal batches), was 0.23 with naive QE and 0.24 with t-digest, i.e. both methods perform equally in this case.

  1. Discussion

7.1 Iterative method vs t-digest

One difference between the iterative method and t-digest is that the latter is updated with a single sample at a time, while the former must store the whole batch of \(N\) samples, and thus might require more space. On the other hand, the iterative method has a simple implementation that relies only on the basic arithmetic operations, while t-digest requires evaluations of scale functions which contain relatively expensive operations such as log and sin\(^{-1}\). This could suggest that iterative method can be implemented to work faster than t-digest. Developing an efficient implementation and comparing these methods in terms of time complexity would be an interesting future research direction.

7.2 Sketching with the iterative method

Another difference is that the t-digest outputs a sketch -- a compressed object that can be used to obtain estimates of different statistics of the original data stream, e.g. estimates of several different quantiles. On the other hand, the iterative method in the form presented above can only be used to estimate one quantile. A way to obtain a data sketch with the iterative method is to fix a step size \(\alpha\) and to maintain \(\frac{1}{\alpha}\) quantiles for \(\alpha\), \(2\alpha\), \(3\alpha\), ... If we want to get an estimate of a quantile that is not stored in the sketch, we can take two values from the sketch such that the desired quantile falls between them and then iterpolate (e.g. linearly). The space complexity of this sketch is \(O(\frac{1}{\alpha})\), i.e. it depends linearly on the desired level of accuracy. Having in mind that our target application is anomaly detection, one could modify this solution to better correspond to the task at hand: instead of evenly spacing the quantiles, one could be more fine-grained towards the endpoints of the interval [0,1] and have larger bins in the middle.

7.3 Alternative approaches

An alternative approach to quantile estimation is KLL (see https://arxiv.org/pdf/1603.05346.pdf). It is a data-agnostic method, i.e. no prior distribution is assumed on the data stream. The data points are only assumed to be pairwise comparable. In this model, KLL is provably optimal. The basic idea of the algorithm is the following. The data is processes by compactors, which are subroutines that have arrays of given capacity. A compactor collects elements until the maximum capacity is reached, then it sorts the elements and removes either the odd-indexed ones or the even-indexed ones (deciding randomly). Afterwards, the compactor passed the remaining elements to another compactor. The full algorithm is a chain of compactors. By choosing appropriate capacities for compactors at each level, KLL achieves provably optimal worst-case performance.

One might be interested in comparing KLL with t-digest and the iterative method empirically. It would also be interesting to mathematically analyze t-digest and the naive QE in the distribution-agnostic model of KLL.

  1. References

[Rohling] H. Rohling, "Radar CFAR Thresholding in Clutter and Multiple Target Situations," in IEEE Transactions on Aerospace and Electronic Systems, vol. AES-19, no. 4, pp. 608-621, July 1983, doi: 10.1109/TAES.1983.309350.

[Möller] Möller, E., Grieszbach, G., Shack, B., & Witte, H. (2000). Statistical properties and control algorithms of recursive quantile estimators. Biometrical Journal, 42(6), 729–746.

[Dunning] Dunning, T., & Ertl, O. (2019). Computing extremely accurate quantiles using t-digests. arXiv preprint arXiv:1902.04023.

[041SketchingWithTDigest] https://lamastex.github.io/scalable-data-science/sds/2/2/db/041SketchingWithTDigest/

ScaDaMaLe Course site and book

Project Members:
Chi Zhang, zchi@chalmers.se;
Shuangshuang Chen, shuche@kth.se;
Magnus Tarle, tarle@kth.se

Project presentation video

The presentation record link is here: https://drive.google.com/drive/folders/13XwlItZqtOeBZ5TJfnCP1hqtQ9imRFq
The final complete 20 minutes presentation is: "Project
complete_video.mp4"
Because the cluster seems quite slow when we recording the video and there are too many things to run within 20 minutes, we recorded the video after we finish running all the codes. And some parts of the video are speeded up to meet the 20 minutes requirement. We also put the original raw video records in the folder, from 00 to 08 videos correspond to the script files from 00 to 08, in case you only want to know about a certain part.

Project Introduction - Analysis and Prediction of COVID-19 Data

In this project, we use both scala (data processing part) and python (algorithm part). We deal with scalable data, and use what we learned from the course.

1. Project Plan

In this project, we dealt with COVID-19 data, and do the following tasks:

  1. Introduction
  2. Struct stream data - to update our database once a day.
  3. Preprocessing - clean data.
  4. Visualization - visualize new cases on a world map, with different time scope.
  5. Statistics analysis - get the distributions, mean and std of different varables.
  6. Model 1: K-means - clustering of different countries
  7. Model 2: Linear Regression - predict new cases of some contries from other countries.
  8. Model 3: Autoregressive integrated moving average (ARIMA) - prediction for new cases and new deaths from past values.
  9. Model 4: Gaussian Procecces (GP) - apply Gaussian Procecces (GP) to predict mean and covariance of new cases and new deaths from past values.
  10. Ending

2. Tools and methods

For the method part, this particular task is not suitable to use deep learning methods. We choose 4 methods related to Machine leanring for our clustering and prediction task: 1. Clustering model - K-means 2. Time series model - Autoregressive integrated moving average (ARIMA) 3. Gaussian Procecces (GP) 4. Linear Regression (LR)

3. Data resources

We found the following data resources. And finally we chose the 3rd dataset because it has the most features for us to use.

  1. WHO: https://covid19.who.int/WHO-COVID-19-global-data.csv

  2. COVID Tracking Project API at Cambridge: https://api.covidtracking.com

  3. Data on COVID-19 (coronavirus) by Our World in Data: git repo https://github.com/owid/covid-19-data/tree/master/public/data

  4. Sweden (proceesed by apify) API: https://api.apify.com/v2/datasets/Nq3XwHX262iDwsFJS/items?format=json&clean=1

Note that the preprocessing, visualization and analysis within these notebooks were made on this 3rd dataset, downloaded December 2020 to Databricks. One dataset from December 2020, "owid-covid-data.csv", can also be found in the same google drive folder as the video presentation.

  1. Description of each column in the "Our World in Data" dataset https://github.com/owid/covid-19-data/blob/master/public/data/owid-covid-codebook.csv
  2. If you want to have an intro to GP, you could look at: http://krasserm.github.io/2018/03/19/gaussian-processes/ and https://medium.com/@dan_90739/being-bayesian-and-thinking-deep-time-series-prediction-with-uncertainty-25ff581b056c
  3. ARIMA - Autoregressive Integrated Moving Average model. It's widely used in time series analysis. see defination here: https://en.wikipedia.org/wiki/Autoregressiveintegratedmoving_average

5. Meeting Records:

Weekly meetings for group discussion:

  1. 2020-12-01 Tuesday:
  • Discussion about project topic
  • Find data resources
  1. 2020-12-04 Friday:
    • Understand dataset 3, and manage download data
    • Set up processing pipeline into dataframe
    • Prepared for statistics analysis
    • Selected the column for analysis and machine learning
    • Finished struct stream for updating data
  2. 2020-12-08 Tuesday:
    • Exploited each chosen column, plot statistics
    • Dealt with missing data
    • Post-process for useful features from existed column (for statistics analysis and prediction/regression)
  3. 2020-12-16 Wednesday:
  • Finished statistics analysis, which correlation would interesting to show
  • Progress on visulization
  • Progress on GP model
  • Progress on LR model
  • Progress on ARIMA model
  1. 2020-12-18 Friday:
  • Progress on K-means model
  • Finish visulization
  • Finish other models
  • Finish Evaluation
  1. 2021-01-07 Thursday:
  • Finish all models
  • Discussing about the final presentation

0. Introduction of the data

The columns we selected to analyze are: - continent - location - date - totalcases - newcases - totaldeaths - newdeaths - reproductionrate - icupatients - hosppatients - weeklyicuadmissions - weeklyhospadmissions - totaltests - newtests - stingencyindex - population - populationdensity - medianage - aged65older - aged70older - gdppercapita - extremepoverty - cardiovascdeathrate - diabetesprevalence - femalesmokers - malesmokers - hospitalbedsperthousand - lifeexpectancy - humandevelopmentindex

1. Streaming

This part has been moved to separate files: "DownloadFilesPeriodicallyScript" and "StreamToFile".

To Rerun Steps 1-5 done in the notebook at: * Workspace -> PATH_TO -> DataPreprocess]

just run the following command as shown in the cell below:

%run "PATH_TO/DataPreprocess"
  • Note: If you already evaluated the %run ... command above then:
    • first delete the cell by pressing on x on the top-right corner of the cell and
    • revaluate the run command above.
"./02_DataPreprocess"
"./03_ExplosiveAnalysis"
"./04_DataVisualize"

Clustering of countries based on the dataset features of each country.

This part is in notebook 05Clustering.
The code can be run either in here or in the 05
Clustering notebook (after data preprocessing). We run and show the results in the 05_Clustering notebook.

"./05_Clustering"

Prediction with constant values, predict new cases of some contries from other countries.

This part is in notebook 06DataPredictionLR.
The code can be run either in here or in the 06DataPredictionLR notebook (after data preprocessing). We run and show the results in the 06DataPredictionLR notebook.

"./06_DataPredicton_LR"

prediction for new cases and new deaths from past values.

This part is in notebook 07DataPredictionARIMA.
The code can be run either in here or in the 07DataPredictionARIMA notebook (after data preprocessing). We run and show the results in the 07DataPredictionARIMA notebook.

"./07_DataPredicton_ARIMA"

apply Gaussian Procecces (GP) to predict mean and covariance of new cases and new deaths from past values.

This part is in notebook 08DataPredictionGP.
The code can be run either in here or in the 08DataPredictionGP notebook (after data preprocessing). We run and show the results in the 08DataPredictionGP notebook.

path name size
dbfs:/datasets/group12/20_12_04_08_31_44.csv 20_12_04_08_31_44.csv 1.4181338e7
dbfs:/datasets/group12/20_12_04_08_32_40.csv 20_12_04_08_32_40.csv 1.4181338e7
dbfs:/datasets/group12/20_12_04_10_47_08.csv 20_12_04_10_47_08.csv 1.4190774e7
dbfs:/datasets/group12/21_01_07_08_50_05.csv 21_01_07_08_50_05.csv 1.4577033e7
dbfs:/datasets/group12/21_01_07_09_05_33.csv 21_01_07_09_05_33.csv 1.4577033e7
dbfs:/datasets/group12/analysis/ analysis/ 0.0
dbfs:/datasets/group12/analysis2021/ analysis2021/ 0.0
dbfs:/datasets/group12/chkpoint/ chkpoint/ 0.0
dbfs:/datasets/group12/chkpoint2021/ chkpoint2021/ 0.0
dbfs:/datasets/group12/csv/ csv/ 0.0
iso_code continent location date total_cases new_cases new_cases_smoothed total_deaths new_deaths new_deaths_smoothed total_cases_per_million new_cases_per_million new_cases_smoothed_per_million total_deaths_per_million new_deaths_per_million new_deaths_smoothed_per_million reproduction_rate icu_patients icu_patients_per_million hosp_patients hosp_patients_per_million weekly_icu_admissions weekly_icu_admissions_per_million weekly_hosp_admissions weekly_hosp_admissions_per_million total_tests new_tests total_tests_per_thousand new_tests_per_thousand new_tests_smoothed new_tests_smoothed_per_thousand tests_per_case positive_rate tests_units stringency_index population population_density median_age aged_65_older aged_70_older gdp_per_capita extreme_poverty cardiovasc_death_rate diabetes_prevalence female_smokers male_smokers handwashing_facilities hospital_beds_per_thousand life_expectancy human_development_index
FJI Oceania Fiji 2020-11-16 35.0 0.0 0.143 2.0 0.0 0.0 39.043 0.0 0.159 2.231 0.0 0.0 null null null null null null null null null null null null null 120.0 0.134 1.0e-3 839.2 null 49.07 896444.0 49.562 28.6 6.224 3.284 8702.975 1.4 412.82 14.49 10.2 34.8 null 2.3 67.44 0.741
FIN Europe Finland 2020-04-08 2487.0 179.0 148.714 40.0 6.0 3.286 448.859 32.306 26.84 7.219 1.083 0.593 1.24 82.0 14.8 239.0 43.135 null null null null 41461.0 3295.0 7.483 0.595 2332.0 0.421 6.4e-2 15.7 null 67.59 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-09-11 8512.0 43.0 41.0 337.0 0.0 0.143 1536.263 7.761 7.4 60.822 0.0 2.6e-2 1.3 1.0 0.18 8.0 1.444 null null null null 883388.0 14441.0 159.436 2.606 12099.0 2.184 3.0e-3 295.1 null 32.41 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
GAB Africa Gabon 2020-07-02 5513.0 0.0 60.857 42.0 0.0 0.286 2476.942 0.0 27.343 18.87 0.0 0.128 1.04 null null null null null null null null null null null null null null null null null 66.67 2225728.0 7.859 23.1 4.45 2.976 16562.413 3.4 259.967 7.2 null null null 6.3 66.47 0.702
GAB Africa Gabon 2020-11-23 9150.0 19.0 9.429 59.0 0.0 0.143 4111.014 8.537 4.236 26.508 0.0 6.4e-2 null null null null null null null null null null null null null null null null null null 66.67 2225728.0 7.859 23.1 4.45 2.976 16562.413 3.4 259.967 7.2 null null null 6.3 66.47 0.702
GMB Africa Gambia 2020-06-13 28.0 0.0 0.286 1.0 0.0 0.0 11.586 0.0 0.118 0.414 0.0 0.0 null null null null null null null null null null null null null null null null null null 74.07 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GMB Africa Gambia 2020-06-21 37.0 0.0 1.286 2.0 0.0 0.143 15.31 0.0 0.532 0.828 0.0 5.9e-2 null null null null null null null null null null null null null null null null null null 74.07 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GEO Asia Georgia 2020-11-13 73154.0 3473.0 3023.0 636.0 37.0 30.429 18338.128 870.606 757.801 159.431 9.275 7.628 1.25 null null null null null null null null null null null null null null null null null 64.81 3989175.0 65.032 38.7 14.864 10.244 9745.079 4.2 496.218 7.11 5.3 55.5 null 2.6 73.77 0.78
DEU Europe Germany 2020-01-31 5.0 1.0 0.714 null 0.0 0.0 6.0e-2 1.2e-2 9.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
DEU Europe Germany 2020-07-04 197198.0 418.0 391.429 9020.0 10.0 7.429 2353.649 4.989 4.672 107.658 0.119 8.9e-2 0.96 null null null null null null null null null null null null 71702.0 0.856 5.0e-3 183.2 null 63.43 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
DEU Europe Germany 2020-08-01 211005.0 606.0 675.286 9154.0 7.0 4.286 2518.442 7.233 8.06 109.257 8.4e-2 5.1e-2 1.22 null null null null null null null null null null null null 83563.0 0.997 8.0e-3 123.7 null 57.87 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
DEU Europe Germany 2020-08-02 211220.0 215.0 650.429 9154.0 0.0 4.286 2521.008 2.566 7.763 109.257 0.0 5.1e-2 1.21 null null null null null null 305.791 3.65 8549377.0 null 102.041 null 83803.0 1.0 8.0e-3 128.8 null 57.87 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
GHA Africa Ghana 2020-04-09 378.0 65.0 24.857 6.0 0.0 0.143 12.165 2.092 0.8 0.193 0.0 5.0e-3 1.28 null null null null null null null null 14611.0 null 0.47 null 1008.0 3.2e-2 2.5e-2 40.6 null 86.11 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-06-03 8548.0 251.0 177.857 38.0 0.0 0.571 275.095 8.078 5.724 1.223 0.0 1.8e-2 1.21 null null null null null null null null 226741.0 3676.0 7.297 0.118 2630.0 8.5e-2 6.8e-2 14.8 null 56.48 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-11-27 51225.0 0.0 84.857 323.0 0.0 0.0 1648.54 0.0 2.731 10.395 0.0 0.0 null null null null null null null null null 592285.0 1100.0 19.061 3.5e-2 1705.0 5.5e-2 5.0e-2 20.1 null null 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GRC Europe Greece 2020-03-14 228.0 38.0 26.0 3.0 2.0 0.429 21.875 3.646 2.494 0.288 0.192 4.1e-2 1.33 null null null null null null null null 3400.0 700.0 0.326 6.7e-2 302.0 2.9e-2 8.6e-2 11.6 null 54.63 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-05-01 2612.0 21.0 17.429 140.0 0.0 1.429 250.598 2.015 1.672 13.432 0.0 0.137 0.81 null null null null null null null null 77251.0 2081.0 7.412 0.2 2263.0 0.217 8.0e-3 129.8 null 84.26 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-07-25 4166.0 31.0 26.143 201.0 0.0 1.0 399.691 2.974 2.508 19.284 0.0 9.6e-2 1.28 null null null null null null null null null null null null 5151.0 0.494 5.0e-3 197.0 null 57.41 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRD North America Grenada 2020-05-17 22.0 0.0 0.143 null 0.0 0.0 195.523 0.0 1.27 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 112519.0 317.132 29.4 7.304 5.021 13593.877 null 243.964 10.71 null null null 3.7 72.4 0.772
GRD North America Grenada 2020-07-23 23.0 0.0 0.0 null 0.0 0.0 204.41 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 112519.0 317.132 29.4 7.304 5.021 13593.877 null 243.964 10.71 null null null 3.7 72.4 0.772
GTM North America Guatemala 2020-02-08 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 1.7915567e7 157.834 22.9 4.694 3.016 7423.808 8.7 155.898 10.18 null null 76.665 0.6 74.3 0.65
GTM North America Guatemala 2020-05-07 832.0 34.0 33.286 23.0 2.0 1.0 46.44 1.898 1.858 1.284 0.112 5.6e-2 1.37 null null null null null null null null 7428.0 470.0 0.415 2.6e-2 261.0 1.5e-2 0.128 7.8 null 96.3 1.7915567e7 157.834 22.9 4.694 3.016 7423.808 8.7 155.898 10.18 null null 76.665 0.6 74.3 0.65
GIN Africa Guinea 2020-02-23 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 1.3132792e7 51.755 19.0 3.135 1.733 1998.926 35.3 336.717 2.42 null null 17.45 0.3 61.6 0.459
GNB Africa Guinea-Bissau 2020-08-28 2205.0 0.0 8.0 34.0 0.0 0.143 1120.428 0.0 4.065 17.276 0.0 7.3e-2 0.55 null null null null null null null null null null null null null null null null null null 1967998.0 66.191 19.4 3.002 1.565 1548.675 67.1 382.474 2.42 null null 6.403 null 58.32 0.455
GUY South America Guyana 2020-01-24 null 0.0 null null 0.0 null null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 2.78 786559.0 3.952 26.3 5.305 2.837 7435.047 null 373.159 11.62 null null 77.159 1.6 69.91 0.654
GUY South America Guyana 2020-01-25 null 0.0 null null 0.0 null null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 2.78 786559.0 3.952 26.3 5.305 2.837 7435.047 null 373.159 11.62 null null 77.159 1.6 69.91 0.654
GUY South America Guyana 2020-08-18 737.0 28.0 19.286 25.0 2.0 0.429 936.993 35.598 24.519 31.784 2.543 0.545 1.31 null null null null null null null null null null null null null null null null null 73.15 786559.0 3.952 26.3 5.305 2.837 7435.047 null 373.159 11.62 null null 77.159 1.6 69.91 0.654
HTI North America Haiti 2020-09-13 8493.0 15.0 19.0 219.0 0.0 0.714 744.835 1.315 1.666 19.206 0.0 6.3e-2 0.93 null null null null null null null null null null null null null null null null null 21.3 1.1402533e7 398.448 24.3 4.8 2.954 1653.173 23.5 430.548 6.65 2.9 23.1 22.863 0.7 64.0 0.498
HTI North America Haiti 2020-10-17 8956.0 31.0 13.714 231.0 0.0 0.143 785.44 2.719 1.203 20.259 0.0 1.3e-2 0.89 null null null null null null null null null null null null null null null null null 47.22 1.1402533e7 398.448 24.3 4.8 2.954 1653.173 23.5 430.548 6.65 2.9 23.1 22.863 0.7 64.0 0.498
HKG Asia Hong Kong 2020-07-31 null null null null null null null null null null null null null null null null null null null null null 729436.0 null 97.297 null null null null null null 66.67 7496988.0 7039.714 44.8 16.303 10.158 56054.92 null null 8.33 null null null null 84.86 0.933
HKG Asia Hong Kong 2020-09-12 null null null null null null null null null null null null null null null null null null null null null null null null null 118882.0 15.857 null null null 62.96 7496988.0 7039.714 44.8 16.303 10.158 56054.92 null null 8.33 null null null null 84.86 0.933
HUN Europe Hungary 2020-03-14 30.0 11.0 3.714 null 0.0 0.0 3.105 1.139 0.384 null 0.0 0.0 null null null 29.0 3.002 null null null null 1014.0 156.0 0.105 1.6e-2 99.0 1.0e-2 3.8e-2 26.7 null 50.0 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
ISL Europe Iceland 2020-08-13 1976.0 4.0 6.286 10.0 0.0 0.0 5790.476 11.722 18.42 29.304 0.0 0.0 1.14 0.0 0.0 1.0 2.93 null null null null 81052.0 328.0 237.515 0.961 544.0 1.594 1.2e-2 86.5 null 46.3 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
IND Asia India 2020-04-19 17615.0 1893.0 1201.429 559.0 38.0 32.571 12.764 1.372 0.871 0.405 2.8e-2 2.4e-2 1.54 null null null null null null null null 401586.0 29463.0 0.291 2.1e-2 29405.0 2.1e-2 4.1e-2 24.5 null 100.0 1.380004385e9 450.419 28.2 5.989 3.414 6426.674 21.2 282.28 10.39 1.9 20.6 59.55 0.53 69.66 0.64
IND Asia India 2020-10-18 7550273.0 55722.0 61390.714 114610.0 579.0 780.0 5471.195 40.378 44.486 83.05 0.42 0.565 0.89 null null null null null null null null 9.422419e7 970173.0 68.278 0.703 1049564.0 0.761 5.8e-2 17.1 null 64.35 1.380004385e9 450.419 28.2 5.989 3.414 6426.674 21.2 282.28 10.39 1.9 20.6 59.55 0.53 69.66 0.64
null null International 2020-07-09 721.0 0.0 0.0 15.0 0.0 0.0 null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null
null null International 2020-08-11 721.0 0.0 0.0 15.0 0.0 0.0 null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null
IRN Asia Iran 2020-02-13 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRN Asia Iran 2020-10-29 596941.0 8293.0 6597.714 34113.0 399.0 351.857 7107.037 98.734 78.551 406.141 4.75 4.189 1.37 null null null null null null null null null null null null 30096.0 0.358 0.219 4.6 null 70.83 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRQ Asia Iraq 2020-10-01 367474.0 4493.0 4338.286 9231.0 50.0 61.714 9136.03 111.704 107.857 229.498 1.243 1.534 0.99 null null null null null null null null 2289877.0 23522.0 56.93 0.585 21142.0 0.526 0.205 4.9 null 61.11 4.0222503e7 88.125 20.0 3.186 1.957 15663.986 2.5 218.612 8.83 null null 94.576 1.4 70.6 0.685
IRL Europe Ireland 2020-02-18 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 4937796.0 69.874 38.7 13.928 8.678 67335.293 0.2 126.459 3.28 23.0 25.7 null 2.96 82.3 0.938
IRL Europe Ireland 2020-08-14 26995.0 66.0 75.0 1774.0 0.0 0.286 5467.014 13.366 15.189 359.27 0.0 5.8e-2 1.37 8.0 1.62 11.0 2.228 null null null null 699219.0 11337.0 141.605 2.296 5877.0 1.19 1.3e-2 78.4 null 59.72 4937796.0 69.874 38.7 13.928 8.678 67335.293 0.2 126.459 3.28 23.0 25.7 null 2.96 82.3 0.938
IRL Europe Ireland 2020-10-16 47427.0 998.0 960.571 1841.0 3.0 2.857 9604.893 202.114 194.534 372.838 0.608 0.579 1.28 30.0 6.076 244.0 49.415 null null null null 1404220.0 17758.0 284.382 3.596 14312.0 2.898 6.7e-2 14.9 null 61.57 4937796.0 69.874 38.7 13.928 8.678 67335.293 0.2 126.459 3.28 23.0 25.7 null 2.96 82.3 0.938
ISR Asia Israel 2020-02-12 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null 293.0 35.0 3.4e-2 4.0e-3 21.0 2.0e-3 0.0 null null 19.44 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ISR Asia Israel 2020-04-03 7428.0 571.0 627.571 40.0 4.0 4.0 858.179 65.969 72.505 4.621 0.462 0.462 1.28 null null null null null null null null 107350.0 10328.0 12.402 1.193 8281.0 0.957 7.6e-2 13.2 null 87.96 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ISR Asia Israel 2020-04-04 7851.0 423.0 604.571 44.0 4.0 4.571 907.049 48.87 69.848 5.083 0.462 0.528 1.17 null null null null null null null null 113705.0 6355.0 13.137 0.734 8369.0 0.967 7.2e-2 13.8 null 87.96 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ISR Asia Israel 2020-05-19 16659.0 16.0 18.571 278.0 2.0 2.571 1924.663 1.849 2.146 32.118 0.231 0.297 0.51 null null null null null null null null 520606.0 7142.0 60.147 0.825 6193.0 0.715 3.0e-3 333.5 null 77.78 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ITA Europe Italy 2020-03-19 41035.0 5322.0 3703.143 3405.0 427.0 341.286 678.693 88.022 61.248 56.317 7.062 5.645 1.79 2498.0 41.315 18255.0 301.926 null null null null 182777.0 17236.0 3.023 0.285 13824.0 0.229 0.268 3.7 null 85.19 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
ITA Europe Italy 2020-07-14 243344.0 114.0 198.286 34984.0 17.0 12.143 4024.754 1.885 3.28 578.613 0.281 0.201 0.93 60.0 0.992 837.0 13.843 null null null null 6004611.0 41867.0 99.312 0.692 42991.0 0.711 5.0e-3 216.8 null 58.33 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
JPN Asia Japan 2020-02-04 22.0 2.0 2.143 null 0.0 0.0 0.174 1.6e-2 1.7e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JPN Asia Japan 2020-09-20 79142.0 480.0 499.429 1508.0 4.0 8.571 625.745 3.795 3.949 11.923 3.2e-2 6.8e-2 0.89 null null null null null null null null 1650837.0 6153.0 13.053 4.9e-2 17218.0 0.136 2.9e-2 34.5 null 38.89 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JPN Asia Japan 2020-09-27 82186.0 483.0 434.857 1549.0 2.0 5.857 649.813 3.819 3.438 12.247 1.6e-2 4.6e-2 1.01 null null null null null null null null 1746545.0 4550.0 13.809 3.6e-2 13673.0 0.108 3.2e-2 31.4 null 33.33 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JOR Asia Jordan 2020-01-27 null 0.0 null null 0.0 null null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 1.020314e7 109.285 23.2 3.81 2.361 8337.49 0.1 208.257 11.75 null null null 1.4 74.53 0.735
JOR Asia Jordan 2020-07-30 1191.0 4.0 8.571 11.0 0.0 0.0 116.729 0.392 0.84 1.078 0.0 0.0 1.1 null null null null null null null null null null null null null null null null null 48.15 1.020314e7 109.285 23.2 3.81 2.361 8337.49 0.1 208.257 11.75 null null null 1.4 74.53 0.735
KAZ Asia Kazakhstan 2020-06-20 17225.0 446.0 426.714 118.0 5.0 6.429 917.36 23.753 22.726 6.284 0.266 0.342 1.18 null null null null null null null null 1302094.0 32506.0 69.346 1.731 27596.0 1.47 1.5e-2 64.7 null 81.02 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-06-22 18231.0 499.0 434.143 127.0 7.0 6.571 970.937 26.575 23.121 6.764 0.373 0.35 1.15 null null null null null null null null 1354456.0 23879.0 72.135 1.272 27669.0 1.474 1.6e-2 63.7 null 81.02 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-08-18 121973.0 334.0 1210.286 1635.0 148.0 28.857 6495.974 17.788 64.457 87.076 7.882 1.537 0.55 null null null null null null null null 2342049.0 7942.0 124.732 0.423 15018.0 0.8 8.1e-2 12.4 null 79.63 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-08-25 127462.0 0.0 784.143 1781.0 0.0 20.857 6788.304 0.0 41.761 94.852 0.0 1.111 0.54 null null null null null null null null 2434444.0 7257.0 129.652 0.386 13199.0 0.703 5.9e-2 16.8 null 79.63 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
OWID_KOS Europe Kosovo 2020-04-18 480.0 31.0 32.857 12.0 1.0 0.714 248.348 16.039 17.0 6.209 0.517 0.37 1.15 null null null null null null null null null null null null null null null null null 92.59 1932774.0 168.155 null null null 9795.834 0.6 null null null null null null null null
OWID_KOS Europe Kosovo 2020-06-07 1194.0 36.0 17.714 30.0 0.0 0.0 617.765 18.626 9.165 15.522 0.0 0.0 1.47 null null null null null null null null null null null null null null null null null 73.15 1932774.0 168.155 null null null 9795.834 0.6 null null null null null null null null
OWID_KOS Europe Kosovo 2020-09-19 15002.0 63.0 62.286 614.0 3.0 3.571 7761.901 32.596 32.226 317.678 1.552 1.848 0.89 null null null null null null null null null null null null null null null null null 58.33 1932774.0 168.155 null null null 9795.834 0.6 null null null null null null null null
KWT Asia Kuwait 2020-11-28 142195.0 319.0 351.571 875.0 1.0 1.714 33296.547 74.697 82.324 204.891 0.234 0.401 null null null null null null null null null 1086669.0 4242.0 254.456 0.993 5538.0 1.297 6.3e-2 15.8 null 62.96 4270563.0 232.128 33.7 2.345 1.114 65530.537 null 132.235 15.84 2.7 37.0 null 2.0 75.49 0.803
KGZ Asia Kyrgyzstan 2020-11-11 64360.0 0.0 435.857 1188.0 0.0 3.0 9864.825 0.0 66.806 182.092 0.0 0.46 1.04 null null null null null null null null null null null null null null null null null 56.02 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
KGZ Asia Kyrgyzstan 2020-11-26 71548.0 377.0 461.714 1256.0 5.0 5.571 10966.57 57.785 70.77 192.514 0.766 0.854 null null null null null null null null null null null null null null null null null null 56.02 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
LAO Asia Laos 2020-02-04 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LAO Asia Laos 2020-05-31 19.0 0.0 0.0 null 0.0 0.0 2.611 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 56.48 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LAO Asia Laos 2020-11-02 24.0 0.0 0.0 null 0.0 0.0 3.299 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 33.33 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LVA Europe Latvia 2020-07-07 1134.0 7.0 2.286 30.0 0.0 0.0 601.208 3.711 1.212 15.905 0.0 0.0 1.35 null null 5.0 2.651 null null null null 160281.0 1763.0 84.976 0.935 1349.0 0.715 2.0e-3 590.1 null 50.0 1886202.0 31.212 43.9 19.754 14.136 25063.846 0.7 350.06 4.91 25.6 51.0 null 5.57 75.29 0.847
LVA Europe Latvia 2020-11-22 13120.0 376.0 367.571 153.0 0.0 4.286 6955.777 199.342 194.874 81.115 0.0 2.272 null null null 416.0 220.549 40.279 21.355 322.232 170.836 576647.0 4079.0 305.719 2.163 5412.0 2.869 6.8e-2 14.7 null 57.41 1886202.0 31.212 43.9 19.754 14.136 25063.846 0.7 350.06 4.91 25.6 51.0 null 5.57 75.29 0.847
LBN Asia Lebanon 2020-09-17 26768.0 685.0 618.714 263.0 4.0 6.286 3921.797 100.36 90.648 38.532 0.586 0.921 1.17 null null null null null null null null null null null null null null null null null 61.11 6825442.0 594.561 31.1 8.514 5.43 13367.565 null 266.591 12.71 26.9 40.7 null 2.9 78.93 0.757
LSO Africa Lesotho 2020-04-24 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 90.74 2142252.0 73.562 22.2 4.506 2.647 2851.153 59.6 405.126 3.94 0.4 53.9 2.117 null 54.33 0.52
LSO Africa Lesotho 2020-07-09 134.0 43.0 14.143 1.0 1.0 0.143 62.551 20.072 6.602 0.467 0.467 6.7e-2 null null null null null null null null null null null null null null null null null null 54.63 2142252.0 73.562 22.2 4.506 2.647 2851.153 59.6 405.126 3.94 0.4 53.9 2.117 null 54.33 0.52
LBR Africa Liberia 2020-10-10 1363.0 3.0 2.286 82.0 0.0 0.0 269.491 0.593 0.452 16.213 0.0 0.0 0.99 null null null null null null null null null null null null null null null null null 57.41 5057677.0 49.127 19.2 3.057 1.756 752.788 38.6 272.509 2.42 1.5 18.1 1.188 0.8 64.1 0.435
LBY Africa Libya 2020-02-09 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 6871287.0 3.623 29.0 4.424 2.816 17881.509 null 341.862 10.43 null null null 3.7 72.91 0.706
LIE Europe Liechtenstein 2020-07-13 84.0 0.0 0.0 1.0 0.0 0.0 2202.585 0.0 0.0 26.221 0.0 0.0 null null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LIE Europe Liechtenstein 2020-11-21 1109.0 15.0 19.857 8.0 0.0 0.429 29079.372 393.319 520.679 209.77 0.0 11.238 null null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LUX Europe Luxembourg 2020-02-29 1.0 1.0 0.143 null 0.0 0.0 1.598 1.598 0.228 null 0.0 0.0 null 0.0 0.0 null null null null null null 17.0 1.0 2.7e-2 2.0e-3 null null null null null 0.0 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
LUX Europe Luxembourg 2020-05-09 3877.0 6.0 9.286 101.0 1.0 1.286 6193.528 9.585 14.834 161.348 1.598 2.054 0.63 14.0 22.365 82.0 130.995 null null null null 53114.0 737.0 84.85 1.177 1053.0 1.682 9.0e-3 113.4 null 70.37 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
LUX Europe Luxembourg 2020-05-10 3886.0 9.0 8.857 101.0 0.0 0.714 6207.906 14.378 14.149 161.348 0.0 1.141 0.64 18.0 28.755 77.0 123.008 null null null null 53326.0 212.0 85.189 0.339 1050.0 1.677 8.0e-3 118.6 null 70.37 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
LUX Europe Luxembourg 2020-06-08 4040.0 1.0 3.0 110.0 0.0 0.0 6453.922 1.598 4.793 175.726 0.0 0.0 1.01 2.0 3.195 20.0 31.95 null null null null 90406.0 2245.0 144.424 3.586 1782.0 2.847 2.0e-3 594.0 null 43.52 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
MKD Europe Macedonia 2020-02-03 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 2083380.0 82.6 39.1 13.26 8.16 13111.214 5.0 322.688 10.08 null null null 4.28 75.8 0.757
MKD Europe Macedonia 2020-09-21 16780.0 45.0 136.143 700.0 7.0 6.857 8054.22 21.6 65.347 335.992 3.36 3.291 1.1 null null null null null null null null 175790.0 1618.0 84.377 0.777 1411.0 0.677 9.6e-2 10.4 null null 2083380.0 82.6 39.1 13.26 8.16 13111.214 5.0 322.688 10.08 null null null 4.28 75.8 0.757
MKD Europe Macedonia 2020-10-10 20555.0 392.0 279.0 785.0 4.0 4.571 9866.179 188.156 133.917 376.792 1.92 2.194 1.4 null null null null null null null null 206046.0 1648.0 98.9 0.791 1841.0 0.884 0.152 6.6 null null 2083380.0 82.6 39.1 13.26 8.16 13111.214 5.0 322.688 10.08 null null null 4.28 75.8 0.757
MDG Africa Madagascar 2020-06-05 975.0 18.0 39.571 7.0 0.0 0.286 35.21 0.65 1.429 0.253 0.0 1.0e-2 1.23 null null null null null null null null null null null null 385.0 1.4e-2 0.103 9.7 null 70.37 2.7691019e7 43.951 19.6 2.929 1.686 1416.44 77.6 405.994 3.94 null null 50.54 0.2 67.04 0.519
MWI Africa Malawi 2020-07-25 3453.0 0.0 91.857 87.0 0.0 4.571 180.502 0.0 4.802 4.548 0.0 0.239 1.02 null null null null null null null null 26602.0 389.0 1.391 2.0e-2 410.0 2.1e-2 0.224 4.5 null 60.19 1.9129955e7 197.519 18.1 2.979 1.783 1095.042 71.4 227.349 3.94 4.4 24.7 8.704 1.3 64.26 0.477
MWI Africa Malawi 2020-08-08 4624.0 49.0 62.571 143.0 6.0 3.286 241.715 2.561 3.271 7.475 0.314 0.172 0.94 null null null null null null null null 34443.0 392.0 1.8 2.0e-2 502.0 2.6e-2 0.125 8.0 null 64.81 1.9129955e7 197.519 18.1 2.979 1.783 1095.042 71.4 227.349 3.94 4.4 24.7 8.704 1.3 64.26 0.477
MYS Asia Malaysia 2020-07-04 8658.0 10.0 6.0 121.0 0.0 0.0 267.503 0.309 0.185 3.738 0.0 0.0 0.75 null null null null null null null null 797796.0 6937.0 24.649 0.214 8334.0 0.257 1.0e-3 1389.0 null 50.93 3.2365998e7 96.254 29.9 6.293 3.407 26808.164 0.1 260.942 16.74 1.0 42.4 null 1.9 76.16 0.802
MDV Asia Maldives 2020-02-26 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 540542.0 1454.433 30.6 4.12 2.875 15183.616 null 164.905 9.19 2.1 55.0 95.803 null 78.92 0.717
MDV Asia Maldives 2020-07-04 2435.0 25.0 18.571 10.0 0.0 0.286 4504.738 46.25 34.357 18.5 0.0 0.529 1.13 null null null null null null null null 55245.0 1378.0 102.203 2.549 1072.0 1.983 1.7e-2 57.7 null null 540542.0 1454.433 30.6 4.12 2.875 15183.616 null 164.905 9.19 2.1 55.0 95.803 null 78.92 0.717
MDV Asia Maldives 2020-08-03 4293.0 129.0 132.0 18.0 0.0 0.429 7942.029 238.649 244.199 33.3 0.0 0.793 1.26 null null null null null null null null 82208.0 1209.0 152.084 2.237 1157.0 2.14 0.114 8.8 null null 540542.0 1454.433 30.6 4.12 2.875 15183.616 null 164.905 9.19 2.1 55.0 95.803 null 78.92 0.717
MLI Africa Mali 2020-03-03 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2.0250834e7 15.196 16.4 2.519 1.486 2014.306 null 268.024 2.42 1.6 23.0 52.232 0.1 59.31 0.427
MLT Europe Malta 2020-08-02 860.0 15.0 22.857 9.0 0.0 0.0 1947.733 33.972 51.767 20.383 0.0 0.0 1.27 null null null null 0.0 0.0 7.157 16.209 131600.0 1437.0 298.048 3.255 1515.0 3.431 1.5e-2 66.3 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MLT Europe Malta 2020-10-29 5866.0 106.0 104.143 59.0 3.0 1.429 13285.35 240.069 235.863 133.624 6.794 3.235 1.02 null null null null null null null null 332583.0 3075.0 753.236 6.964 3019.0 6.837 3.4e-2 29.0 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MLT Europe Malta 2020-12-01 9975.0 102.0 119.714 141.0 4.0 3.429 22591.436 231.01 271.13 319.338 9.059 7.765 null null null null null null null null null null null null null null null null null null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MHL Oceania Marshall Islands 2020-06-11 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 59194.0 295.15 null null null 3819.202 null 557.793 30.53 null null 82.502 2.7 73.7 0.708
MHL Oceania Marshall Islands 2020-08-16 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 59194.0 295.15 null null null 3819.202 null 557.793 30.53 null null 82.502 2.7 73.7 0.708
MRT Africa Mauritania 2020-06-22 3121.0 137.0 176.286 112.0 1.0 3.0 671.232 29.465 37.914 24.088 0.215 0.645 1.18 null null null null null null null null null null null null 1774.0 0.382 9.9e-2 10.1 null 77.78 4649660.0 4.289 20.3 3.138 1.792 3597.633 6.0 232.347 2.42 null null 15.95 null 64.92 0.52
MRT Africa Mauritania 2020-08-26 6977.0 17.0 21.143 158.0 0.0 0.0 1500.54 3.656 4.547 33.981 0.0 0.0 0.87 null null null null null null null null null null null null 289.0 6.2e-2 7.3e-2 13.7 null 29.63 4649660.0 4.289 20.3 3.138 1.792 3597.633 6.0 232.347 2.42 null null 15.95 null 64.92 0.52
MUS Africa Mauritius 2020-07-07 342.0 0.0 0.143 10.0 0.0 0.0 268.917 0.0 0.112 7.863 0.0 0.0 6.0e-2 null null null null null null null null null null null null null null null null null 22.22 1271767.0 622.962 37.4 10.945 5.884 20292.745 0.5 224.644 22.02 3.2 40.7 null 3.4 74.99 0.79
MUS Africa Mauritius 2020-10-09 395.0 0.0 1.429 10.0 0.0 0.0 310.591 0.0 1.123 7.863 0.0 0.0 0.69 null null null null null null null null null null null null null null null null null 16.67 1271767.0 622.962 37.4 10.945 5.884 20292.745 0.5 224.644 22.02 3.2 40.7 null 3.4 74.99 0.79
MDA Europe Moldova 2020-08-31 36920.0 220.0 441.714 995.0 3.0 7.143 9152.29 54.537 109.499 246.656 0.744 1.771 1.03 null null null null null null null null null null null null null null null null null 57.41 4033963.0 123.655 37.6 10.864 6.955 5189.972 0.2 408.502 5.72 5.9 44.6 86.979 5.8 71.9 0.7
MDA Europe Moldova 2020-10-10 61762.0 929.0 839.143 1458.0 16.0 15.0 15310.502 230.295 208.019 361.431 3.966 3.718 1.05 null null null null null null null null null null null null null null null null null 48.15 4033963.0 123.655 37.6 10.864 6.955 5189.972 0.2 408.502 5.72 5.9 44.6 86.979 5.8 71.9 0.7
MNG Asia Mongolia 2020-04-07 15.0 0.0 0.429 null 0.0 0.0 4.576 0.0 0.131 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 65.74 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
TLS Asia Timor 2020-09-27 27.0 0.0 0.0 null 0.0 0.0 20.479 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 29.63 1318442.0 87.176 18.0 3.556 1.897 6570.102 30.3 335.346 6.86 6.3 78.1 28.178 5.9 69.5 0.625
TGO Africa Togo 2020-05-25 386.0 5.0 8.0 13.0 1.0 0.143 46.625 0.604 0.966 1.57 0.121 1.7e-2 1.04 null null null null null null null null 17066.0 302.0 2.061 3.6e-2 514.0 6.2e-2 1.6e-2 64.2 null 73.15 8278737.0 143.366 19.4 2.839 1.525 1429.813 49.2 280.033 6.15 0.9 14.2 10.475 0.7 61.04 0.503
TTO North America Trinidad and Tobago 2020-09-13 3042.0 49.0 113.143 53.0 2.0 2.714 2173.647 35.013 80.846 37.871 1.429 1.939 1.11 null null null null null null null null 23681.0 173.0 16.921 0.124 252.0 0.18 0.449 2.2 null 80.56 1399491.0 266.886 36.2 10.014 5.819 28763.071 null 228.467 10.97 null null 89.443 3.0 73.51 0.784
TTO North America Trinidad and Tobago 2020-10-04 4763.0 48.0 57.286 81.0 2.0 1.429 3403.38 34.298 40.933 57.878 1.429 1.021 0.8 null null null null null null null null 29209.0 192.0 20.871 0.137 233.0 0.166 0.246 4.1 null 80.56 1399491.0 266.886 36.2 10.014 5.819 28763.071 null 228.467 10.97 null null 89.443 3.0 73.51 0.784
TTO North America Trinidad and Tobago 2020-10-28 5594.0 26.0 28.857 107.0 1.0 0.857 3997.168 18.578 20.62 76.456 0.715 0.612 0.88 null null null null null null null null 32692.0 162.0 23.36 0.116 121.0 8.6e-2 0.238 4.2 null 65.74 1399491.0 266.886 36.2 10.014 5.819 28763.071 null 228.467 10.97 null null 89.443 3.0 73.51 0.784
TUN Africa Tunisia 2020-04-10 671.0 28.0 25.143 25.0 0.0 1.0 56.775 2.369 2.127 2.115 0.0 8.5e-2 0.93 null null null null null null null null 11238.0 562.0 0.951 4.8e-2 679.0 5.7e-2 3.7e-2 27.0 null 90.74 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUR Asia Turkey 2020-03-12 1.0 0.0 0.143 null 0.0 0.0 1.2e-2 0.0 2.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 23.15 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
TUR Asia Turkey 2020-10-23 357693.0 2165.0 1962.571 9658.0 74.0 72.143 4241.131 25.67 23.27 114.514 0.877 0.855 1.17 null null null null null null null null 1.2992246e7 115979.0 154.048 1.375 113924.0 1.351 1.7e-2 58.0 null 68.06 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
UGA Africa Uganda 2020-01-30 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-08-01 1176.0 22.0 10.429 4.0 1.0 0.429 25.71 0.481 0.228 8.7e-2 2.2e-2 9.0e-3 1.29 null null null null null null null null null null null null 2512.0 5.5e-2 4.0e-3 240.9 null 76.85 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-10-21 10933.0 145.0 123.429 98.0 1.0 0.429 239.02 3.17 2.698 2.142 2.2e-2 9.0e-3 1.04 null null null null null null null null 529236.0 1886.0 11.57 4.1e-2 2045.0 4.5e-2 6.0e-2 16.6 null 61.11 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UKR Europe Ukraine 2020-06-13 31177.0 762.0 582.286 890.0 10.0 15.0 712.882 17.424 13.314 20.35 0.229 0.343 1.2 null null null null null null null null 479111.0 10939.0 10.955 0.25 9224.0 0.211 6.3e-2 15.8 null 76.39 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
UKR Europe Ukraine 2020-09-04 134069.0 2769.0 2413.857 2812.0 53.0 44.714 3065.572 63.315 55.194 64.298 1.212 1.022 1.14 null null null null null null null null null null null null 21895.0 0.501 0.11 9.1 null 64.35 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
UKR Europe Ukraine 2020-10-02 223376.0 4751.0 3820.714 4357.0 69.0 63.857 5107.633 108.635 87.363 99.626 1.578 1.46 1.18 null null null null null null null null 2337942.0 29527.0 53.459 0.675 25898.0 0.592 0.148 6.8 null 58.8 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
ARE Asia United Arab Emirates 2020-03-19 140.0 27.0 7.857 null 0.0 0.0 14.155 2.73 0.794 null 0.0 0.0 1.5 null null null null null null null null 114569.0 13857.0 11.584 1.401 5863.0 0.593 1.0e-3 746.2 null 45.37 9890400.0 112.442 34.0 1.144 0.526 67293.483 null 317.84 17.26 1.2 37.4 null 1.2 77.97 0.863
ARE Asia United Arab Emirates 2020-07-06 52068.0 528.0 546.0 324.0 1.0 1.429 5264.499 53.385 55.205 32.759 0.101 0.144 1.05 null null null null null null null null 3890424.0 51430.0 393.354 5.2 50542.0 5.11 1.1e-2 92.6 null 43.52 9890400.0 112.442 34.0 1.144 0.526 67293.483 null 317.84 17.26 1.2 37.4 null 1.2 77.97 0.863
ARE Asia United Arab Emirates 2020-10-21 119132.0 1538.0 1299.0 472.0 2.0 3.143 12045.216 155.504 131.339 47.723 0.202 0.318 1.08 null null null null null null null null 1.1988391e7 105740.0 1212.124 10.691 110243.0 11.146 1.2e-2 84.9 null 50.93 9890400.0 112.442 34.0 1.144 0.526 67293.483 null 317.84 17.26 1.2 37.4 null 1.2 77.97 0.863
ARE Asia United Arab Emirates 2020-11-19 155254.0 1153.0 1217.0 544.0 2.0 3.0 15697.444 116.578 123.049 55.003 0.202 0.303 1.01 null null null null null null null null 1.5405022e7 120041.0 1557.573 12.137 114706.0 11.598 1.1e-2 94.3 null 45.37 9890400.0 112.442 34.0 1.144 0.526 67293.483 null 317.84 17.26 1.2 37.4 null 1.2 77.97 0.863
GBR Europe United Kingdom 2020-08-16 320343.0 1111.0 1109.857 41451.0 5.0 12.571 4718.837 16.366 16.349 610.597 7.4e-2 0.185 1.04 78.0 1.149 917.0 13.508 null null 718.105 10.578 1.1978298e7 162256.0 176.447 2.39 160168.0 2.359 7.0e-3 144.3 null 66.2 6.7886004e7 272.898 40.8 18.517 12.527 39753.244 0.2 122.137 4.28 20.0 24.7 null 2.54 81.32 0.922
USA North America United States 2020-08-12 5183020.0 56796.0 53010.714 166087.0 1506.0 1026.429 15658.545 171.588 160.152 501.769 4.55 3.101 0.93 9555.0 28.867 47949.0 144.86 null null null null 7.4717483e7 985955.0 225.731 2.979 855780.0 2.585 6.0e-2 16.7 null 67.13 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
URY South America Uruguay 2020-09-03 1636.0 10.0 12.143 44.0 0.0 0.143 470.964 2.879 3.496 12.667 0.0 4.1e-2 1.11 null null null null null null null null 178629.0 null 51.423 null 1787.0 0.514 7.0e-3 147.2 null 32.41 3473727.0 19.751 35.6 14.655 10.361 20551.409 0.1 160.708 6.93 14.0 19.9 null 2.8 77.91 0.804
UZB Asia Uzbekistan 2020-03-05 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 16.67 3.3469199e7 76.134 28.2 4.469 2.873 6253.104 null 724.417 7.57 1.3 24.7 null 4.0 71.72 0.71
VUT Oceania Vanuatu 2020-05-27 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 66.67 307150.0 22.662 23.1 4.394 2.62 2921.909 13.2 546.3 12.02 2.8 34.5 25.209 null 70.47 0.603
VUT Oceania Vanuatu 2020-07-10 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 66.67 307150.0 22.662 23.1 4.394 2.62 2921.909 13.2 546.3 12.02 2.8 34.5 25.209 null 70.47 0.603
VEN South America Venezuela 2020-03-12 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 33.33 2.8435943e7 36.253 29.0 6.614 3.915 16745.022 null 204.85 6.47 null null null 0.8 72.06 0.761
ESH Africa Western Sahara 2020-06-07 9.0 0.0 0.0 1.0 0.0 0.0 15.067 0.0 0.0 1.674 0.0 0.0 null null null null null null null null null null null null null null null null null null null 597330.0 null 28.4 null 1.38 null null null null null null null null 70.26 null
OWID_WRL null World 2020-03-30 799127.0 65288.0 58894.286 39636.0 4052.0 3262.714 102.521 8.376 7.556 5.085 0.52 0.419 1.58 null null null null null null null null null null null null null null null null null null 7.794798729e9 58.045 30.9 8.696 5.355 15469.207 10.0 233.07 8.51 6.434 34.635 60.13 2.705 72.58 null
YEM Asia Yemen 2020-05-12 65.0 9.0 6.143 10.0 1.0 0.857 2.179 0.302 0.206 0.335 3.4e-2 2.9e-2 null null null null null null null null null null null null null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452
YEM Asia Yemen 2020-08-29 1946.0 3.0 5.571 563.0 0.0 2.429 65.245 0.101 0.187 18.876 0.0 8.1e-2 0.83 null null null null null null null null null null null null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452
YEM Asia Yemen 2020-10-25 2060.0 0.0 0.571 599.0 0.0 0.286 69.067 0.0 1.9e-2 20.083 0.0 1.0e-2 0.74 null null null null null null null null null null null null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452
YEM Asia Yemen 2020-11-14 2072.0 0.0 0.286 605.0 0.0 0.429 69.47 0.0 1.0e-2 20.284 0.0 1.4e-2 0.8 null null null null null null null null null null null null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452
ZMB Africa Zambia 2020-10-27 16243.0 43.0 37.286 348.0 0.0 0.286 883.542 2.339 2.028 18.93 0.0 1.6e-2 0.91 null null null null null null null null 241276.0 3566.0 13.124 0.194 3790.0 0.206 1.0e-2 101.6 null 45.37 1.8383956e7 22.995 17.7 2.48 1.542 3689.251 57.5 234.499 3.94 3.1 24.7 13.938 2.0 63.89 0.588
ZWE Africa Zimbabwe 2020-03-24 3.0 0.0 0.429 1.0 0.0 0.143 0.202 0.0 2.9e-2 6.7e-2 0.0 1.0e-2 null null null null null null null null null null null null null null null null null null 56.48 1.4862927e7 42.729 19.6 2.822 1.882 1899.775 21.4 307.846 1.82 1.6 30.7 36.791 1.7 61.49 0.535
ZWE Africa Zimbabwe 2020-09-04 6837.0 159.0 64.143 206.0 0.0 1.571 460.004 10.698 4.316 13.86 0.0 0.106 1.02 null null null null null null null null 103790.0 919.0 6.983 6.2e-2 931.0 6.3e-2 6.9e-2 14.5 null 80.56 1.4862927e7 42.729 19.6 2.822 1.882 1899.775 21.4 307.846 1.82 1.6 30.7 36.791 1.7 61.49 0.535
AFG Asia Afghanistan 2020-05-23 10001.0 782.0 514.0 217.0 11.0 7.0 256.908 20.088 13.204 5.574 0.283 0.18 1.28 null null null null null null null null null null null null null null null null null 84.26 3.8928341e7 54.422 18.6 2.581 1.337 1803.987 null 597.029 9.59 null null 37.746 0.5 64.83 0.498
AFG Asia Afghanistan 2020-07-19 35453.0 174.0 144.571 1183.0 17.0 24.429 910.725 4.47 3.714 30.389 0.437 0.628 0.78 null null null null null null null null null null null null null null null null null 78.7 3.8928341e7 54.422 18.6 2.581 1.337 1803.987 null 597.029 9.59 null null 37.746 0.5 64.83 0.498
ALB Europe Albania 2020-10-02 13965.0 159.0 131.429 389.0 1.0 2.286 4852.665 55.251 45.67 135.173 0.347 0.794 1.08 null null null null null null null null null null null null null null null null null 54.63 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
DZA Africa Algeria 2020-03-29 511.0 57.0 44.286 31.0 2.0 2.0 11.653 1.3 1.01 0.707 4.6e-2 4.6e-2 1.73 null null null null null null null null null null null null null null null null null 75.0 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
DZA Africa Algeria 2020-08-27 43016.0 397.0 394.0 1475.0 10.0 9.143 980.957 9.053 8.985 33.637 0.228 0.208 0.91 null null null null null null null null null null null null null null null null null 79.63 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
AGO Africa Angola 2020-03-20 1.0 1.0 0.143 null 0.0 0.0 3.0e-2 3.0e-2 4.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 3.2866268e7 23.89 16.8 2.405 1.362 5819.495 null 276.045 3.94 null null 26.664 null 61.15 0.581
AGO Africa Angola 2020-05-22 60.0 2.0 1.714 3.0 0.0 0.143 1.826 6.1e-2 5.2e-2 9.1e-2 0.0 4.0e-3 null null null null null null null null null null null null null null null null null null 81.48 3.2866268e7 23.89 16.8 2.405 1.362 5819.495 null 276.045 3.94 null null 26.664 null 61.15 0.581
ATG North America Antigua and Barbuda 2020-05-25 25.0 0.0 0.0 3.0 0.0 0.0 255.29 0.0 0.0 30.635 0.0 0.0 null null null null null null null null null null null null null null null null null null null 97928.0 231.845 32.1 6.933 4.631 21490.943 null 191.511 13.17 null null null 3.8 77.02 0.78
ATG North America Antigua and Barbuda 2020-07-29 91.0 5.0 2.143 3.0 0.0 0.0 929.254 51.058 21.882 30.635 0.0 0.0 null null null null null null null null null null null null null null null null null null null 97928.0 231.845 32.1 6.933 4.631 21490.943 null 191.511 13.17 null null null 3.8 77.02 0.78
ARG South America Argentina 2020-11-16 1318384.0 7893.0 9697.857 35727.0 291.0 260.0 29170.513 174.64 214.574 790.494 6.439 5.753 0.94 null null null null null null null null null null null null null null null null null 79.17 4.5195777e7 16.177 31.9 11.198 7.441 18933.907 0.6 191.032 5.5 16.2 27.7 null 5.0 76.67 0.825
AUS Oceania Australia 2020-04-09 6108.0 98.0 141.714 51.0 1.0 3.857 239.531 3.843 5.557 2.0 3.9e-2 0.151 0.58 null null null null null null null null 330134.0 10766.0 12.946 0.422 9970.0 0.391 1.4e-2 70.4 null 73.15 2.5499881e7 3.202 37.9 15.504 10.129 44648.71 0.5 107.791 5.07 13.0 16.5 null 3.84 83.44 0.939
AUS Oceania Australia 2020-04-24 6677.0 15.0 22.143 79.0 4.0 1.857 261.844 0.588 0.868 3.098 0.157 7.3e-2 0.41 null null null null null null null null 482370.0 15711.0 18.917 0.616 12977.0 0.509 2.0e-3 586.1 null 69.44 2.5499881e7 3.202 37.9 15.504 10.129 44648.71 0.5 107.791 5.07 13.0 16.5 null 3.84 83.44 0.939
AUS Oceania Australia 2020-10-10 27263.0 19.0 18.286 898.0 1.0 0.571 1069.142 0.745 0.717 35.216 3.9e-2 2.2e-2 0.97 null null null null null null null null null null null null 33551.0 1.316 1.0e-3 1834.8 null 68.06 2.5499881e7 3.202 37.9 15.504 10.129 44648.71 0.5 107.791 5.07 13.0 16.5 null 3.84 83.44 0.939
AUT Europe Austria 2020-03-19 2013.0 367.0 244.429 6.0 2.0 0.714 223.508 40.749 27.139 0.666 0.222 7.9e-2 2.43 null null null null null null null null 13724.0 1747.0 1.524 0.194 1122.0 0.125 0.218 4.6 null 81.48 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-08-04 21481.0 96.0 114.857 719.0 1.0 0.857 2385.082 10.659 12.753 79.832 0.111 9.5e-2 0.99 23.0 2.554 84.0 9.327 null null null null 923902.0 7124.0 102.583 0.791 7614.0 0.845 1.5e-2 66.3 null 35.19 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-08-26 26033.0 327.0 278.429 733.0 0.0 0.571 2890.5 36.308 30.915 81.387 0.0 6.3e-2 1.18 23.0 2.554 118.0 13.102 null null null null 1119199.0 9110.0 124.267 1.012 10140.0 1.126 2.7e-2 36.4 null 35.19 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AZE Asia Azerbaijan 2020-06-26 15369.0 517.0 514.571 187.0 7.0 6.286 1515.804 50.99 50.751 18.443 0.69 0.62 1.2 null null null null null null null null null null null null null null null null null 96.3 1.0139175e7 119.309 32.4 6.018 3.871 15847.419 null 559.812 7.11 0.3 42.5 83.241 4.7 73.0 0.757
AZE Asia Azerbaijan 2020-07-08 21916.0 542.0 543.429 274.0 9.0 7.714 2161.517 53.456 53.597 27.024 0.888 0.761 1.02 null null null null null null null null null null null null null null null null null 96.3 1.0139175e7 119.309 32.4 6.018 3.871 15847.419 null 559.812 7.11 0.3 42.5 83.241 4.7 73.0 0.757
BHS North America Bahamas 2020-09-29 3903.0 65.0 62.286 91.0 2.0 2.0 9925.035 165.29 158.388 231.406 5.086 5.086 1.19 null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHS North America Bahamas 2020-10-13 5163.0 0.0 86.286 108.0 0.0 1.143 13129.12 0.0 219.418 274.636 0.0 2.906 1.09 null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHR Asia Bahrain 2020-03-07 85.0 25.0 6.286 null 0.0 0.0 49.953 14.692 3.694 null 0.0 0.0 null null null null null null null null null 6420.0 null 3.773 null null null null null null 30.56 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-07-09 31528.0 597.0 527.286 103.0 5.0 1.286 18528.629 350.85 309.88 60.532 2.938 0.756 1.03 null null null null null null null null null null null null 10160.0 5.971 5.2e-2 19.3 null 69.44 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-10-21 78907.0 374.0 326.571 308.0 3.0 3.0 46372.701 219.795 191.922 181.008 1.763 1.763 0.89 null null null null null null null null 1638436.0 10360.0 962.889 6.088 10057.0 5.91 3.2e-2 30.8 null 63.89 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-11-14 84523.0 174.0 179.857 333.0 1.0 0.571 49673.157 102.258 105.7 195.7 0.588 0.336 0.87 null null null null null null null null 1885616.0 8435.0 1108.154 4.957 10218.0 6.005 1.8e-2 56.8 null 58.33 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BGD Asia Bangladesh 2020-04-26 5416.0 418.0 422.857 145.0 5.0 7.714 32.886 2.538 2.568 0.88 3.0e-2 4.7e-2 1.44 null null null null null null null null 50401.0 3812.0 0.306 2.3e-2 3400.0 2.1e-2 0.124 8.0 null 93.52 1.64689383e8 1265.036 27.5 5.098 3.262 3523.984 14.8 298.003 8.38 1.0 44.7 34.808 0.8 72.59 0.608
BRB North America Barbados 2020-08-07 138.0 5.0 4.0 7.0 0.0 0.0 480.215 17.399 13.919 24.359 0.0 0.0 0.62 null null null null null null null null null null null null null null null null null 48.15 287371.0 664.463 39.8 14.952 9.473 16978.068 null 170.05 13.57 1.9 14.5 88.469 5.8 79.19 0.8
BLR Europe Belarus 2020-02-16 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 9449321.0 46.858 40.3 14.799 9.788 17167.967 null 443.129 5.18 10.5 46.1 null 11.0 74.79 0.808
BLR Europe Belarus 2020-07-01 62424.0 306.0 354.143 398.0 6.0 5.143 6606.189 32.383 37.478 42.119 0.635 0.544 0.72 null null null null null null null null null null null null 16577.0 1.754 2.1e-2 46.8 null 16.67 9449321.0 46.858 40.3 14.799 9.788 17167.967 null 443.129 5.18 10.5 46.1 null 11.0 74.79 0.808
BEL Europe Belgium 2020-04-17 36138.0 1329.0 1353.0 5163.0 306.0 306.286 3118.136 114.672 116.742 445.485 26.403 26.428 1.02 1119.0 96.552 5088.0 439.014 null null null null 198449.0 11300.0 17.123 0.975 9046.0 0.781 0.15 6.7 null 81.48 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-06-19 60476.0 128.0 93.857 9695.0 12.0 7.0 5218.119 11.044 8.098 836.525 1.035 0.604 0.87 50.0 4.314 308.0 26.576 null null null null 1133205.0 13395.0 97.778 1.156 12647.0 1.091 7.0e-3 134.7 null 51.85 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BLZ North America Belize 2020-10-28 3261.0 61.0 46.286 52.0 1.0 0.857 8201.277 153.412 116.407 130.778 2.515 2.156 1.17 null null null null null null null null null null null null null null null null null 66.67 397621.0 16.426 25.0 3.853 2.279 7824.362 null 176.957 17.11 null null 90.083 1.3 74.62 0.708
BEN Africa Benin 2020-04-25 54.0 0.0 2.714 1.0 0.0 0.0 4.454 0.0 0.224 8.2e-2 0.0 0.0 null null null null null null null null null null null null null null null null null null 70.83 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BTN Asia Bhutan 2020-07-13 84.0 0.0 0.571 null 0.0 0.0 108.863 0.0 0.741 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 71.3 771612.0 21.188 28.6 4.885 2.977 8708.597 1.5 217.066 9.75 null null 79.807 1.7 71.78 0.612
BTN Asia Bhutan 2020-11-19 378.0 0.0 1.286 null 0.0 0.0 489.884 0.0 1.666 null 0.0 0.0 0.76 null null null null null null null null null null null null null null null null null 66.67 771612.0 21.188 28.6 4.885 2.977 8708.597 1.5 217.066 9.75 null null 79.807 1.7 71.78 0.612
BTN Asia Bhutan 2020-12-02 415.0 1.0 4.143 null 0.0 0.0 537.835 1.296 5.369 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 771612.0 21.188 28.6 4.885 2.977 8708.597 1.5 217.066 9.75 null null 79.807 1.7 71.78 0.612
BIH Europe Bosnia and Herzegovina 2020-05-26 2416.0 10.0 13.571 149.0 3.0 2.143 736.402 3.048 4.137 45.416 0.914 0.653 1.16 null null null null null null null null null null null null null null null null null 71.3 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BWA Africa Botswana 2020-04-17 15.0 0.0 0.286 1.0 0.0 0.0 6.379 0.0 0.121 0.425 0.0 0.0 null null null null null null null null null null null null null null null null null null 86.11 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BWA Africa Botswana 2020-08-24 1562.0 254.0 36.286 3.0 0.0 0.0 664.222 108.01 15.43 1.276 0.0 0.0 0.78 null null null null null null null null null null null null null null null null null 47.22 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BRA South America Brazil 2020-06-15 888271.0 20647.0 25837.0 43959.0 627.0 975.0 4178.931 97.135 121.552 206.808 2.95 4.587 1.15 null null null null null null null null null null null null null null null null null 77.31 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-07-30 2610102.0 57837.0 46089.571 91263.0 1129.0 1025.857 12279.4 272.098 216.831 429.353 5.311 4.826 1.06 null null null null null null null null null null null null 67066.0 0.316 null null null 72.69 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-11-29 6314740.0 24468.0 34762.714 172833.0 272.0 521.429 29708.118 115.111 163.544 813.104 1.28 2.453 null null null null null null null null null null null null null null null null null null null 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRN Asia Brunei 2020-02-24 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BRN Asia Brunei 2020-05-21 141.0 0.0 0.0 1.0 0.0 0.0 322.298 0.0 0.0 2.286 0.0 0.0 1.0e-2 null null null null null null null null null null null null null null null null null 52.78 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BGR Europe Bulgaria 2020-07-21 9254.0 325.0 229.857 313.0 5.0 4.286 1331.809 46.773 33.08 45.046 0.72 0.617 1.11 34.0 4.893 624.0 89.804 null null null null 215572.0 9051.0 31.024 1.303 5128.0 0.738 4.5e-2 22.3 null 36.11 6948445.0 65.18 44.7 20.801 13.272 18563.307 1.5 424.688 5.81 30.1 44.4 null 7.454 75.05 0.813
BFA Africa Burkina Faso 2020-10-09 2254.0 13.0 18.714 60.0 0.0 0.143 107.83 0.622 0.895 2.87 0.0 7.0e-3 0.97 null null null null null null null null null null null null null null null null null 36.11 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BFA Africa Burkina Faso 2020-11-29 2856.0 40.0 17.286 68.0 0.0 0.0 136.629 1.914 0.827 3.253 0.0 0.0 null null null null null null null null null null null null null null null null null null 22.22 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BDI Africa Burundi 2020-11-28 681.0 0.0 3.571 1.0 0.0 0.0 57.271 0.0 0.3 8.4e-2 0.0 0.0 null null null null null null null null null null null null null null null null null null 14.81 1.1890781e7 423.062 17.5 2.562 1.504 702.225 71.7 293.068 6.05 null null 6.144 0.8 61.58 0.417
KHM Asia Cambodia 2020-04-12 122.0 2.0 1.143 null 0.0 0.0 7.297 0.12 6.8e-2 null 0.0 0.0 0.11 null null null null null null null null null null null null null null null null null 68.52 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-04-22 122.0 0.0 0.0 null 0.0 0.0 7.297 0.0 0.0 null 0.0 0.0 6.0e-2 null null null null null null null null null null null null null null null null null 57.41 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-06-02 125.0 0.0 0.143 null 0.0 0.0 7.477 0.0 9.0e-3 null 0.0 0.0 5.0e-2 null null null null null null null null null null null null null null null null null 40.74 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-10-08 281.0 0.0 0.429 null 0.0 0.0 16.807 0.0 2.6e-2 null 0.0 0.0 0.55 null null null null null null null null null null null null null null null null null 37.04 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-10-25 287.0 0.0 0.571 null 0.0 0.0 17.166 0.0 3.4e-2 null 0.0 0.0 0.82 null null null null null null null null null null null null null null null null null 34.26 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
CMR Africa Cameroon 2020-04-08 730.0 72.0 71.0 10.0 1.0 0.571 27.5 2.712 2.675 0.377 3.8e-2 2.2e-2 1.21 null null null null null null null null null null null null null null null null null 68.52 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CMR Africa Cameroon 2020-04-13 820.0 0.0 23.143 12.0 0.0 0.429 30.89 0.0 0.872 0.452 0.0 1.6e-2 1.21 null null null null null null null null null null null null null null null null null 68.52 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CMR Africa Cameroon 2020-06-18 9864.0 0.0 169.0 276.0 0.0 9.143 371.583 0.0 6.366 10.397 0.0 0.344 1.09 null null null null null null null null null null null null null null null null null 60.19 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CMR Africa Cameroon 2020-07-06 12592.0 0.0 0.0 313.0 0.0 0.0 474.349 0.0 0.0 11.791 0.0 0.0 1.03 null null null null null null null null null null null null null null null null null 60.19 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CMR Africa Cameroon 2020-07-25 16708.0 0.0 78.714 385.0 0.0 1.714 629.401 0.0 2.965 14.503 0.0 6.5e-2 1.02 null null null null null null null null null null null null null null null null null 60.19 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CMR Africa Cameroon 2020-10-25 21570.0 0.0 18.429 425.0 0.0 0.286 812.556 0.0 0.694 16.01 0.0 1.1e-2 0.96 null null null null null null null null null null null null null null null null null 45.37 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CPV Africa Cape Verde 2020-08-22 3455.0 43.0 41.714 37.0 0.0 0.429 6214.163 77.34 75.027 66.548 0.0 0.771 1.07 null null null null null null null null null null null null null null null null null 65.28 555988.0 135.58 25.7 4.46 3.437 6222.554 null 182.219 2.42 2.1 16.5 null 2.1 72.98 0.654
CAF Africa Central African Republic 2020-02-05 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 4829764.0 7.479 18.3 3.655 2.251 661.24 null 435.727 6.1 null null 16.603 1.0 53.28 0.367
CAF Africa Central African Republic 2020-04-07 8.0 0.0 0.714 null 0.0 0.0 1.656 0.0 0.148 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 68.52 4829764.0 7.479 18.3 3.655 2.251 661.24 null 435.727 6.1 null null 16.603 1.0 53.28 0.367
CHL South America Chile 2020-10-25 502063.0 1521.0 1471.857 13944.0 52.0 44.143 26263.733 79.566 76.995 729.433 2.72 2.309 0.97 null null null null null null null null 4111528.0 38473.0 215.081 2.013 32087.0 1.679 4.6e-2 21.8 null 81.94 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHL South America Chile 2020-10-31 510256.0 1685.0 1387.714 14207.0 49.0 45.0 26692.322 88.145 72.594 743.191 2.563 2.354 0.98 null null null null null null null null 4300738.0 39258.0 224.979 2.054 32526.0 1.701 4.3e-2 23.4 null 81.94 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHN Asia China 2020-08-16 89375.0 96.0 83.143 4703.0 0.0 2.429 62.095 6.7e-2 5.8e-2 3.268 0.0 2.0e-3 0.69 null null null null null null null null null null null null null null null null null 78.24 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
CHN Asia China 2020-10-31 91366.0 27.0 34.0 4739.0 0.0 0.0 63.478 1.9e-2 2.4e-2 3.293 0.0 0.0 1.13 null null null null null null null null null null null null null null null null null 63.43 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
CHN Asia China 2020-11-21 92037.0 60.0 29.857 4742.0 0.0 0.0 63.945 4.2e-2 2.1e-2 3.295 0.0 0.0 null null null null null null null null null null null null null null null null null null 76.39 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
COL South America Colombia 2020-03-19 108.0 6.0 14.143 null 0.0 0.0 2.123 0.118 0.278 null 0.0 0.0 1.86 null null null null null null null null 5363.0 673.0 0.105 1.3e-2 567.0 1.1e-2 null null null 50.93 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-05-01 7006.0 499.0 303.571 314.0 21.0 12.714 137.689 9.807 5.966 6.171 0.413 0.25 1.36 null null null null null null null null 108950.0 4293.0 2.141 8.4e-2 4424.0 8.7e-2 null null null 90.74 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-07-14 159898.0 5621.0 5057.714 5625.0 170.0 180.857 3142.471 110.469 99.399 110.548 3.341 3.554 1.25 null null null null null null null null 1082415.0 25601.0 21.273 0.503 25730.0 0.506 null null null 87.04 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-10-07 877684.0 7876.0 6857.857 27180.0 163.0 168.857 17249.101 154.787 134.777 534.168 3.203 3.319 1.04 null null null null null null null null 3526959.0 25357.0 69.315 0.498 25665.0 0.504 null null null 71.3 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COM Africa Comoros 2020-03-22 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COM Africa Comoros 2020-06-25 272.0 7.0 8.857 7.0 0.0 0.286 312.789 8.05 10.185 8.05 0.0 0.329 0.72 null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COM Africa Comoros 2020-08-20 417.0 11.0 2.571 7.0 0.0 0.0 479.534 12.65 2.957 8.05 0.0 0.0 0.66 null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COM Africa Comoros 2020-10-04 487.0 0.0 1.286 7.0 0.0 0.0 560.031 0.0 1.479 8.05 0.0 0.0 0.65 null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COG Africa Congo 2020-11-28 5774.0 0.0 20.286 94.0 0.0 0.143 1046.376 0.0 3.676 17.035 0.0 2.6e-2 null null null null null null null null null null null null null null null null null null 43.52 5518092.0 15.405 19.0 3.402 2.063 4881.406 37.0 344.094 7.2 1.7 52.3 47.964 null 64.57 0.606
CRI North America Costa Rica 2020-03-31 347.0 17.0 24.286 2.0 0.0 0.0 68.118 3.337 4.767 0.393 0.0 0.0 1.01 null null null null null null null null 3905.0 153.0 0.767 3.0e-2 293.0 5.8e-2 null null null 71.3 5094114.0 96.079 33.6 9.468 5.694 15524.995 1.3 137.973 8.78 6.4 17.4 83.841 1.13 80.28 0.794
CUB North America Cuba 2020-03-30 170.0 31.0 18.571 4.0 1.0 0.429 15.009 2.737 1.64 0.353 8.8e-2 3.8e-2 1.34 null null null null null null null null 2322.0 315.0 0.205 2.8e-2 242.0 2.1e-2 7.7e-2 13.0 null 66.67 1.1326616e7 110.408 43.1 14.738 9.719 null null 190.968 8.27 17.1 53.3 85.198 5.2 78.8 0.777
CUB North America Cuba 2020-08-30 3973.0 48.0 41.571 94.0 0.0 0.429 350.767 4.238 3.67 8.299 0.0 3.8e-2 1.09 null null null null null null null null 398223.0 5438.0 35.158 0.48 4696.0 0.415 9.0e-3 113.0 null 82.41 1.1326616e7 110.408 43.1 14.738 9.719 null null 190.968 8.27 17.1 53.3 85.198 5.2 78.8 0.777
CYP Europe Cyprus 2020-04-10 595.0 31.0 28.429 10.0 0.0 -0.143 679.302 35.392 32.456 11.417 0.0 -0.163 0.98 null null null null null null null null 16299.0 819.0 18.608 0.935 979.0 1.118 2.9e-2 34.4 null 92.59 875899.0 127.657 37.3 13.416 8.563 32415.132 null 141.171 9.24 19.6 52.7 null 3.4 80.98 0.869
CYP Europe Cyprus 2020-05-25 937.0 2.0 2.857 17.0 0.0 0.0 1069.758 2.283 3.262 19.409 0.0 0.0 0.86 null null null null null null null null 103705.0 2128.0 118.398 2.43 2140.0 2.443 1.0e-3 749.0 null 76.85 875899.0 127.657 37.3 13.416 8.563 32415.132 null 141.171 9.24 19.6 52.7 null 3.4 80.98 0.869
CZE Europe Czech Republic 2020-11-08 414828.0 3608.0 10454.857 4858.0 177.0 204.143 38736.455 336.913 976.27 453.638 16.528 19.063 0.8 1199.0 111.962 7787.0 727.147 2035.248 190.051 12831.914 1198.238 2601451.0 13727.0 242.922 1.282 35009.0 3.269 0.299 3.3 null 73.15 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
COD Africa Democratic Republic of Congo 2020-02-09 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
COD Africa Democratic Republic of Congo 2020-08-16 9676.0 38.0 31.714 240.0 1.0 2.286 108.038 0.424 0.354 2.68 1.1e-2 2.6e-2 1.03 null null null null null null null null null 208.0 null 2.0e-3 375.0 4.0e-3 8.5e-2 11.8 null 37.04 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
COD Africa Democratic Republic of Congo 2020-08-19 9741.0 20.0 29.0 246.0 3.0 3.0 108.763 0.223 0.324 2.747 3.3e-2 3.3e-2 1.03 null null null null null null null null null 398.0 null 4.0e-3 354.0 4.0e-3 8.2e-2 12.2 null 37.04 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
DNK Europe Denmark 2020-06-29 12951.0 76.0 32.0 605.0 1.0 0.429 2235.937 13.121 5.525 104.451 0.173 7.4e-2 0.98 null null null null null null null null 1046901.0 18718.0 180.743 3.232 15903.0 2.746 2.0e-3 497.0 null 57.41 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DNK Europe Denmark 2020-07-05 13033.0 1.0 22.571 606.0 0.0 0.286 2250.094 0.173 3.897 104.623 0.0 4.9e-2 1.01 6.0 1.036 24.0 4.144 null null 10.974 1.895 1131443.0 9737.0 195.339 1.681 14751.0 2.547 2.0e-3 653.5 null 57.41 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DNK Europe Denmark 2020-09-02 17620.0 111.0 94.0 626.0 1.0 0.429 3042.02 19.164 16.229 108.076 0.173 7.4e-2 1.25 4.0 0.691 15.0 2.59 null null null null 2561895.0 40022.0 442.301 6.91 34773.0 6.003 3.0e-3 369.9 null 50.93 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DJI Africa Djibouti 2020-04-04 50.0 1.0 5.143 null 0.0 0.0 50.607 1.012 5.205 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 94.44 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DJI Africa Djibouti 2020-05-31 3354.0 160.0 154.857 24.0 2.0 2.0 3394.73 161.943 156.738 24.291 2.024 2.024 1.27 null null null null null null null null null null null null null null null null null 59.26 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DJI Africa Djibouti 2020-07-20 5020.0 9.0 6.143 56.0 0.0 0.0 5080.961 9.109 6.217 56.68 0.0 0.0 0.66 null null null null null null null null null null null null null null null null null 50.93 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DJI Africa Djibouti 2020-08-14 5367.0 9.0 4.143 59.0 0.0 0.0 5432.175 9.109 4.193 59.716 0.0 0.0 0.44 null null null null null null null null null null null null null null null null null 50.93 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DJI Africa Djibouti 2020-11-19 5658.0 0.0 2.429 61.0 0.0 0.0 5726.709 0.0 2.458 61.741 0.0 0.0 0.63 null null null null null null null null null null null null null null null null null 43.52 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DMA North America Dominica 2020-08-25 20.0 0.0 0.286 null 0.0 0.0 277.813 0.0 3.969 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 36.11 71991.0 98.567 null null null 9673.367 null 227.376 11.62 null null null 3.8 75.0 0.715
DMA North America Dominica 2020-10-11 32.0 0.0 0.143 null 0.0 0.0 444.5 0.0 1.984 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 28.7 71991.0 98.567 null null null 9673.367 null 227.376 11.62 null null null 3.8 75.0 0.715
DMA North America Dominica 2020-11-15 68.0 0.0 0.714 null 0.0 0.0 944.563 0.0 9.922 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 34.26 71991.0 98.567 null null null 9673.367 null 227.376 11.62 null null null 3.8 75.0 0.715
ECU South America Ecuador 2020-08-13 98343.0 1233.0 1115.143 6010.0 26.0 19.0 5574.033 69.886 63.206 340.644 1.474 1.077 1.04 null null null null null null null null 214477.0 3285.0 12.156 0.186 2875.0 0.163 null null null 76.39 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
ECU South America Ecuador 2020-09-16 121525.0 1972.0 1337.0 10996.0 33.0 42.143 6887.977 111.772 75.781 623.248 1.87 2.389 1.17 null null null null null null null null 302597.0 5210.0 17.151 0.295 3380.0 0.192 null null null 51.39 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
ECU South America Ecuador 2020-10-07 143531.0 1475.0 926.286 11743.0 41.0 55.429 8135.267 83.602 52.501 665.587 2.324 3.142 0.98 null null null null null null null null 384086.0 5215.0 21.77 0.296 3453.0 0.196 null null null 51.39 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
EGY Africa Egypt 2020-06-15 46289.0 1691.0 1549.286 1672.0 97.0 57.286 452.331 16.524 15.139 16.339 0.948 0.56 1.11 null null null null null null null null null null null null null null null null null 71.3 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
SLV North America El Salvador 2020-07-28 15446.0 411.0 409.143 417.0 9.0 9.286 2381.363 63.365 63.079 64.29 1.388 1.432 1.1 null null null null null null null null 234086.0 2402.0 36.09 0.37 2453.0 0.378 0.167 6.0 null 89.81 6486201.0 307.811 27.6 8.273 5.417 7292.458 2.2 167.295 8.87 2.5 18.8 90.65 1.3 73.32 0.674
ERI Africa Eritrea 2020-11-09 491.0 0.0 1.571 null 0.0 0.0 138.449 0.0 0.443 null 0.0 0.0 0.39 null null null null null null null null null null null null null null null null null 82.41 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
EST Europe Estonia 2020-03-27 575.0 37.0 41.714 1.0 0.0 0.143 433.459 27.892 31.446 0.754 0.0 0.108 1.41 10.0 7.538 59.0 44.477 null null null null 9652.0 1288.0 7.276 0.971 898.0 0.677 4.6e-2 21.5 null 72.22 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
ETH Africa Ethiopia 2020-04-27 124.0 1.0 1.857 3.0 0.0 0.0 1.079 9.0e-3 1.6e-2 2.6e-2 0.0 0.0 0.38 null null null null null null null null 14588.0 943.0 0.127 8.0e-3 948.0 8.0e-3 2.0e-3 510.5 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
ETH Africa Ethiopia 2020-08-26 45221.0 1533.0 1594.714 725.0 16.0 17.857 393.351 13.335 13.871 6.306 0.139 0.155 1.09 null null null null null null null null 813410.0 18724.0 7.075 0.163 20110.0 0.175 7.9e-2 12.6 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
MNE Europe Montenegro 2020-02-28 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MNE Europe Montenegro 2020-09-27 10313.0 116.0 243.0 158.0 0.0 3.143 16420.353 184.695 386.904 251.568 0.0 5.004 0.94 null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MAR Africa Morocco 2020-02-10 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MAR Africa Morocco 2020-05-29 7714.0 71.0 54.571 202.0 0.0 0.714 208.992 1.924 1.478 5.473 0.0 1.9e-2 0.82 null null null null null null null null 190061.0 9872.0 5.149 0.267 9523.0 0.258 6.0e-3 174.5 null 93.52 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MMR Asia Myanmar 2020-11-08 61377.0 1029.0 1138.857 1420.0 24.0 23.143 1128.051 18.912 20.931 26.098 0.441 0.425 1.03 null null null null null null null null null null null null null null null null null 79.63 5.4409794e7 81.721 29.1 5.732 3.12 5591.597 6.4 202.104 4.61 6.3 35.2 79.287 0.9 67.13 0.578
NAM Africa Namibia 2020-03-04 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 2540916.0 3.078 22.0 3.552 2.085 9541.808 13.4 243.811 3.94 9.7 34.2 44.6 null 63.71 0.647
NAM Africa Namibia 2020-04-25 16.0 0.0 0.0 null 0.0 0.0 6.297 0.0 0.0 null 0.0 0.0 null null null null null null null null null 675.0 54.0 0.266 2.1e-2 25.0 1.0e-2 0.0 null null 73.15 2540916.0 3.078 22.0 3.552 2.085 9541.808 13.4 243.811 3.94 9.7 34.2 44.6 null 63.71 0.647
NPL Asia Nepal 2020-03-20 1.0 0.0 0.0 null 0.0 0.0 3.4e-2 0.0 0.0 null 0.0 0.0 null null null null null null null null null 546.0 17.0 1.9e-2 1.0e-3 13.0 0.0 0.0 null null 58.33 2.9136808e7 204.43 25.0 5.809 3.212 2442.804 15.0 260.797 7.26 9.5 37.8 47.782 0.3 70.78 0.574
NPL Asia Nepal 2020-07-05 15784.0 293.0 430.286 34.0 0.0 0.857 541.72 10.056 14.768 1.167 0.0 2.9e-2 0.82 null null null null null null null null 251007.0 4710.0 8.615 0.162 5024.0 0.172 8.6e-2 11.7 null 92.59 2.9136808e7 204.43 25.0 5.809 3.212 2442.804 15.0 260.797 7.26 9.5 37.8 47.782 0.3 70.78 0.574
NPL Asia Nepal 2020-10-25 158089.0 2856.0 3691.857 847.0 5.0 15.429 5425.749 98.02 126.708 29.07 0.172 0.53 0.96 null null null null null null null null 1393173.0 12311.0 47.815 0.423 15688.0 0.538 0.235 4.2 null 63.89 2.9136808e7 204.43 25.0 5.809 3.212 2442.804 15.0 260.797 7.26 9.5 37.8 47.782 0.3 70.78 0.574
NLD Europe Netherlands 2020-04-26 38040.0 656.0 743.143 4491.0 67.0 113.429 2220.034 38.284 43.37 262.097 3.91 6.62 0.72 806.0 47.039 null null 116.994 6.828 304.384 17.764 209718.0 null 12.239 null 5485.0 0.32 0.135 7.4 null 79.63 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-07-14 51362.0 54.0 65.0 6154.0 -2.0 0.429 2997.513 3.151 3.793 359.151 -0.117 2.5e-2 1.21 27.0 1.576 null null null null null null null null null null 11757.0 0.686 6.0e-3 180.9 null 39.81 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-08-27 70984.0 602.0 591.571 6244.0 3.0 4.143 4142.663 35.133 34.524 364.403 0.175 0.242 1.04 45.0 2.626 null null null null null null null null null null 24998.0 1.459 2.4e-2 42.3 null 50.93 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-09-18 94345.0 2083.0 1567.857 6318.0 8.0 4.0 5506.023 121.565 91.501 368.722 0.467 0.233 1.41 72.0 4.202 null null null null null null null null null null 28832.0 1.683 5.4e-2 18.4 null 50.93 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NZL Oceania New Zealand 2020-03-05 3.0 0.0 0.429 null 0.0 0.0 0.622 0.0 8.9e-2 null 0.0 0.0 null null null null null null null null null 332.0 27.0 6.9e-2 6.0e-3 null null null null null 19.44 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NIC North America Nicaragua 2020-04-29 13.0 0.0 0.429 3.0 0.0 0.143 1.962 0.0 6.5e-2 0.453 0.0 2.2e-2 null null null null null null null null null null null null null null null null null null 16.67 6624554.0 51.667 27.3 5.445 3.519 5321.444 3.2 137.016 11.47 null null null 0.9 74.48 0.658
NIC North America Nicaragua 2020-06-24 2170.0 0.0 49.571 74.0 0.0 1.429 327.569 0.0 7.483 11.171 0.0 0.216 0.26 null null null null null null null null null null null null null null null null null 11.11 6624554.0 51.667 27.3 5.445 3.519 5321.444 3.2 137.016 11.47 null null null 0.9 74.48 0.658
NIC North America Nicaragua 2020-10-07 5264.0 0.0 13.429 153.0 2.0 0.286 794.62 0.0 2.027 23.096 0.302 4.3e-2 0.41 null null null null null null null null null null null null null null null null null 8.33 6624554.0 51.667 27.3 5.445 3.519 5321.444 3.2 137.016 11.47 null null null 0.9 74.48 0.658
NIC North America Nicaragua 2020-10-18 5353.0 0.0 12.714 154.0 0.0 0.143 808.054 0.0 1.919 23.247 0.0 2.2e-2 0.41 null null null null null null null null null null null null null null null null null 8.33 6624554.0 51.667 27.3 5.445 3.519 5321.444 3.2 137.016 11.47 null null null 0.9 74.48 0.658
NER Africa Niger 2020-07-26 1136.0 12.0 4.571 69.0 0.0 0.0 46.929 0.496 0.189 2.85 0.0 0.0 0.74 null null null null null null null null null null null null null null null null null 25.93 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
NER Africa Niger 2020-09-24 1194.0 1.0 1.571 69.0 0.0 0.0 49.325 4.1e-2 6.5e-2 2.85 0.0 0.0 0.9 null null null null null null null null null null null null null null null null null 14.81 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
NGA Africa Nigeria 2020-05-23 7526.0 265.0 272.143 221.0 0.0 6.429 36.509 1.286 1.32 1.072 0.0 3.1e-2 1.19 null null null null null null null null 43328.0 1421.0 0.21 7.0e-3 1484.0 7.0e-3 0.183 5.5 null 84.26 2.06139587e8 209.588 18.1 2.751 1.447 5338.454 null 181.013 2.42 0.6 10.8 41.949 null 54.69 0.532
NOR Europe Norway 2020-04-08 6086.0 0.0 174.714 101.0 12.0 8.143 1122.621 0.0 32.228 18.63 2.214 1.502 0.81 null null 250.0 46.115 null null null null 105216.0 2276.0 19.408 0.42 2628.0 0.485 6.6e-2 15.0 null 79.63 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
OMN Asia Oman 2020-06-03 13537.0 738.0 737.714 67.0 8.0 4.0 2650.872 144.518 144.462 13.12 1.567 0.783 1.23 null null null null null null null null null null null null null null null null null 86.11 5106622.0 14.98 30.7 2.355 1.53 37960.709 null 266.342 12.61 0.5 15.6 97.4 1.6 77.86 0.821
PAK Asia Pakistan 2020-08-26 294193.0 482.0 535.429 6267.0 12.0 9.429 1331.839 2.182 2.424 28.371 5.4e-2 4.3e-2 0.86 null null null null null null null null 2512337.0 24593.0 11.374 0.111 24609.0 0.111 2.2e-2 46.0 null 47.69 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PSE Asia Palestine 2020-03-20 47.0 3.0 2.286 null 0.0 0.0 9.213 0.588 0.448 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 74.07 5101416.0 778.202 20.4 3.043 1.726 4449.898 1.0 265.91 10.59 null null null null 74.05 0.686
PSE Asia Palestine 2020-04-27 342.0 0.0 1.857 2.0 0.0 0.0 67.04 0.0 0.364 0.392 0.0 0.0 0.33 null null null null null null null null null null null null null null null null null 96.3 5101416.0 778.202 20.4 3.043 1.726 4449.898 1.0 265.91 10.59 null null null null 74.05 0.686
PSE Asia Palestine 2020-11-01 54060.0 540.0 516.857 489.0 6.0 5.857 10597.058 105.853 101.316 95.856 1.176 1.148 1.15 null null null null null null null null null 4053.0 null 0.794 4168.0 0.817 0.124 8.1 null 40.74 5101416.0 778.202 20.4 3.043 1.726 4449.898 1.0 265.91 10.59 null null null null 74.05 0.686
PAN North America Panama 2020-02-26 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PAN North America Panama 2020-08-01 66383.0 1127.0 1074.143 1449.0 28.0 24.857 15385.068 261.196 248.946 335.823 6.489 5.761 1.0 null null null null null null null null 224089.0 3668.0 51.935 0.85 3308.0 0.767 0.325 3.1 null 80.56 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PNG Oceania Papua New Guinea 2020-04-09 2.0 0.0 0.143 null 0.0 0.0 0.224 0.0 1.6e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 82.41 8947027.0 18.22 22.6 3.808 2.142 3823.194 null 561.494 17.65 23.5 48.8 null null 64.5 0.544
PNG Oceania Papua New Guinea 2020-11-30 656.0 11.0 3.714 7.0 0.0 0.0 73.32 1.229 0.415 0.782 0.0 0.0 null null null null null null null null null null null null null null null null null null 37.96 8947027.0 18.22 22.6 3.808 2.142 3823.194 null 561.494 17.65 23.5 48.8 null null 64.5 0.544
PRY South America Paraguay 2020-06-10 1202.0 15.0 18.857 11.0 0.0 0.0 168.524 2.103 2.644 1.542 0.0 0.0 1.18 null null null null null null null null 41702.0 1670.0 5.847 0.234 1232.0 0.173 1.5e-2 65.3 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PRY South America Paraguay 2020-08-30 17105.0 631.0 553.143 308.0 14.0 14.714 2398.167 88.468 77.552 43.182 1.963 2.063 1.18 null null null null null null null null 190169.0 1610.0 26.662 0.226 2404.0 0.337 0.23 4.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PRY South America Paraguay 2020-10-02 42684.0 885.0 779.714 890.0 21.0 18.429 5984.412 124.079 109.318 124.78 2.944 2.584 1.09 null null null null null null null null 283537.0 2628.0 39.753 0.368 2787.0 0.391 0.28 3.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PRT Europe Portugal 2020-06-02 32895.0 195.0 269.714 1436.0 12.0 13.429 3226.042 19.124 26.451 140.83 1.177 1.317 1.09 58.0 5.688 432.0 42.367 null null null null 881524.0 15640.0 86.452 1.534 13827.0 1.356 2.0e-2 51.3 null 71.3 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
PRT Europe Portugal 2020-10-17 98055.0 2153.0 1783.0 2162.0 13.0 13.571 9616.34 211.147 174.86 212.029 1.275 1.331 1.42 148.0 14.514 1012.0 99.248 null null null null 3059464.0 23723.0 300.044 2.327 26828.0 2.631 6.6e-2 15.0 null 56.94 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
QAT Asia Qatar 2020-04-30 13409.0 845.0 806.429 10.0 0.0 0.0 4654.19 293.295 279.907 3.471 0.0 0.0 1.19 null null null null null null null null 94500.0 3085.0 32.8 1.071 3006.0 1.043 0.268 3.7 null 83.33 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
QAT Asia Qatar 2020-05-08 20201.0 1311.0 872.143 12.0 0.0 0.0 7011.655 455.041 302.716 4.165 0.0 0.0 1.44 null null null null null null null null 120458.0 3963.0 41.81 1.376 3247.0 1.127 0.269 3.7 null 83.33 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
QAT Asia Qatar 2020-09-30 125760.0 227.0 226.429 214.0 0.0 0.286 43650.601 78.79 78.592 74.278 0.0 9.9e-2 0.93 null null null null null null null null 775914.0 5701.0 269.315 1.979 5260.0 1.826 4.3e-2 23.2 null 64.81 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
ROU Europe Romania 2020-04-11 5990.0 523.0 339.571 291.0 21.0 20.714 311.368 27.186 17.651 15.127 1.092 1.077 1.28 208.0 10.812 null null null null null null 59272.0 3842.0 3.081 0.2 3311.0 0.172 0.103 9.8 null 87.04 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
ROU Europe Romania 2020-09-07 95897.0 883.0 1193.857 3926.0 33.0 43.571 4984.852 45.9 62.058 204.079 1.715 2.265 1.01 465.0 24.171 null null null null null null 1945738.0 7247.0 101.142 0.377 20399.0 1.06 5.9e-2 17.1 null 45.37 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
RUS Europe Russia 2020-06-15 536484.0 8217.0 8634.429 7081.0 143.0 159.714 3676.198 56.306 59.166 48.522 0.98 1.094 0.96 null null null null null null null null 1.5395417e7 234265.0 105.495 1.605 305820.0 2.096 2.8e-2 35.4 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816
RUS Europe Russia 2020-06-28 633563.0 6784.0 7097.714 9060.0 102.0 137.0 4341.421 46.487 48.636 62.083 0.699 0.939 0.91 null null null null null null null null 1.9334442e7 289488.0 132.487 1.984 292107.0 2.002 2.4e-2 41.2 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816
RWA Africa Rwanda 2020-03-25 41.0 1.0 4.714 null 0.0 0.0 3.165 7.7e-2 0.364 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 90.74 1.2952209e7 494.869 20.3 2.974 1.642 1854.211 56.0 191.375 4.28 4.7 21.0 4.617 null 69.02 0.524
RWA Africa Rwanda 2020-05-11 285.0 1.0 3.429 null 0.0 0.0 22.004 7.7e-2 0.265 null 0.0 0.0 0.8 null null null null null null null null 42805.0 380.0 3.305 2.9e-2 1101.0 8.5e-2 3.0e-3 321.1 null 73.15 1.2952209e7 494.869 20.3 2.974 1.642 1854.211 56.0 191.375 4.28 4.7 21.0 4.617 null 69.02 0.524
RWA Africa Rwanda 2020-06-04 410.0 13.0 8.714 2.0 0.0 0.286 31.655 1.004 0.673 0.154 0.0 2.2e-2 1.41 null null null null null null null null 72510.0 1369.0 5.598 0.106 1177.0 9.1e-2 7.0e-3 135.1 null 75.93 1.2952209e7 494.869 20.3 2.974 1.642 1854.211 56.0 191.375 4.28 4.7 21.0 4.617 null 69.02 0.524
RWA Africa Rwanda 2020-07-06 1113.0 8.0 16.0 3.0 0.0 0.143 85.931 0.618 1.235 0.232 0.0 1.1e-2 1.13 null null null null null null null null 163384.0 2834.0 12.614 0.219 3305.0 0.255 5.0e-3 206.6 null 77.78 1.2952209e7 494.869 20.3 2.974 1.642 1854.211 56.0 191.375 4.28 4.7 21.0 4.617 null 69.02 0.524
KNA North America Saint Kitts and Nevis 2020-10-29 19.0 0.0 0.0 null 0.0 0.0 357.197 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 53192.0 212.865 null null null 24654.385 null null 12.84 null null null 2.3 76.23 0.778
LCA North America Saint Lucia 2020-02-10 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 183629.0 293.187 34.9 9.721 6.405 12951.839 null 204.62 11.62 null null 87.202 1.3 76.2 0.747
LCA North America Saint Lucia 2020-03-10 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 183629.0 293.187 34.9 9.721 6.405 12951.839 null 204.62 11.62 null null 87.202 1.3 76.2 0.747
LCA North America Saint Lucia 2020-03-12 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 183629.0 293.187 34.9 9.721 6.405 12951.839 null 204.62 11.62 null null 87.202 1.3 76.2 0.747
VCT North America Saint Vincent and the Grenadines 2020-02-26 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
SMR Europe San Marino 2020-05-29 671.0 1.0 1.429 42.0 0.0 0.143 19771.348 29.465 42.094 1237.551 0.0 4.209 0.61 null null null null null null null null null null null null null null null null null 66.67 33938.0 556.667 null null null 56861.47 null null 5.64 null null null 3.8 84.97 null
SAU Asia Saudi Arabia 2020-05-06 31938.0 1687.0 1505.143 209.0 9.0 7.429 917.393 48.458 43.234 6.003 0.259 0.213 1.29 null null null null null null null null 446983.0 16026.0 12.839 0.46 12498.0 0.359 0.12 8.3 null 91.67 3.4813867e7 15.322 31.9 3.295 1.845 49045.411 null 259.538 17.72 1.8 25.4 null 2.7 75.13 0.853
SAU Asia Saudi Arabia 2020-08-09 288690.0 1428.0 1407.857 3167.0 37.0 35.714 8292.385 41.018 40.44 90.969 1.063 1.026 0.86 null null null null null null null null 3872599.0 59325.0 111.237 1.704 56983.0 1.637 2.5e-2 40.5 null 71.3 3.4813867e7 15.322 31.9 3.295 1.845 49045.411 null 259.538 17.72 1.8 25.4 null 2.7 75.13 0.853
SEN Africa Senegal 2020-04-04 219.0 12.0 12.714 2.0 1.0 0.286 13.079 0.717 0.759 0.119 6.0e-2 1.7e-2 0.88 null null null null null null null null 1952.0 177.0 0.117 1.1e-2 141.0 8.0e-3 9.0e-2 11.1 null 77.78 1.674393e7 82.328 18.7 3.008 1.796 2470.58 38.0 241.219 2.42 0.4 16.6 20.859 null 67.94 0.505
SEN Africa Senegal 2020-06-23 6034.0 64.0 112.429 89.0 3.0 2.714 360.369 3.822 6.715 5.315 0.179 0.162 1.0 null null null null null null null null 72161.0 1045.0 4.31 6.2e-2 1186.0 7.1e-2 9.5e-2 10.5 null 61.11 1.674393e7 82.328 18.7 3.008 1.796 2470.58 38.0 241.219 2.42 0.4 16.6 20.859 null 67.94 0.505
SEN Africa Senegal 2020-09-05 13948.0 67.0 70.286 290.0 1.0 1.143 833.018 4.001 4.198 17.32 6.0e-2 6.8e-2 0.77 null null null null null null null null 158152.0 1313.0 9.445 7.8e-2 1170.0 7.0e-2 6.0e-2 16.6 null 37.96 1.674393e7 82.328 18.7 3.008 1.796 2470.58 38.0 241.219 2.42 0.4 16.6 20.859 null 67.94 0.505
SEN Africa Senegal 2020-09-10 14150.0 48.0 46.286 293.0 0.0 0.857 845.082 2.867 2.764 17.499 0.0 5.1e-2 0.83 null null null null null null null null 163438.0 933.0 9.761 5.6e-2 1135.0 6.8e-2 4.1e-2 24.5 null 37.96 1.674393e7 82.328 18.7 3.008 1.796 2470.58 38.0 241.219 2.42 0.4 16.6 20.859 null 67.94 0.505
SEN Africa Senegal 2020-11-25 15927.0 19.0 14.857 331.0 0.0 0.286 951.21 1.135 0.887 19.768 0.0 1.7e-2 null null null null null null null null null 234381.0 743.0 13.998 4.4e-2 773.0 4.6e-2 1.9e-2 52.0 null 37.96 1.674393e7 82.328 18.7 3.008 1.796 2470.58 38.0 241.219 2.42 0.4 16.6 20.859 null 67.94 0.505
SRB Europe Serbia 2020-02-26 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null 16.0 null 2.0e-3 null null null null null null 13.89 6804596.0 80.291 41.2 17.366 null 14048.881 null 439.415 10.08 37.7 40.2 97.719 5.609 76.0 0.787
SRB Europe Serbia 2020-05-23 11092.0 68.0 85.143 238.0 1.0 1.429 1630.075 9.993 12.513 34.976 0.147 0.21 0.77 null null null null null null null null 214212.0 4415.0 31.48 0.649 5638.0 0.829 1.5e-2 66.2 null 49.07 6804596.0 80.291 41.2 17.366 null 14048.881 null 439.415 10.08 37.7 40.2 97.719 5.609 76.0 0.787
SYC Africa Seychelles 2020-03-30 8.0 0.0 0.143 null 0.0 0.0 81.35 0.0 1.453 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 52.78 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SYC Africa Seychelles 2020-11-23 166.0 3.0 0.857 null 0.0 0.0 1688.021 30.506 8.716 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SLE Africa Sierra Leone 2020-07-29 1803.0 17.0 10.286 67.0 1.0 0.143 226.025 2.131 1.289 8.399 0.125 1.8e-2 0.97 null null null null null null null null null null null null null null null null null 32.41 7976985.0 104.7 19.1 2.538 1.285 1390.3 52.2 325.721 2.42 8.8 41.3 19.275 null 54.7 0.419
SGP Asia Singapore 2020-02-19 84.0 3.0 4.857 null 0.0 0.0 14.358 0.513 0.83 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 25.0 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SGP Asia Singapore 2020-04-17 5050.0 623.0 420.286 11.0 1.0 0.571 863.197 106.489 71.839 1.88 0.171 9.8e-2 2.16 null null null null null null null null null null null null 3732.0 0.638 0.113 8.9 null 85.19 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SVK Europe Slovakia 2020-08-12 2690.0 75.0 39.0 31.0 0.0 0.286 492.706 13.737 7.143 5.678 0.0 5.2e-2 1.31 null null 39.0 7.143 null null null null 286852.0 2741.0 52.54 0.502 2076.0 0.38 1.9e-2 53.2 null 35.19 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVK Europe Slovakia 2020-10-18 29835.0 1567.0 1426.286 88.0 6.0 3.857 5464.643 287.015 261.242 16.118 1.099 0.706 1.35 null null 481.0 88.101 null null null null 622032.0 5025.0 113.933 0.92 9941.0 1.821 0.143 7.0 null 53.7 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVN Europe Slovenia 2020-09-16 3954.0 123.0 91.714 135.0 0.0 0.0 1901.938 59.165 44.116 64.937 0.0 0.0 1.39 11.0 5.291 61.0 29.342 null null null null 191413.0 3070.0 92.073 1.477 2470.0 1.188 3.7e-2 26.9 null 46.3 2078932.0 102.619 44.5 19.062 12.93 31400.84 null 153.493 7.25 20.1 25.0 null 4.5 81.32 0.896
SVN Europe Slovenia 2020-11-30 75814.0 433.0 1433.714 1435.0 51.0 48.286 36467.763 208.28 689.64 690.258 24.532 23.226 null null null null null null null null null 523620.0 5868.0 251.87 2.823 5767.0 2.774 0.249 4.0 null 68.52 2078932.0 102.619 44.5 19.062 12.93 31400.84 null 153.493 7.25 20.1 25.0 null 4.5 81.32 0.896
SLB Oceania Solomon Islands 2020-08-31 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 33.33 686878.0 21.841 20.8 3.507 2.043 2205.923 25.1 459.78 18.68 null null 35.89 1.4 73.0 0.546
SLB Oceania Solomon Islands 2020-09-21 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 36.11 686878.0 21.841 20.8 3.507 2.043 2205.923 25.1 459.78 18.68 null null 35.89 1.4 73.0 0.546
SOM Africa Somalia 2020-10-05 3745.0 0.0 22.429 99.0 0.0 0.0 235.635 0.0 1.411 6.229 0.0 0.0 0.66 null null null null null null null null null null null null null null null null null 49.07 1.5893219e7 23.5 16.8 2.731 1.496 null null 365.769 6.05 null null 9.831 0.9 57.4 null
SOM Africa Somalia 2020-11-08 4229.0 0.0 41.143 107.0 0.0 0.429 266.088 0.0 2.589 6.732 0.0 2.7e-2 0.68 null null null null null null null null null null null null null null null null null 37.96 1.5893219e7 23.5 16.8 2.731 1.496 null null 365.769 6.05 null null 9.831 0.9 57.4 null
ZAF Africa South Africa 2020-05-05 7572.0 352.0 368.0 148.0 10.0 7.857 127.671 5.935 6.205 2.495 0.169 0.132 1.36 null null null null null null null null 268064.0 10523.0 4.52 0.177 11795.0 0.199 3.1e-2 32.1 null 84.26 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
ZAF Africa South Africa 2020-07-28 459761.0 7232.0 11137.571 7257.0 190.0 269.857 7752.001 121.938 187.79 122.36 3.204 4.55 0.86 null null null null null null null null 2830635.0 28424.0 47.727 0.479 41959.0 0.707 0.265 3.8 null 80.56 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
KOR Asia South Korea 2020-02-03 15.0 0.0 1.571 null 0.0 0.0 0.293 0.0 3.1e-2 null 0.0 0.0 null null null null null null null null null null null null null 66.0 1.0e-3 2.4e-2 42.0 null 23.15 5.1269183e7 527.967 43.4 13.914 8.622 35938.374 0.2 85.998 6.8 6.2 40.9 null 12.27 83.03 0.903
SSD Africa South Sudan 2020-05-23 655.0 92.0 59.857 8.0 2.0 0.571 58.515 8.219 5.347 0.715 0.179 5.1e-2 0.88 null null null null null null null null null null null null null null null null null 73.15 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
SSD Africa South Sudan 2020-10-10 2761.0 0.0 6.571 54.0 0.0 0.571 246.656 0.0 0.587 4.824 0.0 5.1e-2 1.0 null null null null null null null null null null null null 423.0 3.8e-2 1.6e-2 64.4 null 35.19 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
SSD Africa South Sudan 2020-11-21 3047.0 31.0 6.286 60.0 1.0 0.143 272.206 2.769 0.562 5.36 8.9e-2 1.3e-2 null null null null null null null null null null null null null 554.0 4.9e-2 1.1e-2 88.1 null 43.52 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
ESP Europe Spain 2020-04-03 119199.0 7134.0 7640.0 11198.0 850.0 865.714 2549.45 152.583 163.406 239.505 18.18 18.516 1.37 null null null null null null null null null null null null null null null null null 85.19 4.6754783e7 93.105 45.5 19.436 13.799 34272.36 1.0 99.403 7.17 27.4 31.4 null 2.97 83.56 0.891
ESP Europe Spain 2020-11-07 1328832.0 0.0 20450.571 38833.0 0.0 422.143 28421.306 0.0 437.401 830.567 0.0 9.029 1.12 null null null null null null null null null null null null 166951.0 3.571 0.122 8.2 null 71.3 4.6754783e7 93.105 45.5 19.436 13.799 34272.36 1.0 99.403 7.17 27.4 31.4 null 2.97 83.56 0.891
LKA Asia Sri Lanka 2020-04-01 146.0 3.0 6.286 3.0 1.0 0.429 6.818 0.14 0.294 0.14 4.7e-2 2.0e-2 1.01 null null null null null null null null 2785.0 219.0 0.13 1.0e-2 161.0 8.0e-3 3.9e-2 25.6 null 100.0 2.141325e7 341.955 34.1 10.069 5.331 11669.077 0.7 197.093 10.68 0.3 27.0 null 3.6 76.98 0.77
LKA Asia Sri Lanka 2020-05-13 915.0 26.0 16.857 9.0 0.0 0.0 42.731 1.214 0.787 0.42 0.0 0.0 1.04 null null null null null null null null 39629.0 889.0 1.851 4.2e-2 1301.0 6.1e-2 1.3e-2 77.2 null 82.41 2.141325e7 341.955 34.1 10.069 5.331 11669.077 0.7 197.093 10.68 0.3 27.0 null 3.6 76.98 0.77
SDN Africa Sudan 2020-02-27 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 4.3849269e7 23.258 19.7 3.548 2.034 4466.507 null 431.388 15.67 null null 23.437 0.8 65.31 0.502
SUR South America Suriname 2020-02-01 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SUR South America Suriname 2020-02-17 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SUR South America Suriname 2020-06-13 196.0 9.0 13.714 3.0 0.0 0.286 334.11 15.342 23.378 5.114 0.0 0.487 1.13 null null null null null null null null null null null null null null null null null 93.52 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SWZ Africa Swaziland 2020-02-29 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWZ Africa Swaziland 2020-05-16 202.0 12.0 5.571 2.0 0.0 0.0 174.113 10.343 4.802 1.724 0.0 0.0 0.9 null null null null null null null null null null null null null null null null null 84.26 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWE Europe Sweden 2020-05-10 26846.0 278.0 593.286 3678.0 64.0 70.286 2658.212 27.527 58.745 364.185 6.337 6.959 1.13 null null null null 154.004 15.249 null null null null null null null null null null null 64.81 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933
SWE Europe Sweden 2020-10-29 121167.0 3254.0 1742.571 5966.0 3.0 5.143 11997.6 322.202 172.544 590.736 0.297 0.509 1.57 null null null null null null null null null 27613.0 null 2.734 26048.0 2.579 6.7e-2 14.9 null 55.56 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933
SWE Europe Sweden 2020-11-21 208295.0 0.0 4420.0 6406.0 0.0 34.571 20624.758 0.0 437.655 634.303 0.0 3.423 null null null null null null null null null null 38266.0 null 3.789 38119.0 3.774 0.116 8.6 null 50.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933
CHE Europe Switzerland 2020-04-01 17768.0 1163.0 981.571 488.0 55.0 47.857 2053.008 134.379 113.416 56.386 6.355 5.53 1.24 null null null null null null null null 145277.0 6657.0 16.786 0.769 5978.0 0.691 0.164 6.1 null 73.15 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
CHE Europe Switzerland 2020-06-02 30874.0 3.0 16.143 1920.0 0.0 0.714 3567.344 0.347 1.865 221.847 0.0 8.3e-2 0.79 null null null null null null null null 405695.0 4282.0 46.876 0.495 3304.0 0.382 5.0e-3 204.7 null 55.56 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
CHE Europe Switzerland 2020-08-06 36108.0 181.0 155.143 1985.0 1.0 0.714 4172.108 20.914 17.926 229.357 0.116 8.3e-2 1.17 null null null null null null null null 831138.0 6619.0 96.034 0.765 5409.0 0.625 2.9e-2 34.9 null 43.06 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
CHE Europe Switzerland 2020-11-15 257135.0 0.0 6460.286 3369.0 18.0 85.286 29710.728 0.0 746.455 389.272 2.08 9.854 1.04 null null null null null null null null 2419601.0 9364.0 279.573 1.082 25659.0 2.965 0.252 4.0 null 49.07 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
SYR Asia Syria 2020-03-15 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 41.67 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
SYR Asia Syria 2020-03-25 5.0 4.0 0.714 null 0.0 0.0 0.286 0.229 4.1e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 84.26 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
SYR Asia Syria 2020-04-08 19.0 0.0 1.286 2.0 0.0 0.0 1.086 0.0 7.3e-2 0.114 0.0 0.0 null null null null null null null null null null null null null null null null null null 87.04 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
SYR Asia Syria 2020-12-02 8059.0 86.0 85.714 426.0 4.0 5.0 460.497 4.914 4.898 24.342 0.229 0.286 null null null null null null null null null null null null null null null null null null null 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
TJK Asia Tajikistan 2020-10-06 10014.0 40.0 41.143 78.0 0.0 0.429 1049.945 4.194 4.314 8.178 0.0 4.5e-2 0.98 null null null null null null null null null null null null null null null null null 36.11 9537642.0 64.281 23.3 3.466 2.155 2896.913 4.8 427.698 7.11 null null 72.704 4.8 71.1 0.65
TZA Africa Tanzania 2020-09-11 509.0 0.0 0.0 21.0 0.0 0.0 8.521 0.0 0.0 0.352 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 25.0 5.9734213e7 64.699 17.7 3.108 1.874 2683.304 49.1 217.288 5.75 3.3 26.7 47.953 0.7 65.46 0.538
THA Asia Thailand 2020-01-09 null null null null null null null null null null null null null null null null null null null null null 23.0 13.0 0.0 0.0 null null null null null 0.0 6.9799978e7 135.132 40.1 11.373 6.89 16277.671 0.1 109.861 7.04 1.9 38.8 90.67 2.1 77.15 0.755
FJI Oceania Fiji 2020-06-29 18.0 0.0 0.0 null 0.0 0.0 20.079 0.0 0.0 null 0.0 0.0 null null null null null null null null null 5015.0 162.0 5.594 0.181 69.0 7.7e-2 0.0 null null 62.04 896444.0 49.562 28.6 6.224 3.284 8702.975 1.4 412.82 14.49 10.2 34.8 null 2.3 67.44 0.741
FJI Oceania Fiji 2020-09-25 32.0 0.0 0.0 2.0 0.0 0.0 35.697 0.0 0.0 2.231 0.0 0.0 null null null null null null null null null 10280.0 64.0 11.468 7.1e-2 65.0 7.3e-2 0.0 null null 51.85 896444.0 49.562 28.6 6.224 3.284 8702.975 1.4 412.82 14.49 10.2 34.8 null 2.3 67.44 0.741
FIN Europe Finland 2020-05-04 5327.0 73.0 90.286 240.0 10.0 6.714 961.428 13.175 16.295 43.316 1.805 1.212 0.9 49.0 8.844 197.0 35.555 null null null null 113479.0 1767.0 20.481 0.319 2956.0 0.534 3.1e-2 32.7 null 60.19 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-11-07 17385.0 0.0 181.714 362.0 0.0 0.571 3137.68 0.0 32.796 65.334 0.0 0.103 1.1 null null null null null null null null 1650143.0 9833.0 297.821 1.775 12769.0 2.305 1.4e-2 70.3 null 40.74 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-11-15 19315.0 213.0 216.857 369.0 0.0 1.0 3486.01 38.443 39.139 66.598 0.0 0.18 1.14 null null null null null null null null 1747491.0 6648.0 315.391 1.2 13080.0 2.361 1.7e-2 60.3 null 40.74 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
GMB Africa Gambia 2020-10-17 3649.0 0.0 3.0 118.0 0.0 0.143 1509.933 0.0 1.241 48.828 0.0 5.9e-2 0.68 null null null null null null null null null null null null null null null null null 60.19 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
DEU Europe Germany 2020-10-25 437698.0 9890.0 9861.0 10062.0 27.0 37.714 5224.127 118.042 117.696 120.095 0.322 0.45 1.45 null null null null null null 2028.515 24.211 2.1848094e7 null 260.767 null 201348.0 2.403 4.9e-2 20.4 null 60.65 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
GHA Africa Ghana 2020-02-14 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-05-20 6269.0 173.0 123.0 31.0 0.0 1.0 201.751 5.568 3.958 0.998 0.0 3.2e-2 1.23 null null null null null null null null 192194.0 4265.0 6.185 0.137 3358.0 0.108 3.7e-2 27.3 null 62.04 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-06-07 9638.0 176.0 224.0 44.0 0.0 1.143 310.173 5.664 7.209 1.416 0.0 3.7e-2 1.2 null null null null null null null null 239395.0 3952.0 7.704 0.127 2796.0 9.0e-2 8.0e-2 12.5 null 56.48 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-08-11 41404.0 192.0 513.143 215.0 0.0 3.429 1332.477 6.179 16.514 6.919 0.0 0.11 1.11 null null null null null null null null 421588.0 1998.0 13.568 6.4e-2 1745.0 5.6e-2 0.294 3.4 null 52.78 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-11-19 50631.0 174.0 96.286 323.0 0.0 0.429 1629.424 5.6 3.099 10.395 0.0 1.4e-2 1.18 null null null null null null null null 578117.0 2126.0 18.605 6.8e-2 2128.0 6.8e-2 4.5e-2 22.1 null 38.89 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GRD North America Grenada 2020-02-25 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 112519.0 317.132 29.4 7.304 5.021 13593.877 null 243.964 10.71 null null null 3.7 72.4 0.772
GRD North America Grenada 2020-05-01 20.0 0.0 0.714 null 0.0 0.0 177.748 0.0 6.348 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 112519.0 317.132 29.4 7.304 5.021 13593.877 null 243.964 10.71 null null null 3.7 72.4 0.772
GRD North America Grenada 2020-06-04 23.0 0.0 0.0 null 0.0 0.0 204.41 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 112519.0 317.132 29.4 7.304 5.021 13593.877 null 243.964 10.71 null null null 3.7 72.4 0.772
GRD North America Grenada 2020-10-10 24.0 0.0 0.0 null 0.0 0.0 213.297 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 112519.0 317.132 29.4 7.304 5.021 13593.877 null 243.964 10.71 null null null 3.7 72.4 0.772
GTM North America Guatemala 2020-02-12 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 1.7915567e7 157.834 22.9 4.694 3.016 7423.808 8.7 155.898 10.18 null null 76.665 0.6 74.3 0.65
GNB Africa Guinea-Bissau 2020-03-01 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 1967998.0 66.191 19.4 3.002 1.565 1548.675 67.1 382.474 2.42 null null 6.403 null 58.32 0.455
GUY South America Guyana 2020-08-28 1180.0 40.0 42.714 35.0 3.0 0.714 1500.205 50.854 54.305 44.498 3.814 0.908 1.23 null null null null null null null null null null null null null null null null null 73.15 786559.0 3.952 26.3 5.305 2.837 7435.047 null 373.159 11.62 null null 77.159 1.6 69.91 0.654
HTI North America Haiti 2020-02-05 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 1.1402533e7 398.448 24.3 4.8 2.954 1653.173 23.5 430.548 6.65 2.9 23.1 22.863 0.7 64.0 0.498
HND North America Honduras 2020-02-12 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 9904608.0 82.805 24.9 4.652 2.883 4541.795 16.0 240.208 7.21 2.0 null 84.169 0.7 75.27 0.617
HUN Europe Hungary 2020-03-23 167.0 36.0 18.286 7.0 1.0 0.857 17.287 3.727 1.893 0.725 0.104 8.9e-2 1.7 null null 144.0 14.906 null null null null 5515.0 1072.0 0.571 0.111 578.0 6.0e-2 3.2e-2 31.6 null 67.59 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
HUN Europe Hungary 2020-04-17 1763.0 111.0 81.857 156.0 14.0 11.286 182.499 11.49 8.474 16.148 1.449 1.168 1.14 null null 847.0 87.678 null null null null 41590.0 3101.0 4.305 0.321 1663.0 0.172 4.9e-2 20.3 null 76.85 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
HUN Europe Hungary 2020-08-05 4564.0 11.0 14.143 599.0 1.0 0.429 472.447 1.139 1.464 62.006 0.104 4.4e-2 1.29 null null 72.0 7.453 null null null null 350108.0 1976.0 36.242 0.205 2380.0 0.246 6.0e-3 168.3 null 54.63 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
HUN Europe Hungary 2020-11-07 104943.0 5318.0 4231.714 2357.0 107.0 86.714 10863.271 550.498 438.05 243.987 11.076 8.976 1.32 null null 5612.0 580.931 null null null null 1189962.0 22321.0 123.18 2.311 17831.0 1.846 0.237 4.2 null 57.41 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
ISL Europe Iceland 2020-03-13 134.0 31.0 13.0 null 0.0 0.0 392.674 90.842 38.095 null 0.0 0.0 1.64 0.0 0.0 2.0 5.861 null null null null 1504.0 357.0 4.407 1.046 160.0 0.469 8.1e-2 12.3 null 16.67 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-03-28 963.0 73.0 70.0 2.0 0.0 0.143 2821.978 213.919 205.128 5.861 0.0 0.419 1.27 7.0 20.513 26.0 76.19 null null null null 15443.0 849.0 45.254 2.488 767.0 2.248 9.1e-2 11.0 null 53.7 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-07-18 1838.0 2.0 0.714 10.0 0.0 0.0 5386.081 5.861 2.093 29.304 0.0 0.0 1.29 0.0 0.0 0.0 0.0 null null null null 68575.0 64.0 200.952 0.188 112.0 0.328 6.0e-3 156.9 null 39.81 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-07-23 1841.0 1.0 0.714 10.0 0.0 0.0 5394.872 2.93 2.093 29.304 0.0 0.0 1.43 0.0 0.0 0.0 0.0 null null null null 68822.0 67.0 201.676 0.196 71.0 0.208 1.0e-2 99.4 null 39.81 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
IND Asia India 2020-10-26 7946429.0 36470.0 49909.429 119502.0 488.0 615.0 5758.264 26.427 36.166 86.595 0.354 0.446 0.89 null null null null null null null null 1.03462778e8 939309.0 74.973 0.681 1196972.0 0.867 4.2e-2 24.0 null 64.35 1.380004385e9 450.419 28.2 5.989 3.414 6426.674 21.2 282.28 10.39 1.9 20.6 59.55 0.53 69.66 0.64
IDN Asia Indonesia 2020-02-03 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 23.15 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
IDN Asia Indonesia 2020-08-13 132816.0 2098.0 2009.0 5968.0 65.0 63.857 485.574 7.67 7.345 21.819 0.238 0.233 1.06 null null null null null null null null 1026954.0 14850.0 3.755 5.4e-2 12949.0 4.7e-2 0.155 6.4 null 59.72 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
IDN Asia Indonesia 2020-10-05 307120.0 3622.0 4056.857 11253.0 102.0 111.429 1122.828 13.242 14.832 41.141 0.373 0.407 1.01 null null null null null null null null 2119355.0 22771.0 7.748 8.3e-2 26356.0 9.6e-2 0.154 6.5 null 72.69 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
null null International 2020-06-14 721.0 0.0 0.0 15.0 0.0 0.0 null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null
IRN Asia Iran 2020-08-07 322567.0 2450.0 2623.286 18132.0 156.0 195.143 3840.406 29.169 31.232 215.875 1.857 2.323 0.93 null null null null null null null null 2637575.0 null 31.402 null 25809.0 0.307 0.102 9.8 null 60.19 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRN Asia Iran 2020-08-08 324692.0 2125.0 2562.857 18264.0 132.0 183.143 3865.705 25.3 30.513 217.447 1.572 2.18 0.86 null null null null null null null null 2661965.0 24390.0 31.693 0.29 25630.0 0.305 0.1 10.0 null 60.19 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRQ Asia Iraq 2020-07-08 67442.0 2741.0 2274.0 2779.0 94.0 104.143 1676.723 68.146 56.536 69.091 2.337 2.589 1.12 null null null null null null null null 637227.0 12807.0 15.843 0.318 11615.0 0.289 0.196 5.1 null 92.59 4.0222503e7 88.125 20.0 3.186 1.957 15663.986 2.5 218.612 8.83 null null 94.576 1.4 70.6 0.685
IRQ Asia Iraq 2020-10-25 451707.0 2554.0 3581.857 10623.0 55.0 52.714 11230.206 63.497 89.051 264.106 1.367 1.311 0.98 null null null null null null null null 2756365.0 16687.0 68.528 0.415 18859.0 0.469 0.19 5.3 null 51.85 4.0222503e7 88.125 20.0 3.186 1.957 15663.986 2.5 218.612 8.83 null null 94.576 1.4 70.6 0.685
IRL Europe Ireland 2020-10-26 58067.0 939.0 1010.571 1885.0 3.0 4.714 11759.7 190.166 204.66 381.749 0.608 0.955 0.96 38.0 7.696 344.0 69.667 null null null null 1568768.0 14264.0 317.706 2.889 16425.0 3.326 6.2e-2 16.3 null 81.48 4937796.0 69.874 38.7 13.928 8.678 67335.293 0.2 126.459 3.28 23.0 25.7 null 2.96 82.3 0.938
IRL Europe Ireland 2020-10-28 59434.0 667.0 858.857 1896.0 6.0 4.0 12036.544 135.081 173.935 383.977 1.215 0.81 0.91 40.0 8.101 327.0 66.224 null null null null 1591370.0 11167.0 322.283 2.262 15161.0 3.07 5.7e-2 17.7 null 81.48 4937796.0 69.874 38.7 13.928 8.678 67335.293 0.2 126.459 3.28 23.0 25.7 null 2.96 82.3 0.938
ISR Asia Israel 2020-03-25 2369.0 1131.0 295.0 5.0 2.0 0.714 273.698 130.668 34.082 0.578 0.231 8.3e-2 1.94 null null null null null null null null 37132.0 5936.0 4.29 0.686 3457.0 0.399 8.5e-2 11.7 null 81.48 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ITA Europe Italy 2020-03-17 31506.0 3526.0 3051.0 2503.0 345.0 267.429 521.089 58.318 50.462 41.398 5.706 4.423 1.84 2060.0 34.071 14954.0 247.33 null null null null 148657.0 10695.0 2.459 0.177 12557.0 0.208 0.243 4.1 null 85.19 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
ITA Europe Italy 2020-08-08 250103.0 347.0 324.429 35203.0 13.0 8.143 4136.544 5.739 5.366 582.235 0.215 0.135 1.29 43.0 0.711 814.0 13.463 null null null null 7212207.0 53298.0 119.285 0.882 48387.0 0.8 7.0e-3 149.1 null 50.93 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
ITA Europe Italy 2020-09-12 286297.0 1501.0 1422.714 35603.0 6.0 9.857 4735.169 24.826 23.531 588.851 9.9e-2 0.163 1.07 182.0 3.01 2133.0 35.278 null null null null 9745975.0 92706.0 161.192 1.533 86225.0 1.426 1.7e-2 60.6 null 54.63 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
ITA Europe Italy 2020-11-28 1564532.0 26315.0 26285.857 54363.0 686.0 728.857 25876.36 435.233 434.751 899.129 11.346 12.055 null 3762.0 62.221 37061.0 612.965 null null null null 2.1637641e7 225940.0 357.873 3.737 205402.0 3.397 0.128 7.8 null null 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
JAM North America Jamaica 2020-02-11 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JAM North America Jamaica 2020-07-10 753.0 0.0 4.571 10.0 0.0 0.0 254.292 0.0 1.544 3.377 0.0 0.0 1.08 null null null null null null null null 27775.0 300.0 9.38 0.101 299.0 0.101 1.5e-2 65.4 null 64.81 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JAM North America Jamaica 2020-11-03 9296.0 39.0 72.714 214.0 4.0 2.571 3139.309 13.171 24.556 72.269 1.351 0.868 0.91 null null null null null null null null 98356.0 565.0 33.215 0.191 648.0 0.219 0.112 8.9 null 67.59 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JPN Asia Japan 2020-10-23 95868.0 734.0 546.286 1706.0 9.0 6.0 757.991 5.803 4.319 13.489 7.1e-2 4.7e-2 1.13 null null null null null null null null 2295456.0 22880.0 18.149 0.181 17267.0 0.137 3.2e-2 31.6 null 38.89 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JOR Asia Jordan 2020-05-02 460.0 1.0 2.286 9.0 1.0 0.286 45.084 9.8e-2 0.224 0.882 9.8e-2 2.8e-2 0.95 null null null null null null null null null null null null null null null null null 89.81 1.020314e7 109.285 23.2 3.81 2.361 8337.49 0.1 208.257 11.75 null null null 1.4 74.53 0.735
KAZ Asia Kazakhstan 2020-03-31 343.0 41.0 38.714 2.0 1.0 0.286 18.267 2.184 2.062 0.107 5.3e-2 1.5e-2 1.62 null null null null null null null null 30905.0 9892.0 1.646 0.527 3003.0 0.16 1.3e-2 77.6 null 92.13 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-06-24 19285.0 520.0 486.857 136.0 2.0 5.571 1027.07 27.694 25.929 7.243 0.107 0.297 1.12 null null null null null null null null 1401692.0 24830.0 74.651 1.322 27159.0 1.446 1.8e-2 55.8 null 81.02 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-10-01 140958.0 251.0 238.429 2080.0 2.0 5.0 7507.067 13.368 12.698 110.776 0.107 0.266 1.01 null null null null null null null null 2973489.0 9208.0 158.361 0.49 13415.0 0.714 1.8e-2 56.3 null 78.7 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-11-14 159756.0 903.0 776.429 2315.0 1.0 7.143 8508.201 48.091 41.351 123.291 5.3e-2 0.38 1.31 null null null null null null null null 4004270.0 39228.0 213.257 2.089 31215.0 1.662 2.5e-2 40.2 null 68.06 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KEN Africa Kenya 2020-02-15 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KEN Africa Kenya 2020-02-24 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KEN Africa Kenya 2020-06-25 5384.0 178.0 161.0 132.0 2.0 2.143 100.128 3.31 2.994 2.455 3.7e-2 4.0e-2 1.24 null null null null null null null null 155314.0 3918.0 2.888 7.3e-2 3545.0 6.6e-2 4.5e-2 22.0 null 84.26 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
OWID_KOS Europe Kosovo 2020-08-22 12337.0 169.0 151.714 457.0 9.0 9.571 6383.054 87.439 78.496 236.448 4.657 4.952 0.9 null null null null null null null null null null null null null null null null null 69.44 1932774.0 168.155 null null null 9795.834 0.6 null null null null null null null null
KGZ Asia Kyrgyzstan 2020-06-07 2007.0 33.0 37.0 22.0 0.0 0.857 307.624 5.058 5.671 3.372 0.0 0.131 1.24 null null null null null null null null null null null null null null null null null 76.39 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
LAO Asia Laos 2020-09-12 23.0 0.0 0.143 null 0.0 0.0 3.161 0.0 2.0e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 36.11 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LBN Asia Lebanon 2020-03-28 412.0 21.0 32.143 8.0 0.0 0.571 60.362 3.077 4.709 1.172 0.0 8.4e-2 1.06 null null null null null null null null null null null null null null null null null 85.19 6825442.0 594.561 31.1 8.514 5.43 13367.565 null 266.591 12.71 26.9 40.7 null 2.9 78.93 0.757
LBN Asia Lebanon 2020-11-06 91328.0 2142.0 1685.571 700.0 17.0 10.714 13380.525 313.826 246.954 102.557 2.491 1.57 1.11 null null null null null null null null null null null null null null null null null 57.41 6825442.0 594.561 31.1 8.514 5.43 13367.565 null 266.591 12.71 26.9 40.7 null 2.9 78.93 0.757
LBY Africa Libya 2020-04-19 51.0 2.0 3.714 1.0 0.0 0.0 7.422 0.291 0.541 0.146 0.0 0.0 null null null null null null null null null null 25.0 null 4.0e-3 34.0 5.0e-3 0.109 9.2 null 100.0 6871287.0 3.623 29.0 4.424 2.816 17881.509 null 341.862 10.43 null null null 3.7 72.91 0.706
LIE Europe Liechtenstein 2020-03-12 1.0 0.0 0.0 null 0.0 0.0 26.221 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LIE Europe Liechtenstein 2020-03-16 4.0 0.0 0.429 null 0.0 0.0 104.885 0.0 11.238 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LIE Europe Liechtenstein 2020-06-24 82.0 0.0 0.0 1.0 0.0 0.0 2150.143 0.0 0.0 26.221 0.0 0.0 null null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LIE Europe Liechtenstein 2020-11-09 801.0 13.0 29.0 4.0 1.0 0.143 21003.225 340.876 760.416 104.885 26.221 3.746 1.07 null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LTU Europe Lithuania 2020-05-27 1647.0 8.0 10.0 66.0 1.0 0.857 605.005 2.939 3.673 24.244 0.367 0.315 0.85 null null null null null null null null 272538.0 6268.0 100.113 2.302 4739.0 1.741 2.0e-3 473.9 null 71.3 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LTU Europe Lithuania 2020-09-07 3100.0 17.0 27.714 86.0 0.0 0.0 1138.747 6.245 10.181 31.591 0.0 0.0 1.17 null null null null null null null null 614767.0 3528.0 225.827 1.296 3650.0 1.341 8.0e-3 131.7 null 34.26 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LTU Europe Lithuania 2020-10-30 13823.0 735.0 674.143 157.0 7.0 4.429 5077.708 269.993 247.638 57.672 2.571 1.627 1.52 null null 415.0 152.445 null null null null 936692.0 10520.0 344.082 3.864 8860.0 3.255 7.6e-2 13.1 null 62.5 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LTU Europe Lithuania 2020-11-19 40492.0 1682.0 1525.714 341.0 18.0 13.857 14874.236 617.862 560.452 125.262 6.612 5.09 1.33 null null 1.0 0.367 null null null null 1145098.0 14052.0 420.638 5.162 11081.0 4.07 0.138 7.3 null 62.96 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LUX Europe Luxembourg 2020-07-04 4476.0 29.0 37.0 110.0 0.0 0.0 7150.434 46.328 59.108 175.726 0.0 0.0 1.63 3.0 4.793 24.0 38.34 null null null null 231408.0 7851.0 369.676 12.542 8169.0 13.05 5.0e-3 220.8 null 24.07 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
LUX Europe Luxembourg 2020-08-13 7368.0 68.0 42.143 122.0 0.0 0.429 11770.419 108.63 67.323 194.896 0.0 0.685 0.85 3.0 4.793 38.0 60.705 null null null null 559389.0 4654.0 893.627 7.435 4972.0 7.943 8.0e-3 118.0 null 34.26 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
MKD Europe Macedonia 2020-08-21 13308.0 114.0 113.286 557.0 3.0 3.143 6387.697 54.719 54.376 267.354 1.44 1.509 0.97 null null null null null null null null 134206.0 1733.0 64.417 0.832 1598.0 0.767 7.1e-2 14.1 null null 2083380.0 82.6 39.1 13.26 8.16 13111.214 5.0 322.688 10.08 null null null 4.28 75.8 0.757
MDG Africa Madagascar 2020-08-15 13724.0 81.0 114.571 166.0 2.0 3.571 495.612 2.925 4.137 5.995 7.2e-2 0.129 0.72 null null null null null null null null 51559.0 590.0 1.862 2.1e-2 543.0 2.0e-2 0.211 4.7 null 65.74 2.7691019e7 43.951 19.6 2.929 1.686 1416.44 77.6 405.994 3.94 null null 50.54 0.2 67.04 0.519
MDG Africa Madagascar 2020-09-11 15669.0 45.0 68.857 209.0 1.0 1.571 565.851 1.625 2.487 7.548 3.6e-2 5.7e-2 0.82 null null null null null null null null 63222.0 null 2.283 null 464.0 1.7e-2 0.148 6.7 null 56.48 2.7691019e7 43.951 19.6 2.929 1.686 1416.44 77.6 405.994 3.94 null null 50.54 0.2 67.04 0.519
MWI Africa Malawi 2020-10-03 5783.0 0.0 2.429 179.0 0.0 0.0 302.301 0.0 0.127 9.357 0.0 0.0 0.89 null null null null null null null null 54246.0 231.0 2.836 1.2e-2 266.0 1.4e-2 9.0e-3 109.5 null 54.63 1.9129955e7 197.519 18.1 2.979 1.783 1095.042 71.4 227.349 3.94 4.4 24.7 8.704 1.3 64.26 0.477
MDV Asia Maldives 2020-02-04 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 540542.0 1454.433 30.6 4.12 2.875 15183.616 null 164.905 9.19 2.1 55.0 95.803 null 78.92 0.717
MDV Asia Maldives 2020-05-29 1591.0 78.0 45.286 5.0 0.0 0.143 2943.342 144.3 83.778 9.25 0.0 0.264 1.06 null null null null null null null null 22319.0 680.0 41.29 1.258 735.0 1.36 6.2e-2 16.2 null null 540542.0 1454.433 30.6 4.12 2.875 15183.616 null 164.905 9.19 2.1 55.0 95.803 null 78.92 0.717
MLI Africa Mali 2020-03-19 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 22.22 2.0250834e7 15.196 16.4 2.519 1.486 2014.306 null 268.024 2.42 1.6 23.0 52.232 0.1 59.31 0.427
MLT Europe Malta 2020-03-22 90.0 17.0 9.857 null 0.0 0.0 203.833 38.502 22.325 null 0.0 0.0 null 0.0 0.0 11.0 24.913 0.895 2.026 1.789 4.052 3216.0 309.0 7.284 0.7 249.0 0.564 4.0e-2 25.3 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MLT Europe Malta 2020-07-18 675.0 1.0 0.143 9.0 0.0 0.0 1528.744 2.265 0.324 20.383 0.0 0.0 0.37 null null null null null null null null 113237.0 834.0 256.46 1.889 867.0 1.964 0.0 6062.9 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MLT Europe Malta 2020-09-28 3006.0 27.0 32.857 32.0 1.0 1.286 6808.006 61.15 74.415 72.474 2.265 2.912 0.93 null null null null null null null null 251746.0 2116.0 570.156 4.792 2304.0 5.218 1.4e-2 70.1 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MRT Africa Mauritania 2020-04-16 7.0 0.0 0.0 1.0 0.0 0.0 1.505 0.0 0.0 0.215 0.0 0.0 null null null null null null null null null null null null null 66.0 1.4e-2 0.0 null null 77.78 4649660.0 4.289 20.3 3.138 1.792 3597.633 6.0 232.347 2.42 null null 15.95 null 64.92 0.52
MRT Africa Mauritania 2020-07-21 5985.0 62.0 66.714 155.0 0.0 1.143 1287.191 13.334 14.348 33.336 0.0 0.246 0.79 null null null null null null null null null null null null 739.0 0.159 9.0e-2 11.1 null 29.63 4649660.0 4.289 20.3 3.138 1.792 3597.633 6.0 232.347 2.42 null null 15.95 null 64.92 0.52
MUS Africa Mauritius 2020-03-20 12.0 9.0 1.714 null 0.0 0.0 9.436 7.077 1.348 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 50.0 1271767.0 622.962 37.4 10.945 5.884 20292.745 0.5 224.644 22.02 3.2 40.7 null 3.4 74.99 0.79
MEX North America Mexico 2020-08-17 525733.0 3571.0 5699.571 57023.0 266.0 574.286 4077.575 27.697 44.206 442.269 2.063 4.454 0.96 null null null null null null null null 1207328.0 14669.0 9.364 0.114 11905.0 9.2e-2 0.479 2.1 null 70.83 1.28932753e8 66.444 29.3 6.857 4.321 17336.469 2.5 152.783 13.06 6.9 21.4 87.847 1.38 75.05 0.774
MEX North America Mexico 2020-10-13 825340.0 4295.0 4390.286 84420.0 475.0 296.0 6401.321 33.312 34.051 654.76 3.684 2.296 1.02 null null null null null null null null 1880454.0 16473.0 14.585 0.128 11831.0 9.2e-2 0.371 2.7 null 71.76 1.28932753e8 66.444 29.3 6.857 4.321 17336.469 2.5 152.783 13.06 6.9 21.4 87.847 1.38 75.05 0.774
MDA Europe Moldova 2020-05-14 5553.0 147.0 135.429 194.0 9.0 7.0 1376.562 36.441 33.572 48.092 2.231 1.735 1.15 null null null null null null null null null null null null null null null null null 84.26 4033963.0 123.655 37.6 10.864 6.955 5189.972 0.2 408.502 5.72 5.9 44.6 86.979 5.8 71.9 0.7
MNG Asia Mongolia 2020-02-13 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 49.07 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
AFG Asia Afghanistan 2020-09-03 38288.0 45.0 24.143 1410.0 0.0 1.143 983.551 1.156 0.62 36.22 0.0 2.9e-2 0.96 null null null null null null null null null null null null null null null null null 21.3 3.8928341e7 54.422 18.6 2.581 1.337 1803.987 null 597.029 9.59 null null 37.746 0.5 64.83 0.498
AFG Asia Afghanistan 2020-11-26 45600.0 216.0 203.286 1737.0 9.0 12.0 1171.383 5.549 5.222 44.62 0.231 0.308 null null null null null null null null null null null null null null null null null null 8.33 3.8928341e7 54.422 18.6 2.581 1.337 1803.987 null 597.029 9.59 null null 37.746 0.5 64.83 0.498
ALB Europe Albania 2020-05-02 789.0 7.0 11.0 31.0 0.0 0.571 274.168 2.432 3.822 10.772 0.0 0.199 0.69 null null null null null null null null null null null null null null null null null 89.81 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
ALB Europe Albania 2020-09-10 10860.0 156.0 145.143 324.0 2.0 3.286 3773.716 54.208 50.435 112.586 0.695 1.142 1.09 null null null null null null null null null null null null null null null null null 54.63 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
DZA Africa Algeria 2020-05-09 5558.0 189.0 180.429 494.0 6.0 5.0 126.747 4.31 4.115 11.265 0.137 0.114 1.13 null null null null null null null null null null null null null null null null null 76.85 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
DZA Africa Algeria 2020-09-15 48734.0 238.0 256.571 1632.0 12.0 8.714 1111.353 5.427 5.851 37.217 0.274 0.199 0.83 null null null null null null null null null null null null null null null null null 75.93 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
AND Europe Andorra 2020-06-27 855.0 0.0 0.0 52.0 0.0 0.0 11065.812 0.0 0.0 673.008 0.0 0.0 0.39 null null null null null null null null null null null null null null null null null 38.89 77265.0 163.755 null null null null null 109.135 7.97 29.0 37.8 null null 83.73 0.858
AGO Africa Angola 2020-10-18 7622.0 160.0 179.429 247.0 6.0 4.143 231.91 4.868 5.459 7.515 0.183 0.126 1.13 null null null null null null null null null null null null null null null null null 71.3 3.2866268e7 23.89 16.8 2.405 1.362 5819.495 null 276.045 3.94 null null 26.664 null 61.15 0.581
ATG North America Antigua and Barbuda 2020-02-23 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 97928.0 231.845 32.1 6.933 4.631 21490.943 null 191.511 13.17 null null null 3.8 77.02 0.78
ATG North America Antigua and Barbuda 2020-03-25 3.0 0.0 0.286 null 0.0 0.0 30.635 0.0 2.918 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 97928.0 231.845 32.1 6.933 4.631 21490.943 null 191.511 13.17 null null null 3.8 77.02 0.78
ATG North America Antigua and Barbuda 2020-04-03 15.0 6.0 1.143 null 0.0 0.0 153.174 61.27 11.67 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 97928.0 231.845 32.1 6.933 4.631 21490.943 null 191.511 13.17 null null null 3.8 77.02 0.78
ATG North America Antigua and Barbuda 2020-10-01 101.0 0.0 0.571 3.0 0.0 0.0 1031.37 0.0 5.835 30.635 0.0 0.0 0.26 null null null null null null null null null null null null null null null null null null 97928.0 231.845 32.1 6.933 4.631 21490.943 null 191.511 13.17 null null null 3.8 77.02 0.78
ARG South America Argentina 2020-08-14 282437.0 6365.0 6680.0 5527.0 165.0 159.429 6249.19 140.832 147.801 122.29 3.651 3.528 1.11 null null null null null null null null null null null null null null null null null 87.96 4.5195777e7 16.177 31.9 11.198 7.441 18933.907 0.6 191.032 5.5 16.2 27.7 null 5.0 76.67 0.825
ARM Asia Armenia 2020-04-30 2066.0 134.0 77.571 32.0 2.0 1.143 697.211 45.221 26.178 10.799 0.675 0.386 1.37 null null null null null null null null null null null null null null null null null null 2963234.0 102.931 35.7 11.232 7.571 8787.58 1.8 341.01 7.11 1.5 52.1 94.043 4.2 75.09 0.755
ARM Asia Armenia 2020-07-10 30903.0 557.0 511.857 546.0 11.0 11.0 10428.809 187.97 172.736 184.258 3.712 3.712 0.92 null null null null null null null null null null null null null null null null null null 2963234.0 102.931 35.7 11.232 7.571 8787.58 1.8 341.01 7.11 1.5 52.1 94.043 4.2 75.09 0.755
AUT Europe Austria 2020-05-01 15531.0 79.0 65.714 589.0 5.0 8.429 1724.44 8.772 7.296 65.398 0.555 0.936 0.61 124.0 13.768 348.0 38.639 null null null null 264079.0 7680.0 29.321 0.853 7342.0 0.815 9.0e-3 111.7 null 67.59 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-09-09 30583.0 502.0 373.429 747.0 0.0 1.857 3395.696 55.738 41.463 82.941 0.0 0.206 1.41 36.0 3.997 161.0 17.876 null null null null 1288059.0 11582.0 143.016 1.286 11070.0 1.229 3.4e-2 29.6 null 36.11 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-10-02 46374.0 688.0 696.286 803.0 1.0 2.429 5149.005 76.39 77.31 89.159 0.111 0.27 1.15 100.0 11.103 372.0 41.304 null null null null 1658412.0 21839.0 184.137 2.425 18815.0 2.089 3.7e-2 27.0 null 40.74 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-10-06 49819.0 923.0 825.429 822.0 4.0 3.714 5531.511 102.483 91.649 91.268 0.444 0.412 1.21 101.0 11.214 397.0 44.08 null null null null 1716505.0 18237.0 190.587 2.025 18561.0 2.061 4.4e-2 22.5 null 40.74 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AZE Asia Azerbaijan 2020-03-20 44.0 0.0 4.143 1.0 0.0 0.0 4.34 0.0 0.409 9.9e-2 0.0 0.0 null null null null null null null null null null null null null null null null null null 61.11 1.0139175e7 119.309 32.4 6.018 3.871 15847.419 null 559.812 7.11 0.3 42.5 83.241 4.7 73.0 0.757
BHR Asia Bahrain 2020-05-23 8802.0 388.0 293.571 13.0 1.0 0.143 5172.83 228.023 172.528 7.64 0.588 8.4e-2 1.21 null null null null null null null null 276552.0 7373.0 162.526 4.333 6623.0 3.892 4.4e-2 22.6 null 75.0 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-10-26 80533.0 278.0 329.857 316.0 4.0 2.0 47328.282 163.377 193.853 185.709 2.351 1.175 0.88 null null null null null null null null 1698489.0 19642.0 998.182 11.543 11551.0 6.788 2.9e-2 35.0 null 63.89 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BGD Asia Bangladesh 2020-11-07 418764.0 1289.0 1582.857 6049.0 13.0 18.0 2542.75 7.827 9.611 36.73 7.9e-2 0.109 1.02 null null null null null null null null 2427669.0 11419.0 14.741 6.9e-2 13029.0 7.9e-2 0.121 8.2 null 80.09 1.64689383e8 1265.036 27.5 5.098 3.262 3523.984 14.8 298.003 8.38 1.0 44.7 34.808 0.8 72.59 0.608
BEL Europe Belgium 2020-02-26 1.0 0.0 0.0 null 0.0 0.0 8.6e-2 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-03-05 50.0 27.0 7.0 null 0.0 0.0 4.314 2.33 0.604 null 0.0 0.0 null null null null null null null null null 2411.0 773.0 0.208 6.7e-2 null null null null null 13.89 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-04-04 18431.0 1661.0 1328.143 1283.0 140.0 132.857 1590.303 143.318 114.598 110.703 12.08 11.463 1.45 1261.0 108.804 5531.0 477.238 null null null null 93217.0 5368.0 8.043 0.463 5288.0 0.456 0.251 4.0 null 81.48 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-07-02 61598.0 89.0 84.429 9761.0 7.0 5.0 5314.93 7.679 7.285 842.219 0.604 0.431 1.04 35.0 3.02 187.0 16.135 null null null null 1303042.0 13607.0 112.432 1.174 12646.0 1.091 7.0e-3 149.8 null 50.0 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BLZ North America Belize 2020-01-24 null 0.0 null null 0.0 null null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 397621.0 16.426 25.0 3.853 2.279 7824.362 null 176.957 17.11 null null 90.083 1.3 74.62 0.708
BLZ North America Belize 2020-02-25 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 397621.0 16.426 25.0 3.853 2.279 7824.362 null 176.957 17.11 null null 90.083 1.3 74.62 0.708
BLZ North America Belize 2020-04-17 18.0 0.0 1.143 2.0 0.0 0.0 45.269 0.0 2.874 5.03 0.0 0.0 null null null null null null null null null null null null null null null null null null 75.0 397621.0 16.426 25.0 3.853 2.279 7824.362 null 176.957 17.11 null null 90.083 1.3 74.62 0.708
BLZ North America Belize 2020-06-14 20.0 0.0 0.143 2.0 0.0 0.0 50.299 0.0 0.359 5.03 0.0 0.0 null null null null null null null null null null null null null null null null null null 73.15 397621.0 16.426 25.0 3.853 2.279 7824.362 null 176.957 17.11 null null 90.083 1.3 74.62 0.708
BLZ North America Belize 2020-11-04 3905.0 115.0 92.0 64.0 3.0 1.714 9820.91 289.22 231.376 160.957 7.545 4.311 1.17 null null null null null null null null null null null null null null null null null 66.67 397621.0 16.426 25.0 3.853 2.279 7824.362 null 176.957 17.11 null null 90.083 1.3 74.62 0.708
BEN Africa Benin 2020-05-07 140.0 44.0 10.857 2.0 0.0 0.143 11.548 3.629 0.896 0.165 0.0 1.2e-2 null null null null null null null null null null null null null null null null null null 70.83 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BEN Africa Benin 2020-06-05 261.0 0.0 5.286 3.0 0.0 0.0 21.529 0.0 0.436 0.247 0.0 0.0 0.99 null null null null null null null null null null null null null null null null null 41.67 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BEN Africa Benin 2020-12-01 3015.0 0.0 14.143 43.0 0.0 0.0 248.697 0.0 1.167 3.547 0.0 0.0 null null null null null null null null null null null null null null null null null null null 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BTN Asia Bhutan 2020-03-05 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 771612.0 21.188 28.6 4.885 2.977 8708.597 1.5 217.066 9.75 null null 79.807 1.7 71.78 0.612
BTN Asia Bhutan 2020-08-19 147.0 0.0 4.857 null 0.0 0.0 190.51 0.0 6.295 null 0.0 0.0 0.72 null null null null null null null null null null null null null null null null null 97.22 771612.0 21.188 28.6 4.885 2.977 8708.597 1.5 217.066 9.75 null null 79.807 1.7 71.78 0.612
BTN Asia Bhutan 2020-10-08 304.0 0.0 3.143 null 0.0 0.0 393.98 0.0 4.073 null 0.0 0.0 0.74 null null null null null null null null null null null null null null null null null 77.78 771612.0 21.188 28.6 4.885 2.977 8708.597 1.5 217.066 9.75 null null 79.807 1.7 71.78 0.612
BOL South America Bolivia 2020-09-06 120769.0 528.0 685.857 5398.0 0.0 61.714 10345.986 45.232 58.756 462.434 0.0 5.287 0.86 null null null null null null null null 251931.0 1625.0 21.582 0.139 2093.0 0.179 0.328 3.1 null 81.48 1.1673029e7 10.202 25.4 6.704 4.393 6885.829 7.1 204.299 6.89 null null 25.383 1.1 71.51 0.693
BIH Europe Bosnia and Herzegovina 2020-07-05 4962.0 0.0 146.714 191.0 0.0 1.857 1512.429 0.0 44.719 58.217 0.0 0.566 1.2 null null null null null null null null null null null null null null null null null 56.48 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BWA Africa Botswana 2020-11-20 9594.0 0.0 195.571 31.0 0.0 0.571 4079.732 0.0 83.164 13.182 0.0 0.243 0.75 null null null null null null null null null null null null null null null null null 50.93 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BRA South America Brazil 2020-02-01 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-07-19 2098389.0 23529.0 33386.857 79488.0 716.0 1055.429 9872.012 110.694 157.071 373.957 3.368 4.965 1.05 null null null null null null null null null null null null 31275.0 0.147 null null null 81.02 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-10-31 5535605.0 18947.0 22138.571 159884.0 407.0 425.857 26042.625 89.137 104.152 752.185 1.915 2.003 1.0 null null null null null null null null null null null null null null null null null 57.87 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-11-12 5781582.0 33922.0 27365.286 164281.0 913.0 453.571 27199.84 159.588 128.742 772.871 4.295 2.134 1.15 null null null null null null null null null null null null null null null null null null 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRN Asia Brunei 2020-02-12 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BRN Asia Brunei 2020-03-17 56.0 2.0 7.857 null 0.0 0.0 128.005 4.572 17.96 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 50.0 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BRN Asia Brunei 2020-11-20 148.0 0.0 0.0 3.0 0.0 0.0 338.299 0.0 0.0 6.857 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 35.19 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BGR Europe Bulgaria 2020-04-23 1097.0 73.0 42.429 52.0 3.0 2.0 157.877 10.506 6.106 7.484 0.432 0.288 1.29 37.0 5.325 270.0 38.858 null null null null null null null null 879.0 0.127 4.8e-2 20.7 null 73.15 6948445.0 65.18 44.7 20.801 13.272 18563.307 1.5 424.688 5.81 30.1 44.4 null 7.454 75.05 0.813
BFA Africa Burkina Faso 2020-01-30 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BFA Africa Burkina Faso 2020-02-18 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BFA Africa Burkina Faso 2020-11-12 2586.0 0.0 5.143 67.0 0.0 0.0 123.713 0.0 0.246 3.205 0.0 0.0 0.97 null null null null null null null null null null null null null null null null null 22.22 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BDI Africa Burundi 2020-02-20 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 1.1890781e7 423.062 17.5 2.562 1.504 702.225 71.7 293.068 6.05 null null 6.144 0.8 61.58 0.417
BDI Africa Burundi 2020-03-21 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 1.1890781e7 423.062 17.5 2.562 1.504 702.225 71.7 293.068 6.05 null null 6.144 0.8 61.58 0.417
BDI Africa Burundi 2020-08-26 430.0 0.0 1.143 1.0 0.0 0.0 36.162 0.0 9.6e-2 8.4e-2 0.0 0.0 0.73 null null null null null null null null null null null null null null null null null 11.11 1.1890781e7 423.062 17.5 2.562 1.504 702.225 71.7 293.068 6.05 null null 6.144 0.8 61.58 0.417
BDI Africa Burundi 2020-11-20 649.0 8.0 3.571 1.0 0.0 0.0 54.58 0.673 0.3 8.4e-2 0.0 0.0 0.85 null null null null null null null null null null null null null null null null null 14.81 1.1890781e7 423.062 17.5 2.562 1.504 702.225 71.7 293.068 6.05 null null 6.144 0.8 61.58 0.417
KHM Asia Cambodia 2020-02-18 1.0 0.0 0.0 null 0.0 0.0 6.0e-2 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-05-05 122.0 0.0 0.0 null 0.0 0.0 7.297 0.0 0.0 null 0.0 0.0 4.0e-2 null null null null null null null null null null null null null null null null null 57.41 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-07-04 141.0 0.0 0.0 null 0.0 0.0 8.434 0.0 0.0 null 0.0 0.0 0.23 null null null null null null null null null null null null null null null null null 40.74 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
CMR Africa Cameroon 2020-02-16 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CMR Africa Cameroon 2020-07-11 15173.0 257.0 368.714 359.0 0.0 6.571 571.577 9.681 13.89 13.524 0.0 0.248 1.02 null null null null null null null null null null null null null null null null null 60.19 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CMR Africa Cameroon 2020-07-29 17255.0 76.0 104.714 391.0 0.0 1.286 650.007 2.863 3.945 14.729 0.0 4.8e-2 1.02 null null null null null null null null null null null null null null null null null 60.19 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CAN North America Canada 2020-01-26 1.0 1.0 null null 0.0 null 2.6e-2 2.6e-2 null null 0.0 null null null null null null null null null null null null null null null null null null null 2.78 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-04-14 27035.0 1355.0 1309.0 901.0 120.0 75.143 716.308 35.901 34.683 23.873 3.179 1.991 1.3 null null null null null null null null 454983.0 17508.0 12.055 0.464 15268.0 0.405 8.6e-2 11.7 null 72.69 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-06-26 104629.0 166.0 330.714 8571.0 4.0 23.286 2772.205 4.398 8.762 227.094 0.106 0.617 0.85 null null null null null null null null 2598243.0 39880.0 68.842 1.057 36954.0 0.979 9.0e-3 111.7 null 68.98 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CPV Africa Cape Verde 2020-06-14 750.0 24.0 28.0 6.0 0.0 0.143 1348.95 43.166 50.361 10.792 0.0 0.257 1.09 null null null null null null null null null null null null null null null null null 79.17 555988.0 135.58 25.7 4.46 3.437 6222.554 null 182.219 2.42 2.1 16.5 null 2.1 72.98 0.654
CAF Africa Central African Republic 2020-09-11 4749.0 2.0 2.857 62.0 0.0 0.0 983.278 0.414 0.592 12.837 0.0 0.0 0.61 null null null null null null null null null null null null null null null null null 54.63 4829764.0 7.479 18.3 3.655 2.251 661.24 null 435.727 6.1 null null 16.603 1.0 53.28 0.367
TCD Africa Chad 2020-05-18 519.0 16.0 28.143 53.0 0.0 3.143 31.597 0.974 1.713 3.227 0.0 0.191 0.9 null null null null null null null null null null null null null null null null null 74.07 1.6425859e7 11.833 16.7 2.486 1.446 1768.153 38.4 280.995 6.1 null null 5.818 null 54.24 0.404
TCD Africa Chad 2020-05-20 565.0 20.0 27.571 57.0 1.0 2.143 34.397 1.218 1.679 3.47 6.1e-2 0.13 0.89 null null null null null null null null null null null null null null null null null 74.07 1.6425859e7 11.833 16.7 2.486 1.446 1768.153 38.4 280.995 6.1 null null 5.818 null 54.24 0.404
TCD Africa Chad 2020-07-02 868.0 2.0 0.714 74.0 0.0 0.0 52.844 0.122 4.3e-2 4.505 0.0 0.0 0.78 null null null null null null null null null null null null null null null null null 67.59 1.6425859e7 11.833 16.7 2.486 1.446 1768.153 38.4 280.995 6.1 null null 5.818 null 54.24 0.404
CHL South America Chile 2020-11-12 526438.0 1634.0 1408.0 14699.0 66.0 42.143 27538.828 85.477 73.655 768.929 3.453 2.205 0.99 null null null null null null null null 4695035.0 35708.0 245.605 1.868 34425.0 1.801 4.1e-2 24.4 null 81.94 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHN Asia China 2020-03-26 81782.0 121.0 89.429 3291.0 6.0 6.0 56.82 8.4e-2 6.2e-2 2.286 4.0e-3 4.0e-3 0.9 null null null null null null null null null null null null null null null null null 81.94 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
CHN Asia China 2020-07-04 84857.0 19.0 16.286 4641.0 0.0 0.0 58.956 1.3e-2 1.1e-2 3.224 0.0 0.0 1.05 null null null null null null null null null null null null null null null null null 78.24 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
COL South America Colombia 2020-02-07 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-04-28 5949.0 352.0 257.143 269.0 16.0 10.429 116.916 6.918 5.054 5.287 0.314 0.205 1.34 null null null null null null null null 95085.0 4186.0 1.869 8.2e-2 3818.0 7.5e-2 null null null 90.74 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-11-22 1248417.0 7924.0 7095.857 35287.0 183.0 179.429 24535.107 155.73 139.455 693.494 3.596 3.526 null null null null null null null null null 4844144.0 26969.0 95.202 0.53 27587.0 0.542 null null null 65.74 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COM Africa Comoros 2020-05-25 87.0 0.0 10.857 1.0 0.0 0.0 100.047 0.0 12.485 1.15 0.0 0.0 null null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COM Africa Comoros 2020-10-17 502.0 0.0 1.0 7.0 0.0 0.0 577.28 0.0 1.15 8.05 0.0 0.0 0.64 null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COG Africa Congo 2020-01-25 null 0.0 null null 0.0 null null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 5518092.0 15.405 19.0 3.402 2.063 4881.406 37.0 344.094 7.2 1.7 52.3 47.964 null 64.57 0.606
COG Africa Congo 2020-07-24 3038.0 187.0 57.857 51.0 1.0 0.286 550.553 33.889 10.485 9.242 0.181 5.2e-2 0.72 null null null null null null null null null null null null null null null null null 62.04 5518092.0 15.405 19.0 3.402 2.063 4881.406 37.0 344.094 7.2 1.7 52.3 47.964 null 64.57 0.606
COG Africa Congo 2020-08-31 3979.0 0.0 0.0 78.0 0.0 0.0 721.083 0.0 0.0 14.135 0.0 0.0 0.65 null null null null null null null null null null null null null null null null null 62.04 5518092.0 15.405 19.0 3.402 2.063 4881.406 37.0 344.094 7.2 1.7 52.3 47.964 null 64.57 0.606
CRI North America Costa Rica 2020-02-20 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 5094114.0 96.079 33.6 9.468 5.694 15524.995 1.3 137.973 8.78 6.4 17.4 83.841 1.13 80.28 0.794
CRI North America Costa Rica 2020-06-15 1744.0 29.0 57.429 12.0 0.0 0.143 342.356 5.693 11.274 2.356 0.0 2.8e-2 1.44 null null null null null null null null 24411.0 237.0 4.792 4.7e-2 368.0 7.2e-2 null null null 72.22 5094114.0 96.079 33.6 9.468 5.694 15524.995 1.3 137.973 8.78 6.4 17.4 83.841 1.13 80.28 0.794
CIV Africa Cote d'Ivoire 2020-07-22 14733.0 202.0 190.0 93.0 0.0 0.857 558.528 7.658 7.203 3.526 0.0 3.2e-2 0.94 null null null null null null null null 87683.0 1131.0 3.324 4.3e-2 1113.0 4.2e-2 0.171 5.9 null 60.65 2.6378275e7 76.399 18.7 2.933 1.582 3601.006 28.2 303.74 2.42 null null 19.351 null 57.78 0.492
CUB North America Cuba 2020-08-20 3565.0 83.0 55.857 88.0 0.0 -0.143 314.745 7.328 4.931 7.769 0.0 -1.3e-2 1.11 null null null null null null null null 351663.0 5224.0 31.047 0.461 4603.0 0.406 1.2e-2 82.4 null 82.41 1.1326616e7 110.408 43.1 14.738 9.719 null null 190.968 8.27 17.1 53.3 85.198 5.2 78.8 0.777
CYP Europe Cyprus 2020-07-20 1038.0 0.0 2.286 19.0 0.0 0.0 1185.068 0.0 2.61 21.692 0.0 0.0 1.32 null null null null null null null null 185489.0 1565.0 211.77 1.787 1532.0 1.749 1.0e-3 670.2 null 47.22 875899.0 127.657 37.3 13.416 8.563 32415.132 null 141.171 9.24 19.6 52.7 null 3.4 80.98 0.869
CZE Europe Czech Republic 2020-05-05 7896.0 77.0 56.0 257.0 5.0 4.286 737.325 7.19 5.229 23.999 0.467 0.4 0.78 47.0 4.389 223.0 20.824 null null null null 283273.0 9383.0 26.452 0.876 6303.0 0.589 9.0e-3 112.6 null 57.41 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
COD Africa Democratic Republic of Congo 2020-03-13 2.0 1.0 0.286 null 0.0 0.0 2.2e-2 1.1e-2 3.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
DNK Europe Denmark 2020-02-18 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null 14.0 2.0 2.0e-3 0.0 1.0 0.0 0.0 null null 0.0 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DJI Africa Djibouti 2020-09-27 5409.0 0.0 0.857 61.0 0.0 0.0 5474.685 0.0 0.868 61.741 0.0 0.0 0.82 null null null null null null null null null null null null null null null null null 50.93 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DJI Africa Djibouti 2020-10-01 5417.0 1.0 1.429 61.0 0.0 0.0 5482.782 1.012 1.446 61.741 0.0 0.0 0.82 null null null null null null null null null null null null null null null null null 47.22 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DOM North America Dominican Republic 2020-03-07 2.0 0.0 0.286 null 0.0 0.0 0.184 0.0 2.6e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
DOM North America Dominican Republic 2020-04-14 3286.0 119.0 190.0 183.0 6.0 12.143 302.916 10.97 17.515 16.87 0.553 1.119 1.37 null null null null null null null null 11741.0 1293.0 1.082 0.119 769.0 7.1e-2 0.247 4.0 null 92.59 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
DOM North America Dominican Republic 2020-10-06 115371.0 317.0 495.857 2149.0 5.0 6.857 10635.326 29.222 45.71 198.103 0.461 0.632 1.0 null null null null null null null null 502680.0 4599.0 46.339 0.424 3610.0 0.333 0.137 7.3 null 78.7 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
DOM North America Dominican Republic 2020-11-20 136784.0 601.0 604.286 2306.0 5.0 3.714 12609.256 55.402 55.705 212.576 0.461 0.342 1.18 null null null null null null null null null null null null 4378.0 0.404 0.138 7.2 null 64.81 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
EGY Africa Egypt 2020-03-22 327.0 33.0 31.0 14.0 4.0 1.714 3.195 0.322 0.303 0.137 3.9e-2 1.7e-2 1.47 null null null null null null null null null null null null null null null null null 40.74 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-04-14 2350.0 160.0 128.571 178.0 14.0 12.0 22.964 1.564 1.256 1.739 0.137 0.117 1.36 null null null null null null null null null null null null null null null null null 84.26 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
SLV North America El Salvador 2020-12-03 39130.0 0.0 178.0 1134.0 5.0 5.143 6032.807 0.0 27.443 174.833 0.771 0.793 null null null null null null null null null null null null null null null null null null null 6486201.0 307.811 27.6 8.273 5.417 7292.458 2.2 167.295 8.87 2.5 18.8 90.65 1.3 73.32 0.674
GNQ Africa Equatorial Guinea 2020-05-15 594.0 11.0 22.143 7.0 0.0 0.429 423.383 7.84 15.783 4.989 0.0 0.305 0.82 null null null null null null null null null null null null null null null null null null 1402985.0 45.194 22.4 2.846 1.752 22604.873 null 202.812 7.78 null null 24.64 2.1 58.74 0.591
EST Europe Estonia 2020-04-22 1559.0 7.0 22.714 44.0 1.0 1.286 1175.239 5.277 17.123 33.169 0.754 0.969 0.72 12.0 9.046 110.0 82.923 null null null null 48443.0 1732.0 36.518 1.306 1461.0 1.101 1.6e-2 64.3 null 77.78 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
EST Europe Estonia 2020-07-10 2013.0 2.0 3.143 69.0 0.0 0.0 1517.483 1.508 2.369 52.015 0.0 0.0 0.94 2.0 1.508 4.0 3.015 null null null null 129910.0 422.0 97.932 0.318 556.0 0.419 6.0e-3 176.9 null 25.93 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
EST Europe Estonia 2020-09-14 2698.0 22.0 23.714 64.0 0.0 0.0 2033.864 16.585 17.877 48.246 0.0 0.0 1.25 1.0 0.754 19.0 14.323 null null null null 208696.0 3059.0 157.324 2.306 2476.0 1.867 1.0e-2 104.4 null 25.93 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
TLS Asia Timor 2020-04-09 1.0 0.0 0.0 null 0.0 0.0 0.758 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 75.0 1318442.0 87.176 18.0 3.556 1.897 6570.102 30.3 335.346 6.86 6.3 78.1 28.178 5.9 69.5 0.625
TLS Asia Timor 2020-05-12 24.0 0.0 0.0 null 0.0 0.0 18.203 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 66.67 1318442.0 87.176 18.0 3.556 1.897 6570.102 30.3 335.346 6.86 6.3 78.1 28.178 5.9 69.5 0.625
TGO Africa Togo 2020-04-03 40.0 1.0 2.143 3.0 1.0 0.286 4.832 0.121 0.259 0.362 0.121 3.5e-2 null null null null null null null null null 1018.0 294.0 0.123 3.6e-2 100.0 1.2e-2 2.1e-2 46.7 null 73.15 8278737.0 143.366 19.4 2.839 1.525 1429.813 49.2 280.033 6.15 0.9 14.2 10.475 0.7 61.04 0.503
TTO North America Trinidad and Tobago 2020-03-18 7.0 2.0 1.0 null 0.0 0.0 5.002 1.429 0.715 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 49.07 1399491.0 266.886 36.2 10.014 5.819 28763.071 null 228.467 10.97 null null 89.443 3.0 73.51 0.784
TUN Africa Tunisia 2020-03-21 60.0 6.0 6.0 1.0 0.0 0.143 5.077 0.508 0.508 8.5e-2 0.0 1.2e-2 null null null null null null null null null 955.0 135.0 8.1e-2 1.1e-2 85.0 7.0e-3 7.1e-2 14.2 null 77.78 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUN Africa Tunisia 2020-05-11 1032.0 0.0 2.0 45.0 0.0 0.286 87.32 0.0 0.169 3.808 0.0 2.4e-2 0.59 null null null null null null null null 34323.0 443.0 2.904 3.7e-2 1253.0 0.106 2.0e-3 626.5 null 87.04 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUN Africa Tunisia 2020-05-31 1077.0 1.0 3.714 48.0 0.0 0.0 91.127 8.5e-2 0.314 4.061 0.0 0.0 0.69 null null null null null null null null 53161.0 287.0 4.498 2.4e-2 578.0 4.9e-2 6.0e-3 155.6 null 79.63 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUR Asia Turkey 2020-06-14 178239.0 1562.0 1158.143 4807.0 15.0 16.429 2113.362 18.52 13.732 56.996 0.178 0.195 1.44 null null null null null null null null 2632171.0 45176.0 31.209 0.536 41940.0 0.497 2.8e-2 36.2 null 63.89 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
TUR Asia Turkey 2020-07-20 220572.0 931.0 938.714 5508.0 17.0 18.0 2615.3 11.039 11.13 65.308 0.202 0.213 0.93 null null null null null null null null 4316781.0 43404.0 51.184 0.515 42119.0 0.499 2.2e-2 44.9 null 63.89 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
TUR Asia Turkey 2020-09-06 279806.0 1578.0 1608.571 6673.0 53.0 49.571 3317.632 18.71 19.073 79.121 0.628 0.588 1.05 null null null null null null null null 7779539.0 96842.0 92.241 1.148 107307.0 1.272 1.5e-2 66.7 null 47.22 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
UGA Africa Uganda 2020-07-02 902.0 9.0 11.571 null 0.0 0.0 19.72 0.197 0.253 null 0.0 0.0 0.95 null null null null null null null null 200179.0 3349.0 4.376 7.3e-2 null null null null null 87.04 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-11-28 19944.0 356.0 325.286 201.0 4.0 4.714 436.02 7.783 7.111 4.394 8.7e-2 0.103 null null null null null null null null null 623977.0 823.0 13.642 1.8e-2 2101.0 4.6e-2 0.155 6.5 null null 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UKR Europe Ukraine 2020-02-01 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
GBR Europe United Kingdom 2020-10-10 593565.0 15175.0 15844.429 42850.0 81.0 63.286 8743.555 223.537 233.398 631.205 1.193 0.932 1.22 470.0 6.923 4194.0 61.78 null null null null 2.3471856e7 256190.0 345.754 3.774 251482.0 3.704 6.3e-2 15.9 null 67.59 6.7886004e7 272.898 40.8 18.517 12.527 39753.244 0.2 122.137 4.28 20.0 24.7 null 2.54 81.32 0.922
USA North America United States 2020-03-22 34855.0 8830.0 4520.429 574.0 110.0 72.0 105.301 26.677 13.657 1.734 0.332 0.218 3.1 null null 2173.0 6.565 0.0 0.0 2989.0 9.03 459727.0 72176.0 1.389 0.218 56551.0 0.171 null null null 72.69 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
USA North America United States 2020-05-25 1666505.0 18347.0 21812.714 101521.0 557.0 1115.286 5034.718 55.429 65.899 306.708 1.683 3.369 0.93 8467.0 25.58 37382.0 112.936 null null null null 1.6179748e7 335387.0 48.881 1.013 413773.0 1.25 null null null 72.69 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
USA North America United States 2020-10-04 7402515.0 36092.0 42957.571 210006.0 349.0 711.714 22363.915 109.038 129.78 634.454 1.054 2.15 1.05 5974.0 18.048 29945.0 90.468 679.0 2.051 9423.0 28.468 1.20830414e8 626288.0 365.044 1.892 951162.0 2.874 null null null 62.5 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
URY South America Uruguay 2020-09-15 1827.0 15.0 16.429 45.0 0.0 0.0 525.948 4.318 4.729 12.954 0.0 0.0 1.11 null null null null null null null null 203232.0 1797.0 58.505 0.517 2085.0 0.6 8.0e-3 126.9 null 32.41 3473727.0 19.751 35.6 14.655 10.361 20551.409 0.1 160.708 6.93 14.0 19.9 null 2.8 77.91 0.804
URY South America Uruguay 2020-09-24 1959.0 13.0 11.857 47.0 0.0 0.143 563.948 3.742 3.413 13.53 0.0 4.1e-2 1.12 null null null null null null null null 224322.0 3009.0 64.577 0.866 2290.0 0.659 5.0e-3 193.1 null 43.52 3473727.0 19.751 35.6 14.655 10.361 20551.409 0.1 160.708 6.93 14.0 19.9 null 2.8 77.91 0.804
UZB Asia Uzbekistan 2020-05-24 3164.0 49.0 58.714 13.0 0.0 0.143 94.535 1.464 1.754 0.388 0.0 4.0e-3 1.17 null null null null null null null null null null null null null null null null null 86.11 3.3469199e7 76.134 28.2 4.469 2.873 6253.104 null 724.417 7.57 1.3 24.7 null 4.0 71.72 0.71
VUT Oceania Vanuatu 2020-06-08 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 66.67 307150.0 22.662 23.1 4.394 2.62 2921.909 13.2 546.3 12.02 2.8 34.5 25.209 null 70.47 0.603
VUT Oceania Vanuatu 2020-10-23 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 22.22 307150.0 22.662 23.1 4.394 2.62 2921.909 13.2 546.3 12.02 2.8 34.5 25.209 null 70.47 0.603
VAT Europe Vatican 2020-02-07 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 809.0 null null null null null null null null null null null null 75.12 null
VAT Europe Vatican 2020-09-13 12.0 0.0 0.0 null 0.0 0.0 14833.127 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 809.0 null null null null null null null null null null null null 75.12 null
VAT Europe Vatican 2020-10-23 27.0 0.0 0.143 null 0.0 0.0 33374.536 0.0 176.585 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 809.0 null null null null null null null null null null null null 75.12 null
VEN South America Venezuela 2020-05-04 357.0 0.0 4.0 10.0 0.0 0.0 12.555 0.0 0.141 0.352 0.0 0.0 1.18 null null null null null null null null null null null null null null null null null 82.41 2.8435943e7 36.253 29.0 6.614 3.915 16745.022 null 204.85 6.47 null null null 0.8 72.06 0.761
VEN South America Venezuela 2020-07-05 7169.0 419.0 267.429 65.0 3.0 3.0 252.111 14.735 9.405 2.286 0.106 0.106 1.29 null null null null null null null null null null null null null null null null null 87.04 2.8435943e7 36.253 29.0 6.614 3.915 16745.022 null 204.85 6.47 null null null 0.8 72.06 0.761
VNM Asia Vietnam 2020-03-31 212.0 9.0 11.143 null 0.0 0.0 2.178 9.2e-2 0.114 null 0.0 0.0 0.66 null null null null null null null null null null null null 4476.0 4.6e-2 2.0e-3 401.7 null 83.33 9.7338583e7 308.127 32.6 7.15 4.718 6171.884 2.0 245.465 6.0 1.0 45.9 85.847 2.6 75.4 0.694
VNM Asia Vietnam 2020-06-10 332.0 0.0 0.571 null 0.0 0.0 3.411 0.0 6.0e-3 null 0.0 0.0 0.79 null null null null null null null null null null null null null null null null null 65.74 9.7338583e7 308.127 32.6 7.15 4.718 6171.884 2.0 245.465 6.0 1.0 45.9 85.847 2.6 75.4 0.694
ESH Africa Western Sahara 2020-04-24 6.0 0.0 0.0 null 0.0 0.0 10.045 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 597330.0 null 28.4 null 1.38 null null null null null null null null 70.26 null
ESH Africa Western Sahara 2020-05-10 6.0 0.0 0.0 null 0.0 0.0 10.045 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 597330.0 null 28.4 null 1.38 null null null null null null null null 70.26 null
OWID_WRL null World 2020-04-06 1342655.0 73233.0 77646.857 79519.0 5946.0 5697.571 172.25 9.395 9.961 10.202 0.763 0.731 1.25 null null null null null null null null null null null null null null null null null null 7.794798729e9 58.045 30.9 8.696 5.355 15469.207 10.0 233.07 8.51 6.434 34.635 60.13 2.705 72.58 null
OWID_WRL null World 2020-05-13 4351182.0 84840.0 83759.286 300046.0 5077.0 4674.286 558.216 10.884 10.746 38.493 0.651 0.6 1.05 null null null null null null null null null null null null null null null null null null 7.794798729e9 58.045 30.9 8.696 5.355 15469.207 10.0 233.07 8.51 6.434 34.635 60.13 2.705 72.58 null
OWID_WRL null World 2020-09-06 2.7123898e7 223342.0 270152.286 883806.0 3784.0 5300.143 3479.743 28.653 34.658 113.384 0.485 0.68 1.0 null null null null null null null null null null null null null null null null null null 7.794798729e9 58.045 30.9 8.696 5.355 15469.207 10.0 233.07 8.51 6.434 34.635 60.13 2.705 72.58 null
ZMB Africa Zambia 2020-03-11 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 16.67 1.8383956e7 22.995 17.7 2.48 1.542 3689.251 57.5 234.499 3.94 3.1 24.7 13.938 2.0 63.89 0.588
ZWE Africa Zimbabwe 2020-08-17 5308.0 47.0 80.0 135.0 3.0 4.429 357.13 3.162 5.383 9.083 0.202 0.298 1.05 null null null null null null null null 83782.0 898.0 5.637 6.0e-2 1337.0 9.0e-2 6.0e-2 16.7 null 80.56 1.4862927e7 42.729 19.6 2.822 1.882 1899.775 21.4 307.846 1.82 1.6 30.7 36.791 1.7 61.49 0.535
ZWE Africa Zimbabwe 2020-11-12 8696.0 29.0 36.0 255.0 0.0 1.0 585.08 1.951 2.422 17.157 0.0 6.7e-2 1.21 null null null null null null null null 150616.0 1086.0 10.134 7.3e-2 796.0 5.4e-2 4.5e-2 22.1 null 67.59 1.4862927e7 42.729 19.6 2.822 1.882 1899.775 21.4 307.846 1.82 1.6 30.7 36.791 1.7 61.49 0.535
MNG Asia Mongolia 2020-06-21 213.0 7.0 2.286 null 0.0 0.0 64.973 2.135 0.697 null 0.0 0.0 0.87 null null null null null null null null null null null null null null null null null 71.3 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
MNG Asia Mongolia 2020-11-10 382.0 14.0 4.286 null 0.0 0.0 116.524 4.271 1.307 null 0.0 0.0 1.47 null null null null null null null null null null null null null null null null null 35.19 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
MNE Europe Montenegro 2020-02-20 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MAR Africa Morocco 2020-05-15 6652.0 45.0 134.429 190.0 0.0 0.571 180.219 1.219 3.642 5.148 0.0 1.5e-2 0.82 null null null null null null null null 81616.0 3694.0 2.211 0.1 3106.0 8.4e-2 4.3e-2 23.1 null 93.52 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MAR Africa Morocco 2020-08-01 25015.0 693.0 767.143 367.0 14.0 8.857 677.719 18.775 20.784 9.943 0.379 0.24 1.42 null null null null null null null null 1273939.0 21574.0 34.514 0.584 21104.0 0.572 3.6e-2 27.5 null 64.81 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MOZ Africa Mozambique 2020-09-16 5994.0 281.0 175.714 39.0 2.0 1.571 191.775 8.99 5.622 1.248 6.4e-2 5.0e-2 1.12 null null null null null null null null 118657.0 1628.0 3.796 5.2e-2 1557.0 5.0e-2 0.113 8.9 null 62.04 3.1255435e7 37.728 17.7 3.158 1.87 1136.103 62.9 329.942 3.3 5.1 29.1 12.227 0.7 60.85 0.437
MOZ Africa Mozambique 2020-10-04 9196.0 147.0 173.286 66.0 2.0 1.143 294.221 4.703 5.544 2.112 6.4e-2 3.7e-2 1.1 null null null null null null null null 144618.0 1337.0 4.627 4.3e-2 1515.0 4.8e-2 0.114 8.7 null 62.04 3.1255435e7 37.728 17.7 3.158 1.87 1136.103 62.9 329.942 3.3 5.1 29.1 12.227 0.7 60.85 0.437
MMR Asia Myanmar 2020-06-27 296.0 3.0 1.286 6.0 0.0 0.0 5.44 5.5e-2 2.4e-2 0.11 0.0 0.0 0.78 null null null null null null null null 73218.0 1526.0 1.346 2.8e-2 1593.0 2.9e-2 1.0e-3 1238.7 null 80.56 5.4409794e7 81.721 29.1 5.732 3.12 5591.597 6.4 202.104 4.61 6.3 35.2 79.287 0.9 67.13 0.578
NAM Africa Namibia 2020-03-21 3.0 0.0 0.143 null 0.0 0.0 1.181 0.0 5.6e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 50.0 2540916.0 3.078 22.0 3.552 2.085 9541.808 13.4 243.811 3.94 9.7 34.2 44.6 null 63.71 0.647
NAM Africa Namibia 2020-08-08 2802.0 0.0 82.571 16.0 0.0 0.714 1102.752 0.0 32.497 6.297 0.0 0.281 1.23 null null null null null null null null null null null null 976.0 0.384 8.5e-2 11.8 null 48.61 2540916.0 3.078 22.0 3.552 2.085 9541.808 13.4 243.811 3.94 9.7 34.2 44.6 null 63.71 0.647
NAM Africa Namibia 2020-10-21 12406.0 39.0 48.143 133.0 1.0 0.429 4882.491 15.349 18.947 52.343 0.394 0.169 0.91 null null null null null null null null 118462.0 703.0 46.622 0.277 859.0 0.338 5.6e-2 17.8 null 34.26 2540916.0 3.078 22.0 3.552 2.085 9541.808 13.4 243.811 3.94 9.7 34.2 44.6 null 63.71 0.647
NPL Asia Nepal 2020-07-23 18241.0 147.0 128.143 43.0 1.0 0.571 626.047 5.045 4.398 1.476 3.4e-2 2.0e-2 0.98 null null null null null null null null 331095.0 3481.0 11.363 0.119 3898.0 0.134 3.3e-2 30.4 null 74.07 2.9136808e7 204.43 25.0 5.809 3.212 2442.804 15.0 260.797 7.26 9.5 37.8 47.782 0.3 70.78 0.574
NLD Europe Netherlands 2020-06-01 46749.0 104.0 157.429 5981.0 6.0 18.857 2728.296 6.069 9.188 349.054 0.35 1.101 0.87 151.0 8.812 null null null null null null null null null null 5351.0 0.312 2.9e-2 34.0 null 62.96 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-06-19 49634.0 107.0 138.0 6100.0 3.0 4.0 2896.666 6.245 8.054 355.999 0.175 0.233 0.75 73.0 4.26 null null null null null null null null null null 9291.0 0.542 1.5e-2 67.3 null 59.26 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-07-05 50834.0 73.0 68.429 6146.0 1.0 3.143 2966.698 4.26 3.994 358.684 5.8e-2 0.183 0.83 36.0 2.101 null null 4.957 0.289 8.923 0.521 685145.0 null 39.985 null 9951.0 0.581 7.0e-3 145.4 null 39.81 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-11-30 531930.0 4594.0 4918.429 9453.0 27.0 61.714 31043.708 268.108 287.042 551.682 1.576 3.602 null null null null null null null null null null null null null null null null null null 56.48 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NZL Oceania New Zealand 2020-04-14 1366.0 17.0 29.429 9.0 4.0 1.143 283.271 3.525 6.103 1.866 0.829 0.237 0.55 null null null null null null null null 67480.0 3123.0 13.994 0.648 2423.0 0.502 1.2e-2 82.3 null 96.3 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NZL Oceania New Zealand 2020-06-02 1504.0 0.0 0.0 22.0 0.0 0.143 311.889 0.0 0.0 4.562 0.0 3.0e-2 0.1 null null null null null null null null 278212.0 1149.0 57.694 0.238 1673.0 0.347 0.0 null null 37.04 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NZL Oceania New Zealand 2020-08-15 1622.0 13.0 7.571 22.0 0.0 0.0 336.359 2.696 1.57 4.562 0.0 0.0 1.43 null null null null null null null null 566096.0 23991.0 117.393 4.975 11027.0 2.287 1.0e-3 1456.5 null 68.98 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NIC North America Nicaragua 2020-03-14 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 6624554.0 51.667 27.3 5.445 3.519 5321.444 3.2 137.016 11.47 null null null 0.9 74.48 0.658
NGA Africa Nigeria 2020-02-23 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 2.06139587e8 209.588 18.1 2.751 1.447 5338.454 null 181.013 2.42 0.6 10.8 41.949 null 54.69 0.532
NGA Africa Nigeria 2020-05-03 2558.0 170.0 183.571 87.0 2.0 6.714 12.409 0.825 0.891 0.422 1.0e-2 3.3e-2 1.5 null null null null null null null null 16588.0 null 8.0e-2 null 758.0 4.0e-3 0.242 4.1 null 85.65 2.06139587e8 209.588 18.1 2.751 1.447 5338.454 null 181.013 2.42 0.6 10.8 41.949 null 54.69 0.532
NGA Africa Nigeria 2020-06-29 25133.0 566.0 602.0 573.0 8.0 6.857 121.922 2.746 2.92 2.78 3.9e-2 3.3e-2 1.06 null null null null null null null null 132304.0 2140.0 0.642 1.0e-2 2363.0 1.1e-2 0.255 3.9 null 80.09 2.06139587e8 209.588 18.1 2.751 1.447 5338.454 null 181.013 2.42 0.6 10.8 41.949 null 54.69 0.532
NOR Europe Norway 2020-01-30 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
NOR Europe Norway 2020-06-07 8547.0 16.0 15.286 238.0 0.0 0.286 1576.576 2.951 2.82 43.901 0.0 5.3e-2 0.96 null null 21.0 3.874 null null null null 266925.0 933.0 49.237 0.172 2206.0 0.407 7.0e-3 144.3 null 39.81 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
NOR Europe Norway 2020-06-17 8692.0 32.0 14.0 243.0 1.0 0.571 1603.323 5.903 2.582 44.824 0.184 0.105 1.05 null null 18.0 3.32 null null null null 311041.0 4980.0 57.374 0.919 4021.0 0.742 3.0e-3 287.2 null 37.04 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
NOR Europe Norway 2020-10-19 16603.0 146.0 137.714 278.0 0.0 0.286 3062.582 26.931 25.403 51.28 0.0 5.3e-2 1.24 null null 28.0 5.165 null null null null 1514984.0 20733.0 279.453 3.824 13044.0 2.406 1.1e-2 94.7 null 28.7 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
OMN Asia Oman 2020-04-27 2049.0 51.0 91.286 10.0 0.0 0.429 401.244 9.987 17.876 1.958 0.0 8.4e-2 1.26 null null null null null null null null null null null null null null null null null 92.59 5106622.0 14.98 30.7 2.355 1.53 37960.709 null 266.342 12.61 0.5 15.6 97.4 1.6 77.86 0.821
OMN Asia Oman 2020-08-24 84509.0 740.0 183.286 637.0 28.0 7.0 16548.905 144.91 35.892 124.74 5.483 1.371 1.05 null null null null null null null null null null null null null null null null null 86.11 5106622.0 14.98 30.7 2.355 1.53 37960.709 null 266.342 12.61 0.5 15.6 97.4 1.6 77.86 0.821
PAK Asia Pakistan 2020-04-28 15525.0 913.0 778.429 343.0 31.0 18.714 70.283 4.133 3.524 1.553 0.14 8.5e-2 1.4 null null null null null null null null 157223.0 6467.0 0.712 2.9e-2 6488.0 2.9e-2 0.12 8.3 null 89.81 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PSE Asia Palestine 2020-01-27 null 0.0 null null 0.0 null null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 5101416.0 778.202 20.4 3.043 1.726 4449.898 1.0 265.91 10.59 null null null null 74.05 0.686
PAN North America Panama 2020-04-07 2100.0 112.0 131.286 55.0 1.0 3.571 486.701 25.957 30.427 12.747 0.232 0.828 1.46 null null null null null null null null 10681.0 384.0 2.475 8.9e-2 534.0 0.124 0.246 4.1 null 90.74 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PAN North America Panama 2020-04-27 6021.0 242.0 222.0 167.0 2.0 5.857 1395.44 56.086 51.451 38.704 0.464 1.357 1.1 null null null null null null null null 27221.0 1098.0 6.309 0.254 934.0 0.216 0.238 4.2 null 93.52 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PNG Oceania Papua New Guinea 2020-05-29 8.0 0.0 0.0 null 0.0 0.0 0.894 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 52.31 8947027.0 18.22 22.6 3.808 2.142 3823.194 null 561.494 17.65 23.5 48.8 null null 64.5 0.544
PRY South America Paraguay 2020-05-12 737.0 13.0 43.714 10.0 0.0 0.0 103.329 1.823 6.129 1.402 0.0 0.0 1.15 null null null null null null null null 16917.0 762.0 2.372 0.107 715.0 0.1 6.1e-2 16.4 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PRY South America Paraguay 2020-09-27 38684.0 762.0 737.714 803.0 21.0 20.571 5423.601 106.834 103.43 112.583 2.944 2.884 1.08 null null null null null null null null 269710.0 2648.0 37.814 0.371 2690.0 0.377 0.274 3.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PER South America Peru 2020-05-22 111698.0 2929.0 3886.143 3244.0 96.0 121.714 3387.678 88.833 117.862 98.387 2.912 3.691 1.22 null null null null null null null null 135586.0 5230.0 4.112 0.159 3878.0 0.118 null null null 92.59 3.2971846e7 25.129 29.1 7.151 4.455 12236.706 3.5 85.755 5.95 4.8 null null 1.6 76.74 0.75
PER South America Peru 2020-09-02 657129.0 5092.0 7106.714 29068.0 124.0 152.429 19930.003 154.435 215.539 881.601 3.761 4.623 0.99 null null null null null null null null 680150.0 7875.0 20.628 0.239 7053.0 0.214 null null null 85.19 3.2971846e7 25.129 29.1 7.151 4.455 12236.706 3.5 85.755 5.95 4.8 null null 1.6 76.74 0.75
PER South America Peru 2020-09-09 696190.0 4615.0 5580.143 30123.0 147.0 150.714 21114.681 139.968 169.24 913.598 4.458 4.571 0.96 null null null null null null null null 728802.0 8243.0 22.104 0.25 6950.0 0.211 null null null 85.19 3.2971846e7 25.129 29.1 7.151 4.455 12236.706 3.5 85.755 5.95 4.8 null null 1.6 76.74 0.75
PER South America Peru 2020-09-22 768895.0 0.0 5005.0 31369.0 0.0 79.571 23319.744 0.0 151.796 951.387 0.0 2.413 0.94 null null null null null null null null 813013.0 7704.0 24.658 0.234 6558.0 0.199 null null null 85.19 3.2971846e7 25.129 29.1 7.151 4.455 12236.706 3.5 85.755 5.95 4.8 null null 1.6 76.74 0.75
PHL Asia Philippines 2020-02-01 1.0 0.0 0.143 null 0.0 0.0 9.0e-3 0.0 1.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 1.09581085e8 351.873 25.2 4.803 2.661 7599.188 null 370.437 7.07 7.8 40.8 78.463 1.0 71.23 0.699
PHL Asia Philippines 2020-05-25 14319.0 284.0 228.714 873.0 5.0 6.0 130.67 2.592 2.087 7.967 4.6e-2 5.5e-2 1.31 null null null null null null null null 285929.0 5421.0 2.609 4.9e-2 7459.0 6.8e-2 3.1e-2 32.6 null 96.3 1.09581085e8 351.873 25.2 4.803 2.661 7599.188 null 370.437 7.07 7.8 40.8 78.463 1.0 71.23 0.699
POL Europe Poland 2020-04-07 4848.0 435.0 362.429 129.0 22.0 13.714 128.096 11.494 9.576 3.408 0.581 0.362 1.4 null null null null null null null null null null null null null null null null null 81.48 3.7846605e7 124.027 41.8 16.763 10.202 27216.445 null 227.331 5.91 23.3 33.1 null 6.62 78.73 0.865
POL Europe Poland 2020-04-16 7918.0 336.0 334.714 314.0 28.0 20.0 209.213 8.878 8.844 8.297 0.74 0.528 1.11 null null 2607.0 68.883 null null null null null null null null null null null null null 83.33 3.7846605e7 124.027 41.8 16.763 10.202 27216.445 null 227.331 5.91 23.3 33.1 null 6.62 78.73 0.865
POL Europe Poland 2020-07-22 41162.0 380.0 348.714 1642.0 6.0 6.857 1087.601 10.041 9.214 43.386 0.159 0.181 1.19 null null 1644.0 43.439 null null null null 1761265.0 19656.0 46.537 0.519 17054.0 0.451 2.0e-2 48.9 null 39.81 3.7846605e7 124.027 41.8 16.763 10.202 27216.445 null 227.331 5.91 23.3 33.1 null 6.62 78.73 0.865
POL Europe Poland 2020-10-09 116338.0 4739.0 2937.857 2919.0 52.0 49.857 3073.935 125.216 77.625 77.127 1.374 1.317 1.69 null null 4407.0 116.444 null null null null 3455011.0 31036.0 91.29 0.82 28845.0 0.762 0.102 9.8 null 23.15 3.7846605e7 124.027 41.8 16.763 10.202 27216.445 null 227.331 5.91 23.3 33.1 null 6.62 78.73 0.865
PRT Europe Portugal 2020-04-03 9886.0 852.0 802.571 246.0 37.0 24.286 969.529 83.556 78.709 24.125 3.629 2.382 1.44 245.0 24.027 1058.0 103.759 null null null null 107234.0 9438.0 10.517 0.926 7878.0 0.773 0.102 9.8 null 82.41 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
PRT Europe Portugal 2020-10-01 76396.0 854.0 748.571 1977.0 6.0 6.571 7492.223 83.753 73.413 193.886 0.588 0.644 1.18 107.0 10.494 682.0 66.884 null null null null 2675452.0 24530.0 262.384 2.406 21504.0 2.109 3.5e-2 28.7 null 58.8 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
QAT Asia Qatar 2020-11-19 136649.0 208.0 216.714 235.0 0.0 0.143 47430.113 72.196 75.22 81.567 0.0 5.0e-2 1.0 null null null null null null null null 1067758.0 4703.0 370.613 1.632 4545.0 1.578 4.8e-2 21.0 null 64.81 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
ROU Europe Romania 2020-02-19 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
ROU Europe Romania 2020-08-26 81646.0 1256.0 1147.0 3421.0 54.0 45.0 4244.066 65.289 59.623 177.828 2.807 2.339 1.01 502.0 26.095 null null null null null null 1705368.0 25754.0 88.647 1.339 19819.0 1.03 5.8e-2 17.3 null 42.59 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
ROU Europe Romania 2020-10-11 155283.0 2880.0 2769.0 5411.0 53.0 58.286 8071.814 149.706 143.936 281.271 2.755 3.03 1.29 628.0 32.644 null null null null 18152.199 943.575 2672537.0 15709.0 138.922 0.817 23190.0 1.205 0.119 8.4 null 44.44 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
ROU Europe Romania 2020-10-31 241339.0 5753.0 5078.0 6968.0 101.0 92.857 12545.118 299.049 263.961 362.206 5.25 4.827 1.26 923.0 47.979 null null null null null null 3242748.0 36181.0 168.562 1.881 30479.0 1.584 0.167 6.0 null 54.63 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
RUS Europe Russia 2020-02-29 2.0 0.0 0.0 null 0.0 0.0 1.4e-2 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816
RWA Africa Rwanda 2020-04-04 102.0 13.0 6.0 null 0.0 0.0 7.875 1.004 0.463 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 90.74 1.2952209e7 494.869 20.3 2.974 1.642 1854.211 56.0 191.375 4.28 4.7 21.0 4.617 null 69.02 0.524
RWA Africa Rwanda 2020-11-12 5319.0 7.0 18.143 41.0 0.0 0.714 410.664 0.54 1.401 3.165 0.0 5.5e-2 1.43 null null null null null null null null null null null null 2056.0 0.159 9.0e-3 113.3 null 58.33 1.2952209e7 494.869 20.3 2.974 1.642 1854.211 56.0 191.375 4.28 4.7 21.0 4.617 null 69.02 0.524
KNA North America Saint Kitts and Nevis 2020-03-27 2.0 0.0 0.286 null 0.0 0.0 37.6 0.0 5.371 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 53192.0 212.865 null null null 24654.385 null null 12.84 null null null 2.3 76.23 0.778
KNA North America Saint Kitts and Nevis 2020-10-25 19.0 0.0 0.0 null 0.0 0.0 357.197 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 53192.0 212.865 null null null 24654.385 null null 12.84 null null null 2.3 76.23 0.778
LCA North America Saint Lucia 2020-02-01 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 183629.0 293.187 34.9 9.721 6.405 12951.839 null 204.62 11.62 null null 87.202 1.3 76.2 0.747
LCA North America Saint Lucia 2020-04-26 15.0 0.0 0.0 null 0.0 0.0 81.686 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 183629.0 293.187 34.9 9.721 6.405 12951.839 null 204.62 11.62 null null 87.202 1.3 76.2 0.747
LCA North America Saint Lucia 2020-09-27 27.0 0.0 0.0 null 0.0 0.0 147.036 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 183629.0 293.187 34.9 9.721 6.405 12951.839 null 204.62 11.62 null null 87.202 1.3 76.2 0.747
LCA North America Saint Lucia 2020-10-04 27.0 0.0 0.0 null 0.0 0.0 147.036 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 183629.0 293.187 34.9 9.721 6.405 12951.839 null 204.62 11.62 null null 87.202 1.3 76.2 0.747
VCT North America Saint Vincent and the Grenadines 2020-02-24 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
VCT North America Saint Vincent and the Grenadines 2020-09-13 64.0 0.0 0.429 null 0.0 0.0 576.852 0.0 3.863 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
VCT North America Saint Vincent and the Grenadines 2020-09-14 64.0 0.0 0.286 null 0.0 0.0 576.852 0.0 2.575 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
STP Africa Sao Tome and Principe 2020-06-26 712.0 1.0 2.714 13.0 0.0 0.143 3248.753 4.563 12.385 59.317 0.0 0.652 0.53 null null null null null null null null null null null null null null null null null null 219161.0 212.841 18.7 2.886 2.162 3052.714 32.3 270.113 2.42 null null 41.34 2.9 70.39 0.589
SEN Africa Senegal 2020-09-12 14237.0 44.0 41.286 295.0 2.0 0.714 850.278 2.628 2.466 17.618 0.119 4.3e-2 0.88 null null null null null null null null 165792.0 1093.0 9.902 6.5e-2 1091.0 6.5e-2 3.8e-2 26.4 null 37.96 1.674393e7 82.328 18.7 3.008 1.796 2470.58 38.0 241.219 2.42 0.4 16.6 20.859 null 67.94 0.505
SRB Europe Serbia 2020-05-18 10699.0 89.0 74.714 231.0 1.0 1.857 1572.32 13.079 10.98 33.948 0.147 0.273 0.77 null null null null null null null null 185385.0 4113.0 27.244 0.604 5683.0 0.835 1.3e-2 76.1 null 51.85 6804596.0 80.291 41.2 17.366 null 14048.881 null 439.415 10.08 37.7 40.2 97.719 5.609 76.0 0.787
SRB Europe Serbia 2020-10-02 33735.0 73.0 71.0 751.0 1.0 0.714 4957.679 10.728 10.434 110.367 0.147 0.105 1.17 null null null null null null null null 1147039.0 6661.0 168.568 0.979 5799.0 0.852 1.2e-2 81.7 null 54.63 6804596.0 80.291 41.2 17.366 null 14048.881 null 439.415 10.08 37.7 40.2 97.719 5.609 76.0 0.787
SYC Africa Seychelles 2020-09-16 140.0 0.0 0.429 null 0.0 0.0 1423.632 0.0 4.358 null 0.0 0.0 0.3 null null null null null null null null null null null null null null null null null 34.26 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SLE Africa Sierra Leone 2020-04-10 8.0 1.0 0.857 null 0.0 0.0 1.003 0.125 0.107 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 75.93 7976985.0 104.7 19.1 2.538 1.285 1390.3 52.2 325.721 2.42 8.8 41.3 19.275 null 54.7 0.419
SLE Africa Sierra Leone 2020-07-07 1572.0 25.0 15.714 63.0 1.0 0.429 197.067 3.134 1.97 7.898 0.125 5.4e-2 0.97 null null null null null null null null null null null null null null null null null 46.3 7976985.0 104.7 19.1 2.538 1.285 1390.3 52.2 325.721 2.42 8.8 41.3 19.275 null 54.7 0.419
SGP Asia Singapore 2020-09-21 57606.0 30.0 21.714 27.0 0.0 0.0 9846.602 5.128 3.712 4.615 0.0 0.0 0.61 null null null null null null null null 2692047.0 null 460.152 null 31585.0 5.399 1.0e-3 1454.6 null 51.85 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SGP Asia Singapore 2020-10-15 57892.0 3.0 6.143 28.0 0.0 0.143 9895.488 0.513 1.05 4.786 0.0 2.4e-2 0.63 null null null null null null null null null null null null 29788.0 5.092 0.0 4849.1 null 52.78 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SGP Asia Singapore 2020-10-23 57951.0 10.0 7.143 28.0 0.0 0.0 9905.573 1.709 1.221 4.786 0.0 0.0 1.07 null null null null null null null null null null null null 27814.0 4.754 0.0 3893.9 null 52.78 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SVK Europe Slovakia 2020-06-16 1552.0 0.0 3.0 28.0 0.0 0.0 284.268 0.0 0.549 5.129 0.0 0.0 1.29 null null 0.0 0.0 null null null null 198780.0 1163.0 36.409 0.213 973.0 0.178 3.0e-3 324.3 null 40.74 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVK Europe Slovakia 2020-08-13 2739.0 49.0 37.0 31.0 0.0 0.286 501.681 8.975 6.777 5.678 0.0 5.2e-2 1.31 null null 33.0 6.044 null null null null 289590.0 2738.0 53.042 0.501 2114.0 0.387 1.8e-2 57.1 null 35.19 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SLB Oceania Solomon Islands 2020-06-13 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 33.33 686878.0 21.841 20.8 3.507 2.043 2205.923 25.1 459.78 18.68 null null 35.89 1.4 73.0 0.546
ZAF Africa South Africa 2020-02-03 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
ZAF Africa South Africa 2020-05-08 8895.0 663.0 420.571 178.0 17.0 8.857 149.978 11.179 7.091 3.001 0.287 0.149 1.53 null null null null null null null null 307752.0 15599.0 5.189 0.263 12890.0 0.217 3.3e-2 30.6 null 84.26 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
ZAF Africa South Africa 2020-08-25 613017.0 1567.0 2981.857 13308.0 149.0 149.143 10336.04 26.421 50.277 224.385 2.512 2.515 0.63 null null null null null null null null 3578836.0 14771.0 60.343 0.249 21213.0 0.358 0.141 7.1 null 72.22 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
KOR Asia South Korea 2020-04-16 10613.0 22.0 27.143 229.0 4.0 3.571 207.005 0.429 0.529 4.467 7.8e-2 7.0e-2 0.48 null null null null null null null null 524507.0 4981.0 10.23 9.7e-2 6472.0 0.126 4.0e-3 238.4 null 82.41 5.1269183e7 527.967 43.4 13.914 8.622 35938.374 0.2 85.998 6.8 6.2 40.9 null 12.27 83.03 0.903
KOR Asia South Korea 2020-06-01 11541.0 38.0 45.143 272.0 1.0 0.429 225.106 0.741 0.881 5.305 2.0e-2 8.0e-3 1.14 null null null null null null null null 897333.0 9805.0 17.502 0.191 12855.0 0.251 4.0e-3 284.8 null 55.09 5.1269183e7 527.967 43.4 13.914 8.622 35938.374 0.2 85.998 6.8 6.2 40.9 null 12.27 83.03 0.903
SSD Africa South Sudan 2020-03-05 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
SSD Africa South Sudan 2020-03-09 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
SSD Africa South Sudan 2020-06-10 1604.0 0.0 87.143 19.0 0.0 1.286 143.295 0.0 7.785 1.697 0.0 0.115 0.82 null null null null null null null null null null null null null null null null null 85.19 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
SSD Africa South Sudan 2020-08-23 2499.0 2.0 1.429 47.0 0.0 0.0 223.25 0.179 0.128 4.199 0.0 0.0 0.91 null null null null null null null null null null null null null null null null null 77.78 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
SSD Africa South Sudan 2020-10-18 2842.0 25.0 9.286 55.0 0.0 0.0 253.892 2.233 0.83 4.913 0.0 0.0 0.99 null null null null null null null null 36740.0 420.0 3.282 3.8e-2 438.0 3.9e-2 2.1e-2 47.2 null 35.19 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
LKA Asia Sri Lanka 2020-11-22 20171.0 400.0 412.0 87.0 4.0 4.143 941.987 18.68 19.24 4.063 0.187 0.193 null null null null null null null null null 747638.0 10679.0 34.915 0.499 10791.0 0.504 3.8e-2 26.2 null 49.54 2.141325e7 341.955 34.1 10.069 5.331 11669.077 0.7 197.093 10.68 0.3 27.0 null 3.6 76.98 0.77
SDN Africa Sudan 2020-03-30 6.0 0.0 0.571 2.0 1.0 0.143 0.137 0.0 1.3e-2 4.6e-2 2.3e-2 3.0e-3 null null null null null null null null null null null null null null null null null null 76.85 4.3849269e7 23.258 19.7 3.548 2.034 4466.507 null 431.388 15.67 null null 23.437 0.8 65.31 0.502
SDN Africa Sudan 2020-06-28 9257.0 0.0 96.714 572.0 0.0 7.286 211.11 0.0 2.206 13.045 0.0 0.166 1.0 null null null null null null null null null null null null null null null null null 84.26 4.3849269e7 23.258 19.7 3.548 2.034 4466.507 null 431.388 15.67 null null 23.437 0.8 65.31 0.502
SUR South America Suriname 2020-02-14 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SUR South America Suriname 2020-05-01 10.0 0.0 0.0 1.0 0.0 0.0 17.046 0.0 0.0 1.705 0.0 0.0 null null null null null null null null null null null null null null null null null null 82.41 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SWZ Africa Swaziland 2020-05-20 217.0 9.0 4.286 2.0 0.0 0.0 187.043 7.758 3.694 1.724 0.0 0.0 0.99 null null null null null null null null null null null null null null null null null 84.26 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWE Europe Sweden 2020-05-30 38396.0 432.0 603.571 4633.0 45.0 39.0 3801.859 42.775 59.764 458.746 4.456 3.862 1.1 null null null null null null null null null null null null null null null null null 64.81 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933
CHE Europe Switzerland 2020-11-24 304593.0 4241.0 4294.143 4308.0 86.0 92.0 35194.274 490.027 496.168 497.769 9.937 10.63 null null null null null null null null null 2633317.0 29537.0 304.267 3.413 22717.0 2.625 0.189 5.3 null 49.07 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
SYR Asia Syria 2020-05-28 122.0 1.0 9.143 4.0 0.0 0.143 6.971 5.7e-2 0.522 0.229 0.0 8.0e-3 0.35 null null null null null null null null null null null null null null null null null 69.44 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
SYR Asia Syria 2020-06-19 187.0 0.0 3.286 7.0 0.0 0.143 10.685 0.0 0.188 0.4 0.0 8.0e-3 1.16 null null null null null null null null null null null null null null null null null 69.44 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
TWN Asia Taiwan 2020-09-22 509.0 0.0 1.429 7.0 0.0 0.0 21.371 0.0 6.0e-2 0.294 0.0 0.0 1.13 null null null null null null null null 92108.0 175.0 3.867 7.0e-3 281.0 1.2e-2 5.0e-3 196.6 null 23.15 2.3816775e7 null 42.2 null 8.353 null null 103.957 null null null null null 80.46 null
TWN Asia Taiwan 2020-09-26 510.0 0.0 0.571 7.0 0.0 0.0 21.413 0.0 2.4e-2 0.294 0.0 0.0 1.14 null null null null null null null null 92975.0 275.0 3.904 1.2e-2 203.0 9.0e-3 3.0e-3 355.5 null 23.15 2.3816775e7 null 42.2 null 8.353 null null 103.957 null null null null null 80.46 null
TJK Asia Tajikistan 2020-03-06 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 9537642.0 64.281 23.3 3.466 2.155 2896.913 4.8 427.698 7.11 null null 72.704 4.8 71.1 0.65
TJK Asia Tajikistan 2020-05-22 2551.0 201.0 204.714 44.0 0.0 1.571 267.467 21.074 21.464 4.613 0.0 0.165 1.32 null null null null null null null null null null null null null null null null null 51.85 9537642.0 64.281 23.3 3.466 2.155 2896.913 4.8 427.698 7.11 null null 72.704 4.8 71.1 0.65
TJK Asia Tajikistan 2020-07-09 6410.0 46.0 50.286 54.0 0.0 0.286 672.074 4.823 5.272 5.662 0.0 3.0e-2 0.92 null null null null null null null null null null null null null null null null null 70.37 9537642.0 64.281 23.3 3.466 2.155 2896.913 4.8 427.698 7.11 null null 72.704 4.8 71.1 0.65
THA Asia Thailand 2020-02-12 33.0 0.0 1.143 null 0.0 0.0 0.473 0.0 1.6e-2 null 0.0 0.0 null null null null null null null null null 2727.0 116.0 3.9e-2 2.0e-3 108.0 2.0e-3 1.1e-2 94.5 null 0.0 6.9799978e7 135.132 40.1 11.373 6.89 16277.671 0.1 109.861 7.04 1.9 38.8 90.67 2.1 77.15 0.755
THA Asia Thailand 2020-03-22 599.0 188.0 69.286 1.0 0.0 0.0 8.582 2.693 0.993 1.4e-2 0.0 0.0 1.55 null null null null null null null null 39317.0 2058.0 0.563 2.9e-2 2397.0 3.4e-2 2.9e-2 34.6 null 52.31 6.9799978e7 135.132 40.1 11.373 6.89 16277.671 0.1 109.861 7.04 1.9 38.8 90.67 2.1 77.15 0.755
THA Asia Thailand 2020-08-11 3351.0 0.0 4.286 58.0 0.0 0.0 48.009 0.0 6.1e-2 0.831 0.0 0.0 1.02 null null null null null null null null 836077.0 4136.0 11.978 5.9e-2 4105.0 5.9e-2 1.0e-3 957.8 null 52.78 6.9799978e7 135.132 40.1 11.373 6.89 16277.671 0.1 109.861 7.04 1.9 38.8 90.67 2.1 77.15 0.755
TLS Asia Timor 2020-08-19 25.0 0.0 0.0 null 0.0 0.0 18.962 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 29.63 1318442.0 87.176 18.0 3.556 1.897 6570.102 30.3 335.346 6.86 6.3 78.1 28.178 5.9 69.5 0.625
TGO Africa Togo 2020-02-09 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 8278737.0 143.366 19.4 2.839 1.525 1429.813 49.2 280.033 6.15 0.9 14.2 10.475 0.7 61.04 0.503
TGO Africa Togo 2020-09-15 1595.0 17.0 11.714 40.0 0.0 0.857 192.662 2.053 1.415 4.832 0.0 0.104 1.06 null null null null null null null null 78651.0 884.0 9.5 0.107 869.0 0.105 1.3e-2 74.2 null 49.07 8278737.0 143.366 19.4 2.839 1.525 1429.813 49.2 280.033 6.15 0.9 14.2 10.475 0.7 61.04 0.503
TUN Africa Tunisia 2020-09-13 6635.0 0.0 227.714 107.0 0.0 2.0 561.402 0.0 19.267 9.054 0.0 0.169 1.48 null null null null null null null null 190241.0 null 16.097 null 3545.0 0.3 6.4e-2 15.6 null 26.85 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUN Africa Tunisia 2020-10-21 45892.0 1442.0 1586.0 740.0 29.0 32.571 3883.026 122.011 134.195 62.613 2.454 2.756 1.24 null null null null null null null null null null null null null null null null null 58.33 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
UGA Africa Uganda 2020-02-21 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 16.67 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-03-03 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 16.67 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-07-16 1051.0 8.0 7.286 null 0.0 0.0 22.977 0.175 0.159 null 0.0 0.0 0.88 null null null null null null null null 238709.0 3696.0 5.219 8.1e-2 2433.0 5.3e-2 3.0e-3 333.9 null 81.48 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-09-17 5380.0 114.0 155.571 60.0 0.0 1.714 117.619 2.492 3.401 1.312 0.0 3.7e-2 1.21 null null null null null null null null 444346.0 2636.0 9.714 5.8e-2 3019.0 6.6e-2 5.2e-2 19.4 null 81.48 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UKR Europe Ukraine 2020-08-11 85023.0 1211.0 1306.143 1979.0 29.0 27.286 1944.105 27.69 29.866 45.251 0.663 0.624 1.16 null null null null null null null null 1195561.0 16127.0 27.337 0.369 16104.0 0.368 8.1e-2 12.3 null 57.87 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
GBR Europe United Kingdom 2020-08-12 315581.0 1039.0 964.143 41414.0 20.0 12.714 4648.69 15.305 14.202 610.052 0.295 0.187 1.21 80.0 1.178 937.0 13.803 null null null null 1.1310805e7 167983.0 166.615 2.474 153405.0 2.26 6.0e-3 159.1 null 69.91 6.7886004e7 272.898 40.8 18.517 12.527 39753.244 0.2 122.137 4.28 20.0 24.7 null 2.54 81.32 0.922
USA North America United States 2020-09-07 6290964.0 23545.0 39247.714 189295.0 276.0 801.571 19005.782 71.132 118.572 571.884 0.834 2.422 0.88 6630.0 20.03 32009.0 96.703 null null null null 9.5865802e7 408656.0 289.622 1.235 809989.0 2.447 null null null 67.13 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
USA North America United States 2020-09-10 6387822.0 36066.0 35026.143 191830.0 907.0 708.857 19298.402 108.96 105.818 579.542 2.74 2.142 0.96 6531.0 19.731 32438.0 97.999 null null null null 9.8444261e7 1034528.0 297.412 3.125 769511.0 2.325 null null null 67.13 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
UZB Asia Uzbekistan 2020-04-04 266.0 39.0 23.143 2.0 0.0 0.0 7.948 1.165 0.691 6.0e-2 0.0 0.0 1.71 null null null null null null null null null null null null null null null null null 90.74 3.3469199e7 76.134 28.2 4.469 2.873 6253.104 null 724.417 7.57 1.3 24.7 null 4.0 71.72 0.71
UZB Asia Uzbekistan 2020-05-29 3468.0 24.0 62.857 14.0 0.0 0.143 103.618 0.717 1.878 0.418 0.0 4.0e-3 1.19 null null null null null null null null null null null null null null null null null 86.11 3.3469199e7 76.134 28.2 4.469 2.873 6253.104 null 724.417 7.57 1.3 24.7 null 4.0 71.72 0.71
VUT Oceania Vanuatu 2020-02-15 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 307150.0 22.662 23.1 4.394 2.62 2921.909 13.2 546.3 12.02 2.8 34.5 25.209 null 70.47 0.603
VUT Oceania Vanuatu 2020-06-17 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 66.67 307150.0 22.662 23.1 4.394 2.62 2921.909 13.2 546.3 12.02 2.8 34.5 25.209 null 70.47 0.603
VUT Oceania Vanuatu 2020-07-07 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 66.67 307150.0 22.662 23.1 4.394 2.62 2921.909 13.2 546.3 12.02 2.8 34.5 25.209 null 70.47 0.603
VAT Europe Vatican 2020-11-05 27.0 0.0 0.0 null 0.0 0.0 33374.536 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 809.0 null null null null null null null null null null null null 75.12 null
VEN South America Venezuela 2020-02-23 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2.8435943e7 36.253 29.0 6.614 3.915 16745.022 null 204.85 6.47 null null null 0.8 72.06 0.761
ESH Africa Western Sahara 2020-04-29 6.0 0.0 0.0 null 0.0 0.0 10.045 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 597330.0 null 28.4 null 1.38 null null null null null null null null 70.26 null
ZMB Africa Zambia 2020-04-11 40.0 0.0 0.143 2.0 0.0 0.143 2.176 0.0 8.0e-3 0.109 0.0 8.0e-3 null null null null null null null null null 1454.0 111.0 7.9e-2 6.0e-3 78.0 4.0e-3 2.0e-3 545.5 null 50.93 1.8383956e7 22.995 17.7 2.48 1.542 3689.251 57.5 234.499 3.94 3.1 24.7 13.938 2.0 63.89 0.588
ZMB Africa Zambia 2020-08-22 10831.0 204.0 235.0 279.0 2.0 2.714 589.155 11.097 12.783 15.176 0.109 0.148 0.9 null null null null null null null null 106449.0 785.0 5.79 4.3e-2 1098.0 6.0e-2 0.214 4.7 null 49.07 1.8383956e7 22.995 17.7 2.48 1.542 3689.251 57.5 234.499 3.94 3.1 24.7 13.938 2.0 63.89 0.588
MNE Europe Montenegro 2020-06-20 359.0 4.0 5.0 9.0 0.0 0.0 571.6 6.369 7.961 14.33 0.0 0.0 1.5 null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MNE Europe Montenegro 2020-06-24 389.0 11.0 8.0 9.0 0.0 0.0 619.366 17.514 12.738 14.33 0.0 0.0 2.21 null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MNE Europe Montenegro 2020-09-06 5553.0 131.0 109.0 108.0 1.0 1.429 8841.484 208.578 173.55 171.958 1.592 2.275 1.51 null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MNE Europe Montenegro 2020-09-28 10441.0 128.0 228.429 163.0 5.0 3.571 16624.155 203.802 363.704 259.529 7.961 5.686 0.94 null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MAR Africa Morocco 2020-02-15 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null 10.0 null 0.0 null 0.0 0.0 null null null 0.0 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MOZ Africa Mozambique 2020-11-30 15701.0 88.0 84.571 131.0 1.0 0.714 502.345 2.816 2.706 4.191 3.2e-2 2.3e-2 null null null null null null null null null 231131.0 641.0 7.395 2.1e-2 1128.0 3.6e-2 7.5e-2 13.3 null null 3.1255435e7 37.728 17.7 3.158 1.87 1136.103 62.9 329.942 3.3 5.1 29.1 12.227 0.7 60.85 0.437
MMR Asia Myanmar 2020-04-05 21.0 0.0 1.571 1.0 0.0 0.143 0.386 0.0 2.9e-2 1.8e-2 0.0 3.0e-3 null null null null null null null null null null null null null null null null null null 69.44 5.4409794e7 81.721 29.1 5.732 3.12 5591.597 6.4 202.104 4.61 6.3 35.2 79.287 0.9 67.13 0.578
NAM Africa Namibia 2020-10-30 12907.0 49.0 58.0 133.0 0.0 0.0 5079.664 19.284 22.826 52.343 0.0 0.0 0.92 null null null null null null null null 126796.0 1714.0 49.902 0.675 891.0 0.351 6.5e-2 15.4 null 34.26 2540916.0 3.078 22.0 3.552 2.085 9541.808 13.4 243.811 3.94 9.7 34.2 44.6 null 63.71 0.647
NPL Asia Nepal 2020-02-09 1.0 0.0 0.0 null 0.0 0.0 3.4e-2 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null 1.0 0.0 0.0 null null 16.67 2.9136808e7 204.43 25.0 5.809 3.212 2442.804 15.0 260.797 7.26 9.5 37.8 47.782 0.3 70.78 0.574
NLD Europe Netherlands 2020-09-08 79792.0 1090.0 855.714 6279.0 1.0 2.714 4656.702 63.613 49.94 366.446 5.8e-2 0.158 1.32 49.0 2.86 null null null null null null null null null null 26932.0 1.572 3.2e-2 31.5 null 50.93 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NZL Oceania New Zealand 2020-03-04 3.0 2.0 0.429 null 0.0 0.0 0.622 0.415 8.9e-2 null 0.0 0.0 null null null null null null null null null 305.0 25.0 6.3e-2 5.0e-3 null null null null null 19.44 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NZL Oceania New Zealand 2020-04-19 1431.0 9.0 14.429 12.0 1.0 1.143 296.75 1.866 2.992 2.488 0.207 0.237 0.42 null null null null null null null null 86259.0 2306.0 17.888 0.478 3341.0 0.693 4.0e-3 231.5 null 96.3 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NZL Oceania New Zealand 2020-10-10 1871.0 1.0 2.429 25.0 0.0 0.0 387.995 0.207 0.504 5.184 0.0 0.0 0.79 null null null null null null null null 1000765.0 3809.0 207.531 0.79 4523.0 0.938 1.0e-3 1862.1 null 22.22 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NIC North America Nicaragua 2020-03-20 1.0 0.0 0.143 null 0.0 0.0 0.151 0.0 2.2e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 6624554.0 51.667 27.3 5.445 3.519 5321.444 3.2 137.016 11.47 null null null 0.9 74.48 0.658
NER Africa Niger 2020-04-02 98.0 24.0 12.571 5.0 0.0 0.571 4.048 0.991 0.519 0.207 0.0 2.4e-2 null null null null null null null null null null null null null null null null null null 61.11 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
NER Africa Niger 2020-04-26 696.0 12.0 6.857 29.0 2.0 1.286 28.752 0.496 0.283 1.198 8.3e-2 5.3e-2 0.83 null null null null null null null null null null null null null null null null null 61.11 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
NER Africa Niger 2020-11-28 1484.0 12.0 19.0 70.0 0.0 0.0 61.306 0.496 0.785 2.892 0.0 0.0 null null null null null null null null null null null null null null null null null null 24.07 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
NGA Africa Nigeria 2020-03-02 1.0 0.0 0.143 null 0.0 0.0 5.0e-3 0.0 1.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 2.06139587e8 209.588 18.1 2.751 1.447 5338.454 null 181.013 2.42 0.6 10.8 41.949 null 54.69 0.532
NGA Africa Nigeria 2020-08-23 52227.0 322.0 451.286 1002.0 5.0 3.857 253.357 1.562 2.189 4.861 2.4e-2 1.9e-2 0.87 null null null null null null null null 378023.0 3946.0 1.834 1.9e-2 3919.0 1.9e-2 0.115 8.7 null 65.74 2.06139587e8 209.588 18.1 2.751 1.447 5338.454 null 181.013 2.42 0.6 10.8 41.949 null 54.69 0.532
NGA Africa Nigeria 2020-09-14 56388.0 132.0 175.429 1083.0 1.0 3.143 273.543 0.64 0.851 5.254 5.0e-3 1.5e-2 0.86 null null null null null null null null 442075.0 1827.0 2.145 9.0e-3 2556.0 1.2e-2 6.9e-2 14.6 null 60.19 2.06139587e8 209.588 18.1 2.751 1.447 5338.454 null 181.013 2.42 0.6 10.8 41.949 null 54.69 0.532
NOR Europe Norway 2020-07-05 8930.0 4.0 10.714 251.0 0.0 0.286 1647.224 0.738 1.976 46.299 0.0 5.3e-2 0.85 null null null null null null null null 373972.0 1192.0 68.983 0.22 3996.0 0.737 3.0e-3 373.0 null 37.04 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
PAK Asia Pakistan 2020-04-03 2818.0 132.0 189.0 41.0 1.0 4.143 12.757 0.598 0.856 0.186 5.0e-3 1.9e-2 1.61 null null null null null null null null 32930.0 2622.0 0.149 1.2e-2 2814.0 1.3e-2 6.7e-2 14.9 null 96.3 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PAK Asia Pakistan 2020-09-28 311516.0 675.0 661.429 6474.0 8.0 7.143 1410.262 3.056 2.994 29.308 3.6e-2 3.2e-2 1.05 null null null null null null null null 3449541.0 28887.0 15.616 0.131 36461.0 0.165 1.8e-2 55.1 null 41.2 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PSE Asia Palestine 2020-07-05 4277.0 442.0 326.714 16.0 3.0 1.714 838.395 86.643 64.044 3.136 0.588 0.336 1.5 null null null null null null null null null null null null null null null null null 83.33 5101416.0 778.202 20.4 3.043 1.726 4449.898 1.0 265.91 10.59 null null null null 74.05 0.686
PAN North America Panama 2020-02-17 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PAN North America Panama 2020-06-15 21422.0 4.0 652.571 448.0 11.0 7.143 4964.809 0.927 151.241 103.829 2.549 1.655 1.25 null null null null null null null null 90950.0 1984.0 21.079 0.46 2034.0 0.471 0.321 3.1 null 83.33 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PAN North America Panama 2020-07-27 61442.0 1146.0 1002.286 1322.0 28.0 27.857 14239.931 265.599 232.292 306.39 6.489 6.456 1.01 null null null null null null null null 208659.0 3450.0 48.359 0.8 3096.0 0.718 0.324 3.1 null 80.56 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PNG Oceania Papua New Guinea 2020-06-26 11.0 1.0 0.429 null 0.0 0.0 1.229 0.112 4.8e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 45.37 8947027.0 18.22 22.6 3.808 2.142 3823.194 null 561.494 17.65 23.5 48.8 null null 64.5 0.544
PNG Oceania Papua New Guinea 2020-07-21 27.0 8.0 2.286 1.0 0.0 0.143 3.018 0.894 0.255 0.112 0.0 1.6e-2 null null null null null null null null null null null null null null null null null null 45.37 8947027.0 18.22 22.6 3.808 2.142 3823.194 null 561.494 17.65 23.5 48.8 null null 64.5 0.544
PRY South America Paraguay 2020-10-27 60557.0 448.0 640.571 1347.0 14.0 16.571 8490.255 62.811 89.81 188.853 1.963 2.323 1.04 null null null null null null null null 352711.0 2422.0 49.451 0.34 2689.0 0.377 0.238 4.2 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PER South America Peru 2020-09-11 710067.0 7291.0 5703.143 30344.0 108.0 134.143 21535.555 221.128 172.97 920.3 3.276 4.068 0.96 null null null null null null null null 742273.0 7018.0 22.512 0.213 6581.0 0.2 null null null 85.19 3.2971846e7 25.129 29.1 7.151 4.455 12236.706 3.5 85.755 5.95 4.8 null null 1.6 76.74 0.75
PHL Asia Philippines 2020-01-25 null 0.0 null null 0.0 null null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 11.11 1.09581085e8 351.873 25.2 4.803 2.661 7599.188 null 370.437 7.07 7.8 40.8 78.463 1.0 71.23 0.699
PHL Asia Philippines 2020-11-10 399749.0 1300.0 1798.286 7661.0 14.0 49.0 3647.974 11.863 16.411 69.912 0.128 0.447 0.92 null null null null null null null null 4858722.0 29766.0 44.339 0.272 30904.0 0.282 5.8e-2 17.2 null 68.98 1.09581085e8 351.873 25.2 4.803 2.661 7599.188 null 370.437 7.07 7.8 40.8 78.463 1.0 71.23 0.699
PHL Asia Philippines 2020-11-15 407838.0 1501.0 1634.714 7832.0 41.0 41.857 3721.792 13.698 14.918 71.472 0.374 0.382 0.9 null null null null null null null null 5001441.0 24190.0 45.641 0.221 28245.0 0.258 5.8e-2 17.3 null 68.98 1.09581085e8 351.873 25.2 4.803 2.661 7599.188 null 370.437 7.07 7.8 40.8 78.463 1.0 71.23 0.699
POL Europe Poland 2020-06-15 29788.0 396.0 375.429 1256.0 9.0 12.857 787.072 10.463 9.92 33.187 0.238 0.34 0.98 null null 1736.0 45.869 null null null null 1086927.0 10676.0 28.719 0.282 16196.0 0.428 2.3e-2 43.1 null 50.93 3.7846605e7 124.027 41.8 16.763 10.202 27216.445 null 227.331 5.91 23.3 33.1 null 6.62 78.73 0.865
PRT Europe Portugal 2020-06-14 36690.0 227.0 285.286 1517.0 5.0 5.429 3598.22 22.262 27.978 148.774 0.49 0.532 1.04 73.0 7.159 419.0 41.092 null null 113.114 11.093 1010163.0 4754.0 99.068 0.466 8692.0 0.852 3.3e-2 30.5 null 69.91 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
QAT Asia Qatar 2020-07-19 106648.0 340.0 435.714 157.0 3.0 1.429 37016.931 118.012 151.234 54.494 1.041 0.496 0.74 null null null null null null null null 441700.0 2710.0 153.312 0.941 4145.0 1.439 0.105 9.5 null 80.56 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
QAT Asia Qatar 2020-11-24 137642.0 227.0 202.857 236.0 0.0 0.143 47774.777 78.79 70.411 81.914 0.0 5.0e-2 null null null null null null null null null null null null null null null null null null null 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
ROU Europe Romania 2020-08-31 87540.0 755.0 1172.857 3621.0 43.0 44.571 4550.444 39.246 60.967 188.224 2.235 2.317 0.99 506.0 26.303 null null null null null null 1802946.0 7313.0 93.72 0.38 20544.0 1.068 5.7e-2 17.5 null 42.59 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
RUS Europe Russia 2020-08-21 944671.0 4838.0 4841.857 16148.0 90.0 97.286 6473.255 33.152 33.178 110.652 0.617 0.667 0.97 null null null null null null null null null null null null 272755.0 1.869 1.8e-2 56.3 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816
KNA North America Saint Kitts and Nevis 2020-08-22 17.0 0.0 0.0 null 0.0 0.0 319.597 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 53192.0 212.865 null null null 24654.385 null null 12.84 null null null 2.3 76.23 0.778
VCT North America Saint Vincent and the Grenadines 2020-01-28 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
VCT North America Saint Vincent and the Grenadines 2020-03-31 1.0 0.0 0.0 null 0.0 0.0 9.013 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
VCT North America Saint Vincent and the Grenadines 2020-05-04 17.0 1.0 0.286 null 0.0 0.0 153.226 9.013 2.575 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
VCT North America Saint Vincent and the Grenadines 2020-06-02 26.0 0.0 1.143 null 0.0 0.0 234.346 0.0 10.301 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
VCT North America Saint Vincent and the Grenadines 2020-09-09 62.0 0.0 0.143 null 0.0 0.0 558.825 0.0 1.288 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
SMR Europe San Marino 2020-10-14 741.0 0.0 1.286 42.0 0.0 0.0 21833.932 0.0 37.884 1237.551 0.0 0.0 0.77 null null null null null null null null null null null null null null null null null 25.93 33938.0 556.667 null null null 56861.47 null null 5.64 null null null 3.8 84.97 null
STP Africa Sao Tome and Principe 2020-02-15 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 219161.0 212.841 18.7 2.886 2.162 3052.714 32.3 270.113 2.42 null null 41.34 2.9 70.39 0.589
SAU Asia Saudi Arabia 2020-02-23 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 3.4813867e7 15.322 31.9 3.295 1.845 49045.411 null 259.538 17.72 1.8 25.4 null 2.7 75.13 0.853
SAU Asia Saudi Arabia 2020-05-25 74795.0 2235.0 2492.857 399.0 9.0 11.286 2148.426 64.199 71.605 11.461 0.259 0.324 1.09 null null null null null null null null 780041.0 16664.0 22.406 0.479 17237.0 0.495 0.145 6.9 null 91.67 3.4813867e7 15.322 31.9 3.295 1.845 49045.411 null 259.538 17.72 1.8 25.4 null 2.7 75.13 0.853
SAU Asia Saudi Arabia 2020-06-11 116021.0 3733.0 3266.286 857.0 38.0 35.143 3332.609 107.227 93.821 24.617 1.092 1.009 1.18 null null null null null null null null 1110934.0 27324.0 31.911 0.785 22952.0 0.659 0.142 7.0 null 69.91 3.4813867e7 15.322 31.9 3.295 1.845 49045.411 null 259.538 17.72 1.8 25.4 null 2.7 75.13 0.853
SEN Africa Senegal 2020-05-03 1182.0 67.0 73.0 9.0 0.0 0.0 70.593 4.001 4.36 0.538 0.0 0.0 1.43 null null null null null null null null 14770.0 810.0 0.882 4.8e-2 916.0 5.5e-2 8.0e-2 12.5 null 77.78 1.674393e7 82.328 18.7 3.008 1.796 2470.58 38.0 241.219 2.42 0.4 16.6 20.859 null 67.94 0.505
SEN Africa Senegal 2020-11-03 15640.0 3.0 9.857 326.0 1.0 0.571 934.07 0.179 0.589 19.47 6.0e-2 3.4e-2 0.82 null null null null null null null null 217808.0 400.0 13.008 2.4e-2 751.0 4.5e-2 1.3e-2 76.2 null 37.96 1.674393e7 82.328 18.7 3.008 1.796 2470.58 38.0 241.219 2.42 0.4 16.6 20.859 null 67.94 0.505
SRB Europe Serbia 2020-01-29 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 6804596.0 80.291 41.2 17.366 null 14048.881 null 439.415 10.08 37.7 40.2 97.719 5.609 76.0 0.787
SRB Europe Serbia 2020-10-15 35454.0 203.0 158.571 770.0 2.0 1.429 5210.302 29.833 23.304 113.159 0.294 0.21 1.55 null null null null null null null null 1219908.0 6504.0 179.277 0.956 5741.0 0.844 2.8e-2 36.2 null 54.63 6804596.0 80.291 41.2 17.366 null 14048.881 null 439.415 10.08 37.7 40.2 97.719 5.609 76.0 0.787
SYC Africa Seychelles 2020-02-25 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 16.67 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SYC Africa Seychelles 2020-09-02 136.0 0.0 0.0 null 0.0 0.0 1382.957 0.0 0.0 null 0.0 0.0 0.21 null null null null null null null null null null null null null null null null null 34.26 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SGP Asia Singapore 2020-06-05 37183.0 261.0 474.714 24.0 0.0 0.143 6355.696 44.613 81.143 4.102 0.0 2.4e-2 0.83 null null null null null null null null null null null null 11066.0 1.892 4.3e-2 23.3 null 77.78 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SGP Asia Singapore 2020-11-07 58054.0 7.0 5.571 28.0 0.0 0.0 9923.179 1.197 0.952 4.786 0.0 0.0 0.98 null null null null null null null null null null null null 27292.0 4.665 0.0 4898.9 null 52.78 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SVK Europe Slovakia 2020-07-26 2179.0 38.0 28.571 28.0 0.0 0.0 399.11 6.96 5.233 5.129 0.0 0.0 1.28 null null 12.0 2.198 null null null null 253691.0 216.0 46.467 4.0e-2 1923.0 0.352 1.5e-2 67.3 null 37.96 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVK Europe Slovakia 2020-09-25 8048.0 419.0 256.0 41.0 0.0 0.286 1474.089 76.745 46.89 7.51 0.0 5.2e-2 1.47 null null 143.0 26.192 null null null null 440331.0 6483.0 80.652 1.187 4504.0 0.825 5.7e-2 17.6 null 31.48 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVN Europe Slovenia 2020-01-23 null 0.0 null null 0.0 null null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 2078932.0 102.619 44.5 19.062 12.93 31400.84 null 153.493 7.25 20.1 25.0 null 4.5 81.32 0.896
SVN Europe Slovenia 2020-10-05 6673.0 175.0 183.571 156.0 1.0 1.0 3209.821 84.178 88.301 75.039 0.481 0.481 1.45 21.0 10.101 107.0 51.469 null null null null 238686.0 2509.0 114.812 1.207 2564.0 1.233 7.2e-2 14.0 null 43.52 2078932.0 102.619 44.5 19.062 12.93 31400.84 null 153.493 7.25 20.1 25.0 null 4.5 81.32 0.896
SLB Oceania Solomon Islands 2020-02-21 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 686878.0 21.841 20.8 3.507 2.043 2205.923 25.1 459.78 18.68 null null 35.89 1.4 73.0 0.546
SLB Oceania Solomon Islands 2020-04-12 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 44.44 686878.0 21.841 20.8 3.507 2.043 2205.923 25.1 459.78 18.68 null null 35.89 1.4 73.0 0.546
SLB Oceania Solomon Islands 2020-09-01 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 33.33 686878.0 21.841 20.8 3.507 2.043 2205.923 25.1 459.78 18.68 null null 35.89 1.4 73.0 0.546
SOM Africa Somalia 2020-02-13 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 1.5893219e7 23.5 16.8 2.731 1.496 null null 365.769 6.05 null null 9.831 0.9 57.4 null
ZAF Africa South Africa 2020-11-23 769759.0 2080.0 2498.571 20968.0 65.0 93.429 12978.857 35.071 42.128 353.54 1.096 1.575 null null null null null null null null null 5305343.0 14377.0 89.453 0.242 23199.0 0.391 0.108 9.3 null 44.44 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
KOR Asia South Korea 2020-03-31 9786.0 125.0 107.0 162.0 4.0 6.0 190.875 2.438 2.087 3.16 7.8e-2 0.117 0.96 null null null null null null null null 393672.0 12009.0 7.679 0.234 8647.0 0.169 1.2e-2 80.8 null 75.93 5.1269183e7 527.967 43.4 13.914 8.622 35938.374 0.2 85.998 6.8 6.2 40.9 null 12.27 83.03 0.903
KOR Asia South Korea 2020-10-11 24703.0 97.0 77.0 433.0 1.0 1.571 481.829 1.892 1.502 8.446 2.0e-2 3.1e-2 1.15 null null null null null null null null 2391180.0 5478.0 46.64 0.107 9564.0 0.187 8.0e-3 124.2 null 54.63 5.1269183e7 527.967 43.4 13.914 8.622 35938.374 0.2 85.998 6.8 6.2 40.9 null 12.27 83.03 0.903
SSD Africa South Sudan 2020-08-30 2519.0 0.0 2.857 47.0 0.0 0.0 225.037 0.0 0.255 4.199 0.0 0.0 0.94 null null null null null null null null null null null null null null null null null 77.78 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
ESP Europe Spain 2020-08-15 342813.0 0.0 4064.429 28617.0 0.0 16.286 7332.148 0.0 86.931 612.066 0.0 0.348 1.41 null null null null null null null null null null null null 58819.0 1.258 6.9e-2 14.5 null 62.5 4.6754783e7 93.105 45.5 19.436 13.799 34272.36 1.0 99.403 7.17 27.4 31.4 null 2.97 83.56 0.891
LKA Asia Sri Lanka 2020-06-14 1889.0 5.0 7.714 11.0 0.0 0.0 88.216 0.234 0.36 0.514 0.0 0.0 0.97 null null null null null null null null 87083.0 1116.0 4.067 5.2e-2 1447.0 6.8e-2 5.0e-3 187.6 null 55.56 2.141325e7 341.955 34.1 10.069 5.331 11669.077 0.7 197.093 10.68 0.3 27.0 null 3.6 76.98 0.77
SDN Africa Sudan 2020-02-29 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 4.3849269e7 23.258 19.7 3.548 2.034 4466.507 null 431.388 15.67 null null 23.437 0.8 65.31 0.502
SDN Africa Sudan 2020-03-07 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 4.3849269e7 23.258 19.7 3.548 2.034 4466.507 null 431.388 15.67 null null 23.437 0.8 65.31 0.502
SDN Africa Sudan 2020-06-01 5173.0 147.0 171.0 298.0 12.0 18.286 117.972 3.352 3.9 6.796 0.274 0.417 1.16 null null null null null null null null null null null null null null null null null 91.67 4.3849269e7 23.258 19.7 3.548 2.034 4466.507 null 431.388 15.67 null null 23.437 0.8 65.31 0.502
SDN Africa Sudan 2020-07-03 9663.0 90.0 58.0 604.0 2.0 4.571 220.369 2.052 1.323 13.774 4.6e-2 0.104 1.0 null null null null null null null null null null null null null null null null null 84.26 4.3849269e7 23.258 19.7 3.548 2.034 4466.507 null 431.388 15.67 null null 23.437 0.8 65.31 0.502
SDN Africa Sudan 2020-11-27 16864.0 0.0 190.571 1215.0 0.0 4.286 384.59 0.0 4.346 27.709 0.0 9.8e-2 null null null null null null null null null null null null null null null null null null null 4.3849269e7 23.258 19.7 3.548 2.034 4466.507 null 431.388 15.67 null null 23.437 0.8 65.31 0.502
SUR South America Suriname 2020-06-04 82.0 8.0 10.0 1.0 0.0 0.0 139.781 13.637 17.046 1.705 0.0 0.0 null null null null null null null null null null null null null null null null null null 93.52 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SWZ Africa Swaziland 2020-01-31 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWZ Africa Swaziland 2020-02-21 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWZ Africa Swaziland 2020-04-14 15.0 0.0 0.714 null 0.0 0.0 12.929 0.0 0.616 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 89.81 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWZ Africa Swaziland 2020-09-17 5191.0 36.0 28.143 103.0 2.0 0.714 4474.367 31.03 24.258 88.781 1.724 0.616 0.84 null null null null null null null null null null null null null null null null null 64.81 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWZ Africa Swaziland 2020-11-29 6410.0 4.0 27.286 121.0 0.0 0.143 5525.081 3.448 23.519 104.296 0.0 0.123 null null null null null null null null null null null null null null null null null null null 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWE Europe Sweden 2020-06-25 64009.0 1281.0 1046.714 5424.0 12.0 22.0 6337.983 126.841 103.643 537.069 1.188 2.178 1.01 null null null null null null null null null null null null null null null null null 59.26 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933
CHE Europe Switzerland 2020-04-25 28894.0 217.0 212.857 1599.0 10.0 33.0 3338.564 25.073 24.595 184.757 1.155 3.813 0.59 null null null null null null null null 253431.0 4032.0 29.283 0.466 4071.0 0.47 5.2e-2 19.1 null 73.15 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
SYR Asia Syria 2020-05-10 47.0 0.0 0.429 3.0 0.0 0.0 2.686 0.0 2.4e-2 0.171 0.0 0.0 null null null null null null null null null null null null null null null null null null 87.04 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
SYR Asia Syria 2020-08-15 1593.0 78.0 66.857 60.0 2.0 1.429 91.025 4.457 3.82 3.428 0.114 8.2e-2 1.31 null null null null null null null null null null null null null null null null null 62.04 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
SYR Asia Syria 2020-11-04 5964.0 76.0 54.857 301.0 3.0 3.286 340.787 4.343 3.135 17.199 0.171 0.188 1.1 null null null null null null null null null null null null null null null null null 40.74 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
TWN Asia Taiwan 2020-03-03 42.0 1.0 1.571 1.0 0.0 0.0 1.763 4.2e-2 6.6e-2 4.2e-2 0.0 0.0 null null null null null null null null null 12365.0 506.0 0.519 2.1e-2 494.0 2.1e-2 3.0e-3 314.4 null 23.15 2.3816775e7 null 42.2 null 8.353 null null 103.957 null null null null null 80.46 null
TWN Asia Taiwan 2020-05-01 429.0 0.0 0.143 6.0 0.0 0.0 18.013 0.0 6.0e-3 0.252 0.0 0.0 0.39 null null null null null null null null 63711.0 374.0 2.675 1.6e-2 557.0 2.3e-2 0.0 3895.1 null 31.48 2.3816775e7 null 42.2 null 8.353 null null 103.957 null null null null null 80.46 null
TWN Asia Taiwan 2020-07-31 467.0 0.0 1.286 7.0 0.0 0.0 19.608 0.0 5.4e-2 0.294 0.0 0.0 0.58 null null null null null null null null 81822.0 235.0 3.435 1.0e-2 203.0 9.0e-3 6.0e-3 157.9 null 23.15 2.3816775e7 null 42.2 null 8.353 null null 103.957 null null null null null 80.46 null
TJK Asia Tajikistan 2020-07-17 6786.0 45.0 47.0 56.0 0.0 0.143 711.497 4.718 4.928 5.871 0.0 1.5e-2 0.94 null null null null null null null null null null null null null null null null null 62.04 9537642.0 64.281 23.3 3.466 2.155 2896.913 4.8 427.698 7.11 null null 72.704 4.8 71.1 0.65
TJK Asia Tajikistan 2020-11-15 11610.0 37.0 39.143 85.0 0.0 0.286 1217.282 3.879 4.104 8.912 0.0 3.0e-2 0.99 null null null null null null null null null null null null null null null null null 37.04 9537642.0 64.281 23.3 3.466 2.155 2896.913 4.8 427.698 7.11 null null 72.704 4.8 71.1 0.65
TZA Africa Tanzania 2020-04-23 284.0 0.0 27.143 10.0 0.0 0.857 4.754 0.0 0.454 0.167 0.0 1.4e-2 0.54 null null null null null null null null null null null null null null null null null 50.0 5.9734213e7 64.699 17.7 3.108 1.874 2683.304 49.1 217.288 5.75 3.3 26.7 47.953 0.7 65.46 0.538
TZA Africa Tanzania 2020-11-09 509.0 0.0 0.0 21.0 0.0 0.0 8.521 0.0 0.0 0.352 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 13.89 5.9734213e7 64.699 17.7 3.108 1.874 2683.304 49.1 217.288 5.75 3.3 26.7 47.953 0.7 65.46 0.538
AFG Asia Afghanistan 2020-10-18 40200.0 59.0 57.286 1494.0 4.0 2.143 1032.667 1.516 1.472 38.378 0.103 5.5e-2 1.22 null null null null null null null null null null null null null null null null null 16.67 3.8928341e7 54.422 18.6 2.581 1.337 1803.987 null 597.029 9.59 null null 37.746 0.5 64.83 0.498
ALB Europe Albania 2020-02-07 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
ALB Europe Albania 2020-09-20 12385.0 159.0 147.429 362.0 4.0 4.0 4303.635 55.251 51.23 125.791 1.39 1.39 0.99 null null null null null null null null null null null null null null null null null 54.63 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
DZA Africa Algeria 2020-01-27 null 0.0 null null 0.0 null null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
DZA Africa Algeria 2020-03-09 20.0 1.0 2.429 null 0.0 0.0 0.456 2.3e-2 5.5e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
DZA Africa Algeria 2020-09-06 46364.0 293.0 316.857 1556.0 7.0 7.857 1057.307 6.682 7.226 35.484 0.16 0.179 0.84 null null null null null null null null null null null null null null null null null 75.93 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
AND Europe Andorra 2020-07-14 861.0 3.0 0.857 52.0 0.0 0.0 11143.467 38.827 11.094 673.008 0.0 0.0 0.7 null null null null null null null null null null null null null null null null null 41.67 77265.0 163.755 null null null null null 109.135 7.97 29.0 37.8 null null 83.73 0.858
AGO Africa Angola 2020-06-08 92.0 1.0 0.857 4.0 0.0 0.0 2.799 3.0e-2 2.6e-2 0.122 0.0 0.0 null null null null null null null null null null null null null null null null null null 75.93 3.2866268e7 23.89 16.8 2.405 1.362 5819.495 null 276.045 3.94 null null 26.664 null 61.15 0.581
AGO Africa Angola 2020-10-24 9026.0 197.0 223.429 267.0 2.0 3.714 274.628 5.994 6.798 8.124 6.1e-2 0.113 1.13 null null null null null null null null null null null null null null null null null 65.74 3.2866268e7 23.89 16.8 2.405 1.362 5819.495 null 276.045 3.94 null null 26.664 null 61.15 0.581
ATG North America Antigua and Barbuda 2020-08-09 92.0 0.0 0.143 3.0 0.0 0.0 939.466 0.0 1.459 30.635 0.0 0.0 null null null null null null null null null null null null null null null null null null null 97928.0 231.845 32.1 6.933 4.631 21490.943 null 191.511 13.17 null null null 3.8 77.02 0.78
ATG North America Antigua and Barbuda 2020-09-12 95.0 0.0 0.0 3.0 0.0 0.0 970.1 0.0 0.0 30.635 0.0 0.0 null null null null null null null null null null null null null null null null null null null 97928.0 231.845 32.1 6.933 4.631 21490.943 null 191.511 13.17 null null null 3.8 77.02 0.78
ARG South America Argentina 2020-05-20 9283.0 474.0 343.429 403.0 10.0 10.571 205.395 10.488 7.599 8.917 0.221 0.234 1.4 null null null null null null null null null null null null null null null null null 90.74 4.5195777e7 16.177 31.9 11.198 7.441 18933.907 0.6 191.032 5.5 16.2 27.7 null 5.0 76.67 0.825
ARG South America Argentina 2020-08-10 253868.0 7369.0 6732.143 4764.0 158.0 135.857 5617.073 163.046 148.955 105.408 3.496 3.006 1.13 null null null null null null null null null null null null null null null null null 87.96 4.5195777e7 16.177 31.9 11.198 7.441 18933.907 0.6 191.032 5.5 16.2 27.7 null 5.0 76.67 0.825
ARG South America Argentina 2020-09-21 640147.0 8782.0 10671.571 13482.0 429.0 259.286 14163.868 194.31 236.119 298.302 9.492 5.737 1.06 null null null null null null null null null null null null null null null null null 87.96 4.5195777e7 16.177 31.9 11.198 7.441 18933.907 0.6 191.032 5.5 16.2 27.7 null 5.0 76.67 0.825
ARM Asia Armenia 2020-10-04 52496.0 571.0 442.286 977.0 5.0 3.714 17715.779 192.695 149.258 329.707 1.687 1.253 1.37 null null null null null null null null null null null null null null null null null null 2963234.0 102.931 35.7 11.232 7.571 8787.58 1.8 341.01 7.11 1.5 52.1 94.043 4.2 75.09 0.755
AUS Oceania Australia 2020-07-30 16903.0 605.0 472.571 196.0 7.0 8.143 662.866 23.726 18.532 7.686 0.275 0.319 1.23 null null null null null null null null 4164454.0 66205.0 163.313 2.596 63517.0 2.491 7.0e-3 134.4 null 68.06 2.5499881e7 3.202 37.9 15.504 10.129 44648.71 0.5 107.791 5.07 13.0 16.5 null 3.84 83.44 0.939
AUT Europe Austria 2020-05-27 16591.0 34.0 34.0 645.0 2.0 1.714 1842.134 3.775 3.775 71.616 0.222 0.19 0.8 32.0 3.553 84.0 9.327 null null null null 418706.0 7521.0 46.49 0.835 5588.0 0.62 6.0e-3 164.4 null 59.26 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-08-29 26985.0 395.0 274.714 733.0 0.0 0.143 2996.203 43.858 30.502 81.387 0.0 1.6e-2 1.15 30.0 3.331 114.0 12.658 null null null null 1160743.0 12799.0 128.88 1.421 10513.0 1.167 2.6e-2 38.3 null 35.19 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AZE Asia Azerbaijan 2020-03-25 93.0 6.0 9.286 2.0 1.0 0.143 9.172 0.592 0.916 0.197 9.9e-2 1.4e-2 null null null null null null null null null null null null null null null null null null 68.52 1.0139175e7 119.309 32.4 6.018 3.871 15847.419 null 559.812 7.11 0.3 42.5 83.241 4.7 73.0 0.757
AZE Asia Azerbaijan 2020-05-01 1854.0 50.0 37.429 25.0 1.0 0.571 182.855 4.931 3.691 2.466 9.9e-2 5.6e-2 1.14 null null null null null null null null null null null null null null null null null 87.96 1.0139175e7 119.309 32.4 6.018 3.871 15847.419 null 559.812 7.11 0.3 42.5 83.241 4.7 73.0 0.757
BHS North America Bahamas 2020-03-29 11.0 1.0 1.0 null 0.0 0.0 27.972 2.543 2.543 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHS North America Bahamas 2020-07-26 342.0 16.0 27.0 11.0 0.0 0.0 869.68 40.687 68.659 27.972 0.0 0.0 1.98 null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHR Asia Bahrain 2020-06-01 11871.0 473.0 385.714 19.0 0.0 0.714 6976.445 277.976 226.68 11.166 0.0 0.42 1.19 null null null null null null null null 323162.0 6355.0 189.918 3.735 5611.0 3.298 6.9e-2 14.5 null 75.0 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-08-17 47185.0 350.0 398.286 173.0 3.0 1.429 27730.061 205.691 234.068 101.67 1.763 0.84 1.01 null null null null null null null null 972003.0 9669.0 571.235 5.682 9992.0 5.872 4.0e-2 25.1 null 69.44 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-10-10 75287.0 427.0 425.286 273.0 2.0 2.143 44245.27 250.943 249.935 160.439 1.175 1.259 0.91 null null null null null null null null 1530133.0 10537.0 899.241 6.192 10173.0 5.979 4.2e-2 23.9 null 63.89 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BLR Europe Belarus 2020-03-08 6.0 0.0 0.714 null 0.0 0.0 0.635 0.0 7.6e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 9449321.0 46.858 40.3 14.799 9.788 17167.967 null 443.129 5.18 10.5 46.1 null 11.0 74.79 0.808
BLR Europe Belarus 2020-11-20 120847.0 1457.0 1317.857 1081.0 7.0 6.857 12788.961 154.191 139.466 114.4 0.741 0.726 1.17 null null null null null null null null null null null null 27254.0 2.884 4.8e-2 20.7 null 22.22 9449321.0 46.858 40.3 14.799 9.788 17167.967 null 443.129 5.18 10.5 46.1 null 11.0 74.79 0.808
BEL Europe Belgium 2020-03-22 3401.0 586.0 359.286 75.0 8.0 10.143 293.452 50.563 31.001 6.471 0.69 0.875 2.21 322.0 27.783 1646.0 142.024 null null 1541.84 133.036 31478.0 1414.0 2.716 0.122 2438.0 0.21 0.147 6.8 null 81.48 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-05-01 49032.0 513.0 677.0 7703.0 109.0 146.286 4230.684 44.264 58.414 664.647 9.405 12.622 0.71 690.0 59.536 3109.0 268.257 null null null null 430786.0 23551.0 37.17 2.032 19999.0 1.726 3.4e-2 29.5 null 81.48 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-11-20 553680.0 3416.0 4095.429 15352.0 156.0 178.0 47773.8 294.747 353.371 1324.634 13.46 15.359 0.68 1256.0 108.373 5418.0 467.487 null null null null 5670902.0 34396.0 489.309 2.968 29760.0 2.568 0.138 7.3 null 63.89 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BLZ North America Belize 2020-03-28 2.0 0.0 0.286 null 0.0 0.0 5.03 0.0 0.719 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 54.63 397621.0 16.426 25.0 3.853 2.279 7824.362 null 176.957 17.11 null null 90.083 1.3 74.62 0.708
BEN Africa Benin 2020-03-02 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BEN Africa Benin 2020-03-23 5.0 3.0 0.571 null 0.0 0.0 0.412 0.247 4.7e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 27.78 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BTN Asia Bhutan 2020-04-20 5.0 0.0 0.0 null 0.0 0.0 6.48 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 83.33 771612.0 21.188 28.6 4.885 2.977 8708.597 1.5 217.066 9.75 null null 79.807 1.7 71.78 0.612
BOL South America Bolivia 2020-08-30 115968.0 614.0 974.143 4966.0 28.0 65.286 9934.696 52.6 83.452 425.425 2.399 5.593 0.86 null null null null null null null null null null null null 2630.0 0.225 0.37 2.7 null 89.81 1.1673029e7 10.202 25.4 6.704 4.393 6885.829 7.1 204.299 6.89 null null 25.383 1.1 71.51 0.693
BIH Europe Bosnia and Herzegovina 2020-02-04 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BIH Europe Bosnia and Herzegovina 2020-04-21 1342.0 33.0 37.0 51.0 2.0 1.571 409.045 10.058 11.278 15.545 0.61 0.479 1.16 null null null null null null null null null null null null null null null null null 92.59 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BIH Europe Bosnia and Herzegovina 2020-11-06 59427.0 1921.0 1612.857 1457.0 55.0 35.0 18113.487 585.525 491.603 444.097 16.764 10.668 1.17 null null null null null null null null null null null null null null null null null 40.74 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BWA Africa Botswana 2020-02-04 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BWA Africa Botswana 2020-03-26 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 61.11 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BWA Africa Botswana 2020-07-29 804.0 65.0 40.286 2.0 0.0 0.143 341.891 27.64 17.131 0.85 0.0 6.1e-2 0.83 null null null null null null null null null null null null null null null null null 54.17 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BWA Africa Botswana 2020-09-19 2567.0 0.0 45.0 13.0 0.0 0.429 1091.586 0.0 19.136 5.528 0.0 0.182 0.77 null null null null null null null null null null null null null null null null null 58.33 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BRA South America Brazil 2020-01-26 null 0.0 null null 0.0 null null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-06-04 614941.0 30925.0 25243.286 34021.0 1473.0 1038.143 2893.031 145.489 118.759 160.054 6.93 4.884 1.22 null null null null null null null null null null null null null null null null null 77.31 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-10-13 5113628.0 10220.0 20641.0 150998.0 309.0 500.571 24057.406 48.081 97.107 710.38 1.454 2.355 0.95 null null null null null null null null null null null null null null null null null 63.43 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRN Asia Brunei 2020-04-23 138.0 0.0 0.286 1.0 0.0 0.0 315.441 0.0 0.653 2.286 0.0 0.0 0.12 null null null null null null null null null null null null null null null null null 58.33 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BRN Asia Brunei 2020-06-06 141.0 0.0 0.0 2.0 0.0 0.0 322.298 0.0 0.0 4.572 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 49.07 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BRN Asia Brunei 2020-08-21 143.0 0.0 0.143 3.0 0.0 0.0 326.87 0.0 0.327 6.857 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 40.74 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BGR Europe Bulgaria 2020-03-29 346.0 15.0 22.714 8.0 1.0 0.714 49.795 2.159 3.269 1.151 0.144 0.103 1.14 null null null null null null null null null null null null null null null null null 73.15 6948445.0 65.18 44.7 20.801 13.272 18563.307 1.5 424.688 5.81 30.1 44.4 null 7.454 75.05 0.813
BGR Europe Bulgaria 2020-05-29 2485.0 8.0 16.143 136.0 2.0 1.571 357.634 1.151 2.323 19.573 0.288 0.226 0.96 20.0 2.878 191.0 27.488 null null null null 79389.0 1725.0 11.425 0.248 1112.0 0.16 1.5e-2 68.9 null 56.48 6948445.0 65.18 44.7 20.801 13.272 18563.307 1.5 424.688 5.81 30.1 44.4 null 7.454 75.05 0.813
BFA Africa Burkina Faso 2020-10-24 2444.0 11.0 14.429 65.0 0.0 0.0 116.919 0.526 0.69 3.11 0.0 0.0 0.96 null null null null null null null null null null null null null null null null null 22.22 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BDI Africa Burundi 2020-03-04 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 1.1890781e7 423.062 17.5 2.562 1.504 702.225 71.7 293.068 6.05 null null 6.144 0.8 61.58 0.417
BDI Africa Burundi 2020-07-21 328.0 6.0 8.429 1.0 0.0 0.0 27.584 0.505 0.709 8.4e-2 0.0 0.0 0.67 null null null null null null null null null null null null null null null null null 13.89 1.1890781e7 423.062 17.5 2.562 1.504 702.225 71.7 293.068 6.05 null null 6.144 0.8 61.58 0.417
BDI Africa Burundi 2020-10-08 515.0 0.0 0.714 1.0 0.0 0.0 43.311 0.0 6.0e-2 8.4e-2 0.0 0.0 0.76 null null null null null null null null null null null null null null null null null 14.81 1.1890781e7 423.062 17.5 2.562 1.504 702.225 71.7 293.068 6.05 null null 6.144 0.8 61.58 0.417
KHM Asia Cambodia 2020-11-16 303.0 1.0 0.429 null 0.0 0.0 18.123 6.0e-2 2.6e-2 null 0.0 0.0 0.87 null null null null null null null null null null null null null null null null null 42.59 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-11-29 323.0 8.0 2.429 null 0.0 0.0 19.319 0.478 0.145 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
CMR Africa Cameroon 2020-06-17 9864.0 0.0 169.0 276.0 0.0 9.143 371.583 0.0 6.366 10.397 0.0 0.344 1.09 null null null null null null null null null null null null null null null null null 60.19 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CMR Africa Cameroon 2020-08-15 18469.0 0.0 61.0 401.0 0.0 0.857 695.739 0.0 2.298 15.106 0.0 3.2e-2 1.02 null null null null null null null null null null null null null null null null null 60.19 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CAN North America Canada 2020-03-04 33.0 3.0 3.143 null 0.0 0.0 0.874 7.9e-2 8.3e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-06-18 101877.0 386.0 388.286 8361.0 49.0 41.429 2699.289 10.227 10.288 221.529 1.298 1.098 0.79 null null null null null null null null 2295440.0 40959.0 60.819 1.085 38135.0 1.01 1.0e-2 98.2 null 70.83 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-07-05 107394.0 209.0 314.429 8739.0 7.0 22.429 2845.465 5.538 8.331 231.545 0.185 0.594 0.94 null null null null null null null null 2940925.0 25971.0 77.921 0.688 37746.0 1.0 8.0e-3 120.0 null 68.98 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-08-23 126817.0 257.0 401.857 9119.0 2.0 6.429 3360.089 6.809 10.647 241.613 5.3e-2 0.17 1.1 null null null null null null null null 5115490.0 38756.0 135.538 1.027 48161.0 1.276 8.0e-3 119.8 null 64.35 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CPV Africa Cape Verde 2020-03-11 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 555988.0 135.58 25.7 4.46 3.437 6222.554 null 182.219 2.42 2.1 16.5 null 2.1 72.98 0.654
CPV Africa Cape Verde 2020-05-10 246.0 10.0 11.571 2.0 0.0 0.0 442.456 17.986 20.812 3.597 0.0 0.0 1.06 null null null null null null null null null null null null null null null null null 79.63 555988.0 135.58 25.7 4.46 3.437 6222.554 null 182.219 2.42 2.1 16.5 null 2.1 72.98 0.654
CAF Africa Central African Republic 2020-06-03 1173.0 104.0 67.286 4.0 0.0 0.429 242.869 21.533 13.931 0.828 0.0 8.9e-2 1.07 null null null null null null null null null null null null null null null null null 75.93 4829764.0 7.479 18.3 3.655 2.251 661.24 null 435.727 6.1 null null 16.603 1.0 53.28 0.367
TCD Africa Chad 2020-01-27 null 0.0 null null 0.0 null null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 1.6425859e7 11.833 16.7 2.486 1.446 1768.153 38.4 280.995 6.1 null null 5.818 null 54.24 0.404
TCD Africa Chad 2020-05-17 503.0 29.0 25.857 53.0 3.0 3.143 30.622 1.766 1.574 3.227 0.183 0.191 0.91 null null null null null null null null null null null null null null null null null 87.04 1.6425859e7 11.833 16.7 2.486 1.446 1768.153 38.4 280.995 6.1 null null 5.818 null 54.24 0.404
TCD Africa Chad 2020-07-29 926.0 0.0 5.286 75.0 0.0 0.0 56.375 0.0 0.322 4.566 0.0 0.0 0.85 null null null null null null null null null null null null null null null null null 70.37 1.6425859e7 11.833 16.7 2.486 1.446 1768.153 38.4 280.995 6.1 null null 5.818 null 54.24 0.404
CHL South America Chile 2020-02-02 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHL South America Chile 2020-08-09 373056.0 2033.0 1903.571 10077.0 66.0 67.0 19515.166 106.35 99.579 527.144 3.453 3.505 0.94 null null null null null null null null 1833332.0 28460.0 95.905 1.489 24009.0 1.256 7.9e-2 12.6 null 87.5 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHL South America Chile 2020-09-10 428669.0 1642.0 1738.286 11781.0 79.0 51.286 22424.373 85.896 90.933 616.283 4.133 2.683 0.99 null null null null null null null null 2711664.0 28313.0 141.852 1.481 30134.0 1.576 5.8e-2 17.3 null 81.94 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHN Asia China 2020-06-06 84186.0 9.0 8.286 4638.0 0.0 0.0 58.49 6.0e-3 6.0e-3 3.222 0.0 0.0 1.3 null null null null null null null null null null null null null null null null null 78.24 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
COL South America Colombia 2020-05-18 16295.0 721.0 668.857 592.0 18.0 16.143 320.245 14.17 13.145 11.635 0.354 0.317 1.29 null null null null null null null null 201808.0 5391.0 3.966 0.106 6125.0 0.12 null null null 87.04 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COM Africa Comoros 2020-05-27 87.0 0.0 7.571 2.0 1.0 0.143 100.047 0.0 8.707 2.3 1.15 0.164 null null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COG Africa Congo 2020-03-17 1.0 0.0 0.143 null 0.0 0.0 0.181 0.0 2.6e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 5518092.0 15.405 19.0 3.402 2.063 4881.406 37.0 344.094 7.2 1.7 52.3 47.964 null 64.57 0.606
COG Africa Congo 2020-04-18 143.0 0.0 11.857 6.0 0.0 0.143 25.915 0.0 2.149 1.087 0.0 2.6e-2 0.78 null null null null null null null null null null null null null null null null null 97.22 5518092.0 15.405 19.0 3.402 2.063 4881.406 37.0 344.094 7.2 1.7 52.3 47.964 null 64.57 0.606
CIV Africa Cote d'Ivoire 2020-10-07 19935.0 32.0 30.143 120.0 0.0 0.0 755.736 1.213 1.143 4.549 0.0 0.0 0.93 null null null null null null null null 168309.0 1226.0 6.381 4.6e-2 790.0 3.0e-2 3.8e-2 26.2 null 36.11 2.6378275e7 76.399 18.7 2.933 1.582 3601.006 28.2 303.74 2.42 null null 19.351 null 57.78 0.492
CYP Europe Cyprus 2020-07-05 1003.0 1.0 1.286 19.0 0.0 0.0 1145.109 1.142 1.468 21.692 0.0 0.0 1.24 null null null null null null null null 164347.0 1445.0 187.632 1.65 1359.0 1.552 1.0e-3 1056.8 null 50.0 875899.0 127.657 37.3 13.416 8.563 32415.132 null 141.171 9.24 19.6 52.7 null 3.4 80.98 0.869
CZE Europe Czech Republic 2020-01-23 null 0.0 null null 0.0 null null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
CZE Europe Czech Republic 2020-02-18 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null 1.0 0.0 0.0 null null 16.67 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
CZE Europe Czech Republic 2020-04-26 7404.0 52.0 94.0 220.0 2.0 4.857 691.382 4.856 8.778 20.544 0.187 0.454 0.65 72.0 6.723 310.0 28.948 118.656 11.08 480.656 44.883 222658.0 3381.0 20.792 0.316 6655.0 0.621 1.4e-2 70.8 null 60.19 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
CZE Europe Czech Republic 2020-11-01 341644.0 6542.0 11935.286 3429.0 178.0 175.429 31902.566 610.889 1114.512 320.199 16.622 16.381 1.01 1163.0 108.6 7486.0 699.039 1794.919 167.609 11793.174 1101.241 2356389.0 20643.0 220.039 1.928 38502.0 3.595 0.31 3.2 null 73.15 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
CZE Europe Czech Republic 2020-11-26 511520.0 6305.0 4252.143 7779.0 168.0 129.286 47765.511 588.758 397.063 726.4 15.688 12.073 null 743.0 69.381 5048.0 471.38 null null null null 3023731.0 20489.0 282.355 1.913 19862.0 1.855 0.214 4.7 null 69.44 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
COD Africa Democratic Republic of Congo 2020-05-21 1835.0 104.0 84.714 61.0 0.0 1.571 20.489 1.161 0.946 0.681 0.0 1.8e-2 1.13 null null null null null null null null null 225.0 null 3.0e-3 null null null null null 80.56 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
COD Africa Democratic Republic of Congo 2020-07-07 7432.0 0.0 56.143 182.0 0.0 1.714 82.982 0.0 0.627 2.032 0.0 1.9e-2 1.04 null null null null null null null null null 919.0 null 1.0e-2 644.0 7.0e-3 8.7e-2 11.5 null 80.56 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
COD Africa Democratic Republic of Congo 2020-09-15 10401.0 11.0 15.571 267.0 3.0 1.0 116.133 0.123 0.174 2.981 3.3e-2 1.1e-2 1.05 null null null null null null null null null 272.0 null 3.0e-3 227.0 3.0e-3 6.9e-2 14.6 null 42.59 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
COD Africa Democratic Republic of Congo 2020-10-08 10822.0 18.0 19.571 276.0 0.0 0.571 120.833 0.201 0.219 3.082 0.0 6.0e-3 1.09 null null null null null null null null null 154.0 null 2.0e-3 174.0 2.0e-3 0.112 8.9 null 39.81 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
COD Africa Democratic Republic of Congo 2020-10-17 11000.0 1.0 22.714 302.0 1.0 3.714 122.821 1.1e-2 0.254 3.372 1.1e-2 4.1e-2 1.1 null null null null null null null null null null null null null null null null null 48.15 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
COD Africa Democratic Republic of Congo 2020-11-19 12008.0 90.0 45.143 323.0 0.0 0.714 134.076 1.005 0.504 3.606 0.0 8.0e-3 1.15 null null null null null null null null null 385.0 null 4.0e-3 293.0 3.0e-3 0.154 6.5 null 18.52 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
DNK Europe Denmark 2020-08-07 14747.0 161.0 102.714 617.0 0.0 0.286 2546.009 27.796 17.733 106.523 0.0 4.9e-2 1.37 2.0 0.345 25.0 4.316 null null null null 1698747.0 27074.0 293.282 4.674 22516.0 3.887 5.0e-3 219.2 null 50.93 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DNK Europe Denmark 2020-08-11 15291.0 156.0 139.571 621.0 1.0 0.714 2639.928 26.933 24.096 107.213 0.173 0.123 1.33 2.0 0.345 20.0 3.453 null null null null 1804944.0 33524.0 311.616 5.788 26429.0 4.563 5.0e-3 189.4 null 50.93 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DJI Africa Djibouti 2020-05-08 1135.0 2.0 5.429 3.0 0.0 0.143 1148.783 2.024 5.494 3.036 0.0 0.145 1.15 null null null null null null null null null null null null null null null null null 94.44 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DMA North America Dominica 2020-04-07 15.0 0.0 0.429 null 0.0 0.0 208.359 0.0 5.953 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 79.63 71991.0 98.567 null null null 9673.367 null 227.376 11.62 null null null 3.8 75.0 0.715
DOM North America Dominican Republic 2020-03-13 5.0 0.0 0.429 null 0.0 0.0 0.461 0.0 4.0e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
DOM North America Dominican Republic 2020-10-18 121347.0 422.0 410.0 2199.0 4.0 3.714 11186.216 38.902 37.795 202.712 0.369 0.342 0.96 null null null null null null null null 545492.0 3265.0 50.285 0.301 3427.0 0.316 0.12 8.4 null 67.59 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
DOM North America Dominican Republic 2020-11-17 134697.0 494.0 509.429 2290.0 4.0 3.0 12416.869 45.539 46.961 211.101 0.369 0.277 1.16 null null null null null null null null 659160.0 3869.0 60.764 0.357 3716.0 0.343 0.137 7.3 null 64.81 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
ECU South America Ecuador 2020-05-31 39098.0 527.0 334.571 3358.0 24.0 35.714 2216.055 29.87 18.963 190.33 1.36 2.024 1.02 null null null null null null null null 68988.0 757.0 3.91 4.3e-2 1009.0 5.7e-2 null null null 86.11 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
ECU South America Ecuador 2020-06-13 46356.0 578.0 518.286 3874.0 46.0 38.0 2627.435 32.761 29.376 219.576 2.607 2.154 1.13 null null null null null null null null 88946.0 1385.0 5.041 7.9e-2 1403.0 8.0e-2 null null null 83.33 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
EGY Africa Egypt 2020-03-20 285.0 29.0 29.286 8.0 2.0 0.857 2.785 0.283 0.286 7.8e-2 2.0e-2 8.0e-3 1.5 null null null null null null null null null null null null null null null null null 29.63 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-07-06 76222.0 969.0 1352.571 3422.0 79.0 78.571 744.833 9.469 13.217 33.439 0.772 0.768 0.86 null null null null null null null null null null null null null null null null null 60.19 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-08-28 98285.0 223.0 162.429 5362.0 20.0 18.714 960.43 2.179 1.587 52.397 0.195 0.183 1.05 null null null null null null null null null null null null null null null null null 62.96 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-09-19 101900.0 128.0 149.143 5750.0 17.0 17.571 995.755 1.251 1.457 56.188 0.166 0.172 0.9 null null null null null null null null null null null null null null null null null 62.96 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-10-30 107376.0 167.0 163.714 6258.0 11.0 11.714 1049.266 1.632 1.6 61.152 0.107 0.114 1.12 null null null null null null null null null null null null null null null null null 75.93 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
SLV North America El Salvador 2020-05-30 2395.0 117.0 82.286 46.0 4.0 1.857 369.245 18.038 12.686 7.092 0.617 0.286 1.13 null null null null null null null null 89358.0 2386.0 13.777 0.368 2392.0 0.369 3.4e-2 29.1 null 100.0 6486201.0 307.811 27.6 8.273 5.417 7292.458 2.2 167.295 8.87 2.5 18.8 90.65 1.3 73.32 0.674
GNQ Africa Equatorial Guinea 2020-10-06 5052.0 7.0 3.143 83.0 0.0 0.0 3600.894 4.989 2.24 59.16 0.0 0.0 0.58 null null null null null null null null null null null null null null null null null null 1402985.0 45.194 22.4 2.846 1.752 22604.873 null 202.812 7.78 null null 24.64 2.1 58.74 0.591
GNQ Africa Equatorial Guinea 2020-10-21 5074.0 0.0 0.857 83.0 0.0 0.0 3616.575 0.0 0.611 59.16 0.0 0.0 0.51 null null null null null null null null null null null null null null null null null null 1402985.0 45.194 22.4 2.846 1.752 22604.873 null 202.812 7.78 null null 24.64 2.1 58.74 0.591
ERI Africa Eritrea 2020-05-24 39.0 0.0 0.0 null 0.0 0.0 10.997 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 93.52 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
ERI Africa Eritrea 2020-05-28 39.0 0.0 0.0 null 0.0 0.0 10.997 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 93.52 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
ERI Africa Eritrea 2020-08-17 285.0 0.0 0.0 null 0.0 0.0 80.363 0.0 0.0 null 0.0 0.0 0.28 null null null null null null null null null null null null null null null null null 89.81 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
ERI Africa Eritrea 2020-08-22 306.0 0.0 3.0 null 0.0 0.0 86.284 0.0 0.846 null 0.0 0.0 0.28 null null null null null null null null null null null null null null null null null 89.81 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
EST Europe Estonia 2020-09-05 2491.0 35.0 18.286 64.0 0.0 0.0 1877.819 26.384 13.785 48.246 0.0 0.0 1.32 0.0 0.0 7.0 5.277 null null null null 188267.0 1342.0 141.923 1.012 2061.0 1.554 9.0e-3 112.7 null 23.15 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
ETH Africa Ethiopia 2020-02-26 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
ETH Africa Ethiopia 2020-04-29 130.0 4.0 2.0 3.0 0.0 0.0 1.131 3.5e-2 1.7e-2 2.6e-2 0.0 0.0 0.56 null null null null null null null null 16434.0 766.0 0.143 7.0e-3 952.0 8.0e-3 2.0e-3 476.0 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
ETH Africa Ethiopia 2020-08-07 21452.0 552.0 560.286 380.0 15.0 15.143 186.598 4.802 4.874 3.305 0.13 0.132 1.06 null null null null null null null null 478017.0 9203.0 4.158 8.0e-2 7952.0 6.9e-2 7.0e-2 14.2 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
ETH Africa Ethiopia 2020-08-24 42143.0 1472.0 1543.857 692.0 14.0 21.143 366.577 12.804 13.429 6.019 0.122 0.184 1.17 null null null null null null null null 775908.0 18851.0 6.749 0.164 20957.0 0.182 7.4e-2 13.6 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
FIN Europe Finland 2020-04-02 1518.0 72.0 80.0 19.0 2.0 2.0 273.972 12.995 14.439 3.429 0.361 0.361 1.32 65.0 11.731 160.0 28.877 null null null null 27466.0 2331.0 4.957 0.421 1422.0 0.257 5.6e-2 17.8 null 67.59 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-08-07 7554.0 22.0 17.429 331.0 0.0 0.286 1363.361 3.971 3.146 59.74 0.0 5.2e-2 1.29 0.0 0.0 3.0 0.541 null null null null 428351.0 8815.0 77.31 1.591 6469.0 1.168 3.0e-3 371.2 null 35.19 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-08-14 7700.0 17.0 20.857 333.0 0.0 0.286 1389.712 3.068 3.764 60.101 0.0 5.2e-2 1.25 0.0 0.0 6.0 1.083 null null null null 491843.0 9621.0 88.769 1.736 9070.0 1.637 2.0e-3 434.9 null 32.41 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-09-04 8225.0 25.0 26.143 336.0 0.0 0.143 1484.465 4.512 4.718 60.642 0.0 2.6e-2 1.25 1.0 0.18 14.0 2.527 null null null null 798694.0 16079.0 144.15 2.902 15326.0 2.766 2.0e-3 586.2 null 32.41 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
GMB Africa Gambia 2020-02-24 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GMB Africa Gambia 2020-03-18 1.0 0.0 0.143 null 0.0 0.0 0.414 0.0 5.9e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 45.37 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GMB Africa Gambia 2020-04-28 10.0 0.0 0.0 1.0 0.0 0.0 4.138 0.0 0.0 0.414 0.0 0.0 null null null null null null null null null null null null null null null null null null 78.7 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GMB Africa Gambia 2020-10-06 3613.0 19.0 4.857 117.0 2.0 0.714 1495.036 7.862 2.01 48.414 0.828 0.296 0.7 null null null null null null null null null null null null null null null null null 75.93 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GEO Asia Georgia 2020-01-30 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 3989175.0 65.032 38.7 14.864 10.244 9745.079 4.2 496.218 7.11 5.3 55.5 null 2.6 73.77 0.78
GEO Asia Georgia 2020-03-06 4.0 0.0 0.429 null 0.0 0.0 1.003 0.0 0.107 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 41.67 3989175.0 65.032 38.7 14.864 10.244 9745.079 4.2 496.218 7.11 5.3 55.5 null 2.6 73.77 0.78
GEO Asia Georgia 2020-06-04 801.0 1.0 9.0 13.0 0.0 0.143 200.793 0.251 2.256 3.259 0.0 3.6e-2 0.78 null null null null null null null null null null null null null null null null null 69.44 3989175.0 65.032 38.7 14.864 10.244 9745.079 4.2 496.218 7.11 5.3 55.5 null 2.6 73.77 0.78
GEO Asia Georgia 2020-11-16 82835.0 3157.0 3165.0 733.0 30.0 33.429 20764.945 791.392 793.397 183.747 7.52 8.38 1.18 null null null null null null null null null null null null null null null null null 64.81 3989175.0 65.032 38.7 14.864 10.244 9745.079 4.2 496.218 7.11 5.3 55.5 null 2.6 73.77 0.78
DEU Europe Germany 2020-05-29 182922.0 726.0 458.857 8504.0 34.0 39.429 2183.258 8.665 5.477 101.499 0.406 0.471 0.79 null null null null null null null null null null null null 55781.0 0.666 8.0e-3 121.6 null 59.72 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
GHA Africa Ghana 2020-02-05 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-10-03 46803.0 109.0 83.0 303.0 2.0 0.571 1506.23 3.508 2.671 9.751 6.4e-2 1.8e-2 1.13 null null null null null null null null 492768.0 null 15.858 null 1722.0 5.5e-2 4.8e-2 20.7 null 44.44 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GRC Europe Greece 2020-05-28 2906.0 3.0 7.571 175.0 2.0 1.0 278.805 0.288 0.726 16.79 0.192 9.6e-2 0.97 null null null null null null null null 170467.0 4222.0 16.355 0.405 3770.0 0.362 2.0e-3 498.0 null 68.52 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-06-13 3112.0 4.0 18.857 183.0 0.0 0.429 298.569 0.384 1.809 17.557 0.0 4.1e-2 1.19 null null null null null null null null 247452.0 3585.0 23.741 0.344 5104.0 0.49 4.0e-3 270.7 null 54.63 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-08-29 9977.0 177.0 228.0 260.0 1.0 2.857 957.205 16.982 21.875 24.945 9.6e-2 0.274 1.14 null null null null null null null null 931002.0 13737.0 89.321 1.318 13324.0 1.278 1.7e-2 58.4 null 56.02 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-10-03 19613.0 267.0 340.714 405.0 7.0 4.143 1881.694 25.616 32.689 38.856 0.672 0.397 1.16 null null null null null null null null 1339664.0 11622.0 128.529 1.115 10087.0 0.968 3.4e-2 29.6 null 50.46 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-11-07 54809.0 2555.0 2222.571 749.0 34.0 17.571 5258.439 245.13 213.236 71.86 3.262 1.686 1.34 null null null null null null null null 1926544.0 24086.0 184.835 2.311 21317.0 2.045 0.104 9.6 null 78.7 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRD North America Grenada 2020-02-02 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 112519.0 317.132 29.4 7.304 5.021 13593.877 null 243.964 10.71 null null null 3.7 72.4 0.772
GTM North America Guatemala 2020-01-25 null 0.0 null null 0.0 null null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 2.78 1.7915567e7 157.834 22.9 4.694 3.016 7423.808 8.7 155.898 10.18 null null 76.665 0.6 74.3 0.65
GNB Africa Guinea-Bissau 2020-05-18 1032.0 42.0 38.714 4.0 0.0 0.143 524.391 21.341 19.672 2.033 0.0 7.3e-2 0.95 null null null null null null null null null null null null null null null null null null 1967998.0 66.191 19.4 3.002 1.565 1548.675 67.1 382.474 2.42 null null 6.403 null 58.32 0.455
GNB Africa Guinea-Bissau 2020-09-10 2275.0 30.0 10.0 39.0 1.0 0.714 1155.997 15.244 5.081 19.817 0.508 0.363 0.49 null null null null null null null null null null null null null null null null null null 1967998.0 66.191 19.4 3.002 1.565 1548.675 67.1 382.474 2.42 null null 6.403 null 58.32 0.455
GUY South America Guyana 2020-02-05 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 786559.0 3.952 26.3 5.305 2.837 7435.047 null 373.159 11.62 null null 77.159 1.6 69.91 0.654
GUY South America Guyana 2020-05-29 150.0 0.0 3.286 11.0 0.0 0.143 190.704 0.0 4.177 13.985 0.0 0.182 0.6 null null null null null null null null null null null null null null null null null 87.04 786559.0 3.952 26.3 5.305 2.837 7435.047 null 373.159 11.62 null null 77.159 1.6 69.91 0.654
GUY South America Guyana 2020-07-04 272.0 16.0 6.0 14.0 0.0 0.286 345.81 20.342 7.628 17.799 0.0 0.363 0.98 null null null null null null null null null null null null null null null null null 77.31 786559.0 3.952 26.3 5.305 2.837 7435.047 null 373.159 11.62 null null 77.159 1.6 69.91 0.654
HTI North America Haiti 2020-08-21 8016.0 19.0 29.429 196.0 0.0 0.571 703.002 1.666 2.581 17.189 0.0 5.0e-2 0.94 null null null null null null null null null null null null null null null null null 21.3 1.1402533e7 398.448 24.3 4.8 2.954 1653.173 23.5 430.548 6.65 2.9 23.1 22.863 0.7 64.0 0.498
HND North America Honduras 2020-11-04 99124.0 436.0 560.714 2730.0 24.0 11.143 10007.867 44.02 56.611 275.629 2.423 1.125 0.87 null null null null null null null null null null null null null null null null null 87.04 9904608.0 82.805 24.9 4.652 2.883 4541.795 16.0 240.208 7.21 2.0 null 84.169 0.7 75.27 0.617
HUN Europe Hungary 2020-03-11 13.0 4.0 1.571 null 0.0 0.0 1.346 0.414 0.163 null 0.0 0.0 null null null 13.0 1.346 null null null null 609.0 78.0 6.3e-2 8.0e-3 54.0 6.0e-3 2.9e-2 34.4 null 46.3 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
HUN Europe Hungary 2020-06-05 3970.0 16.0 18.429 542.0 3.0 3.571 410.958 1.656 1.908 56.106 0.311 0.37 0.71 null null 397.0 41.096 null null null null 202606.0 6712.0 20.973 0.695 3208.0 0.332 6.0e-3 174.1 null 61.11 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
IND Asia India 2020-03-07 34.0 3.0 4.429 null 0.0 0.0 2.5e-2 2.0e-3 3.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 26.85 1.380004385e9 450.419 28.2 5.989 3.414 6426.674 21.2 282.28 10.39 1.9 20.6 59.55 0.53 69.66 0.64
IND Asia India 2020-06-15 343091.0 10667.0 11023.286 9900.0 380.0 346.714 248.616 7.73 7.988 7.174 0.275 0.251 1.21 null null null null null null null null 5774133.0 115519.0 4.184 8.4e-2 142814.0 0.103 7.7e-2 13.0 null 76.85 1.380004385e9 450.419 28.2 5.989 3.414 6426.674 21.2 282.28 10.39 1.9 20.6 59.55 0.53 69.66 0.64
IDN Asia Indonesia 2020-05-24 22271.0 526.0 679.571 1372.0 21.0 32.0 81.423 1.923 2.485 5.016 7.7e-2 0.117 1.14 null null null null null null null null 179864.0 3829.0 0.658 1.4e-2 5626.0 2.1e-2 0.121 8.3 null 71.76 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
IDN Asia Indonesia 2020-07-13 76981.0 1282.0 1717.571 3656.0 50.0 59.286 281.442 4.687 6.279 13.366 0.183 0.217 1.07 null null null null null null null null 630149.0 9062.0 2.304 3.3e-2 11152.0 4.1e-2 0.154 6.5 null 62.5 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
null null International 2020-07-16 721.0 0.0 0.0 15.0 0.0 0.0 null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null
IRN Asia Iran 2020-04-19 82211.0 1343.0 1503.571 5118.0 87.0 92.0 978.784 15.989 17.901 60.934 1.036 1.095 0.77 null null null null null null null null 341662.0 11525.0 4.068 0.137 11182.0 0.133 0.134 7.4 null 53.7 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRN Asia Iran 2020-06-27 220180.0 2456.0 2513.714 10364.0 125.0 122.429 2621.41 29.241 29.928 123.391 1.488 1.458 1.0 null null null null null null null null 1583542.0 25670.0 18.853 0.306 26838.0 0.32 9.4e-2 10.7 null 41.67 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRN Asia Iran 2020-09-01 376894.0 1682.0 1933.0 21672.0 101.0 110.143 4487.21 20.025 23.014 258.022 1.202 1.311 0.84 null null null null null null null null 3256122.0 25012.0 38.767 0.298 23973.0 0.285 8.1e-2 12.4 null 60.19 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRQ Asia Iraq 2020-10-12 405437.0 3107.0 3212.571 9912.0 60.0 64.0 10079.855 77.245 79.87 246.429 1.492 1.591 0.91 null null null null null null null null 2507551.0 20368.0 62.342 0.506 19458.0 0.484 0.165 6.1 null 61.11 4.0222503e7 88.125 20.0 3.186 1.957 15663.986 2.5 218.612 8.83 null null 94.576 1.4 70.6 0.685
IRQ Asia Iraq 2020-11-25 542187.0 2438.0 2190.714 12086.0 55.0 41.571 13479.693 60.613 54.465 300.479 1.367 1.034 null null null null null null null null null 3347344.0 27830.0 83.221 0.692 23504.0 0.584 9.3e-2 10.7 null null 4.0222503e7 88.125 20.0 3.186 1.957 15663.986 2.5 218.612 8.83 null null 94.576 1.4 70.6 0.685
ISR Asia Israel 2020-11-03 316528.0 892.0 686.286 2592.0 12.0 15.571 36569.407 103.055 79.289 299.461 1.386 1.799 0.76 null null null null null null null null 4959948.0 41557.0 573.037 4.801 30484.0 3.522 2.3e-2 44.4 null 40.74 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ISR Asia Israel 2020-11-12 322159.0 833.0 613.714 2706.0 6.0 9.571 37219.973 96.239 70.904 312.632 0.693 1.106 0.95 null null null null null null null null 5254862.0 40338.0 607.11 4.66 31393.0 3.627 2.0e-2 51.2 null 65.74 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ITA Europe Italy 2020-09-17 293025.0 1583.0 1406.429 35658.0 13.0 10.143 4846.446 26.182 23.261 589.761 0.215 0.168 1.1 212.0 3.506 2560.0 42.341 null null null null 1.0146324e7 101773.0 167.814 1.683 84562.0 1.399 1.7e-2 60.1 null 47.22 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
ITA Europe Italy 2020-11-19 1308528.0 36176.0 34589.571 47870.0 653.0 611.571 21642.217 598.328 572.089 791.739 10.8 10.115 1.07 3712.0 61.394 37322.0 617.282 null null null null 1.9724527e7 250186.0 326.231 4.138 217717.0 3.601 0.159 6.3 null 79.63 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
JAM North America Jamaica 2020-03-04 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JAM North America Jamaica 2020-04-19 173.0 10.0 14.857 5.0 0.0 0.143 58.423 3.377 5.017 1.689 0.0 4.8e-2 0.97 null null null null null null null null null null null null 79.0 2.7e-2 0.188 5.3 null 80.56 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JAM North America Jamaica 2020-07-02 715.0 8.0 4.429 10.0 0.0 0.0 241.459 2.702 1.496 3.377 0.0 0.0 1.1 null null null null null null null null 25172.0 285.0 8.501 9.6e-2 360.0 0.122 1.2e-2 81.3 null 64.81 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JAM North America Jamaica 2020-10-04 6895.0 100.0 125.429 120.0 1.0 4.429 2328.479 33.771 42.358 40.525 0.338 1.496 0.96 null null null null null null null null 81071.0 541.0 27.378 0.183 534.0 0.18 0.235 4.3 null 78.7 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JPN Asia Japan 2020-03-31 2255.0 254.0 148.286 67.0 2.0 3.571 17.829 2.008 1.172 0.53 1.6e-2 2.8e-2 1.97 null null null null null null null null 31874.0 1914.0 0.252 1.5e-2 1354.0 1.1e-2 0.11 9.1 null 40.74 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JPN Asia Japan 2020-07-02 19055.0 217.0 142.857 977.0 1.0 0.857 150.66 1.716 1.13 7.725 8.0e-3 7.0e-3 1.68 null null null null null null null null 402243.0 5460.0 3.18 4.3e-2 4570.0 3.6e-2 3.1e-2 32.0 null 25.93 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JPN Asia Japan 2020-10-14 90694.0 541.0 522.143 1646.0 11.0 4.571 717.082 4.277 4.128 13.014 8.7e-2 3.6e-2 1.06 null null null null null null null null 2133151.0 21837.0 16.866 0.173 17411.0 0.138 3.0e-2 33.3 null 38.89 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JOR Asia Jordan 2020-02-10 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 1.020314e7 109.285 23.2 3.81 2.361 8337.49 0.1 208.257 11.75 null null null 1.4 74.53 0.735
JOR Asia Jordan 2020-06-26 1104.0 18.0 13.714 9.0 0.0 0.0 108.202 1.764 1.344 0.882 0.0 0.0 0.89 null null null null null null null null null null null null null null null null null 48.15 1.020314e7 109.285 23.2 3.81 2.361 8337.49 0.1 208.257 11.75 null null null 1.4 74.53 0.735
KAZ Asia Kazakhstan 2020-06-27 20319.0 0.0 442.0 166.0 16.0 6.857 1082.139 0.0 23.54 8.841 0.852 0.365 1.06 null null null null null null null null 1467556.0 20390.0 78.158 1.086 23637.0 1.259 1.9e-2 53.5 null 81.02 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-08-12 115615.0 2114.0 1811.286 1433.0 0.0 46.286 6157.363 112.586 96.465 76.318 0.0 2.465 0.62 null null null null null null null null 2252153.0 15229.0 119.944 0.811 15342.0 0.817 0.118 8.5 null 80.56 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-08-14 118514.0 1410.0 1512.0 1433.0 0.0 46.286 6311.756 75.093 80.525 76.318 0.0 2.465 0.59 null null null null null null null null 2291327.0 19573.0 122.03 1.042 15431.0 0.822 9.8e-2 10.2 null 80.56 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-11-05 152725.0 703.0 606.571 2263.0 1.0 5.857 8133.748 37.44 32.304 120.522 5.3e-2 0.312 1.46 null null null null null null null null 3723082.0 35064.0 198.282 1.867 27230.0 1.45 2.2e-2 44.9 null 68.06 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KEN Africa Kenya 2020-02-12 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KEN Africa Kenya 2020-05-13 737.0 22.0 22.143 40.0 4.0 2.0 13.706 0.409 0.412 0.744 7.4e-2 3.7e-2 1.3 null null null null null null null null 35432.0 1516.0 0.659 2.8e-2 1197.0 2.2e-2 1.8e-2 54.1 null 88.89 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KEN Africa Kenya 2020-09-29 38378.0 210.0 165.714 707.0 7.0 6.857 713.726 3.905 3.082 13.148 0.13 0.128 1.15 null null null null null null null null 545019.0 3604.0 10.136 6.7e-2 3556.0 6.6e-2 4.7e-2 21.5 null 71.3 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KEN Africa Kenya 2020-11-17 71729.0 925.0 1020.143 1302.0 15.0 21.143 1333.964 17.202 18.972 24.214 0.279 0.393 1.09 null null null null null null null null null null null null 6311.0 0.117 0.162 6.2 null 62.96 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
OWID_KOS Europe Kosovo 2020-04-30 799.0 9.0 24.143 22.0 0.0 0.571 413.395 4.657 12.491 11.383 0.0 0.296 0.88 null null null null null null null null null null null null null null null null null 92.59 1932774.0 168.155 null null null 9795.834 0.6 null null null null null null null null
OWID_KOS Europe Kosovo 2020-08-02 8799.0 245.0 237.429 249.0 13.0 10.286 4552.524 126.761 122.843 128.83 6.726 5.322 1.05 null null null null null null null null null null null null null null null null null 69.44 1932774.0 168.155 null null null 9795.834 0.6 null null null null null null null null
OWID_KOS Europe Kosovo 2020-08-05 9492.0 218.0 235.143 284.0 15.0 12.571 4911.076 112.791 121.661 146.939 7.761 6.504 1.01 null null null null null null null null null null null null null null null null null 69.44 1932774.0 168.155 null null null 9795.834 0.6 null null null null null null null null
KGZ Asia Kyrgyzstan 2020-06-06 1974.0 38.0 36.0 22.0 0.0 0.857 302.566 5.824 5.518 3.372 0.0 0.131 1.22 null null null null null null null null null null null null null null null null null 76.39 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
KGZ Asia Kyrgyzstan 2020-11-19 68316.0 422.0 489.857 1217.0 5.0 3.429 10471.183 64.682 75.083 186.537 0.766 0.526 1.0 null null null null null null null null null null null null null null null null null 56.02 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
LAO Asia Laos 2020-02-29 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LAO Asia Laos 2020-07-15 19.0 0.0 0.0 null 0.0 0.0 2.611 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 20.37 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LVA Europe Latvia 2020-05-03 879.0 8.0 9.571 16.0 0.0 0.571 466.016 4.241 5.074 8.483 0.0 0.303 0.88 null null 33.0 17.495 1.965 1.042 8.842 4.688 64245.0 1143.0 34.061 0.606 2375.0 1.259 4.0e-3 248.1 null 69.44 1886202.0 31.212 43.9 19.754 14.136 25063.846 0.7 350.06 4.91 25.6 51.0 null 5.57 75.29 0.847
LBN Asia Lebanon 2020-12-01 129455.0 1511.0 1535.714 1033.0 15.0 14.143 18966.537 221.378 224.999 151.346 2.198 2.072 null null null null null null null null null null null null null null null null null null null 6825442.0 594.561 31.1 8.514 5.43 13367.565 null 266.591 12.71 26.9 40.7 null 2.9 78.93 0.757
LSO Africa Lesotho 2020-03-11 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 2142252.0 73.562 22.2 4.506 2.647 2851.153 59.6 405.126 3.94 0.4 53.9 2.117 null 54.33 0.52
LSO Africa Lesotho 2020-09-10 1164.0 0.0 11.286 31.0 0.0 0.0 543.353 0.0 5.268 14.471 0.0 0.0 0.99 null null null null null null null null null null null null null null null null null 65.74 2142252.0 73.562 22.2 4.506 2.647 2851.153 59.6 405.126 3.94 0.4 53.9 2.117 null 54.33 0.52
LSO Africa Lesotho 2020-11-18 2058.0 6.0 4.571 44.0 0.0 0.0 960.671 2.801 2.134 20.539 0.0 0.0 0.7 null null null null null null null null null null null null null null null null null 47.22 2142252.0 73.562 22.2 4.506 2.647 2851.153 59.6 405.126 3.94 0.4 53.9 2.117 null 54.33 0.52
LBY Africa Libya 2020-07-25 2547.0 123.0 108.0 58.0 1.0 1.429 370.673 17.901 15.718 8.441 0.146 0.208 1.27 null null null null null null null null null 1074.0 null 0.156 1256.0 0.183 8.6e-2 11.6 null 90.74 6871287.0 3.623 29.0 4.424 2.816 17881.509 null 341.862 10.43 null null null 3.7 72.91 0.706
LBY Africa Libya 2020-08-17 8579.0 407.0 378.571 157.0 4.0 4.571 1248.529 59.232 55.095 22.849 0.582 0.665 1.23 null null null null null null null null null 2995.0 null 0.436 2766.0 0.403 0.137 7.3 null 87.96 6871287.0 3.623 29.0 4.424 2.816 17881.509 null 341.862 10.43 null null null 3.7 72.91 0.706
LIE Europe Liechtenstein 2020-02-22 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LIE Europe Liechtenstein 2020-08-08 89.0 0.0 0.143 1.0 0.0 0.0 2333.692 0.0 3.746 26.221 0.0 0.0 null null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LIE Europe Liechtenstein 2020-11-16 989.0 4.0 26.857 7.0 2.0 0.429 25932.821 104.885 704.228 183.549 52.443 11.238 0.94 null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LTU Europe Lithuania 2020-03-07 1.0 0.0 0.0 null 0.0 0.0 0.367 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LTU Europe Lithuania 2020-06-17 1778.0 2.0 6.429 76.0 0.0 0.286 653.126 0.735 2.361 27.918 0.0 0.105 0.85 null null null null null null null null 363718.0 5138.0 133.607 1.887 4080.0 1.499 2.0e-3 634.6 null 34.26 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LTU Europe Lithuania 2020-11-20 42757.0 2265.0 1554.143 357.0 16.0 14.857 15706.256 832.02 570.895 131.14 5.877 5.458 1.33 null null null null null null null null 1159456.0 14358.0 425.912 5.274 11084.0 4.072 0.14 7.1 null 62.96 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
MKD Europe Macedonia 2020-06-05 2790.0 179.0 94.429 149.0 2.0 3.286 1339.17 85.918 45.325 71.518 0.96 1.577 1.68 null null null null null null null null 34386.0 1272.0 16.505 0.611 957.0 0.459 9.9e-2 10.1 null null 2083380.0 82.6 39.1 13.26 8.16 13111.214 5.0 322.688 10.08 null null null 4.28 75.8 0.757
MKD Europe Macedonia 2020-07-05 7046.0 114.0 138.0 341.0 7.0 7.857 3382.004 54.719 66.239 163.676 3.36 3.771 1.0 null null null null null null null null 67165.0 1032.0 32.238 0.495 1209.0 0.58 0.114 8.8 null null 2083380.0 82.6 39.1 13.26 8.16 13111.214 5.0 322.688 10.08 null null null 4.28 75.8 0.757
iso_code continent location date total_cases new_cases new_cases_smoothed total_deaths new_deaths new_deaths_smoothed reproduction_rate icu_patients icu_patients_per_million hosp_patients hosp_patients_per_million weekly_icu_admissions weekly_icu_admissions_per_million weekly_hosp_admissions weekly_hosp_admissions_per_million total_tests new_tests total_tests_per_thousand new_tests_per_thousand new_tests_smoothed new_tests_smoothed_per_thousand tests_per_case positive_rate tests_units stringency_index population population_density median_age aged_65_older aged_70_older gdp_per_capita extreme_poverty cardiovasc_death_rate diabetes_prevalence female_smokers male_smokers handwashing_facilities hospital_beds_per_thousand life_expectancy human_development_index total_cases_per_million new_cases_per_million new_cases_smoothed_per_million total_deaths_per_million new_deaths_per_million new_deaths_smoothed_per_million
PRY South America Paraguay 2020-01-23 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-01-24 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-01-25 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-01-26 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-01-27 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-01-28 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-01-29 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-01-31 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-01 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-02 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-03 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-04 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-05 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-06 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-07 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-08 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-09 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-10 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-11 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-12 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-13 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-14 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-15 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-16 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-17 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-18 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-19 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-20 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-21 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-22 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-23 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-24 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-25 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-26 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-27 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-28 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-29 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-03-01 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-03-02 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-03-03 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-03-04 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-03-05 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-03-06 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-03-07 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 1.0 1.4020270507099166e-4 0.0 null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-03-08 1.0 1.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.14020270507099164 0.14020270507099164 2.0048986825151802e-2 0.0 0.0 0.0
PRY South America Paraguay 2020-03-09 1.0 0.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.14020270507099164 0.0 2.0048986825151802e-2 0.0 0.0 0.0
PRY South America Paraguay 2020-03-10 1.0 0.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 9.0 8.0 1.2618243456389247e-3 1.0e-3 null null null null null 39.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.14020270507099164 0.0 2.0048986825151802e-2 0.0 0.0 0.0
PRY South America Paraguay 2020-03-11 5.0 4.0 0.714 0.0 0.0 0.0 1.0 null null null null null null null null 16.0 7.0 2.2432432811358666e-3 1.0e-3 null null null null null 39.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.7010135253549582 0.5608108202839666 0.10010473142068803 0.0 0.0 0.0
PRY South America Paraguay 2020-03-12 5.0 0.0 0.714 0.0 0.0 0.0 1.0 null null null null null null null null 22.0 6.0 3.0844595115618162e-3 1.0e-3 null null null null null 39.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.7010135253549582 0.0 0.10010473142068803 0.0 0.0 0.0
PRY South America Paraguay 2020-03-13 6.0 1.0 0.857 0.0 0.0 0.0 1.0 null null null null null null null null 39.0 17.0 5.467905497768674e-3 2.0e-3 null null null null null 50.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.8412162304259498 0.14020270507099164 0.12015371824583984 0.0 0.0 0.0
PRY South America Paraguay 2020-03-14 6.0 0.0 0.857 0.0 0.0 0.0 1.0 null null null null null null null null 54.0 15.0 7.570946073833549e-3 2.0e-3 8.0 1.0e-3 0.107 9.3 null 50.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.8412162304259498 0.0 0.12015371824583984 0.0 0.0 0.0
PRY South America Paraguay 2020-03-15 6.0 0.0 0.714 0.0 0.0 0.0 1.0 null null null null null null null null 87.0 33.0 1.2197635341176273e-2 5.0e-3 12.0 2.0e-3 6.0e-2 16.8 null 50.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.8412162304259498 0.0 0.10010473142068803 0.0 0.0 0.0
PRY South America Paraguay 2020-03-16 8.0 2.0 1.0 0.0 0.0 0.0 1.0 null null null null null null null null 114.0 27.0 1.5983108378093046e-2 4.0e-3 15.0 2.0e-3 6.7e-2 15.0 null 70.37 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1.1216216405679331 0.2804054101419833 0.14020270507099164 0.0 0.0 0.0
PRY South America Paraguay 2020-03-17 9.0 1.0 1.143 0.0 0.0 0.0 1.0 null null null null null null null null 140.0 26.0 1.962837870993883e-2 4.0e-3 19.0 3.0e-3 6.0e-2 16.6 null 74.07 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1.2618243456389249 0.14020270507099164 0.16025169189614347 0.0 0.0 0.0
PRY South America Paraguay 2020-03-18 11.0 2.0 0.857 0.0 0.0 0.0 1.0 null null null null null null null null 164.0 24.0 2.299324363164263e-2 3.0e-3 21.0 3.0e-3 4.1e-2 24.5 null 74.07 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1.5422297557809082 0.2804054101419833 0.12015371824583984 0.0 0.0 0.0
PRY South America Paraguay 2020-03-19 11.0 0.0 0.857 0.0 0.0 0.0 1.0 null null null null null null null null 196.0 32.0 2.747973019391436e-2 4.0e-3 25.0 4.0e-3 3.4e-2 29.2 null 74.07 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1.5422297557809082 0.0 0.12015371824583984 0.0 0.0 0.0
PRY South America Paraguay 2020-03-20 13.0 2.0 1.0 0.0 0.0 0.0 1.0 null null null null null null null null 240.0 44.0 3.3648649217037994e-2 6.0e-3 29.0 4.0e-3 3.4e-2 29.0 null 74.07 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1.8226351659228912 0.2804054101419833 0.14020270507099164 0.0 0.0 0.0
PRY South America Paraguay 2020-03-21 18.0 5.0 1.714 1.0 1.0 0.143 1.0 null null null null null null null null 308.0 68.0 4.318243316186543e-2 1.0e-2 36.0 5.0e-3 4.8e-2 21.0 null 85.19 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2.5236486912778497 0.7010135253549582 0.24030743649167968 0.14020270507099164 0.14020270507099164 2.0048986825151802e-2
PRY South America Paraguay 2020-03-22 22.0 4.0 2.286 1.0 0.0 0.143 1.0 null null null null null null null null 345.0 37.0 4.836993324949211e-2 5.0e-3 37.0 5.0e-3 6.2e-2 16.2 null 85.19 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3.0844595115618163 0.5608108202839666 0.32050338379228693 0.14020270507099164 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-03-23 22.0 0.0 2.0 1.0 0.0 0.143 1.0 null null null null null null null null 434.0 89.0 6.084797400081037e-2 1.2e-2 46.0 6.0e-3 4.3e-2 23.0 null 90.74 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3.0844595115618163 0.0 0.2804054101419833 0.14020270507099164 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-03-24 27.0 5.0 2.571 2.0 1.0 0.286 1.0 null null null null null null null null 525.0 91.0 7.360642016227062e-2 1.3e-2 55.0 8.0e-3 4.7e-2 21.4 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3.785473036916774 0.7010135253549582 0.3604611547375195 0.2804054101419833 0.14020270507099164 4.0097973650303605e-2
PRY South America Paraguay 2020-03-25 37.0 10.0 3.714 3.0 1.0 0.429 1.0 null null null null null null null null 576.0 51.0 8.075675812089118e-2 7.0e-3 59.0 8.0e-3 6.3e-2 15.9 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5.187500087626691 1.4020270507099164 0.520712846633663 0.4206081152129749 0.14020270507099164 6.014696047545541e-2
PRY South America Paraguay 2020-03-26 41.0 4.0 4.286 3.0 0.0 0.429 1.0 null null null null null null null null 654.0 78.0 9.169256911642854e-2 1.1e-2 65.0 9.0e-3 6.6e-2 15.2 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5.748310907910658 0.5608108202839666 0.6009087939342701 0.4206081152129749 0.0 6.014696047545541e-2
PRY South America Paraguay 2020-03-27 52.0 11.0 5.571 3.0 0.0 0.429 1.0 null null null null null null null null 755.0 101.0 0.1058530423285987 1.4e-2 74.0 1.0e-2 7.5e-2 13.3 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7.290540663691565 1.5422297557809082 0.7810692699504943 0.4206081152129749 0.0 6.014696047545541e-2
PRY South America Paraguay 2020-03-28 56.0 4.0 5.429 3.0 0.0 0.286 1.0 null null null null null null null null 815.0 60.0 0.11426520463285819 8.0e-3 72.0 1.0e-2 7.5e-2 13.3 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7.851351483975532 0.5608108202839666 0.7611604858304136 0.4206081152129749 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-03-29 59.0 3.0 5.286 3.0 0.0 0.286 1.0 null null null null null null null null 920.0 105.0 0.12898648866531232 1.5e-2 82.0 1.1e-2 6.4e-2 15.5 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8.271959599188508 0.4206081152129749 0.7411114990052617 0.4206081152129749 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-03-30 64.0 5.0 6.0 3.0 0.0 0.286 1.0 null null null null null null null null 988.0 68.0 0.13852027261013974 1.0e-2 79.0 1.1e-2 7.6e-2 13.2 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8.972973124543465 0.7010135253549582 0.8412162304259498 0.4206081152129749 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-03-31 65.0 1.0 5.429 3.0 0.0 0.143 1.0 null null null null null null null null 1078.0 90.0 0.15113851606652898 1.3e-2 79.0 1.1e-2 6.9e-2 14.6 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9.113175829614455 0.14020270507099164 0.7611604858304136 0.4206081152129749 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-01 69.0 4.0 4.571 3.0 0.0 0.0 1.0 null null null null null null null null 1173.0 95.0 0.1644577730482732 1.3e-2 85.0 1.2e-2 5.4e-2 18.6 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9.673986649898424 0.5608108202839666 0.6408665648795027 0.4206081152129749 0.0 0.0
PRY South America Paraguay 2020-04-02 77.0 8.0 5.143 3.0 0.0 0.0 1.0 null null null null null null null null 1289.0 116.0 0.18072128683650823 1.6e-2 91.0 1.3e-2 5.7e-2 17.7 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10.795608290466356 1.1216216405679331 0.72106251218011 0.4206081152129749 0.0 0.0
PRY South America Paraguay 2020-04-03 92.0 15.0 5.714 3.0 0.0 0.0 1.0 null null null null null null null null 1454.0 165.0 0.20385473317322184 2.3e-2 100.0 1.4e-2 5.7e-2 17.5 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 12.89864886653123 2.1030405760648745 0.8011182567756463 0.4206081152129749 0.0 0.0
PRY South America Paraguay 2020-04-04 96.0 4.0 5.714 3.0 0.0 0.0 1.0 null null null null null null null null 1646.0 192.0 0.23077365254685223 2.7e-2 119.0 1.7e-2 4.8e-2 20.8 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 13.459459686815197 0.5608108202839666 0.8011182567756463 0.4206081152129749 0.0 0.0
PRY South America Paraguay 2020-04-05 104.0 8.0 6.429 3.0 0.0 0.0 1.0 null null null null null null null null 1846.0 200.0 0.25881419356105057 2.8e-2 132.0 1.9e-2 4.9e-2 20.5 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 14.58108132738313 1.1216216405679331 0.9013631909014053 0.4206081152129749 0.0 0.0
PRY South America Paraguay 2020-04-06 113.0 9.0 7.0 5.0 2.0 0.286 1.0 null null null null null null null null 2008.0 162.0 0.28152703178255123 2.3e-2 146.0 2.0e-2 4.8e-2 20.9 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 15.842905673022058 1.2618243456389249 0.9814189354969415 0.7010135253549582 0.2804054101419833 4.0097973650303605e-2
PRY South America Paraguay 2020-04-07 115.0 2.0 7.143 5.0 0.0 0.286 0.99 null null null null null null null null 2220.0 212.0 0.31125000525760144 3.0e-2 163.0 2.3e-2 4.4e-2 22.8 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 16.123311083164037 0.2804054101419833 1.0014679223220933 0.7010135253549582 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-04-08 119.0 4.0 7.143 5.0 0.0 0.286 1.0 null null null null null null null null 2462.0 242.0 0.3451790598847814 3.4e-2 184.0 2.6e-2 3.9e-2 25.8 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 16.684121903448005 0.5608108202839666 1.0014679223220933 0.7010135253549582 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-04-09 124.0 5.0 6.714 5.0 0.0 0.286 1.0 null null null null null null null null 2685.0 223.0 0.3764442631156126 3.1e-2 199.0 2.8e-2 3.4e-2 29.6 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 17.38513542880296 0.7010135253549582 0.9413209618466379 0.7010135253549582 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-04-10 129.0 5.0 5.286 6.0 1.0 0.429 1.01 null null null null null null null null 2905.0 220.0 0.40728885823123073 3.1e-2 207.0 2.9e-2 2.6e-2 39.2 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 18.086148954157924 0.7010135253549582 0.7411114990052617 0.8412162304259498 0.14020270507099164 6.014696047545541e-2
PRY South America Paraguay 2020-04-11 133.0 4.0 5.286 6.0 0.0 0.429 1.03 null null null null null null null null 3135.0 230.0 0.43953548039755874 3.2e-2 213.0 3.0e-2 2.5e-2 40.3 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 18.64695977444189 0.5608108202839666 0.7411114990052617 0.8412162304259498 0.0 6.014696047545541e-2
PRY South America Paraguay 2020-04-12 134.0 1.0 4.286 6.0 0.0 0.429 1.05 null null null null null null null null 3394.0 259.0 0.4758479810109456 3.6e-2 221.0 3.1e-2 1.9e-2 51.6 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 18.78716247951288 0.14020270507099164 0.6009087939342701 0.8412162304259498 0.0 6.014696047545541e-2
PRY South America Paraguay 2020-04-13 147.0 13.0 4.857 6.0 0.0 0.143 1.08 null null null null null null null null 3642.0 248.0 0.5106182518685515 3.5e-2 233.0 3.3e-2 2.1e-2 48.0 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 20.60979764543577 1.8226351659228912 0.6809645385298064 0.8412162304259498 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-14 159.0 12.0 6.286 7.0 1.0 0.286 1.09 null null null null null null null null 3888.0 246.0 0.5451081173160155 3.4e-2 238.0 3.3e-2 2.6e-2 37.9 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 22.292230106287672 1.6824324608518997 0.8813142040762534 0.9814189354969415 0.14020270507099164 4.0097973650303605e-2
PRY South America Paraguay 2020-04-15 161.0 2.0 6.0 8.0 1.0 0.429 1.1 null null null null null null null null 4267.0 379.0 0.5982449425379214 5.3e-2 258.0 3.6e-2 2.3e-2 43.0 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 22.572635516429653 0.2804054101419833 0.8412162304259498 1.1216216405679331 0.14020270507099164 6.014696047545541e-2
PRY South America Paraguay 2020-04-16 174.0 13.0 7.143 8.0 0.0 0.429 1.12 null null null null null null null null 4612.0 345.0 0.6466148757874134 4.8e-2 275.0 3.9e-2 2.6e-2 38.5 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 24.395270682352546 1.8226351659228912 1.0014679223220933 1.1216216405679331 0.0 6.014696047545541e-2
PRY South America Paraguay 2020-04-17 199.0 25.0 10.0 8.0 0.0 0.286 1.13 null null null null null null null null 4950.0 338.0 0.6940033901014087 4.7e-2 292.0 4.1e-2 3.4e-2 29.2 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 27.900338309127335 3.505067626774791 1.4020270507099164 1.1216216405679331 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-04-18 202.0 3.0 9.857 8.0 0.0 0.286 1.1 null null null null null null null null 5254.0 304.0 0.7366250124429901 4.3e-2 303.0 4.2e-2 3.3e-2 30.7 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 28.320946424340313 0.4206081152129749 1.3819780638847645 1.1216216405679331 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-04-19 206.0 4.0 10.286 8.0 0.0 0.286 1.08 null null null null null null null null 5501.0 247.0 0.771255080595525 3.5e-2 301.0 4.2e-2 3.4e-2 29.3 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 28.88175724462428 0.5608108202839666 1.44212502436022 1.1216216405679331 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-04-20 208.0 2.0 8.714 8.0 0.0 0.286 1.08 null null null null null null null null 5878.0 377.0 0.8241115004072889 5.3e-2 319.0 4.5e-2 2.7e-2 36.6 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 29.16216265476626 0.2804054101419833 1.221726371988621 1.1216216405679331 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-04-21 208.0 0.0 7.0 8.0 0.0 0.143 1.08 null null null null null null null null 6292.0 414.0 0.8821554203066794 5.8e-2 343.0 4.8e-2 2.0e-2 49.0 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 29.16216265476626 0.0 0.9814189354969415 1.1216216405679331 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-22 213.0 5.0 7.429 9.0 1.0 0.143 1.1 null null null null null null null null 6598.0 306.0 0.9250574480584028 4.3e-2 333.0 4.7e-2 2.2e-2 44.8 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 29.863176180121222 0.7010135253549582 1.041565895972397 1.2618243456389249 0.14020270507099164 2.0048986825151802e-2
PRY South America Paraguay 2020-04-23 213.0 0.0 5.571 9.0 0.0 0.143 1.12 null null null null null null null null 6917.0 319.0 0.9697821109760492 4.5e-2 329.0 4.6e-2 1.7e-2 59.1 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 29.863176180121222 0.0 0.7810692699504943 1.2618243456389249 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-24 223.0 10.0 3.429 9.0 0.0 0.143 1.16 null null null null null null null null 7322.0 405.0 1.0265642065298008 5.7e-2 339.0 4.8e-2 1.0e-2 98.9 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 31.265203230831137 1.4020270507099164 0.4807550756884303 1.2618243456389249 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-25 228.0 5.0 3.714 9.0 0.0 0.143 1.18 null null null null null null null null 7630.0 308.0 1.0697466396916664 4.3e-2 339.0 4.8e-2 1.1e-2 91.3 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 31.966216756186093 0.7010135253549582 0.520712846633663 1.2618243456389249 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-26 228.0 0.0 3.143 9.0 0.0 0.143 1.21 null null null null null null null null 7925.0 295.0 1.1111064376876088 4.1e-2 346.0 4.9e-2 9.0e-3 110.1 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 31.966216756186093 0.0 0.4406571020381267 1.2618243456389249 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-27 228.0 0.0 2.857 9.0 0.0 0.143 1.26 null null null null null null null null 8444.0 519.0 1.1838716416194535 7.3e-2 367.0 5.1e-2 8.0e-3 128.5 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 31.966216756186093 0.0 0.40055912838782315 1.2618243456389249 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-28 239.0 11.0 4.429 9.0 0.0 0.143 1.34 null null null null null null null null 8891.0 447.0 1.2465422507861867 6.3e-2 371.0 5.2e-2 1.2e-2 83.8 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 33.508446511967 1.5422297557809082 0.620957780759422 1.2618243456389249 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-29 239.0 0.0 3.714 9.0 0.0 0.0 1.41 null null null null null null null null 9454.0 563.0 1.325476373741155 7.9e-2 408.0 5.7e-2 9.0e-3 109.9 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 33.508446511967 0.0 0.520712846633663 1.2618243456389249 0.0 0.0
PRY South America Paraguay 2020-04-30 266.0 27.0 7.571 10.0 1.0 0.143 1.53 null null null null null null null null 9903.0 449.0 1.3884273883180303 6.3e-2 427.0 6.0e-2 1.8e-2 56.4 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 37.29391954888378 3.785473036916774 1.0614746800924777 1.4020270507099164 0.14020270507099164 2.0048986825151802e-2
PRY South America Paraguay 2020-05-01 333.0 67.0 15.714 10.0 0.0 0.143 1.57 null null null null null null null null 10342.0 439.0 1.4499763758441955 6.2e-2 431.0 6.0e-2 3.6e-2 27.4 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 46.687500788640214 9.39358123975644 2.203145307485563 1.4020270507099164 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-02 370.0 37.0 20.286 10.0 0.0 0.143 1.5 null null null null null null null null 10766.0 424.0 1.509422322794296 5.9e-2 448.0 6.3e-2 4.5e-2 22.1 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 51.87500087626691 5.187500087626691 2.8441520750701366 1.4020270507099164 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-03 396.0 26.0 24.0 10.0 0.0 0.143 1.43 null null null null null null null null 11106.0 340.0 1.5570912425184331 4.8e-2 454.0 6.4e-2 5.3e-2 18.9 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 55.52027120811269 3.6452703318457824 3.3648649217037994 1.4020270507099164 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-04 415.0 19.0 26.714 10.0 0.0 0.143 1.38 null null null null null null null null 11455.0 349.0 1.606021986588209 4.9e-2 430.0 6.0e-2 6.2e-2 16.1 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 58.184122604461535 2.663851396348841 3.745375063266471 1.4020270507099164 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-05 431.0 16.0 27.429 10.0 0.0 0.143 1.35 null null null null null null null null 11913.0 458.0 1.6702348255107233 6.4e-2 432.0 6.1e-2 6.3e-2 15.7 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 60.427365885597396 2.2432432811358662 3.8456199973922294 1.4020270507099164 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-06 440.0 9.0 28.714 10.0 0.0 0.143 1.35 null null null null null null null null 12497.0 584.0 1.7521132052721826 8.2e-2 435.0 6.1e-2 6.6e-2 15.1 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 61.68919023123632 1.2618243456389249 4.025780473408454 1.4020270507099164 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-07 462.0 22.0 28.0 10.0 0.0 0.0 1.36 null null null null null null null null 13096.0 599.0 1.8360946256097066 8.4e-2 456.0 6.4e-2 6.1e-2 16.3 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 64.77364974279814 3.0844595115618163 3.925675741987766 1.4020270507099164 0.0 0.0
PRY South America Paraguay 2020-05-08 563.0 101.0 32.857 10.0 0.0 0.0 1.4 null null null null null null null null 13846.0 750.0 1.9412466544129503 0.105 501.0 7.0e-2 6.6e-2 15.2 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 78.9341229549683 14.160473212170157 4.606640280517572 1.4020270507099164 0.0 0.0
PRY South America Paraguay 2020-05-09 689.0 126.0 45.571 10.0 0.0 0.0 1.36 null null null null null null null null 14646.0 800.0 2.053408818469743 0.112 554.0 7.8e-2 8.2e-2 12.2 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 96.59966379391324 17.665540838944946 6.38917747279016 1.4020270507099164 0.0 0.0
PRY South America Paraguay 2020-05-10 713.0 24.0 45.286 10.0 0.0 0.0 1.27 null null null null null null null null 15446.0 800.0 2.1655709825265372 0.112 620.0 8.7e-2 7.3e-2 13.7 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 99.96452871561705 3.3648649217037994 6.349219701844928 1.4020270507099164 0.0 0.0
PRY South America Paraguay 2020-05-11 724.0 11.0 44.143 10.0 0.0 0.0 1.2 null null null null null null null null 16155.0 709.0 2.2649747004218703 9.9e-2 671.0 9.4e-2 6.6e-2 15.2 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 101.50675847139796 1.5422297557809082 6.188968009948784 1.4020270507099164 0.0 0.0
PRY South America Paraguay 2020-05-12 737.0 13.0 43.714 10.0 0.0 0.0 1.15 null null null null null null null null 16917.0 762.0 2.371809161685966 0.107 715.0 0.1 6.1e-2 16.4 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 103.32939363732085 1.8226351659228912 6.128821049473328 1.4020270507099164 0.0 0.0
PRY South America Paraguay 2020-05-13 740.0 3.0 42.857 11.0 1.0 0.143 1.12 null null null null null null null null 17589.0 672.0 2.4660253794936717 9.4e-2 727.0 0.102 5.9e-2 17.0 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 103.75000175253382 0.4206081152129749 6.008667331227488 1.5422297557809082 0.14020270507099164 2.0048986825151802e-2
PRY South America Paraguay 2020-05-14 754.0 14.0 41.714 11.0 0.0 0.143 1.1 null null null null null null null null 18184.0 595.0 2.549445989010912 8.3e-2 727.0 0.102 5.7e-2 17.4 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 105.7128396235277 1.962837870993883 5.848415639331345 1.5422297557809082 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-15 759.0 5.0 28.0 11.0 0.0 0.143 1.08 null null null null null null null null 18856.0 672.0 2.643662206818618 9.4e-2 716.0 0.1 3.9e-2 25.6 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 106.41385314888265 0.7010135253549582 3.925675741987766 1.5422297557809082 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-16 778.0 19.0 12.714 11.0 0.0 0.143 1.08 null null null null null null null null 19308.0 452.0 2.7070338295107064 6.3e-2 666.0 9.3e-2 1.9e-2 52.4 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 109.0777045452315 2.663851396348841 1.782537192272588 1.5422297557809082 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-17 786.0 8.0 10.429 11.0 0.0 0.143 1.07 null null null null null null null null 20124.0 816.0 2.8214392368486356 0.114 668.0 9.4e-2 1.6e-2 64.1 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 110.19932618579944 1.1216216405679331 1.4621740111853718 1.5422297557809082 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-18 788.0 2.0 9.143 11.0 0.0 0.143 1.07 null null null null null null null null 20429.0 305.0 2.864201061895288 4.3e-2 611.0 8.6e-2 1.5e-2 66.8 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 110.47973159594142 0.2804054101419833 1.2818733324640765 1.5422297557809082 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-19 829.0 41.0 13.143 11.0 0.0 0.143 1.09 null null null null null null null null 21121.0 692.0 2.9612213338044144 9.7e-2 601.0 8.4e-2 2.2e-2 45.7 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 116.22804250385207 5.748310907910658 1.8426841527480433 1.5422297557809082 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-20 833.0 4.0 13.286 11.0 0.0 0.0 1.07 null null null null null null null null 21542.0 421.0 3.020246672639302 5.9e-2 565.0 7.9e-2 2.4e-2 42.5 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 116.78885332413604 0.5608108202839666 1.8627331395731948 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-21 836.0 3.0 11.714 11.0 0.0 0.0 1.06 null null null null null null null null 21987.0 445.0 3.082636876395893 6.2e-2 543.0 7.6e-2 2.2e-2 46.4 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 117.20946143934901 0.4206081152129749 1.6423344872015961 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-22 838.0 2.0 11.286 11.0 0.0 0.0 1.06 null null null null null null null null 22868.0 881.0 3.206155459563437 0.124 573.0 8.0e-2 2.0e-2 50.8 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 117.489866849491 0.2804054101419833 1.5823277294312115 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-23 850.0 12.0 10.286 11.0 0.0 0.0 1.08 null null null null null null null null 23805.0 937.0 3.3375253942149556 0.131 642.0 9.0e-2 1.6e-2 62.4 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 119.1722993103429 1.6824324608518997 1.44212502436022 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-24 862.0 12.0 10.857 11.0 0.0 0.0 1.09 null null null null null null null null 24812.0 1007.0 3.4787095182214443 0.141 670.0 9.4e-2 1.6e-2 61.7 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 120.85473177119479 1.6824324608518997 1.522180768955756 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-25 865.0 3.0 11.0 11.0 0.0 0.0 1.1 null null null null null null null null 25216.0 404.0 3.5353514110701254 5.7e-2 684.0 9.6e-2 1.6e-2 62.2 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 121.27533988640776 0.4206081152129749 1.5422297557809082 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-26 877.0 12.0 6.857 11.0 0.0 0.0 1.13 null null null null null null null null 26169.0 953.0 3.66896458900278 0.134 721.0 0.101 1.0e-2 105.1 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 122.95777234725966 1.6824324608518997 0.9613699486717897 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-27 884.0 7.0 7.286 11.0 0.0 0.0 1.15 null null null null null null null null 26760.0 591.0 3.7518243876997364 8.3e-2 745.0 0.104 1.0e-2 102.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 123.93919128275661 0.9814189354969415 1.021516909147245 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-28 900.0 16.0 9.143 11.0 0.0 0.0 1.19 null null null null null null null null 27425.0 665.0 3.845059186571946 9.3e-2 777.0 0.109 1.2e-2 85.0 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 126.18243456389249 2.2432432811358662 1.2818733324640765 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-29 917.0 17.0 11.286 11.0 0.0 0.0 1.22 null null null null null null null null 28337.0 912.0 3.9729240535966905 0.128 781.0 0.109 1.4e-2 69.2 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 128.56588055009934 2.383445986206858 1.5823277294312115 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-30 964.0 47.0 16.286 11.0 0.0 0.0 1.25 null null null null null null null null 29153.0 816.0 4.087329460934619 0.114 764.0 0.107 2.1e-2 46.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 135.15540768843593 6.5895271383366065 2.28334125478617 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-31 986.0 22.0 17.714 11.0 0.0 0.0 1.23 null null null null null null null null 30004.0 851.0 4.206641962950033 0.119 742.0 0.104 2.4e-2 41.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 138.23986719999775 3.0844595115618163 2.4835507176275455 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-01 995.0 9.0 18.571 11.0 0.0 0.0 1.22 null null null null null null null null 30834.0 830.0 4.323010208158957 0.116 803.0 0.113 2.3e-2 43.2 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 139.5016915456367 1.2618243456389249 2.6037044358733863 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-02 1013.0 18.0 19.429 11.0 0.0 0.0 1.22 null null null null null null null null 32106.0 1272.0 4.501348049009257 0.178 848.0 0.119 2.3e-2 43.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 142.02534023691453 2.5236486912778497 2.7239983568242967 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-03 1070.0 57.0 26.571 11.0 0.0 0.0 1.23 null null null null null null null null 33081.0 975.0 4.6380456864534745 0.137 903.0 0.127 2.9e-2 34.0 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 150.01689442596106 7.991554189046523 3.7253260764413194 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-04 1086.0 16.0 26.571 11.0 0.0 0.0 1.2 null null null null null null null null 34240.0 1159.0 4.800540621630754 0.162 974.0 0.137 2.7e-2 36.7 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 152.26013770709693 2.2432432811358662 3.7253260764413194 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-05 1087.0 1.0 24.286 11.0 0.0 0.0 1.18 null null null null null null null null 35258.0 1018.0 4.943266975393024 0.143 989.0 0.139 2.5e-2 40.7 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 152.4003404121679 0.14020270507099164 3.404962895354103 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-06 1090.0 3.0 18.0 11.0 0.0 0.0 1.18 null null null null null null null null 36373.0 1115.0 5.099592991547179 0.156 1031.0 0.145 1.7e-2 57.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 152.8209485273809 0.4206081152129749 2.5236486912778497 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-07 1135.0 45.0 21.286 11.0 0.0 0.0 1.21 null null null null null null null null 37532.0 1159.0 5.262087926724458 0.162 1075.0 0.151 2.0e-2 50.5 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 159.1300702555755 6.309121728194624 2.9843547801411283 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-08 1145.0 10.0 21.429 11.0 0.0 0.0 1.19 null null null null null null null null 38942.0 1410.0 5.459773740874557 0.198 1158.0 0.162 1.9e-2 54.0 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 160.53209730628544 1.4020270507099164 3.0044037669662798 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-09 1187.0 42.0 24.857 11.0 0.0 0.0 1.2 null null null null null null null null 40032.0 1090.0 5.612594689401938 0.153 1132.0 0.159 2.2e-2 45.5 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 166.42061091926706 5.888513612981649 3.4850186399496392 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-10 1202.0 15.0 18.857 11.0 0.0 0.0 1.18 null null null null null null null null 41702.0 1670.0 5.846733206870494 0.234 1232.0 0.173 1.5e-2 65.3 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 168.52365149533196 2.1030405760648745 2.643802409523689 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-11 1230.0 28.0 20.571 11.0 0.0 0.0 1.18 null null null null null null null null 43292.0 1590.0 6.06965550793337 0.223 1293.0 0.181 1.6e-2 62.9 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 172.44932723731972 3.925675741987766 2.8841098460153693 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-12 1254.0 24.0 23.857 11.0 0.0 0.0 1.17 null null null null null null null null 45132.0 1840.0 6.327628485263995 0.258 1411.0 0.198 1.7e-2 59.1 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 175.81419215902352 3.3648649217037994 3.3448159348786475 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-13 1261.0 7.0 24.429 11.0 0.0 0.0 1.16 null null null null null null null null 46608.0 1476.0 6.534567677948779 0.207 1462.0 0.205 1.7e-2 59.8 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 176.79561109452047 0.9814189354969415 3.4250118821792546 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-14 1289.0 28.0 22.0 11.0 0.0 0.0 1.16 null null null null null null null null 48081.0 1473.0 6.741086262518349 0.207 1507.0 0.211 1.5e-2 68.5 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 180.72128683650823 3.925675741987766 3.0844595115618163 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-15 1296.0 7.0 21.571 12.0 1.0 0.143 1.15 null null null null null null null null 48729.0 648.0 6.831937615404351 9.1e-2 1398.0 0.196 1.5e-2 64.8 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 181.70270577200515 0.9814189354969415 3.0243125510863607 1.6824324608518997 0.14020270507099164 2.0048986825151802e-2
PRY South America Paraguay 2020-06-16 1303.0 7.0 16.571 13.0 1.0 0.286 1.15 null null null null null null null null 49978.0 1249.0 7.00705079403802 0.175 1421.0 0.199 1.2e-2 85.8 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 182.6841247075021 0.9814189354969415 2.323299025731403 1.8226351659228912 0.14020270507099164 4.0097973650303605e-2
PRY South America Paraguay 2020-06-17 1308.0 5.0 15.143 13.0 0.0 0.286 1.17 null null null null null null null null 51178.0 1200.0 7.17529404012321 0.168 1354.0 0.19 1.1e-2 89.4 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 183.38513823285706 0.7010135253549582 2.1230895628900264 1.8226351659228912 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-06-18 1330.0 22.0 14.286 13.0 0.0 0.286 1.2 null null null null null null null null 52649.0 1471.0 7.381532219282638 0.206 1337.0 0.187 1.1e-2 93.6 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 186.46959774441888 3.0844595115618163 2.0029358446441865 1.8226351659228912 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-06-19 1336.0 6.0 11.714 13.0 0.0 0.286 1.23 null null null null null null null null 54278.0 1629.0 7.609922425843284 0.228 1307.0 0.183 9.0e-3 111.6 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 187.31081397484482 0.8412162304259498 1.6423344872015961 1.8226351659228912 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-06-20 1362.0 26.0 14.429 13.0 0.0 0.286 1.27 null null null null null null null null 55827.0 1549.0 7.82709641599825 0.217 1317.0 0.185 1.1e-2 91.3 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 190.9560843066906 3.6452703318457824 2.0229848314693384 1.8226351659228912 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-06-21 1379.0 17.0 12.857 13.0 0.0 0.286 1.31 null null null null null null null null 56992.0 1165.0 7.990432567405956 0.163 1273.0 0.178 1.0e-2 99.0 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 193.33953029289748 2.383445986206858 1.8025861790977393 1.8226351659228912 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-06-22 1392.0 13.0 13.714 13.0 0.0 0.143 1.35 null null null null null null null null 57895.0 903.0 8.117035610085061 0.127 1309.0 0.184 1.0e-2 95.4 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 195.16216545882037 1.8226351659228912 1.9227398973435794 1.8226351659228912 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-06-23 1422.0 30.0 17.0 13.0 0.0 0.0 1.42 null null null null null null null null 59454.0 1559.0 8.335611627290737 0.219 1354.0 0.19 1.3e-2 79.6 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 199.3682466109501 4.206081152129749 2.383445986206858 1.8226351659228912 0.0 0.0
PRY South America Paraguay 2020-06-24 1528.0 106.0 31.429 13.0 0.0 0.0 1.49 null null null null null null null null 60811.0 1357.0 8.525866698072072 0.19 1376.0 0.193 2.3e-2 43.8 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 214.22973334847524 14.861486737525114 4.4064308176761955 1.8226351659228912 0.0 0.0
PRY South America Paraguay 2020-06-25 1569.0 41.0 34.143 13.0 0.0 0.0 1.49 null null null null null null null null 62384.0 1573.0 8.746405553148742 0.221 1391.0 0.195 2.5e-2 40.7 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 219.97804425638589 5.748310907910658 4.786940959238867 1.8226351659228912 0.0 0.0
PRY South America Paraguay 2020-06-26 1711.0 142.0 53.571 13.0 0.0 0.0 1.51 null null null null null null null null 63974.0 1590.0 8.969327854211619 0.223 1385.0 0.194 3.9e-2 25.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 239.8868283764667 19.908784120080814 7.510799113358093 1.8226351659228912 0.0 0.0
PRY South America Paraguay 2020-06-27 1942.0 231.0 82.857 15.0 2.0 0.286 1.49 null null null null null null null null 65605.0 1631.0 9.197998466182407 0.229 1397.0 0.196 5.9e-2 16.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 272.27365324786575 32.38682487139907 11.616775534067154 2.1030405760648745 0.2804054101419833 4.0097973650303605e-2
PRY South America Paraguay 2020-06-28 2127.0 185.0 106.857 15.0 0.0 0.286 1.42 null null null null null null null null 66966.0 1361.0 9.388814347784026 0.191 1425.0 0.2 7.5e-2 13.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 298.2111536859992 25.937500438133455 14.981640455770952 2.1030405760648745 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-06-29 2191.0 64.0 114.143 16.0 1.0 0.429 1.33 null null null null null null null null 68027.0 1061.0 9.537569417864349 0.149 1447.0 0.203 7.9e-2 12.7 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 307.1841268105427 8.972973124543465 16.0031573649182 2.2432432811358662 0.14020270507099164 6.014696047545541e-2
PRY South America Paraguay 2020-06-30 2221.0 30.0 114.143 17.0 1.0 0.571 1.27 null null null null null null null null 69343.0 1316.0 9.722076177737774 0.185 1413.0 0.198 8.1e-2 12.4 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 311.39020796267243 4.206081152129749 16.0031573649182 2.383445986206858 0.14020270507099164 8.005574459553623e-2
PRY South America Paraguay 2020-07-01 2260.0 39.0 104.571 19.0 2.0 0.857 1.23 null null null null null null null null 70690.0 1347.0 9.9109292214684 0.189 1411.0 0.198 7.4e-2 13.5 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 316.85811346044113 5.467905497768673 14.661137071978667 2.663851396348841 0.2804054101419833 0.12015371824583984
PRY South America Paraguay 2020-07-02 2303.0 43.0 104.857 19.0 0.0 0.857 1.2 null null null null null null null null 72319.0 1629.0 10.139319428029044 0.228 1419.0 0.199 7.4e-2 13.5 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 322.88682977849373 6.02871631805264 14.70123504562897 2.663851396348841 0.0 0.12015371824583984
PRY South America Paraguay 2020-07-03 2349.0 46.0 91.143 19.0 0.0 0.857 1.19 null null null null null null null null 74088.0 1769.0 10.387338013299628 0.248 1445.0 0.203 6.3e-2 15.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 329.3361542117594 6.449324433265615 12.77849514828539 2.663851396348841 0.0 0.12015371824583984
PRY South America Paraguay 2020-07-04 2385.0 36.0 63.286 20.0 1.0 0.714 1.18 null null null null null null null null 76077.0 1989.0 10.666201193685831 0.279 1496.0 0.21 4.2e-2 23.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 334.38345159431503 5.0472973825556995 8.872868393122777 2.804054101419833 0.14020270507099164 0.10010473142068803
PRY South America Paraguay 2020-07-05 2427.0 42.0 42.857 20.0 0.0 0.714 1.17 null null null null null null null null 77879.0 1802.0 10.918846468223757 0.253 1559.0 0.219 2.7e-2 36.4 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 340.2719652072967 5.888513612981649 6.008667331227488 2.804054101419833 0.0 0.10010473142068803
PRY South America Paraguay 2020-07-06 2456.0 29.0 37.857 20.0 0.0 0.571 1.18 null null null null null null null null 79365.0 1486.0 11.127187687959252 0.208 1620.0 0.227 2.3e-2 42.8 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 344.3378436543555 4.065878447058758 5.307653805872531 2.804054101419833 0.0 8.005574459553623e-2
PRY South America Paraguay 2020-07-07 2502.0 46.0 40.143 20.0 0.0 0.429 1.19 null null null null null null null null 81441.0 2076.0 11.41824850368663 0.291 1728.0 0.242 2.3e-2 43.0 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 350.7871680876211 6.449324433265615 5.628157189664818 2.804054101419833 0.0 6.014696047545541e-2
PRY South America Paraguay 2020-07-08 2554.0 52.0 42.0 20.0 0.0 0.143 1.21 null null null null null null null null 82974.0 1533.0 11.63317925056046 0.215 1755.0 0.246 2.4e-2 41.8 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 358.0777087513126 7.290540663691565 5.888513612981649 2.804054101419833 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-07-09 2638.0 84.0 47.857 20.0 0.0 0.143 1.23 null null null null null null null null 84991.0 2017.0 11.91596810668865 0.283 1810.0 0.254 2.6e-2 37.8 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 369.85473597727594 11.777027225963298 6.709680856582446 2.804054101419833 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-07-10 2736.0 98.0 55.286 20.0 0.0 0.143 1.24 null null null null null null null null 87203.0 2212.0 12.226096490305684 0.31 1874.0 0.263 3.0e-2 33.9 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 383.59460107423314 13.739865096957182 7.751246752554843 2.804054101419833 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-07-11 2820.0 84.0 62.143 21.0 1.0 0.143 1.24 null null null null null null null null 89344.0 2141.0 12.526270481862678 0.3 1895.0 0.266 3.3e-2 30.5 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 395.37162830019645 11.777027225963298 8.712616701226635 2.9442568064908246 0.14020270507099164 2.0048986825151802e-2
PRY South America Paraguay 2020-07-12 2948.0 128.0 74.429 22.0 1.0 0.286 1.24 null null null null null null null null 91281.0 1937.0 12.797843121585188 0.272 1915.0 0.268 3.9e-2 25.7 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 413.3175745492834 17.94594624908693 10.435147135728837 3.0844595115618163 0.14020270507099164 4.0097973650303605e-2
PRY South America Paraguay 2020-07-13 2980.0 32.0 74.857 25.0 3.0 0.714 1.23 null null null null null null null null 92442.0 1161.0 12.96061846217261 0.163 1868.0 0.262 4.0e-2 25.0 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 417.8040611115551 4.4864865622717325 10.49515389349922 3.505067626774791 0.4206081152129749 0.10010473142068803
PRY South America Paraguay 2020-07-14 3074.0 94.0 81.714 25.0 0.0 0.714 1.24 null null null null null null null null 94328.0 1886.0 13.2250407639365 0.264 1841.0 0.258 4.4e-2 22.5 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 430.98311538822827 13.179054276673213 11.456523842171011 3.505067626774791 0.0 0.10010473142068803
PRY South America Paraguay 2020-07-15 3198.0 124.0 92.0 25.0 0.0 0.714 1.25 null null null null null null null null 96060.0 1732.0 13.467871849119456 0.243 1869.0 0.262 4.9e-2 20.3 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 448.36825081703125 17.38513542880296 12.89864886653123 3.505067626774791 0.0 0.10010473142068803
PRY South America Paraguay 2020-07-16 3342.0 144.0 100.571 27.0 2.0 1.0 1.25 null null null null null null null null 98088.0 2028.0 13.752202935003428 0.284 1871.0 0.262 5.4e-2 18.6 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 468.5574403472541 20.189189530222798 14.1003262516947 3.785473036916774 0.2804054101419833 0.14020270507099164
PRY South America Paraguay 2020-07-17 3457.0 115.0 103.0 28.0 1.0 1.143 1.24 null null null null null null null null 100315.0 2227.0 14.064434359196525 0.312 1873.0 0.263 5.5e-2 18.2 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 484.68075143041807 16.123311083164037 14.44087862231214 3.925675741987766 0.14020270507099164 0.16025169189614347
PRY South America Paraguay 2020-07-18 3629.0 172.0 115.571 29.0 1.0 1.143 1.23 null null null null null null null null 102784.0 2469.0 14.410594838016804 0.346 1920.0 0.269 6.0e-2 16.6 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 508.79561670262865 24.11486527221056 16.203366827759574 4.065878447058758 0.14020270507099164 0.16025169189614347
PRY South America Paraguay 2020-07-19 3721.0 92.0 110.429 31.0 2.0 1.286 1.21 null null null null null null null null 105122.0 2338.0 14.738388762472782 0.328 1977.0 0.277 5.6e-2 17.9 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 521.6942655691599 12.89864886653123 15.482444518284536 4.34628385720074 0.2804054101419833 0.18030067872129527
PRY South America Paraguay 2020-07-20 3748.0 27.0 109.714 33.0 2.0 1.143 1.2 null null null null null null null null 106345.0 1223.0 14.909856670774605 0.171 1986.0 0.278 5.5e-2 18.1 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 525.4797386060767 3.785473036916774 15.382199584158776 4.626689267342724 0.2804054101419833 0.16025169189614347
PRY South America Paraguay 2020-07-21 3817.0 69.0 106.143 35.0 2.0 1.429 1.21 null null null null null null null null 108033.0 1688.0 15.14651883693444 0.237 1958.0 0.275 5.4e-2 18.4 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 535.1537252559751 9.673986649898424 14.881535724350266 4.907094677484707 0.2804054101419833 0.20034966554644704
PRY South America Paraguay 2020-07-22 4000.0 183.0 114.571 36.0 1.0 1.571 1.22 null null null null null null null null 109874.0 1841.0 15.404632016970135 0.258 1973.0 0.277 5.8e-2 17.2 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 560.8108202839666 25.65709502799147 16.063164122688583 5.0472973825556995 0.14020270507099164 0.22025844966652788
PRY South America Paraguay 2020-07-23 4113.0 113.0 110.143 36.0 0.0 1.286 1.21 null null null null null null null null 112039.0 2165.0 15.70817087344883 0.304 1993.0 0.279 5.5e-2 18.1 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 576.6537259569886 15.842905673022058 15.442346544634232 5.0472973825556995 0.0 0.18030067872129527
PRY South America Paraguay 2020-07-24 4224.0 111.0 109.571 38.0 2.0 1.429 1.21 null null null null null null null null 114045.0 2006.0 15.989417499821242 0.281 1961.0 0.275 5.6e-2 17.9 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 592.2162262198686 15.562500262880071 15.362150597333624 5.327702792697682 0.2804054101419833 0.20034966554644704
PRY South America Paraguay 2020-07-25 4328.0 104.0 99.857 40.0 2.0 1.571 1.21 null null null null null null null null 115906.0 1861.0 16.250334733958358 0.261 1875.0 0.263 5.3e-2 18.8 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 606.7973075472519 14.58108132738313 14.000221520274012 5.608108202839666 0.2804054101419833 0.22025844966652788
PRY South America Paraguay 2020-07-26 4444.0 116.0 103.286 41.0 1.0 1.429 1.22 null null null null null null null null 117562.0 1656.0 16.482510413555918 0.232 1777.0 0.249 5.8e-2 17.2 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 623.0608213354868 16.26351378823503 14.480976595962442 5.748310907910658 0.14020270507099164 0.20034966554644704
PRY South America Paraguay 2020-07-27 4548.0 104.0 114.286 43.0 2.0 1.429 1.23 null null null null null null null null 119256.0 1694.0 16.72001379594618 0.238 1844.0 0.259 6.2e-2 16.1 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 637.64190266287 14.58108132738313 16.02320635174335 6.02871631805264 0.2804054101419833 0.20034966554644704
PRY South America Paraguay 2020-07-28 4674.0 126.0 122.429 45.0 2.0 1.429 1.24 null null null null null null null null 120943.0 1687.0 16.956535759400943 0.237 1844.0 0.259 6.6e-2 15.1 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 655.307443501815 17.665540838944946 17.164876979136437 6.309121728194624 0.2804054101419833 0.20034966554644704
PRY South America Paraguay 2020-07-29 4866.0 192.0 123.714 46.0 1.0 1.429 1.25 null null null null null null null null 122829.0 1886.0 17.220958061164833 0.264 1851.0 0.26 6.7e-2 15.0 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 682.2263628754453 26.918919373630395 17.345037455152656 6.449324433265615 0.14020270507099164 0.20034966554644704
PRY South America Paraguay 2020-07-30 5207.0 341.0 156.286 47.0 1.0 1.571 1.26 null null null null null null null null 125361.0 2532.0 17.575951310404584 0.355 1903.0 0.267 8.2e-2 12.2 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 730.0354853046534 47.80912242920815 21.911719964725 6.5895271383366065 0.14020270507099164 0.22025844966652788
PRY South America Paraguay 2020-07-31 5338.0 131.0 159.143 49.0 2.0 1.571 1.24 null null null null null null null null 127610.0 2249.0 17.89126719410924 0.315 1938.0 0.272 8.2e-2 12.2 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 748.4020396689533 18.366554364299905 22.312279093112824 6.869932548478591 0.2804054101419833 0.22025844966652788
PRY South America Paraguay 2020-08-01 5485.0 147.0 165.286 52.0 3.0 1.714 1.22 null null null null null null null null 128709.0 1099.0 18.045349966982265 0.154 1829.0 0.256 9.0e-2 11.1 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 769.0118373143891 20.60979764543577 23.173544310363926 7.290540663691565 0.4206081152129749 0.24030743649167968
PRY South America Paraguay 2020-08-02 5644.0 159.0 171.429 52.0 0.0 1.571 1.22 null null null null null null null null 129724.0 1015.0 18.187655712629322 0.142 1737.0 0.244 9.9e-2 10.1 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 791.3040674206768 22.292230106287672 24.034809527615028 7.290540663691565 0.0 0.22025844966652788
PRY South America Paraguay 2020-08-03 5724.0 80.0 168.0 55.0 3.0 1.714 1.21 null null null null null null null null 130786.0 1062.0 18.33655098541471 0.149 1647.0 0.231 0.102 9.8 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 802.5202838263561 11.216216405679331 23.554054451926596 7.71114877890454 0.4206081152129749 0.24030743649167968
PRY South America Paraguay 2020-08-04 5852.0 128.0 168.286 59.0 4.0 2.0 1.22 null null null null null null null null 132111.0 1325.0 18.522319569633776 0.186 1595.0 0.224 0.106 9.5 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 820.4662300754431 17.94594624908693 23.594152425576898 8.271959599188508 0.5608108202839666 0.2804054101419833
PRY South America Paraguay 2020-08-05 6060.0 208.0 170.571 61.0 2.0 2.143 1.24 null null null null null null null null 133822.0 1711.0 18.762206398010242 0.24 1570.0 0.22 0.109 9.2 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 849.6283927302093 29.16216265476626 23.914515606664114 8.55236500933049 0.2804054101419833 0.30045439696713505
PRY South America Paraguay 2020-08-06 6375.0 315.0 166.857 66.0 5.0 2.714 1.25 null null null null null null null null 135277.0 1455.0 18.966201333888538 0.204 1417.0 0.199 0.118 8.5 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 893.7922448275716 44.163852097362366 23.39380276003045 9.253378534685448 0.7010135253549582 0.3805101415626713
PRY South America Paraguay 2020-08-07 6508.0 133.0 167.143 69.0 3.0 2.857 1.25 null null null null null null null null 136279.0 1002.0 19.10668444436967 0.14 1238.0 0.174 0.135 7.4 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 912.4392046020137 18.64695977444189 23.433900733680755 9.673986649898424 0.4206081152129749 0.40055912838782315
PRY South America Paraguay 2020-08-08 6705.0 197.0 174.286 72.0 3.0 2.857 1.25 null null null null null null null null 137300.0 1021.0 19.249831406247154 0.143 1227.0 0.172 0.142 7.0 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 940.0591375009989 27.619932898985354 24.43536865600285 10.094594765111399 0.4206081152129749 0.40055912838782315
PRY South America Paraguay 2020-08-09 6907.0 202.0 180.429 75.0 3.0 3.286 1.26 null null null null null null null null 138415.0 1115.0 19.406157422401307 0.156 1242.0 0.174 0.145 6.9 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 968.3800839253392 28.320946424340313 25.296633873253953 10.515202880324374 0.4206081152129749 0.4607060888632785
PRY South America Paraguay 2020-08-10 7234.0 327.0 215.714 82.0 7.0 3.857 1.28 null null null null null null null null 140236.0 1821.0 19.661466548335586 0.255 1350.0 0.189 0.16 6.3 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1014.2263684835535 45.846284558214265 30.243686321683892 11.496621815821316 0.9814189354969415 0.5407618334588148
PRY South America Paraguay 2020-08-11 7519.0 285.0 238.143 86.0 4.0 3.857 1.29 null null null null null null null null 142394.0 2158.0 19.964023985878782 0.303 1469.0 0.206 0.162 6.2 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1054.184139428786 39.95777094523262 33.388292793721156 12.05743263610528 0.5608108202839666 0.5407618334588148
PRY South America Paraguay 2020-08-12 8018.0 499.0 279.714 93.0 7.0 4.571 1.3 null null null null null null null null 144517.0 2123.0 20.261674328744498 0.298 1528.0 0.214 0.183 5.5 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1124.145289259211 69.96114983042483 39.216659446227354 13.038851571602223 0.9814189354969415 0.6408665648795027
PRY South America Paraguay 2020-08-13 8389.0 371.0 287.714 97.0 4.0 4.429 1.29 null null null null null null null null 146284.0 1767.0 20.50941250860494 0.248 1572.0 0.22 0.183 5.5 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1176.1604928405488 52.0152035813379 40.33828108679529 13.59966239188619 0.5608108202839666 0.620957780759422
PRY South America Paraguay 2020-08-14 9022.0 633.0 359.143 108.0 11.0 5.571 1.29 null null null null null null null null 149349.0 3065.0 20.939133799647532 0.43 1867.0 0.262 0.192 5.2 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1264.9088051504866 88.7483123099377 50.352820107311146 15.141892147667097 1.5422297557809082 0.7810692699504943
PRY South America Paraguay 2020-08-15 9381.0 359.0 382.286 127.0 19.0 7.857 1.27 null null null null null null null null 151427.0 2078.0 21.23047502078505 0.291 2018.0 0.283 0.189 5.3 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1315.2415762709725 50.332771120486 53.597531310769114 17.80574354401594 2.663851396348841 1.1015726537427815
PRY South America Paraguay 2020-08-16 9791.0 410.0 412.0 138.0 11.0 9.0 1.25 null null null null null null null null 154392.0 2965.0 21.64617604132054 0.416 2282.0 0.32 0.181 5.5 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1372.724685350079 57.48310907910657 57.76351448924856 19.34797329979685 1.5422297557809082 1.2618243456389249
PRY South America Paraguay 2020-08-17 10135.0 344.0 414.429 145.0 7.0 9.0 1.24 null null null null null null null null 156611.0 2219.0 21.957285843873073 0.311 2339.0 0.328 0.177 5.6 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1420.9544158945005 48.22973054442112 58.10406685986599 20.329392235293785 0.9814189354969415 1.2618243456389249
PRY South America Paraguay 2020-08-18 10606.0 471.0 441.0 161.0 16.0 10.714 1.24 null null null null null null null null 159666.0 3055.0 22.38560510786495 0.428 2467.0 0.346 0.179 5.6 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1486.9898899829373 66.03547408843706 61.82939293630732 22.572635516429653 2.2432432811358662 1.5021317821306046
PRY South America Paraguay 2020-08-19 11133.0 527.0 445.0 165.0 4.0 10.286 1.24 null null null null null null null null 162323.0 2657.0 22.758123695238577 0.373 2544.0 0.357 0.175 5.7 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1560.8767155553498 73.88682557241259 62.390203756591276 23.13344633671362 0.5608108202839666 1.44212502436022
PRY South America Paraguay 2020-08-20 11817.0 684.0 489.714 170.0 5.0 10.429 1.24 null null null null null null null null 166110.0 3787.0 23.28907133934242 0.531 2832.0 0.397 0.173 5.8 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1656.7753658239083 95.89865026855828 68.6592275111356 23.83445986206858 0.7010135253549582 1.4621740111853718
PRY South America Paraguay 2020-08-21 12536.0 719.0 502.0 182.0 12.0 10.571 1.22 null null null null null null null null 169260.0 3150.0 23.730709860316043 0.442 2844.0 0.399 0.177 5.7 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1757.5811107699512 100.80574494604298 70.3817579456378 25.516892322920476 1.6824324608518997 1.4820827953054525
PRY South America Paraguay 2020-08-22 12974.0 438.0 513.286 192.0 10.0 9.286 1.2 null null null null null null null null 171552.0 2292.0 24.052054460338756 0.321 2875.0 0.403 0.179 5.6 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1818.9898955910455 61.408784821094336 71.96408567506901 26.918919373630395 1.4020270507099164 1.3019223192892282
PRY South America Paraguay 2020-08-23 13233.0 259.0 491.714 205.0 13.0 9.571 1.19 null null null null null null null null 173340.0 1788.0 24.30273689700569 0.251 2707.0 0.38 0.182 5.5 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1855.3023962044324 36.31250061338683 68.93963292127759 28.741554539553285 1.8226351659228912 1.3418800902344608
PRY South America Paraguay 2020-08-24 13602.0 369.0 495.286 219.0 14.0 10.571 1.19 null null null null null null null null 175652.0 2312.0 24.626885551129824 0.324 2720.0 0.381 0.182 5.5 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1907.0371943756284 51.73479817119591 69.44043698379116 30.704392410547168 1.962837870993883 1.4820827953054525
PRY South America Paraguay 2020-08-25 14228.0 626.0 517.429 231.0 12.0 10.0 1.19 null null null null null null null null 177771.0 2119.0 24.923975083175257 0.297 2586.0 0.363 0.2 5.0 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1994.8040877500691 87.76689337444077 72.54494548217814 32.38682487139907 1.6824324608518997 1.4020270507099164
PRY South America Paraguay 2020-08-26 14872.0 644.0 534.143 247.0 16.0 11.714 1.19 null null null null null null null null 180606.0 2835.0 25.321449752051517 0.397 2612.0 0.366 0.204 4.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2085.094629815788 90.29054206571861 74.8882934947347 34.63006815253494 2.2432432811358662 1.6423344872015961
PRY South America Paraguay 2020-08-27 15290.0 418.0 496.143 265.0 18.0 13.571 1.18 null null null null null null null null 182791.0 2185.0 25.627792662631634 0.306 2383.0 0.334 0.208 4.8 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2143.6993605354623 58.60473071967451 69.560590702037 37.15371684381279 2.5236486912778497 1.9026909105184275
PRY South America Paraguay 2020-08-28 15873.0 583.0 476.714 280.0 15.0 14.0 1.18 null null null null null null null null 185921.0 3130.0 26.066627129503836 0.439 2380.0 0.334 0.2 5.0 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2225.4375375918503 81.73817705638812 66.83659234521271 39.25675741987766 2.1030405760648745 1.962837870993883
PRY South America Paraguay 2020-08-29 16474.0 601.0 500.0 294.0 14.0 14.571 1.18 null null null null null null null null 188559.0 2638.0 26.436481865481113 0.37 2430.0 0.341 0.206 4.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2309.6993633395164 84.26182574766598 70.10135253549582 41.21959529087154 1.962837870993883 2.0428936155894193
PRY South America Paraguay 2020-08-30 17105.0 631.0 553.143 308.0 14.0 14.714 1.18 null null null null null null null null 190169.0 1610.0 26.662208220645407 0.226 2404.0 0.337 0.23 4.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2398.167270239312 88.46790689979574 77.55214489108354 43.182433161865426 1.962837870993883 2.0629426024145707
PRY South America Paraguay 2020-08-31 17662.0 557.0 580.0 326.0 18.0 15.286 1.18 null null null null null null null null 192465.0 2296.0 26.98411363148841 0.322 2402.0 0.337 0.241 4.1 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2476.260176963854 78.09290672454235 81.31756894117514 45.706081853143274 2.5236486912778497 2.1431385497151783
PRY South America Paraguay 2020-09-01 18338.0 676.0 587.143 348.0 22.0 16.714 1.19 null null null null null null null null 195554.0 3089.0 27.4171997874527 0.433 2540.0 0.356 0.231 4.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2571.0372055918447 94.77702862799035 82.31903686349725 48.79054136470509 3.0844595115618163 2.3433480125565542
PRY South America Paraguay 2020-09-02 19138.0 800.0 609.429 358.0 10.0 15.857 1.19 null null null null null null null null 198620.0 3066.0 27.84706128120036 0.43 2573.0 0.361 0.237 4.2 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2683.199369648638 112.16216405679332 85.44359434870935 50.19256841541501 1.4020270507099164 2.223194294310714
PRY South America Paraguay 2020-09-03 19959.0 821.0 667.0 373.0 15.0 15.429 1.19 null null null null null null null null 201750.0 3130.0 28.285895748072566 0.439 2708.0 0.38 0.246 4.1 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2798.305790511922 115.10642086328414 93.51520428235142 52.29560899147988 2.1030405760648745 2.16318753654033
PRY South America Paraguay 2020-09-04 20654.0 695.0 683.0 398.0 25.0 16.857 1.18 null null null null null null null null 204220.0 2470.0 28.63219642959791 0.346 2614.0 0.366 0.261 3.8 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2895.7466705362613 97.4408800243392 95.7584475634873 55.80067661825467 3.505067626774791 2.363396999381706
PRY South America Paraguay 2020-09-05 21871.0 1217.0 771.0 412.0 14.0 16.857 1.18 null null null null null null null null 206483.0 2263.0 28.949475151173566 0.317 2561.0 0.359 0.301 3.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3066.3733626076582 170.62669207139683 108.09628560973455 57.76351448924856 1.962837870993883 2.363396999381706
PRY South America Paraguay 2020-09-06 22486.0 615.0 768.714 435.0 23.0 18.143 1.17 null null null null null null null null 209202.0 2719.0 29.330686306261594 0.381 2719.0 0.381 0.283 3.5 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3152.598026226318 86.22466361865986 107.77578222594228 60.988176705881365 3.2246622166328076 2.5436976781030016
PRY South America Paraguay 2020-09-07 23353.0 867.0 813.0 449.0 14.0 17.571 1.16 null null null null null null null null 211956.0 2754.0 29.716804556027103 0.386 2784.0 0.39 0.292 3.4 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3274.153771522868 121.55574529654974 113.9847992227162 62.951014576875245 1.962837870993883 2.463501730802394
PRY South America Paraguay 2020-09-08 24214.0 861.0 839.429 463.0 14.0 16.429 1.15 null null null null null null null null 214976.0 3020.0 30.1402167253415 0.423 2775.0 0.389 0.302 3.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3394.8683005889916 120.7145290661238 117.69021651503743 64.91385244786913 1.962837870993883 2.3033902416113214
PRY South America Paraguay 2020-09-09 25026.0 812.0 841.143 474.0 11.0 16.571 1.14 null null null null null null null null 217643.0 2667.0 30.514137339765835 0.374 2718.0 0.381 0.309 3.2 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3508.712897106637 113.8445965176452 117.93052395152912 66.45608220365003 1.5422297557809082 2.323299025731403
PRY South America Paraguay 2020-09-10 25631.0 605.0 810.286 485.0 11.0 16.0 1.13 null null null null null null null null 220293.0 2650.0 30.88567450820396 0.372 2649.0 0.371 0.306 3.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3593.535533674587 84.82263656794994 113.60428908115352 67.99831195943094 1.5422297557809082 2.2432432811358662
PRY South America Paraguay 2020-09-11 26512.0 881.0 836.857 496.0 11.0 14.0 1.13 null null null null null null null null 223303.0 3010.0 31.307684650467646 0.422 2726.0 0.382 0.307 3.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3717.05411684213 123.51858316754364 117.32961515759484 69.54054171521184 1.5422297557809082 1.962837870993883
PRY South America Paraguay 2020-09-12 27324.0 812.0 779.0 514.0 18.0 14.571 1.12 null null null null null null null null 227011.0 3708.0 31.827556280870883 0.52 2933.0 0.411 0.266 3.8 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3830.8987133597752 113.8445965176452 109.21790725030249 72.06419040648971 2.5236486912778497 2.0428936155894193
PRY South America Paraguay 2020-09-13 27817.0 493.0 761.571 525.0 11.0 12.857 1.11 null null null null null null null null 229992.0 2981.0 32.24550054468751 0.418 2970.0 0.416 0.256 3.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3900.0186469597743 69.11993359999887 106.77431430362017 73.60642016227062 1.5422297557809082 1.8025861790977393
PRY South America Paraguay 2020-09-14 28367.0 550.0 716.286 539.0 14.0 12.857 1.11 null null null null null null null null 232515.0 2523.0 32.59923196958162 0.354 2937.0 0.412 0.244 4.1 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3977.1301347488193 77.1114877890454 100.4252348044803 75.56925803326449 1.962837870993883 1.8025861790977393
PRY South America Paraguay 2020-09-15 29298.0 931.0 726.286 552.0 13.0 12.714 1.12 null null null null null null null null 235620.0 3105.0 33.03456136882705 0.435 2949.0 0.413 0.246 4.1 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4107.6588531699135 130.5287184210932 101.82726185519023 77.3918931991874 1.8226351659228912 1.782537192272588
PRY South America Paraguay 2020-09-16 30419.0 1121.0 770.429 566.0 14.0 13.143 1.12 null null null null null null null null 239172.0 3552.0 33.53256137723921 0.498 3076.0 0.431 0.25 4.0 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4264.826085554495 157.16723238458164 108.01622986513901 79.35473107018127 1.962837870993883 1.8426841527480433
PRY South America Paraguay 2020-09-17 31113.0 694.0 783.143 584.0 18.0 14.143 1.11 null null null null null null null null 241837.0 2665.0 33.9062015862534 0.374 3078.0 0.432 0.254 3.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4362.126762873763 97.3006773192682 109.79876705741161 81.87837976145912 2.5236486912778497 1.9828868578190348
PRY South America Paraguay 2020-09-18 32127.0 1014.0 802.143 611.0 27.0 16.429 1.11 null null null null null null null null 245271.0 3434.0 34.38765767546719 0.481 3138.0 0.44 0.256 3.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4504.2923058157485 142.1655429419855 112.46261845376044 85.66385279837588 3.785473036916774 2.3033902416113214
PRY South America Paraguay 2020-09-19 33015.0 888.0 813.0 636.0 25.0 17.429 1.1 null null null null null null null null 248376.0 3105.0 34.822987074712614 0.435 3052.0 0.428 0.266 3.8 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4628.792307918789 124.50000210304057 113.9847992227162 89.16892042515069 3.505067626774791 2.443592946682313
PRY South America Paraguay 2020-09-20 33520.0 505.0 814.714 659.0 23.0 19.143 1.09 null null null null null null null null 250882.0 2506.0 35.174335053620524 0.351 2984.0 0.418 0.273 3.7 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4699.59467397964 70.80236606085079 114.22510665920788 92.39358264178348 3.2246622166328076 2.683900383173993
PRY South America Paraguay 2020-09-21 34260.0 740.0 841.857 676.0 17.0 19.571 1.09 null null null null null null null null 252943.0 2061.0 35.463292828771834 0.289 2918.0 0.409 0.289 3.5 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4803.3446757321735 103.75000175253382 118.03062868294981 94.77702862799035 2.383445986206858 2.7439071409443776
PRY South America Paraguay 2020-09-22 34828.0 568.0 790.0 705.0 29.0 21.857 1.08 null null null null null null null null 255851.0 2908.0 35.87100229511828 0.408 2890.0 0.405 0.273 3.7 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4882.979812212497 79.63513648032325 110.76013700608338 98.84290707504911 4.065878447058758 3.064410524736664
PRY South America Paraguay 2020-09-23 35571.0 743.0 736.0 727.0 22.0 23.0 1.09 null null null null null null null null 258828.0 2977.0 36.28838574811463 0.417 2808.0 0.394 0.262 3.8 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4987.1504220802435 104.17060986774679 103.18919093224984 101.92736658661092 3.0844595115618163 3.2246622166328076
PRY South America Paraguay 2020-09-24 36404.0 833.0 755.857 743.0 16.0 22.714 1.09 null null null null null null null null 261563.0 2735.0 36.67184014648379 0.383 2818.0 0.395 0.268 3.7 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5103.93927540438 116.78885332413604 105.97319604684452 104.17060986774679 2.2432432811358662 3.1845642429825043
PRY South America Paraguay 2020-09-25 37226.0 822.0 728.429 761.0 18.0 21.429 1.09 null null null null null null null null 264031.0 2468.0 37.01786042259899 0.346 2680.0 0.376 0.272 3.7 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5219.185898972735 115.24662356835513 102.12771625215737 106.69425855902463 2.5236486912778497 3.0044037669662798
PRY South America Paraguay 2020-09-26 37922.0 696.0 701.0 782.0 21.0 20.857 1.08 null null null null null null null null 267062.0 3031.0 37.44281482166917 0.425 2669.0 0.374 0.263 3.8 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5316.766981702144 97.58108272941018 98.28209625476514 109.63851536551546 2.9442568064908246 2.9242078196656727
PRY South America Paraguay 2020-09-27 38684.0 762.0 737.714 803.0 21.0 20.571 1.08 null null null null null null null null 269710.0 2648.0 37.81407158469715 0.371 2690.0 0.377 0.274 3.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5423.60144296624 106.83446126409564 103.42949836874153 112.58277217200629 2.9442568064908246 2.8841098460153693
PRY South America Paraguay 2020-09-28 39432.0 748.0 738.857 818.0 15.0 20.286 1.08 null null null null null null null null 272494.0 2784.0 38.204395915614796 0.39 2793.0 0.392 0.265 3.8 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5528.473066359343 104.87162339310174 103.58975006063767 114.68581274807116 2.1030405760648745 2.8441520750701366
PRY South America Paraguay 2020-09-29 40101.0 669.0 753.286 841.0 23.0 19.429 1.08 null null null null null null null null 274555.0 2061.0 38.493353690766114 0.289 2672.0 0.375 0.282 3.5 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5622.268676051835 93.79560969249341 105.612734892107 117.91047496470398 3.2246622166328076 2.7239983568242967
PRY South America Paraguay 2020-09-30 40758.0 657.0 741.0 857.0 16.0 18.571 1.08 null null null null null null null null 277492.0 2937.0 38.90512903555961 0.412 2666.0 0.374 0.278 3.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5714.381853283477 92.1131772316415 103.8902044576048 120.15371824583984 2.2432432811358662 2.6037044358733863
PRY South America Paraguay 2020-10-01 41799.0 1041.0 770.714 869.0 12.0 18.0 1.09 null null null null null null null null 280909.0 3417.0 39.38420167878719 0.479 2764.0 0.388 0.279 3.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5860.332869262379 145.9510159789023 108.05618763608425 121.83615070669173 1.6824324608518997 2.5236486912778497
PRY South America Paraguay 2020-10-02 42684.0 885.0 779.714 890.0 21.0 18.429 1.09 null null null null null null null null 283537.0 2628.0 39.752654387713754 0.368 2787.0 0.391 0.28 3.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5984.412263250207 124.07939398782761 109.31801198172319 124.78040751318255 2.9442568064908246 2.5837956517533045
PRY South America Paraguay 2020-10-03 43452.0 768.0 790.0 913.0 23.0 18.714 1.08 null null null null null null null null 286262.0 2725.0 40.13470675903221 0.382 2743.0 0.385 0.288 3.5 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6092.087940744729 107.67567749452158 110.76013700608338 128.00506972981538 3.2246622166328076 2.6237534226985373
PRY South America Paraguay 2020-10-04 44182.0 730.0 785.429 929.0 16.0 18.0 1.08 null null null null null null null null 288502.0 2240.0 40.44876081839123 0.314 2685.0 0.376 0.293 3.4 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6194.435915446553 102.34797470182389 110.1192704412039 130.24831301095125 2.2432432811358662 2.5236486912778497
PRY South America Paraguay 2020-10-05 44715.0 533.0 754.714 947.0 18.0 18.429 1.07 null null null null null null null null 290507.0 2005.0 40.72986724205857 0.281 2573.0 0.361 0.293 3.4 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6269.163957249391 74.72804180283855 105.81294435494839 132.77196170222908 2.5236486912778497 2.5837956517533045
PRY South America Paraguay 2020-10-06 45647.0 932.0 792.286 966.0 19.0 17.857 1.08 null null null null null null null null 293374.0 2867.0 41.1318283974971 0.402 2688.0 0.377 0.295 3.4 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6399.832878375556 130.6689211261642 111.08064038987568 135.43581309857794 2.663851396348841 2.5035997044526974
PRY South America Paraguay 2020-10-07 46435.0 788.0 811.0 989.0 23.0 18.857 1.08 null null null null null null null null 296536.0 3162.0 41.575149350931575 0.443 2721.0 0.381 0.298 3.4 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6510.312609971496 110.47973159594142 113.70439381257422 138.66047531521073 3.2246622166328076 2.643802409523689
PRY South America Paraguay 2020-10-08 47316.0 881.0 788.143 1012.0 23.0 20.429 1.08 null null null null null null null null 299557.0 3021.0 41.99870172295105 0.424 2664.0 0.374 0.296 3.4 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6633.83119313904 123.51858316754364 110.49978058276658 141.88513753184353 3.2246622166328076 2.864201061895288
PRY South America Paraguay 2020-10-09 48275.0 959.0 798.714 1045.0 33.0 22.143 1.07 null null null null null null null null 302657.0 3100.0 42.43333010867112 0.435 2731.0 0.383 0.292 3.4 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6768.285587302122 134.45439416308096 111.98186337807202 146.51182679918625 4.626689267342724 3.104508498386968
PRY South America Paraguay 2020-10-10 48978.0 703.0 789.429 1065.0 20.0 21.714 1.07 null null null null null null null null 305552.0 2895.0 42.83921693985164 0.406 2756.0 0.386 0.286 3.5 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6866.848088967028 98.56250166490712 110.68008126148786 149.3158809006061 2.804054101419833 3.044361537911512
PRY South America Paraguay 2020-10-11 49675.0 697.0 784.714 1077.0 12.0 21.143 1.06 null null null null null null null null 308443.0 2891.0 43.244542960211874 0.405 2849.0 0.399 0.275 3.6 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6964.56937440151 97.72128543448116 110.01902550707814 150.998313361458 1.6824324608518997 2.964305793315976
PRY South America Paraguay 2020-10-12 50344.0 669.0 804.143 1096.0 19.0 21.286 1.06 null null null null null null null null 311326.0 2883.0 43.648747358931544 0.404 2974.0 0.417 0.27 3.7 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7058.364984094003 93.79560969249341 112.74302386390244 153.66216475780683 2.663851396348841 2.9843547801411283
PRY South America Paraguay 2020-10-13 51197.0 853.0 792.857 1108.0 12.0 20.286 1.06 null null null null null null null null 314053.0 2727.0 44.03108013566013 0.382 2954.0 0.414 0.268 3.7 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7177.957891519559 119.59290742555586 111.16069613447122 155.34459721865875 1.6824324608518997 2.8441520750701366
PRY South America Paraguay 2020-10-14 51845.0 648.0 772.857 1131.0 23.0 20.286 1.06 null null null null null null null null 317084.0 3031.0 44.456034534730314 0.425 2935.0 0.411 0.263 3.8 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7268.809244405562 90.85135288600257 108.35664203305137 158.56925943529154 3.2246622166328076 2.8441520750701366
PRY South America Paraguay 2020-10-15 52596.0 751.0 754.286 1150.0 19.0 19.714 1.06 null null null null null null null null 320006.0 2922.0 44.86570683894775 0.41 2921.0 0.41 0.258 3.9 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7374.101475913876 105.29223150831473 105.752937597178 161.23311083164037 2.663851396348841 2.763956127769529
PRY South America Paraguay 2020-10-16 53482.0 886.0 743.857 1165.0 15.0 17.143 1.06 null null null null null null null null 322978.0 2972.0 45.28238927841874 0.417 2903.0 0.407 0.256 3.9 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7498.3210726067755 124.21959669289858 104.29076358599262 163.33615140770524 2.1030405760648745 2.4034949730320094
PRY South America Paraguay 2020-10-17 54015.0 533.0 719.571 1179.0 14.0 16.286 1.05 null null null null null null null null 325909.0 2931.0 45.69332340698182 0.411 2908.0 0.408 0.247 4.0 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7573.049114409614 74.72804180283855 100.88580069063853 165.29898927869914 1.962837870993883 2.28334125478617
PRY South America Paraguay 2020-10-18 54724.0 709.0 721.286 1188.0 9.0 15.857 1.05 null null null null null null null null 328600.0 2691.0 46.070608886327854 0.377 2880.0 0.404 0.25 4.0 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7672.452832304946 99.40371789533307 101.12624832983528 166.56081362433807 1.2618243456389249 2.223194294310714
PRY South America Paraguay 2020-10-19 55452.0 728.0 729.714 1207.0 19.0 15.857 1.05 null null null null null null null null 330854.0 2254.0 46.38662578355787 0.316 2790.0 0.391 0.262 3.8 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7774.520401596628 102.0675692916819 102.3078767281736 169.22466502068693 2.663851396348841 2.223194294310714
PRY South America Paraguay 2020-10-20 56073.0 621.0 696.571 1231.0 24.0 17.571 1.05 null null null null null null null null 333885.0 3031.0 46.81158018262804 0.425 2833.0 0.397 0.246 4.1 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7861.586281445714 87.0658798490858 97.66113847400572 172.5895299423907 3.3648649217037994 2.463501730802394
PRY South America Paraguay 2020-10-21 56819.0 746.0 710.571 1250.0 19.0 17.0 1.05 null null null null null null null null 336639.0 2754.0 47.19769843239356 0.386 2794.0 0.392 0.254 3.9 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7966.177499428673 104.59121798295976 99.6239763449996 175.25338133873956 2.663851396348841 2.383445986206858
PRY South America Paraguay 2020-10-22 57526.0 707.0 704.286 1262.0 12.0 16.0 1.05 null null null null null null null null 339477.0 2838.0 47.59559370938503 0.398 2782.0 0.39 0.253 4.0 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8065.300811913865 99.1233124851911 98.74280234362841 176.93581379959147 1.6824324608518997 2.2432432811358662
PRY South America Paraguay 2020-10-23 58259.0 733.0 682.429 1278.0 16.0 16.143 1.05 null null null null null null null null 342331.0 2854.0 47.99573222965764 0.4 2765.0 0.388 0.247 4.1 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8168.069394730903 102.76858281703687 95.67839181889174 179.17905708072732 2.2432432811358662 2.263292267961018
PRY South America Paraguay 2020-10-24 59043.0 784.0 718.286 1293.0 15.0 16.286 1.04 null null null null null null null null 345336.0 3005.0 48.41704135839597 0.421 2775.0 0.389 0.259 3.9 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8277.98831550656 109.91892077565745 100.70564021462229 181.2820976567922 2.1030405760648745 2.28334125478617
PRY South America Paraguay 2020-10-25 59594.0 551.0 695.714 1309.0 16.0 17.286 1.04 null null null null null null null null 347863.0 2527.0 48.77133359411037 0.354 2752.0 0.386 0.253 4.0 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8355.240006000675 77.25169049411639 97.5409847557599 183.52534093792806 2.2432432811358662 2.4235439598571618
PRY South America Paraguay 2020-10-26 60109.0 515.0 665.286 1333.0 24.0 18.0 1.04 null null null null null null null null 350289.0 2426.0 49.11146535661259 0.34 2776.0 0.389 0.24 4.2 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8427.444399112237 72.20439311156069 93.27489684585973 186.89020585963186 3.3648649217037994 2.5236486912778497
PRY South America Paraguay 2020-10-27 60557.0 448.0 640.571 1347.0 14.0 16.571 1.04 null null null null null null null null 352711.0 2422.0 49.45103630829453 0.34 2689.0 0.377 0.238 4.2 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8490.255210984042 62.810811871804255 89.80978699003019 188.85304373062573 1.962837870993883 2.323299025731403
PRY South America Paraguay 2020-10-28 61290.0 733.0 638.714 1359.0 12.0 15.571 1.04 null null null null null null null null 355553.0 2842.0 49.84949239610629 0.398 2702.0 0.379 0.236 4.2 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8593.023793801078 102.76858281703687 89.54943056671337 190.53547619147764 1.6824324608518997 2.183096320660411
PRY South America Paraguay 2020-10-29 62050.0 760.0 646.286 1373.0 14.0 15.857 1.04 null null null null null null null null 358694.0 3141.0 50.28986909273427 0.44 2745.0 0.385 0.235 4.2 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8699.577849655032 106.55405585395364 90.6110454495109 192.4983140624715 1.962837870993883 2.223194294310714
PRY South America Paraguay 2020-10-30 62596.0 546.0 619.571 1387.0 14.0 15.571 1.04 null null null null null null null null 361696.0 3002.0 50.710757613357394 0.421 2766.0 0.388 0.224 4.5 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8776.128526623792 76.55067696876144 86.86553018353936 194.4611519334654 1.962837870993883 2.183096320660411
PRY South America Paraguay 2020-10-31 63185.0 589.0 591.714 1404.0 17.0 15.857 1.04 null null null null null null null null 364557.0 2861.0 51.1118775525655 0.401 2746.0 0.385 0.215 4.6 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8858.707919910607 82.57939328681408 82.95990342837675 196.84459791967228 2.383445986206858 2.223194294310714
PRY South America Paraguay 2020-11-01 63731.0 546.0 591.0 1418.0 14.0 15.571 1.04 null null null null null null null null 367224.0 2667.0 51.48579816698983 0.374 2766.0 0.388 0.214 4.7 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8935.258596879368 76.55067696876144 82.85979869695605 198.80743579066615 1.962837870993883 2.183096320660411
PRY South America Paraguay 2020-11-02 64156.0 425.0 578.143 1429.0 11.0 13.714 1.03 null null null null null null null null 368759.0 1535.0 51.70100931927381 0.215 2639.0 0.37 0.219 4.6 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8994.84474653454 59.58614965517145 81.05721251785833 200.34966554644706 1.5422297557809082 1.9227398973435794
PRY South America Paraguay 2020-11-03 64628.0 472.0 581.571 1441.0 12.0 13.429 1.04 null null null null null null null null 371762.0 3003.0 52.12203804260199 0.421 2722.0 0.382 0.214 4.7 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9061.020423328047 66.17567679350806 81.53782739084168 202.03209800729897 1.6824324608518997 1.8827821263983469
PRY South America Paraguay 2020-11-04 65258.0 630.0 566.857 1454.0 13.0 13.571 1.04 null null null null null null null null 374486.0 2724.0 52.503950211215376 0.382 2705.0 0.379 0.21 4.8 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9149.348127522771 88.32770419472473 79.4748847884271 203.85473317322183 1.8226351659228912 1.9026909105184275
PRY South America Paraguay 2020-11-05 65778.0 520.0 532.571 1462.0 8.0 12.714 1.05 null null null null null null null null 377309.0 2823.0 52.899742447630786 0.396 2659.0 0.373 0.2 5.0 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9222.253534159689 72.90540663691564 74.66789484236308 204.97635481378978 1.1216216405679331 1.782537192272588
PRY South America Paraguay 2020-11-06 66481.0 703.0 555.0 1472.0 10.0 12.143 1.05 null null null null null null null null 380237.0 2928.0 53.31025596807864 0.411 2649.0 0.371 0.21 4.8 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9320.816035824595 98.56250166490712 77.81250131440036 206.3783818644997 1.4020270507099164 1.7024814476770516
PRY South America Paraguay 2020-11-07 66941.0 460.0 536.571 1479.0 7.0 10.714 1.05 null null null null null null null null 382872.0 2635.0 53.67969009594071 0.369 2616.0 0.367 0.205 4.9 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9385.309280157251 64.49324433265615 75.22870566264706 207.35980079999663 0.9814189354969415 1.5021317821306046
PRY South America Paraguay 2020-11-08 67589.0 648.0 551.143 1490.0 11.0 10.286 1.05 null null null null null null null null 385453.0 2581.0 54.041553277728944 0.362 2604.0 0.365 0.212 4.7 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9476.160633043253 90.85135288600257 77.27173948094155 208.90203055577754 1.5422297557809082 1.44212502436022
PRY South America Paraguay 2020-11-09 67948.0 359.0 541.714 1502.0 12.0 10.429 1.05 null null null null null null null null 387941.0 2488.0 54.39037760794557 0.349 2740.0 0.384 0.198 5.1 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9526.493404163739 50.332771120486 75.94976817482717 210.58446301662946 1.6824324608518997 1.4621740111853718
PRY South America Paraguay 2020-11-10 68497.0 549.0 552.714 1516.0 14.0 10.714 1.06 null null null null null null null null 390180.0 2239.0 54.70429146459952 0.314 2631.0 0.369 0.21 4.8 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9603.464689247714 76.97128508397441 77.49199793060808 212.54730088762332 1.962837870993883 1.5021317821306046
PRY South America Paraguay 2020-11-11 69106.0 609.0 549.714 1532.0 16.0 11.143 1.07 null null null null null null null null 392876.0 2696.0 55.082277957470914 0.378 2627.0 0.368 0.209 4.8 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9688.848136635948 85.38344738823392 77.0713898153951 214.7905441687592 2.2432432811358662 1.56227874260606
PRY South America Paraguay 2020-11-12 69653.0 547.0 553.571 1543.0 11.0 11.571 1.07 null null null null null null null null 395518.0 2642.0 55.452693504268474 0.37 2601.0 0.365 0.213 4.7 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9765.53901630978 76.69087967383243 77.61215164885391 216.3327739245401 1.5422297557809082 1.622285500376444
PRY South America Paraguay 2020-11-13 70392.0 739.0 558.714 1556.0 13.0 12.0 1.08 null null null null null null null null 398428.0 2910.0 55.86068337602506 0.408 2599.0 0.364 0.215 4.7 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9869.148815357243 103.60979904746281 78.33321416103404 218.155409090463 1.8226351659228912 1.6824324608518997
PRY South America Paraguay 2020-11-14 71065.0 673.0 589.143 1569.0 13.0 12.857 1.08 null null null null null null null null 401017.0 2589.0 56.22366817945385 0.363 2592.0 0.363 0.227 4.4 null 61.11 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9963.505235870021 94.35642051277738 82.59944227363924 219.97804425638589 1.8226351659228912 1.8025861790977393
PRY South America Paraguay 2020-11-15 71574.0 509.0 569.286 1587.0 18.0 13.857 1.08 null null null null null null null null 402564.0 1547.0 56.44056176419868 0.217 2444.0 0.343 0.233 4.3 null 61.11 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10034.868412751155 71.36317688113473 79.81543715904454 222.50169294766374 2.5236486912778497 1.9427888841687313
PRY South America Paraguay 2020-11-16 72099.0 525.0 593.0 1602.0 15.0 14.286 1.08 null null null null null null null null 405816.0 3252.0 56.896500961089544 0.456 2554.0 0.358 0.232 4.3 null 66.67 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10108.474832913427 73.60642016227062 83.14020410709804 224.60473352372858 2.1030405760648745 2.0029358446441865
PRY South America Paraguay 2020-11-17 72857.0 758.0 622.857 1613.0 11.0 13.857 1.09 null null null null null null null null 408717.0 2901.0 57.30322900850049 0.407 2648.0 0.371 0.235 4.3 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10214.748483357238 106.27365044381166 87.32623627240264 226.1469632795095 1.5422297557809082 1.9427888841687313
PRY South America Paraguay 2020-11-18 73639.0 782.0 647.571 1624.0 11.0 13.143 1.09 null null null null null null null null 411727.0 3010.0 57.725239150764175 0.422 2693.0 0.378 0.24 4.2 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10324.386998722754 109.63851536551546 90.79120592552714 227.6891930352904 1.5422297557809082 1.8426841527480433
PRY South America Paraguay 2020-11-19 74495.0 856.0 691.714 1636.0 12.0 13.286 1.09 null null null null null null null null 414988.0 3261.0 58.18244017200068 0.457 2781.0 0.39 0.249 4.0 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10444.400514263521 120.01351554076884 96.98017393547592 229.37162549614231 1.6824324608518997 1.8627331395731948
PRY South America Paraguay 2020-11-20 75058.0 563.0 666.571 1647.0 11.0 13.0 1.09 null null null null null null null null 417510.0 2522.0 58.53603139418972 0.354 2726.0 0.382 0.245 4.1 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10523.33463721849 78.9341229549683 93.45505732187597 230.91385525192322 1.5422297557809082 1.8226351659228912
PRY South America Paraguay 2020-11-21 75857.0 799.0 684.571 1652.0 5.0 11.857 1.09 null null null null null null null null 420258.0 2748.0 58.9213084277248 0.385 2749.0 0.385 0.249 4.0 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10635.356598570213 112.02196135172233 95.97870601315381 231.6148687772782 0.7010135253549582 1.6623834740267478
PRY South America Paraguay 2020-11-22 76476.0 619.0 700.286 1657.0 5.0 10.0 1.09 null null null null null null null null 423142.0 2884.0 59.32565302914954 0.404 2940.0 0.412 0.238 4.2 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10722.142073009156 86.78547443894382 98.18199152334444 232.31588230263313 0.7010135253549582 1.4020270507099164
PRY South America Paraguay 2020-11-23 77072.0 596.0 710.429 1665.0 8.0 9.0 1.09 null null null null null null null null 425902.0 2760.0 59.71261249514548 0.387 2869.0 0.402 0.248 4.0 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10805.702885231469 83.56081222231101 99.60406756087951 233.43750394320108 1.1216216405679331 1.2618243456389249
PRY South America Paraguay 2020-11-24 77891.0 819.0 719.143 1677.0 12.0 9.143 1.09 null null null null null null null null 428912.0 3010.0 60.134622637409166 0.422 2885.0 0.404 0.249 4.0 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10920.528900684609 114.82601545314216 100.82579393286815 235.119936404053 1.6824324608518997 1.2818733324640765
PRY South America Paraguay 2020-11-25 78878.0 987.0 748.429 1691.0 14.0 9.571 1.09 null null null null null null null null 432048.0 3136.0 60.574298320511794 0.44 2903.0 0.407 0.258 3.9 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11058.908970589679 138.38006990506875 104.93177035357719 237.08277427504686 1.962837870993883 1.3418800902344608
PRY South America Paraguay 2020-11-26 79517.0 639.0 717.429 1704.0 13.0 9.714 1.09 null null null null null null null null 435667.0 3619.0 61.08169191016371 0.507 2954.0 0.414 0.243 4.1 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11148.498499130043 89.58952854036366 100.58548649637646 238.90540944096978 1.8226351659228912 1.3619290770596129
PRY South America Paraguay 2020-11-27 80436.0 919.0 768.286 1720.0 16.0 10.429 1.09 null null null null null null null null 439175.0 3508.0 61.57352299955275 0.492 3095.0 0.434 0.248 4.0 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11277.344785090285 128.84628596024132 107.71577546817187 241.14865272210562 2.2432432811358662 1.4621740111853718
PRY South America Paraguay 2020-11-28 81131.0 695.0 753.429 1731.0 11.0 11.286 1.09 null null null null null null null null 442832.0 3657.0 62.08624429199737 0.513 3225.0 0.452 0.234 4.3 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11374.785665114623 97.4408800243392 105.63278387893214 242.69088247788653 1.5422297557809082 1.5823277294312115
PRY South America Paraguay 2020-11-29 81906.0 775.0 775.714 1743.0 12.0 12.286 1.09 null null null null null null null null 445986.0 3154.0 62.52844362379127 0.442 3263.0 0.457 0.238 4.2 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11483.442761544642 108.65709643001853 108.75720116143923 244.37331493873842 1.6824324608518997 1.7225304345022032
PRY South America Paraguay 2020-11-30 82424.0 518.0 764.571 1756.0 13.0 13.0 1.09 null null null null null null null null 445986.0 null 62.52844362379127 null null null null null null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11556.067762771416 72.62500122677366 107.19492241883314 246.19595010466134 1.8226351659228912 1.8226351659228912
PRY South America Paraguay 2020-11-30 82424.0 518.0 764.571 1756.0 13.0 13.0 1.09 null null null null null null null null 449057.0 3071.0 62.9590061310643 0.431 3308.0 0.464 0.231 4.3 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11556.067762771416 72.62500122677366 107.19492241883314 246.19595010466134 1.8226351659228912 1.8226351659228912
PRY South America Paraguay 2020-12-01 83479.0 1055.0 798.286 1771.0 15.0 13.429 1.09 null null null null null null null null 449057.0 null 62.9590061310643 null null null null null null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11703.981616621311 147.91385384989619 111.92185662030163 248.29899068072618 2.1030405760648745 1.8827821263983469
PRY South America Paraguay 2020-12-01 83479.0 1055.0 798.286 1771.0 15.0 13.429 1.09 null null null null null null null null 452851.0 3794.0 63.490935194103635 0.532 3420.0 0.479 0.233 4.3 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11703.981616621311 147.91385384989619 111.92185662030163 248.29899068072618 2.1030405760648745 1.8827821263983469
PRY South America Paraguay 2020-12-02 84482.0 1003.0 800.571 1783.0 12.0 13.143 1.09 null null null null null null null null 456916.0 4065.0 64.06085919021722 0.57 3553.0 0.498 0.225 4.4 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11844.604929807516 140.6233131862046 112.24221980138886 249.98142314157806 1.6824324608518997 1.8426841527480433
PRY South America Paraguay 2020-12-02 84482.0 1003.0 800.571 1783.0 12.0 13.143 1.09 null null null null null null null null 456916.0 null 64.06085919021722 null null null null null null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11844.604929807516 140.6233131862046 112.24221980138886 249.98142314157806 1.6824324608518997 1.8426841527480433
PRY South America Paraguay 2020-12-03 85477.0 995.0 851.429 1796.0 13.0 13.143 1.09 null null null null null null null null 456916.0 null 64.06085919021722 null null null null null null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11984.106621353152 139.5016915456367 119.37264897588933 251.80405830750098 1.8226351659228912 1.8426841527480433
RUS Europe Russia 2020-01-23 0.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 0.0 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.0 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-01-24 0.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 0.0 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.0 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-01-25 0.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 0.0 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.0 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-01-26 0.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 0.0 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.0 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-01-27 0.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 0.0 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.0 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-01-28 0.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 0.0 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.0 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-01-29 0.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 0.0 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.0 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.0 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-01-31 2.0 2.0 0.286 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 1.3704782270068359e-2 1.959783864619775e-3 0.0 0.0 0.0
RUS Europe Russia 2020-02-01 2.0 0.0 0.286 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 1.959783864619775e-3 0.0 0.0 0.0
RUS Europe Russia 2020-02-02 2.0 0.0 0.286 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 1.959783864619775e-3 0.0 0.0 0.0
RUS Europe Russia 2020-02-03 2.0 0.0 0.286 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 1.959783864619775e-3 0.0 0.0 0.0
RUS Europe Russia 2020-02-04 2.0 0.0 0.286 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 1.959783864619775e-3 0.0 0.0 0.0
RUS Europe Russia 2020-02-05 2.0 0.0 0.286 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 1.959783864619775e-3 0.0 0.0 0.0
RUS Europe Russia 2020-02-06 2.0 0.0 0.286 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 1.959783864619775e-3 0.0 0.0 0.0
RUS Europe Russia 2020-02-07 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-08 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-09 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-10 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-11 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-12 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-13 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-14 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-15 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-16 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-17 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-18 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-19 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-20 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-21 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-22 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-23 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-24 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-25 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-26 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-27 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-28 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-29 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-03-01 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-03-02 3.0 1.0 0.143 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2.0557173405102536e-2 6.852391135034179e-3 9.798919323098876e-4 0.0 0.0 0.0
RUS Europe Russia 2020-03-03 3.0 0.0 0.143 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2.0557173405102536e-2 0.0 9.798919323098876e-4 0.0 0.0 0.0
RUS Europe Russia 2020-03-04 3.0 0.0 0.143 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2.0557173405102536e-2 0.0 9.798919323098876e-4 0.0 0.0 0.0
RUS Europe Russia 2020-03-05 4.0 1.0 0.286 0.0 0.0 0.0 2.27 null null null null null null null null 51366.0 4952.0 0.35197992304216563 3.4e-2 null null null null null 22.22 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2.7409564540136717e-2 6.852391135034179e-3 1.959783864619775e-3 0.0 0.0 0.0
RUS Europe Russia 2020-03-06 13.0 9.0 1.571 0.0 0.0 0.0 2.27 null null null null null null null null 55688.0 4322.0 0.3815959575277834 3.0e-2 null null null null null 22.22 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8.908108475544432e-2 6.167152021530761e-2 1.0765106473138695e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-07 13.0 0.0 1.571 0.0 0.0 0.0 2.27 null null null null null null null null 59960.0 4272.0 0.41086937245664934 2.9e-2 null null null null null 22.22 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8.908108475544432e-2 0.0 1.0765106473138695e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-08 17.0 4.0 2.143 0.0 0.0 0.0 2.27 null null null null null null null null 63191.0 3231.0 0.43300944821394477 2.2e-2 null null null null null 22.22 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.11649064929558105 2.7409564540136717e-2 1.4684674202378244e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-09 17.0 0.0 2.0 0.0 0.0 0.0 2.27 null null null null null null null null 63191.0 null 0.43300944821394477 null null null null null null 22.22 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.11649064929558105 0.0 1.3704782270068359e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-10 20.0 3.0 2.429 0.0 0.0 0.0 2.27 null null null null null null null null 70601.0 null 0.4837856665245481 null null null null null null 31.94 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.13704782270068358 2.0557173405102536e-2 1.664445806699802e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-11 20.0 0.0 2.429 0.0 0.0 0.0 2.27 null null null null null null null null 76963.0 6362.0 0.5273805789256355 4.4e-2 4364.0 3.0e-2 1.0e-3 1796.6 null 31.94 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.13704782270068358 0.0 1.664445806699802e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-12 28.0 8.0 3.429 0.0 0.0 0.0 2.27 null null null null null null null null 76963.0 null 0.5273805789256355 null 4934.0 3.4e-2 1.0e-3 1438.9 null 31.94 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.191866951780957 5.4819129080273435e-2 2.3496849202032197e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-13 45.0 17.0 4.571 0.0 0.0 0.0 2.27 null null null null null null null null 94852.0 null 0.649963003940262 null 5595.0 3.8e-2 1.0e-3 1224.0 null 31.94 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.3083576010765381 0.11649064929558105 3.132227987824123e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-14 59.0 14.0 6.571 0.0 0.0 0.0 2.27 null null null null null null null null 104883.0 10031.0 0.7186993394157898 6.9e-2 6418.0 4.4e-2 1.0e-3 976.7 null 35.65 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.40429107696701655 9.59334758904785e-2 4.5027062148309586e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-15 63.0 4.0 6.571 0.0 0.0 0.0 2.27 null null null null null null null null 109939.0 5056.0 0.7533450289945226 3.5e-2 6678.0 4.6e-2 1.0e-3 1016.3 null 35.65 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.43170064150715326 2.7409564540136717e-2 4.5027062148309586e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-16 90.0 27.0 10.429 0.0 0.0 0.0 2.27 null null null null null null null null 116061.0 6122.0 0.7952953675232018 4.2e-2 7024.0 4.8e-2 1.0e-3 673.5 null 50.46 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.6167152021530762 0.18501456064592284 7.146358714727145e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-17 114.0 24.0 13.429 0.0 0.0 0.0 2.27 null null null null null null null null 122854.0 6793.0 0.841843660503489 4.7e-2 7465.0 5.1e-2 2.0e-3 555.9 null 60.65 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.7811725893938963 0.1644573872408203 9.2020760552374e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-18 147.0 33.0 18.143 0.0 0.0 0.0 2.27 null null null null null null null null 133101.0 10247.0 0.9120601124641843 7.0e-2 8020.0 5.5e-2 2.0e-3 442.0 null 60.65 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.0073014968500242 0.2261289074561279 0.12432293236292512 0.0 0.0 0.0
RUS Europe Russia 2020-03-19 199.0 52.0 24.429 1.0 1.0 0.143 2.29 null null null null null null null null 143519.0 10418.0 0.9834483233089704 7.1e-2 8230.0 5.6e-2 3.0e-3 336.9 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3636258358718016 0.3563243390217773 0.16739706303774995 6.852391135034179e-3 6.852391135034179e-3 9.798919323098876e-4
RUS Europe Russia 2020-03-20 253.0 54.0 29.714 1.0 0.0 0.143 2.26 null null null null null null null null 156016.0 12497.0 1.0690826553234927 8.6e-2 8738.0 6.0e-2 3.0e-3 294.1 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.7336549571636475 0.3700291212918457 0.20361195018640557 6.852391135034179e-3 0.0 9.798919323098876e-4
RUS Europe Russia 2020-03-21 306.0 53.0 35.286 1.0 0.0 0.143 2.23 null null null null null null null null 163529.0 7513.0 1.1205646699210041 5.1e-2 8378.0 5.7e-2 4.0e-3 237.4 null 69.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2.0968316873204587 0.36317673015681146 0.24179347359081607 6.852391135034179e-3 0.0 9.798919323098876e-4
RUS Europe Russia 2020-03-22 367.0 61.0 43.429 1.0 0.0 0.143 2.23 null null null null null null null null 165772.0 2243.0 1.135934583236886 1.5e-2 7976.0 5.5e-2 5.0e-3 183.7 null 69.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2.5148275465575436 0.41799585923708493 0.29759249460339937 6.852391135034179e-3 0.0 9.798919323098876e-4
RUS Europe Russia 2020-03-23 438.0 71.0 49.714 1.0 0.0 0.143 2.27 null null null null null null null null 185918.0 20146.0 1.2739828550432846 0.138 9980.0 6.8e-2 5.0e-3 200.7 null 69.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3.0013473171449707 0.48651977058742674 0.3406597728870892 6.852391135034179e-3 0.0 9.798919323098876e-4
RUS Europe Russia 2020-03-24 495.0 57.0 54.429 1.0 0.0 0.143 2.33 null null null null null null null null 192824.0 6906.0 1.3213054682218306 4.7e-2 9996.0 6.8e-2 5.0e-3 183.7 null 69.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3.3919336118419188 0.39058629469694817 0.3729687970887754 6.852391135034179e-3 0.0 9.798919323098876e-4
RUS Europe Russia 2020-03-25 658.0 163.0 73.0 3.0 2.0 0.429 2.51 null null null null null null null null 197251.0 4427.0 1.3516410037766269 3.0e-2 9164.0 6.3e-2 8.0e-3 125.5 null 69.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4.50887336685249 1.116939755010571 0.5002245528574951 2.0557173405102536e-2 1.3704782270068359e-2 2.9396757969296626e-3
RUS Europe Russia 2020-03-26 840.0 182.0 91.571 3.0 0.0 0.286 2.54 null null null null null null null null 223509.0 26258.0 1.5315710902003543 0.18 11427.0 7.8e-2 8.0e-3 124.8 null 69.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5.75600855342871 1.2471351865762206 0.6274803086262148 2.0557173405102536e-2 0.0 1.959783864619775e-3
RUS Europe Russia 2020-03-27 1036.0 196.0 111.857 4.0 1.0 0.429 2.51 null null null null null null null null 243377.0 19868.0 1.6677143972712134 0.136 12480.0 8.6e-2 9.0e-3 111.6 null 69.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7.099077215895409 1.343068662466699 0.7664879151915182 2.7409564540136717e-2 6.852391135034179e-3 2.9396757969296626e-3
RUS Europe Russia 2020-03-28 1264.0 228.0 136.857 4.0 0.0 0.429 2.48 null null null null null null null null 263888.0 20511.0 1.8082637918418993 0.141 14337.0 9.8e-2 1.0e-2 104.8 null 71.76 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8.661422394683203 1.5623451787877927 0.9377976935673726 2.7409564540136717e-2 0.0 2.9396757969296626e-3
RUS Europe Russia 2020-03-29 1534.0 270.0 166.714 8.0 4.0 1.0 2.45 null null null null null null null null 343523.0 79635.0 2.3539539598803465 0.546 25393.0 0.174 7.0e-3 152.3 null 71.76 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10.51156800114243 1.8501456064592283 1.142389535686088 5.4819129080273435e-2 2.7409564540136717e-2 6.852391135034179e-3
RUS Europe Russia 2020-03-30 1836.0 302.0 199.714 9.0 1.0 1.143 2.44 null null null null null null null null 343523.0 null 2.3539539598803465 null 27013.0 0.185 7.0e-3 135.3 null 87.04 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 12.580990123922753 2.069422122780322 1.368518443142216 6.167152021530761e-2 6.852391135034179e-3 7.832283067344067e-3
RUS Europe Russia 2020-03-31 2337.0 501.0 263.143 17.0 8.0 2.286 2.45 null null null null null null null null 406500.0 null 2.7854969963913936 null 30525.0 0.209 9.0e-3 116.0 null 87.04 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 16.014038082574878 3.4330479586521236 1.8031587604462989 0.11649064929558105 5.4819129080273435e-2 1.5664566134688133e-2
RUS Europe Russia 2020-04-01 2777.0 440.0 302.714 24.0 7.0 3.0 2.39 null null null null null null null null 536000.0 129500.0 3.67288164837832 0.887 48393.0 0.332 6.0e-3 159.9 null 87.04 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 19.029090181989915 3.0150520994150387 2.0743147300507365 0.1644573872408203 4.796673794523925e-2 2.0557173405102536e-2
RUS Europe Russia 2020-04-02 3548.0 771.0 386.857 30.0 6.0 3.857 2.36 null null null null null null null null 575103.0 39103.0 3.940830698931561 0.268 50228.0 0.344 8.0e-3 129.8 null 87.04 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 24.31228374710127 5.283193565111351 2.6508954773259172 0.20557173405102536 4.111434681020507e-2 2.642967260782683e-2
RUS Europe Russia 2020-04-03 4149.0 601.0 444.714 34.0 4.0 4.286 2.23 null null null null null null null null 639606.0 64503.0 4.38283048431467 0.442 56604.0 0.388 8.0e-3 127.3 null 87.04 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 28.430570819256808 4.118287072155542 3.04735427122559 0.2329812985911621 2.7409564540136717e-2 2.936934840475649e-2
RUS Europe Russia 2020-04-04 4731.0 582.0 495.286 43.0 9.0 5.571 2.13 null null null null null null null null 697004.0 57398.0 4.776144030683363 0.393 61874.0 0.424 8.0e-3 124.9 null 87.04 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 32.4186624598467 3.9880916405898925 3.393893395706538 0.2946528188064697 6.167152021530761e-2 3.817467101327541e-2
RUS Europe Russia 2020-04-05 5389.0 658.0 550.714 45.0 2.0 5.286 2.1 null null null null null null null null 758401.0 61397.0 5.196860289201057 0.421 59268.0 0.406 9.0e-3 107.6 null 87.04 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 36.92753582669919 4.50887336685249 3.773707731539213 0.3083576010765381 1.3704782270068359e-2 3.6221739539790666e-2
RUS Europe Russia 2020-04-06 6343.0 954.0 643.857 47.0 2.0 5.429 2.11 null null null null null null null null 795523.0 37122.0 5.451234752915795 0.254 60073.0 0.412 1.1e-2 93.3 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 43.4647169695218 6.5371811428226065 4.411959999029701 0.3220623833466064 1.3704782270068359e-2 3.720163147210056e-2
RUS Europe Russia 2020-04-07 7497.0 1154.0 737.143 58.0 11.0 5.857 2.12 null null null null null null null null 910221.0 114698.0 6.237190311321946 0.786 71960.0 0.493 1.0e-2 97.6 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 51.37237633935124 7.9076593698294415 5.0511921584525 0.3974386858319824 7.537630248537597e-2 4.013445487789519e-2
RUS Europe Russia 2020-04-08 8672.0 1175.0 842.143 63.0 5.0 5.571 2.1 null null null null null null null null 1004719.0 94498.0 6.884727568800406 0.648 66960.0 0.459 1.3e-2 79.5 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 59.4239359230164 8.051559583665162 5.770693227631089 0.43170064150715326 3.4261955675170895e-2 3.817467101327541e-2
RUS Europe Russia 2020-04-09 10131.0 1459.0 940.429 76.0 13.0 6.571 2.09 null null null null null null null null 1092811.0 88092.0 7.488368408667836 0.604 73958.0 0.507 1.3e-2 78.6 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 69.42157458903128 9.997638666014867 6.444187342729057 0.5207817262625977 8.908108475544432e-2 4.5027062148309586e-2
RUS Europe Russia 2020-04-10 11917.0 1786.0 1109.714 94.0 18.0 8.571 2.08 null null null null null null null null 1184442.0 91631.0 8.116259860762153 0.628 77834.0 0.533 1.4e-2 70.1 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 81.65994515620231 12.238370567171042 7.604194376023319 0.6441247666932128 0.12334304043061523 5.873184441837794e-2
RUS Europe Russia 2020-04-11 13584.0 1667.0 1264.714 106.0 12.0 9.0 2.04 null null null null null null null null 1278747.0 94305.0 8.762474606751551 0.646 83106.0 0.569 1.5e-2 65.7 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 93.08288117830429 11.422936022101977 8.666315001953617 0.7263534603136229 8.222869362041015e-2 6.167152021530761e-2
RUS Europe Russia 2020-04-12 15770.0 2186.0 1483.0 130.0 24.0 12.143 2.04 null null null null null null null null 1359993.0 81246.0 9.319203976908538 0.557 85942.0 0.589 1.7e-2 58.0 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 108.062208199489 14.979327021184716 10.162096053255686 0.8908108475544433 0.1644573872408203 8.320858555272004e-2
RUS Europe Russia 2020-04-13 18328.0 2558.0 1712.143 148.0 18.0 14.429 2.02 null null null null null null null null 1426014.0 66021.0 9.77160569203463 0.452 90070.0 0.617 1.9e-2 52.6 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 125.59062472290643 17.52841652341743 11.732273515110824 1.0141538879850585 0.12334304043061523 9.887315168740816e-2
RUS Europe Russia 2020-04-14 21102.0 2774.0 1943.571 170.0 22.0 16.0 2.0 null null null null null null null null 1517992.0 91978.0 10.401874923852803 0.63 86824.0 0.595 2.2e-2 44.7 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 144.59915773149126 19.008533008584813 13.318108690709515 1.1649064929558106 0.15075260497075194 0.10963825816054687
RUS Europe Russia 2020-04-15 24490.0 3388.0 2259.714 198.0 28.0 19.286 1.97 null null null null null null null null 1613413.0 95421.0 11.0557369383489 0.654 86956.0 0.596 2.6e-2 38.5 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 167.81505889698704 23.2159011654958 15.484444181312623 1.3567734447367674 0.191866951780957 0.1321552154302692
RUS Europe Russia 2020-04-16 27938.0 3448.0 2543.857 232.0 34.0 22.286 1.93 null null null null null null null null 1718019.0 104606.0 11.772538165420286 0.717 89315.0 0.612 2.8e-2 35.1 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 191.44210353058492 23.627044633597848 17.43150315559464 1.5897547433279295 0.2329812985911621 0.15271238883537172
RUS Europe Russia 2020-04-17 32008.0 4070.0 2870.143 273.0 41.0 25.571 1.9 null null null null null null null null 1831892.0 113873.0 12.552840501140032 0.78 92493.0 0.634 3.1e-2 32.2 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 219.331335450174 27.889231919589108 19.667342449480405 1.8707027798643308 0.2809480365364014 0.175222493713959
RUS Europe Russia 2020-04-18 36793.0 4785.0 3315.571 313.0 40.0 29.571 1.86 null null null null null null null null 1949813.0 117921.0 13.360881316174398 0.808 95867.0 0.657 3.5e-2 28.9 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 252.12002703131256 32.78869158113854 22.719589327976408 2.144798425265698 0.27409564540136716 0.2026320582540957
RUS Europe Russia 2020-04-19 42853.0 6060.0 3869.0 361.0 48.0 33.0 1.8 null null null null null null null null 2053319.0 103506.0 14.070144912997245 0.709 99047.0 0.679 3.9e-2 25.6 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 293.64551730961966 41.525490278307124 26.51190130144724 2.4737131997473387 0.3289147744816406 0.2261289074561279
RUS Europe Russia 2020-04-20 47121.0 4268.0 4113.286 405.0 44.0 36.714 1.69 null null null null null null null null 2142604.0 89285.0 14.681960655488771 0.612 102370.0 0.701 4.0e-2 24.9 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 322.89152267394553 29.246005364325878 28.185844522260197 2.7752184096888426 0.30150520994150387 0.25157868813164486
RUS Europe Russia 2020-04-21 52763.0 5642.0 4523.0 456.0 51.0 40.857 1.63 null null null null null null null null 2252539.0 109935.0 15.435278274918755 0.753 104935.0 0.719 4.3e-2 23.2 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 361.5527134578084 38.661190783862835 30.99336510375959 3.1246903575755853 0.34947194788674313 0.2799681446040914
RUS Europe Russia 2020-04-22 57999.0 5236.0 4787.0 513.0 57.0 45.0 1.55 null null null null null null null null 2401616.0 149077.0 16.456812188156245 1.022 112600.0 0.772 4.3e-2 23.5 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 397.4318334408473 35.87911998303896 32.80239636340862 3.515276652272534 0.39058629469694817 0.3083576010765381
RUS Europe Russia 2020-04-23 62773.0 4774.0 4976.429 555.0 42.0 46.143 1.49 null null null null null null null null 2552000.0 150384.0 17.487302176607226 1.03 119140.0 0.816 4.2e-2 23.9 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 430.1451487195005 32.71331527865317 34.100437963727 3.8030770799439697 0.28780042767143554 0.3161898841438821
RUS Europe Russia 2020-04-24 68622.0 5849.0 5230.571 615.0 60.0 48.857 1.46 null null null null null null null null 2721500.0 169500.0 18.64878247399552 1.161 127087.0 0.871 4.1e-2 24.3 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 470.2247844683154 40.079635748814916 35.84191835156686 4.21422054804602 0.4111434681020507 0.3347872736843649
RUS Europe Russia 2020-04-25 74588.0 5966.0 5399.286 681.0 66.0 52.571 1.43 null null null null null null null null 2877699.0 156199.0 19.71911911689672 1.07 132555.0 0.908 4.1e-2 24.6 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 511.1061499799293 40.881365511613915 36.99801952191416 4.666478362958276 0.4522578149122558 0.3602370543598818
RUS Europe Russia 2020-04-26 80949.0 6361.0 5442.286 747.0 66.0 55.143 1.41 null null null null null null null null 3019434.0 141735.0 20.69034277442079 0.971 138016.0 0.946 3.9e-2 25.4 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 554.6942099898818 43.588060009952414 37.29267234072062 5.118736177870532 0.4522578149122558 0.37786140435918975
RUS Europe Russia 2020-04-27 87147.0 6198.0 5718.0 794.0 47.0 55.571 1.38 null null null null null null null null 3139258.0 119824.0 21.511423689785126 0.821 142379.0 0.976 4.0e-2 24.9 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 597.1653302448236 42.471120254941845 39.18197251012544 5.440798561217139 0.3220623833466064 0.38079422776498434
RUS Europe Russia 2020-04-28 93558.0 6411.0 5827.857 867.0 73.0 58.714 1.37 null null null null null null null null 3303717.0 164459.0 22.638361083461714 1.127 150168.0 1.029 3.9e-2 25.8 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 641.0960098115278 43.93067956670412 39.934755643046884 5.941023114074633 0.5002245528574951 0.40233129310239674
RUS Europe Russia 2020-04-29 99399.0 5841.0 5914.286 972.0 105.0 65.571 1.36 null null null null null null null null 3498308.0 194591.0 23.97177472681915 1.333 156670.0 1.074 3.8e-2 26.5 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 681.1208264312625 40.024816619734636 40.52700095645675 6.660524183253222 0.7195010691785888 0.44931813911532614
RUS Europe Russia 2020-04-30 106498.0 7099.0 6246.429 1073.0 101.0 74.0 1.38 null null null null null null null null 3723807.0 225499.0 25.516982075378223 1.545 167401.0 1.147 3.7e-2 26.8 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 729.76595109887 48.64512466760764 42.802974705220414 7.352615687891674 0.692091504638452 0.5070769439925292
RUS Europe Russia 2020-05-01 114431.0 7933.0 6544.143 1169.0 96.0 79.143 1.41 null null null null null null null null 3945518.0 221711.0 27.036232566317786 1.519 174860.0 1.198 3.7e-2 26.7 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 784.1259699730962 54.36001887422614 44.843027479595975 8.010445236854956 0.6578295489632812 0.5423187916000101
RUS Europe Russia 2020-05-02 124054.0 9623.0 7066.571 1222.0 53.0 77.286 1.43 null null null null null null null null 4099999.0 154481.0 28.094796801249 1.059 174614.0 1.197 4.0e-2 24.7 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 850.06652986553 65.94055989243391 48.42290847548961 8.373621967011767 0.36317673015681146 0.5295939012622516
RUS Europe Russia 2020-05-03 134687.0 10633.0 7676.857 1280.0 58.0 76.143 1.43 null null null null null null null null 4303243.0 203244.0 29.487504185097887 1.393 183401.0 1.257 4.2e-2 23.9 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 922.9280048043485 72.86147493881842 52.60482685172508 8.77106065284375 0.3974386858319824 0.5217616181949075
RUS Europe Russia 2020-05-04 145268.0 10581.0 8303.0 1356.0 76.0 80.286 1.41 null null null null null null null null 4460357.0 157114.0 30.564110765887648 1.077 188728.0 1.293 4.4e-2 22.7 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 995.433155404145 72.50515059979664 56.895403594188785 9.291842379106345 0.5207817262625977 0.5501510746673541
RUS Europe Russia 2020-05-05 155370.0 10102.0 8830.286 1451.0 95.0 83.429 1.37 null null null null null null null null 4633731.0 173374.0 31.752137226533062 1.188 190002.0 1.302 4.6e-2 21.5 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1064.6560106502604 69.22285524611529 60.50857350621642 9.942819536934595 0.650977157828247 0.5716881400047665
RUS Europe Russia 2020-05-06 165929.0 10559.0 9504.286 1537.0 86.0 80.714 1.34 null null null null null null null null 4803192.0 169461.0 32.91335028066709 1.161 186412.0 1.277 5.1e-2 19.6 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1137.0104086450863 72.35439799482589 65.12708513122946 10.532125174547533 0.5893056376129394 0.5530838980731487
RUS Europe Russia 2020-05-07 177160.0 11231.0 10094.571 1625.0 88.0 78.857 1.3 null null null null null null null null 4987468.0 184276.0 34.17608150946665 1.263 180523.0 1.237 5.6e-2 17.9 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1213.9696134826552 76.95920483756888 69.1719488323731 11.135135594430542 0.6030104198830077 0.5403590077353903
RUS Europe Russia 2020-05-08 187859.0 10699.0 10489.714 1723.0 98.0 79.143 1.26 null null null null null null null null 5221964.0 234496.0 35.78293982106762 1.607 182349.0 1.25 5.8e-2 17.4 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1287.2833462363858 73.31373275373068 71.87962322264393 11.80666992566389 0.6715343312333495 0.5423187916000101
RUS Europe Russia 2020-05-09 198676.0 10817.0 10660.286 1827.0 104.0 86.429 1.23 null null null null null null null null 5448463.0 226499.0 37.33499956076173 1.552 192638.0 1.32 5.5e-2 18.1 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1361.4056611440506 74.12231490766472 73.04844928332898 12.519318603707445 0.7126486780435546 0.5922453134098691
RUS Europe Russia 2020-05-10 209688.0 11012.0 10714.429 1915.0 88.0 90.714 1.2 null null null null null null null null 5636763.0 188300.0 38.62530481148867 1.29 190503.0 1.305 5.6e-2 17.8 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1436.864192323047 75.45853117899638 73.41945829655313 13.122329023590453 0.6030104198830077 0.6216078094234905
RUS Europe Russia 2020-05-11 221344.0 11656.0 10868.0 2009.0 94.0 93.286 1.16 null null null null null null null null 5805404.0 168641.0 39.78089890489196 1.156 192150.0 1.317 5.7e-2 17.7 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1516.7356633930053 79.87147106995839 74.47178685555146 13.766453790283665 0.6441247666932128 0.6392321594227984
RUS Europe Russia 2020-05-12 232243.0 10899.0 10981.857 2116.0 107.0 95.0 1.12 null null null null null null null null 5982558.0 177154.0 40.99482740402781 1.214 192690.0 1.32 5.7e-2 17.5 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1591.419874373743 74.6842109807375 75.25197955301304 14.499659641732322 0.7332058514486571 0.650977157828247
RUS Europe Russia 2020-05-13 242271.0 10028.0 10906.0 2212.0 96.0 96.429 1.09 null null null null null null null null 6188102.0 205544.0 42.40329528748727 1.408 197844.0 1.356 5.5e-2 18.1 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1660.1356526758657 68.71577830212276 74.73217771868276 15.157489190695603 0.6578295489632812 0.6607692247602108
RUS Europe Russia 2020-05-14 252245.0 9974.0 10726.429 2305.0 93.0 97.143 1.06 null null null null null null null null 6413948.0 225846.0 43.9508804157702 1.548 203783.0 1.396 5.3e-2 19.0 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1728.4814018566965 68.34574918083091 73.50168699017352 15.794761566253783 0.6372723755581787 0.6656618320306253
RUS Europe Russia 2020-05-15 262843.0 10598.0 10712.0 2418.0 113.0 99.286 1.03 null null null null null null null null 6656340.0 242392.0 45.611845207773406 1.661 204911.0 1.404 5.2e-2 19.1 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1801.1030431057889 72.62164124909224 73.40281383848613 16.569081764512646 0.7743201982588622 0.6803465062330035
RUS Europe Russia 2020-05-16 272043.0 9200.0 10481.0 2537.0 119.0 101.429 1.0 null null null null null null null null 6916088.0 259748.0 47.39174010031626 1.78 209661.0 1.437 5.0e-2 20.0 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1864.1450415481033 63.041998442314444 71.81991148629324 17.384516309581713 0.8154345450690673 0.6950311804353817
RUS Europe Russia 2020-05-17 281752.0 9709.0 10294.857 2631.0 94.0 102.286 0.99 null null null null null null null null 7147014.0 230926.0 48.97413537556517 1.582 215750.0 1.478 4.8e-2 21.0 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1930.67490707815 66.52986553004685 70.54438684324457 18.028641076274926 0.6441247666932128 0.7009036796381061
RUS Europe Russia 2020-05-18 290678.0 8926.0 9904.857 2722.0 91.0 101.857 0.97 null null null null null null null null 7352316.0 205302.0 50.380944980369954 1.407 220987.0 1.514 4.5e-2 22.3 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1991.8393503494651 61.16444327131508 67.87195430058124 18.652208669563034 0.6235675932881103 0.6979640038411763
RUS Europe Russia 2020-05-19 299941.0 9263.0 9671.143 2837.0 115.0 103.0 0.96 null null null null null null null null 7578029.0 225713.0 51.92761874063193 1.547 227924.0 1.562 4.2e-2 23.6 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2055.313049433287 63.4736990838216 66.27045455884785 19.44023365009197 0.7880249805289306 0.7057962869085204
RUS Europe Russia 2020-05-20 308705.0 8764.0 9490.571 2972.0 135.0 108.571 0.96 null null null null null null null null 7840880.0 262851.0 53.728776602866795 1.801 236111.0 1.618 4.0e-2 24.9 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2115.3674053407262 60.05435590743954 65.03310458681246 20.36530645332158 0.9250728032296142 0.7439709579217959
RUS Europe Russia 2020-05-21 317554.0 8849.0 9329.857 3099.0 127.0 113.429 0.95 null null null null null null null null 8126626.0 285746.0 55.68681996013827 1.958 244668.0 1.677 3.8e-2 26.2 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2176.0042144946437 60.636809153917454 63.93182939793658 21.235560127470922 0.8702536741493407 0.7772598740557919
RUS Europe Russia 2020-05-22 326448.0 8894.0 9086.429 3249.0 150.0 118.714 0.95 null null null null null null null null 8402747.0 276121.0 57.57890905273504 1.892 249487.0 1.71 3.6e-2 27.5 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2236.9493812496376 60.94516675499399 62.26376552871748 22.263418797726047 1.027858670255127 0.8134747612044475
RUS Europe Russia 2020-05-23 335882.0 9434.0 9119.857 3388.0 139.0 121.571 0.96 null null null null null null null null 8685305.0 282558.0 59.51510698706803 1.936 252745.0 1.732 3.6e-2 27.7 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2301.59483921755 64.64545796791244 62.4928272595794 23.2159011654958 0.9524823677697509 0.8330520426772401
RUS Europe Russia 2020-05-24 344481.0 8599.0 8961.286 3541.0 153.0 130.0 0.95 null null null null null null null null 8945384.0 260079.0 61.297270021076585 1.782 256910.0 1.76 3.5e-2 28.7 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2360.518550587709 58.923711370158905 61.4062367449059 24.264317009156027 1.0484158436602293 0.8908108475544433
RUS Europe Russia 2020-05-25 353427.0 8946.0 8964.143 3633.0 92.0 130.143 0.96 null null null null null null null null 9160590.0 215206.0 62.771945707682754 1.475 258325.0 1.77 3.5e-2 28.8 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2421.820041681725 61.301491094015766 61.425814026378696 24.894736993579173 0.6304199844231445 0.8917907394867531
RUS Europe Russia 2020-05-26 362342.0 8915.0 8914.429 3807.0 174.0 138.571 0.96 null null null null null null null null 9415992.0 255402.0 64.52206010835275 1.75 262566.0 1.799 3.4e-2 29.5 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2482.9091086505546 61.089066968829705 61.0851542534916 26.08705305107512 1.1923160574959473 0.9495426919728212
RUS Europe Russia 2020-05-27 370680.0 8338.0 8853.571 3968.0 161.0 142.286 0.95 null null null null null null null null 9701280.0 285288.0 66.47696507048438 1.955 265771.0 1.821 3.3e-2 30.0 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2540.044345934469 57.13523728391498 60.66813143379569 27.190288023815622 1.1032349727405029 0.9749993250394732
RUS Europe Russia 2020-05-28 379051.0 8371.0 8785.286 4142.0 174.0 149.0 0.96 null null null null null null null null 1.0000061e7 298781.0 68.52432934620101 2.047 267634.0 1.834 3.3e-2 30.5 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2597.4057121258406 57.36136619137111 60.200215905139885 28.38260408131157 1.1923160574959473 1.0210062791200927
RUS Europe Russia 2020-05-29 387623.0 8572.0 8739.286 4374.0 232.0 160.714 0.97 null null null null null null null null 1.03162e7 316139.0 70.6906374272396 2.166 273350.0 1.873 3.2e-2 31.3 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2656.1444089353536 58.73869680951298 59.88500591292831 29.9723588246395 1.5897547433279295 1.101275188875883
RUS Europe Russia 2020-05-30 396575.0 8952.0 8670.429 4555.0 181.0 166.714 0.97 null null null null null null null null 1.0643124e7 326924.0 72.93084854666951 2.24 279688.0 1.917 3.1e-2 32.3 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2717.4870143761796 61.34260544082597 59.413170816543264 31.212641620080685 1.2402827954411864 1.142389535686088
RUS Europe Russia 2020-05-31 405843.0 9268.0 8766.0 4693.0 138.0 164.571 0.98 null null null null null null null null 1.0923108e7 279984.0 74.84940842622093 1.919 282532.0 1.936 3.1e-2 32.2 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2780.9949754156764 63.50796103949678 60.06806068970961 32.1582715967154 0.9456299766347167 1.1277048614837097
RUS Europe Russia 2020-06-01 414328.0 8485.0 8700.143 4849.0 156.0 173.714 0.98 null null null null null null null null 1.1151622e7 228514.0 76.41527573405212 1.566 284433.0 1.949 3.1e-2 32.7 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2839.1375141964413 58.14253878076501 59.61678276672967 33.227244613780734 1.068973017065332 1.1903562736313273
RUS Europe Russia 2020-06-02 423186.0 8858.0 8692.0 5031.0 182.0 174.857 0.98 null null null null null null null null 1.1426045e7 274423.0 78.29572946650161 1.88 287150.0 1.968 3.0e-2 33.0 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2899.8359948705743 60.69848067413276 59.56098374571708 34.47437980035695 1.2471351865762206 1.1981885566986716
RUS Europe Russia 2020-06-03 431715.0 8529.0 8719.286 5208.0 177.0 177.143 0.98 null null null null null null null null 1.1733051e7 307006.0 80.39945465930391 2.104 290253.0 1.989 3.0e-2 33.3 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2958.280038861281 58.44404399070652 59.74795809022763 35.68725303125801 1.2128732309010497 1.2138531228333596
RUS Europe Russia 2020-06-04 440538.0 8823.0 8783.857 5376.0 168.0 176.286 0.99 null null null null null null null null 1.2053663e7 320612.0 82.59641348588949 2.197 293372.0 2.01 3.0e-2 33.4 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3018.738685845687 60.45864698440656 60.19042383820791 36.83845474194375 1.1512017106857422 1.2079806236306354
RUS Europe Russia 2020-06-05 449256.0 8718.0 8804.714 5520.0 144.0 163.714 0.99 null null null null null null null null 1.2388968e7 335305.0 84.89405449542211 2.298 296110.0 2.029 3.0e-2 33.6 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3078.477831760915 59.73914591522797 60.333344160111324 37.82519906538867 0.9867443234449218 1.1218323622809856
RUS Europe Russia 2020-06-06 458102.0 8846.0 8789.571 5717.0 197.0 166.0 0.99 null null null null null null null null 1.2721549e7 332581.0 87.17302959150292 2.279 296918.0 2.035 3.0e-2 33.8 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3139.0940837414278 60.616251980512345 60.2295784011535 39.1751201189904 1.3499210536017332 1.1374969284156737
RUS Europe Russia 2020-06-07 467073.0 8971.0 8747.143 5851.0 134.0 165.429 0.99 null null null null null null null null 1.3016023e7 294474.0 89.19088061860097 2.018 298988.0 2.049 2.9e-2 34.2 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3200.566884613819 61.47280087239162 59.938845150076276 40.09334053108498 0.91822041209458 1.1335842130775693
RUS Europe Russia 2020-06-08 476043.0 8970.0 8816.429 5963.0 112.0 159.143 0.99 null null null null null null null null 1.3254678e7 238655.0 90.82623802493256 1.635 300437.0 2.059 2.9e-2 34.1 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3262.0328330950756 61.46594848125658 60.413619922258256 40.86080833820881 0.767467807123828 1.0905100824027445
RUS Europe Russia 2020-06-09 484630.0 8587.0 8777.714 6134.0 171.0 157.571 0.98 null null null null null null null null 1.3545303e7 290625.0 92.81771419855187 1.991 302751.0 2.075 2.9e-2 34.5 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3320.8743157716144 58.8414826765385 60.148329599465406 42.032567222299654 1.1717588840908446 1.0797381235384707
RUS Europe Russia 2020-06-10 493023.0 8393.0 8758.286 6350.0 216.0 163.143 0.98 null null null null null null null null 1.3875097e7 329794.0 95.07759168053934 2.26 306007.0 2.097 2.9e-2 34.9 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3378.386434567956 57.512118796341866 60.01520134449396 43.51268370746704 1.4801164851673827 1.1179196469428812
RUS Europe Russia 2020-06-11 501800.0 8777.0 8751.714 6522.0 172.0 163.714 0.98 null null null null null null null null 1.4218674e7 343577.0 97.43191566954097 2.354 309287.0 2.119 2.8e-2 35.3 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3438.529871560151 60.14343699219499 59.970167429954515 44.69129498269292 1.1786112752258788 1.1218323622809856
RUS Europe Russia 2020-06-12 510761.0 8961.0 8786.429 6705.0 183.0 169.286 0.98 null null null null null null null null 1.4574117e7 355443.0 99.86755013175093 2.436 312164.0 2.139 2.8e-2 35.5 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3499.9341485211926 61.40427696104128 60.20804818820723 45.94528256040417 1.2539875777112548 1.1600138856853959
RUS Europe Russia 2020-06-13 519458.0 8697.0 8765.143 6819.0 114.0 157.429 0.98 null null null null null null null null 1.4880172e7 306055.0 101.96475870058381 2.097 308375.0 2.113 2.8e-2 35.2 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3559.529394222585 59.59524570139226 60.06218819050689 46.72645514979806 0.7811725893938963 1.0787650839972958
RUS Europe Russia 2020-06-14 528267.0 8809.0 8742.0 6938.0 119.0 155.286 0.97 null null null null null null null null 1.5161152e7 280980.0 103.89014356170571 1.925 306447.0 2.1 2.9e-2 35.1 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3619.8921077311006 60.36271350851608 59.903603302468795 47.54188969486713 0.8154345450690673 1.0640804097949177
RUS Europe Russia 2020-06-15 536484.0 8217.0 8634.429 7081.0 143.0 159.714 0.96 null null null null null null null null 1.5395417e7 234265.0 105.49541897095449 1.605 305820.0 2.096 2.8e-2 35.4 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3676.1982056876764 56.30609795657585 59.166484735682026 48.52178162717702 0.9798919323098875 1.094422797740849
RUS Europe Russia 2020-06-16 544725.0 8241.0 8585.0 7274.0 193.0 162.857 0.95 null null null null null null null null 1.5679724e7 284307.0 107.44360173738265 1.948 304917.0 2.089 2.8e-2 35.5 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3732.6687610314934 56.47055534381667 58.82777789426843 49.84429311623862 1.3225114890615965 1.1159598630782614
RUS Europe Russia 2020-06-17 552549.0 7824.0 8503.714 7468.0 194.0 159.714 0.94 null null null null null null null null 1.5991697e7 311973.0 109.58136275695269 2.138 302371.0 2.072 2.8e-2 35.6 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3786.2818692720007 53.613108240507415 58.27077442846604 51.17365699643525 1.3293638801966305 1.094422797740849
RUS Europe Russia 2020-06-18 560321.0 7772.0 8360.143 7650.0 182.0 161.143 0.94 null null null null null null null null 1.6321964e7 330267.0 111.844481419947 2.263 300470.0 2.059 2.8e-2 35.9 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3839.538653173486 53.25678390148564 57.28696978081805 52.42079218301147 1.2471351865762206 1.1042148646728127
RUS Europe Russia 2020-06-19 568292.0 7971.0 8218.714 7831.0 181.0 160.857 0.94 null null null null null null null null 1.6661287e7 339323.0 114.1696553370602 2.325 298167.0 2.043 2.8e-2 36.3 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3894.1590629108437 54.62040973735744 56.3178429549813 53.66107497845266 1.2402827954411864 1.102255080808193
RUS Europe Russia 2020-06-20 576162.0 7870.0 8100.571 7992.0 161.0 167.571 0.93 null null null null null null null null 1.6998453e7 337166.0 116.48004864649515 2.31 302612.0 2.074 2.7e-2 37.4 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3948.087381143562 53.928318232718986 55.50828090911496 54.764309951193155 1.1032349727405029 1.1482620348888124
RUS Europe Russia 2020-06-21 583879.0 7717.0 7944.571 8101.0 109.0 166.143 0.93 null null null null null null null null 1.7289691e7 291238.0 118.47572533588023 1.996 304077.0 2.084 2.6e-2 38.3 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4000.9672835326214 52.87990238905876 54.43930789204962 55.51122058491189 0.7469106337187255 1.1384768203479836
RUS Europe Russia 2020-06-22 591465.0 7586.0 7854.429 8196.0 95.0 159.286 0.92 null null null null null null null null 1.7522752e7 233061.0 120.07275046620244 1.597 303905.0 2.082 2.6e-2 38.7 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4052.949522682991 51.98223915036929 53.82161965035537 56.16219774274013 0.650977157828247 1.0914899743350541
RUS Europe Russia 2020-06-23 598878.0 7413.0 7736.143 8349.0 153.0 153.571 0.92 null null null null null null null null 1.7803955e7 281203.0 121.99966341054746 1.927 303462.0 2.079 2.5e-2 39.2 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4103.746298166999 50.79677548400837 53.01107771255672 57.21061358640036 1.0484158436602293 1.052328558998334
RUS Europe Russia 2020-06-24 606043.0 7165.0 7642.0 8503.0 154.0 147.857 0.91 null null null null null null null null 1.811583e7 311875.0 124.13675289578623 2.137 303448.0 2.079 2.5e-2 39.7 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4152.843680649519 49.09738248251989 52.3659730539312 58.26588182119563 1.0552682347952635 1.0131739960527486
RUS Europe Russia 2020-06-25 613148.0 7105.0 7546.714 8594.0 91.0 134.857 0.91 null null null null null null null null 1.8402719e7 286889.0 126.10262853612505 1.966 297251.0 2.037 2.5e-2 39.4 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4201.529919663937 48.68623901441784 51.71303611223833 58.889449414483735 0.6235675932881103 0.9240929112973043
RUS Europe Russia 2020-06-26 619936.0 6788.0 7377.714 8770.0 176.0 134.143 0.91 null null null null null null null null 1.8707946e7 305227.0 128.19416332509815 2.092 292380.0 2.004 2.5e-2 39.6 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4248.043950688549 46.51403102461201 50.554982010417554 60.095470254249754 1.2060208397660155 0.9192003040268899
RUS Europe Russia 2020-06-27 626779.0 6843.0 7231.0 8958.0 188.0 138.0 0.91 null null null null null null null null 1.9044954e7 337008.0 130.50347395673373 2.309 292357.0 2.003 2.5e-2 40.4 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4294.934863225588 46.890912537038886 49.54964029743215 61.38371978763617 1.2882495333864257 0.9456299766347167
RUS Europe Russia 2020-06-28 633563.0 6784.0 7097.714 9060.0 102.0 137.0 0.91 null null null null null null null null 1.9334442e7 289488.0 132.4871589616325 1.984 292107.0 2.002 2.4e-2 41.2 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4341.421484685659 46.486621460071866 48.636312492607985 62.08266368340967 0.6989438957734863 0.9387775854996826
RUS Europe Russia 2020-06-29 640246.0 6683.0 6968.714 9152.0 92.0 136.571 0.91 null null null null null null null null 1.956244e7 227998.0 134.049490435638 1.562 291384.0 1.997 2.4e-2 41.8 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4387.216014641093 45.79452995543342 47.75235403618858 62.7130836678328 0.6304199844231445 0.9358379097027528
RUS Europe Russia 2020-06-30 646929.0 6683.0 6864.429 9306.0 154.0 136.714 0.92 null null null null null null null null 1.9852167e7 289727.0 136.03481316201808 1.985 292602.0 2.005 2.3e-2 42.6 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4433.010544596526 45.79452995543342 47.03775242667154 63.76835190262807 1.0552682347952635 0.9368178016350627
RUS Europe Russia 2020-07-01 653479.0 6550.0 6776.571 9521.0 215.0 145.429 0.92 null null null null null null null null 2.0168904e7 316737.0 138.2052189729554 2.17 293296.0 2.01 2.3e-2 43.3 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4477.893706531 44.88316193447387 46.435715046329705 65.24161599666041 1.4732640940323485 0.9965363903768856
RUS Europe Russia 2020-07-02 660231.0 6752.0 6726.143 9668.0 147.0 153.429 0.93 null null null null null null null null 2.045111e7 282206.0 140.13900486560885 1.934 292627.0 2.005 2.3e-2 43.5 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4524.161051474751 46.26734494375078 46.0901626661722 66.24891749351043 1.0073014968500242 1.051355519457159
RUS Europe Russia 2020-07-03 666941.0 6710.0 6715.0 9844.0 176.0 153.429 0.94 null null null null null null null null 2.0752406e7 301296.0 142.20360290503012 2.065 292066.0 2.001 2.3e-2 43.5 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4570.140595990831 45.97954451607934 46.01380647175451 67.45493833327646 1.2060208397660155 1.051355519457159
RUS Europe Russia 2020-07-04 673564.0 6623.0 6683.571 10011.0 167.0 150.429 0.94 null null null null null null null null 2.0752406e7 null 142.20360290503012 null 285564.0 1.957 2.3e-2 42.7 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4615.523982478162 45.383386487331364 45.79844267077152 68.59928765282716 1.144349319550708 1.0307983460520567
RUS Europe Russia 2020-07-05 680283.0 6719.0 6674.286 10145.0 134.0 155.0 0.95 null null null null null null null null 2.1335394e7 null 146.1984647080614 null 285850.0 1.959 2.3e-2 42.8 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4661.565198514456 46.04121603629465 45.73481821908273 69.51750806492176 0.91822041209458 1.0621206259302978
RUS Europe Russia 2020-07-06 686852.0 6569.0 6658.0 10280.0 135.0 161.143 0.95 null null null null null null null null 2.1537771e7 202377.0 147.58523106879622 1.387 282190.0 1.934 2.4e-2 42.4 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4706.5785558804955 45.01335736603952 45.62322017705756 70.44258086815137 0.9250728032296142 1.1042148646728127
RUS Europe Russia 2020-07-07 693215.0 6363.0 6612.286 10478.0 198.0 167.429 0.95 null null null null null null null null 2.1790705e7 252934.0 149.31843376814496 1.733 276934.0 1.898 2.4e-2 41.9 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4750.180320672718 43.60176479222248 45.30996996871061 71.79935431288813 1.3567734447367674 1.1472889953476375
RUS Europe Russia 2020-07-08 699749.0 6534.0 6610.0 10650.0 172.0 161.286 0.96 null null null null null null null null 2.2079294e7 288589.0 151.29595847341335 1.978 272913.0 1.87 2.4e-2 41.3 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4794.953844349032 44.773523676313324 45.29430540257593 72.97796558811402 1.1786112752258788 1.1051947566051226
RUS Europe Russia 2020-07-09 706240.0 6491.0 6572.714 10826.0 176.0 165.429 0.96 null null null null null null null null 2.2388195e7 308901.0 153.41266894741653 2.117 276726.0 1.896 2.4e-2 42.1 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4839.432715206538 44.478870857506855 45.03880714671504 74.18398642788001 1.2060208397660155 1.1335842130775693
RUS Europe Russia 2020-07-10 712863.0 6623.0 6560.286 11000.0 174.0 165.143 0.96 null null null null null null null null 2.2708416e7 320221.0 155.60694848906832 2.194 279430.0 1.915 2.3e-2 42.6 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4884.816101693869 45.383386487331364 44.95364562968883 75.37630248537597 1.1923160574959473 1.1316244292129494
RUS Europe Russia 2020-07-11 719449.0 6586.0 6555.0 11188.0 188.0 168.143 0.97 null null null null null null null null 2.3031056e7 322640.0 157.81780396487574 2.211 283879.0 1.945 2.3e-2 43.3 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4929.945949709205 45.12984801533511 44.917423890149045 76.6645520187624 1.2882495333864257 1.1521816026180518
RUS Europe Russia 2020-07-12 726036.0 6587.0 6536.143 11318.0 130.0 167.571 0.97 null null null null null null null null 2.329263e7 261574.0 159.61021132363118 1.792 279605.0 1.916 2.3e-2 42.8 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4975.082650115675 45.13670040647013 44.7882083505157 77.55536286631684 0.8908108475544433 1.1482620348888124
RUS Europe Russia 2020-07-13 732547.0 6511.0 6527.857 11422.0 104.0 163.143 0.96 null null null null null null null null 2.3495752e7 203122.0 161.0020827157616 1.392 279712.0 1.917 2.3e-2 42.8 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5019.698568795883 44.61591868020754 44.73142943757081 78.26801154436039 0.7126486780435546 1.1179196469428812
RUS Europe Russia 2020-07-14 738787.0 6240.0 6510.286 11597.0 175.0 159.857 0.96 null null null null null null null null 2.3754645e7 258893.0 162.77611881388398 1.774 280563.0 1.923 2.3e-2 43.1 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5062.457489478496 42.75892068261328 44.61102607293713 79.46717999299138 1.1991684486309813 1.0954026896731588
RUS Europe Russia 2020-07-15 745197.0 6410.0 6492.571 11753.0 156.0 157.571 0.96 null null null null null null null null 2.4053516e7 298871.0 164.82409980480278 2.048 282032.0 1.933 2.3e-2 43.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5106.381316654065 43.92382717556909 44.48963596397999 80.53615301005671 1.068973017065332 1.0797381235384707
RUS Europe Russia 2020-07-16 751612.0 6415.0 6481.714 11920.0 167.0 156.286 0.96 null null null null null null null null 2.4364568e7 311052.0 166.95554977213746 2.131 282339.0 1.935 2.3e-2 43.6 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5150.339405785309 43.95808913124426 44.41523955342693 81.6805023296074 1.144349319550708 1.0709328009299517
RUS Europe Russia 2020-07-17 758001.0 6389.0 6448.286 12106.0 186.0 158.0 0.96 null null null null null null null null 2.467693e7 312362.0 169.095976371859 2.14 281216.0 1.927 2.3e-2 43.6 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5194.119332747043 43.779926961733366 44.18617782256501 82.95504708072377 1.2745447511163575 1.0826777993354004
RUS Europe Russia 2020-07-18 764215.0 6214.0 6395.143 12228.0 122.0 148.571 0.95 null null null null null null null null 2.499174e7 314810.0 171.2531776250791 2.157 280098.0 1.919 2.3e-2 43.8 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5236.700091260145 42.58075851310239 43.82202120047589 83.79103879919795 0.8359917184741699 1.0180666033231631
RUS Europe Russia 2020-07-19 770311.0 6096.0 6325.0 12323.0 95.0 143.571 0.95 null null null null null null null null 2.5251614e7 259874.0 173.03393591890497 1.781 279855.0 1.918 2.3e-2 44.2 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5278.472267619313 41.772176359168355 43.341373929091176 84.44201595702619 0.650977157828247 0.9838046476479921
RUS Europe Russia 2020-07-20 776212.0 5901.0 6237.857 12408.0 85.0 140.857 0.94 null null null null null null null null 2.5449167e7 197553.0 174.38764634480438 1.354 279059.0 1.912 2.2e-2 44.7 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5318.90822770715 40.43596008783669 42.744236008410894 85.0244692035041 0.5824532464779053 0.9652072581075094
RUS Europe Russia 2020-07-21 782040.0 5828.0 6179.0 12561.0 153.0 137.714 0.94 null null null null null null null null 2.5704372e7 255205.0 176.13641082442078 1.749 278532.0 1.909 2.2e-2 45.1 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5358.84396324213 39.935735534979194 42.34092482337619 86.07288504716432 1.0484158436602293 0.9436701927700969
RUS Europe Russia 2020-07-22 787890.0 5850.0 6099.0 12726.0 165.0 139.0 0.94 null null null null null null null null 2.6000908e7 296536.0 178.16839148203928 2.032 278199.0 1.906 2.2e-2 45.6 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5398.930451382079 40.08648813994994 41.79273353257346 87.20352958444496 1.1306445372806395 0.9524823677697509
RUS Europe Russia 2020-07-23 793720.0 5830.0 6015.429 12873.0 147.0 136.143 0.94 null null null null null null null null 2.6300652e7 299744.0 180.22235461041893 2.054 276583.0 1.895 2.2e-2 46.0 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5438.879891699329 39.94944031724926 41.22007235302752 88.21083108129498 1.0073014968500242 0.9329050862969582
RUS Europe Russia 2020-07-24 799499.0 5779.0 5928.286 13026.0 153.0 131.429 0.94 null null null null null null null null 2.6610623e7 309971.0 182.34639714293664 2.124 276242.0 1.893 2.1e-2 46.6 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5478.479860068691 39.59996836936252 40.62293443234723 89.25924692495522 1.0484158436602293 0.9006029144864072
RUS Europe Russia 2020-07-25 805332.0 5833.0 5873.857 13172.0 146.0 134.857 0.94 null null null null null null null null 2.6902291e7 291668.0 184.34502036050978 1.999 272936.0 1.87 2.2e-2 46.5 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5518.449857559345 39.96999749065437 40.249965635258455 90.25969603067021 1.0004491057149902 0.9240929112973043
RUS Europe Russia 2020-07-26 811073.0 5741.0 5823.143 13249.0 77.0 132.286 0.94 null null null null null null null null 2.7141966e7 239675.0 185.98736720579907 1.642 270050.0 1.85 2.2e-2 46.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5557.789435065577 39.33957750623122 39.902453471236335 90.78733014806784 0.5276341173976318 0.9064754136891314
RUS Europe Russia 2020-07-27 816680.0 5607.0 5781.143 13334.0 85.0 132.286 0.94 null null null null null null null null 2.732757e7 185604.0 187.25919841002596 1.272 268343.0 1.839 2.2e-2 46.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5596.2107921597135 38.42135709413664 39.6146530435649 91.36978339454573 0.5824532464779053 0.9064754136891314
RUS Europe Russia 2020-07-28 822060.0 5380.0 5717.143 13483.0 149.0 131.714 0.93 null null null null null null null null 2.7569646e7 242076.0 188.91799784643052 1.659 266468.0 1.826 2.1e-2 46.6 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5633.076656466197 36.86586430648388 39.17610001092271 92.39078967366584 1.0210062791200927 0.9025558459598919
RUS Europe Russia 2020-07-29 827509.0 5449.0 5659.857 13650.0 167.0 132.0 0.94 null null null null null null null null 2.785785e7 288204.0 190.8928843811119 1.975 265277.0 1.818 2.1e-2 46.9 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5670.4153357609985 37.338679294801246 38.783553932361144 93.53513899321655 1.144349319550708 0.9045156298245116
RUS Europe Russia 2020-07-30 832993.0 5484.0 5610.429 13778.0 128.0 129.286 0.94 null null null null null null null null 2.8161461e7 303611.0 192.97334570601078 2.08 265830.0 1.822 2.1e-2 47.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5707.993848745526 37.57851298452744 38.44485394333868 94.41224505850091 0.877106065284375 0.8859182402840289
RUS Europe Russia 2020-07-31 838461.0 5468.0 5566.0 13939.0 161.0 130.429 0.94 null null null null null null null null 2.8478012e7 316551.0 195.14247697219696 2.169 266770.0 1.828 2.1e-2 47.9 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5745.462723471893 37.46887472636689 38.140409057600245 95.51548003124142 1.1032349727405029 0.893750523351373
RUS Europe Russia 2020-08-01 843890.0 5429.0 5508.286 14034.0 95.0 123.143 0.94 null null null null null null null null 2.879326e7 315248.0 197.30267957273423 2.16 270138.0 1.851 2.0e-2 49.0 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5782.664354943993 37.20163147210056 37.74493015563288 96.16645718906967 0.650977157828247 0.8438240015415139
RUS Europe Russia 2020-08-02 849277.0 5387.0 5457.714 14104.0 70.0 122.143 0.94 null null null null null null null null 2.90299e7 236640.0 198.92422941092872 1.622 269705.0 1.848 2.0e-2 49.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5819.578185988422 36.91383104442912 37.398391031151924 96.64612456852207 0.4796673794523925 0.8369716104064797
RUS Europe Russia 2020-08-03 854641.0 5364.0 5423.0 14183.0 79.0 121.286 0.94 null null null null null null null null 2.9201862e7 171962.0 200.10258029529146 1.178 267756.0 1.835 2.0e-2 49.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5856.3344120367465 36.756226048323335 37.160517125290355 97.18746346818976 0.5413388996677002 0.8310991112037555
RUS Europe Russia 2020-08-04 859762.0 5121.0 5386.0 14327.0 144.0 120.571 0.94 null null null null null null null null 2.943389e7 232028.0 201.69252690557119 1.59 266321.0 1.825 2.0e-2 49.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5891.4255070392555 35.09109500251003 36.90697865329409 98.17420779163469 0.9867443234449218 0.826199651542206
RUS Europe Russia 2020-08-05 864948.0 5186.0 5348.429 14465.0 138.0 116.429 0.94 null null null null null null null null 2.9716907e7 283017.0 203.63187008743515 1.939 265580.0 1.82 2.0e-2 49.7 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5926.962007465543 35.536500426287255 36.64952746595972 99.1198377682694 0.9456299766347167 0.7978170474608944
RUS Europe Russia 2020-08-06 870187.0 5239.0 5313.429 14579.0 114.0 114.429 0.95 null null null null null null null null 3.0038123e7 321216.0 205.83296775826628 2.201 268095.0 1.837 2.0e-2 50.5 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5962.8616846219875 35.89967715644406 36.409693776233524 99.9010103576633 0.7811725893938963 0.7841122651908261
RUS Europe Russia 2020-08-07 875378.0 5191.0 5273.857 14698.0 119.0 108.429 0.95 null null null null null null null null 3.0341344e7 303221.0 207.9107566506225 2.078 266190.0 1.824 2.0e-2 50.5 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5998.432447003949 35.570762381962425 36.13853095423795 100.71644490273236 0.8154345450690673 0.742997918380621
RUS Europe Russia 2020-08-08 880563.0 5185.0 5239.0 14827.0 129.0 113.286 0.95 null null null null null null null null 3.064002e7 298676.0 209.95740142526995 2.047 263823.0 1.808 2.0e-2 50.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6033.962095039102 35.52964803515222 35.89967715644406 101.60040335915177 0.8839584564194091 0.776279982123482
RUS Europe Russia 2020-08-09 885718.0 5155.0 5205.857 14903.0 76.0 114.143 0.95 null null null null null null null null 3.088616e7 246140.0 211.64404897924726 1.687 265180.0 1.817 2.0e-2 50.9 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6069.286171340203 35.324076301101194 35.672568357055624 102.12118508541437 0.5207817262625977 0.7821524813262063
RUS Europe Russia 2020-08-10 890799.0 5081.0 5165.429 14973.0 70.0 112.857 0.95 null null null null null null null null 3.1063187e7 177027.0 212.85710722470895 1.213 265904.0 1.822 1.9e-2 51.5 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6104.103170697312 34.816999357108664 35.395539888248464 102.60085246486676 0.4796673794523925 0.7733403063265524
RUS Europe Russia 2020-08-11 895691.0 4892.0 5132.714 15103.0 130.0 110.857 0.95 null null null null null null null null 3.1307764e7 244577.0 214.53304449134222 1.676 267696.0 1.834 1.9e-2 52.2 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6137.625068129899 33.5218974325872 35.17136391226582 103.4916633124212 0.8908108475544433 0.7596355240564839
RUS Europe Russia 2020-08-12 900745.0 5054.0 5113.857 15231.0 128.0 109.429 0.95 null null null null null null null null 3.1598302e7 290538.0 216.5239245069328 1.991 268771.0 1.842 1.9e-2 52.6 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6172.257052926361 34.63198479646274 35.04214837263248 104.36876937770558 0.877106065284375 0.7498503095156552
RUS Europe Russia 2020-08-13 905762.0 5017.0 5082.143 15353.0 122.0 110.571 0.96 null null null null null null null null 3.1903055e7 304753.0 218.61221126250786 2.088 266419.0 1.826 1.9e-2 52.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6206.635499250829 34.37844632446647 34.82483164017601 105.20476109617975 0.8359917184741699 0.7576757401918642
RUS Europe Russia 2020-08-14 910778.0 5016.0 5057.143 15467.0 114.0 109.857 0.96 null null null null null null null null 3.2221546e7 318491.0 220.794636167496 2.182 268600.0 1.841 1.9e-2 53.1 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6241.00709318416 34.37159393333145 34.65352186180015 105.98593368557366 0.7811725893938963 0.7527831329214498
RUS Europe Russia 2020-08-15 915808.0 5030.0 5035.0 15585.0 118.0 108.286 0.96 null null null null null null null null 3.2533818e7 312272.0 222.9344460520154 2.14 270543.0 1.854 1.9e-2 53.7 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6275.474620593381 34.46752740922192 34.50178936489709 106.79451583950768 0.8085821539340331 0.7420180264483112
RUS Europe Russia 2020-08-16 920719.0 4911.0 5000.143 15653.0 68.0 107.143 0.96 null null null null null null null null 3.2784478e7 250660.0 224.65206641392308 1.718 271188.0 1.858 1.8e-2 54.2 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6309.126713457535 33.652092864152856 34.262935567103206 107.26047843669001 0.4659625971823242 0.7341857433809671
RUS Europe Russia 2020-08-17 925558.0 4839.0 4965.571 15707.0 54.0 104.857 0.96 null null null null null null null null 3.2968759e7 184281.0 225.91483190467832 1.263 272225.0 1.865 1.8e-2 54.8 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6342.285434159964 33.15872070243039 34.0260347007828 107.63050755798184 0.3700291212918457 0.7185211772462788
RUS Europe Russia 2020-08-18 930276.0 4718.0 4940.714 15836.0 129.0 104.714 0.96 null null null null null null null null 3.3217468e7 248709.0 227.61908325148153 1.704 272815.0 1.869 1.8e-2 55.2 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6374.615015535056 32.32958137509126 33.855704814339255 108.51446601440126 0.8839584564194091 0.717541285313969
RUS Europe Russia 2020-08-19 935066.0 4790.0 4903.0 15951.0 115.0 102.857 0.96 null null null null null null null null 3.3509273e7 291805.0 229.61864524664017 2.0 272996.0 1.871 1.8e-2 55.7 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6407.43796907187 32.82295353681371 33.59727373507258 109.30249099493018 0.7880249805289306 0.7048163949762105
RUS Europe Russia 2020-08-20 939833.0 4767.0 4867.286 16058.0 107.0 100.714 0.96 null null null null null null null null 3.3814105e7 304832.0 231.7074733411149 2.089 273007.0 1.871 1.8e-2 56.1 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6440.1033176125775 32.66534854070793 33.35254743807597 110.03569684637884 0.7332058514486571 0.6901317207738323
RUS Europe Russia 2020-08-21 944671.0 4838.0 4841.857 16148.0 90.0 97.286 0.97 null null null null null null null null 3.3814105e7 null 231.7074733411149 null 272755.0 1.869 1.8e-2 56.3 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6473.255185923873 33.15186831129536 33.178297983903185 110.65241204853193 0.6167152021530762 0.6666417239629352
RUS Europe Russia 2020-08-22 949531.0 4860.0 4817.571 16268.0 120.0 97.571 0.97 null null null null null null null null 3.444756e7 null 236.04815476755797 null 273392.0 1.873 1.8e-2 56.7 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6506.557806840139 33.30262091626611 33.01188081279775 111.47469898473602 0.8222869362041014 0.6685946554364199
RUS Europe Russia 2020-08-23 954328.0 4797.0 4801.286 16341.0 73.0 98.286 0.97 null null null null null null null null 3.4695406e7 247846.0 237.74649250081168 1.698 272990.0 1.871 1.8e-2 56.9 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6539.428727114898 32.87092027475895 32.900289623163715 111.97492353759353 0.5002245528574951 0.6734941150979693
RUS Europe Russia 2020-08-24 959016.0 4688.0 4779.714 16406.0 65.0 99.857 0.97 null null null null null null null null 3.488322e7 187814.0 239.033467489447 1.287 273494.0 1.874 1.7e-2 57.2 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6571.552736755938 32.12400964104023 32.75246984159875 112.42032896137074 0.44540542377722164 0.684259221571108
RUS Europe Russia 2020-08-25 963655.0 4639.0 4768.429 16524.0 118.0 98.286 0.97 null null null null null null null null 3.5128661e7 245441.0 240.7153252220209 1.682 273028.0 1.871 1.7e-2 57.3 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6603.340979231362 31.78824247542356 32.6751406076399 113.22891111530478 0.8085821539340331 0.6734941150979693
RUS Europe Russia 2020-08-26 968297.0 4642.0 4747.286 16638.0 114.0 98.143 0.98 null null null null null null null null 3.5423783e7 295122.0 242.73761659857445 2.022 273501.0 1.874 1.7e-2 57.6 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6635.14977888019 31.808799648828657 32.530260501871865 114.01008370469867 0.7811725893938963 0.6725142231656595
RUS Europe Russia 2020-08-27 972972.0 4675.0 4734.143 16758.0 120.0 100.0 0.98 null null null null null null null null 3.5751747e7 327964.0 244.9849542047848 2.247 276806.0 1.897 1.7e-2 58.5 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6667.184707436475 32.03492855628478 32.44019952518411 114.83237064090278 0.8222869362041014 0.6852391135034178
RUS Europe Russia 2020-08-28 977730.0 4758.0 4722.714 16866.0 108.0 102.571 0.99 null null null null null null null null 3.6086182e7 334435.0 247.27663363402996 2.292 279336.0 1.914 1.7e-2 59.1 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6699.788384456968 32.603677020492626 32.3618835469018 115.57242888348647 0.7400582425836914 0.7028566111115908
RUS Europe Russia 2020-08-29 982573.0 4843.0 4720.286 16977.0 111.0 101.286 1.0 null null null null null null null null 3.642685e7 340668.0 249.6110240172198 2.334 282756.0 1.938 1.7e-2 59.9 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6732.974514723938 33.18613026697053 32.34524594122595 116.33304429947526 0.7606154159887939 0.6940512885030719
RUS Europe Russia 2020-08-30 987470.0 4897.0 4734.571 17045.0 68.0 100.571 1.0 null null null null null null null null 3.6696382e7 269532.0 251.45796270462785 1.847 285854.0 1.959 1.7e-2 60.4 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6766.5306741122 33.55615938826238 32.443132348589906 116.79900689665757 0.4659625971823242 0.6891518288415225
RUS Europe Russia 2020-08-31 992402.0 4932.0 4769.429 17128.0 83.0 103.143 1.01 null null null null null null null null 3.6901215e7 204833.0 252.86155853799025 1.404 288285.0 1.975 1.7e-2 60.4 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6800.326667190189 33.79599307798858 32.68199299877493 117.36775536086542 0.5687484642078369 0.7067761788408303
RUS Europe Russia 2020-09-01 997072.0 4670.0 4773.857 17250.0 122.0 103.714 1.01 null null null null null null null null 3.7176827e7 275612.0 254.75015976349928 1.889 292595.0 2.005 1.6e-2 61.3 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6832.327333790799 32.00066660060962 32.71233538672086 118.20374707933959 0.8359917184741699 0.7106888941789349
RUS Europe Russia 2020-09-02 1001965.0 4893.0 4809.714 17365.0 115.0 103.857 1.02 null null null null null null null null 3.7484146e7 307319.0 256.8560297547269 2.106 294338.0 2.017 1.6e-2 61.2 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6865.856083614522 33.52874982372224 32.95804157564978 118.99177205986852 0.7880249805289306 0.7116687861112447
RUS Europe Russia 2020-09-03 1006923.0 4958.0 4850.143 17479.0 114.0 103.0 1.02 null null null null null null null null 3.7818366e7 334220.0 259.146235919878 2.29 295231.0 2.023 1.6e-2 60.9 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6899.83023886202 33.97415524749946 33.23507689684808 119.77294464926241 0.7811725893938963 0.7057962869085204
RUS Europe Russia 2020-09-04 1011987.0 5064.0 4893.857 17598.0 119.0 104.571 1.03 null null null null null null null null 3.8154556e7 336190.0 261.44994129556517 2.304 295482.0 2.025 1.7e-2 60.4 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6934.530747569834 34.70050870781308 33.53462232292497 120.58837919433148 0.8154345450690673 0.7165613933816591
RUS Europe Russia 2020-09-05 1017131.0 5144.0 4936.857 17707.0 109.0 104.286 1.03 null null null null null null null null 3.8488127e7 333571.0 263.7357002588696 2.286 294468.0 2.018 1.7e-2 59.6 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6969.7794475684495 35.24869999861582 33.82927514173143 121.33528982805021 0.7469106337187255 0.7146084619081744
RUS Europe Russia 2020-09-06 1022228.0 5097.0 4965.429 17768.0 61.0 103.286 1.04 null null null null null null null null 3.8758184e7 270057.0 265.58623645162356 1.851 294543.0 2.018 1.7e-2 59.3 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7004.706085183719 34.92663761526921 34.02506166124163 121.75328568728729 0.41799585923708493 0.7077560707731403
RUS Europe Russia 2020-09-07 1027334.0 5106.0 4990.286 17818.0 50.0 98.571 1.04 null null null null null null null null 3.8960761e7 202577.0 266.9743732905854 1.388 294221.0 2.016 1.7e-2 59.0 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7039.694394319203 34.98830913548451 34.19539154768517 122.095905244039 0.3426195567517089 0.675447046571454
RUS Europe Russia 2020-09-08 1032354.0 5020.0 5040.286 17939.0 121.0 98.429 1.04 null null null null null null null null 3.9289176e7 328415.0 269.22480132519763 2.25 301764.0 2.068 1.7e-2 59.9 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7074.093397817074 34.399003497871576 34.53801110443688 122.92504457137812 0.8291393273391356 0.6744740070302793
RUS Europe Russia 2020-09-09 1037526.0 5172.0 5080.143 18080.0 141.0 102.143 1.05 null null null null null null null null 3.9575311e7 286135.0 271.1855102626206 1.961 298738.0 2.047 1.7e-2 58.8 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7109.533964767472 35.44056695039677 34.81112685790594 123.89123172141795 0.9661871500398191 0.6999237877057962
RUS Europe Russia 2020-09-10 1042836.0 5310.0 5130.429 18207.0 127.0 104.0 1.05 null null null null null null null null 3.9912526e7 337215.0 273.4962393392212 2.311 299166.0 2.05 1.7e-2 58.3 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7145.920161694503 36.38619692703149 35.15570619852227 124.7614853955673 0.8702536741493407 0.7126486780435546
RUS Europe Russia 2020-09-11 1048257.0 5421.0 5181.429 18309.0 102.0 101.571 1.05 null null null null null null null null 4.0268897e7 356371.0 275.9382328204045 2.442 302049.0 2.07 1.7e-2 58.3 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7183.066974037523 37.14681234302029 35.505178146409015 125.46042929134079 0.6989438957734863 0.6960042199765566
RUS Europe Russia 2020-09-12 1053663.0 5406.0 5218.857 18426.0 117.0 102.714 1.06 null null null null null null null null 4.0624075e7 355178.0 278.3720513989636 2.434 305135.0 2.091 1.7e-2 58.5 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7220.111000513519 37.04402647599477 35.76164944181107 126.26215905413979 0.8017297627989989 0.7038365030439007
RUS Europe Russia 2020-09-13 1059024.0 5361.0 5256.571 18517.0 91.0 107.0 1.06 null null null null null null null null 4.0903551e7 279476.0 280.2871302638184 1.915 306481.0 2.1 1.7e-2 58.3 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7256.846669388437 36.73566887491823 36.02008052107775 126.88572664742789 0.6235675932881103 0.7332058514486571
RUS Europe Russia 2020-09-14 1064438.0 5414.0 5300.571 18573.0 56.0 107.857 1.06 null null null null null null null null 4.1122307e7 218756.0 281.786131938954 1.499 308792.0 2.116 1.7e-2 58.3 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7293.945514993512 37.09884560507505 36.321585731019255 127.26946055098982 0.383733903561914 0.7390783506513814
RUS Europe Russia 2020-09-15 1069873.0 5435.0 5359.857 18723.0 150.0 112.0 1.07 null null null null null null null null 4.1424006e7 301699.0 283.8534914920026 2.067 304976.0 2.09 1.8e-2 56.9 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7331.188260812422 37.24274581891076 36.72783659185089 128.29731922124492 1.027858670255127 0.767467807123828
RUS Europe Russia 2020-09-16 1075485.0 5612.0 5422.714 18853.0 130.0 110.429 1.07 null null null null null null null null 4.1748928e7 324922.0 286.07998412438025 2.226 310517.0 2.128 1.7e-2 57.3 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7369.643879862234 38.455619049811816 37.158557341425734 129.18813006879938 0.8908108475544433 0.7567027006506893
RUS Europe Russia 2020-09-17 1081152.0 5667.0 5473.714 18996.0 143.0 112.714 1.08 null null null null null null null null 4.2095246e7 346318.0 288.45309051748296 2.373 311817.0 2.137 1.8e-2 57.0 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7408.476380424473 38.83250056223869 37.50802928931248 130.16802200110928 0.9798919323098875 0.7723604143942425
RUS Europe Russia 2020-09-18 1086955.0 5803.0 5528.286 19128.0 132.0 117.0 1.09 null null null null null null null null 4.2457169e7 361923.0 290.93312847424795 2.48 312610.0 2.142 1.8e-2 56.5 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7448.240806181076 39.76442575660334 37.88197797833356 131.0725376309338 0.9045156298245116 0.8017297627989989
RUS Europe Russia 2020-09-19 1092915.0 5960.0 5607.429 19270.0 142.0 120.571 1.1 null null null null null null null null 4.2821891e7 364722.0 293.4323462737999 2.499 313974.0 2.151 1.8e-2 56.0 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7489.081057345879 40.8402511648037 38.42429676993358 132.04557717210864 0.9730395411748535 0.826199651542206
RUS Europe Russia 2020-09-20 1098958.0 6043.0 5704.857 19349.0 79.0 118.857 1.1 null null null null null null null null 4.3103912e7 282021.0 295.3648644740934 1.933 314337.0 2.154 1.8e-2 55.1 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7530.490056974892 41.40899962901155 39.09191153343768 132.58691607177633 0.5413388996677002 0.8144546531367575
RUS Europe Russia 2020-09-21 1105048.0 6090.0 5801.429 19420.0 71.0 121.0 1.11 null null null null null null null null 4.3341534e7 237622.0 296.9931433603825 1.628 317032.0 2.172 1.8e-2 54.6 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7572.22111898725 41.73106201235815 39.7536606501302 133.07343584236375 0.48651977058742674 0.8291393273391356
RUS Europe Russia 2020-09-22 1111157.0 6109.0 5897.714 19575.0 155.0 121.714 1.12 null null null null null null null null 4.3632541e7 291007.0 298.9872371474154 1.994 315505.0 2.162 1.9e-2 53.5 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7614.082376431173 41.861257443923805 40.41344313056697 134.13555646829406 1.0621206259302978 0.83403193460955
RUS Europe Russia 2020-09-23 1117487.0 6330.0 6000.286 19720.0 145.0 123.857 1.13 null null null null null null null null 4.3990409e7 357868.0 301.43948865812774 2.452 320212.0 2.194 1.9e-2 53.4 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7657.458012315939 43.37563588476635 41.1163065940697 135.129153182874 0.9935967145799559 0.8487166088119283
RUS Europe Russia 2020-09-24 1123976.0 6489.0 6117.714 19867.0 147.0 124.429 1.15 null null null null null null null null 4.4364566e7 374157.0 304.00335876803877 2.564 324189.0 2.221 1.9e-2 53.0 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7701.923178391176 44.46516607523679 41.92096918027448 136.13645467972404 1.0073014968500242 0.8526361765411679
RUS Europe Russia 2020-09-25 1131088.0 7112.0 6304.714 19973.0 106.0 120.714 1.17 null null null null null null null null 4.4755362e7 390796.0 306.68124581404555 2.678 328313.0 2.25 1.9e-2 52.1 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7750.657384143539 48.73420575236308 43.202366322525876 136.86280814003766 0.7263534603136229 0.8271795434745159
RUS Europe Russia 2020-09-26 1138509.0 7421.0 6513.429 20140.0 167.0 124.286 1.19 null null null null null null null null 4.5134435e7 379073.0 309.27880227877637 2.598 330363.0 2.264 2.0e-2 50.7 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7801.5089787566285 50.85159461308864 44.63256313827454 138.00715745958837 1.144349319550708 0.8516562846088579
RUS Europe Russia 2020-09-27 1146273.0 7764.0 6759.286 20239.0 99.0 127.143 1.2 null null null null null null null null 4.5442774e7 308339.0 311.39166170896164 2.113 334123.0 2.29 2.0e-2 49.4 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7854.710943529033 53.20196477240537 46.31727146556063 138.68554418195677 0.6783867223683837 0.8712335660816506
RUS Europe Russia 2020-09-28 1154299.0 8026.0 7035.857 20299.0 60.0 125.571 1.21 null null null null null null null null 4.5698673e7 255899.0 313.1451817480258 1.754 336734.0 2.307 2.1e-2 47.9 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7909.708234778817 54.997291249784325 48.21244413416817 139.0966876500588 0.4111434681020507 0.8604616072173769
RUS Europe Russia 2020-09-29 1162428.0 8129.0 7324.429 20456.0 157.0 125.857 1.22 null null null null null null null null 4.603766e7 338987.0 315.4680532617176 2.323 343588.0 2.354 2.1e-2 46.9 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7965.411322315512 55.70308753669284 50.189852348787255 140.17251305825917 1.075825408200366 0.8624213910819967
RUS Europe Russia 2020-09-30 1170799.0 8371.0 7616.0 20630.0 174.0 130.0 1.23 null null null null null null null null 4.6421834e7 384174.0 318.1005637736282 2.633 347346.0 2.38 2.2e-2 45.6 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8022.772688506882 57.36136619137111 52.18781088442031 141.3648291157551 1.1923160574959473 0.8908108475544433
RUS Europe Russia 2020-10-01 1179634.0 8835.0 7951.143 20796.0 166.0 132.714 1.24 null null null null null null null null 4.6823879e7 402045.0 320.85553336751303 2.755 351330.0 2.407 2.3e-2 44.2 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8083.3135641849085 60.54087567802697 54.48434180658907 142.5023260441708 1.1374969284156737 0.909408237094926
RUS Europe Russia 2020-10-02 1188928.0 9294.0 8262.857 20981.0 185.0 144.0 1.25 null null null null null null null null 4.6823879e7 null 320.85553336751303 null 356928.0 2.446 2.3e-2 43.2 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8146.999687393916 63.68612320900767 56.62032805685511 143.7700184041521 1.267692359981323 0.9867443234449218
RUS Europe Russia 2020-10-03 1198663.0 9735.0 8593.429 21153.0 172.0 144.714 1.26 null null null null null null null null 4.7683832e7 null 326.7482676812591 null 364200.0 2.496 2.4e-2 42.4 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8213.707715093475 66.70802769955773 58.88553669914563 144.948629679378 1.1786112752258788 0.9916369307153361
RUS Europe Russia 2020-10-04 1209039.0 10376.0 8966.571 21260.0 107.0 145.857 1.26 null null null null null null null null 4.8042343e7 358511.0 329.20492527947135 2.457 371367.0 2.545 2.4e-2 41.4 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8284.80812551059 71.10041041711465 61.44245163205455 145.68183553082665 0.7332058514486571 0.9994692137826802
RUS Europe Russia 2020-10-05 1219796.0 10757.0 9356.714 21375.0 115.0 153.714 1.27 null null null null null null null null 4.8337992e7 295649.0 331.23082786615305 2.026 377046.0 2.584 2.5e-2 40.3 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8358.519296950151 73.71117143956266 64.1158640666502 146.46986051135556 0.7880249805289306 1.0533084509306438
RUS Europe Russia 2020-10-06 1231277.0 11481.0 9835.571 21559.0 184.0 157.571 1.26 null null null null null null null null 4.8709857e7 371865.0 333.77899229558255 2.548 381742.0 2.616 2.6e-2 38.8 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8437.191599571479 78.6723026213274 67.39717952839926 147.73070048020188 1.260839968846289 1.0797381235384707
RUS Europe Russia 2020-10-07 1242258.0 10981.0 10208.429 21755.0 196.0 160.714 1.25 null null null null null null null null 4.9148954e7 439097.0 336.78785668580264 3.009 389589.0 2.67 2.6e-2 38.2 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8512.43770662529 75.24610705381032 69.95214838222583 149.07376914266857 1.343068662466699 1.101275188875883
RUS Europe Russia 2020-10-08 1253603.0 11345.0 10567.0 21939.0 184.0 163.286 1.25 null null null null null null null null 4.9656873e7 507919.0 340.2683163387181 3.48 404713.0 2.773 2.6e-2 38.3 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8590.178084052252 77.74037742696275 72.40921712390616 150.33460911151485 1.260839968846289 1.1188995388751908
RUS Europe Russia 2020-10-09 1265572.0 11969.0 10949.143 22137.0 198.0 165.143 1.25 null null null null null null null null 5.0305243e7 648370.0 344.71120117894014 4.443 435912.0 2.987 2.5e-2 39.8 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8672.194353547475 82.0162694952241 75.02781042942154 151.69138255625163 1.3567734447367674 1.1316244292129494
RUS Europe Russia 2020-10-10 1278245.0 12673.0 11368.857 22331.0 194.0 168.286 1.25 null null null null null null null null 5.0781349e7 476106.0 347.9736657126768 3.262 442502.0 3.032 2.6e-2 38.9 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8759.034706401764 86.84035285428814 77.90385492227126 153.02074643644826 1.3293638801966305 1.1531614945503619
RUS Europe Russia 2020-10-11 1291687.0 13442.0 11806.857 22471.0 140.0 173.0 1.24 null null null null null null null null 5.1191309e7 409960.0 350.78287198239536 2.809 449852.0 3.083 2.6e-2 38.1 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8851.144548038894 92.10984163712943 80.90520223941624 153.98008119535302 0.959334758904785 1.185463666360913
RUS Europe Russia 2020-10-12 1305093.0 13406.0 12185.286 22594.0 123.0 174.143 1.24 null null null null null null null null 5.1364269e7 172960.0 351.9680615531109 1.185 432325.0 2.962 2.8e-2 35.5 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8943.007703595162 91.86315555626821 83.49834576425609 154.82292530496224 0.842844109609204 1.193295949428257
RUS Europe Russia 2020-10-13 1318783.0 13690.0 12500.857 22834.0 240.0 182.143 1.22 null null null null null null null null 5.1801245e7 436976.0 354.9623920217336 2.994 441627.0 3.026 2.8e-2 35.3 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9036.81693823378 93.80923463861791 85.66076168712996 156.46749917737046 1.6445738724082029 1.2481150785085304
RUS Europe Russia 2020-10-14 1332824.0 14041.0 12938.0 23069.0 235.0 187.714 1.21 null null null null null null null null 5.2279734e7 478489.0 358.24118580354497 3.279 447254.0 3.065 2.9e-2 34.6 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9133.031362160795 96.2144239270149 88.65623650507221 158.07781109410348 1.6103119167330322 1.2862897495218057
RUS Europe Russia 2020-10-15 1346380.0 13556.0 13253.857 23350.0 281.0 201.571 1.2 null null null null null null null null 5.2782097e7 502363.0 361.6835735713141 3.442 446461.0 3.059 3.0e-2 33.7 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9225.922376387318 92.89101422652334 90.8206122118107 160.00333300304808 1.9255219089446043 1.3812433334799745
RUS Europe Russia 2020-10-16 1361317.0 14937.0 13677.857 23580.0 230.0 206.143 1.2 null null null null null null null null 5.3305957e7 523860.0 365.27326719131315 3.59 428673.0 2.937 3.2e-2 31.3 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9328.276542771324 102.35416638400554 93.72602605306518 161.57938296410595 1.576049961057861 1.4125724657493508
RUS Europe Russia 2020-10-17 1376020.0 14703.0 13967.857 23857.0 277.0 218.0 1.19 null null null null null null null null 5.3850509e7 544552.0 369.00475048867827 3.731 438451.0 3.004 3.2e-2 31.4 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9429.027249629731 100.75070685840754 95.7132194822251 163.4774953085104 1.8981123444044676 1.493821267437451
RUS Europe Russia 2020-10-18 1390824.0 14804.0 14162.429 24039.0 182.0 224.0 1.18 null null null null null null null null 5.4300208e7 449699.0 372.086263929712 3.082 444128.0 3.043 3.2e-2 31.4 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9530.470047992778 101.44279836304598 97.04650293015096 164.72463049508664 1.2471351865762206 1.534935614247656
RUS Europe Russia 2020-10-19 1406667.0 15843.0 14510.571 24205.0 166.0 230.143 1.17 null null null null null null null null 5.4675096e7 374888.0 374.6551431375427 2.569 472975.0 3.241 3.1e-2 32.6 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9639.032480745123 108.5624327523465 99.43210808468405 165.8621274235023 1.1374969284156737 1.5770298529901712
RUS Europe Russia 2020-10-20 1422775.0 16108.0 14856.0 24473.0 268.0 234.143 1.16 null null null null null null null null 5.5171784e7 496688.0 378.0586435856206 3.404 481506.0 3.299 3.1e-2 32.4 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9749.410797148254 110.37831640313057 101.79912270206776 167.69856824769147 1.83644082418916 1.6044394175303078
RUS Europe Russia 2020-10-21 1438219.0 15444.0 15056.429 24786.0 313.0 245.286 1.15 null null null null null null null null 5.5683929e7 512145.0 381.5680614434727 3.509 486314.0 3.332 3.1e-2 32.3 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9855.239125837723 105.82832868946785 103.17254060487153 169.84336667295716 2.144798425265698 1.6807956119479937
RUS Europe Russia 2020-10-22 1453923.0 15704.0 15363.286 25072.0 286.0 246.0 1.14 null null null null null null null null 5.6230544e7 546615.0 385.31368122374937 3.746 492635.0 3.376 3.1e-2 32.1 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9962.8490762223 107.60995038457675 105.27524479139471 171.80315053757695 1.959783864619775 1.685688219218408
RUS Europe Russia 2020-10-23 1471000.0 17077.0 15669.0 25353.0 281.0 253.286 1.14 null null null null null null null null 5.6794639e7 564095.0 389.17908080106645 3.865 498383.0 3.415 3.1e-2 31.8 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10079.867359635278 117.01828341297868 107.37011669485055 173.72867244652153 1.9255219089446043 1.7356147410282672
RUS Europe Russia 2020-10-24 1487260.0 16260.0 15891.429 25647.0 294.0 255.714 1.13 null null null null null null null null 5.7344952e7 550313.0 392.9500407237605 3.771 499206.0 3.421 3.2e-2 31.4 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10191.287239490932 111.41987985565575 108.89428720262507 175.7432754402216 2.0146029937000485 1.75225234670413
RUS Europe Russia 2020-10-25 1503652.0 16392.0 16118.286 25875.0 228.0 262.286 1.12 null null null null null null null null 5.782126e7 476308.0 396.2138894405064 3.264 503007.0 3.447 3.2e-2 31.2 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10303.611634976414 112.32439548548027 110.44880009834553 177.30562061900937 1.5623451787877927 1.7972862612435747
RUS Europe Russia 2020-10-26 1520800.0 17148.0 16304.714 26092.0 217.0 269.571 1.11 null null null null null null null null 5.8223852e7 402592.0 398.97260729234205 2.759 506965.0 3.474 3.2e-2 31.1 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10421.11643815998 117.5048031835661 111.72627767286767 178.7925894953118 1.486968876302417 1.8472059306622988
RUS Europe Russia 2020-10-27 1537142.0 16342.0 16338.143 26409.0 317.0 276.571 1.1 null null null null null null null null 5.8730811e7 506959.0 402.44648864976784 3.474 508432.0 3.484 3.2e-2 31.1 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10533.098214088708 111.98177592872855 111.95534625612072 180.96479748511763 2.172207989805835 1.895172668607538
RUS Europe Russia 2020-10-28 1553028.0 15886.0 16401.286 26752.0 343.0 280.857 1.1 null null null null null null null null 5.9284119e7 553308.0 406.23797148391134 3.791 514313.0 3.524 3.2e-2 31.4 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10641.955299659861 108.85708557115296 112.38802678956019 183.31516764443435 2.350370159316723 1.9245420170122944
RUS Europe Russia 2020-10-29 1570446.0 17418.0 16646.143 27111.0 359.0 291.286 1.1 null null null null null null null null 5.9866561e7 582442.0 410.2290918813829 3.991 519431.0 3.559 3.2e-2 31.2 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10761.310248449887 119.35494879002533 114.06588272571125 185.77517606191162 2.4600084174772703 1.9960056041595657
RUS Europe Russia 2020-10-30 1588433.0 17987.0 16776.143 27462.0 351.0 301.286 1.11 null null null null null null null null 6.0441811e7 575250.0 414.17092988181133 3.942 521025.0 3.57 3.2e-2 31.1 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10884.564207795747 123.25395934585978 114.9566935732657 188.18036535030862 2.4051892883969965 2.064529515509908
RUS Europe Russia 2020-10-31 1606267.0 17834.0 17001.0 27787.0 325.0 305.714 1.11 null null null null null null null null 6.1029746e7 587935.0 418.19969046378765 4.029 526399.0 3.607 3.2e-2 31.0 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 11006.769751297945 122.20554350219956 116.49750168671608 190.40739246919472 2.227027118886108 2.094871903455839
RUS Europe Russia 2020-11-01 1624648.0 18381.0 17285.143 28026.0 239.0 307.286 1.11 null null null null null null null null 6.154197e7 512224.0 421.7096496605394 3.51 531530.0 3.642 3.3e-2 30.8 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 11132.72355275101 125.95380145306325 118.44456066099809 192.0451139504679 1.6377214812731689 2.105643862320113
RUS Europe Russia 2020-11-02 1642665.0 18017.0 17409.286 28264.0 238.0 310.286 1.11 null null null null null null null null 6.1954566e7 412596.0 424.53691883329 2.827 532959.0 3.652 3.3e-2 30.6 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 11256.18308383092 123.45953107991082 119.29523705367464 193.67598304060604 1.6308690901381346 2.1262010357252152
RUS Europe Russia 2020-11-03 1661096.0 18431.0 17707.714 28611.0 347.0 314.571 1.11 null null null null null null null null 6.2446013e7 491447.0 427.90450589942907 3.368 530743.0 3.637 3.3e-2 30.0 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 11382.479504840734 126.29642100981495 121.34018243532063 196.0537627644629 2.37777972385686 2.155563531738837
RUS Europe Russia 2020-11-04 1680579.0 19483.0 18221.571 28996.0 385.0 320.571 1.11 null null null null null null null null 6.3016994e7 570981.0 431.81709104210205 3.913 533268.0 3.654 3.4e-2 29.3 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 11515.984641324607 133.5051364838709 124.86133158679587 198.69193335145107 2.638170586988159 2.196677878549042
RUS Europe Russia 2020-11-05 1699695.0 19116.0 18464.143 29285.0 289.0 310.571 1.11 null null null null null null null null 6.3541298e7 524304.0 435.409827123765 3.593 524962.0 3.597 3.5e-2 28.4 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 11646.974950261918 130.99030893731336 126.5235298092034 200.67227438947592 1.9803410380248776 2.1281539671987
RUS Europe Russia 2020-11-06 1720063.0 20368.0 18804.286 29654.0 369.0 313.143 1.11 null null null null null null null null 6.4092161e7 550863.0 439.18455586158336 3.775 521479.0 3.573 3.6e-2 27.7 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 11786.544452900294 139.56950263837615 128.85432268704733 203.20080671830354 2.528532328827612 2.145778317198008
RUS Europe Russia 2020-11-07 1740172.0 20109.0 19129.286 30010.0 356.0 317.571 1.11 null null null null null null null null 6.4682511e7 590350.0 443.22986496815076 4.045 521824.0 3.576 3.7e-2 27.3 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 11924.339186234696 137.79473333440228 131.08134980593343 205.6402579623757 2.439451244072168 2.1761207051439397
RUS Europe Russia 2020-11-08 1760420.0 20248.0 19396.0 30292.0 282.0 323.714 1.11 null null null null null null null null 6.5209357e7 526846.0 446.840019828079 3.61 523912.0 3.59 3.7e-2 27.0 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 12063.08640193687 138.74721570217204 132.90897845512293 207.57263226245536 1.9323743000796383 2.218214943886454
RUS Europe Russia 2020-11-09 1781997.0 21577.0 19904.571 30546.0 254.0 326.0 1.11 null null null null null null null null 6.5606582e7 397225.0 449.56196089669294 2.722 521717.0 3.575 3.8e-2 26.2 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 12210.940445457503 147.8540435206325 136.3939058670584 209.31313961075404 1.7405073482986815 2.233879510021142
RUS Europe Russia 2020-11-10 1802762.0 20765.0 20238.0 30899.0 353.0 326.857 1.1 null null null null null null null null 6.6118696e7 512114.0 453.0711663304198 3.509 524669.0 3.595 3.9e-2 25.9 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 12353.230347376486 142.28990191898473 138.67869179082172 211.73203368142111 2.4188940706670654 2.239752009223867
RUS Europe Russia 2020-11-11 1822345.0 19583.0 20252.286 31326.0 427.0 332.857 1.09 null null null null null null null null 6.6710463e7 591767.0 457.12618527522557 4.055 527638.0 3.616 3.8e-2 26.1 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 12487.42072297386 134.19037559737433 138.7765850505768 214.6580046960807 2.9259710146595945 2.280866356034072
RUS Europe Russia 2020-11-12 1843678.0 21333.0 20569.0 31755.0 429.0 352.857 1.09 null null null null null null null null 6.7347351e7 636888.0 461.49039096043526 4.364 543722.0 3.726 3.8e-2 26.4 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 12633.602783057544 146.18206008368415 140.94683325651803 217.59768049301036 2.939675796929663 2.4179141787347556
RUS Europe Russia 2020-11-13 1865395.0 21717.0 20761.714 32156.0 401.0 357.429 1.1 null null null null null null null null 6.7949154e7 601803.0 465.61418050267224 4.124 550999.0 3.776 3.8e-2 26.5 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 12782.416161337082 148.8133782795373 142.267384961715 220.34548933815907 2.7478088451487057 2.4492433110041314
RUS Europe Russia 2020-11-14 1887836.0 22441.0 21094.857 32536.0 380.0 360.857 1.1 null null null null null null null null 6.8577003e7 627849.0 469.9164474244123 4.302 556356.0 3.812 3.8e-2 26.4 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 12936.190670798384 153.77450946130202 144.55021110161368 222.94939796947205 2.603908631312988 2.472733307815029
RUS Europe Russia 2020-11-15 1910149.0 22313.0 21389.857 32885.0 349.0 370.429 1.09 null null null null null null null null 6.9111898e7 534895.0 473.5817571805864 3.665 557506.0 3.82 3.8e-2 26.1 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 13089.088074194402 152.89740339601764 146.57166648644878 225.340882475599 2.3914845061269285 2.538324395759576
RUS Europe Russia 2020-11-16 1932711.0 22562.0 21530.571 33184.0 299.0 376.857 1.09 null null null null null null null null 6.9550659e7 438761.0 476.5883191673851 3.007 563440.0 3.861 3.8e-2 26.2 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 13243.691722983043 154.60364878864115 147.53589385262399 227.3897474249742 2.04886494937522 2.582371565975576
RUS Europe Russia 2020-11-17 1954912.0 22201.0 21735.714 33619.0 435.0 388.571 1.08 null null null null null null null null 7.0075886e7 525227.0 480.1873800060658 3.599 565313.0 3.874 3.8e-2 26.0 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 13395.821658571936 152.1299355888938 148.94161392723828 230.37053756871407 2.980790143739868 2.662640475731366
RUS Europe Russia 2020-11-18 1975629.0 20717.0 21897.714 34068.0 449.0 391.714 1.08 null null null null null null null null 7.0653231e7 577345.0 484.14357376592204 3.956 563253.0 3.86 3.9e-2 25.7 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 13537.782645716441 141.96098714450306 150.05170129111383 233.4472611883444 3.076723619630346 2.6841775410687783
RUS Europe Russia 2020-11-19 1998966.0 23337.0 22184.0 34525.0 457.0 395.714 1.09 null null null null null null null null 7.1249997e7 596766.0 488.23284781401185 4.089 557521.0 3.82 4.0e-2 25.1 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 13697.696897634733 159.91425191829265 152.01344493959823 236.57880393705503 3.1315427487106198 2.711587105608915
RUS Europe Russia 2020-11-20 2023025.0 24059.0 22518.571 34980.0 455.0 403.429 1.09 null null null null null null null null 7.1838293e7 588296.0 492.26408210918794 4.031 555591.0 3.807 4.1e-2 24.7 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 13862.55857595252 164.8616783177873 154.30605629403777 239.69664190349556 3.1178379664405513 2.7644533032157037
RUS Europe Russia 2020-11-21 2047563.0 24538.0 22818.143 35442.0 462.0 415.143 1.09 null null null null null null null null 7.2429063e7 590770.0 496.3122692200321 4.048 550294.0 3.771 4.1e-2 24.1 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 14030.70254962399 168.1439736714687 156.3588408111422 242.86244660788137 3.1658047043857906 2.844722212971494
RUS Europe Russia 2020-11-22 2071858.0 24295.0 23101.286 35838.0 396.0 421.857 1.09 null null null null null null null null 7.2949596e7 520533.0 499.87916493472477 3.567 548243.0 3.757 4.2e-2 23.7 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 14197.181392249644 166.47884262565537 158.29904739428918 245.57599349735492 2.713546889473535 2.890729167052114
RUS Europe Russia 2020-11-23 2096749.0 24891.0 23434.0 36192.0 354.0 429.714 1.09 null null null null null null null null 7.3312313e7 362717.0 502.36464369005097 2.485 537379.0 3.682 4.4e-2 22.9 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 14367.74425999178 170.56286774213575 160.57893385839097 248.00173995915702 2.4257464618020994 2.9445684042000773
RUS Europe Russia 2020-11-24 2120836.0 24087.0 23703.429 36675.0 483.0 436.571 1.09 null null null null null null null null 7.376515e7 452837.0 505.4676599344665 3.103 527038.0 3.611 4.5e-2 22.2 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 14532.797805261349 165.05354526956825 162.42516674951207 251.31144487737853 3.3097049182215086 2.9915552502130067
RUS Europe Russia 2020-11-25 2144229.0 23393.0 24085.714 37173.0 498.0 443.571 1.09 null null null null null null null null 7.427093e7 505780.0 508.93346232274405 3.466 516814.0 3.541 4.7e-2 21.5 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 14693.095791083202 160.29798582185455 165.0447330945686 254.72393566262556 3.412490785247021 3.039521988158246
RUS Europe Russia 2020-11-26 2169424.0 25195.0 24351.143 37688.0 515.0 451.857 1.09 null null null null null null null null 7.4814909e7 543979.0 512.6610191999888 3.728 509273.0 3.49 4.8e-2 20.9 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 14865.741785730388 172.64599464718614 166.8635564211496 258.25291709716817 3.5289814345426023 3.096300901103139
RUS Europe Russia 2020-11-27 2196691.0 27267.0 24809.429 38175.0 487.0 456.429 1.09 null null null null null null null null 7.5402616e7 587707.0 516.6882174367864 4.027 509189.0 3.489 4.9e-2 20.5 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 15052.585934809365 186.84414907897695 170.0039113448599 261.59003157992976 3.3371144827616455 3.1276300333725153
RUS Europe Russia 2020-11-28 2223500.0 26809.0 25133.857 38676.0 501.0 462.0 1.09 null null null null null null null null 7.5948006e7 545390.0 520.4254430379226 3.737 502706.0 3.445 5.0e-2 20.0 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 15236.291688748497 183.7057539391313 172.22701889601674 265.0230795385819 3.4330479586521236 3.1658047043857906
RUS Europe Russia 2020-11-29 2249890.0 26390.0 25433.143 39127.0 451.0 469.857 1.09 null null null null null null null null 7.6422849e7 474843.0 523.6792530016556 3.254 496179.0 3.4 5.1e-2 19.5 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 15417.126290802049 180.83460205355198 174.27784362925658 268.1135079404823 3.090428401900415 3.2196439415337545
RUS Europe Russia 2020-11-30 2275936.0 26046.0 25598.143 39491.0 364.0 471.286 1.09 null null null null null null null null 7.6755901e7 333052.0 525.9614555739611 2.282 491941.0 3.371 5.2e-2 19.2 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 15595.603670305149 178.47737950310022 175.4084881665372 270.60777831363475 2.494270373152441 3.229436008465718
RUS Europe Russia 2020-12-01 2302062.0 26126.0 25889.429 40050.0 559.0 482.143 1.09 null null null null null null null null 7.7200071e7 444170.0 529.0050821444092 3.044 490703.0 3.362 5.3e-2 19.0 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 15774.629241099052 179.02557079390294 177.40449377069677 274.43826495811885 3.8304866444841057 3.303832419018784
RUS Europe Russia 2020-12-02 2327105.0 25043.0 26125.143 40630.0 580.0 493.857 1.09 null null null null null null null null 7.7200071e7 null 529.0050821444092 null 491830.0 3.37 5.3e-2 18.8 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 15946.233672293714 171.60443119466095 179.01969829470025 278.41265181643865 3.9743868583198236 3.384101328774575
RUS Europe Russia 2020-12-02 2327105.0 25043.0 26125.143 40630.0 580.0 493.857 1.09 null null null null null null null null 7.7200071e7 null 529.0050821444092 null null null null null null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 15946.233672293714 171.60443119466095 179.01969829470025 278.41265181643865 3.9743868583198236 3.384101328774575
RUS Europe Russia 2020-12-03 2354934.0 27829.0 26501.429 41173.0 543.0 497.857 1.09 null null null null null null null null 7.8227415e7 null 536.0448450626398 null 487501.0 3.341 5.4e-2 18.4 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 16136.92886519058 190.6951928968662 181.5981571453377 282.13350020276226 3.7208483863235595 3.411510893314712
RUS Europe Russia 2020-12-03 2354934.0 27829.0 26501.429 41173.0 543.0 497.857 1.09 null null null null null null null null 7.8227415e7 null 536.0448450626398 null null null null null null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 16136.92886519058 190.6951928968662 181.5981571453377 282.13350020276226 3.7208483863235595 3.411510893314712
YEM Asia Yemen 2020-01-23 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-01-24 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-01-25 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-01-26 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-01-27 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-01-28 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-01-29 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-01-31 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-01 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-02 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-03 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-04 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-05 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-06 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-07 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-08 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-09 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-10 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-11 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-12 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-13 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-14 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-15 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-16 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-17 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-18 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-19 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-20 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-21 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-22 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-23 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-24 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-25 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-26 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-27 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-28 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-29 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-01 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-02 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-03 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-04 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-05 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-06 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-07 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-08 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-09 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-10 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-11 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-12 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-13 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-14 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-15 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 11.11 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-16 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 11.11 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-17 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 22.22 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-18 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 33.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-19 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 33.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-20 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 33.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-21 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-22 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-23 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-24 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-25 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-26 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-27 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-28 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-29 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-30 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-31 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-01 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-02 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-03 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-04 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-05 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-06 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-07 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-08 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-09 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-10 1.0 1.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 3.352783051332986e-2 4.79447976340617e-3 0.0 0.0 0.0
YEM Asia Yemen 2020-04-11 1.0 0.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 4.79447976340617e-3 0.0 0.0 0.0
YEM Asia Yemen 2020-04-12 1.0 0.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 4.79447976340617e-3 0.0 0.0 0.0
YEM Asia Yemen 2020-04-13 1.0 0.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 4.79447976340617e-3 0.0 0.0 0.0
YEM Asia Yemen 2020-04-14 1.0 0.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 4.79447976340617e-3 0.0 0.0 0.0
YEM Asia Yemen 2020-04-15 1.0 0.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 4.79447976340617e-3 0.0 0.0 0.0
YEM Asia Yemen 2020-04-16 1.0 0.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 4.79447976340617e-3 0.0 0.0 0.0
YEM Asia Yemen 2020-04-17 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-18 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-19 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-20 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-21 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-22 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-23 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-24 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-25 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-26 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-27 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-28 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-29 6.0 5.0 0.714 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.20116698307997916 0.1676391525666493 2.393887098651752e-2 0.0 0.0 0.0
YEM Asia Yemen 2020-04-30 6.0 0.0 0.714 2.0 2.0 0.286 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 52.78 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.20116698307997916 0.0 2.393887098651752e-2 6.705566102665972e-2 6.705566102665972e-2 9.58895952681234e-3
YEM Asia Yemen 2020-05-01 7.0 1.0 0.857 2.0 0.0 0.286 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.23469481359330902 3.352783051332986e-2 2.873335074992369e-2 6.705566102665972e-2 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-05-02 10.0 3.0 1.286 2.0 0.0 0.286 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.3352783051332986 0.10058349153998958 4.3116790040142204e-2 6.705566102665972e-2 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-05-03 10.0 0.0 1.286 2.0 0.0 0.286 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.3352783051332986 0.0 4.3116790040142204e-2 6.705566102665972e-2 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-05-04 12.0 2.0 1.571 2.0 0.0 0.286 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.4023339661599583 6.705566102665972e-2 5.2672221736441205e-2 6.705566102665972e-2 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-05-05 22.0 10.0 3.0 4.0 2.0 0.571 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.737612271293257 0.3352783051332986 0.10058349153998958 0.13411132205331944 6.705566102665972e-2 1.914439122311135e-2
YEM Asia Yemen 2020-05-06 25.0 3.0 2.714 5.0 1.0 0.714 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.8381957628332465 0.10058349153998958 9.099453201317724e-2 0.1676391525666493 3.352783051332986e-2 2.393887098651752e-2
YEM Asia Yemen 2020-05-07 25.0 0.0 2.714 5.0 0.0 0.429 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.8381957628332465 0.0 9.099453201317724e-2 0.1676391525666493 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-05-08 34.0 9.0 3.857 7.0 2.0 0.714 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 1.1399462374532154 0.30175047461996873 0.12931684228991328 0.23469481359330902 6.705566102665972e-2 2.393887098651752e-2
YEM Asia Yemen 2020-05-09 34.0 0.0 3.429 7.0 0.0 0.714 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 1.1399462374532154 0.0 0.11496693083020809 0.23469481359330902 0.0 2.393887098651752e-2
YEM Asia Yemen 2020-05-10 51.0 17.0 5.857 8.0 1.0 0.857 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 1.7099193561798227 0.5699731187266077 0.19637250331657302 0.2682226441066389 3.352783051332986e-2 2.873335074992369e-2
YEM Asia Yemen 2020-05-11 56.0 5.0 6.286 9.0 1.0 1.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 1.8775585087464721 0.1676391525666493 0.21075594260679148 0.30175047461996873 3.352783051332986e-2 3.352783051332986e-2
YEM Asia Yemen 2020-05-12 65.0 9.0 6.143 10.0 1.0 0.857 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 2.179308983366441 0.30175047461996873 0.20596146284338532 0.3352783051332986 3.352783051332986e-2 2.873335074992369e-2
YEM Asia Yemen 2020-05-13 70.0 5.0 6.429 12.0 2.0 1.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 2.3469481359330904 0.1676391525666493 0.21555042237019767 0.4023339661599583 6.705566102665972e-2 3.352783051332986e-2
YEM Asia Yemen 2020-05-14 85.0 15.0 8.571 12.0 0.0 1.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 2.849865593633038 0.5029174576999479 0.2873670353297502 0.4023339661599583 0.0 3.352783051332986e-2
YEM Asia Yemen 2020-05-15 106.0 21.0 10.286 15.0 3.0 1.143 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.5539500344129653 0.704084440779927 0.344867264660111 0.5029174576999479 0.10058349153998958 3.832231027673603e-2
YEM Asia Yemen 2020-05-16 122.0 16.0 12.571 18.0 3.0 1.571 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 4.090395322626243 0.5364452882132777 0.42147835738306966 0.6035009492399375 0.10058349153998958 5.2672221736441205e-2
YEM Asia Yemen 2020-05-17 128.0 6.0 11.0 20.0 2.0 1.714 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 4.291562305706222 0.20116698307997916 0.3688061356466285 0.6705566102665972 6.705566102665972e-2 5.746670149984738e-2
YEM Asia Yemen 2020-05-18 130.0 2.0 10.571 20.0 0.0 1.571 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 4.358617966732882 6.705566102665972e-2 0.35442269635640994 0.6705566102665972 0.0 5.2672221736441205e-2
YEM Asia Yemen 2020-05-19 167.0 37.0 14.571 28.0 8.0 2.571 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 5.599147695726087 1.240529728993205 0.48853401840972943 0.9387792543732361 0.2682226441066389 8.620005224977108e-2
YEM Asia Yemen 2020-05-20 184.0 17.0 16.286 30.0 2.0 2.571 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 6.169120814452694 0.5699731187266077 0.5460342477400901 1.0058349153998958 6.705566102665972e-2 8.620005224977108e-2
YEM Asia Yemen 2020-05-21 197.0 13.0 16.0 33.0 3.0 3.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 6.604982611125982 0.4358617966732882 0.5364452882132777 1.1064184069398852 0.10058349153998958 0.10058349153998958
YEM Asia Yemen 2020-05-22 209.0 12.0 14.714 33.0 0.0 2.571 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 7.00731657728594 0.4023339661599583 0.49332849817313557 1.1064184069398852 0.0 8.620005224977108e-2
YEM Asia Yemen 2020-05-23 212.0 3.0 12.857 39.0 6.0 3.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 7.107900068825931 0.10058349153998958 0.43106731690988204 1.3075853900198646 0.20116698307997916 0.10058349153998958
YEM Asia Yemen 2020-05-24 222.0 10.0 13.429 42.0 3.0 3.143 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 7.4431783739592285 0.3352783051332986 0.45024523596350674 1.408168881559854 0.10058349153998958 0.10537797130339574
YEM Asia Yemen 2020-05-25 233.0 11.0 14.714 44.0 2.0 3.429 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 7.811984509605857 0.3688061356466285 0.49332849817313557 1.475224542586514 6.705566102665972e-2 0.11496693083020809
YEM Asia Yemen 2020-05-26 249.0 16.0 11.714 49.0 5.0 3.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 8.348429797819136 0.5364452882132777 0.39274500663314604 1.6428636951531632 0.1676391525666493 0.10058349153998958
YEM Asia Yemen 2020-05-27 256.0 7.0 10.286 53.0 4.0 3.286 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 8.583124611412444 0.23469481359330902 0.344867264660111 1.7769750172064827 0.13411132205331944 0.11017245106680193
YEM Asia Yemen 2020-05-28 278.0 22.0 11.571 57.0 4.0 3.429 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 9.3207368827057 0.737612271293257 0.3879505268697398 1.9110863392598023 0.13411132205331944 0.11496693083020809
YEM Asia Yemen 2020-05-29 283.0 5.0 10.571 65.0 8.0 4.571 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 9.488376035272351 0.1676391525666493 0.35442269635640994 2.179308983366441 0.2682226441066389 0.15325571327643078
YEM Asia Yemen 2020-05-30 310.0 27.0 14.0 77.0 12.0 5.429 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 10.393627459132256 0.9052514238599063 0.46938962718661803 2.5816429495263993 0.4023339661599583 0.18202259185686784
YEM Asia Yemen 2020-05-31 323.0 13.0 14.429 80.0 3.0 5.429 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 10.829489255805544 0.4358617966732882 0.4837730664768366 2.6822264410663887 0.10058349153998958 0.18202259185686784
YEM Asia Yemen 2020-06-01 354.0 31.0 17.286 84.0 4.0 5.714 1.02 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 11.86885200171877 1.0393627459132255 0.57956207825342 2.816337763119708 0.13411132205331944 0.19157802355316683
YEM Asia Yemen 2020-06-02 399.0 45.0 21.429 87.0 3.0 5.429 1.02 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 13.377604374818615 1.5087523730998438 0.7184678800701455 2.9169212546596976 0.10058349153998958 0.18202259185686784
YEM Asia Yemen 2020-06-03 419.0 20.0 23.286 95.0 8.0 6.0 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 14.048160985085213 0.6705566102665972 0.7807290613333993 3.185143898766337 0.2682226441066389 0.20116698307997916
YEM Asia Yemen 2020-06-04 453.0 34.0 25.0 103.0 8.0 6.571 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 15.188107222538427 1.1399462374532154 0.8381957628332465 3.453366542872976 0.2682226441066389 0.22031137430309053
YEM Asia Yemen 2020-06-05 469.0 16.0 26.571 111.0 8.0 6.571 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 15.724552510751707 0.5364452882132777 0.8908679845696879 3.7215891869796143 0.2682226441066389 0.22031137430309053
YEM Asia Yemen 2020-06-06 482.0 13.0 24.571 111.0 0.0 4.857 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 16.160414307424993 0.4358617966732882 0.823812323543028 3.7215891869796143 0.0 0.16284467280324313
YEM Asia Yemen 2020-06-07 484.0 2.0 23.0 112.0 1.0 4.571 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 16.227469968451654 6.705566102665972e-2 0.7711401018065868 3.7551170174929442 3.352783051332986e-2 0.15325571327643078
YEM Asia Yemen 2020-06-08 496.0 12.0 20.286 112.0 0.0 4.0 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 16.62980393461161 0.4023339661599583 0.6801455697934096 3.7551170174929442 0.0 0.13411132205331944
YEM Asia Yemen 2020-06-09 524.0 28.0 17.857 127.0 15.0 5.714 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 17.56858318898485 0.9387792543732361 0.5987064694765313 4.2580344751928925 0.5029174576999479 0.19157802355316683
YEM Asia Yemen 2020-06-10 560.0 36.0 20.143 129.0 2.0 4.857 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 18.775585087464723 1.207001898479875 0.6753510900300035 4.3250901362195515 6.705566102665972e-2 0.16284467280324313
YEM Asia Yemen 2020-06-11 591.0 31.0 19.714 136.0 7.0 4.714 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 19.814947833377946 1.0393627459132255 0.6609676507397848 4.559784949812862 0.23469481359330902 0.15805019303983697
YEM Asia Yemen 2020-06-12 632.0 41.0 23.286 139.0 3.0 4.0 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 21.189588884424474 1.3746410510465241 0.7807290613333993 4.66036844135285 0.10058349153998958 0.13411132205331944
YEM Asia Yemen 2020-06-13 705.0 73.0 31.857 160.0 21.0 7.0 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 23.63712051189755 2.44753162747308 1.0680960966631494 5.3644528821327775 0.704084440779927 0.23469481359330902
YEM Asia Yemen 2020-06-14 728.0 23.0 34.857 164.0 4.0 7.429 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 24.408260613704137 0.7711401018065868 1.168679588203139 5.4985642041860965 0.13411132205331944 0.24907825288352753
YEM Asia Yemen 2020-06-15 844.0 116.0 49.714 208.0 44.0 13.714 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 28.297488953250404 3.8892283395462637 1.6668025661396806 6.973788746772612 1.475224542586514 0.45980066765980576
YEM Asia Yemen 2020-06-16 885.0 41.0 51.571 214.0 6.0 12.429 0.99 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 29.672130004296925 1.3746410510465241 1.7290637474029342 7.17495572985259 0.20116698307997916 0.4167174054501768
YEM Asia Yemen 2020-06-17 902.0 17.0 48.857 244.0 30.0 16.429 0.98 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 30.242103123023533 0.5699731187266077 1.638069215389757 8.180790645252486 1.0058349153998958 0.5508287275034962
YEM Asia Yemen 2020-06-18 909.0 7.0 45.429 248.0 4.0 16.0 0.98 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 30.476797936616844 0.23469481359330902 1.5231358123900622 8.314901967305804 0.13411132205331944 0.5364452882132777
YEM Asia Yemen 2020-06-19 919.0 10.0 41.0 251.0 3.0 16.0 0.97 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 30.812076241750137 0.3352783051332986 1.3746410510465241 8.415485458845794 0.10058349153998958 0.5364452882132777
YEM Asia Yemen 2020-06-20 922.0 3.0 31.0 254.0 3.0 13.429 0.97 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 30.91265973329013 0.10058349153998958 1.0393627459132255 8.516068950385785 0.10058349153998958 0.45024523596350674
YEM Asia Yemen 2020-06-21 941.0 19.0 30.429 256.0 2.0 13.143 0.96 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 31.5496885130434 0.6370287797532673 1.0202183546901142 8.583124611412444 6.705566102665972e-2 0.44065627643669436
YEM Asia Yemen 2020-06-22 967.0 26.0 17.571 257.0 1.0 7.0 0.96 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 32.42141210638997 0.8717235933465765 0.589117509949719 8.616652441925774 3.352783051332986e-2 0.23469481359330902
YEM Asia Yemen 2020-06-23 992.0 25.0 15.286 261.0 4.0 6.714 0.96 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 33.25960786922322 0.8381957628332465 0.5125064172267602 8.750763763979093 0.13411132205331944 0.2251058540664967
YEM Asia Yemen 2020-06-24 1015.0 23.0 16.143 274.0 13.0 4.286 0.96 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 34.03074797102981 0.7711401018065868 0.5412397679766839 9.18662556065238 0.4358617966732882 0.14370028158013176
YEM Asia Yemen 2020-06-25 1076.0 61.0 23.857 288.0 14.0 5.714 0.96 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 36.07594563234293 2.0451976613131215 0.7998734525565105 9.656015187839 0.46938962718661803 0.19157802355316683
YEM Asia Yemen 2020-06-26 1089.0 13.0 24.286 293.0 5.0 6.0 0.95 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 36.511807429016216 0.4358617966732882 0.8142568918467291 9.82365434040565 0.1676391525666493 0.20116698307997916
YEM Asia Yemen 2020-06-27 1103.0 14.0 25.857 296.0 3.0 6.0 0.95 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 36.98119705620284 0.46938962718661803 0.8669291135831702 9.92423783194564 0.10058349153998958 0.20116698307997916
YEM Asia Yemen 2020-06-28 1118.0 15.0 25.286 302.0 6.0 6.571 0.94 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 37.48411451390278 0.5029174576999479 0.8477847223600589 10.125404815025618 0.20116698307997916 0.22031137430309053
YEM Asia Yemen 2020-06-29 1128.0 10.0 23.0 304.0 2.0 6.714 0.94 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 37.81939281903608 0.3352783051332986 0.7711401018065868 10.192460476052277 6.705566102665972e-2 0.2251058540664967
YEM Asia Yemen 2020-06-30 1158.0 30.0 23.714 312.0 8.0 7.286 0.94 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 38.82522773443598 1.0058349153998958 0.7950789727931042 10.460683120158917 0.2682226441066389 0.24428377312012134
YEM Asia Yemen 2020-07-01 1190.0 32.0 25.0 318.0 6.0 6.286 0.94 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 39.898118310862536 1.0728905764265555 0.8381957628332465 10.661850103238894 0.20116698307997916 0.21075594260679148
YEM Asia Yemen 2020-07-02 1221.0 31.0 20.714 325.0 7.0 5.286 0.94 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 40.93748105677576 1.0393627459132255 0.6944954812531148 10.896544916832205 0.23469481359330902 0.17722811209346162
YEM Asia Yemen 2020-07-03 1240.0 19.0 21.571 335.0 10.0 6.0 0.93 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 41.574509836529025 0.6370287797532673 0.7232288320030386 11.231823221965504 0.3352783051332986 0.20116698307997916
YEM Asia Yemen 2020-07-04 1248.0 8.0 20.714 337.0 2.0 5.857 0.93 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 41.84273248063567 0.2682226441066389 0.6944954812531148 11.298878882992163 6.705566102665972e-2 0.19637250331657302
YEM Asia Yemen 2020-07-05 1265.0 17.0 21.0 338.0 1.0 5.143 0.93 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 42.412705599362276 0.5699731187266077 0.704084440779927 11.332406713505492 3.352783051332986e-2 0.1724336323300555
YEM Asia Yemen 2020-07-06 1284.0 19.0 22.286 345.0 7.0 5.857 0.92 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 43.04973437911554 0.6370287797532673 0.7472012308200693 11.567101527098803 0.23469481359330902 0.19637250331657302
YEM Asia Yemen 2020-07-07 1297.0 13.0 19.857 348.0 3.0 5.143 0.92 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 43.485596175788835 0.4358617966732882 0.665762130503191 11.66768501863879 0.10058349153998958 0.1724336323300555
YEM Asia Yemen 2020-07-08 1318.0 21.0 18.286 351.0 3.0 4.714 0.92 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 44.18968061656875 0.704084440779927 0.61308990876675 11.76826851017878 0.10058349153998958 0.15805019303983697
YEM Asia Yemen 2020-07-09 1356.0 38.0 19.286 361.0 10.0 5.143 0.92 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 45.463738176075296 1.2740575595065347 0.6466177392800798 12.103546815312079 0.3352783051332986 0.1724336323300555
YEM Asia Yemen 2020-07-10 1380.0 24.0 20.0 364.0 3.0 4.143 0.92 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 46.26840610839521 0.8046679323199166 0.6705566102665972 12.204130306852068 0.10058349153998958 0.1389058018167256
YEM Asia Yemen 2020-07-11 1389.0 9.0 20.143 365.0 1.0 4.0 0.92 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 46.57015658301518 0.30175047461996873 0.6753510900300035 12.2376581373654 3.352783051332986e-2 0.13411132205331944
YEM Asia Yemen 2020-07-12 1465.0 76.0 28.571 417.0 52.0 11.286 0.92 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 49.118271702028245 2.5481151190130693 0.9579236455963475 13.981105324058552 1.743447186693153 0.3783950951734408
YEM Asia Yemen 2020-07-13 1498.0 33.0 30.571 424.0 7.0 11.286 0.91 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 50.22469010896813 1.1064184069398852 1.024979306623007 14.215800137651861 0.23469481359330902 0.3783950951734408
YEM Asia Yemen 2020-07-14 1516.0 18.0 31.286 429.0 5.0 11.571 0.9 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 50.82819105820807 0.6035009492399375 1.0489517054400381 14.383439290218512 0.1676391525666493 0.3879505268697398
YEM Asia Yemen 2020-07-15 1526.0 10.0 29.714 433.0 4.0 11.714 0.9 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 51.16346936334137 0.3352783051332986 0.9962459558730835 14.51755061227183 0.13411132205331944 0.39274500663314604
YEM Asia Yemen 2020-07-16 1552.0 26.0 28.0 438.0 5.0 11.0 0.9 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 52.03519295668794 0.8717235933465765 0.9387792543732361 14.685189764838478 0.1676391525666493 0.3688061356466285
YEM Asia Yemen 2020-07-17 1576.0 24.0 28.0 440.0 2.0 10.857 0.89 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 52.83986088900786 0.8046679323199166 0.9387792543732361 14.752245425865139 6.705566102665972e-2 0.36401165588322226
YEM Asia Yemen 2020-07-18 1581.0 5.0 27.429 443.0 3.0 11.143 0.89 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 53.00750004157451 0.1676391525666493 0.9196348631501248 14.852828917405128 0.10058349153998958 0.37360061541003464
YEM Asia Yemen 2020-07-19 1606.0 25.0 20.143 445.0 2.0 4.0 0.88 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 53.845695804407754 0.8381957628332465 0.6753510900300035 14.91988457843179 6.705566102665972e-2 0.13411132205331944
YEM Asia Yemen 2020-07-20 1619.0 13.0 17.286 447.0 2.0 3.286 0.88 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 54.28155760108104 0.4358617966732882 0.57956207825342 14.986940239458448 6.705566102665972e-2 0.11017245106680193
YEM Asia Yemen 2020-07-21 1629.0 10.0 16.143 456.0 9.0 3.857 0.88 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 54.61683590621434 0.3352783051332986 0.5412397679766839 15.288690714078419 0.30175047461996873 0.12931684228991328
YEM Asia Yemen 2020-07-22 1640.0 11.0 16.286 458.0 2.0 3.571 0.88 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 54.98564204186097 0.3688061356466285 0.5460342477400901 15.355746375105076 6.705566102665972e-2 0.11972788276310095
YEM Asia Yemen 2020-07-23 1654.0 14.0 14.571 461.0 3.0 3.286 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 55.45503166904759 0.46938962718661803 0.48853401840972943 15.456329866645065 0.10058349153998958 0.11017245106680193
YEM Asia Yemen 2020-07-24 1674.0 20.0 14.0 469.0 8.0 4.143 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 56.12558827931419 0.6705566102665972 0.46938962718661803 15.724552510751707 0.2682226441066389 0.1389058018167256
YEM Asia Yemen 2020-07-25 1674.0 0.0 13.286 474.0 5.0 4.429 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 56.12558827931419 0.0 0.4454507562001005 15.892191663318354 0.1676391525666493 0.14849476134353798
YEM Asia Yemen 2020-07-26 1681.0 7.0 10.714 479.0 5.0 4.857 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 56.360283092907494 0.23469481359330902 0.35921717611981613 16.059830815885 0.1676391525666493 0.16284467280324313
YEM Asia Yemen 2020-07-27 1691.0 10.0 10.286 483.0 4.0 5.143 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 56.695561398040795 0.3352783051332986 0.344867264660111 16.193942137938322 0.13411132205331944 0.1724336323300555
YEM Asia Yemen 2020-07-28 1703.0 12.0 10.571 484.0 1.0 4.0 0.86 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 57.09789536420075 0.4023339661599583 0.35442269635640994 16.227469968451654 3.352783051332986e-2 0.13411132205331944
YEM Asia Yemen 2020-07-29 1711.0 8.0 10.143 485.0 1.0 3.857 0.86 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 57.36611800830739 0.2682226441066389 0.3400727848967048 16.260997798964983 3.352783051332986e-2 0.12931684228991328
YEM Asia Yemen 2020-07-30 1726.0 15.0 10.286 487.0 2.0 3.714 0.86 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 57.86903546600734 0.5029174576999479 0.344867264660111 16.328053459991644 6.705566102665972e-2 0.1245223625265071
YEM Asia Yemen 2020-07-31 1728.0 2.0 7.714 493.0 6.0 3.429 0.86 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 57.936091127034004 6.705566102665972e-2 0.25863368457982655 16.52922044307162 0.20116698307997916 0.11496693083020809
YEM Asia Yemen 2020-08-01 1730.0 2.0 8.0 494.0 1.0 2.857 0.86 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 58.003146788060654 6.705566102665972e-2 0.2682226441066389 16.56274827358495 3.352783051332986e-2 9.578901177658342e-2
YEM Asia Yemen 2020-08-02 1734.0 4.0 7.571 497.0 3.0 2.571 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 58.13725811011398 0.13411132205331944 0.25383920481642036 16.66333176512494 0.10058349153998958 8.620005224977108e-2
YEM Asia Yemen 2020-08-03 1734.0 0.0 6.143 499.0 2.0 2.286 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 58.13725811011398 0.0 0.20596146284338532 16.730387426151598 6.705566102665972e-2 7.664462055347206e-2
YEM Asia Yemen 2020-08-04 1760.0 26.0 8.143 506.0 7.0 3.143 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 59.008981703460556 0.8717235933465765 0.27301712387004506 16.96508223974491 0.23469481359330902 0.10537797130339574
YEM Asia Yemen 2020-08-05 1763.0 3.0 7.429 508.0 2.0 3.286 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 59.10956519500054 0.10058349153998958 0.24907825288352753 17.03213790077157 6.705566102665972e-2 0.11017245106680193
YEM Asia Yemen 2020-08-06 1768.0 5.0 6.0 508.0 0.0 3.0 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 59.2772043475672 0.1676391525666493 0.20116698307997916 17.03213790077157 0.0 0.10058349153998958
YEM Asia Yemen 2020-08-07 1796.0 28.0 9.714 512.0 4.0 2.714 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 60.21598360194043 0.9387792543732361 0.32568934560648627 17.166249222824888 0.13411132205331944 9.099453201317724e-2
YEM Asia Yemen 2020-08-08 1797.0 1.0 9.571 512.0 0.0 2.571 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 60.24951143245376 3.352783051332986e-2 0.3208948658430801 17.166249222824888 0.0 8.620005224977108e-2
YEM Asia Yemen 2020-08-09 1804.0 7.0 10.0 515.0 3.0 2.571 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 60.484206246047066 0.23469481359330902 0.3352783051332986 17.266832714364877 0.10058349153998958 8.620005224977108e-2
YEM Asia Yemen 2020-08-10 1832.0 28.0 14.0 518.0 3.0 2.714 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 61.4229855004203 0.9387792543732361 0.46938962718661803 17.36741620590487 0.10058349153998958 9.099453201317724e-2
YEM Asia Yemen 2020-08-11 1831.0 -1.0 10.143 523.0 5.0 2.429 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 61.38945766990697 -3.352783051332986e-2 0.3400727848967048 17.535055358471517 0.1676391525666493 8.143910031687823e-2
YEM Asia Yemen 2020-08-12 1841.0 10.0 11.143 528.0 5.0 2.857 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 61.724735975040275 0.3352783051332986 0.37360061541003464 17.702694511038164 0.1676391525666493 9.578901177658342e-2
YEM Asia Yemen 2020-08-13 1847.0 6.0 11.286 528.0 0.0 2.857 0.86 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 61.92590295812025 0.20116698307997916 0.3783950951734408 17.702694511038164 0.0 9.578901177658342e-2
YEM Asia Yemen 2020-08-14 1858.0 11.0 8.857 528.0 0.0 2.286 0.86 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 62.29470909376688 0.3688061356466285 0.29695599485656254 17.702694511038164 0.0 7.664462055347206e-2
YEM Asia Yemen 2020-08-15 1858.0 0.0 8.714 528.0 0.0 2.286 0.86 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 62.29470909376688 0.0 0.2921615150931564 17.702694511038164 0.0 7.664462055347206e-2
YEM Asia Yemen 2020-08-16 1869.0 11.0 9.286 530.0 2.0 2.143 0.85 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 62.66351522941351 0.3688061356466285 0.31133943414678106 17.76975017206483 6.705566102665972e-2 7.185014079006588e-2
YEM Asia Yemen 2020-08-17 1882.0 13.0 7.143 535.0 5.0 2.429 0.85 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 63.0993770260868 0.4358617966732882 0.23948929335671518 17.937389324631475 0.1676391525666493 8.143910031687823e-2
YEM Asia Yemen 2020-08-18 1889.0 7.0 8.286 537.0 2.0 2.0 0.85 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 63.33407183968011 0.23469481359330902 0.2778116036334512 18.004444985658136 6.705566102665972e-2 6.705566102665972e-2
YEM Asia Yemen 2020-08-19 1892.0 3.0 7.286 539.0 2.0 1.571 0.85 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 63.43465533122009 0.10058349153998958 0.24428377312012134 18.071500646684793 6.705566102665972e-2 5.2672221736441205e-2
YEM Asia Yemen 2020-08-20 1899.0 7.0 7.429 541.0 2.0 1.857 0.84 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 63.6693501448134 0.23469481359330902 0.24907825288352753 18.138556307711458 6.705566102665972e-2 6.226118126325355e-2
YEM Asia Yemen 2020-08-21 1906.0 7.0 6.857 542.0 1.0 2.0 0.84 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 63.904044958406715 0.23469481359330902 0.22990033382990288 18.172084138224783 3.352783051332986e-2 6.705566102665972e-2
YEM Asia Yemen 2020-08-22 1907.0 1.0 7.0 546.0 4.0 2.571 0.84 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 63.93757278892005 3.352783051332986e-2 0.23469481359330902 18.306195460278104 0.13411132205331944 8.620005224977108e-2
YEM Asia Yemen 2020-08-23 1911.0 4.0 6.0 553.0 7.0 3.286 0.84 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 64.07168411097337 0.13411132205331944 0.20116698307997916 18.540890273871412 0.23469481359330902 0.11017245106680193
YEM Asia Yemen 2020-08-24 1916.0 5.0 4.857 555.0 2.0 2.857 0.84 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 64.23932326354 0.1676391525666493 0.16284467280324313 18.607945934898073 6.705566102665972e-2 9.578901177658342e-2
YEM Asia Yemen 2020-08-25 1924.0 8.0 5.0 557.0 2.0 2.857 0.84 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 64.50754590764666 0.2682226441066389 0.1676391525666493 18.675001595924734 6.705566102665972e-2 9.578901177658342e-2
YEM Asia Yemen 2020-08-26 1930.0 6.0 5.429 560.0 3.0 3.0 0.84 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 64.70871289072663 0.20116698307997916 0.18202259185686784 18.775585087464723 0.10058349153998958 0.10058349153998958
YEM Asia Yemen 2020-08-27 1933.0 3.0 4.857 562.0 2.0 3.0 0.84 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 64.80929638226662 0.10058349153998958 0.16284467280324313 18.84264074849138 6.705566102665972e-2 0.10058349153998958
YEM Asia Yemen 2020-08-28 1943.0 10.0 5.286 563.0 1.0 3.0 0.83 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 65.14457468739992 0.3352783051332986 0.17722811209346162 18.876168579004712 3.352783051332986e-2 0.10058349153998958
YEM Asia Yemen 2020-08-29 1946.0 3.0 5.571 563.0 0.0 2.429 0.83 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 65.2451581789399 0.10058349153998958 0.18678354378976064 18.876168579004712 0.0 8.143910031687823e-2
YEM Asia Yemen 2020-08-30 1953.0 7.0 6.0 564.0 1.0 1.571 0.83 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 65.47985299253321 0.23469481359330902 0.20116698307997916 18.90969640951804 3.352783051332986e-2 5.2672221736441205e-2
YEM Asia Yemen 2020-08-31 1958.0 5.0 6.0 566.0 2.0 1.571 0.83 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 65.64749214509986 0.1676391525666493 0.20116698307997916 18.976752070544702 6.705566102665972e-2 5.2672221736441205e-2
YEM Asia Yemen 2020-09-01 1962.0 4.0 5.429 570.0 4.0 1.857 0.83 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 65.78160346715319 0.13411132205331944 0.18202259185686784 19.110863392598024 0.13411132205331944 6.226118126325355e-2
YEM Asia Yemen 2020-09-02 1976.0 14.0 6.571 571.0 1.0 1.571 0.83 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 66.2509930943398 0.46938962718661803 0.22031137430309053 19.14439122311135 3.352783051332986e-2 5.2672221736441205e-2
YEM Asia Yemen 2020-09-03 1979.0 3.0 6.571 571.0 0.0 1.286 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 66.3515765858798 0.10058349153998958 0.22031137430309053 19.14439122311135 0.0 4.3116790040142204e-2
YEM Asia Yemen 2020-09-04 1983.0 4.0 5.714 572.0 1.0 1.286 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 66.48568790793311 0.13411132205331944 0.19157802355316683 19.17791905362468 3.352783051332986e-2 4.3116790040142204e-2
YEM Asia Yemen 2020-09-05 1983.0 0.0 5.286 572.0 0.0 1.286 0.81 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 66.48568790793311 0.0 0.17722811209346162 19.17791905362468 0.0 4.3116790040142204e-2
YEM Asia Yemen 2020-09-06 1987.0 4.0 4.857 572.0 0.0 1.143 0.81 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 66.61979922998644 0.13411132205331944 0.16284467280324313 19.17791905362468 0.0 3.832231027673603e-2
YEM Asia Yemen 2020-09-07 1989.0 2.0 4.429 573.0 1.0 1.0 0.81 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 66.68685489101308 6.705566102665972e-2 0.14849476134353798 19.21144688413801 3.352783051332986e-2 3.352783051332986e-2
YEM Asia Yemen 2020-09-08 1994.0 5.0 4.571 576.0 3.0 0.857 0.8 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 66.85449404357975 0.1676391525666493 0.15325571327643078 19.312030375678 0.10058349153998958 2.873335074992369e-2
YEM Asia Yemen 2020-09-09 1999.0 5.0 3.286 576.0 0.0 0.714 0.8 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.0221331961464 0.1676391525666493 0.11017245106680193 19.312030375678 0.0 2.393887098651752e-2
YEM Asia Yemen 2020-09-10 2003.0 4.0 3.429 580.0 4.0 1.286 0.8 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.15624451819971 0.13411132205331944 0.11496693083020809 19.44614169773132 0.13411132205331944 4.3116790040142204e-2
YEM Asia Yemen 2020-09-11 2007.0 4.0 3.429 582.0 2.0 1.429 0.79 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.29035584025303 0.13411132205331944 0.11496693083020809 19.513197358757978 6.705566102665972e-2 4.791126980354837e-2
YEM Asia Yemen 2020-09-12 2009.0 2.0 3.714 582.0 0.0 1.429 0.79 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.35741150127969 6.705566102665972e-2 0.1245223625265071 19.513197358757978 0.0 4.791126980354837e-2
YEM Asia Yemen 2020-09-13 2011.0 2.0 3.429 583.0 1.0 1.571 0.79 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.42446716230636 6.705566102665972e-2 0.11496693083020809 19.54672518927131 3.352783051332986e-2 5.2672221736441205e-2
YEM Asia Yemen 2020-09-14 2013.0 2.0 3.429 583.0 0.0 1.429 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.49152282333301 6.705566102665972e-2 0.11496693083020809 19.54672518927131 0.0 4.791126980354837e-2
YEM Asia Yemen 2020-09-15 2016.0 3.0 3.143 583.0 0.0 1.0 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.592106314873 0.10058349153998958 0.10537797130339574 19.54672518927131 0.0 3.352783051332986e-2
YEM Asia Yemen 2020-09-16 2019.0 3.0 2.857 583.0 0.0 1.0 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.69268980641299 0.10058349153998958 9.578901177658342e-2 19.54672518927131 0.0 3.352783051332986e-2
YEM Asia Yemen 2020-09-17 2022.0 3.0 2.714 585.0 2.0 0.714 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.79327329795298 0.10058349153998958 9.099453201317724e-2 19.613780850297967 6.705566102665972e-2 2.393887098651752e-2
YEM Asia Yemen 2020-09-18 2024.0 2.0 2.429 585.0 0.0 0.429 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.86032895897964 6.705566102665972e-2 8.143910031687823e-2 19.613780850297967 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-09-19 2026.0 2.0 2.429 585.0 0.0 0.429 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.9273846200063 6.705566102665972e-2 8.143910031687823e-2 19.613780850297967 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-09-20 2026.0 0.0 2.143 586.0 1.0 0.429 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.9273846200063 0.0 7.185014079006588e-2 19.6473086808113 3.352783051332986e-2 1.438343929021851e-2
YEM Asia Yemen 2020-09-21 2028.0 2.0 2.143 586.0 0.0 0.429 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.99444028103296 6.705566102665972e-2 7.185014079006588e-2 19.6473086808113 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-09-22 2028.0 0.0 1.714 586.0 0.0 0.429 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.99444028103296 0.0 5.746670149984738e-2 19.6473086808113 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-09-23 2029.0 1.0 1.429 586.0 0.0 0.429 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.02796811154629 3.352783051332986e-2 4.791126980354837e-2 19.6473086808113 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-09-24 2029.0 0.0 1.0 586.0 0.0 0.143 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.02796811154629 0.0 3.352783051332986e-2 19.6473086808113 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-09-25 2029.0 0.0 0.714 587.0 1.0 0.286 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.02796811154629 0.0 2.393887098651752e-2 19.680836511324628 3.352783051332986e-2 9.58895952681234e-3
YEM Asia Yemen 2020-09-26 2030.0 1.0 0.571 587.0 0.0 0.286 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.06149594205962 3.352783051332986e-2 1.914439122311135e-2 19.680836511324628 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-09-27 2030.0 0.0 0.571 587.0 0.0 0.143 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.06149594205962 0.0 1.914439122311135e-2 19.680836511324628 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-09-28 2031.0 1.0 0.429 587.0 0.0 0.143 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.09502377257294 3.352783051332986e-2 1.438343929021851e-2 19.680836511324628 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-09-29 2031.0 0.0 0.429 587.0 0.0 0.143 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.09502377257294 0.0 1.438343929021851e-2 19.680836511324628 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-09-30 2034.0 3.0 0.714 587.0 0.0 0.143 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.19560726411294 0.10058349153998958 2.393887098651752e-2 19.680836511324628 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-10-01 2039.0 5.0 1.429 587.0 0.0 0.143 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.36324641667959 0.1676391525666493 4.791126980354837e-2 19.680836511324628 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-10-02 2040.0 1.0 1.571 589.0 2.0 0.286 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.39677424719292 3.352783051332986e-2 5.2672221736441205e-2 19.74789217235129 6.705566102665972e-2 9.58895952681234e-3
YEM Asia Yemen 2020-10-03 2041.0 1.0 1.571 589.0 0.0 0.286 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.43030207770624 3.352783051332986e-2 5.2672221736441205e-2 19.74789217235129 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-10-04 2041.0 0.0 1.571 591.0 2.0 0.571 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.43030207770624 0.0 5.2672221736441205e-2 19.814947833377946 6.705566102665972e-2 1.914439122311135e-2
YEM Asia Yemen 2020-10-05 2041.0 0.0 1.429 592.0 1.0 0.714 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.43030207770624 0.0 4.791126980354837e-2 19.84847566389128 3.352783051332986e-2 2.393887098651752e-2
YEM Asia Yemen 2020-10-06 2047.0 6.0 2.286 593.0 1.0 0.857 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.63146906078623 0.20116698307997916 7.664462055347206e-2 19.882003494404607 3.352783051332986e-2 2.873335074992369e-2
YEM Asia Yemen 2020-10-07 2049.0 2.0 2.143 593.0 0.0 0.857 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.69852472181289 6.705566102665972e-2 7.185014079006588e-2 19.882003494404607 0.0 2.873335074992369e-2
YEM Asia Yemen 2020-10-08 2050.0 1.0 1.571 593.0 0.0 0.857 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.73205255232621 3.352783051332986e-2 5.2672221736441205e-2 19.882003494404607 0.0 2.873335074992369e-2
YEM Asia Yemen 2020-10-09 2051.0 1.0 1.571 593.0 0.0 0.571 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.76558038283954 3.352783051332986e-2 5.2672221736441205e-2 19.882003494404607 0.0 1.914439122311135e-2
YEM Asia Yemen 2020-10-10 2051.0 0.0 1.429 595.0 2.0 0.857 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.76558038283954 0.0 4.791126980354837e-2 19.949059155431268 6.705566102665972e-2 2.873335074992369e-2
YEM Asia Yemen 2020-10-11 2052.0 1.0 1.571 595.0 0.0 0.571 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.79910821335287 3.352783051332986e-2 5.2672221736441205e-2 19.949059155431268 0.0 1.914439122311135e-2
YEM Asia Yemen 2020-10-12 2052.0 0.0 1.571 596.0 1.0 0.571 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.79910821335287 0.0 5.2672221736441205e-2 19.982586985944597 3.352783051332986e-2 1.914439122311135e-2
YEM Asia Yemen 2020-10-13 2053.0 1.0 0.857 596.0 0.0 0.429 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.83263604386622 3.352783051332986e-2 2.873335074992369e-2 19.982586985944597 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-10-14 2053.0 0.0 0.571 596.0 0.0 0.429 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.83263604386622 0.0 1.914439122311135e-2 19.982586985944597 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-10-15 2053.0 0.0 0.429 596.0 0.0 0.429 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.83263604386622 0.0 1.438343929021851e-2 19.982586985944597 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-10-16 2055.0 2.0 0.571 596.0 0.0 0.429 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.89969170489286 6.705566102665972e-2 1.914439122311135e-2 19.982586985944597 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-10-17 2055.0 0.0 0.571 596.0 0.0 0.143 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.89969170489286 0.0 1.914439122311135e-2 19.982586985944597 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-10-18 2056.0 1.0 0.571 597.0 1.0 0.286 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.9332195354062 3.352783051332986e-2 1.914439122311135e-2 20.016114816457925 3.352783051332986e-2 9.58895952681234e-3
YEM Asia Yemen 2020-10-19 2056.0 0.0 0.571 597.0 0.0 0.143 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.9332195354062 0.0 1.914439122311135e-2 20.016114816457925 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-10-20 2057.0 1.0 0.571 597.0 0.0 0.143 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.96674736591952 3.352783051332986e-2 1.914439122311135e-2 20.016114816457925 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-10-21 2057.0 0.0 0.571 597.0 0.0 0.143 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.96674736591952 0.0 1.914439122311135e-2 20.016114816457925 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-10-22 2057.0 0.0 0.571 597.0 0.0 0.143 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.96674736591952 0.0 1.914439122311135e-2 20.016114816457925 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-10-23 2060.0 3.0 0.714 599.0 2.0 0.429 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.06733085745951 0.10058349153998958 2.393887098651752e-2 20.083170477484586 6.705566102665972e-2 1.438343929021851e-2
YEM Asia Yemen 2020-10-24 2060.0 0.0 0.714 599.0 0.0 0.429 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.06733085745951 0.0 2.393887098651752e-2 20.083170477484586 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-10-25 2060.0 0.0 0.571 599.0 0.0 0.286 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.06733085745951 0.0 1.914439122311135e-2 20.083170477484586 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-10-26 2060.0 0.0 0.571 599.0 0.0 0.286 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.06733085745951 0.0 1.914439122311135e-2 20.083170477484586 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-10-27 2060.0 0.0 0.429 599.0 0.0 0.286 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 29.63 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.06733085745951 0.0 1.438343929021851e-2 20.083170477484586 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-10-28 2061.0 1.0 0.571 599.0 0.0 0.286 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 29.63 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.10085868797285 3.352783051332986e-2 1.914439122311135e-2 20.083170477484586 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-10-29 2062.0 1.0 0.714 599.0 0.0 0.286 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 29.63 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.13438651848617 3.352783051332986e-2 2.393887098651752e-2 20.083170477484586 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-10-30 2062.0 0.0 0.286 599.0 0.0 0.0 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.13438651848617 0.0 9.58895952681234e-3 20.083170477484586 0.0 0.0
YEM Asia Yemen 2020-10-31 2063.0 1.0 0.429 599.0 0.0 0.0 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.1679143489995 3.352783051332986e-2 1.438343929021851e-2 20.083170477484586 0.0 0.0
YEM Asia Yemen 2020-11-01 2063.0 0.0 0.429 600.0 1.0 0.143 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.1679143489995 0.0 1.438343929021851e-2 20.116698307997915 3.352783051332986e-2 4.79447976340617e-3
YEM Asia Yemen 2020-11-02 2063.0 0.0 0.429 601.0 1.0 0.286 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.1679143489995 0.0 1.438343929021851e-2 20.150226138511247 3.352783051332986e-2 9.58895952681234e-3
YEM Asia Yemen 2020-11-03 2063.0 0.0 0.429 601.0 0.0 0.286 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.1679143489995 0.0 1.438343929021851e-2 20.150226138511247 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-11-04 2063.0 0.0 0.286 601.0 0.0 0.286 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.1679143489995 0.0 9.58895952681234e-3 20.150226138511247 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-11-05 2063.0 0.0 0.143 601.0 0.0 0.286 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.1679143489995 0.0 4.79447976340617e-3 20.150226138511247 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-11-06 2067.0 4.0 0.714 602.0 1.0 0.429 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.30202567105282 0.13411132205331944 2.393887098651752e-2 20.183753969024576 3.352783051332986e-2 1.438343929021851e-2
YEM Asia Yemen 2020-11-07 2070.0 3.0 1.0 602.0 0.0 0.429 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.40260916259281 0.10058349153998958 3.352783051332986e-2 20.183753969024576 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-11-08 2070.0 0.0 1.0 602.0 0.0 0.286 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.40260916259281 0.0 3.352783051332986e-2 20.183753969024576 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-11-09 2071.0 1.0 1.143 605.0 3.0 0.571 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.43613699310615 3.352783051332986e-2 3.832231027673603e-2 20.284337460564565 0.10058349153998958 1.914439122311135e-2
YEM Asia Yemen 2020-11-10 2071.0 0.0 1.143 605.0 0.0 0.571 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.43613699310615 0.0 3.832231027673603e-2 20.284337460564565 0.0 1.914439122311135e-2
YEM Asia Yemen 2020-11-11 2071.0 0.0 1.143 605.0 0.0 0.571 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.43613699310615 0.0 3.832231027673603e-2 20.284337460564565 0.0 1.914439122311135e-2
YEM Asia Yemen 2020-11-12 2071.0 0.0 1.143 605.0 0.0 0.571 0.79 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.43613699310615 0.0 3.832231027673603e-2 20.284337460564565 0.0 1.914439122311135e-2
YEM Asia Yemen 2020-11-13 2072.0 1.0 0.714 605.0 0.0 0.429 0.79 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.46966482361948 3.352783051332986e-2 2.393887098651752e-2 20.284337460564565 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-11-14 2072.0 0.0 0.286 605.0 0.0 0.429 0.8 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.46966482361948 0.0 9.58895952681234e-3 20.284337460564565 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-11-15 2072.0 0.0 0.286 605.0 0.0 0.429 0.8 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.46966482361948 0.0 9.58895952681234e-3 20.284337460564565 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-11-16 2078.0 6.0 1.0 605.0 0.0 0.0 0.81 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.67083180669945 0.20116698307997916 3.352783051332986e-2 20.284337460564565 0.0 0.0
YEM Asia Yemen 2020-11-17 2081.0 3.0 1.429 607.0 2.0 0.286 0.81 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.77141529823943 0.10058349153998958 4.791126980354837e-2 20.351393121591226 6.705566102665972e-2 9.58895952681234e-3
YEM Asia Yemen 2020-11-18 2083.0 2.0 1.714 607.0 0.0 0.286 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.8384709592661 6.705566102665972e-2 5.746670149984738e-2 20.351393121591226 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-11-19 2086.0 3.0 2.143 608.0 1.0 0.429 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.93905445080608 0.10058349153998958 7.185014079006588e-2 20.384920952104554 3.352783051332986e-2 1.438343929021851e-2
YEM Asia Yemen 2020-11-20 2090.0 4.0 2.571 608.0 0.0 0.429 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 70.07316577285941 0.13411132205331944 8.620005224977108e-2 20.384920952104554 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-11-21 2093.0 3.0 3.0 608.0 0.0 0.429 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 70.17374926439939 0.10058349153998958 0.10058349153998958 20.384920952104554 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-11-22 2099.0 6.0 3.857 608.0 0.0 0.429 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 70.37491624747938 0.20116698307997916 0.12931684228991328 20.384920952104554 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-11-23 2107.0 8.0 4.143 609.0 1.0 0.571 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 70.643138891586 0.2682226441066389 0.1389058018167256 20.418448782617887 3.352783051332986e-2 1.914439122311135e-2
YEM Asia Yemen 2020-11-24 2114.0 7.0 4.714 609.0 0.0 0.286 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 70.87783370517933 0.23469481359330902 0.15805019303983697 20.418448782617887 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-11-25 2124.0 10.0 5.857 611.0 2.0 0.571 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 71.21311201031263 0.3352783051332986 0.19637250331657302 20.485504443644544 6.705566102665972e-2 1.914439122311135e-2
YEM Asia Yemen 2020-11-26 2137.0 13.0 7.286 612.0 1.0 0.571 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 71.64897380698591 0.4358617966732882 0.24428377312012134 20.519032274157876 3.352783051332986e-2 1.914439122311135e-2
YEM Asia Yemen 2020-11-27 2148.0 11.0 8.286 614.0 2.0 0.857 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 72.01777994263254 0.3688061356466285 0.2778116036334512 20.586087935184533 6.705566102665972e-2 2.873335074992369e-2
YEM Asia Yemen 2020-11-28 2160.0 12.0 9.571 615.0 1.0 1.0 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 72.4201139087925 0.4023339661599583 0.3208948658430801 20.619615765697866 3.352783051332986e-2 3.352783051332986e-2
YEM Asia Yemen 2020-11-29 2177.0 17.0 11.143 617.0 2.0 1.286 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 72.99008702751911 0.5699731187266077 0.37360061541003464 20.686671426724523 6.705566102665972e-2 4.3116790040142204e-2
YEM Asia Yemen 2020-11-30 2191.0 14.0 12.0 619.0 2.0 1.429 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 73.45947665470572 0.46938962718661803 0.4023339661599583 20.753727087751184 6.705566102665972e-2 4.791126980354837e-2
YEM Asia Yemen 2020-12-01 2197.0 6.0 11.857 619.0 0.0 1.429 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 73.6606436377857 0.20116698307997916 0.3975394863965521 20.753727087751184 0.0 4.791126980354837e-2
YEM Asia Yemen 2020-12-02 2217.0 20.0 13.286 621.0 2.0 1.429 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 74.3312002480523 0.6705566102665972 0.4454507562001005 20.820782748777845 6.705566102665972e-2 4.791126980354837e-2
YEM Asia Yemen 2020-12-03 2239.0 22.0 14.571 624.0 3.0 1.714 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 75.06881251934556 0.737612271293257 0.48853401840972943 20.921366240317834 0.10058349153998958 5.746670149984738e-2
SWE Europe Sweden 2020-01-23 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-01-24 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-01-25 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-01-26 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-01-27 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-01-28 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-01-29 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-01-31 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-01 1.0 1.0 0.143 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 9.901705766852455e-2 1.415943924659901e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-02 1.0 0.0 0.143 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 1.415943924659901e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-03 1.0 0.0 0.143 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 1.415943924659901e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-04 1.0 0.0 0.143 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 1.415943924659901e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-05 1.0 0.0 0.143 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 1.415943924659901e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-06 1.0 0.0 0.143 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 1.415943924659901e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-07 1.0 0.0 0.143 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 1.415943924659901e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-08 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-09 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null 0.0 0.0 null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-10 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-11 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-12 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-13 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-14 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-15 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null 0.0 0.0 null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-16 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-17 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-18 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-19 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-20 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-21 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-22 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-23 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null 0.0 0.0 null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-24 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-25 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-26 2.0 1.0 0.143 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.1980341153370491 9.901705766852455e-2 1.415943924659901e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-27 3.0 1.0 0.286 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.2970511730055737 9.901705766852455e-2 2.831887849319802e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-28 11.0 8.0 1.429 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 1.0891876343537703 0.7921364613481964 0.1414953754083216 0.0 0.0 0.0
SWE Europe Sweden 2020-02-29 14.0 3.0 1.857 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 1.3862388073593437 0.2970511730055737 0.1838746760904501 0.0 0.0 0.0
SWE Europe Sweden 2020-03-01 14.0 0.0 1.857 0.0 0.0 0.0 1.6 null null null null 0.0 0.0 null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 1.3862388073593437 0.0 0.1838746760904501 0.0 0.0 0.0
SWE Europe Sweden 2020-03-02 19.0 5.0 2.571 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 1.8813240957019666 0.4950852883426227 0.25457285526577667 0.0 0.0 0.0
SWE Europe Sweden 2020-03-03 32.0 13.0 4.429 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 3.1685458453927855 1.2872217496908194 0.4385465484138953 0.0 0.0 0.0
SWE Europe Sweden 2020-03-04 62.0 30.0 8.571 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 6.139057575448523 2.9705117300557364 0.848675201276924 0.0 0.0 0.0
SWE Europe Sweden 2020-03-05 87.0 25.0 12.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 8.614484017161637 2.4754264417131138 1.1882046920222948 0.0 0.0 0.0
SWE Europe Sweden 2020-03-06 146.0 59.0 19.286 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 14.456490419604584 5.842006402442949 1.9096429741951646 0.0 0.0 0.0
SWE Europe Sweden 2020-03-07 179.0 33.0 23.571 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 17.724053322665895 3.2675629030613105 2.3339310663047925 0.0 0.0 0.0
SWE Europe Sweden 2020-03-08 225.0 46.0 30.143 0.0 0.0 0.0 1.6 null null null null 2.962 0.293 null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 22.278837975418025 4.554784652752129 2.984671169302336 0.0 0.0 0.0
SWE Europe Sweden 2020-03-09 326.0 101.0 43.857 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 11.11 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 32.279560799939006 10.000722824520981 4.342591098168481 0.0 0.0 0.0
res14: Long = 62500
root
 |-- iso_code: string (nullable = true)
 |-- continent: string (nullable = false)
 |-- location: string (nullable = true)
 |-- date: string (nullable = true)
 |-- total_cases: double (nullable = false)
 |-- new_cases: double (nullable = true)
 |-- new_cases_smoothed: double (nullable = false)
 |-- total_deaths: double (nullable = false)
 |-- new_deaths: double (nullable = true)
 |-- new_deaths_smoothed: double (nullable = false)
 |-- reproduction_rate: double (nullable = false)
 |-- icu_patients: double (nullable = true)
 |-- icu_patients_per_million: double (nullable = true)
 |-- hosp_patients: double (nullable = true)
 |-- hosp_patients_per_million: double (nullable = true)
 |-- weekly_icu_admissions: double (nullable = true)
 |-- weekly_icu_admissions_per_million: double (nullable = true)
 |-- weekly_hosp_admissions: double (nullable = true)
 |-- weekly_hosp_admissions_per_million: double (nullable = true)
 |-- total_tests: double (nullable = false)
 |-- new_tests: double (nullable = true)
 |-- total_tests_per_thousand: double (nullable = true)
 |-- new_tests_per_thousand: double (nullable = true)
 |-- new_tests_smoothed: double (nullable = true)
 |-- new_tests_smoothed_per_thousand: double (nullable = true)
 |-- tests_per_case: double (nullable = true)
 |-- positive_rate: double (nullable = true)
 |-- tests_units: double (nullable = true)
 |-- stringency_index: double (nullable = false)
 |-- population: double (nullable = true)
 |-- population_density: double (nullable = true)
 |-- median_age: double (nullable = true)
 |-- aged_65_older: double (nullable = true)
 |-- aged_70_older: double (nullable = true)
 |-- gdp_per_capita: double (nullable = true)
 |-- extreme_poverty: double (nullable = true)
 |-- cardiovasc_death_rate: double (nullable = true)
 |-- diabetes_prevalence: double (nullable = true)
 |-- female_smokers: double (nullable = true)
 |-- male_smokers: double (nullable = true)
 |-- handwashing_facilities: double (nullable = true)
 |-- hospital_beds_per_thousand: double (nullable = true)
 |-- life_expectancy: double (nullable = true)
 |-- human_development_index: double (nullable = true)
 |-- total_cases_per_million: double (nullable = true)
 |-- new_cases_per_million: double (nullable = true)
 |-- new_cases_smoothed_per_million: double (nullable = true)
 |-- total_deaths_per_million: double (nullable = true)
 |-- new_deaths_per_million: double (nullable = true)
 |-- new_deaths_smoothed_per_million: double (nullable = true)
iso_code: 0
continent: 0
location: 0
date: 0
total_cases: 0
new_cases: 0
new_cases_smoothed: 0
total_deaths: 0
new_deaths: 0
new_deaths_smoothed: 0
reproduction_rate: 0
icu_patients: 36018
icu_patients_per_million: 36018
hosp_patients: 34870
hosp_patients_per_million: 34870
weekly_icu_admissions: 41062
weekly_icu_admissions_per_million: 41062
weekly_hosp_admissions: 40715
weekly_hosp_admissions_per_million: 40715
total_tests: 0
new_tests: 20510
total_tests_per_thousand: 0
new_tests_per_thousand: 20510
new_tests_smoothed: 18176
new_tests_smoothed_per_thousand: 18176
tests_per_case: 19301
positive_rate: 19749
tests_units: 41600
stringency_index: 0
population: 0
population_density: 0
median_age: 0
aged_65_older: 0
aged_70_older: 0
gdp_per_capita: 0
extreme_poverty: 11168
cardiovasc_death_rate: 0
diabetes_prevalence: 0
female_smokers: 0
male_smokers: 0
handwashing_facilities: 24124
hospital_beds_per_thousand: 0
life_expectancy: 0
human_development_index: 0
total_cases_per_million: 0
new_cases_per_million: 0
new_cases_smoothed_per_million: 0
total_deaths_per_million: 0
new_deaths_per_million: 0
new_deaths_smoothed_per_million: 0
import org.apache.spark.sql.functions._
iso_code stringency_index population population_density gdp_per_capita diabetes_prevalence total_cases_per_million total_cases
BEN 40.74 1.2123198e7 99.11 2064.236 0.99 248.69675476718268 3015.0
DJI 37.96 988002.0 41.285 2705.406 6.05 5748.976216647335 5680.0
ERI 75.0 3546427.0 44.304 1510.459 6.05 162.69896433790967 577.0
SWZ 48.15 1160164.0 79.492 7738.975 3.94 5552.663244162032 6442.0
LBR 57.41 5057677.0 49.127 752.788 2.42 315.36217121022156 1595.0
TUN 68.52 1.1818618e7 74.228 10849.297 8.52 8187.843959420637 96769.0
UGA 45.37 4.5741e7 213.759 1697.707 2.5 459.8718873658206 21035.0
UGA 45.37 4.5741e7 213.759 1697.707 2.5 459.8718873658206 21035.0
ETH 51.85 1.14963583e8 104.957 1729.927 7.47 961.6436537124979 110554.0
MOZ 56.48 3.1255435e7 37.728 1136.103 3.3 504.5522482729803 15770.0
MOZ 56.48 3.1255435e7 37.728 1136.103 3.3 504.5522482729803 15770.0
MAR 66.2 3.6910558e7 80.08 7485.013 7.14 9749.080466353285 359844.0
MAR 66.2 3.6910558e7 80.08 7485.013 7.14 9749.080466353285 359844.0
GMB 36.11 2416664.0 207.566 1561.767 1.91 1548.829295259912 3743.0
KEN 62.96 5.37713e7 87.324 2993.028 2.92 1565.3145823143573 84169.0
DZA 72.22 4.3851043e7 17.348 13913.839 6.73 1919.042153683779 84152.0
ZMB 45.37 1.8383956e7 22.995 3689.251 3.94 960.8922040500967 17665.0
TGO 49.07 8278737.0 143.366 1429.813 6.15 362.01174164609887 2997.0
CPV 71.3 555988.0 135.58 6222.554 2.42 19453.65727317856 10816.0
TGO 49.07 8278737.0 143.366 1429.813 6.15 362.01174164609887 2997.0
SYC 31.48 98340.0 208.354 26382.287 10.55 1860.8907870652836 183.0
MWI 50.93 1.9129955e7 197.519 1095.042 3.94 315.1079027629704 6028.0
BFA 22.22 2.0903278e7 70.151 1703.102 2.42 140.21724248225564 2931.0
ZAF 44.44 5.930869e7 46.754 12294.876 5.52 13358.902380072803 792299.0
TZA 13.89 5.9734213e7 64.699 2683.304 5.75 8.52107987092757 509.0
BWA 50.93 2351625.0 4.044 15807.374 4.81 4567.905171955563 10742.0
NER 24.07 2.4206636e7 16.955 926.0 2.42 65.51922373682986 1586.0
GHA 38.89 3.1072945e7 126.719 4227.63 4.97 1662.764826443068 51667.0
MUS 16.67 1271767.0 622.962 20292.745 22.02 397.08531515599947 505.0
MLI 34.26 2.0250834e7 15.196 2014.306 2.42 235.15080909754138 4762.0
EGY 60.19 1.02334403e8 97.999 10550.206 17.31 1136.4995210848106 116303.0
ZWE 69.44 1.4862927e7 42.729 1899.775 1.82 681.4942978593651 10129.0
COM 0.0 869595.0 437.352 1413.89 11.88 704.9258562894221 613.0
ZWE 69.44 1.4862927e7 42.729 1899.775 1.82 681.4942978593651 10129.0
IND 68.98 1.380004385e9 450.419 6426.674 10.39 6883.6107357731335 9499413.0
IND 68.98 1.380004385e9 450.419 6426.674 10.39 6883.6107357731335 9499413.0
LKA 49.54 2.141325e7 341.955 11669.077 10.68 1145.6458034161094 24532.0
TLS 27.78 1318442.0 87.176 6570.102 6.86 22.754129495267897 30.0
YEM 24.07 2.9825968e7 53.508 1479.147 5.35 73.6606436377857 2197.0
IRN 70.83 8.3992953e7 49.831 19082.62 9.59 11619.439073656573 975951.0
PHL 71.76 1.09581085e8 351.873 7599.188 7.07 3950.7274453433274 432925.0
KAZ 71.76 1.8776707e7 6.681 24055.588 7.11 9350.148564388846 175565.0
LAO 33.33 7275556.0 29.715 6397.36 4.0 5.360415066559861 39.0
THA 50.0 6.9799978e7 135.132 16277.671 7.04 57.6791012742153 4026.0
ARM 0.0 2963234.0 102.931 8787.58 7.11 45884.665200250805 135967.0
ISR 65.74 8655541.0 402.606 33132.32 6.74 39064.80253516216 338127.0
PHL 71.76 1.09581085e8 351.873 7599.188 7.07 3950.7274453433274 432925.0
SAU 50.0 3.4813867e7 15.322 49045.411 17.72 10272.429661433474 357623.0
SAU 50.0 3.4813867e7 15.322 49045.411 17.72 10272.429661433474 357623.0
KOR 45.83 5.1269183e7 527.967 35938.374 6.8 685.8506015202154 35163.0
CHN 81.94 1.439323774e9 147.674 15308.712 9.74 64.60881261035851 92993.0
MYS 80.09 3.2365998e7 96.254 26808.164 16.74 2075.2951909593517 67169.0
BRN 35.19 437483.0 81.347 71809.251 12.79 345.156268929307 151.0
ARE 45.37 9890400.0 112.442 67293.483 17.26 17203.44980991669 170149.0
MNG 85.19 3278292.0 1.98 11840.846 4.82 247.6899556232331 812.0
MYS 80.09 3.2365998e7 96.254 26808.164 16.74 2075.2951909593517 67169.0
SGP 52.78 5850343.0 7915.731 85535.383 10.99 9952.920709093467 58228.0
AZE 69.91 1.0139175e7 119.309 15847.419 7.11 12387.792892419748 125602.0
TUR 62.5 8.4339067e7 104.914 25129.341 12.13 7931.75717725215 668957.0
OMN 37.04 5106622.0 14.98 37960.709 12.61 24264.180900799 123908.0
KGZ 56.02 6524191.0 32.333 3393.474 7.11 11216.409820006802 73178.0
UZB 39.81 3.3469199e7 76.134 6253.104 7.57 2189.356249607288 73276.0
LBN 87.04 6825442.0 594.561 13367.565 12.71 18966.537258685956 129455.0
BGD 80.09 1.64689383e8 1265.036 3523.984 8.38 2837.007410489843 467225.0
QAT 64.81 2881060.0 227.322 116935.6 16.52 48246.4787265798 139001.0
BHR 58.33 1701583.0 1935.907 43290.705 16.52 51209.373859517866 87137.0
JPN 40.74 1.26476458e8 347.778 39002.223 5.72 1193.7083184287148 150976.0
MMR 79.63 5.4409794e7 81.721 5591.597 4.61 1694.3456907776567 92189.0
VNM 43.06 9.7338583e7 308.127 6171.884 6.0 13.879388402438527 1351.0
IDN 50.46 2.73523621e8 145.725 11188.744 6.32 1988.7679097374921 543975.0
NPL 60.19 2.9136808e7 204.43 2442.804 7.26 8012.270939218874 233452.0
NPL 60.19 2.9136808e7 204.43 2442.804 7.26 8012.270939218874 233452.0
KHM 42.59 1.6718971e7 90.672 3645.07 4.0 19.678244552251453 329.0
KWT 62.96 4270563.0 232.128 65530.537 15.84 33483.173061725116 142992.0
KAZ 71.76 1.8776707e7 6.681 24055.588 7.11 9350.148564388846 175565.0
GEO 84.26 3989175.0 65.032 9745.079 7.11 34930.280070440625 139343.0
PAK 64.35 2.20892331e8 255.573 5034.708 8.35 1825.826175920974 403311.0
KWT 62.96 4270563.0 232.128 65530.537 15.84 33483.173061725116 142992.0
SWE 53.7 1.009927e7 24.718 46949.283 4.79 25819.489923529127 260758.0
FIN 42.13 5540718.0 18.136 40585.721 5.76 4595.433299438809 25462.0
FRA 75.0 6.5273512e7 122.578 38605.671 4.77 34978.53769535183 2283172.0
GRC 78.7 1.0423056e7 83.479 24574.382 4.55 10310.795605434721 107470.0
CYP 65.74 875899.0 127.657 32415.132 9.24 12424.94853858721 10883.0
BEL 63.89 1.1589616e7 375.564 42658.576 4.29 49976.806824315834 579212.0
BEL 63.89 1.1589616e7 375.564 42658.576 4.29 49976.806824315834 579212.0
ITA 79.63 6.0461828e7 205.859 35220.084 4.78 26808.666783941764 1620901.0
ESP 71.3 4.6754783e7 93.105 34272.36 7.17 35428.33254086539 1656444.0
LTU 62.96 2722291.0 45.135 29524.265 3.67 22964.113682189007 62515.0
AUT 82.41 9006400.0 106.749 45436.686 6.35 31698.458873689822 285489.0
MLT 0.0 441539.0 1454.037 36513.323 8.83 22591.435864102605 9975.0
ALB 65.74 2877800.0 104.871 11803.431 10.08 13556.883730627562 39014.0
IRL 81.48 4937796.0 69.874 67335.293 3.28 14743.014899764996 72798.0
IRL 81.48 4937796.0 69.874 67335.293 3.28 14743.014899764996 72798.0
FIN 42.13 5540718.0 18.136 40585.721 5.76 4595.433299438809 25462.0
GRC 78.7 1.0423056e7 83.479 24574.382 4.55 10310.795605434721 107470.0
ISL 52.78 341250.0 3.404 46482.958 5.31 15862.27106227106 5413.0
RUS 55.09 1.4593446e8 8.823 24765.954 6.18 15774.629241099052 2302062.0
NOR 49.07 5421242.0 14.462 64800.057 5.31 6749.560340600918 36591.0
NOR 49.07 5421242.0 14.462 64800.057 5.31 6749.560340600918 36591.0
CZE 69.44 1.0708982e7 137.176 32605.906 6.82 49348.66824876538 528474.0
BLR 22.22 9449321.0 46.858 17167.967 5.18 14627.400212142225 138219.0
HRV 44.44 4105268.0 73.726 22669.797 5.59 31993.526366609924 131342.0
SVN 68.52 2078932.0 102.619 31400.84 7.25 37103.18567418271 77135.0
SVN 68.52 2078932.0 102.619 31400.84 7.25 37103.18567418271 77135.0
LUX 60.19 625976.0 231.447 94277.965 4.42 56118.764936674896 35129.0
UKR 61.57 4.3733759e7 77.39 7894.393 7.11 17494.883071907905 765117.0
PRT 62.5 1.0196707e7 112.371 27936.896 9.85 29466.57190404706 300462.0
SVK 58.33 5459643.0 113.128 30155.152 7.29 19631.869702835884 107183.0
ROU 76.85 1.9237682e7 85.129 23313.199 9.74 24932.005841452206 479634.0
DEU 64.81 8.3783945e7 237.016 45229.245 8.31 13065.486472378449 1094678.0
BIH 48.15 3280815.0 68.496 11713.895 10.08 27153.31403934693 89085.0
DNK 45.37 5792203.0 136.52 46682.515 6.41 14238.1059503612 82470.0
DNK 45.37 5792203.0 136.52 46682.515 6.41 14238.1059503612 82470.0
NLD 56.48 1.7134873e7 508.544 48472.545 5.29 31288.764147828817 536129.0
EST 37.96 1326539.0 31.033 29481.252 4.02 9420.755816451683 12497.0
EST 37.96 1326539.0 31.033 29481.252 4.02 9420.755816451683 12497.0
HUN 72.22 9660350.0 108.043 26777.561 7.55 22884.574575455343 221073.0
MDA 48.15 4033963.0 123.655 5189.972 5.72 26986.613412170613 108863.0
GBR 63.89 6.7886004e7 272.898 39753.244 4.28 24264.648129826583 1647230.0
ISL 52.78 341250.0 3.404 46482.958 5.31 15862.27106227106 5413.0
CHE 49.07 8654618.0 214.243 57410.166 5.59 38230.91903074174 330874.0
CHE 49.07 8654618.0 214.243 57410.166 5.59 38230.91903074174 330874.0
CZE 69.44 1.0708982e7 137.176 32605.906 6.82 49348.66824876538 528474.0
LVA 57.41 1886202.0 31.212 25063.846 4.91 9377.0444522909 17687.0
LUX 60.19 625976.0 231.447 94277.965 4.42 56118.764936674896 35129.0
POL 71.3 3.7846605e7 124.027 27216.445 5.91 26420.441146570476 999924.0
PRT 62.5 1.0196707e7 112.371 27936.896 9.85 29466.57190404706 300462.0
LTU 62.96 2722291.0 45.135 29524.265 3.67 22964.113682189007 62515.0
BGR 57.41 6948445.0 65.18 18563.307 5.81 21411.26539822939 148775.0
MNE 0.0 628062.0 46.28 16409.288 10.08 57078.75974028042 35849.0
GBR 63.89 6.7886004e7 272.898 39753.244 4.28 24264.648129826583 1647230.0
BHS 0.0 393248.0 39.497 27717.847 13.17 19181.28000650989 7543.0
USA 75.46 3.31002647e8 35.608 54225.446 10.79 41455.43283223351 1.3721858e7
PAN 58.33 4314768.0 55.133 22267.037 8.33 38776.360629354815 167311.0
DOM 64.81 1.0847904e7 222.873 14600.861 8.2 13302.293235633353 144302.0
BRB 40.74 287371.0 664.463 16978.068 13.57 967.390585688883 278.0
SLV 47.22 6486201.0 307.811 7292.458 8.87 6032.807185592922 39130.0
CRI 55.56 5094114.0 96.079 15524.995 8.78 27516.463118022093 140172.0
CAN 64.35 3.7742157e7 4.037 44017.591 7.37 10255.163741701355 387052.0
PAN 58.33 4314768.0 55.133 22267.037 8.33 38776.360629354815 167311.0
DOM 64.81 1.0847904e7 222.873 14600.861 8.2 13302.293235633353 144302.0
MEX 71.76 1.28932753e8 66.444 17336.469 13.06 8705.018499062066 1122362.0
HTI 47.22 1.1402533e7 398.448 1653.173 6.65 815.2574520064971 9296.0
JAM 67.59 2961161.0 266.879 8193.571 11.28 3650.5951550759987 10810.0
JAM 67.59 2961161.0 266.879 8193.571 11.28 3650.5951550759987 10810.0
NZL 22.22 4822233.0 18.206 36085.843 8.08 427.1879853171757 2060.0
FJI 49.07 896444.0 49.562 8702.975 14.49 46.851783268112676 42.0
AUS 47.22 2.5499881e7 3.202 44648.71 5.07 1095.0247179584878 27923.0
FJI 49.07 896444.0 49.562 8702.975 14.49 46.851783268112676 42.0
PRY 63.89 7132530.0 17.144 8827.01 8.27 11703.981616621311 83479.0
PRY 63.89 7132530.0 17.144 8827.01 8.27 11703.981616621311 83479.0
ARG 79.17 4.5195777e7 16.177 18933.907 5.5 31696.9879730135 1432570.0
ECU 52.78 1.764306e7 66.939 10581.936 5.55 10977.290787425763 193673.0
SUR 60.19 586634.0 3.612 13767.119 12.54 9066.982138778181 5319.0
ECU 52.78 1.764306e7 66.939 10581.936 5.55 10977.290787425763 193673.0
COL 65.74 5.0882884e7 44.223 13254.949 7.44 26036.10282781927 1324792.0
CHL 76.39 1.9116209e7 24.282 22767.037 8.46 28921.215498323963 552864.0
BRA 57.87 2.12559409e8 25.04 14103.452 8.11 30047.06792349051 6386787.0
URY 43.52 3473727.0 19.751 20551.409 6.93 1734.1604564780134 6024.0
import org.apache.spark.sql.functions._
import org.apache.spark.sql.expressions.Window
res32: Long = 159
df_filteredLocation: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [iso_code: string, continent: string ... 48 more fields]
df_fillContinentNull: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [iso_code: string, continent: string ... 48 more fields]
res15: df_filteredLocation.type = [iso_code: string, continent: string ... 48 more fields]
iso_code stringency_index population population_density gdp_per_capita diabetes_prevalence total_cases_per_million total_cases normal_stringency_index normal_population normal_population_density normal_gdp_per_capita normal_diabetes_prevalence log_total_cases_per_million
ERI 75.0 3546427.0 44.304 1510.459 6.05 162.69896433790967 577.0 0.861672794117647 2.3957935418198006e-3 5.3481591725592584e-3 6.5213690988990694e-3 -0.7602089009990918 5.0919016487339865
ZWE 69.44 1.4862927e7 42.729 1899.775 1.82 681.4942978593651 10129.0 0.7977941176470588 1.0258703502039418e-2 5.149138505874142e-3 9.872260623197862e-3 -0.9523069936421436 6.524287884057365
COM 0.0 869595.0 437.352 1413.89 11.88 704.9258562894221 613.0 0.0 5.358819972048937e-4 5.5014619489544205e-2 5.690187632917682e-3 -0.4954495912806539 6.558092628897888
ZWE 69.44 1.4862927e7 42.729 1899.775 1.82 681.4942978593651 10129.0 0.7977941176470588 1.0258703502039418e-2 5.149138505874142e-3 9.872260623197862e-3 -0.9523069936421436 6.524287884057365
LBR 57.41 5057677.0 49.127 752.788 2.42 315.36217121022156 1595.0 0.6595818014705882 3.445837519850278e-3 5.957604680763901e-3 0.0 -0.9250590372388737 5.753721728243157
TUN 68.52 1.1818618e7 74.228 10849.297 8.52 8187.843959420637 96769.0 0.7872242647058822 8.143462256240255e-3 9.129425477248399e-3 8.690191626623738e-2 -0.6480381471389646 9.010405889372016
UGA 45.37 4.5741e7 213.759 1697.707 2.5 459.8718873658206 21035.0 0.5212545955882353 3.1713350057430964e-2 2.6760887472956883e-2 8.133036063888693e-3 -0.9214259763851045 6.130947944966741
UGA 45.37 4.5741e7 213.759 1697.707 2.5 459.8718873658206 21035.0 0.5212545955882353 3.1713350057430964e-2 2.6760887472956883e-2 8.133036063888693e-3 -0.9214259763851045 6.130947944966741
GHA 38.89 3.1072945e7 126.719 4227.63 4.97 1662.764826443068 51667.0 0.44680606617647056 2.152171874416722e-2 1.5762310439133096e-2 2.990839987587837e-2 -0.8092552225249773 7.416237053945145
DZA 72.22 4.3851043e7 17.348 13913.839 6.73 1919.042153683779 84152.0 0.8297334558823529 3.040017357002878e-2 1.9419362575345115e-3 0.11327881270424062 -0.7293278837420527 7.559581462250953
ZMB 45.37 1.8383956e7 22.995 3689.251 3.94 960.8922040500967 17665.0 0.5212545955882353 1.2705178471713973e-2 2.655504324055685e-3 2.5274504459403168e-2 -0.856030881017257 6.867862232075263
ETH 51.85 1.14963583e8 104.957 1729.927 7.47 961.6436537124979 110554.0 0.595703125 7.981045935295776e-2 1.3012413456021043e-2 8.410357635344545e-3 -0.6957220708446867 6.868643959706125
TGO 49.07 8278737.0 143.366 1429.813 6.15 362.01174164609887 2997.0 0.5637637867647058 5.68388857419261e-3 1.7865864114248734e-2 5.827238886247649e-3 -0.7556675749318801 5.891676646786213
TGO 49.07 8278737.0 143.366 1429.813 6.15 362.01174164609887 2997.0 0.5637637867647058 5.68388857419261e-3 1.7865864114248734e-2 5.827238886247649e-3 -0.7556675749318801 5.891676646786213
MOZ 56.48 3.1255435e7 37.728 1136.103 3.3 504.5522482729803 15770.0 0.6488970588235293 2.164851611425872e-2 4.517200503275881e-3 3.2992401664370115e-3 -0.8850953678474115 6.223671398897003
MOZ 56.48 3.1255435e7 37.728 1136.103 3.3 504.5522482729803 15770.0 0.6488970588235293 2.164851611425872e-2 4.517200503275881e-3 3.2992401664370115e-3 -0.8850953678474115 6.223671398897003
SYC 31.48 98340.0 208.354 26382.287 10.55 1860.8907870652836 183.0 0.361672794117647 0.0 2.6077899089824788e-2 0.22059630472707098 -0.5558492279745686 7.528810569839765
GMB 36.11 2416664.0 207.566 1561.767 1.91 1548.829295259912 3743.0 0.41486672794117646 1.6108136677078762e-3 2.5978325575318203e-2 6.962983474698477e-3 -0.9482198001816531 7.34525463115484
KEN 62.96 5.37713e7 87.324 2993.028 2.92 1565.3145823143573 84169.0 0.723345588235294 3.729294850691195e-2 1.0784266525444128e-2 1.9282025985048457e-2 -0.9023524069028156 7.355842093837723
NER 24.07 2.4206636e7 16.955 926.0 2.42 65.51922373682986 1586.0 0.27653952205882354 1.675088240554259e-2 1.892275862609273e-3 1.4908573567663345e-3 -0.9250590372388737 4.182343591746147
CPV 71.3 555988.0 135.58 6222.554 2.42 19453.65727317856 10816.0 0.8191636029411764 3.1798215150219476e-4 1.6882007028019966e-2 4.707896035430782e-2 -0.9250590372388737 9.875790365981024
MWI 50.93 1.9129955e7 197.519 1095.042 3.94 315.1079027629704 6028.0 0.5851332720588235 1.3223512140906203e-2 2.4708763265359247e-2 2.9458230017706914e-3 -0.856030881017257 5.75291512862318
MAR 66.2 3.6910558e7 80.08 7485.013 7.14 9749.080466353285 359844.0 0.7605698529411764 2.5577798397912414e-2 9.86889782102065e-3 5.794510292968292e-2 -0.710708446866485 9.184928248401064
TZA 13.89 5.9734213e7 64.699 2683.304 5.75 8.52107987092757 509.0 0.15958180147058823 4.143608887890179e-2 7.925318853221437e-3 1.6616192763521682e-2 -0.7738328792007266 2.142543078223737
BWA 50.93 2351625.0 4.044 15807.374 4.81 4567.905171955563 10742.0 0.5851332720588235 1.5656233879479927e-3 2.6081184510354184e-4 0.1295767053735969 -0.8165213442325159 8.426809991916247
MAR 66.2 3.6910558e7 80.08 7485.013 7.14 9749.080466353285 359844.0 0.7605698529411764 2.5577798397912414e-2 9.86889782102065e-3 5.794510292968292e-2 -0.710708446866485 9.184928248401064
BFA 22.22 2.0903278e7 70.151 1703.102 2.42 140.21724248225564 2931.0 0.2552849264705882 1.4455649204431723e-2 8.61424626577207e-3 8.179471503926072e-3 -0.9250590372388737 4.943192951933301
ZAF 44.44 5.930869e7 46.754 12294.876 5.52 13358.902380072803 792299.0 0.5105698529411764 4.114042776150661e-2 5.65774687629166e-3 9.934419559409527e-2 -0.7842779291553134 9.499938286535372
DJI 37.96 988002.0 41.285 2705.406 6.05 5748.976216647335 5680.0 0.43612132352941174 6.181533337188092e-4 4.966671304164106e-3 1.6806427442985283e-2 -0.7602089009990918 8.656777068660016
EGY 60.19 1.02334403e8 97.999 10550.206 17.31 1136.4995210848106 116303.0 0.6915211397058822 7.103547546117088e-2 1.2133184377421022e-2 8.432760260614108e-2 -0.2488555858310626 7.03570822189771
SWZ 48.15 1160164.0 79.492 7738.975 3.94 5552.663244162032 6442.0 0.5531939338235293 7.377746216233141e-4 9.794596772124875e-3 6.013098564011344e-2 -0.856030881017257 8.622032955455639
BEN 40.74 1.2123198e7 99.11 2064.236 0.99 248.69675476718268 3015.0 0.4680606617647059 8.355089978211156e-3 1.2273572923889062e-2 1.1287797028014778e-2 -0.99 5.516234301939272
MUS 16.67 1271767.0 622.962 20292.745 22.02 397.08531515599947 505.0 0.19152113970588236 8.153184152247271e-4 7.846873119965488e-2 0.1681828547926693 -3.495912806539503e-2 5.984151157236849
MLI 34.26 2.0250834e7 15.196 2014.306 2.42 235.15080909754138 4762.0 0.3936121323529411 1.40023192502864e-2 1.670004527562214e-3 1.0858043270634558e-2 -0.9250590372388737 5.460227049157162
GEO 84.26 3989175.0 65.032 9745.079 7.11 34930.280070440625 139343.0 0.9680606617647058 2.703422902405434e-3 7.967397508463432e-3 7.739777377741554e-2 -0.7120708446866485 10.46110935581742
IND 68.98 1.380004385e9 450.419 6426.674 10.39 6883.6107357731335 9499413.0 0.7925091911764706 0.9587838099587115 5.666579603022637e-2 4.8835846734368936e-2 -0.5631153496821071 8.836898609505603
MYS 80.09 3.2365998e7 96.254 26808.164 16.74 2075.2951909593517 67169.0 0.9201516544117647 2.2420155479270107e-2 1.1912682114966721e-2 0.2242618813529836 -0.27474114441416897 7.637858683250006
CHN 81.94 1.439323774e9 147.674 15308.712 9.74 64.60881261035851 92993.0 0.9414062499999999 1.0 1.8410233023505543e-2 0.125284659145623 -0.5926339691189828 4.168350819601456
MNG 85.19 3278292.0 1.98 11840.846 4.82 247.6899556232331 812.0 0.9787454044117646 2.209488468503538e-3 0.0 9.543630257460113e-2 -0.8160672116257948 5.512177785100784
LKA 49.54 2.141325e7 341.955 11669.077 10.68 1145.6458034161094 24532.0 0.5691636029411764 1.4809987022505607e-2 4.29600324801728e-2 9.395786529938696e-2 -0.5499455040871934 7.0437237774393395
PHL 71.76 1.09581085e8 351.873 7599.188 7.07 3950.7274453433274 432925.0 0.8244485294117647 7.607060187625894e-2 4.4213294049812786e-2 5.89278214405759e-2 -0.7138873751135331 8.281655004317232
BGD 80.09 1.64689383e8 1265.036 3523.984 8.38 2837.007410489843 467225.0 0.9201516544117647 0.11436084932334513 0.1596026966226256 2.385203071173729e-2 -0.6543960036330608 7.950505046892096
QAT 64.81 2881060.0 227.322 116935.6 16.52 48246.4787265798 139001.0 0.7446001838235294 1.9334844523043635e-3 2.847473972835385e-2 1.0 -0.28473206176203447 10.784078124343976
JPN 40.74 1.26476458e8 347.778 39002.223 5.72 1193.7083184287148 150976.0 0.4680606617647059 8.78098142337304e-2 4.3695840316431485e-2 0.32921767292050047 -0.7751952770208901 7.084819974685839
PHL 71.76 1.09581085e8 351.873 7599.188 7.07 3950.7274453433274 432925.0 0.8244485294117647 7.607060187625894e-2 4.4213294049812786e-2 5.89278214405759e-2 -0.7138873751135331 8.281655004317232
OMN 37.04 5106622.0 14.98 37960.709 12.61 24264.180900799 123908.0 0.4255514705882353 3.47984539578391e-3 1.642710264702541e-3 0.3202532316053772 -0.46229791099000905 10.09675650486317
KAZ 71.76 1.8776707e7 6.681 24055.588 7.11 9350.148564388846 175565.0 0.8244485294117647 1.2978069007638173e-2 5.940293041820497e-4 0.2005701153110324 -0.7120708446866485 9.143147511395949
YEM 24.07 2.9825968e7 53.508 1479.147 5.35 73.6606436377857 2197.0 0.27653952205882354 2.0655296451632887e-2 6.511198039968658e-3 6.251862797054696e-3 -0.7919981834695731 4.29946864893402
KWT 62.96 4270563.0 232.128 65530.537 15.84 33483.173061725116 142992.0 0.723345588235294 2.8989364010919777e-3 2.9082037076981572e-2 0.5575501908147996 -0.31561307901907354 10.418798294955007
MYS 80.09 3.2365998e7 96.254 26808.164 16.74 2075.2951909593517 67169.0 0.9201516544117647 2.2420155479270107e-2 1.1912682114966721e-2 0.2242618813529836 -0.27474114441416897 7.637858683250006
IDN 50.46 2.73523621e8 145.725 11188.744 6.32 1988.7679097374921 543975.0 0.5797334558823529 0.18998085674464255 1.8163952846128213e-2 8.982357906778844e-2 -0.7479473206176204 7.59527058513627
ARM 0.0 2963234.0 102.931 8787.58 7.11 45884.665200250805 135967.0 0.0 1.9905804416182936e-3 1.2756403379383555e-2 6.915646007948231e-2 -0.7120708446866485 10.733886248729835
IND 68.98 1.380004385e9 450.419 6426.674 10.39 6883.6107357731335 9499413.0 0.7925091911764706 0.9587838099587115 5.666579603022637e-2 4.8835846734368936e-2 -0.5631153496821071 8.836898609505603
KOR 45.83 5.1269183e7 527.967 35938.374 6.8 685.8506015202154 35163.0 0.5265395220588235 3.555443212102101e-2 6.646494184616118e-2 0.3028467412202073 -0.7261489554950045 6.530659821967431
MMR 79.63 5.4409794e7 81.721 5591.597 4.61 1694.3456907776567 92189.0 0.9148667279411764 3.773658574741391e-2 1.0076258401357334e-2 4.164823450821623e-2 -0.8256039963669392 7.435051922148413
SAU 50.0 3.4813867e7 15.322 49045.411 17.72 10272.429661433474 357623.0 0.5744485294117647 2.4120979368406577e-2 1.6859261808970232e-3 0.4156606486680663 -0.23023614895549493 9.237218853465539
SAU 50.0 3.4813867e7 15.322 49045.411 17.72 10272.429661433474 357623.0 0.5744485294117647 2.4120979368406577e-2 1.6859261808970232e-3 0.4156606486680663 -0.23023614895549493 9.237218853465539
AZE 69.91 1.0139175e7 119.309 15847.419 7.11 12387.792892419748 125602.0 0.8031939338235293 6.9765547236708995e-3 1.482596558825265e-2 0.12992137769913847 -0.7120708446866485 9.424466822550025
SGP 52.78 5850343.0 7915.731 85535.383 10.99 9952.920709093467 58228.0 0.6063878676470588 3.9965962691568165e-3 1.0 0.7297344033986713 -0.5358673932788374 9.205621325680971
BRN 35.19 437483.0 81.347 71809.251 12.79 345.156268929307 151.0 0.40429687499999994 2.35642722806412e-4 1.002899889066512e-2 0.6115918678229272 -0.45412352406902823 5.843997267897207
ARE 45.37 9890400.0 112.442 67293.483 17.26 17203.44980991669 170149.0 0.5212545955882353 6.803701330364344e-3 1.3958235481505545e-2 0.5727240876214976 -0.2511262488646683 9.752865213033996
TUR 62.5 8.4339067e7 104.914 25129.341 12.13 7931.75717725215 668957.0 0.7180606617647058 5.853198881142063e-2 1.3006979875914721e-2 0.20981204173298887 -0.48409627611262485 8.978629876116653
TLS 27.78 1318442.0 87.176 6570.102 6.86 22.754129495267897 30.0 0.31916360294117646 8.477490538844938e-4 1.076556490089213e-2 5.00703494764785e-2 -0.7234241598546776 3.1247466452003856
IRN 70.83 8.3992953e7 49.831 19082.62 9.59 11619.439073656573 975951.0 0.8137637867647058 5.829150251106527e-2 6.046563759713947e-3 0.1577671575034696 -0.5994459582198002 9.36043475674992
KGZ 56.02 6524191.0 32.333 3393.474 7.11 11216.409820006802 73178.0 0.6436121323529411 4.4647981116765064e-3 3.8354757434243252e-3 2.2728714811963754e-2 -0.7120708446866485 9.325133147480487
UZB 39.81 3.3469199e7 76.134 6253.104 7.57 2189.356249607288 73276.0 0.4573759191176471 2.318667959282326e-2 9.370272074519402e-3 4.734190802680865e-2 -0.6911807447774749 7.691362829647781
LBN 87.04 6825442.0 594.561 13367.565 12.71 18966.537258685956 129455.0 1.0 4.674112783918464e-3 7.487991472059204e-2 0.1085769640349211 -0.45775658492279736 9.850431508506654
KHM 42.59 1.6718971e7 90.672 3645.07 4.0 19.678244552251453 329.0 0.4893152573529412 1.1548316620424595e-2 1.1207327599769059e-2 2.4894233064353788e-2 -0.8533060853769301 2.9795136880648694
NPL 60.19 2.9136808e7 204.43 2442.804 7.26 8012.270939218874 233452.0 0.6915211397058822 2.017645555310552e-2 2.558205331454073e-2 1.4546179171493973e-2 -0.705258855585831 8.98872951289128
NPL 60.19 2.9136808e7 204.43 2442.804 7.26 8012.270939218874 233452.0 0.6915211397058822 2.017645555310552e-2 2.558205331454073e-2 1.4546179171493973e-2 -0.705258855585831 8.98872951289128
BHR 58.33 1701583.0 1935.907 43290.705 16.52 51209.373859517866 87137.0 0.6701516544117646 1.113962387076603e-3 0.24437551800656854 0.3661291740812746 -0.28473206176203447 10.843677877463625
LAO 33.33 7275556.0 29.715 6397.36 4.0 5.360415066559861 39.0 0.3829273897058823 4.9868601752350635e-3 3.5046591685788443e-3 4.858353746851987e-2 -0.8533060853769301 1.6790414098755786
KAZ 71.76 1.8776707e7 6.681 24055.588 7.11 9350.148564388846 175565.0 0.8244485294117647 1.2978069007638173e-2 5.940293041820497e-4 0.2005701153110324 -0.7120708446866485 9.143147511395949
THA 50.0 6.9799978e7 135.132 16277.671 7.04 57.6791012742153 4026.0 0.5744485294117647 4.842996541985792e-2 1.6825396705051752e-2 0.13362461049746324 -0.7152497729336966 4.054894911617706
VNM 43.06 9.7338583e7 308.127 6171.884 6.0 13.879388402438527 1351.0 0.49471507352941174 6.756428888957502e-2 3.868544764676068e-2 4.6642837324336744e-2 -0.7624795640326976 2.6304048908829563
PAK 64.35 2.20892331e8 255.573 5034.708 8.35 1825.826175920974 403311.0 0.739315257352941 0.15341167949370746 3.204460185820858e-2 3.685502120571845e-2 -0.6557584014532243 7.509787862714033
ISR 65.74 8655541.0 402.606 33132.32 6.74 39064.80253516216 338127.0 0.7552849264705881 5.9456988445633595e-3 5.062403403897848e-2 0.2786946833409403 -0.7288737511353315 10.572977149641726
KWT 62.96 4270563.0 232.128 65530.537 15.84 33483.173061725116 142992.0 0.723345588235294 2.8989364010919777e-3 2.9082037076981572e-2 0.5575501908147996 -0.31561307901907354 10.418798294955007
BLR 22.22 9449321.0 46.858 17167.967 5.18 14627.400212142225 138219.0 0.2552849264705882 6.497231621325002e-3 5.67088855840928e-3 0.14128749956577052 -0.7997184377838329 9.590651775703877
GRC 78.7 1.0423056e7 83.479 24574.382 4.55 10310.795605434721 107470.0 0.9041819852941176 7.173800404085966e-3 1.0298403374076339e-2 0.20503544018197803 -0.8283287920072662 9.24094674235907
DEU 64.81 8.3783945e7 237.016 45229.245 8.31 13065.486472378449 1094678.0 0.7446001838235294 5.814627995241502e-2 2.9699696136509728e-2 0.3828144304167814 -0.657574931880109 9.477729412039812
SWE 53.7 1.009927e7 24.718 46949.283 4.79 25819.489923529127 260758.0 0.6169577205882353 6.948828004105436e-3 2.8732266152927985e-3 0.3976190126987114 -0.8174296094459582 10.158884909113675
CYP 65.74 875899.0 127.657 32415.132 9.24 12424.94853858721 10883.0 0.7552849264705881 5.402621310262364e-4 1.588083830284779e-2 0.2725217564883866 -0.6153405994550409 9.427461709192647
FRA 75.0 6.5273512e7 122.578 38605.671 4.77 34978.53769535183 2283172.0 0.861672794117647 4.52848945414065e-2 1.5239044038661312e-2 0.3258045002388133 -0.8183378746594006 10.462489943677964
CHE 49.07 8654618.0 214.243 57410.166 5.59 38230.91903074174 330874.0 0.5637637867647058 5.945057527381079e-3 2.6822046839735037e-2 0.48765714157443524 -0.7810990009082652 10.551399865918693
HRV 44.44 4105268.0 73.726 22669.797 5.59 31993.526366609924 131342.0 0.5105698529411764 2.784086429645462e-3 9.06599158856527e-3 0.18864243878001505 -0.7810990009082652 10.373288860272808
DNK 45.37 5792203.0 136.52 46682.515 6.41 14238.1059503612 82470.0 0.5212545955882353 3.956199540036755e-3 1.7000787616390765e-2 0.39532290714395857 -0.7438601271571299 9.563677167015623
FIN 42.13 5540718.0 18.136 40585.721 5.76 4595.433299438809 25462.0 0.4840303308823529 3.781463189456114e-3 2.0415097720410964e-3 0.34284703833816654 -0.7733787465940054 8.43281832837204
GRC 78.7 1.0423056e7 83.479 24574.382 4.55 10310.795605434721 107470.0 0.9041819852941176 7.173800404085966e-3 1.0298403374076339e-2 0.20503544018197803 -0.8283287920072662 9.24094674235907
BEL 63.89 1.1589616e7 375.564 42658.576 4.29 49976.806824315834 579212.0 0.7340303308823529 7.984347502852705e-3 4.720694396374109e-2 0.36068836068453913 -0.8401362397820163 10.819314313278639
BEL 63.89 1.1589616e7 375.564 42658.576 4.29 49976.806824315834 579212.0 0.7340303308823529 7.984347502852705e-3 4.720694396374109e-2 0.36068836068453913 -0.8401362397820163 10.819314313278639
MLT 0.0 441539.0 1454.037 36513.323 8.83 22591.435864102605 9975.0 0.0 2.3846090535390024e-4 0.18348530298716753 0.30779539920242244 -0.6339600363306086 10.025326169376674
ISL 52.78 341250.0 3.404 46482.958 5.31 15862.27106227106 5413.0 0.6063878676470588 1.687782846672511e-4 1.7993995514895526e-4 0.3936052950758327 -0.7938147138964577 9.671698679279945
EST 37.96 1326539.0 31.033 29481.252 4.02 9420.755816451683 12497.0 0.43612132352941174 8.533749967067355e-4 3.6712047169540716e-3 0.24726948423317555 -0.8523978201634878 9.15067059964384
MNE 0.0 628062.0 46.28 16409.288 10.08 57078.75974028042 35849.0 0.0 3.6806047717469675e-4 5.597851132794045e-3 0.1347574544847477 -0.5771934604904632 10.952187342908323
SVK 58.33 5459643.0 113.128 30155.152 7.29 19631.869702835884 107183.0 0.6701516544117646 3.7251308053245537e-3 1.4044920038550618e-2 0.2530698258534145 -0.7038964577656676 9.884909529950056
CHE 49.07 8654618.0 214.243 57410.166 5.59 38230.91903074174 330874.0 0.5637637867647058 5.945057527381079e-3 2.6822046839735037e-2 0.48765714157443524 -0.7810990009082652 10.551399865918693
ITA 79.63 6.0461828e7 205.859 35220.084 4.78 26808.666783941764 1620901.0 0.9148667279411764 4.194164901063026e-2 2.5762625081329954e-2 0.2966643293157683 -0.8178837420526793 10.196480501681007
LTU 62.96 2722291.0 45.135 29524.265 3.67 22964.113682189007 62515.0 0.723345588235294 1.823168864315665e-3 5.453166267172167e-3 0.24763970250608153 -0.8682924613987284 10.041688001727678
LTU 62.96 2722291.0 45.135 29524.265 3.67 22964.113682189007 62515.0 0.723345588235294 1.823168864315665e-3 5.453166267172167e-3 0.24763970250608153 -0.8682924613987284 10.041688001727678
NOR 49.07 5421242.0 14.462 64800.057 5.31 6749.560340600918 36591.0 0.5637637867647058 3.698449092305299e-3 1.5772545787705475e-3 0.551262858055114 -0.7938147138964577 8.817232647019427
NOR 49.07 5421242.0 14.462 64800.057 5.31 6749.560340600918 36591.0 0.5637637867647058 3.698449092305299e-3 1.5772545787705475e-3 0.551262858055114 -0.7938147138964577 8.817232647019427
SVN 68.52 2078932.0 102.619 31400.84 7.25 37103.18567418271 77135.0 0.7872242647058822 1.3761513333567172e-3 1.2716978333030695e-2 0.2637916183333555 -0.7057129881925522 10.521458112137791
LUX 60.19 625976.0 231.447 94277.965 4.42 56118.764936674896 35129.0 0.6915211397058822 3.666110864463781e-4 2.8995984331576772e-2 0.8049829005688035 -0.8342325158946412 10.935225526431015
DNK 45.37 5792203.0 136.52 46682.515 6.41 14238.1059503612 82470.0 0.5212545955882353 3.956199540036755e-3 1.7000787616390765e-2 0.39532290714395857 -0.7438601271571299 9.563677167015623
PRT 62.5 1.0196707e7 112.371 27936.896 9.85 29466.57190404706 300462.0 0.7180606617647058 7.01652900333611e-3 1.3949263756213708e-2 0.23397701890706518 -0.5876385104450499 10.291011744026449
FIN 42.13 5540718.0 18.136 40585.721 5.76 4595.433299438809 25462.0 0.4840303308823529 3.781463189456114e-3 2.0415097720410964e-3 0.34284703833816654 -0.7733787465940054 8.43281832837204
BIH 48.15 3280815.0 68.496 11713.895 10.08 27153.31403934693 89085.0 0.5531939338235293 2.2112414947775307e-3 8.405116612842631e-3 9.434361943313956e-2 -0.5771934604904632 10.209254381977214
ESP 71.3 4.6754783e7 93.105 34272.36 7.17 35428.33254086539 1656444.0 0.8191636029411764 3.241774491875746e-2 1.1514767143924543e-2 0.28850715026591023 -0.7093460490463215 10.475267133270918
IRL 81.48 4937796.0 69.874 67335.293 3.28 14743.014899764996 72798.0 0.9361213235294118 3.3625420213356234e-3 8.5792439009011e-3 0.573083951522881 -0.8860036330608537 9.598524683482491
UKR 61.57 4.3733759e7 77.39 7894.393 7.11 17494.883071907905 765117.0 0.707375919117647 3.031868251433361e-2 9.528983158555278e-3 6.146868781244509e-2 -0.7120708446866485 9.769663721264616
ALB 65.74 2877800.0 104.871 11803.431 10.08 13556.883730627562 39014.0 0.7552849264705881 1.9312193450300018e-3 1.3001546295808396e-2 9.511426698813245e-2 -0.5771934604904632 9.514649721707698
HUN 72.22 9660350.0 108.043 26777.561 7.55 22884.574575455343 221073.0 0.8297334558823529 6.643858407521723e-3 1.3402367600395816e-2 0.2239984775028513 -0.6920890099909174 10.038218363247282
ISL 52.78 341250.0 3.404 46482.958 5.31 15862.27106227106 5413.0 0.6063878676470588 1.687782846672511e-4 1.7993995514895526e-4 0.3936052950758327 -0.7938147138964577 9.671698679279945
MDA 48.15 4033963.0 123.655 5189.972 5.72 26986.613412170613 108863.0 0.5531939338235293 2.7345424191551632e-3 1.5375136265975515e-2 3.8191397880781186e-2 -0.7751952770208901 10.203096222487993
GBR 63.89 6.7886004e7 272.898 39753.244 4.28 24264.648129826583 1647230.0 0.7340303308823529 4.7100101484170966e-2 3.423382919174485e-2 0.33568180463733305 -0.8405903723887375 10.096775760593708
EST 37.96 1326539.0 31.033 29481.252 4.02 9420.755816451683 12497.0 0.43612132352941174 8.533749967067355e-4 3.6712047169540716e-3 0.24726948423317555 -0.8523978201634878 9.15067059964384
LVA 57.41 1886202.0 31.212 25063.846 4.91 9377.0444522909 17687.0 0.6595818014705882 1.242239025078263e-3 3.6938235736757447e-3 0.20924831807307262 -0.8119800181653043 9.146019901974764
CZE 69.44 1.0708982e7 137.176 32605.906 6.82 49348.66824876538 528474.0 0.7977941176470588 7.372466987683877e-3 1.7083681303594212e-2 0.27416377217655913 -0.7252406902815622 10.806666058656884
CZE 69.44 1.0708982e7 137.176 32605.906 6.82 49348.66824876538 528474.0 0.7977941176470588 7.372466987683877e-3 1.7083681303594212e-2 0.27416377217655913 -0.7252406902815622 10.806666058656884
SVN 68.52 2078932.0 102.619 31400.84 7.25 37103.18567418271 77135.0 0.7872242647058822 1.3761513333567172e-3 1.2716978333030695e-2 0.2637916183333555 -0.7057129881925522 10.521458112137791
LUX 60.19 625976.0 231.447 94277.965 4.42 56118.764936674896 35129.0 0.6915211397058822 3.666110864463781e-4 2.8995984331576772e-2 0.8049829005688035 -0.8342325158946412 10.935225526431015
POL 71.3 3.7846605e7 124.027 27216.445 5.91 26420.441146570476 999924.0 0.8191636029411764 2.622818087301812e-2 1.5422143052011618e-2 0.22777600700523584 -0.766566757493188 10.1818932753847
RUS 55.09 1.4593446e8 8.823 24765.954 6.18 15774.629241099052 2302062.0 0.6329273897058824 0.1013295878149413 8.646974108738069e-4 0.20668432435599854 -0.7543051771117166 9.666158184191792
PRT 62.5 1.0196707e7 112.371 27936.896 9.85 29466.57190404706 300462.0 0.7180606617647058 7.01652900333611e-3 1.3949263756213708e-2 0.23397701890706518 -0.5876385104450499 10.291011744026449
ROU 76.85 1.9237682e7 85.129 23313.199 9.74 24932.005841452206 479634.0 0.8829273897058822 1.3298362819232946e-2 1.0506901215365507e-2 0.1941802802982596 -0.5926339691189828 10.123907632224086
IRL 81.48 4937796.0 69.874 67335.293 3.28 14743.014899764996 72798.0 0.9361213235294118 3.3625420213356234e-3 8.5792439009011e-3 0.573083951522881 -0.8860036330608537 9.598524683482491
BGR 57.41 6948445.0 65.18 18563.307 5.81 21411.26539822939 148775.0 0.6595818014705882 4.75957750479832e-3 7.986099133015432e-3 0.15329736553458526 -0.7711080835603996 9.971672482977299
AUT 82.41 9006400.0 106.749 45436.686 6.35 31698.458873689822 285489.0 0.9468060661764705 6.189482057193828e-3 1.3238854747893885e-2 0.3845999010593753 -0.7465849227974568 10.364023342711647
NLD 56.48 1.7134873e7 508.544 48472.545 5.29 31288.764147828817 536129.0 0.6488970588235293 1.1837292892087676e-2 6.401060634836754e-2 0.4107299193274819 -0.7947229791099001 10.351014339169227
GBR 63.89 6.7886004e7 272.898 39753.244 4.28 24264.648129826583 1647230.0 0.7340303308823529 4.7100101484170966e-2 3.423382919174485e-2 0.33568180463733305 -0.8405903723887375 10.096775760593708
USA 75.46 3.31002647e8 35.608 54225.446 10.79 41455.43283223351 1.3721858e7 0.8669577205882352 0.22991832911146287 4.249312367801312e-3 0.46024585805342705 -0.5449500454132608 10.632374221509767
BHS 0.0 393248.0 39.497 27717.847 13.17 19181.28000650989 7543.0 0.0 2.0490744051150504e-4 4.74073546160348e-3 0.23209163675604616 -0.436866485013624 9.861690082733581
JAM 67.59 2961161.0 266.879 8193.571 11.28 3650.5951550759987 10810.0 0.7765395220588235 1.989140083526345e-3 3.3473254339187575e-2 6.404375029242707e-2 -0.5226975476839237 8.202645489469527
PAN 58.33 4314768.0 55.133 22267.037 8.33 38776.360629354815 167311.0 0.6701516544117646 2.9296508388414154e-3 6.716536823056475e-3 0.18517583306556565 -0.6566666666666667 10.565566077805743
HTI 47.22 1.1402533e7 398.448 1653.173 6.65 815.2574520064971 9296.0 0.5425091911764706 7.854358832849809e-3 5.009861947892977e-2 7.749726353670971e-3 -0.732960944595822 6.7035039553899916
MEX 71.76 1.28932753e8 66.444 17336.469 13.06 8705.018499062066 1122362.0 0.8244485294117647 8.951649266087108e-2 8.145821115675739e-3 0.1427378173632086 -0.4418619436875567 9.071654977307679
JAM 67.59 2961161.0 266.879 8193.571 11.28 3650.5951550759987 10810.0 0.7765395220588235 1.989140083526345e-3 3.3473254339187575e-2 6.404375029242707e-2 -0.5226975476839237 8.202645489469527
CAN 64.35 3.7742157e7 4.037 44017.591 7.37 10255.163741701355 387052.0 0.739315257352941 2.6155608503511202e-2 2.599273088071636e-4 0.372385572833269 -0.7002633969118983 9.235536637390355
PAN 58.33 4314768.0 55.133 22267.037 8.33 38776.360629354815 167311.0 0.6701516544117646 2.9296508388414154e-3 6.716536823056475e-3 0.18517583306556565 -0.6566666666666667 10.565566077805743
SLV 47.22 6486201.0 307.811 7292.458 8.87 6032.807185592922 39130.0 0.5425091911764706 4.438401968930185e-3 3.86455171510956e-2 5.628775795166672e-2 -0.6321435059037239 8.70496771797527
CRI 55.56 5094114.0 96.079 15524.995 8.78 27516.463118022093 140172.0 0.6383272058823529 3.471154609959457e-3 1.1890568707557262e-2 0.12714623398855246 -0.6362306993642144 10.222539763367115
DOM 64.81 1.0847904e7 222.873 14600.861 8.2 13302.293235633353 144302.0 0.7446001838235294 7.468992519208078e-3 2.791255373084142e-2 0.11919209702034067 -0.6625703905540419 9.495691723078412
BRB 40.74 287371.0 664.463 16978.068 13.57 967.390585688883 278.0 0.4680606617647059 1.3134217582205402e-4 8.371289417622566e-2 0.13965301511208042 -0.41870118074477747 6.874602328781559
DOM 64.81 1.0847904e7 222.873 14600.861 8.2 13302.293235633353 144302.0 0.7446001838235294 7.468992519208078e-3 2.791255373084142e-2 0.11919209702034067 -0.6625703905540419 9.495691723078412
NZL 22.22 4822233.0 18.206 36085.843 8.08 427.1879853171757 2060.0 0.2552849264705882 3.282246747732225e-3 2.0503551350048795e-3 0.30411602535493804 -0.6680199818346957 6.057224162992943
AUS 47.22 2.5499881e7 3.202 44648.71 5.07 1095.0247179584878 27923.0 0.5425091911764706 1.7649452545736487e-2 1.5441476488203885e-4 0.37781769303363044 -0.8047138964577656 6.998532215473896
FJI 49.07 896444.0 49.562 8702.975 14.49 46.851783268112676 42.0 0.5637637867647058 5.545371705819923e-4 6.012572293467409e-3 6.842825425846982e-2 -0.37692098092643045 3.846989071313566
FJI 49.07 896444.0 49.562 8702.975 14.49 46.851783268112676 42.0 0.5637637867647058 5.545371705819923e-4 6.012572293467409e-3 6.842825425846982e-2 -0.37692098092643045 3.846989071313566
PRY 63.89 7132530.0 17.144 8827.01 8.27 11703.981616621311 83479.0 0.7340303308823529 4.8874831098906215e-3 1.916158342611487e-3 6.94958390230734e-2 -0.6593914623069936 9.367684372006767
PRY 63.89 7132530.0 17.144 8827.01 8.27 11703.981616621311 83479.0 0.7340303308823529 4.8874831098906215e-3 1.916158342611487e-3 6.94958390230734e-2 -0.6593914623069936 9.367684372006767
ARG 79.17 4.5195777e7 16.177 18933.907 5.5 31696.9879730135 1432570.0 0.9095818014705882 3.1334519203612125e-2 1.7939659713832289e-3 0.15648716610508617 -0.7851861943687557 10.363976938726827
COL 65.74 5.0882884e7 44.223 13254.949 7.44 26036.10282781927 1324792.0 0.7552849264705881 3.528602455200913e-2 5.337923823986881e-3 0.10760766403209451 -0.6970844686648501 10.16723942413214
URY 43.52 3473727.0 19.751 20551.409 6.93 1734.1604564780134 6024.0 0.5 2.345280259965167e-3 2.2455849318483738e-3 0.17040920820542713 -0.7202452316076294 7.458278688513794
CHL 76.39 1.9116209e7 24.282 22767.037 8.46 28921.215498323963 552864.0 0.877642463235294 1.3213961170172038e-2 2.8181326402612365e-3 0.18947939562695382 -0.6507629427792916 10.27233070506873
ECU 52.78 1.764306e7 66.939 10581.936 5.55 10977.290787425763 193673.0 0.6063878676470588 1.219039045970612e-2 8.20837046806249e-3 8.460070668628678e-2 -0.7829155313351499 9.303583943946428
SUR 60.19 586634.0 3.612 13767.119 12.54 9066.982138778181 5319.0 0.6915211397058822 3.3927554951756084e-4 2.0622331938419594e-4 0.11201597530622688 -0.4654768392370573 9.112394757728838
ECU 52.78 1.764306e7 66.939 10581.936 5.55 10977.290787425763 193673.0 0.6063878676470588 1.219039045970612e-2 8.20837046806249e-3 8.460070668628678e-2 -0.7829155313351499 9.303583943946428
BRA 57.87 2.12559409e8 25.04 14103.452 8.11 30047.06792349051 6386787.0 0.6648667279411764 0.14762181377625655 2.9139152849262e-3 0.1149108355201456 -0.6666575840145323 10.310520361941226
root
 |-- iso_code: string (nullable = true)
 |-- stringency_index: double (nullable = false)
 |-- population: double (nullable = true)
 |-- population_density: double (nullable = true)
 |-- gdp_per_capita: double (nullable = true)
 |-- diabetes_prevalence: double (nullable = true)
 |-- total_cases_per_million: double (nullable = true)
 |-- total_cases: double (nullable = false)
 |-- normal_stringency_index: double (nullable = true)
 |-- normal_population: double (nullable = true)
 |-- normal_population_density: double (nullable = true)
 |-- normal_gdp_per_capita: double (nullable = true)
 |-- normal_diabetes_prevalence: double (nullable = true)
 |-- log_total_cases_per_million: double (nullable = true)
df_by_location_normalized_selected: org.apache.spark.sql.DataFrame = [normal_stringency_index: double, normal_population: double ... 4 more fields]
normal_stringency_index normal_population normal_population_density normal_gdp_per_capita normal_diabetes_prevalence log_total_cases_per_million
0.4680606617647059 8.355089978211156e-3 1.2273572923889062e-2 1.1287797028014778e-2 -0.99 5.516234301939272
0.43612132352941174 6.181533337188092e-4 4.966671304164106e-3 1.6806427442985283e-2 -0.7602089009990918 8.656777068660016
0.7605698529411764 2.5577798397912414e-2 9.86889782102065e-3 5.794510292968292e-2 -0.710708446866485 9.184928248401064
0.7977941176470588 1.0258703502039418e-2 5.149138505874142e-3 9.872260623197862e-3 -0.9523069936421436 6.524287884057365
0.7977941176470588 1.0258703502039418e-2 5.149138505874142e-3 9.872260623197862e-3 -0.9523069936421436 6.524287884057365
0.6595818014705882 3.445837519850278e-3 5.957604680763901e-3 0.0 -0.9250590372388737 5.753721728243157
0.7872242647058822 8.143462256240255e-3 9.129425477248399e-3 8.690191626623738e-2 -0.6480381471389646 9.010405889372016
0.0 5.358819972048937e-4 5.5014619489544205e-2 5.690187632917682e-3 -0.4954495912806539 6.558092628897888
0.5212545955882353 3.1713350057430964e-2 2.6760887472956883e-2 8.133036063888693e-3 -0.9214259763851045 6.130947944966741
0.5212545955882353 3.1713350057430964e-2 2.6760887472956883e-2 8.133036063888693e-3 -0.9214259763851045 6.130947944966741
0.8297334558823529 3.040017357002878e-2 1.9419362575345115e-3 0.11327881270424062 -0.7293278837420527 7.559581462250953
0.5637637867647058 5.68388857419261e-3 1.7865864114248734e-2 5.827238886247649e-3 -0.7556675749318801 5.891676646786213
0.595703125 7.981045935295776e-2 1.3012413456021043e-2 8.410357635344545e-3 -0.6957220708446867 6.868643959706125
0.5637637867647058 5.68388857419261e-3 1.7865864114248734e-2 5.827238886247649e-3 -0.7556675749318801 5.891676646786213
0.6488970588235293 2.164851611425872e-2 4.517200503275881e-3 3.2992401664370115e-3 -0.8850953678474115 6.223671398897003
0.6488970588235293 2.164851611425872e-2 4.517200503275881e-3 3.2992401664370115e-3 -0.8850953678474115 6.223671398897003
0.5212545955882353 1.2705178471713973e-2 2.655504324055685e-3 2.5274504459403168e-2 -0.856030881017257 6.867862232075263
0.41486672794117646 1.6108136677078762e-3 2.5978325575318203e-2 6.962983474698477e-3 -0.9482198001816531 7.34525463115484
0.723345588235294 3.729294850691195e-2 1.0784266525444128e-2 1.9282025985048457e-2 -0.9023524069028156 7.355842093837723
0.8191636029411764 3.1798215150219476e-4 1.6882007028019966e-2 4.707896035430782e-2 -0.9250590372388737 9.875790365981024
0.361672794117647 0.0 2.6077899089824788e-2 0.22059630472707098 -0.5558492279745686 7.528810569839765
0.27653952205882354 1.675088240554259e-2 1.892275862609273e-3 1.4908573567663345e-3 -0.9250590372388737 4.182343591746147
0.15958180147058823 4.143608887890179e-2 7.925318853221437e-3 1.6616192763521682e-2 -0.7738328792007266 2.142543078223737
0.5851332720588235 1.5656233879479927e-3 2.6081184510354184e-4 0.1295767053735969 -0.8165213442325159 8.426809991916247
0.7605698529411764 2.5577798397912414e-2 9.86889782102065e-3 5.794510292968292e-2 -0.710708446866485 9.184928248401064
0.2552849264705882 1.4455649204431723e-2 8.61424626577207e-3 8.179471503926072e-3 -0.9250590372388737 4.943192951933301
0.5105698529411764 4.114042776150661e-2 5.65774687629166e-3 9.934419559409527e-2 -0.7842779291553134 9.499938286535372
0.44680606617647056 2.152171874416722e-2 1.5762310439133096e-2 2.990839987587837e-2 -0.8092552225249773 7.416237053945145
0.5851332720588235 1.3223512140906203e-2 2.4708763265359247e-2 2.9458230017706914e-3 -0.856030881017257 5.75291512862318
0.6915211397058822 7.103547546117088e-2 1.2133184377421022e-2 8.432760260614108e-2 -0.2488555858310626 7.03570822189771
0.5531939338235293 7.377746216233141e-4 9.794596772124875e-3 6.013098564011344e-2 -0.856030881017257 8.622032955455639
0.19152113970588236 8.153184152247271e-4 7.846873119965488e-2 0.1681828547926693 -3.495912806539503e-2 5.984151157236849
0.861672794117647 2.3957935418198006e-3 5.3481591725592584e-3 6.5213690988990694e-3 -0.7602089009990918 5.0919016487339865
0.3936121323529411 1.40023192502864e-2 1.670004527562214e-3 1.0858043270634558e-2 -0.9250590372388737 5.460227049157162
0.8244485294117647 7.607060187625894e-2 4.4213294049812786e-2 5.89278214405759e-2 -0.7138873751135331 8.281655004317232
0.723345588235294 2.8989364010919777e-3 2.9082037076981572e-2 0.5575501908147996 -0.31561307901907354 10.418798294955007
0.723345588235294 2.8989364010919777e-3 2.9082037076981572e-2 0.5575501908147996 -0.31561307901907354 10.418798294955007
0.5691636029411764 1.4809987022505607e-2 4.29600324801728e-2 9.395786529938696e-2 -0.5499455040871934 7.0437237774393395
0.7925091911764706 0.9587838099587115 5.666579603022637e-2 4.8835846734368936e-2 -0.5631153496821071 8.836898609505603
0.5212545955882353 6.803701330364344e-3 1.3958235481505545e-2 0.5727240876214976 -0.2511262488646683 9.752865213033996
0.6063878676470588 3.9965962691568165e-3 1.0 0.7297344033986713 -0.5358673932788374 9.205621325680971
0.9201516544117647 0.11436084932334513 0.1596026966226256 2.385203071173729e-2 -0.6543960036330608 7.950505046892096
0.7180606617647058 5.853198881142063e-2 1.3006979875914721e-2 0.20981204173298887 -0.48409627611262485 8.978629876116653
0.9148667279411764 3.773658574741391e-2 1.0076258401357334e-2 4.164823450821623e-2 -0.8256039963669392 7.435051922148413
0.3829273897058823 4.9868601752350635e-3 3.5046591685788443e-3 4.858353746851987e-2 -0.8533060853769301 1.6790414098755786
0.739315257352941 0.15341167949370746 3.204460185820858e-2 3.685502120571845e-2 -0.6557584014532243 7.509787862714033
0.9680606617647058 2.703422902405434e-3 7.967397508463432e-3 7.739777377741554e-2 -0.7120708446866485 10.46110935581742
0.0 1.9905804416182936e-3 1.2756403379383555e-2 6.915646007948231e-2 -0.7120708446866485 10.733886248729835
0.5797334558823529 0.18998085674464255 1.8163952846128213e-2 8.982357906778844e-2 -0.7479473206176204 7.59527058513627
0.9201516544117647 2.2420155479270107e-2 1.1912682114966721e-2 0.2242618813529836 -0.27474114441416897 7.637858683250006
0.7552849264705881 5.9456988445633595e-3 5.062403403897848e-2 0.2786946833409403 -0.7288737511353315 10.572977149641726
0.5744485294117647 2.4120979368406577e-2 1.6859261808970232e-3 0.4156606486680663 -0.23023614895549493 9.237218853465539
0.5744485294117647 2.4120979368406577e-2 1.6859261808970232e-3 0.4156606486680663 -0.23023614895549493 9.237218853465539
0.5265395220588235 3.555443212102101e-2 6.646494184616118e-2 0.3028467412202073 -0.7261489554950045 6.530659821967431
0.7925091911764706 0.9587838099587115 5.666579603022637e-2 4.8835846734368936e-2 -0.5631153496821071 8.836898609505603
0.9201516544117647 2.2420155479270107e-2 1.1912682114966721e-2 0.2242618813529836 -0.27474114441416897 7.637858683250006
0.9414062499999999 1.0 1.8410233023505543e-2 0.125284659145623 -0.5926339691189828 4.168350819601456
0.40429687499999994 2.35642722806412e-4 1.002899889066512e-2 0.6115918678229272 -0.45412352406902823 5.843997267897207
0.9787454044117646 2.209488468503538e-3 0.0 9.543630257460113e-2 -0.8160672116257948 5.512177785100784
0.8031939338235293 6.9765547236708995e-3 1.482596558825265e-2 0.12992137769913847 -0.7120708446866485 9.424466822550025
0.31916360294117646 8.477490538844938e-4 1.076556490089213e-2 5.00703494764785e-2 -0.7234241598546776 3.1247466452003856
0.4893152573529412 1.1548316620424595e-2 1.1207327599769059e-2 2.4894233064353788e-2 -0.8533060853769301 2.9795136880648694
0.6436121323529411 4.4647981116765064e-3 3.8354757434243252e-3 2.2728714811963754e-2 -0.7120708446866485 9.325133147480487
0.4573759191176471 2.318667959282326e-2 9.370272074519402e-3 4.734190802680865e-2 -0.6911807447774749 7.691362829647781
1.0 4.674112783918464e-3 7.487991472059204e-2 0.1085769640349211 -0.45775658492279736 9.850431508506654
0.7446001838235294 1.9334844523043635e-3 2.847473972835385e-2 1.0 -0.28473206176203447 10.784078124343976
0.27653952205882354 2.0655296451632887e-2 6.511198039968658e-3 6.251862797054696e-3 -0.7919981834695731 4.29946864893402
0.4680606617647059 8.78098142337304e-2 4.3695840316431485e-2 0.32921767292050047 -0.7751952770208901 7.084819974685839
0.4255514705882353 3.47984539578391e-3 1.642710264702541e-3 0.3202532316053772 -0.46229791099000905 10.09675650486317
0.6701516544117646 1.113962387076603e-3 0.24437551800656854 0.3661291740812746 -0.28473206176203447 10.843677877463625
0.8244485294117647 7.607060187625894e-2 4.4213294049812786e-2 5.89278214405759e-2 -0.7138873751135331 8.281655004317232
0.8137637867647058 5.829150251106527e-2 6.046563759713947e-3 0.1577671575034696 -0.5994459582198002 9.36043475674992
0.6915211397058822 2.017645555310552e-2 2.558205331454073e-2 1.4546179171493973e-2 -0.705258855585831 8.98872951289128
0.6915211397058822 2.017645555310552e-2 2.558205331454073e-2 1.4546179171493973e-2 -0.705258855585831 8.98872951289128
0.8244485294117647 1.2978069007638173e-2 5.940293041820497e-4 0.2005701153110324 -0.7120708446866485 9.143147511395949
0.8244485294117647 1.2978069007638173e-2 5.940293041820497e-4 0.2005701153110324 -0.7120708446866485 9.143147511395949
0.5744485294117647 4.842996541985792e-2 1.6825396705051752e-2 0.13362461049746324 -0.7152497729336966 4.054894911617706
0.49471507352941174 6.756428888957502e-2 3.868544764676068e-2 4.6642837324336744e-2 -0.7624795640326976 2.6304048908829563
0.861672794117647 4.52848945414065e-2 1.5239044038661312e-2 0.3258045002388133 -0.8183378746594006 10.462489943677964
0.4840303308823529 3.781463189456114e-3 2.0415097720410964e-3 0.34284703833816654 -0.7733787465940054 8.43281832837204
0.2552849264705882 6.497231621325002e-3 5.67088855840928e-3 0.14128749956577052 -0.7997184377838329 9.590651775703877
0.9041819852941176 7.173800404085966e-3 1.0298403374076339e-2 0.20503544018197803 -0.8283287920072662 9.24094674235907
0.7552849264705881 5.402621310262364e-4 1.588083830284779e-2 0.2725217564883866 -0.6153405994550409 9.427461709192647
0.6329273897058824 0.1013295878149413 8.646974108738069e-4 0.20668432435599854 -0.7543051771117166 9.666158184191792
0.5105698529411764 2.784086429645462e-3 9.06599158856527e-3 0.18864243878001505 -0.7810990009082652 10.373288860272808
0.6169577205882353 6.948828004105436e-3 2.8732266152927985e-3 0.3976190126987114 -0.8174296094459582 10.158884909113675
0.5531939338235293 2.2112414947775307e-3 8.405116612842631e-3 9.434361943313956e-2 -0.5771934604904632 10.209254381977214
0.9041819852941176 7.173800404085966e-3 1.0298403374076339e-2 0.20503544018197803 -0.8283287920072662 9.24094674235907
0.43612132352941174 8.533749967067355e-4 3.6712047169540716e-3 0.24726948423317555 -0.8523978201634878 9.15067059964384
0.0 2.3846090535390024e-4 0.18348530298716753 0.30779539920242244 -0.6339600363306086 10.025326169376674
0.6063878676470588 1.687782846672511e-4 1.7993995514895526e-4 0.3936052950758327 -0.7938147138964577 9.671698679279945
0.6063878676470588 1.687782846672511e-4 1.7993995514895526e-4 0.3936052950758327 -0.7938147138964577 9.671698679279945
0.5637637867647058 5.945057527381079e-3 2.6822046839735037e-2 0.48765714157443524 -0.7810990009082652 10.551399865918693
0.5637637867647058 5.945057527381079e-3 2.6822046839735037e-2 0.48765714157443524 -0.7810990009082652 10.551399865918693
0.723345588235294 1.823168864315665e-3 5.453166267172167e-3 0.24763970250608153 -0.8682924613987284 10.041688001727678
0.7977941176470588 7.372466987683877e-3 1.7083681303594212e-2 0.27416377217655913 -0.7252406902815622 10.806666058656884
0.723345588235294 1.823168864315665e-3 5.453166267172167e-3 0.24763970250608153 -0.8682924613987284 10.041688001727678
0.6701516544117646 3.7251308053245537e-3 1.4044920038550618e-2 0.2530698258534145 -0.7038964577656676 9.884909529950056
0.9148667279411764 4.194164901063026e-2 2.5762625081329954e-2 0.2966643293157683 -0.8178837420526793 10.196480501681007
0.7872242647058822 1.3761513333567172e-3 1.2716978333030695e-2 0.2637916183333555 -0.7057129881925522 10.521458112137791
0.6915211397058822 3.666110864463781e-4 2.8995984331576772e-2 0.8049829005688035 -0.8342325158946412 10.935225526431015
0.5212545955882353 3.956199540036755e-3 1.7000787616390765e-2 0.39532290714395857 -0.7438601271571299 9.563677167015623
0.7180606617647058 7.01652900333611e-3 1.3949263756213708e-2 0.23397701890706518 -0.5876385104450499 10.291011744026449
0.7340303308823529 7.984347502852705e-3 4.720694396374109e-2 0.36068836068453913 -0.8401362397820163 10.819314313278639
0.707375919117647 3.031868251433361e-2 9.528983158555278e-3 6.146868781244509e-2 -0.7120708446866485 9.769663721264616
0.7446001838235294 5.814627995241502e-2 2.9699696136509728e-2 0.3828144304167814 -0.657574931880109 9.477729412039812
0.6595818014705882 4.75957750479832e-3 7.986099133015432e-3 0.15329736553458526 -0.7711080835603996 9.971672482977299
0.9468060661764705 6.189482057193828e-3 1.3238854747893885e-2 0.3845999010593753 -0.7465849227974568 10.364023342711647
0.9361213235294118 3.3625420213356234e-3 8.5792439009011e-3 0.573083951522881 -0.8860036330608537 9.598524683482491
0.7552849264705881 1.9312193450300018e-3 1.3001546295808396e-2 9.511426698813245e-2 -0.5771934604904632 9.514649721707698
0.4840303308823529 3.781463189456114e-3 2.0415097720410964e-3 0.34284703833816654 -0.7733787465940054 8.43281832837204
0.5531939338235293 2.7345424191551632e-3 1.5375136265975515e-2 3.8191397880781186e-2 -0.7751952770208901 10.203096222487993
0.43612132352941174 8.533749967067355e-4 3.6712047169540716e-3 0.24726948423317555 -0.8523978201634878 9.15067059964384
0.0 3.6806047717469675e-4 5.597851132794045e-3 0.1347574544847477 -0.5771934604904632 10.952187342908323
0.7977941176470588 7.372466987683877e-3 1.7083681303594212e-2 0.27416377217655913 -0.7252406902815622 10.806666058656884
0.5637637867647058 3.698449092305299e-3 1.5772545787705475e-3 0.551262858055114 -0.7938147138964577 8.817232647019427
0.5637637867647058 3.698449092305299e-3 1.5772545787705475e-3 0.551262858055114 -0.7938147138964577 8.817232647019427
0.8191636029411764 3.241774491875746e-2 1.1514767143924543e-2 0.28850715026591023 -0.7093460490463215 10.475267133270918
0.6595818014705882 1.242239025078263e-3 3.6938235736757447e-3 0.20924831807307262 -0.8119800181653043 9.146019901974764
0.7340303308823529 7.984347502852705e-3 4.720694396374109e-2 0.36068836068453913 -0.8401362397820163 10.819314313278639
0.7872242647058822 1.3761513333567172e-3 1.2716978333030695e-2 0.2637916183333555 -0.7057129881925522 10.521458112137791
0.6915211397058822 3.666110864463781e-4 2.8995984331576772e-2 0.8049829005688035 -0.8342325158946412 10.935225526431015
0.7180606617647058 7.01652900333611e-3 1.3949263756213708e-2 0.23397701890706518 -0.5876385104450499 10.291011744026449
0.8191636029411764 2.622818087301812e-2 1.5422143052011618e-2 0.22777600700523584 -0.766566757493188 10.1818932753847
0.5212545955882353 3.956199540036755e-3 1.7000787616390765e-2 0.39532290714395857 -0.7438601271571299 9.563677167015623
0.8829273897058822 1.3298362819232946e-2 1.0506901215365507e-2 0.1941802802982596 -0.5926339691189828 10.123907632224086
0.9361213235294118 3.3625420213356234e-3 8.5792439009011e-3 0.573083951522881 -0.8860036330608537 9.598524683482491
0.8297334558823529 6.643858407521723e-3 1.3402367600395816e-2 0.2239984775028513 -0.6920890099909174 10.038218363247282
0.7340303308823529 4.7100101484170966e-2 3.423382919174485e-2 0.33568180463733305 -0.8405903723887375 10.096775760593708
0.7340303308823529 4.7100101484170966e-2 3.423382919174485e-2 0.33568180463733305 -0.8405903723887375 10.096775760593708
0.6488970588235293 1.1837292892087676e-2 6.401060634836754e-2 0.4107299193274819 -0.7947229791099001 10.351014339169227
0.0 2.0490744051150504e-4 4.74073546160348e-3 0.23209163675604616 -0.436866485013624 9.861690082733581
0.8669577205882352 0.22991832911146287 4.249312367801312e-3 0.46024585805342705 -0.5449500454132608 10.632374221509767
0.4680606617647059 1.3134217582205402e-4 8.371289417622566e-2 0.13965301511208042 -0.41870118074477747 6.874602328781559
0.8244485294117647 8.951649266087108e-2 8.145821115675739e-3 0.1427378173632086 -0.4418619436875567 9.071654977307679
0.6383272058823529 3.471154609959457e-3 1.1890568707557262e-2 0.12714623398855246 -0.6362306993642144 10.222539763367115
0.7765395220588235 1.989140083526345e-3 3.3473254339187575e-2 6.404375029242707e-2 -0.5226975476839237 8.202645489469527
0.6701516544117646 2.9296508388414154e-3 6.716536823056475e-3 0.18517583306556565 -0.6566666666666667 10.565566077805743
0.6701516544117646 2.9296508388414154e-3 6.716536823056475e-3 0.18517583306556565 -0.6566666666666667 10.565566077805743
0.7446001838235294 7.468992519208078e-3 2.791255373084142e-2 0.11919209702034067 -0.6625703905540419 9.495691723078412
0.7446001838235294 7.468992519208078e-3 2.791255373084142e-2 0.11919209702034067 -0.6625703905540419 9.495691723078412
0.5425091911764706 7.854358832849809e-3 5.009861947892977e-2 7.749726353670971e-3 -0.732960944595822 6.7035039553899916
0.5425091911764706 4.438401968930185e-3 3.86455171510956e-2 5.628775795166672e-2 -0.6321435059037239 8.70496771797527
0.739315257352941 2.6155608503511202e-2 2.599273088071636e-4 0.372385572833269 -0.7002633969118983 9.235536637390355
0.7765395220588235 1.989140083526345e-3 3.3473254339187575e-2 6.404375029242707e-2 -0.5226975476839237 8.202645489469527
0.2552849264705882 3.282246747732225e-3 2.0503551350048795e-3 0.30411602535493804 -0.6680199818346957 6.057224162992943
0.5637637867647058 5.545371705819923e-4 6.012572293467409e-3 6.842825425846982e-2 -0.37692098092643045 3.846989071313566
0.5637637867647058 5.545371705819923e-4 6.012572293467409e-3 6.842825425846982e-2 -0.37692098092643045 3.846989071313566
0.5425091911764706 1.7649452545736487e-2 1.5441476488203885e-4 0.37781769303363044 -0.8047138964577656 6.998532215473896
0.7340303308823529 4.8874831098906215e-3 1.916158342611487e-3 6.94958390230734e-2 -0.6593914623069936 9.367684372006767
0.7340303308823529 4.8874831098906215e-3 1.916158342611487e-3 6.94958390230734e-2 -0.6593914623069936 9.367684372006767
0.9095818014705882 3.1334519203612125e-2 1.7939659713832289e-3 0.15648716610508617 -0.7851861943687557 10.363976938726827
0.6063878676470588 1.219039045970612e-2 8.20837046806249e-3 8.460070668628678e-2 -0.7829155313351499 9.303583943946428
0.877642463235294 1.3213961170172038e-2 2.8181326402612365e-3 0.18947939562695382 -0.6507629427792916 10.27233070506873
0.6063878676470588 1.219039045970612e-2 8.20837046806249e-3 8.460070668628678e-2 -0.7829155313351499 9.303583943946428
0.7552849264705881 3.528602455200913e-2 5.337923823986881e-3 0.10760766403209451 -0.6970844686648501 10.16723942413214
0.5 2.345280259965167e-3 2.2455849318483738e-3 0.17040920820542713 -0.7202452316076294 7.458278688513794
0.6915211397058822 3.3927554951756084e-4 2.0622331938419594e-4 0.11201597530622688 -0.4654768392370573 9.112394757728838
0.6648667279411764 0.14762181377625655 2.9139152849262e-3 0.1149108355201456 -0.6666575840145323 10.310520361941226
df_filtered_date: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [iso_code: string, continent: string ... 48 more fields]
res17: df_fillContinentNull.type = [iso_code: string, continent: string ... 48 more fields]
import org.apache.spark.ml.feature.VectorAssembler
vectorizer: org.apache.spark.ml.feature.VectorAssembler = VectorAssembler: uid=vecAssembler_d4f952d2fd6f, handleInvalid=error, numInputCols=5
dataset: org.apache.spark.sql.DataFrame = [features: vector, log_total_cases_per_million: double]
iso_code continent location date total_cases new_cases new_cases_smoothed total_deaths new_deaths new_deaths_smoothed total_cases_per_million new_cases_per_million new_cases_smoothed_per_million total_deaths_per_million new_deaths_per_million new_deaths_smoothed_per_million reproduction_rate icu_patients icu_patients_per_million hosp_patients hosp_patients_per_million weekly_icu_admissions weekly_icu_admissions_per_million weekly_hosp_admissions weekly_hosp_admissions_per_million total_tests new_tests total_tests_per_thousand new_tests_per_thousand new_tests_smoothed new_tests_smoothed_per_thousand tests_per_case positive_rate tests_units stringency_index population population_density median_age aged_65_older aged_70_older gdp_per_capita extreme_poverty cardiovasc_death_rate diabetes_prevalence female_smokers male_smokers handwashing_facilities hospital_beds_per_thousand life_expectancy human_development_index
FJI Oceania Fiji 2020-11-16 35.0 0.0 0.143 2.0 0.0 0.0 39.043 0.0 0.159 2.231 0.0 0.0 null null null null null null null null null null null null null 120.0 0.134 1.0e-3 839.2 null 49.07 896444.0 49.562 28.6 6.224 3.284 8702.975 1.4 412.82 14.49 10.2 34.8 null 2.3 67.44 0.741
FIN Europe Finland 2020-04-08 2487.0 179.0 148.714 40.0 6.0 3.286 448.859 32.306 26.84 7.219 1.083 0.593 1.24 82.0 14.8 239.0 43.135 null null null null 41461.0 3295.0 7.483 0.595 2332.0 0.421 6.4e-2 15.7 null 67.59 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-09-11 8512.0 43.0 41.0 337.0 0.0 0.143 1536.263 7.761 7.4 60.822 0.0 2.6e-2 1.3 1.0 0.18 8.0 1.444 null null null null 883388.0 14441.0 159.436 2.606 12099.0 2.184 3.0e-3 295.1 null 32.41 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
GAB Africa Gabon 2020-07-02 5513.0 0.0 60.857 42.0 0.0 0.286 2476.942 0.0 27.343 18.87 0.0 0.128 1.04 null null null null null null null null null null null null null null null null null 66.67 2225728.0 7.859 23.1 4.45 2.976 16562.413 3.4 259.967 7.2 null null null 6.3 66.47 0.702
GAB Africa Gabon 2020-11-23 9150.0 19.0 9.429 59.0 0.0 0.143 4111.014 8.537 4.236 26.508 0.0 6.4e-2 null null null null null null null null null null null null null null null null null null 66.67 2225728.0 7.859 23.1 4.45 2.976 16562.413 3.4 259.967 7.2 null null null 6.3 66.47 0.702
GMB Africa Gambia 2020-06-13 28.0 0.0 0.286 1.0 0.0 0.0 11.586 0.0 0.118 0.414 0.0 0.0 null null null null null null null null null null null null null null null null null null 74.07 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GMB Africa Gambia 2020-06-21 37.0 0.0 1.286 2.0 0.0 0.143 15.31 0.0 0.532 0.828 0.0 5.9e-2 null null null null null null null null null null null null null null null null null null 74.07 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GEO Asia Georgia 2020-11-13 73154.0 3473.0 3023.0 636.0 37.0 30.429 18338.128 870.606 757.801 159.431 9.275 7.628 1.25 null null null null null null null null null null null null null null null null null 64.81 3989175.0 65.032 38.7 14.864 10.244 9745.079 4.2 496.218 7.11 5.3 55.5 null 2.6 73.77 0.78
DEU Europe Germany 2020-01-31 5.0 1.0 0.714 0.0 0.0 0.0 6.0e-2 1.2e-2 9.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
DEU Europe Germany 2020-07-04 197198.0 418.0 391.429 9020.0 10.0 7.429 2353.649 4.989 4.672 107.658 0.119 8.9e-2 0.96 null null null null null null null null null null null null 71702.0 0.856 5.0e-3 183.2 null 63.43 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
DEU Europe Germany 2020-08-01 211005.0 606.0 675.286 9154.0 7.0 4.286 2518.442 7.233 8.06 109.257 8.4e-2 5.1e-2 1.22 null null null null null null null null null null null null 83563.0 0.997 8.0e-3 123.7 null 57.87 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
DEU Europe Germany 2020-08-02 211220.0 215.0 650.429 9154.0 0.0 4.286 2521.008 2.566 7.763 109.257 0.0 5.1e-2 1.21 null null null null null null 305.791 3.65 8549377.0 null 102.041 null 83803.0 1.0 8.0e-3 128.8 null 57.87 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
GHA Africa Ghana 2020-04-09 378.0 65.0 24.857 6.0 0.0 0.143 12.165 2.092 0.8 0.193 0.0 5.0e-3 1.28 null null null null null null null null 14611.0 null 0.47 null 1008.0 3.2e-2 2.5e-2 40.6 null 86.11 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-06-03 8548.0 251.0 177.857 38.0 0.0 0.571 275.095 8.078 5.724 1.223 0.0 1.8e-2 1.21 null null null null null null null null 226741.0 3676.0 7.297 0.118 2630.0 8.5e-2 6.8e-2 14.8 null 56.48 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-11-27 51225.0 0.0 84.857 323.0 0.0 0.0 1648.54 0.0 2.731 10.395 0.0 0.0 null null null null null null null null null 592285.0 1100.0 19.061 3.5e-2 1705.0 5.5e-2 5.0e-2 20.1 null null 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GRC Europe Greece 2020-03-14 228.0 38.0 26.0 3.0 2.0 0.429 21.875 3.646 2.494 0.288 0.192 4.1e-2 1.33 null null null null null null null null 3400.0 700.0 0.326 6.7e-2 302.0 2.9e-2 8.6e-2 11.6 null 54.63 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-05-01 2612.0 21.0 17.429 140.0 0.0 1.429 250.598 2.015 1.672 13.432 0.0 0.137 0.81 null null null null null null null null 77251.0 2081.0 7.412 0.2 2263.0 0.217 8.0e-3 129.8 null 84.26 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-07-25 4166.0 31.0 26.143 201.0 0.0 1.0 399.691 2.974 2.508 19.284 0.0 9.6e-2 1.28 null null null null null null null null null null null null 5151.0 0.494 5.0e-3 197.0 null 57.41 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRD North America Grenada 2020-05-17 22.0 0.0 0.143 0.0 0.0 0.0 195.523 0.0 1.27 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 112519.0 317.132 29.4 7.304 5.021 13593.877 null 243.964 10.71 null null null 3.7 72.4 0.772
GRD North America Grenada 2020-07-23 23.0 0.0 0.0 0.0 0.0 0.0 204.41 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 112519.0 317.132 29.4 7.304 5.021 13593.877 null 243.964 10.71 null null null 3.7 72.4 0.772
GTM North America Guatemala 2020-02-08 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 1.7915567e7 157.834 22.9 4.694 3.016 7423.808 8.7 155.898 10.18 null null 76.665 0.6 74.3 0.65
GTM North America Guatemala 2020-05-07 832.0 34.0 33.286 23.0 2.0 1.0 46.44 1.898 1.858 1.284 0.112 5.6e-2 1.37 null null null null null null null null 7428.0 470.0 0.415 2.6e-2 261.0 1.5e-2 0.128 7.8 null 96.3 1.7915567e7 157.834 22.9 4.694 3.016 7423.808 8.7 155.898 10.18 null null 76.665 0.6 74.3 0.65
GIN Africa Guinea 2020-02-23 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 1.3132792e7 51.755 19.0 3.135 1.733 1998.926 35.3 336.717 2.42 null null 17.45 0.3 61.6 0.459
GNB Africa Guinea-Bissau 2020-08-28 2205.0 0.0 8.0 34.0 0.0 0.143 1120.428 0.0 4.065 17.276 0.0 7.3e-2 0.55 null null null null null null null null null null null null null null null null null null 1967998.0 66.191 19.4 3.002 1.565 1548.675 67.1 382.474 2.42 null null 6.403 null 58.32 0.455
GUY South America Guyana 2020-01-24 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 2.78 786559.0 3.952 26.3 5.305 2.837 7435.047 null 373.159 11.62 null null 77.159 1.6 69.91 0.654
GUY South America Guyana 2020-01-25 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 2.78 786559.0 3.952 26.3 5.305 2.837 7435.047 null 373.159 11.62 null null 77.159 1.6 69.91 0.654
GUY South America Guyana 2020-08-18 737.0 28.0 19.286 25.0 2.0 0.429 936.993 35.598 24.519 31.784 2.543 0.545 1.31 null null null null null null null null null null null null null null null null null 73.15 786559.0 3.952 26.3 5.305 2.837 7435.047 null 373.159 11.62 null null 77.159 1.6 69.91 0.654
HTI North America Haiti 2020-09-13 8493.0 15.0 19.0 219.0 0.0 0.714 744.835 1.315 1.666 19.206 0.0 6.3e-2 0.93 null null null null null null null null null null null null null null null null null 21.3 1.1402533e7 398.448 24.3 4.8 2.954 1653.173 23.5 430.548 6.65 2.9 23.1 22.863 0.7 64.0 0.498
HTI North America Haiti 2020-10-17 8956.0 31.0 13.714 231.0 0.0 0.143 785.44 2.719 1.203 20.259 0.0 1.3e-2 0.89 null null null null null null null null null null null null null null null null null 47.22 1.1402533e7 398.448 24.3 4.8 2.954 1653.173 23.5 430.548 6.65 2.9 23.1 22.863 0.7 64.0 0.498
HUN Europe Hungary 2020-03-14 30.0 11.0 3.714 0.0 0.0 0.0 3.105 1.139 0.384 null 0.0 0.0 null null null 29.0 3.002 null null null null 1014.0 156.0 0.105 1.6e-2 99.0 1.0e-2 3.8e-2 26.7 null 50.0 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
ISL Europe Iceland 2020-08-13 1976.0 4.0 6.286 10.0 0.0 0.0 5790.476 11.722 18.42 29.304 0.0 0.0 1.14 0.0 0.0 1.0 2.93 null null null null 81052.0 328.0 237.515 0.961 544.0 1.594 1.2e-2 86.5 null 46.3 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
IND Asia India 2020-04-19 17615.0 1893.0 1201.429 559.0 38.0 32.571 12.764 1.372 0.871 0.405 2.8e-2 2.4e-2 1.54 null null null null null null null null 401586.0 29463.0 0.291 2.1e-2 29405.0 2.1e-2 4.1e-2 24.5 null 100.0 1.380004385e9 450.419 28.2 5.989 3.414 6426.674 21.2 282.28 10.39 1.9 20.6 59.55 0.53 69.66 0.64
IND Asia India 2020-10-18 7550273.0 55722.0 61390.714 114610.0 579.0 780.0 5471.195 40.378 44.486 83.05 0.42 0.565 0.89 null null null null null null null null 9.422419e7 970173.0 68.278 0.703 1049564.0 0.761 5.8e-2 17.1 null 64.35 1.380004385e9 450.419 28.2 5.989 3.414 6426.674 21.2 282.28 10.39 1.9 20.6 59.55 0.53 69.66 0.64
IRN Asia Iran 2020-02-13 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRN Asia Iran 2020-10-29 596941.0 8293.0 6597.714 34113.0 399.0 351.857 7107.037 98.734 78.551 406.141 4.75 4.189 1.37 null null null null null null null null null null null null 30096.0 0.358 0.219 4.6 null 70.83 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRQ Asia Iraq 2020-10-01 367474.0 4493.0 4338.286 9231.0 50.0 61.714 9136.03 111.704 107.857 229.498 1.243 1.534 0.99 null null null null null null null null 2289877.0 23522.0 56.93 0.585 21142.0 0.526 0.205 4.9 null 61.11 4.0222503e7 88.125 20.0 3.186 1.957 15663.986 2.5 218.612 8.83 null null 94.576 1.4 70.6 0.685
IRL Europe Ireland 2020-02-18 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 4937796.0 69.874 38.7 13.928 8.678 67335.293 0.2 126.459 3.28 23.0 25.7 null 2.96 82.3 0.938
IRL Europe Ireland 2020-08-14 26995.0 66.0 75.0 1774.0 0.0 0.286 5467.014 13.366 15.189 359.27 0.0 5.8e-2 1.37 8.0 1.62 11.0 2.228 null null null null 699219.0 11337.0 141.605 2.296 5877.0 1.19 1.3e-2 78.4 null 59.72 4937796.0 69.874 38.7 13.928 8.678 67335.293 0.2 126.459 3.28 23.0 25.7 null 2.96 82.3 0.938
IRL Europe Ireland 2020-10-16 47427.0 998.0 960.571 1841.0 3.0 2.857 9604.893 202.114 194.534 372.838 0.608 0.579 1.28 30.0 6.076 244.0 49.415 null null null null 1404220.0 17758.0 284.382 3.596 14312.0 2.898 6.7e-2 14.9 null 61.57 4937796.0 69.874 38.7 13.928 8.678 67335.293 0.2 126.459 3.28 23.0 25.7 null 2.96 82.3 0.938
ISR Asia Israel 2020-02-12 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null 293.0 35.0 3.4e-2 4.0e-3 21.0 2.0e-3 0.0 null null 19.44 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ISR Asia Israel 2020-04-03 7428.0 571.0 627.571 40.0 4.0 4.0 858.179 65.969 72.505 4.621 0.462 0.462 1.28 null null null null null null null null 107350.0 10328.0 12.402 1.193 8281.0 0.957 7.6e-2 13.2 null 87.96 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ISR Asia Israel 2020-04-04 7851.0 423.0 604.571 44.0 4.0 4.571 907.049 48.87 69.848 5.083 0.462 0.528 1.17 null null null null null null null null 113705.0 6355.0 13.137 0.734 8369.0 0.967 7.2e-2 13.8 null 87.96 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ISR Asia Israel 2020-05-19 16659.0 16.0 18.571 278.0 2.0 2.571 1924.663 1.849 2.146 32.118 0.231 0.297 0.51 null null null null null null null null 520606.0 7142.0 60.147 0.825 6193.0 0.715 3.0e-3 333.5 null 77.78 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ITA Europe Italy 2020-03-19 41035.0 5322.0 3703.143 3405.0 427.0 341.286 678.693 88.022 61.248 56.317 7.062 5.645 1.79 2498.0 41.315 18255.0 301.926 null null null null 182777.0 17236.0 3.023 0.285 13824.0 0.229 0.268 3.7 null 85.19 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
ITA Europe Italy 2020-07-14 243344.0 114.0 198.286 34984.0 17.0 12.143 4024.754 1.885 3.28 578.613 0.281 0.201 0.93 60.0 0.992 837.0 13.843 null null null null 6004611.0 41867.0 99.312 0.692 42991.0 0.711 5.0e-3 216.8 null 58.33 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
JPN Asia Japan 2020-02-04 22.0 2.0 2.143 0.0 0.0 0.0 0.174 1.6e-2 1.7e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JPN Asia Japan 2020-09-20 79142.0 480.0 499.429 1508.0 4.0 8.571 625.745 3.795 3.949 11.923 3.2e-2 6.8e-2 0.89 null null null null null null null null 1650837.0 6153.0 13.053 4.9e-2 17218.0 0.136 2.9e-2 34.5 null 38.89 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JPN Asia Japan 2020-09-27 82186.0 483.0 434.857 1549.0 2.0 5.857 649.813 3.819 3.438 12.247 1.6e-2 4.6e-2 1.01 null null null null null null null null 1746545.0 4550.0 13.809 3.6e-2 13673.0 0.108 3.2e-2 31.4 null 33.33 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JOR Asia Jordan 2020-01-27 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 1.020314e7 109.285 23.2 3.81 2.361 8337.49 0.1 208.257 11.75 null null null 1.4 74.53 0.735
JOR Asia Jordan 2020-07-30 1191.0 4.0 8.571 11.0 0.0 0.0 116.729 0.392 0.84 1.078 0.0 0.0 1.1 null null null null null null null null null null null null null null null null null 48.15 1.020314e7 109.285 23.2 3.81 2.361 8337.49 0.1 208.257 11.75 null null null 1.4 74.53 0.735
KAZ Asia Kazakhstan 2020-06-20 17225.0 446.0 426.714 118.0 5.0 6.429 917.36 23.753 22.726 6.284 0.266 0.342 1.18 null null null null null null null null 1302094.0 32506.0 69.346 1.731 27596.0 1.47 1.5e-2 64.7 null 81.02 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-06-22 18231.0 499.0 434.143 127.0 7.0 6.571 970.937 26.575 23.121 6.764 0.373 0.35 1.15 null null null null null null null null 1354456.0 23879.0 72.135 1.272 27669.0 1.474 1.6e-2 63.7 null 81.02 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-08-18 121973.0 334.0 1210.286 1635.0 148.0 28.857 6495.974 17.788 64.457 87.076 7.882 1.537 0.55 null null null null null null null null 2342049.0 7942.0 124.732 0.423 15018.0 0.8 8.1e-2 12.4 null 79.63 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-08-25 127462.0 0.0 784.143 1781.0 0.0 20.857 6788.304 0.0 41.761 94.852 0.0 1.111 0.54 null null null null null null null null 2434444.0 7257.0 129.652 0.386 13199.0 0.703 5.9e-2 16.8 null 79.63 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
OWID_KOS Europe Kosovo 2020-04-18 480.0 31.0 32.857 12.0 1.0 0.714 248.348 16.039 17.0 6.209 0.517 0.37 1.15 null null null null null null null null null null null null null null null null null 92.59 1932774.0 168.155 null null null 9795.834 0.6 null null null null null null null null
OWID_KOS Europe Kosovo 2020-06-07 1194.0 36.0 17.714 30.0 0.0 0.0 617.765 18.626 9.165 15.522 0.0 0.0 1.47 null null null null null null null null null null null null null null null null null 73.15 1932774.0 168.155 null null null 9795.834 0.6 null null null null null null null null
OWID_KOS Europe Kosovo 2020-09-19 15002.0 63.0 62.286 614.0 3.0 3.571 7761.901 32.596 32.226 317.678 1.552 1.848 0.89 null null null null null null null null null null null null null null null null null 58.33 1932774.0 168.155 null null null 9795.834 0.6 null null null null null null null null
KWT Asia Kuwait 2020-11-28 142195.0 319.0 351.571 875.0 1.0 1.714 33296.547 74.697 82.324 204.891 0.234 0.401 null null null null null null null null null 1086669.0 4242.0 254.456 0.993 5538.0 1.297 6.3e-2 15.8 null 62.96 4270563.0 232.128 33.7 2.345 1.114 65530.537 null 132.235 15.84 2.7 37.0 null 2.0 75.49 0.803
KGZ Asia Kyrgyzstan 2020-11-11 64360.0 0.0 435.857 1188.0 0.0 3.0 9864.825 0.0 66.806 182.092 0.0 0.46 1.04 null null null null null null null null null null null null null null null null null 56.02 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
KGZ Asia Kyrgyzstan 2020-11-26 71548.0 377.0 461.714 1256.0 5.0 5.571 10966.57 57.785 70.77 192.514 0.766 0.854 null null null null null null null null null null null null null null null null null null 56.02 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
LAO Asia Laos 2020-02-04 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LAO Asia Laos 2020-05-31 19.0 0.0 0.0 0.0 0.0 0.0 2.611 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 56.48 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LAO Asia Laos 2020-11-02 24.0 0.0 0.0 0.0 0.0 0.0 3.299 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 33.33 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LVA Europe Latvia 2020-07-07 1134.0 7.0 2.286 30.0 0.0 0.0 601.208 3.711 1.212 15.905 0.0 0.0 1.35 null null 5.0 2.651 null null null null 160281.0 1763.0 84.976 0.935 1349.0 0.715 2.0e-3 590.1 null 50.0 1886202.0 31.212 43.9 19.754 14.136 25063.846 0.7 350.06 4.91 25.6 51.0 null 5.57 75.29 0.847
LVA Europe Latvia 2020-11-22 13120.0 376.0 367.571 153.0 0.0 4.286 6955.777 199.342 194.874 81.115 0.0 2.272 null null null 416.0 220.549 40.279 21.355 322.232 170.836 576647.0 4079.0 305.719 2.163 5412.0 2.869 6.8e-2 14.7 null 57.41 1886202.0 31.212 43.9 19.754 14.136 25063.846 0.7 350.06 4.91 25.6 51.0 null 5.57 75.29 0.847
LBN Asia Lebanon 2020-09-17 26768.0 685.0 618.714 263.0 4.0 6.286 3921.797 100.36 90.648 38.532 0.586 0.921 1.17 null null null null null null null null null null null null null null null null null 61.11 6825442.0 594.561 31.1 8.514 5.43 13367.565 null 266.591 12.71 26.9 40.7 null 2.9 78.93 0.757
LSO Africa Lesotho 2020-04-24 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 90.74 2142252.0 73.562 22.2 4.506 2.647 2851.153 59.6 405.126 3.94 0.4 53.9 2.117 null 54.33 0.52
LSO Africa Lesotho 2020-07-09 134.0 43.0 14.143 1.0 1.0 0.143 62.551 20.072 6.602 0.467 0.467 6.7e-2 null null null null null null null null null null null null null null null null null null 54.63 2142252.0 73.562 22.2 4.506 2.647 2851.153 59.6 405.126 3.94 0.4 53.9 2.117 null 54.33 0.52
LBR Africa Liberia 2020-10-10 1363.0 3.0 2.286 82.0 0.0 0.0 269.491 0.593 0.452 16.213 0.0 0.0 0.99 null null null null null null null null null null null null null null null null null 57.41 5057677.0 49.127 19.2 3.057 1.756 752.788 38.6 272.509 2.42 1.5 18.1 1.188 0.8 64.1 0.435
LBY Africa Libya 2020-02-09 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 6871287.0 3.623 29.0 4.424 2.816 17881.509 null 341.862 10.43 null null null 3.7 72.91 0.706
LIE Europe Liechtenstein 2020-07-13 84.0 0.0 0.0 1.0 0.0 0.0 2202.585 0.0 0.0 26.221 0.0 0.0 null null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LIE Europe Liechtenstein 2020-11-21 1109.0 15.0 19.857 8.0 0.0 0.429 29079.372 393.319 520.679 209.77 0.0 11.238 null null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LUX Europe Luxembourg 2020-02-29 1.0 1.0 0.143 0.0 0.0 0.0 1.598 1.598 0.228 null 0.0 0.0 null 0.0 0.0 null null null null null null 17.0 1.0 2.7e-2 2.0e-3 null null null null null 0.0 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
LUX Europe Luxembourg 2020-05-09 3877.0 6.0 9.286 101.0 1.0 1.286 6193.528 9.585 14.834 161.348 1.598 2.054 0.63 14.0 22.365 82.0 130.995 null null null null 53114.0 737.0 84.85 1.177 1053.0 1.682 9.0e-3 113.4 null 70.37 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
LUX Europe Luxembourg 2020-05-10 3886.0 9.0 8.857 101.0 0.0 0.714 6207.906 14.378 14.149 161.348 0.0 1.141 0.64 18.0 28.755 77.0 123.008 null null null null 53326.0 212.0 85.189 0.339 1050.0 1.677 8.0e-3 118.6 null 70.37 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
LUX Europe Luxembourg 2020-06-08 4040.0 1.0 3.0 110.0 0.0 0.0 6453.922 1.598 4.793 175.726 0.0 0.0 1.01 2.0 3.195 20.0 31.95 null null null null 90406.0 2245.0 144.424 3.586 1782.0 2.847 2.0e-3 594.0 null 43.52 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
MKD Europe Macedonia 2020-02-03 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 2083380.0 82.6 39.1 13.26 8.16 13111.214 5.0 322.688 10.08 null null null 4.28 75.8 0.757
MKD Europe Macedonia 2020-09-21 16780.0 45.0 136.143 700.0 7.0 6.857 8054.22 21.6 65.347 335.992 3.36 3.291 1.1 null null null null null null null null 175790.0 1618.0 84.377 0.777 1411.0 0.677 9.6e-2 10.4 null null 2083380.0 82.6 39.1 13.26 8.16 13111.214 5.0 322.688 10.08 null null null 4.28 75.8 0.757
MKD Europe Macedonia 2020-10-10 20555.0 392.0 279.0 785.0 4.0 4.571 9866.179 188.156 133.917 376.792 1.92 2.194 1.4 null null null null null null null null 206046.0 1648.0 98.9 0.791 1841.0 0.884 0.152 6.6 null null 2083380.0 82.6 39.1 13.26 8.16 13111.214 5.0 322.688 10.08 null null null 4.28 75.8 0.757
MDG Africa Madagascar 2020-06-05 975.0 18.0 39.571 7.0 0.0 0.286 35.21 0.65 1.429 0.253 0.0 1.0e-2 1.23 null null null null null null null null null null null null 385.0 1.4e-2 0.103 9.7 null 70.37 2.7691019e7 43.951 19.6 2.929 1.686 1416.44 77.6 405.994 3.94 null null 50.54 0.2 67.04 0.519
MWI Africa Malawi 2020-07-25 3453.0 0.0 91.857 87.0 0.0 4.571 180.502 0.0 4.802 4.548 0.0 0.239 1.02 null null null null null null null null 26602.0 389.0 1.391 2.0e-2 410.0 2.1e-2 0.224 4.5 null 60.19 1.9129955e7 197.519 18.1 2.979 1.783 1095.042 71.4 227.349 3.94 4.4 24.7 8.704 1.3 64.26 0.477
MWI Africa Malawi 2020-08-08 4624.0 49.0 62.571 143.0 6.0 3.286 241.715 2.561 3.271 7.475 0.314 0.172 0.94 null null null null null null null null 34443.0 392.0 1.8 2.0e-2 502.0 2.6e-2 0.125 8.0 null 64.81 1.9129955e7 197.519 18.1 2.979 1.783 1095.042 71.4 227.349 3.94 4.4 24.7 8.704 1.3 64.26 0.477
MYS Asia Malaysia 2020-07-04 8658.0 10.0 6.0 121.0 0.0 0.0 267.503 0.309 0.185 3.738 0.0 0.0 0.75 null null null null null null null null 797796.0 6937.0 24.649 0.214 8334.0 0.257 1.0e-3 1389.0 null 50.93 3.2365998e7 96.254 29.9 6.293 3.407 26808.164 0.1 260.942 16.74 1.0 42.4 null 1.9 76.16 0.802
MDV Asia Maldives 2020-02-26 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 540542.0 1454.433 30.6 4.12 2.875 15183.616 null 164.905 9.19 2.1 55.0 95.803 null 78.92 0.717
MDV Asia Maldives 2020-07-04 2435.0 25.0 18.571 10.0 0.0 0.286 4504.738 46.25 34.357 18.5 0.0 0.529 1.13 null null null null null null null null 55245.0 1378.0 102.203 2.549 1072.0 1.983 1.7e-2 57.7 null null 540542.0 1454.433 30.6 4.12 2.875 15183.616 null 164.905 9.19 2.1 55.0 95.803 null 78.92 0.717
MDV Asia Maldives 2020-08-03 4293.0 129.0 132.0 18.0 0.0 0.429 7942.029 238.649 244.199 33.3 0.0 0.793 1.26 null null null null null null null null 82208.0 1209.0 152.084 2.237 1157.0 2.14 0.114 8.8 null null 540542.0 1454.433 30.6 4.12 2.875 15183.616 null 164.905 9.19 2.1 55.0 95.803 null 78.92 0.717
MLI Africa Mali 2020-03-03 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2.0250834e7 15.196 16.4 2.519 1.486 2014.306 null 268.024 2.42 1.6 23.0 52.232 0.1 59.31 0.427
MLT Europe Malta 2020-08-02 860.0 15.0 22.857 9.0 0.0 0.0 1947.733 33.972 51.767 20.383 0.0 0.0 1.27 null null null null 0.0 0.0 7.157 16.209 131600.0 1437.0 298.048 3.255 1515.0 3.431 1.5e-2 66.3 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MLT Europe Malta 2020-10-29 5866.0 106.0 104.143 59.0 3.0 1.429 13285.35 240.069 235.863 133.624 6.794 3.235 1.02 null null null null null null null null 332583.0 3075.0 753.236 6.964 3019.0 6.837 3.4e-2 29.0 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MLT Europe Malta 2020-12-01 9975.0 102.0 119.714 141.0 4.0 3.429 22591.436 231.01 271.13 319.338 9.059 7.765 null null null null null null null null null null null null null null null null null null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MHL Oceania Marshall Islands 2020-06-11 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 59194.0 295.15 null null null 3819.202 null 557.793 30.53 null null 82.502 2.7 73.7 0.708
MHL Oceania Marshall Islands 2020-08-16 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 59194.0 295.15 null null null 3819.202 null 557.793 30.53 null null 82.502 2.7 73.7 0.708
MRT Africa Mauritania 2020-06-22 3121.0 137.0 176.286 112.0 1.0 3.0 671.232 29.465 37.914 24.088 0.215 0.645 1.18 null null null null null null null null null null null null 1774.0 0.382 9.9e-2 10.1 null 77.78 4649660.0 4.289 20.3 3.138 1.792 3597.633 6.0 232.347 2.42 null null 15.95 null 64.92 0.52
MRT Africa Mauritania 2020-08-26 6977.0 17.0 21.143 158.0 0.0 0.0 1500.54 3.656 4.547 33.981 0.0 0.0 0.87 null null null null null null null null null null null null 289.0 6.2e-2 7.3e-2 13.7 null 29.63 4649660.0 4.289 20.3 3.138 1.792 3597.633 6.0 232.347 2.42 null null 15.95 null 64.92 0.52
MUS Africa Mauritius 2020-07-07 342.0 0.0 0.143 10.0 0.0 0.0 268.917 0.0 0.112 7.863 0.0 0.0 6.0e-2 null null null null null null null null null null null null null null null null null 22.22 1271767.0 622.962 37.4 10.945 5.884 20292.745 0.5 224.644 22.02 3.2 40.7 null 3.4 74.99 0.79
MUS Africa Mauritius 2020-10-09 395.0 0.0 1.429 10.0 0.0 0.0 310.591 0.0 1.123 7.863 0.0 0.0 0.69 null null null null null null null null null null null null null null null null null 16.67 1271767.0 622.962 37.4 10.945 5.884 20292.745 0.5 224.644 22.02 3.2 40.7 null 3.4 74.99 0.79
MDA Europe Moldova 2020-08-31 36920.0 220.0 441.714 995.0 3.0 7.143 9152.29 54.537 109.499 246.656 0.744 1.771 1.03 null null null null null null null null null null null null null null null null null 57.41 4033963.0 123.655 37.6 10.864 6.955 5189.972 0.2 408.502 5.72 5.9 44.6 86.979 5.8 71.9 0.7
MDA Europe Moldova 2020-10-10 61762.0 929.0 839.143 1458.0 16.0 15.0 15310.502 230.295 208.019 361.431 3.966 3.718 1.05 null null null null null null null null null null null null null null null null null 48.15 4033963.0 123.655 37.6 10.864 6.955 5189.972 0.2 408.502 5.72 5.9 44.6 86.979 5.8 71.9 0.7
MNG Asia Mongolia 2020-04-07 15.0 0.0 0.429 0.0 0.0 0.0 4.576 0.0 0.131 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 65.74 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
TLS Asia Timor 2020-09-27 27.0 0.0 0.0 0.0 0.0 0.0 20.479 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 29.63 1318442.0 87.176 18.0 3.556 1.897 6570.102 30.3 335.346 6.86 6.3 78.1 28.178 5.9 69.5 0.625
TGO Africa Togo 2020-05-25 386.0 5.0 8.0 13.0 1.0 0.143 46.625 0.604 0.966 1.57 0.121 1.7e-2 1.04 null null null null null null null null 17066.0 302.0 2.061 3.6e-2 514.0 6.2e-2 1.6e-2 64.2 null 73.15 8278737.0 143.366 19.4 2.839 1.525 1429.813 49.2 280.033 6.15 0.9 14.2 10.475 0.7 61.04 0.503
TTO North America Trinidad and Tobago 2020-09-13 3042.0 49.0 113.143 53.0 2.0 2.714 2173.647 35.013 80.846 37.871 1.429 1.939 1.11 null null null null null null null null 23681.0 173.0 16.921 0.124 252.0 0.18 0.449 2.2 null 80.56 1399491.0 266.886 36.2 10.014 5.819 28763.071 null 228.467 10.97 null null 89.443 3.0 73.51 0.784
TTO North America Trinidad and Tobago 2020-10-04 4763.0 48.0 57.286 81.0 2.0 1.429 3403.38 34.298 40.933 57.878 1.429 1.021 0.8 null null null null null null null null 29209.0 192.0 20.871 0.137 233.0 0.166 0.246 4.1 null 80.56 1399491.0 266.886 36.2 10.014 5.819 28763.071 null 228.467 10.97 null null 89.443 3.0 73.51 0.784
TTO North America Trinidad and Tobago 2020-10-28 5594.0 26.0 28.857 107.0 1.0 0.857 3997.168 18.578 20.62 76.456 0.715 0.612 0.88 null null null null null null null null 32692.0 162.0 23.36 0.116 121.0 8.6e-2 0.238 4.2 null 65.74 1399491.0 266.886 36.2 10.014 5.819 28763.071 null 228.467 10.97 null null 89.443 3.0 73.51 0.784
TUN Africa Tunisia 2020-04-10 671.0 28.0 25.143 25.0 0.0 1.0 56.775 2.369 2.127 2.115 0.0 8.5e-2 0.93 null null null null null null null null 11238.0 562.0 0.951 4.8e-2 679.0 5.7e-2 3.7e-2 27.0 null 90.74 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUR Asia Turkey 2020-03-12 1.0 0.0 0.143 0.0 0.0 0.0 1.2e-2 0.0 2.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 23.15 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
TUR Asia Turkey 2020-10-23 357693.0 2165.0 1962.571 9658.0 74.0 72.143 4241.131 25.67 23.27 114.514 0.877 0.855 1.17 null null null null null null null null 1.2992246e7 115979.0 154.048 1.375 113924.0 1.351 1.7e-2 58.0 null 68.06 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
UGA Africa Uganda 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-08-01 1176.0 22.0 10.429 4.0 1.0 0.429 25.71 0.481 0.228 8.7e-2 2.2e-2 9.0e-3 1.29 null null null null null null null null null null null null 2512.0 5.5e-2 4.0e-3 240.9 null 76.85 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-10-21 10933.0 145.0 123.429 98.0 1.0 0.429 239.02 3.17 2.698 2.142 2.2e-2 9.0e-3 1.04 null null null null null null null null 529236.0 1886.0 11.57 4.1e-2 2045.0 4.5e-2 6.0e-2 16.6 null 61.11 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UKR Europe Ukraine 2020-06-13 31177.0 762.0 582.286 890.0 10.0 15.0 712.882 17.424 13.314 20.35 0.229 0.343 1.2 null null null null null null null null 479111.0 10939.0 10.955 0.25 9224.0 0.211 6.3e-2 15.8 null 76.39 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
UKR Europe Ukraine 2020-09-04 134069.0 2769.0 2413.857 2812.0 53.0 44.714 3065.572 63.315 55.194 64.298 1.212 1.022 1.14 null null null null null null null null null null null null 21895.0 0.501 0.11 9.1 null 64.35 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
UKR Europe Ukraine 2020-10-02 223376.0 4751.0 3820.714 4357.0 69.0 63.857 5107.633 108.635 87.363 99.626 1.578 1.46 1.18 null null null null null null null null 2337942.0 29527.0 53.459 0.675 25898.0 0.592 0.148 6.8 null 58.8 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
ARE Asia United Arab Emirates 2020-03-19 140.0 27.0 7.857 0.0 0.0 0.0 14.155 2.73 0.794 null 0.0 0.0 1.5 null null null null null null null null 114569.0 13857.0 11.584 1.401 5863.0 0.593 1.0e-3 746.2 null 45.37 9890400.0 112.442 34.0 1.144 0.526 67293.483 null 317.84 17.26 1.2 37.4 null 1.2 77.97 0.863
ARE Asia United Arab Emirates 2020-07-06 52068.0 528.0 546.0 324.0 1.0 1.429 5264.499 53.385 55.205 32.759 0.101 0.144 1.05 null null null null null null null null 3890424.0 51430.0 393.354 5.2 50542.0 5.11 1.1e-2 92.6 null 43.52 9890400.0 112.442 34.0 1.144 0.526 67293.483 null 317.84 17.26 1.2 37.4 null 1.2 77.97 0.863
ARE Asia United Arab Emirates 2020-10-21 119132.0 1538.0 1299.0 472.0 2.0 3.143 12045.216 155.504 131.339 47.723 0.202 0.318 1.08 null null null null null null null null 1.1988391e7 105740.0 1212.124 10.691 110243.0 11.146 1.2e-2 84.9 null 50.93 9890400.0 112.442 34.0 1.144 0.526 67293.483 null 317.84 17.26 1.2 37.4 null 1.2 77.97 0.863
ARE Asia United Arab Emirates 2020-11-19 155254.0 1153.0 1217.0 544.0 2.0 3.0 15697.444 116.578 123.049 55.003 0.202 0.303 1.01 null null null null null null null null 1.5405022e7 120041.0 1557.573 12.137 114706.0 11.598 1.1e-2 94.3 null 45.37 9890400.0 112.442 34.0 1.144 0.526 67293.483 null 317.84 17.26 1.2 37.4 null 1.2 77.97 0.863
GBR Europe United Kingdom 2020-08-16 320343.0 1111.0 1109.857 41451.0 5.0 12.571 4718.837 16.366 16.349 610.597 7.4e-2 0.185 1.04 78.0 1.149 917.0 13.508 null null 718.105 10.578 1.1978298e7 162256.0 176.447 2.39 160168.0 2.359 7.0e-3 144.3 null 66.2 6.7886004e7 272.898 40.8 18.517 12.527 39753.244 0.2 122.137 4.28 20.0 24.7 null 2.54 81.32 0.922
USA North America United States 2020-08-12 5183020.0 56796.0 53010.714 166087.0 1506.0 1026.429 15658.545 171.588 160.152 501.769 4.55 3.101 0.93 9555.0 28.867 47949.0 144.86 null null null null 7.4717483e7 985955.0 225.731 2.979 855780.0 2.585 6.0e-2 16.7 null 67.13 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
URY South America Uruguay 2020-09-03 1636.0 10.0 12.143 44.0 0.0 0.143 470.964 2.879 3.496 12.667 0.0 4.1e-2 1.11 null null null null null null null null 178629.0 null 51.423 null 1787.0 0.514 7.0e-3 147.2 null 32.41 3473727.0 19.751 35.6 14.655 10.361 20551.409 0.1 160.708 6.93 14.0 19.9 null 2.8 77.91 0.804
UZB Asia Uzbekistan 2020-03-05 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 16.67 3.3469199e7 76.134 28.2 4.469 2.873 6253.104 null 724.417 7.57 1.3 24.7 null 4.0 71.72 0.71
VUT Oceania Vanuatu 2020-05-27 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 66.67 307150.0 22.662 23.1 4.394 2.62 2921.909 13.2 546.3 12.02 2.8 34.5 25.209 null 70.47 0.603
VUT Oceania Vanuatu 2020-07-10 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 66.67 307150.0 22.662 23.1 4.394 2.62 2921.909 13.2 546.3 12.02 2.8 34.5 25.209 null 70.47 0.603
VEN South America Venezuela 2020-03-12 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 33.33 2.8435943e7 36.253 29.0 6.614 3.915 16745.022 null 204.85 6.47 null null null 0.8 72.06 0.761
ESH Africa Western Sahara 2020-06-07 9.0 0.0 0.0 1.0 0.0 0.0 15.067 0.0 0.0 1.674 0.0 0.0 null null null null null null null null null null null null null null null null null null null 597330.0 null 28.4 null 1.38 null null null null null null null null 70.26 null
OWID_WRL World World 2020-03-30 799127.0 65288.0 58894.286 39636.0 4052.0 3262.714 102.521 8.376 7.556 5.085 0.52 0.419 1.58 null null null null null null null null null null null null null null null null null null 7.794798729e9 58.045 30.9 8.696 5.355 15469.207 10.0 233.07 8.51 6.434 34.635 60.13 2.705 72.58 null
YEM Asia Yemen 2020-05-12 65.0 9.0 6.143 10.0 1.0 0.857 2.179 0.302 0.206 0.335 3.4e-2 2.9e-2 null null null null null null null null null null null null null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452
YEM Asia Yemen 2020-08-29 1946.0 3.0 5.571 563.0 0.0 2.429 65.245 0.101 0.187 18.876 0.0 8.1e-2 0.83 null null null null null null null null null null null null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452
YEM Asia Yemen 2020-10-25 2060.0 0.0 0.571 599.0 0.0 0.286 69.067 0.0 1.9e-2 20.083 0.0 1.0e-2 0.74 null null null null null null null null null null null null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452
YEM Asia Yemen 2020-11-14 2072.0 0.0 0.286 605.0 0.0 0.429 69.47 0.0 1.0e-2 20.284 0.0 1.4e-2 0.8 null null null null null null null null null null null null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452
ZMB Africa Zambia 2020-10-27 16243.0 43.0 37.286 348.0 0.0 0.286 883.542 2.339 2.028 18.93 0.0 1.6e-2 0.91 null null null null null null null null 241276.0 3566.0 13.124 0.194 3790.0 0.206 1.0e-2 101.6 null 45.37 1.8383956e7 22.995 17.7 2.48 1.542 3689.251 57.5 234.499 3.94 3.1 24.7 13.938 2.0 63.89 0.588
ZWE Africa Zimbabwe 2020-03-24 3.0 0.0 0.429 1.0 0.0 0.143 0.202 0.0 2.9e-2 6.7e-2 0.0 1.0e-2 null null null null null null null null null null null null null null null null null null 56.48 1.4862927e7 42.729 19.6 2.822 1.882 1899.775 21.4 307.846 1.82 1.6 30.7 36.791 1.7 61.49 0.535
ZWE Africa Zimbabwe 2020-09-04 6837.0 159.0 64.143 206.0 0.0 1.571 460.004 10.698 4.316 13.86 0.0 0.106 1.02 null null null null null null null null 103790.0 919.0 6.983 6.2e-2 931.0 6.3e-2 6.9e-2 14.5 null 80.56 1.4862927e7 42.729 19.6 2.822 1.882 1899.775 21.4 307.846 1.82 1.6 30.7 36.791 1.7 61.49 0.535
AFG Asia Afghanistan 2020-05-23 10001.0 782.0 514.0 217.0 11.0 7.0 256.908 20.088 13.204 5.574 0.283 0.18 1.28 null null null null null null null null null null null null null null null null null 84.26 3.8928341e7 54.422 18.6 2.581 1.337 1803.987 null 597.029 9.59 null null 37.746 0.5 64.83 0.498
AFG Asia Afghanistan 2020-07-19 35453.0 174.0 144.571 1183.0 17.0 24.429 910.725 4.47 3.714 30.389 0.437 0.628 0.78 null null null null null null null null null null null null null null null null null 78.7 3.8928341e7 54.422 18.6 2.581 1.337 1803.987 null 597.029 9.59 null null 37.746 0.5 64.83 0.498
ALB Europe Albania 2020-10-02 13965.0 159.0 131.429 389.0 1.0 2.286 4852.665 55.251 45.67 135.173 0.347 0.794 1.08 null null null null null null null null null null null null null null null null null 54.63 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
DZA Africa Algeria 2020-03-29 511.0 57.0 44.286 31.0 2.0 2.0 11.653 1.3 1.01 0.707 4.6e-2 4.6e-2 1.73 null null null null null null null null null null null null null null null null null 75.0 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
DZA Africa Algeria 2020-08-27 43016.0 397.0 394.0 1475.0 10.0 9.143 980.957 9.053 8.985 33.637 0.228 0.208 0.91 null null null null null null null null null null null null null null null null null 79.63 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
AGO Africa Angola 2020-03-20 1.0 1.0 0.143 0.0 0.0 0.0 3.0e-2 3.0e-2 4.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 3.2866268e7 23.89 16.8 2.405 1.362 5819.495 null 276.045 3.94 null null 26.664 null 61.15 0.581
AGO Africa Angola 2020-05-22 60.0 2.0 1.714 3.0 0.0 0.143 1.826 6.1e-2 5.2e-2 9.1e-2 0.0 4.0e-3 null null null null null null null null null null null null null null null null null null 81.48 3.2866268e7 23.89 16.8 2.405 1.362 5819.495 null 276.045 3.94 null null 26.664 null 61.15 0.581
ATG North America Antigua and Barbuda 2020-05-25 25.0 0.0 0.0 3.0 0.0 0.0 255.29 0.0 0.0 30.635 0.0 0.0 null null null null null null null null null null null null null null null null null null null 97928.0 231.845 32.1 6.933 4.631 21490.943 null 191.511 13.17 null null null 3.8 77.02 0.78
ATG North America Antigua and Barbuda 2020-07-29 91.0 5.0 2.143 3.0 0.0 0.0 929.254 51.058 21.882 30.635 0.0 0.0 null null null null null null null null null null null null null null null null null null null 97928.0 231.845 32.1 6.933 4.631 21490.943 null 191.511 13.17 null null null 3.8 77.02 0.78
ARG South America Argentina 2020-11-16 1318384.0 7893.0 9697.857 35727.0 291.0 260.0 29170.513 174.64 214.574 790.494 6.439 5.753 0.94 null null null null null null null null null null null null null null null null null 79.17 4.5195777e7 16.177 31.9 11.198 7.441 18933.907 0.6 191.032 5.5 16.2 27.7 null 5.0 76.67 0.825
AUS Oceania Australia 2020-04-09 6108.0 98.0 141.714 51.0 1.0 3.857 239.531 3.843 5.557 2.0 3.9e-2 0.151 0.58 null null null null null null null null 330134.0 10766.0 12.946 0.422 9970.0 0.391 1.4e-2 70.4 null 73.15 2.5499881e7 3.202 37.9 15.504 10.129 44648.71 0.5 107.791 5.07 13.0 16.5 null 3.84 83.44 0.939
AUS Oceania Australia 2020-04-24 6677.0 15.0 22.143 79.0 4.0 1.857 261.844 0.588 0.868 3.098 0.157 7.3e-2 0.41 null null null null null null null null 482370.0 15711.0 18.917 0.616 12977.0 0.509 2.0e-3 586.1 null 69.44 2.5499881e7 3.202 37.9 15.504 10.129 44648.71 0.5 107.791 5.07 13.0 16.5 null 3.84 83.44 0.939
AUS Oceania Australia 2020-10-10 27263.0 19.0 18.286 898.0 1.0 0.571 1069.142 0.745 0.717 35.216 3.9e-2 2.2e-2 0.97 null null null null null null null null null null null null 33551.0 1.316 1.0e-3 1834.8 null 68.06 2.5499881e7 3.202 37.9 15.504 10.129 44648.71 0.5 107.791 5.07 13.0 16.5 null 3.84 83.44 0.939
AUT Europe Austria 2020-03-19 2013.0 367.0 244.429 6.0 2.0 0.714 223.508 40.749 27.139 0.666 0.222 7.9e-2 2.43 null null null null null null null null 13724.0 1747.0 1.524 0.194 1122.0 0.125 0.218 4.6 null 81.48 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-08-04 21481.0 96.0 114.857 719.0 1.0 0.857 2385.082 10.659 12.753 79.832 0.111 9.5e-2 0.99 23.0 2.554 84.0 9.327 null null null null 923902.0 7124.0 102.583 0.791 7614.0 0.845 1.5e-2 66.3 null 35.19 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-08-26 26033.0 327.0 278.429 733.0 0.0 0.571 2890.5 36.308 30.915 81.387 0.0 6.3e-2 1.18 23.0 2.554 118.0 13.102 null null null null 1119199.0 9110.0 124.267 1.012 10140.0 1.126 2.7e-2 36.4 null 35.19 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AZE Asia Azerbaijan 2020-06-26 15369.0 517.0 514.571 187.0 7.0 6.286 1515.804 50.99 50.751 18.443 0.69 0.62 1.2 null null null null null null null null null null null null null null null null null 96.3 1.0139175e7 119.309 32.4 6.018 3.871 15847.419 null 559.812 7.11 0.3 42.5 83.241 4.7 73.0 0.757
AZE Asia Azerbaijan 2020-07-08 21916.0 542.0 543.429 274.0 9.0 7.714 2161.517 53.456 53.597 27.024 0.888 0.761 1.02 null null null null null null null null null null null null null null null null null 96.3 1.0139175e7 119.309 32.4 6.018 3.871 15847.419 null 559.812 7.11 0.3 42.5 83.241 4.7 73.0 0.757
BHS North America Bahamas 2020-09-29 3903.0 65.0 62.286 91.0 2.0 2.0 9925.035 165.29 158.388 231.406 5.086 5.086 1.19 null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHS North America Bahamas 2020-10-13 5163.0 0.0 86.286 108.0 0.0 1.143 13129.12 0.0 219.418 274.636 0.0 2.906 1.09 null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHR Asia Bahrain 2020-03-07 85.0 25.0 6.286 0.0 0.0 0.0 49.953 14.692 3.694 null 0.0 0.0 null null null null null null null null null 6420.0 null 3.773 null null null null null null 30.56 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-07-09 31528.0 597.0 527.286 103.0 5.0 1.286 18528.629 350.85 309.88 60.532 2.938 0.756 1.03 null null null null null null null null null null null null 10160.0 5.971 5.2e-2 19.3 null 69.44 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-10-21 78907.0 374.0 326.571 308.0 3.0 3.0 46372.701 219.795 191.922 181.008 1.763 1.763 0.89 null null null null null null null null 1638436.0 10360.0 962.889 6.088 10057.0 5.91 3.2e-2 30.8 null 63.89 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-11-14 84523.0 174.0 179.857 333.0 1.0 0.571 49673.157 102.258 105.7 195.7 0.588 0.336 0.87 null null null null null null null null 1885616.0 8435.0 1108.154 4.957 10218.0 6.005 1.8e-2 56.8 null 58.33 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BGD Asia Bangladesh 2020-04-26 5416.0 418.0 422.857 145.0 5.0 7.714 32.886 2.538 2.568 0.88 3.0e-2 4.7e-2 1.44 null null null null null null null null 50401.0 3812.0 0.306 2.3e-2 3400.0 2.1e-2 0.124 8.0 null 93.52 1.64689383e8 1265.036 27.5 5.098 3.262 3523.984 14.8 298.003 8.38 1.0 44.7 34.808 0.8 72.59 0.608
BRB North America Barbados 2020-08-07 138.0 5.0 4.0 7.0 0.0 0.0 480.215 17.399 13.919 24.359 0.0 0.0 0.62 null null null null null null null null null null null null null null null null null 48.15 287371.0 664.463 39.8 14.952 9.473 16978.068 null 170.05 13.57 1.9 14.5 88.469 5.8 79.19 0.8
BLR Europe Belarus 2020-02-16 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 9449321.0 46.858 40.3 14.799 9.788 17167.967 null 443.129 5.18 10.5 46.1 null 11.0 74.79 0.808
BLR Europe Belarus 2020-07-01 62424.0 306.0 354.143 398.0 6.0 5.143 6606.189 32.383 37.478 42.119 0.635 0.544 0.72 null null null null null null null null null null null null 16577.0 1.754 2.1e-2 46.8 null 16.67 9449321.0 46.858 40.3 14.799 9.788 17167.967 null 443.129 5.18 10.5 46.1 null 11.0 74.79 0.808
BEL Europe Belgium 2020-04-17 36138.0 1329.0 1353.0 5163.0 306.0 306.286 3118.136 114.672 116.742 445.485 26.403 26.428 1.02 1119.0 96.552 5088.0 439.014 null null null null 198449.0 11300.0 17.123 0.975 9046.0 0.781 0.15 6.7 null 81.48 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-06-19 60476.0 128.0 93.857 9695.0 12.0 7.0 5218.119 11.044 8.098 836.525 1.035 0.604 0.87 50.0 4.314 308.0 26.576 null null null null 1133205.0 13395.0 97.778 1.156 12647.0 1.091 7.0e-3 134.7 null 51.85 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BLZ North America Belize 2020-10-28 3261.0 61.0 46.286 52.0 1.0 0.857 8201.277 153.412 116.407 130.778 2.515 2.156 1.17 null null null null null null null null null null null null null null null null null 66.67 397621.0 16.426 25.0 3.853 2.279 7824.362 null 176.957 17.11 null null 90.083 1.3 74.62 0.708
BEN Africa Benin 2020-04-25 54.0 0.0 2.714 1.0 0.0 0.0 4.454 0.0 0.224 8.2e-2 0.0 0.0 null null null null null null null null null null null null null null null null null null 70.83 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BTN Asia Bhutan 2020-07-13 84.0 0.0 0.571 0.0 0.0 0.0 108.863 0.0 0.741 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 71.3 771612.0 21.188 28.6 4.885 2.977 8708.597 1.5 217.066 9.75 null null 79.807 1.7 71.78 0.612
BTN Asia Bhutan 2020-11-19 378.0 0.0 1.286 0.0 0.0 0.0 489.884 0.0 1.666 null 0.0 0.0 0.76 null null null null null null null null null null null null null null null null null 66.67 771612.0 21.188 28.6 4.885 2.977 8708.597 1.5 217.066 9.75 null null 79.807 1.7 71.78 0.612
BTN Asia Bhutan 2020-12-02 415.0 1.0 4.143 0.0 0.0 0.0 537.835 1.296 5.369 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 771612.0 21.188 28.6 4.885 2.977 8708.597 1.5 217.066 9.75 null null 79.807 1.7 71.78 0.612
BIH Europe Bosnia and Herzegovina 2020-05-26 2416.0 10.0 13.571 149.0 3.0 2.143 736.402 3.048 4.137 45.416 0.914 0.653 1.16 null null null null null null null null null null null null null null null null null 71.3 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BWA Africa Botswana 2020-04-17 15.0 0.0 0.286 1.0 0.0 0.0 6.379 0.0 0.121 0.425 0.0 0.0 null null null null null null null null null null null null null null null null null null 86.11 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BWA Africa Botswana 2020-08-24 1562.0 254.0 36.286 3.0 0.0 0.0 664.222 108.01 15.43 1.276 0.0 0.0 0.78 null null null null null null null null null null null null null null null null null 47.22 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BRA South America Brazil 2020-06-15 888271.0 20647.0 25837.0 43959.0 627.0 975.0 4178.931 97.135 121.552 206.808 2.95 4.587 1.15 null null null null null null null null null null null null null null null null null 77.31 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-07-30 2610102.0 57837.0 46089.571 91263.0 1129.0 1025.857 12279.4 272.098 216.831 429.353 5.311 4.826 1.06 null null null null null null null null null null null null 67066.0 0.316 null null null 72.69 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-11-29 6314740.0 24468.0 34762.714 172833.0 272.0 521.429 29708.118 115.111 163.544 813.104 1.28 2.453 null null null null null null null null null null null null null null null null null null null 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRN Asia Brunei 2020-02-24 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BRN Asia Brunei 2020-05-21 141.0 0.0 0.0 1.0 0.0 0.0 322.298 0.0 0.0 2.286 0.0 0.0 1.0e-2 null null null null null null null null null null null null null null null null null 52.78 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BGR Europe Bulgaria 2020-07-21 9254.0 325.0 229.857 313.0 5.0 4.286 1331.809 46.773 33.08 45.046 0.72 0.617 1.11 34.0 4.893 624.0 89.804 null null null null 215572.0 9051.0 31.024 1.303 5128.0 0.738 4.5e-2 22.3 null 36.11 6948445.0 65.18 44.7 20.801 13.272 18563.307 1.5 424.688 5.81 30.1 44.4 null 7.454 75.05 0.813
BFA Africa Burkina Faso 2020-10-09 2254.0 13.0 18.714 60.0 0.0 0.143 107.83 0.622 0.895 2.87 0.0 7.0e-3 0.97 null null null null null null null null null null null null null null null null null 36.11 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BFA Africa Burkina Faso 2020-11-29 2856.0 40.0 17.286 68.0 0.0 0.0 136.629 1.914 0.827 3.253 0.0 0.0 null null null null null null null null null null null null null null null null null null 22.22 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BDI Africa Burundi 2020-11-28 681.0 0.0 3.571 1.0 0.0 0.0 57.271 0.0 0.3 8.4e-2 0.0 0.0 null null null null null null null null null null null null null null null null null null 14.81 1.1890781e7 423.062 17.5 2.562 1.504 702.225 71.7 293.068 6.05 null null 6.144 0.8 61.58 0.417
KHM Asia Cambodia 2020-04-12 122.0 2.0 1.143 0.0 0.0 0.0 7.297 0.12 6.8e-2 null 0.0 0.0 0.11 null null null null null null null null null null null null null null null null null 68.52 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-04-22 122.0 0.0 0.0 0.0 0.0 0.0 7.297 0.0 0.0 null 0.0 0.0 6.0e-2 null null null null null null null null null null null null null null null null null 57.41 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-06-02 125.0 0.0 0.143 0.0 0.0 0.0 7.477 0.0 9.0e-3 null 0.0 0.0 5.0e-2 null null null null null null null null null null null null null null null null null 40.74 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-10-08 281.0 0.0 0.429 0.0 0.0 0.0 16.807 0.0 2.6e-2 null 0.0 0.0 0.55 null null null null null null null null null null null null null null null null null 37.04 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-10-25 287.0 0.0 0.571 0.0 0.0 0.0 17.166 0.0 3.4e-2 null 0.0 0.0 0.82 null null null null null null null null null null null null null null null null null 34.26 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
CMR Africa Cameroon 2020-04-08 730.0 72.0 71.0 10.0 1.0 0.571 27.5 2.712 2.675 0.377 3.8e-2 2.2e-2 1.21 null null null null null null null null null null null null null null null null null 68.52 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CMR Africa Cameroon 2020-04-13 820.0 0.0 23.143 12.0 0.0 0.429 30.89 0.0 0.872 0.452 0.0 1.6e-2 1.21 null null null null null null null null null null null null null null null null null 68.52 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CMR Africa Cameroon 2020-06-18 9864.0 0.0 169.0 276.0 0.0 9.143 371.583 0.0 6.366 10.397 0.0 0.344 1.09 null null null null null null null null null null null null null null null null null 60.19 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CMR Africa Cameroon 2020-07-06 12592.0 0.0 0.0 313.0 0.0 0.0 474.349 0.0 0.0 11.791 0.0 0.0 1.03 null null null null null null null null null null null null null null null null null 60.19 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CMR Africa Cameroon 2020-07-25 16708.0 0.0 78.714 385.0 0.0 1.714 629.401 0.0 2.965 14.503 0.0 6.5e-2 1.02 null null null null null null null null null null null null null null null null null 60.19 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CMR Africa Cameroon 2020-10-25 21570.0 0.0 18.429 425.0 0.0 0.286 812.556 0.0 0.694 16.01 0.0 1.1e-2 0.96 null null null null null null null null null null null null null null null null null 45.37 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CPV Africa Cape Verde 2020-08-22 3455.0 43.0 41.714 37.0 0.0 0.429 6214.163 77.34 75.027 66.548 0.0 0.771 1.07 null null null null null null null null null null null null null null null null null 65.28 555988.0 135.58 25.7 4.46 3.437 6222.554 null 182.219 2.42 2.1 16.5 null 2.1 72.98 0.654
CAF Africa Central African Republic 2020-02-05 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 4829764.0 7.479 18.3 3.655 2.251 661.24 null 435.727 6.1 null null 16.603 1.0 53.28 0.367
CAF Africa Central African Republic 2020-04-07 8.0 0.0 0.714 0.0 0.0 0.0 1.656 0.0 0.148 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 68.52 4829764.0 7.479 18.3 3.655 2.251 661.24 null 435.727 6.1 null null 16.603 1.0 53.28 0.367
CHL South America Chile 2020-10-25 502063.0 1521.0 1471.857 13944.0 52.0 44.143 26263.733 79.566 76.995 729.433 2.72 2.309 0.97 null null null null null null null null 4111528.0 38473.0 215.081 2.013 32087.0 1.679 4.6e-2 21.8 null 81.94 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHL South America Chile 2020-10-31 510256.0 1685.0 1387.714 14207.0 49.0 45.0 26692.322 88.145 72.594 743.191 2.563 2.354 0.98 null null null null null null null null 4300738.0 39258.0 224.979 2.054 32526.0 1.701 4.3e-2 23.4 null 81.94 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHN Asia China 2020-08-16 89375.0 96.0 83.143 4703.0 0.0 2.429 62.095 6.7e-2 5.8e-2 3.268 0.0 2.0e-3 0.69 null null null null null null null null null null null null null null null null null 78.24 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
CHN Asia China 2020-10-31 91366.0 27.0 34.0 4739.0 0.0 0.0 63.478 1.9e-2 2.4e-2 3.293 0.0 0.0 1.13 null null null null null null null null null null null null null null null null null 63.43 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
CHN Asia China 2020-11-21 92037.0 60.0 29.857 4742.0 0.0 0.0 63.945 4.2e-2 2.1e-2 3.295 0.0 0.0 null null null null null null null null null null null null null null null null null null 76.39 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
COL South America Colombia 2020-03-19 108.0 6.0 14.143 0.0 0.0 0.0 2.123 0.118 0.278 null 0.0 0.0 1.86 null null null null null null null null 5363.0 673.0 0.105 1.3e-2 567.0 1.1e-2 null null null 50.93 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-05-01 7006.0 499.0 303.571 314.0 21.0 12.714 137.689 9.807 5.966 6.171 0.413 0.25 1.36 null null null null null null null null 108950.0 4293.0 2.141 8.4e-2 4424.0 8.7e-2 null null null 90.74 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-07-14 159898.0 5621.0 5057.714 5625.0 170.0 180.857 3142.471 110.469 99.399 110.548 3.341 3.554 1.25 null null null null null null null null 1082415.0 25601.0 21.273 0.503 25730.0 0.506 null null null 87.04 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-10-07 877684.0 7876.0 6857.857 27180.0 163.0 168.857 17249.101 154.787 134.777 534.168 3.203 3.319 1.04 null null null null null null null null 3526959.0 25357.0 69.315 0.498 25665.0 0.504 null null null 71.3 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COM Africa Comoros 2020-03-22 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COM Africa Comoros 2020-06-25 272.0 7.0 8.857 7.0 0.0 0.286 312.789 8.05 10.185 8.05 0.0 0.329 0.72 null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COM Africa Comoros 2020-08-20 417.0 11.0 2.571 7.0 0.0 0.0 479.534 12.65 2.957 8.05 0.0 0.0 0.66 null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COM Africa Comoros 2020-10-04 487.0 0.0 1.286 7.0 0.0 0.0 560.031 0.0 1.479 8.05 0.0 0.0 0.65 null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COG Africa Congo 2020-11-28 5774.0 0.0 20.286 94.0 0.0 0.143 1046.376 0.0 3.676 17.035 0.0 2.6e-2 null null null null null null null null null null null null null null null null null null 43.52 5518092.0 15.405 19.0 3.402 2.063 4881.406 37.0 344.094 7.2 1.7 52.3 47.964 null 64.57 0.606
CRI North America Costa Rica 2020-03-31 347.0 17.0 24.286 2.0 0.0 0.0 68.118 3.337 4.767 0.393 0.0 0.0 1.01 null null null null null null null null 3905.0 153.0 0.767 3.0e-2 293.0 5.8e-2 null null null 71.3 5094114.0 96.079 33.6 9.468 5.694 15524.995 1.3 137.973 8.78 6.4 17.4 83.841 1.13 80.28 0.794
CUB North America Cuba 2020-03-30 170.0 31.0 18.571 4.0 1.0 0.429 15.009 2.737 1.64 0.353 8.8e-2 3.8e-2 1.34 null null null null null null null null 2322.0 315.0 0.205 2.8e-2 242.0 2.1e-2 7.7e-2 13.0 null 66.67 1.1326616e7 110.408 43.1 14.738 9.719 null null 190.968 8.27 17.1 53.3 85.198 5.2 78.8 0.777
CUB North America Cuba 2020-08-30 3973.0 48.0 41.571 94.0 0.0 0.429 350.767 4.238 3.67 8.299 0.0 3.8e-2 1.09 null null null null null null null null 398223.0 5438.0 35.158 0.48 4696.0 0.415 9.0e-3 113.0 null 82.41 1.1326616e7 110.408 43.1 14.738 9.719 null null 190.968 8.27 17.1 53.3 85.198 5.2 78.8 0.777
CYP Europe Cyprus 2020-04-10 595.0 31.0 28.429 10.0 0.0 -0.143 679.302 35.392 32.456 11.417 0.0 -0.163 0.98 null null null null null null null null 16299.0 819.0 18.608 0.935 979.0 1.118 2.9e-2 34.4 null 92.59 875899.0 127.657 37.3 13.416 8.563 32415.132 null 141.171 9.24 19.6 52.7 null 3.4 80.98 0.869
CYP Europe Cyprus 2020-05-25 937.0 2.0 2.857 17.0 0.0 0.0 1069.758 2.283 3.262 19.409 0.0 0.0 0.86 null null null null null null null null 103705.0 2128.0 118.398 2.43 2140.0 2.443 1.0e-3 749.0 null 76.85 875899.0 127.657 37.3 13.416 8.563 32415.132 null 141.171 9.24 19.6 52.7 null 3.4 80.98 0.869
CZE Europe Czech Republic 2020-11-08 414828.0 3608.0 10454.857 4858.0 177.0 204.143 38736.455 336.913 976.27 453.638 16.528 19.063 0.8 1199.0 111.962 7787.0 727.147 2035.248 190.051 12831.914 1198.238 2601451.0 13727.0 242.922 1.282 35009.0 3.269 0.299 3.3 null 73.15 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
COD Africa Democratic Republic of Congo 2020-02-09 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
COD Africa Democratic Republic of Congo 2020-08-16 9676.0 38.0 31.714 240.0 1.0 2.286 108.038 0.424 0.354 2.68 1.1e-2 2.6e-2 1.03 null null null null null null null null null 208.0 null 2.0e-3 375.0 4.0e-3 8.5e-2 11.8 null 37.04 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
COD Africa Democratic Republic of Congo 2020-08-19 9741.0 20.0 29.0 246.0 3.0 3.0 108.763 0.223 0.324 2.747 3.3e-2 3.3e-2 1.03 null null null null null null null null null 398.0 null 4.0e-3 354.0 4.0e-3 8.2e-2 12.2 null 37.04 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
DNK Europe Denmark 2020-06-29 12951.0 76.0 32.0 605.0 1.0 0.429 2235.937 13.121 5.525 104.451 0.173 7.4e-2 0.98 null null null null null null null null 1046901.0 18718.0 180.743 3.232 15903.0 2.746 2.0e-3 497.0 null 57.41 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DNK Europe Denmark 2020-07-05 13033.0 1.0 22.571 606.0 0.0 0.286 2250.094 0.173 3.897 104.623 0.0 4.9e-2 1.01 6.0 1.036 24.0 4.144 null null 10.974 1.895 1131443.0 9737.0 195.339 1.681 14751.0 2.547 2.0e-3 653.5 null 57.41 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DNK Europe Denmark 2020-09-02 17620.0 111.0 94.0 626.0 1.0 0.429 3042.02 19.164 16.229 108.076 0.173 7.4e-2 1.25 4.0 0.691 15.0 2.59 null null null null 2561895.0 40022.0 442.301 6.91 34773.0 6.003 3.0e-3 369.9 null 50.93 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DJI Africa Djibouti 2020-04-04 50.0 1.0 5.143 0.0 0.0 0.0 50.607 1.012 5.205 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 94.44 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DJI Africa Djibouti 2020-05-31 3354.0 160.0 154.857 24.0 2.0 2.0 3394.73 161.943 156.738 24.291 2.024 2.024 1.27 null null null null null null null null null null null null null null null null null 59.26 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DJI Africa Djibouti 2020-07-20 5020.0 9.0 6.143 56.0 0.0 0.0 5080.961 9.109 6.217 56.68 0.0 0.0 0.66 null null null null null null null null null null null null null null null null null 50.93 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DJI Africa Djibouti 2020-08-14 5367.0 9.0 4.143 59.0 0.0 0.0 5432.175 9.109 4.193 59.716 0.0 0.0 0.44 null null null null null null null null null null null null null null null null null 50.93 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DJI Africa Djibouti 2020-11-19 5658.0 0.0 2.429 61.0 0.0 0.0 5726.709 0.0 2.458 61.741 0.0 0.0 0.63 null null null null null null null null null null null null null null null null null 43.52 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DMA North America Dominica 2020-08-25 20.0 0.0 0.286 0.0 0.0 0.0 277.813 0.0 3.969 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 36.11 71991.0 98.567 null null null 9673.367 null 227.376 11.62 null null null 3.8 75.0 0.715
DMA North America Dominica 2020-10-11 32.0 0.0 0.143 0.0 0.0 0.0 444.5 0.0 1.984 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 28.7 71991.0 98.567 null null null 9673.367 null 227.376 11.62 null null null 3.8 75.0 0.715
DMA North America Dominica 2020-11-15 68.0 0.0 0.714 0.0 0.0 0.0 944.563 0.0 9.922 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 34.26 71991.0 98.567 null null null 9673.367 null 227.376 11.62 null null null 3.8 75.0 0.715
ECU South America Ecuador 2020-08-13 98343.0 1233.0 1115.143 6010.0 26.0 19.0 5574.033 69.886 63.206 340.644 1.474 1.077 1.04 null null null null null null null null 214477.0 3285.0 12.156 0.186 2875.0 0.163 null null null 76.39 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
ECU South America Ecuador 2020-09-16 121525.0 1972.0 1337.0 10996.0 33.0 42.143 6887.977 111.772 75.781 623.248 1.87 2.389 1.17 null null null null null null null null 302597.0 5210.0 17.151 0.295 3380.0 0.192 null null null 51.39 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
ECU South America Ecuador 2020-10-07 143531.0 1475.0 926.286 11743.0 41.0 55.429 8135.267 83.602 52.501 665.587 2.324 3.142 0.98 null null null null null null null null 384086.0 5215.0 21.77 0.296 3453.0 0.196 null null null 51.39 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
EGY Africa Egypt 2020-06-15 46289.0 1691.0 1549.286 1672.0 97.0 57.286 452.331 16.524 15.139 16.339 0.948 0.56 1.11 null null null null null null null null null null null null null null null null null 71.3 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
SLV North America El Salvador 2020-07-28 15446.0 411.0 409.143 417.0 9.0 9.286 2381.363 63.365 63.079 64.29 1.388 1.432 1.1 null null null null null null null null 234086.0 2402.0 36.09 0.37 2453.0 0.378 0.167 6.0 null 89.81 6486201.0 307.811 27.6 8.273 5.417 7292.458 2.2 167.295 8.87 2.5 18.8 90.65 1.3 73.32 0.674
ERI Africa Eritrea 2020-11-09 491.0 0.0 1.571 0.0 0.0 0.0 138.449 0.0 0.443 null 0.0 0.0 0.39 null null null null null null null null null null null null null null null null null 82.41 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
EST Europe Estonia 2020-03-27 575.0 37.0 41.714 1.0 0.0 0.143 433.459 27.892 31.446 0.754 0.0 0.108 1.41 10.0 7.538 59.0 44.477 null null null null 9652.0 1288.0 7.276 0.971 898.0 0.677 4.6e-2 21.5 null 72.22 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
ETH Africa Ethiopia 2020-04-27 124.0 1.0 1.857 3.0 0.0 0.0 1.079 9.0e-3 1.6e-2 2.6e-2 0.0 0.0 0.38 null null null null null null null null 14588.0 943.0 0.127 8.0e-3 948.0 8.0e-3 2.0e-3 510.5 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
ETH Africa Ethiopia 2020-08-26 45221.0 1533.0 1594.714 725.0 16.0 17.857 393.351 13.335 13.871 6.306 0.139 0.155 1.09 null null null null null null null null 813410.0 18724.0 7.075 0.163 20110.0 0.175 7.9e-2 12.6 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
MNE Europe Montenegro 2020-02-28 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MNE Europe Montenegro 2020-09-27 10313.0 116.0 243.0 158.0 0.0 3.143 16420.353 184.695 386.904 251.568 0.0 5.004 0.94 null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MAR Africa Morocco 2020-02-10 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MAR Africa Morocco 2020-05-29 7714.0 71.0 54.571 202.0 0.0 0.714 208.992 1.924 1.478 5.473 0.0 1.9e-2 0.82 null null null null null null null null 190061.0 9872.0 5.149 0.267 9523.0 0.258 6.0e-3 174.5 null 93.52 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MMR Asia Myanmar 2020-11-08 61377.0 1029.0 1138.857 1420.0 24.0 23.143 1128.051 18.912 20.931 26.098 0.441 0.425 1.03 null null null null null null null null null null null null null null null null null 79.63 5.4409794e7 81.721 29.1 5.732 3.12 5591.597 6.4 202.104 4.61 6.3 35.2 79.287 0.9 67.13 0.578
NAM Africa Namibia 2020-03-04 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 2540916.0 3.078 22.0 3.552 2.085 9541.808 13.4 243.811 3.94 9.7 34.2 44.6 null 63.71 0.647
NAM Africa Namibia 2020-04-25 16.0 0.0 0.0 0.0 0.0 0.0 6.297 0.0 0.0 null 0.0 0.0 null null null null null null null null null 675.0 54.0 0.266 2.1e-2 25.0 1.0e-2 0.0 null null 73.15 2540916.0 3.078 22.0 3.552 2.085 9541.808 13.4 243.811 3.94 9.7 34.2 44.6 null 63.71 0.647
NPL Asia Nepal 2020-03-20 1.0 0.0 0.0 0.0 0.0 0.0 3.4e-2 0.0 0.0 null 0.0 0.0 null null null null null null null null null 546.0 17.0 1.9e-2 1.0e-3 13.0 0.0 0.0 null null 58.33 2.9136808e7 204.43 25.0 5.809 3.212 2442.804 15.0 260.797 7.26 9.5 37.8 47.782 0.3 70.78 0.574
NPL Asia Nepal 2020-07-05 15784.0 293.0 430.286 34.0 0.0 0.857 541.72 10.056 14.768 1.167 0.0 2.9e-2 0.82 null null null null null null null null 251007.0 4710.0 8.615 0.162 5024.0 0.172 8.6e-2 11.7 null 92.59 2.9136808e7 204.43 25.0 5.809 3.212 2442.804 15.0 260.797 7.26 9.5 37.8 47.782 0.3 70.78 0.574
NPL Asia Nepal 2020-10-25 158089.0 2856.0 3691.857 847.0 5.0 15.429 5425.749 98.02 126.708 29.07 0.172 0.53 0.96 null null null null null null null null 1393173.0 12311.0 47.815 0.423 15688.0 0.538 0.235 4.2 null 63.89 2.9136808e7 204.43 25.0 5.809 3.212 2442.804 15.0 260.797 7.26 9.5 37.8 47.782 0.3 70.78 0.574
NLD Europe Netherlands 2020-04-26 38040.0 656.0 743.143 4491.0 67.0 113.429 2220.034 38.284 43.37 262.097 3.91 6.62 0.72 806.0 47.039 null null 116.994 6.828 304.384 17.764 209718.0 null 12.239 null 5485.0 0.32 0.135 7.4 null 79.63 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-07-14 51362.0 54.0 65.0 6154.0 -2.0 0.429 2997.513 3.151 3.793 359.151 -0.117 2.5e-2 1.21 27.0 1.576 null null null null null null null null null null 11757.0 0.686 6.0e-3 180.9 null 39.81 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-08-27 70984.0 602.0 591.571 6244.0 3.0 4.143 4142.663 35.133 34.524 364.403 0.175 0.242 1.04 45.0 2.626 null null null null null null null null null null 24998.0 1.459 2.4e-2 42.3 null 50.93 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-09-18 94345.0 2083.0 1567.857 6318.0 8.0 4.0 5506.023 121.565 91.501 368.722 0.467 0.233 1.41 72.0 4.202 null null null null null null null null null null 28832.0 1.683 5.4e-2 18.4 null 50.93 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NZL Oceania New Zealand 2020-03-05 3.0 0.0 0.429 0.0 0.0 0.0 0.622 0.0 8.9e-2 null 0.0 0.0 null null null null null null null null null 332.0 27.0 6.9e-2 6.0e-3 null null null null null 19.44 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NIC North America Nicaragua 2020-04-29 13.0 0.0 0.429 3.0 0.0 0.143 1.962 0.0 6.5e-2 0.453 0.0 2.2e-2 null null null null null null null null null null null null null null null null null null 16.67 6624554.0 51.667 27.3 5.445 3.519 5321.444 3.2 137.016 11.47 null null null 0.9 74.48 0.658
NIC North America Nicaragua 2020-06-24 2170.0 0.0 49.571 74.0 0.0 1.429 327.569 0.0 7.483 11.171 0.0 0.216 0.26 null null null null null null null null null null null null null null null null null 11.11 6624554.0 51.667 27.3 5.445 3.519 5321.444 3.2 137.016 11.47 null null null 0.9 74.48 0.658
NIC North America Nicaragua 2020-10-07 5264.0 0.0 13.429 153.0 2.0 0.286 794.62 0.0 2.027 23.096 0.302 4.3e-2 0.41 null null null null null null null null null null null null null null null null null 8.33 6624554.0 51.667 27.3 5.445 3.519 5321.444 3.2 137.016 11.47 null null null 0.9 74.48 0.658
NIC North America Nicaragua 2020-10-18 5353.0 0.0 12.714 154.0 0.0 0.143 808.054 0.0 1.919 23.247 0.0 2.2e-2 0.41 null null null null null null null null null null null null null null null null null 8.33 6624554.0 51.667 27.3 5.445 3.519 5321.444 3.2 137.016 11.47 null null null 0.9 74.48 0.658
NER Africa Niger 2020-07-26 1136.0 12.0 4.571 69.0 0.0 0.0 46.929 0.496 0.189 2.85 0.0 0.0 0.74 null null null null null null null null null null null null null null null null null 25.93 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
NER Africa Niger 2020-09-24 1194.0 1.0 1.571 69.0 0.0 0.0 49.325 4.1e-2 6.5e-2 2.85 0.0 0.0 0.9 null null null null null null null null null null null null null null null null null 14.81 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
NGA Africa Nigeria 2020-05-23 7526.0 265.0 272.143 221.0 0.0 6.429 36.509 1.286 1.32 1.072 0.0 3.1e-2 1.19 null null null null null null null null 43328.0 1421.0 0.21 7.0e-3 1484.0 7.0e-3 0.183 5.5 null 84.26 2.06139587e8 209.588 18.1 2.751 1.447 5338.454 null 181.013 2.42 0.6 10.8 41.949 null 54.69 0.532
NOR Europe Norway 2020-04-08 6086.0 0.0 174.714 101.0 12.0 8.143 1122.621 0.0 32.228 18.63 2.214 1.502 0.81 null null 250.0 46.115 null null null null 105216.0 2276.0 19.408 0.42 2628.0 0.485 6.6e-2 15.0 null 79.63 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
OMN Asia Oman 2020-06-03 13537.0 738.0 737.714 67.0 8.0 4.0 2650.872 144.518 144.462 13.12 1.567 0.783 1.23 null null null null null null null null null null null null null null null null null 86.11 5106622.0 14.98 30.7 2.355 1.53 37960.709 null 266.342 12.61 0.5 15.6 97.4 1.6 77.86 0.821
PAK Asia Pakistan 2020-08-26 294193.0 482.0 535.429 6267.0 12.0 9.429 1331.839 2.182 2.424 28.371 5.4e-2 4.3e-2 0.86 null null null null null null null null 2512337.0 24593.0 11.374 0.111 24609.0 0.111 2.2e-2 46.0 null 47.69 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PSE Asia Palestine 2020-03-20 47.0 3.0 2.286 0.0 0.0 0.0 9.213 0.588 0.448 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 74.07 5101416.0 778.202 20.4 3.043 1.726 4449.898 1.0 265.91 10.59 null null null null 74.05 0.686
PSE Asia Palestine 2020-04-27 342.0 0.0 1.857 2.0 0.0 0.0 67.04 0.0 0.364 0.392 0.0 0.0 0.33 null null null null null null null null null null null null null null null null null 96.3 5101416.0 778.202 20.4 3.043 1.726 4449.898 1.0 265.91 10.59 null null null null 74.05 0.686
PSE Asia Palestine 2020-11-01 54060.0 540.0 516.857 489.0 6.0 5.857 10597.058 105.853 101.316 95.856 1.176 1.148 1.15 null null null null null null null null null 4053.0 null 0.794 4168.0 0.817 0.124 8.1 null 40.74 5101416.0 778.202 20.4 3.043 1.726 4449.898 1.0 265.91 10.59 null null null null 74.05 0.686
PAN North America Panama 2020-02-26 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PAN North America Panama 2020-08-01 66383.0 1127.0 1074.143 1449.0 28.0 24.857 15385.068 261.196 248.946 335.823 6.489 5.761 1.0 null null null null null null null null 224089.0 3668.0 51.935 0.85 3308.0 0.767 0.325 3.1 null 80.56 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PNG Oceania Papua New Guinea 2020-04-09 2.0 0.0 0.143 0.0 0.0 0.0 0.224 0.0 1.6e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 82.41 8947027.0 18.22 22.6 3.808 2.142 3823.194 null 561.494 17.65 23.5 48.8 null null 64.5 0.544
PNG Oceania Papua New Guinea 2020-11-30 656.0 11.0 3.714 7.0 0.0 0.0 73.32 1.229 0.415 0.782 0.0 0.0 null null null null null null null null null null null null null null null null null null 37.96 8947027.0 18.22 22.6 3.808 2.142 3823.194 null 561.494 17.65 23.5 48.8 null null 64.5 0.544
PRY South America Paraguay 2020-06-10 1202.0 15.0 18.857 11.0 0.0 0.0 168.524 2.103 2.644 1.542 0.0 0.0 1.18 null null null null null null null null 41702.0 1670.0 5.847 0.234 1232.0 0.173 1.5e-2 65.3 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PRY South America Paraguay 2020-08-30 17105.0 631.0 553.143 308.0 14.0 14.714 2398.167 88.468 77.552 43.182 1.963 2.063 1.18 null null null null null null null null 190169.0 1610.0 26.662 0.226 2404.0 0.337 0.23 4.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PRY South America Paraguay 2020-10-02 42684.0 885.0 779.714 890.0 21.0 18.429 5984.412 124.079 109.318 124.78 2.944 2.584 1.09 null null null null null null null null 283537.0 2628.0 39.753 0.368 2787.0 0.391 0.28 3.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PRT Europe Portugal 2020-06-02 32895.0 195.0 269.714 1436.0 12.0 13.429 3226.042 19.124 26.451 140.83 1.177 1.317 1.09 58.0 5.688 432.0 42.367 null null null null 881524.0 15640.0 86.452 1.534 13827.0 1.356 2.0e-2 51.3 null 71.3 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
PRT Europe Portugal 2020-10-17 98055.0 2153.0 1783.0 2162.0 13.0 13.571 9616.34 211.147 174.86 212.029 1.275 1.331 1.42 148.0 14.514 1012.0 99.248 null null null null 3059464.0 23723.0 300.044 2.327 26828.0 2.631 6.6e-2 15.0 null 56.94 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
QAT Asia Qatar 2020-04-30 13409.0 845.0 806.429 10.0 0.0 0.0 4654.19 293.295 279.907 3.471 0.0 0.0 1.19 null null null null null null null null 94500.0 3085.0 32.8 1.071 3006.0 1.043 0.268 3.7 null 83.33 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
QAT Asia Qatar 2020-05-08 20201.0 1311.0 872.143 12.0 0.0 0.0 7011.655 455.041 302.716 4.165 0.0 0.0 1.44 null null null null null null null null 120458.0 3963.0 41.81 1.376 3247.0 1.127 0.269 3.7 null 83.33 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
QAT Asia Qatar 2020-09-30 125760.0 227.0 226.429 214.0 0.0 0.286 43650.601 78.79 78.592 74.278 0.0 9.9e-2 0.93 null null null null null null null null 775914.0 5701.0 269.315 1.979 5260.0 1.826 4.3e-2 23.2 null 64.81 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
ROU Europe Romania 2020-04-11 5990.0 523.0 339.571 291.0 21.0 20.714 311.368 27.186 17.651 15.127 1.092 1.077 1.28 208.0 10.812 null null null null null null 59272.0 3842.0 3.081 0.2 3311.0 0.172 0.103 9.8 null 87.04 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
ROU Europe Romania 2020-09-07 95897.0 883.0 1193.857 3926.0 33.0 43.571 4984.852 45.9 62.058 204.079 1.715 2.265 1.01 465.0 24.171 null null null null null null 1945738.0 7247.0 101.142 0.377 20399.0 1.06 5.9e-2 17.1 null 45.37 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
RUS Europe Russia 2020-06-15 536484.0 8217.0 8634.429 7081.0 143.0 159.714 3676.198 56.306 59.166 48.522 0.98 1.094 0.96 null null null null null null null null 1.5395417e7 234265.0 105.495 1.605 305820.0 2.096 2.8e-2 35.4 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816
RUS Europe Russia 2020-06-28 633563.0 6784.0 7097.714 9060.0 102.0 137.0 4341.421 46.487 48.636 62.083 0.699 0.939 0.91 null null null null null null null null 1.9334442e7 289488.0 132.487 1.984 292107.0 2.002 2.4e-2 41.2 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816
RWA Africa Rwanda 2020-03-25 41.0 1.0 4.714 0.0 0.0 0.0 3.165 7.7e-2 0.364 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 90.74 1.2952209e7 494.869 20.3 2.974 1.642 1854.211 56.0 191.375 4.28 4.7 21.0 4.617 null 69.02 0.524
RWA Africa Rwanda 2020-05-11 285.0 1.0 3.429 0.0 0.0 0.0 22.004 7.7e-2 0.265 null 0.0 0.0 0.8 null null null null null null null null 42805.0 380.0 3.305 2.9e-2 1101.0 8.5e-2 3.0e-3 321.1 null 73.15 1.2952209e7 494.869 20.3 2.974 1.642 1854.211 56.0 191.375 4.28 4.7 21.0 4.617 null 69.02 0.524
RWA Africa Rwanda 2020-06-04 410.0 13.0 8.714 2.0 0.0 0.286 31.655 1.004 0.673 0.154 0.0 2.2e-2 1.41 null null null null null null null null 72510.0 1369.0 5.598 0.106 1177.0 9.1e-2 7.0e-3 135.1 null 75.93 1.2952209e7 494.869 20.3 2.974 1.642 1854.211 56.0 191.375 4.28 4.7 21.0 4.617 null 69.02 0.524
RWA Africa Rwanda 2020-07-06 1113.0 8.0 16.0 3.0 0.0 0.143 85.931 0.618 1.235 0.232 0.0 1.1e-2 1.13 null null null null null null null null 163384.0 2834.0 12.614 0.219 3305.0 0.255 5.0e-3 206.6 null 77.78 1.2952209e7 494.869 20.3 2.974 1.642 1854.211 56.0 191.375 4.28 4.7 21.0 4.617 null 69.02 0.524
KNA North America Saint Kitts and Nevis 2020-10-29 19.0 0.0 0.0 0.0 0.0 0.0 357.197 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 53192.0 212.865 null null null 24654.385 null null 12.84 null null null 2.3 76.23 0.778
LCA North America Saint Lucia 2020-02-10 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 183629.0 293.187 34.9 9.721 6.405 12951.839 null 204.62 11.62 null null 87.202 1.3 76.2 0.747
LCA North America Saint Lucia 2020-03-10 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 183629.0 293.187 34.9 9.721 6.405 12951.839 null 204.62 11.62 null null 87.202 1.3 76.2 0.747
LCA North America Saint Lucia 2020-03-12 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 183629.0 293.187 34.9 9.721 6.405 12951.839 null 204.62 11.62 null null 87.202 1.3 76.2 0.747
VCT North America Saint Vincent and the Grenadines 2020-02-26 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
SMR Europe San Marino 2020-05-29 671.0 1.0 1.429 42.0 0.0 0.143 19771.348 29.465 42.094 1237.551 0.0 4.209 0.61 null null null null null null null null null null null null null null null null null 66.67 33938.0 556.667 null null null 56861.47 null null 5.64 null null null 3.8 84.97 null
SAU Asia Saudi Arabia 2020-05-06 31938.0 1687.0 1505.143 209.0 9.0 7.429 917.393 48.458 43.234 6.003 0.259 0.213 1.29 null null null null null null null null 446983.0 16026.0 12.839 0.46 12498.0 0.359 0.12 8.3 null 91.67 3.4813867e7 15.322 31.9 3.295 1.845 49045.411 null 259.538 17.72 1.8 25.4 null 2.7 75.13 0.853
SAU Asia Saudi Arabia 2020-08-09 288690.0 1428.0 1407.857 3167.0 37.0 35.714 8292.385 41.018 40.44 90.969 1.063 1.026 0.86 null null null null null null null null 3872599.0 59325.0 111.237 1.704 56983.0 1.637 2.5e-2 40.5 null 71.3 3.4813867e7 15.322 31.9 3.295 1.845 49045.411 null 259.538 17.72 1.8 25.4 null 2.7 75.13 0.853
SEN Africa Senegal 2020-04-04 219.0 12.0 12.714 2.0 1.0 0.286 13.079 0.717 0.759 0.119 6.0e-2 1.7e-2 0.88 null null null null null null null null 1952.0 177.0 0.117 1.1e-2 141.0 8.0e-3 9.0e-2 11.1 null 77.78 1.674393e7 82.328 18.7 3.008 1.796 2470.58 38.0 241.219 2.42 0.4 16.6 20.859 null 67.94 0.505
SEN Africa Senegal 2020-06-23 6034.0 64.0 112.429 89.0 3.0 2.714 360.369 3.822 6.715 5.315 0.179 0.162 1.0 null null null null null null null null 72161.0 1045.0 4.31 6.2e-2 1186.0 7.1e-2 9.5e-2 10.5 null 61.11 1.674393e7 82.328 18.7 3.008 1.796 2470.58 38.0 241.219 2.42 0.4 16.6 20.859 null 67.94 0.505
SEN Africa Senegal 2020-09-05 13948.0 67.0 70.286 290.0 1.0 1.143 833.018 4.001 4.198 17.32 6.0e-2 6.8e-2 0.77 null null null null null null null null 158152.0 1313.0 9.445 7.8e-2 1170.0 7.0e-2 6.0e-2 16.6 null 37.96 1.674393e7 82.328 18.7 3.008 1.796 2470.58 38.0 241.219 2.42 0.4 16.6 20.859 null 67.94 0.505
SEN Africa Senegal 2020-09-10 14150.0 48.0 46.286 293.0 0.0 0.857 845.082 2.867 2.764 17.499 0.0 5.1e-2 0.83 null null null null null null null null 163438.0 933.0 9.761 5.6e-2 1135.0 6.8e-2 4.1e-2 24.5 null 37.96 1.674393e7 82.328 18.7 3.008 1.796 2470.58 38.0 241.219 2.42 0.4 16.6 20.859 null 67.94 0.505
SEN Africa Senegal 2020-11-25 15927.0 19.0 14.857 331.0 0.0 0.286 951.21 1.135 0.887 19.768 0.0 1.7e-2 null null null null null null null null null 234381.0 743.0 13.998 4.4e-2 773.0 4.6e-2 1.9e-2 52.0 null 37.96 1.674393e7 82.328 18.7 3.008 1.796 2470.58 38.0 241.219 2.42 0.4 16.6 20.859 null 67.94 0.505
SRB Europe Serbia 2020-02-26 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null 16.0 null 2.0e-3 null null null null null null 13.89 6804596.0 80.291 41.2 17.366 null 14048.881 null 439.415 10.08 37.7 40.2 97.719 5.609 76.0 0.787
SRB Europe Serbia 2020-05-23 11092.0 68.0 85.143 238.0 1.0 1.429 1630.075 9.993 12.513 34.976 0.147 0.21 0.77 null null null null null null null null 214212.0 4415.0 31.48 0.649 5638.0 0.829 1.5e-2 66.2 null 49.07 6804596.0 80.291 41.2 17.366 null 14048.881 null 439.415 10.08 37.7 40.2 97.719 5.609 76.0 0.787
SYC Africa Seychelles 2020-03-30 8.0 0.0 0.143 0.0 0.0 0.0 81.35 0.0 1.453 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 52.78 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SYC Africa Seychelles 2020-11-23 166.0 3.0 0.857 0.0 0.0 0.0 1688.021 30.506 8.716 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SLE Africa Sierra Leone 2020-07-29 1803.0 17.0 10.286 67.0 1.0 0.143 226.025 2.131 1.289 8.399 0.125 1.8e-2 0.97 null null null null null null null null null null null null null null null null null 32.41 7976985.0 104.7 19.1 2.538 1.285 1390.3 52.2 325.721 2.42 8.8 41.3 19.275 null 54.7 0.419
SGP Asia Singapore 2020-02-19 84.0 3.0 4.857 0.0 0.0 0.0 14.358 0.513 0.83 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 25.0 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SGP Asia Singapore 2020-04-17 5050.0 623.0 420.286 11.0 1.0 0.571 863.197 106.489 71.839 1.88 0.171 9.8e-2 2.16 null null null null null null null null null null null null 3732.0 0.638 0.113 8.9 null 85.19 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SVK Europe Slovakia 2020-08-12 2690.0 75.0 39.0 31.0 0.0 0.286 492.706 13.737 7.143 5.678 0.0 5.2e-2 1.31 null null 39.0 7.143 null null null null 286852.0 2741.0 52.54 0.502 2076.0 0.38 1.9e-2 53.2 null 35.19 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVK Europe Slovakia 2020-10-18 29835.0 1567.0 1426.286 88.0 6.0 3.857 5464.643 287.015 261.242 16.118 1.099 0.706 1.35 null null 481.0 88.101 null null null null 622032.0 5025.0 113.933 0.92 9941.0 1.821 0.143 7.0 null 53.7 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVN Europe Slovenia 2020-09-16 3954.0 123.0 91.714 135.0 0.0 0.0 1901.938 59.165 44.116 64.937 0.0 0.0 1.39 11.0 5.291 61.0 29.342 null null null null 191413.0 3070.0 92.073 1.477 2470.0 1.188 3.7e-2 26.9 null 46.3 2078932.0 102.619 44.5 19.062 12.93 31400.84 null 153.493 7.25 20.1 25.0 null 4.5 81.32 0.896
SVN Europe Slovenia 2020-11-30 75814.0 433.0 1433.714 1435.0 51.0 48.286 36467.763 208.28 689.64 690.258 24.532 23.226 null null null null null null null null null 523620.0 5868.0 251.87 2.823 5767.0 2.774 0.249 4.0 null 68.52 2078932.0 102.619 44.5 19.062 12.93 31400.84 null 153.493 7.25 20.1 25.0 null 4.5 81.32 0.896
SLB Oceania Solomon Islands 2020-08-31 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 33.33 686878.0 21.841 20.8 3.507 2.043 2205.923 25.1 459.78 18.68 null null 35.89 1.4 73.0 0.546
SLB Oceania Solomon Islands 2020-09-21 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 36.11 686878.0 21.841 20.8 3.507 2.043 2205.923 25.1 459.78 18.68 null null 35.89 1.4 73.0 0.546
SOM Africa Somalia 2020-10-05 3745.0 0.0 22.429 99.0 0.0 0.0 235.635 0.0 1.411 6.229 0.0 0.0 0.66 null null null null null null null null null null null null null null null null null 49.07 1.5893219e7 23.5 16.8 2.731 1.496 null null 365.769 6.05 null null 9.831 0.9 57.4 null
SOM Africa Somalia 2020-11-08 4229.0 0.0 41.143 107.0 0.0 0.429 266.088 0.0 2.589 6.732 0.0 2.7e-2 0.68 null null null null null null null null null null null null null null null null null 37.96 1.5893219e7 23.5 16.8 2.731 1.496 null null 365.769 6.05 null null 9.831 0.9 57.4 null
ZAF Africa South Africa 2020-05-05 7572.0 352.0 368.0 148.0 10.0 7.857 127.671 5.935 6.205 2.495 0.169 0.132 1.36 null null null null null null null null 268064.0 10523.0 4.52 0.177 11795.0 0.199 3.1e-2 32.1 null 84.26 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
ZAF Africa South Africa 2020-07-28 459761.0 7232.0 11137.571 7257.0 190.0 269.857 7752.001 121.938 187.79 122.36 3.204 4.55 0.86 null null null null null null null null 2830635.0 28424.0 47.727 0.479 41959.0 0.707 0.265 3.8 null 80.56 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
KOR Asia South Korea 2020-02-03 15.0 0.0 1.571 0.0 0.0 0.0 0.293 0.0 3.1e-2 null 0.0 0.0 null null null null null null null null null null null null null 66.0 1.0e-3 2.4e-2 42.0 null 23.15 5.1269183e7 527.967 43.4 13.914 8.622 35938.374 0.2 85.998 6.8 6.2 40.9 null 12.27 83.03 0.903
SSD Africa South Sudan 2020-05-23 655.0 92.0 59.857 8.0 2.0 0.571 58.515 8.219 5.347 0.715 0.179 5.1e-2 0.88 null null null null null null null null null null null null null null null null null 73.15 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
SSD Africa South Sudan 2020-10-10 2761.0 0.0 6.571 54.0 0.0 0.571 246.656 0.0 0.587 4.824 0.0 5.1e-2 1.0 null null null null null null null null null null null null 423.0 3.8e-2 1.6e-2 64.4 null 35.19 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
SSD Africa South Sudan 2020-11-21 3047.0 31.0 6.286 60.0 1.0 0.143 272.206 2.769 0.562 5.36 8.9e-2 1.3e-2 null null null null null null null null null null null null null 554.0 4.9e-2 1.1e-2 88.1 null 43.52 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
ESP Europe Spain 2020-04-03 119199.0 7134.0 7640.0 11198.0 850.0 865.714 2549.45 152.583 163.406 239.505 18.18 18.516 1.37 null null null null null null null null null null null null null null null null null 85.19 4.6754783e7 93.105 45.5 19.436 13.799 34272.36 1.0 99.403 7.17 27.4 31.4 null 2.97 83.56 0.891
ESP Europe Spain 2020-11-07 1328832.0 0.0 20450.571 38833.0 0.0 422.143 28421.306 0.0 437.401 830.567 0.0 9.029 1.12 null null null null null null null null null null null null 166951.0 3.571 0.122 8.2 null 71.3 4.6754783e7 93.105 45.5 19.436 13.799 34272.36 1.0 99.403 7.17 27.4 31.4 null 2.97 83.56 0.891
LKA Asia Sri Lanka 2020-04-01 146.0 3.0 6.286 3.0 1.0 0.429 6.818 0.14 0.294 0.14 4.7e-2 2.0e-2 1.01 null null null null null null null null 2785.0 219.0 0.13 1.0e-2 161.0 8.0e-3 3.9e-2 25.6 null 100.0 2.141325e7 341.955 34.1 10.069 5.331 11669.077 0.7 197.093 10.68 0.3 27.0 null 3.6 76.98 0.77
LKA Asia Sri Lanka 2020-05-13 915.0 26.0 16.857 9.0 0.0 0.0 42.731 1.214 0.787 0.42 0.0 0.0 1.04 null null null null null null null null 39629.0 889.0 1.851 4.2e-2 1301.0 6.1e-2 1.3e-2 77.2 null 82.41 2.141325e7 341.955 34.1 10.069 5.331 11669.077 0.7 197.093 10.68 0.3 27.0 null 3.6 76.98 0.77
SDN Africa Sudan 2020-02-27 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 4.3849269e7 23.258 19.7 3.548 2.034 4466.507 null 431.388 15.67 null null 23.437 0.8 65.31 0.502
SUR South America Suriname 2020-02-01 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SUR South America Suriname 2020-02-17 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SUR South America Suriname 2020-06-13 196.0 9.0 13.714 3.0 0.0 0.286 334.11 15.342 23.378 5.114 0.0 0.487 1.13 null null null null null null null null null null null null null null null null null 93.52 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SWZ Africa Swaziland 2020-02-29 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWZ Africa Swaziland 2020-05-16 202.0 12.0 5.571 2.0 0.0 0.0 174.113 10.343 4.802 1.724 0.0 0.0 0.9 null null null null null null null null null null null null null null null null null 84.26 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWE Europe Sweden 2020-05-10 26846.0 278.0 593.286 3678.0 64.0 70.286 2658.212 27.527 58.745 364.185 6.337 6.959 1.13 null null null null 154.004 15.249 null null null null null null null null null null null 64.81 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933
SWE Europe Sweden 2020-10-29 121167.0 3254.0 1742.571 5966.0 3.0 5.143 11997.6 322.202 172.544 590.736 0.297 0.509 1.57 null null null null null null null null null 27613.0 null 2.734 26048.0 2.579 6.7e-2 14.9 null 55.56 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933
SWE Europe Sweden 2020-11-21 208295.0 0.0 4420.0 6406.0 0.0 34.571 20624.758 0.0 437.655 634.303 0.0 3.423 null null null null null null null null null null 38266.0 null 3.789 38119.0 3.774 0.116 8.6 null 50.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933
CHE Europe Switzerland 2020-04-01 17768.0 1163.0 981.571 488.0 55.0 47.857 2053.008 134.379 113.416 56.386 6.355 5.53 1.24 null null null null null null null null 145277.0 6657.0 16.786 0.769 5978.0 0.691 0.164 6.1 null 73.15 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
CHE Europe Switzerland 2020-06-02 30874.0 3.0 16.143 1920.0 0.0 0.714 3567.344 0.347 1.865 221.847 0.0 8.3e-2 0.79 null null null null null null null null 405695.0 4282.0 46.876 0.495 3304.0 0.382 5.0e-3 204.7 null 55.56 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
CHE Europe Switzerland 2020-08-06 36108.0 181.0 155.143 1985.0 1.0 0.714 4172.108 20.914 17.926 229.357 0.116 8.3e-2 1.17 null null null null null null null null 831138.0 6619.0 96.034 0.765 5409.0 0.625 2.9e-2 34.9 null 43.06 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
CHE Europe Switzerland 2020-11-15 257135.0 0.0 6460.286 3369.0 18.0 85.286 29710.728 0.0 746.455 389.272 2.08 9.854 1.04 null null null null null null null null 2419601.0 9364.0 279.573 1.082 25659.0 2.965 0.252 4.0 null 49.07 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
SYR Asia Syria 2020-03-15 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 41.67 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
SYR Asia Syria 2020-03-25 5.0 4.0 0.714 0.0 0.0 0.0 0.286 0.229 4.1e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 84.26 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
SYR Asia Syria 2020-04-08 19.0 0.0 1.286 2.0 0.0 0.0 1.086 0.0 7.3e-2 0.114 0.0 0.0 null null null null null null null null null null null null null null null null null null 87.04 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
SYR Asia Syria 2020-12-02 8059.0 86.0 85.714 426.0 4.0 5.0 460.497 4.914 4.898 24.342 0.229 0.286 null null null null null null null null null null null null null null null null null null null 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
TJK Asia Tajikistan 2020-10-06 10014.0 40.0 41.143 78.0 0.0 0.429 1049.945 4.194 4.314 8.178 0.0 4.5e-2 0.98 null null null null null null null null null null null null null null null null null 36.11 9537642.0 64.281 23.3 3.466 2.155 2896.913 4.8 427.698 7.11 null null 72.704 4.8 71.1 0.65
TZA Africa Tanzania 2020-09-11 509.0 0.0 0.0 21.0 0.0 0.0 8.521 0.0 0.0 0.352 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 25.0 5.9734213e7 64.699 17.7 3.108 1.874 2683.304 49.1 217.288 5.75 3.3 26.7 47.953 0.7 65.46 0.538
FJI Oceania Fiji 2020-06-29 18.0 0.0 0.0 0.0 0.0 0.0 20.079 0.0 0.0 null 0.0 0.0 null null null null null null null null null 5015.0 162.0 5.594 0.181 69.0 7.7e-2 0.0 null null 62.04 896444.0 49.562 28.6 6.224 3.284 8702.975 1.4 412.82 14.49 10.2 34.8 null 2.3 67.44 0.741
FJI Oceania Fiji 2020-09-25 32.0 0.0 0.0 2.0 0.0 0.0 35.697 0.0 0.0 2.231 0.0 0.0 null null null null null null null null null 10280.0 64.0 11.468 7.1e-2 65.0 7.3e-2 0.0 null null 51.85 896444.0 49.562 28.6 6.224 3.284 8702.975 1.4 412.82 14.49 10.2 34.8 null 2.3 67.44 0.741
FIN Europe Finland 2020-05-04 5327.0 73.0 90.286 240.0 10.0 6.714 961.428 13.175 16.295 43.316 1.805 1.212 0.9 49.0 8.844 197.0 35.555 null null null null 113479.0 1767.0 20.481 0.319 2956.0 0.534 3.1e-2 32.7 null 60.19 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-11-07 17385.0 0.0 181.714 362.0 0.0 0.571 3137.68 0.0 32.796 65.334 0.0 0.103 1.1 null null null null null null null null 1650143.0 9833.0 297.821 1.775 12769.0 2.305 1.4e-2 70.3 null 40.74 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-11-15 19315.0 213.0 216.857 369.0 0.0 1.0 3486.01 38.443 39.139 66.598 0.0 0.18 1.14 null null null null null null null null 1747491.0 6648.0 315.391 1.2 13080.0 2.361 1.7e-2 60.3 null 40.74 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
GMB Africa Gambia 2020-10-17 3649.0 0.0 3.0 118.0 0.0 0.143 1509.933 0.0 1.241 48.828 0.0 5.9e-2 0.68 null null null null null null null null null null null null null null null null null 60.19 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
DEU Europe Germany 2020-10-25 437698.0 9890.0 9861.0 10062.0 27.0 37.714 5224.127 118.042 117.696 120.095 0.322 0.45 1.45 null null null null null null 2028.515 24.211 2.1848094e7 null 260.767 null 201348.0 2.403 4.9e-2 20.4 null 60.65 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
GHA Africa Ghana 2020-02-14 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-05-20 6269.0 173.0 123.0 31.0 0.0 1.0 201.751 5.568 3.958 0.998 0.0 3.2e-2 1.23 null null null null null null null null 192194.0 4265.0 6.185 0.137 3358.0 0.108 3.7e-2 27.3 null 62.04 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-06-07 9638.0 176.0 224.0 44.0 0.0 1.143 310.173 5.664 7.209 1.416 0.0 3.7e-2 1.2 null null null null null null null null 239395.0 3952.0 7.704 0.127 2796.0 9.0e-2 8.0e-2 12.5 null 56.48 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-08-11 41404.0 192.0 513.143 215.0 0.0 3.429 1332.477 6.179 16.514 6.919 0.0 0.11 1.11 null null null null null null null null 421588.0 1998.0 13.568 6.4e-2 1745.0 5.6e-2 0.294 3.4 null 52.78 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-11-19 50631.0 174.0 96.286 323.0 0.0 0.429 1629.424 5.6 3.099 10.395 0.0 1.4e-2 1.18 null null null null null null null null 578117.0 2126.0 18.605 6.8e-2 2128.0 6.8e-2 4.5e-2 22.1 null 38.89 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GRD North America Grenada 2020-02-25 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 112519.0 317.132 29.4 7.304 5.021 13593.877 null 243.964 10.71 null null null 3.7 72.4 0.772
GRD North America Grenada 2020-05-01 20.0 0.0 0.714 0.0 0.0 0.0 177.748 0.0 6.348 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 112519.0 317.132 29.4 7.304 5.021 13593.877 null 243.964 10.71 null null null 3.7 72.4 0.772
GRD North America Grenada 2020-06-04 23.0 0.0 0.0 0.0 0.0 0.0 204.41 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 112519.0 317.132 29.4 7.304 5.021 13593.877 null 243.964 10.71 null null null 3.7 72.4 0.772
GRD North America Grenada 2020-10-10 24.0 0.0 0.0 0.0 0.0 0.0 213.297 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 112519.0 317.132 29.4 7.304 5.021 13593.877 null 243.964 10.71 null null null 3.7 72.4 0.772
GTM North America Guatemala 2020-02-12 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 1.7915567e7 157.834 22.9 4.694 3.016 7423.808 8.7 155.898 10.18 null null 76.665 0.6 74.3 0.65
GNB Africa Guinea-Bissau 2020-03-01 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 1967998.0 66.191 19.4 3.002 1.565 1548.675 67.1 382.474 2.42 null null 6.403 null 58.32 0.455
GUY South America Guyana 2020-08-28 1180.0 40.0 42.714 35.0 3.0 0.714 1500.205 50.854 54.305 44.498 3.814 0.908 1.23 null null null null null null null null null null null null null null null null null 73.15 786559.0 3.952 26.3 5.305 2.837 7435.047 null 373.159 11.62 null null 77.159 1.6 69.91 0.654
HTI North America Haiti 2020-02-05 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 1.1402533e7 398.448 24.3 4.8 2.954 1653.173 23.5 430.548 6.65 2.9 23.1 22.863 0.7 64.0 0.498
HND North America Honduras 2020-02-12 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 9904608.0 82.805 24.9 4.652 2.883 4541.795 16.0 240.208 7.21 2.0 null 84.169 0.7 75.27 0.617
HUN Europe Hungary 2020-03-23 167.0 36.0 18.286 7.0 1.0 0.857 17.287 3.727 1.893 0.725 0.104 8.9e-2 1.7 null null 144.0 14.906 null null null null 5515.0 1072.0 0.571 0.111 578.0 6.0e-2 3.2e-2 31.6 null 67.59 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
HUN Europe Hungary 2020-04-17 1763.0 111.0 81.857 156.0 14.0 11.286 182.499 11.49 8.474 16.148 1.449 1.168 1.14 null null 847.0 87.678 null null null null 41590.0 3101.0 4.305 0.321 1663.0 0.172 4.9e-2 20.3 null 76.85 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
HUN Europe Hungary 2020-08-05 4564.0 11.0 14.143 599.0 1.0 0.429 472.447 1.139 1.464 62.006 0.104 4.4e-2 1.29 null null 72.0 7.453 null null null null 350108.0 1976.0 36.242 0.205 2380.0 0.246 6.0e-3 168.3 null 54.63 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
HUN Europe Hungary 2020-11-07 104943.0 5318.0 4231.714 2357.0 107.0 86.714 10863.271 550.498 438.05 243.987 11.076 8.976 1.32 null null 5612.0 580.931 null null null null 1189962.0 22321.0 123.18 2.311 17831.0 1.846 0.237 4.2 null 57.41 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
ISL Europe Iceland 2020-03-13 134.0 31.0 13.0 0.0 0.0 0.0 392.674 90.842 38.095 null 0.0 0.0 1.64 0.0 0.0 2.0 5.861 null null null null 1504.0 357.0 4.407 1.046 160.0 0.469 8.1e-2 12.3 null 16.67 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-03-28 963.0 73.0 70.0 2.0 0.0 0.143 2821.978 213.919 205.128 5.861 0.0 0.419 1.27 7.0 20.513 26.0 76.19 null null null null 15443.0 849.0 45.254 2.488 767.0 2.248 9.1e-2 11.0 null 53.7 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-07-18 1838.0 2.0 0.714 10.0 0.0 0.0 5386.081 5.861 2.093 29.304 0.0 0.0 1.29 0.0 0.0 0.0 0.0 null null null null 68575.0 64.0 200.952 0.188 112.0 0.328 6.0e-3 156.9 null 39.81 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-07-23 1841.0 1.0 0.714 10.0 0.0 0.0 5394.872 2.93 2.093 29.304 0.0 0.0 1.43 0.0 0.0 0.0 0.0 null null null null 68822.0 67.0 201.676 0.196 71.0 0.208 1.0e-2 99.4 null 39.81 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
IND Asia India 2020-10-26 7946429.0 36470.0 49909.429 119502.0 488.0 615.0 5758.264 26.427 36.166 86.595 0.354 0.446 0.89 null null null null null null null null 1.03462778e8 939309.0 74.973 0.681 1196972.0 0.867 4.2e-2 24.0 null 64.35 1.380004385e9 450.419 28.2 5.989 3.414 6426.674 21.2 282.28 10.39 1.9 20.6 59.55 0.53 69.66 0.64
IDN Asia Indonesia 2020-02-03 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 23.15 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
IDN Asia Indonesia 2020-08-13 132816.0 2098.0 2009.0 5968.0 65.0 63.857 485.574 7.67 7.345 21.819 0.238 0.233 1.06 null null null null null null null null 1026954.0 14850.0 3.755 5.4e-2 12949.0 4.7e-2 0.155 6.4 null 59.72 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
IDN Asia Indonesia 2020-10-05 307120.0 3622.0 4056.857 11253.0 102.0 111.429 1122.828 13.242 14.832 41.141 0.373 0.407 1.01 null null null null null null null null 2119355.0 22771.0 7.748 8.3e-2 26356.0 9.6e-2 0.154 6.5 null 72.69 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
IRN Asia Iran 2020-08-07 322567.0 2450.0 2623.286 18132.0 156.0 195.143 3840.406 29.169 31.232 215.875 1.857 2.323 0.93 null null null null null null null null 2637575.0 null 31.402 null 25809.0 0.307 0.102 9.8 null 60.19 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRN Asia Iran 2020-08-08 324692.0 2125.0 2562.857 18264.0 132.0 183.143 3865.705 25.3 30.513 217.447 1.572 2.18 0.86 null null null null null null null null 2661965.0 24390.0 31.693 0.29 25630.0 0.305 0.1 10.0 null 60.19 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRQ Asia Iraq 2020-07-08 67442.0 2741.0 2274.0 2779.0 94.0 104.143 1676.723 68.146 56.536 69.091 2.337 2.589 1.12 null null null null null null null null 637227.0 12807.0 15.843 0.318 11615.0 0.289 0.196 5.1 null 92.59 4.0222503e7 88.125 20.0 3.186 1.957 15663.986 2.5 218.612 8.83 null null 94.576 1.4 70.6 0.685
IRQ Asia Iraq 2020-10-25 451707.0 2554.0 3581.857 10623.0 55.0 52.714 11230.206 63.497 89.051 264.106 1.367 1.311 0.98 null null null null null null null null 2756365.0 16687.0 68.528 0.415 18859.0 0.469 0.19 5.3 null 51.85 4.0222503e7 88.125 20.0 3.186 1.957 15663.986 2.5 218.612 8.83 null null 94.576 1.4 70.6 0.685
IRL Europe Ireland 2020-10-26 58067.0 939.0 1010.571 1885.0 3.0 4.714 11759.7 190.166 204.66 381.749 0.608 0.955 0.96 38.0 7.696 344.0 69.667 null null null null 1568768.0 14264.0 317.706 2.889 16425.0 3.326 6.2e-2 16.3 null 81.48 4937796.0 69.874 38.7 13.928 8.678 67335.293 0.2 126.459 3.28 23.0 25.7 null 2.96 82.3 0.938
IRL Europe Ireland 2020-10-28 59434.0 667.0 858.857 1896.0 6.0 4.0 12036.544 135.081 173.935 383.977 1.215 0.81 0.91 40.0 8.101 327.0 66.224 null null null null 1591370.0 11167.0 322.283 2.262 15161.0 3.07 5.7e-2 17.7 null 81.48 4937796.0 69.874 38.7 13.928 8.678 67335.293 0.2 126.459 3.28 23.0 25.7 null 2.96 82.3 0.938
ISR Asia Israel 2020-03-25 2369.0 1131.0 295.0 5.0 2.0 0.714 273.698 130.668 34.082 0.578 0.231 8.3e-2 1.94 null null null null null null null null 37132.0 5936.0 4.29 0.686 3457.0 0.399 8.5e-2 11.7 null 81.48 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ITA Europe Italy 2020-03-17 31506.0 3526.0 3051.0 2503.0 345.0 267.429 521.089 58.318 50.462 41.398 5.706 4.423 1.84 2060.0 34.071 14954.0 247.33 null null null null 148657.0 10695.0 2.459 0.177 12557.0 0.208 0.243 4.1 null 85.19 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
ITA Europe Italy 2020-08-08 250103.0 347.0 324.429 35203.0 13.0 8.143 4136.544 5.739 5.366 582.235 0.215 0.135 1.29 43.0 0.711 814.0 13.463 null null null null 7212207.0 53298.0 119.285 0.882 48387.0 0.8 7.0e-3 149.1 null 50.93 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
ITA Europe Italy 2020-09-12 286297.0 1501.0 1422.714 35603.0 6.0 9.857 4735.169 24.826 23.531 588.851 9.9e-2 0.163 1.07 182.0 3.01 2133.0 35.278 null null null null 9745975.0 92706.0 161.192 1.533 86225.0 1.426 1.7e-2 60.6 null 54.63 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
ITA Europe Italy 2020-11-28 1564532.0 26315.0 26285.857 54363.0 686.0 728.857 25876.36 435.233 434.751 899.129 11.346 12.055 null 3762.0 62.221 37061.0 612.965 null null null null 2.1637641e7 225940.0 357.873 3.737 205402.0 3.397 0.128 7.8 null null 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
JAM North America Jamaica 2020-02-11 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JAM North America Jamaica 2020-07-10 753.0 0.0 4.571 10.0 0.0 0.0 254.292 0.0 1.544 3.377 0.0 0.0 1.08 null null null null null null null null 27775.0 300.0 9.38 0.101 299.0 0.101 1.5e-2 65.4 null 64.81 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JAM North America Jamaica 2020-11-03 9296.0 39.0 72.714 214.0 4.0 2.571 3139.309 13.171 24.556 72.269 1.351 0.868 0.91 null null null null null null null null 98356.0 565.0 33.215 0.191 648.0 0.219 0.112 8.9 null 67.59 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JPN Asia Japan 2020-10-23 95868.0 734.0 546.286 1706.0 9.0 6.0 757.991 5.803 4.319 13.489 7.1e-2 4.7e-2 1.13 null null null null null null null null 2295456.0 22880.0 18.149 0.181 17267.0 0.137 3.2e-2 31.6 null 38.89 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JOR Asia Jordan 2020-05-02 460.0 1.0 2.286 9.0 1.0 0.286 45.084 9.8e-2 0.224 0.882 9.8e-2 2.8e-2 0.95 null null null null null null null null null null null null null null null null null 89.81 1.020314e7 109.285 23.2 3.81 2.361 8337.49 0.1 208.257 11.75 null null null 1.4 74.53 0.735
KAZ Asia Kazakhstan 2020-03-31 343.0 41.0 38.714 2.0 1.0 0.286 18.267 2.184 2.062 0.107 5.3e-2 1.5e-2 1.62 null null null null null null null null 30905.0 9892.0 1.646 0.527 3003.0 0.16 1.3e-2 77.6 null 92.13 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-06-24 19285.0 520.0 486.857 136.0 2.0 5.571 1027.07 27.694 25.929 7.243 0.107 0.297 1.12 null null null null null null null null 1401692.0 24830.0 74.651 1.322 27159.0 1.446 1.8e-2 55.8 null 81.02 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-10-01 140958.0 251.0 238.429 2080.0 2.0 5.0 7507.067 13.368 12.698 110.776 0.107 0.266 1.01 null null null null null null null null 2973489.0 9208.0 158.361 0.49 13415.0 0.714 1.8e-2 56.3 null 78.7 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-11-14 159756.0 903.0 776.429 2315.0 1.0 7.143 8508.201 48.091 41.351 123.291 5.3e-2 0.38 1.31 null null null null null null null null 4004270.0 39228.0 213.257 2.089 31215.0 1.662 2.5e-2 40.2 null 68.06 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KEN Africa Kenya 2020-02-15 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KEN Africa Kenya 2020-02-24 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KEN Africa Kenya 2020-06-25 5384.0 178.0 161.0 132.0 2.0 2.143 100.128 3.31 2.994 2.455 3.7e-2 4.0e-2 1.24 null null null null null null null null 155314.0 3918.0 2.888 7.3e-2 3545.0 6.6e-2 4.5e-2 22.0 null 84.26 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
OWID_KOS Europe Kosovo 2020-08-22 12337.0 169.0 151.714 457.0 9.0 9.571 6383.054 87.439 78.496 236.448 4.657 4.952 0.9 null null null null null null null null null null null null null null null null null 69.44 1932774.0 168.155 null null null 9795.834 0.6 null null null null null null null null
KGZ Asia Kyrgyzstan 2020-06-07 2007.0 33.0 37.0 22.0 0.0 0.857 307.624 5.058 5.671 3.372 0.0 0.131 1.24 null null null null null null null null null null null null null null null null null 76.39 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
LAO Asia Laos 2020-09-12 23.0 0.0 0.143 0.0 0.0 0.0 3.161 0.0 2.0e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 36.11 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LBN Asia Lebanon 2020-03-28 412.0 21.0 32.143 8.0 0.0 0.571 60.362 3.077 4.709 1.172 0.0 8.4e-2 1.06 null null null null null null null null null null null null null null null null null 85.19 6825442.0 594.561 31.1 8.514 5.43 13367.565 null 266.591 12.71 26.9 40.7 null 2.9 78.93 0.757
LBN Asia Lebanon 2020-11-06 91328.0 2142.0 1685.571 700.0 17.0 10.714 13380.525 313.826 246.954 102.557 2.491 1.57 1.11 null null null null null null null null null null null null null null null null null 57.41 6825442.0 594.561 31.1 8.514 5.43 13367.565 null 266.591 12.71 26.9 40.7 null 2.9 78.93 0.757
LBY Africa Libya 2020-04-19 51.0 2.0 3.714 1.0 0.0 0.0 7.422 0.291 0.541 0.146 0.0 0.0 null null null null null null null null null null 25.0 null 4.0e-3 34.0 5.0e-3 0.109 9.2 null 100.0 6871287.0 3.623 29.0 4.424 2.816 17881.509 null 341.862 10.43 null null null 3.7 72.91 0.706
LIE Europe Liechtenstein 2020-03-12 1.0 0.0 0.0 0.0 0.0 0.0 26.221 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LIE Europe Liechtenstein 2020-03-16 4.0 0.0 0.429 0.0 0.0 0.0 104.885 0.0 11.238 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LIE Europe Liechtenstein 2020-06-24 82.0 0.0 0.0 1.0 0.0 0.0 2150.143 0.0 0.0 26.221 0.0 0.0 null null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LIE Europe Liechtenstein 2020-11-09 801.0 13.0 29.0 4.0 1.0 0.143 21003.225 340.876 760.416 104.885 26.221 3.746 1.07 null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LTU Europe Lithuania 2020-05-27 1647.0 8.0 10.0 66.0 1.0 0.857 605.005 2.939 3.673 24.244 0.367 0.315 0.85 null null null null null null null null 272538.0 6268.0 100.113 2.302 4739.0 1.741 2.0e-3 473.9 null 71.3 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LTU Europe Lithuania 2020-09-07 3100.0 17.0 27.714 86.0 0.0 0.0 1138.747 6.245 10.181 31.591 0.0 0.0 1.17 null null null null null null null null 614767.0 3528.0 225.827 1.296 3650.0 1.341 8.0e-3 131.7 null 34.26 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LTU Europe Lithuania 2020-10-30 13823.0 735.0 674.143 157.0 7.0 4.429 5077.708 269.993 247.638 57.672 2.571 1.627 1.52 null null 415.0 152.445 null null null null 936692.0 10520.0 344.082 3.864 8860.0 3.255 7.6e-2 13.1 null 62.5 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LTU Europe Lithuania 2020-11-19 40492.0 1682.0 1525.714 341.0 18.0 13.857 14874.236 617.862 560.452 125.262 6.612 5.09 1.33 null null 1.0 0.367 null null null null 1145098.0 14052.0 420.638 5.162 11081.0 4.07 0.138 7.3 null 62.96 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LUX Europe Luxembourg 2020-07-04 4476.0 29.0 37.0 110.0 0.0 0.0 7150.434 46.328 59.108 175.726 0.0 0.0 1.63 3.0 4.793 24.0 38.34 null null null null 231408.0 7851.0 369.676 12.542 8169.0 13.05 5.0e-3 220.8 null 24.07 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
LUX Europe Luxembourg 2020-08-13 7368.0 68.0 42.143 122.0 0.0 0.429 11770.419 108.63 67.323 194.896 0.0 0.685 0.85 3.0 4.793 38.0 60.705 null null null null 559389.0 4654.0 893.627 7.435 4972.0 7.943 8.0e-3 118.0 null 34.26 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
MKD Europe Macedonia 2020-08-21 13308.0 114.0 113.286 557.0 3.0 3.143 6387.697 54.719 54.376 267.354 1.44 1.509 0.97 null null null null null null null null 134206.0 1733.0 64.417 0.832 1598.0 0.767 7.1e-2 14.1 null null 2083380.0 82.6 39.1 13.26 8.16 13111.214 5.0 322.688 10.08 null null null 4.28 75.8 0.757
MDG Africa Madagascar 2020-08-15 13724.0 81.0 114.571 166.0 2.0 3.571 495.612 2.925 4.137 5.995 7.2e-2 0.129 0.72 null null null null null null null null 51559.0 590.0 1.862 2.1e-2 543.0 2.0e-2 0.211 4.7 null 65.74 2.7691019e7 43.951 19.6 2.929 1.686 1416.44 77.6 405.994 3.94 null null 50.54 0.2 67.04 0.519
MDG Africa Madagascar 2020-09-11 15669.0 45.0 68.857 209.0 1.0 1.571 565.851 1.625 2.487 7.548 3.6e-2 5.7e-2 0.82 null null null null null null null null 63222.0 null 2.283 null 464.0 1.7e-2 0.148 6.7 null 56.48 2.7691019e7 43.951 19.6 2.929 1.686 1416.44 77.6 405.994 3.94 null null 50.54 0.2 67.04 0.519
MWI Africa Malawi 2020-10-03 5783.0 0.0 2.429 179.0 0.0 0.0 302.301 0.0 0.127 9.357 0.0 0.0 0.89 null null null null null null null null 54246.0 231.0 2.836 1.2e-2 266.0 1.4e-2 9.0e-3 109.5 null 54.63 1.9129955e7 197.519 18.1 2.979 1.783 1095.042 71.4 227.349 3.94 4.4 24.7 8.704 1.3 64.26 0.477
MDV Asia Maldives 2020-02-04 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 540542.0 1454.433 30.6 4.12 2.875 15183.616 null 164.905 9.19 2.1 55.0 95.803 null 78.92 0.717
MDV Asia Maldives 2020-05-29 1591.0 78.0 45.286 5.0 0.0 0.143 2943.342 144.3 83.778 9.25 0.0 0.264 1.06 null null null null null null null null 22319.0 680.0 41.29 1.258 735.0 1.36 6.2e-2 16.2 null null 540542.0 1454.433 30.6 4.12 2.875 15183.616 null 164.905 9.19 2.1 55.0 95.803 null 78.92 0.717
MLI Africa Mali 2020-03-19 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 22.22 2.0250834e7 15.196 16.4 2.519 1.486 2014.306 null 268.024 2.42 1.6 23.0 52.232 0.1 59.31 0.427
MLT Europe Malta 2020-03-22 90.0 17.0 9.857 0.0 0.0 0.0 203.833 38.502 22.325 null 0.0 0.0 null 0.0 0.0 11.0 24.913 0.895 2.026 1.789 4.052 3216.0 309.0 7.284 0.7 249.0 0.564 4.0e-2 25.3 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MLT Europe Malta 2020-07-18 675.0 1.0 0.143 9.0 0.0 0.0 1528.744 2.265 0.324 20.383 0.0 0.0 0.37 null null null null null null null null 113237.0 834.0 256.46 1.889 867.0 1.964 0.0 6062.9 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MLT Europe Malta 2020-09-28 3006.0 27.0 32.857 32.0 1.0 1.286 6808.006 61.15 74.415 72.474 2.265 2.912 0.93 null null null null null null null null 251746.0 2116.0 570.156 4.792 2304.0 5.218 1.4e-2 70.1 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MRT Africa Mauritania 2020-04-16 7.0 0.0 0.0 1.0 0.0 0.0 1.505 0.0 0.0 0.215 0.0 0.0 null null null null null null null null null null null null null 66.0 1.4e-2 0.0 null null 77.78 4649660.0 4.289 20.3 3.138 1.792 3597.633 6.0 232.347 2.42 null null 15.95 null 64.92 0.52
MRT Africa Mauritania 2020-07-21 5985.0 62.0 66.714 155.0 0.0 1.143 1287.191 13.334 14.348 33.336 0.0 0.246 0.79 null null null null null null null null null null null null 739.0 0.159 9.0e-2 11.1 null 29.63 4649660.0 4.289 20.3 3.138 1.792 3597.633 6.0 232.347 2.42 null null 15.95 null 64.92 0.52
MUS Africa Mauritius 2020-03-20 12.0 9.0 1.714 0.0 0.0 0.0 9.436 7.077 1.348 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 50.0 1271767.0 622.962 37.4 10.945 5.884 20292.745 0.5 224.644 22.02 3.2 40.7 null 3.4 74.99 0.79
MEX North America Mexico 2020-08-17 525733.0 3571.0 5699.571 57023.0 266.0 574.286 4077.575 27.697 44.206 442.269 2.063 4.454 0.96 null null null null null null null null 1207328.0 14669.0 9.364 0.114 11905.0 9.2e-2 0.479 2.1 null 70.83 1.28932753e8 66.444 29.3 6.857 4.321 17336.469 2.5 152.783 13.06 6.9 21.4 87.847 1.38 75.05 0.774
MEX North America Mexico 2020-10-13 825340.0 4295.0 4390.286 84420.0 475.0 296.0 6401.321 33.312 34.051 654.76 3.684 2.296 1.02 null null null null null null null null 1880454.0 16473.0 14.585 0.128 11831.0 9.2e-2 0.371 2.7 null 71.76 1.28932753e8 66.444 29.3 6.857 4.321 17336.469 2.5 152.783 13.06 6.9 21.4 87.847 1.38 75.05 0.774
MDA Europe Moldova 2020-05-14 5553.0 147.0 135.429 194.0 9.0 7.0 1376.562 36.441 33.572 48.092 2.231 1.735 1.15 null null null null null null null null null null null null null null null null null 84.26 4033963.0 123.655 37.6 10.864 6.955 5189.972 0.2 408.502 5.72 5.9 44.6 86.979 5.8 71.9 0.7
MNG Asia Mongolia 2020-02-13 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 49.07 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
AFG Asia Afghanistan 2020-09-03 38288.0 45.0 24.143 1410.0 0.0 1.143 983.551 1.156 0.62 36.22 0.0 2.9e-2 0.96 null null null null null null null null null null null null null null null null null 21.3 3.8928341e7 54.422 18.6 2.581 1.337 1803.987 null 597.029 9.59 null null 37.746 0.5 64.83 0.498
AFG Asia Afghanistan 2020-11-26 45600.0 216.0 203.286 1737.0 9.0 12.0 1171.383 5.549 5.222 44.62 0.231 0.308 null null null null null null null null null null null null null null null null null null 8.33 3.8928341e7 54.422 18.6 2.581 1.337 1803.987 null 597.029 9.59 null null 37.746 0.5 64.83 0.498
ALB Europe Albania 2020-05-02 789.0 7.0 11.0 31.0 0.0 0.571 274.168 2.432 3.822 10.772 0.0 0.199 0.69 null null null null null null null null null null null null null null null null null 89.81 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
ALB Europe Albania 2020-09-10 10860.0 156.0 145.143 324.0 2.0 3.286 3773.716 54.208 50.435 112.586 0.695 1.142 1.09 null null null null null null null null null null null null null null null null null 54.63 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
DZA Africa Algeria 2020-05-09 5558.0 189.0 180.429 494.0 6.0 5.0 126.747 4.31 4.115 11.265 0.137 0.114 1.13 null null null null null null null null null null null null null null null null null 76.85 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
DZA Africa Algeria 2020-09-15 48734.0 238.0 256.571 1632.0 12.0 8.714 1111.353 5.427 5.851 37.217 0.274 0.199 0.83 null null null null null null null null null null null null null null null null null 75.93 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
AND Europe Andorra 2020-06-27 855.0 0.0 0.0 52.0 0.0 0.0 11065.812 0.0 0.0 673.008 0.0 0.0 0.39 null null null null null null null null null null null null null null null null null 38.89 77265.0 163.755 null null null null null 109.135 7.97 29.0 37.8 null null 83.73 0.858
AGO Africa Angola 2020-10-18 7622.0 160.0 179.429 247.0 6.0 4.143 231.91 4.868 5.459 7.515 0.183 0.126 1.13 null null null null null null null null null null null null null null null null null 71.3 3.2866268e7 23.89 16.8 2.405 1.362 5819.495 null 276.045 3.94 null null 26.664 null 61.15 0.581
ATG North America Antigua and Barbuda 2020-02-23 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 97928.0 231.845 32.1 6.933 4.631 21490.943 null 191.511 13.17 null null null 3.8 77.02 0.78
ATG North America Antigua and Barbuda 2020-03-25 3.0 0.0 0.286 0.0 0.0 0.0 30.635 0.0 2.918 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 97928.0 231.845 32.1 6.933 4.631 21490.943 null 191.511 13.17 null null null 3.8 77.02 0.78
ATG North America Antigua and Barbuda 2020-04-03 15.0 6.0 1.143 0.0 0.0 0.0 153.174 61.27 11.67 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 97928.0 231.845 32.1 6.933 4.631 21490.943 null 191.511 13.17 null null null 3.8 77.02 0.78
ATG North America Antigua and Barbuda 2020-10-01 101.0 0.0 0.571 3.0 0.0 0.0 1031.37 0.0 5.835 30.635 0.0 0.0 0.26 null null null null null null null null null null null null null null null null null null 97928.0 231.845 32.1 6.933 4.631 21490.943 null 191.511 13.17 null null null 3.8 77.02 0.78
ARG South America Argentina 2020-08-14 282437.0 6365.0 6680.0 5527.0 165.0 159.429 6249.19 140.832 147.801 122.29 3.651 3.528 1.11 null null null null null null null null null null null null null null null null null 87.96 4.5195777e7 16.177 31.9 11.198 7.441 18933.907 0.6 191.032 5.5 16.2 27.7 null 5.0 76.67 0.825
ARM Asia Armenia 2020-04-30 2066.0 134.0 77.571 32.0 2.0 1.143 697.211 45.221 26.178 10.799 0.675 0.386 1.37 null null null null null null null null null null null null null null null null null null 2963234.0 102.931 35.7 11.232 7.571 8787.58 1.8 341.01 7.11 1.5 52.1 94.043 4.2 75.09 0.755
ARM Asia Armenia 2020-07-10 30903.0 557.0 511.857 546.0 11.0 11.0 10428.809 187.97 172.736 184.258 3.712 3.712 0.92 null null null null null null null null null null null null null null null null null null 2963234.0 102.931 35.7 11.232 7.571 8787.58 1.8 341.01 7.11 1.5 52.1 94.043 4.2 75.09 0.755
AUT Europe Austria 2020-05-01 15531.0 79.0 65.714 589.0 5.0 8.429 1724.44 8.772 7.296 65.398 0.555 0.936 0.61 124.0 13.768 348.0 38.639 null null null null 264079.0 7680.0 29.321 0.853 7342.0 0.815 9.0e-3 111.7 null 67.59 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-09-09 30583.0 502.0 373.429 747.0 0.0 1.857 3395.696 55.738 41.463 82.941 0.0 0.206 1.41 36.0 3.997 161.0 17.876 null null null null 1288059.0 11582.0 143.016 1.286 11070.0 1.229 3.4e-2 29.6 null 36.11 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-10-02 46374.0 688.0 696.286 803.0 1.0 2.429 5149.005 76.39 77.31 89.159 0.111 0.27 1.15 100.0 11.103 372.0 41.304 null null null null 1658412.0 21839.0 184.137 2.425 18815.0 2.089 3.7e-2 27.0 null 40.74 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-10-06 49819.0 923.0 825.429 822.0 4.0 3.714 5531.511 102.483 91.649 91.268 0.444 0.412 1.21 101.0 11.214 397.0 44.08 null null null null 1716505.0 18237.0 190.587 2.025 18561.0 2.061 4.4e-2 22.5 null 40.74 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AZE Asia Azerbaijan 2020-03-20 44.0 0.0 4.143 1.0 0.0 0.0 4.34 0.0 0.409 9.9e-2 0.0 0.0 null null null null null null null null null null null null null null null null null null 61.11 1.0139175e7 119.309 32.4 6.018 3.871 15847.419 null 559.812 7.11 0.3 42.5 83.241 4.7 73.0 0.757
BHR Asia Bahrain 2020-05-23 8802.0 388.0 293.571 13.0 1.0 0.143 5172.83 228.023 172.528 7.64 0.588 8.4e-2 1.21 null null null null null null null null 276552.0 7373.0 162.526 4.333 6623.0 3.892 4.4e-2 22.6 null 75.0 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-10-26 80533.0 278.0 329.857 316.0 4.0 2.0 47328.282 163.377 193.853 185.709 2.351 1.175 0.88 null null null null null null null null 1698489.0 19642.0 998.182 11.543 11551.0 6.788 2.9e-2 35.0 null 63.89 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BGD Asia Bangladesh 2020-11-07 418764.0 1289.0 1582.857 6049.0 13.0 18.0 2542.75 7.827 9.611 36.73 7.9e-2 0.109 1.02 null null null null null null null null 2427669.0 11419.0 14.741 6.9e-2 13029.0 7.9e-2 0.121 8.2 null 80.09 1.64689383e8 1265.036 27.5 5.098 3.262 3523.984 14.8 298.003 8.38 1.0 44.7 34.808 0.8 72.59 0.608
BEL Europe Belgium 2020-02-26 1.0 0.0 0.0 0.0 0.0 0.0 8.6e-2 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-03-05 50.0 27.0 7.0 0.0 0.0 0.0 4.314 2.33 0.604 null 0.0 0.0 null null null null null null null null null 2411.0 773.0 0.208 6.7e-2 null null null null null 13.89 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-04-04 18431.0 1661.0 1328.143 1283.0 140.0 132.857 1590.303 143.318 114.598 110.703 12.08 11.463 1.45 1261.0 108.804 5531.0 477.238 null null null null 93217.0 5368.0 8.043 0.463 5288.0 0.456 0.251 4.0 null 81.48 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-07-02 61598.0 89.0 84.429 9761.0 7.0 5.0 5314.93 7.679 7.285 842.219 0.604 0.431 1.04 35.0 3.02 187.0 16.135 null null null null 1303042.0 13607.0 112.432 1.174 12646.0 1.091 7.0e-3 149.8 null 50.0 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BLZ North America Belize 2020-01-24 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 397621.0 16.426 25.0 3.853 2.279 7824.362 null 176.957 17.11 null null 90.083 1.3 74.62 0.708
BLZ North America Belize 2020-02-25 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 397621.0 16.426 25.0 3.853 2.279 7824.362 null 176.957 17.11 null null 90.083 1.3 74.62 0.708
BLZ North America Belize 2020-04-17 18.0 0.0 1.143 2.0 0.0 0.0 45.269 0.0 2.874 5.03 0.0 0.0 null null null null null null null null null null null null null null null null null null 75.0 397621.0 16.426 25.0 3.853 2.279 7824.362 null 176.957 17.11 null null 90.083 1.3 74.62 0.708
BLZ North America Belize 2020-06-14 20.0 0.0 0.143 2.0 0.0 0.0 50.299 0.0 0.359 5.03 0.0 0.0 null null null null null null null null null null null null null null null null null null 73.15 397621.0 16.426 25.0 3.853 2.279 7824.362 null 176.957 17.11 null null 90.083 1.3 74.62 0.708
BLZ North America Belize 2020-11-04 3905.0 115.0 92.0 64.0 3.0 1.714 9820.91 289.22 231.376 160.957 7.545 4.311 1.17 null null null null null null null null null null null null null null null null null 66.67 397621.0 16.426 25.0 3.853 2.279 7824.362 null 176.957 17.11 null null 90.083 1.3 74.62 0.708
BEN Africa Benin 2020-05-07 140.0 44.0 10.857 2.0 0.0 0.143 11.548 3.629 0.896 0.165 0.0 1.2e-2 null null null null null null null null null null null null null null null null null null 70.83 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BEN Africa Benin 2020-06-05 261.0 0.0 5.286 3.0 0.0 0.0 21.529 0.0 0.436 0.247 0.0 0.0 0.99 null null null null null null null null null null null null null null null null null 41.67 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BEN Africa Benin 2020-12-01 3015.0 0.0 14.143 43.0 0.0 0.0 248.697 0.0 1.167 3.547 0.0 0.0 null null null null null null null null null null null null null null null null null null null 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BTN Asia Bhutan 2020-03-05 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 771612.0 21.188 28.6 4.885 2.977 8708.597 1.5 217.066 9.75 null null 79.807 1.7 71.78 0.612
BTN Asia Bhutan 2020-08-19 147.0 0.0 4.857 0.0 0.0 0.0 190.51 0.0 6.295 null 0.0 0.0 0.72 null null null null null null null null null null null null null null null null null 97.22 771612.0 21.188 28.6 4.885 2.977 8708.597 1.5 217.066 9.75 null null 79.807 1.7 71.78 0.612
BTN Asia Bhutan 2020-10-08 304.0 0.0 3.143 0.0 0.0 0.0 393.98 0.0 4.073 null 0.0 0.0 0.74 null null null null null null null null null null null null null null null null null 77.78 771612.0 21.188 28.6 4.885 2.977 8708.597 1.5 217.066 9.75 null null 79.807 1.7 71.78 0.612
BOL South America Bolivia 2020-09-06 120769.0 528.0 685.857 5398.0 0.0 61.714 10345.986 45.232 58.756 462.434 0.0 5.287 0.86 null null null null null null null null 251931.0 1625.0 21.582 0.139 2093.0 0.179 0.328 3.1 null 81.48 1.1673029e7 10.202 25.4 6.704 4.393 6885.829 7.1 204.299 6.89 null null 25.383 1.1 71.51 0.693
BIH Europe Bosnia and Herzegovina 2020-07-05 4962.0 0.0 146.714 191.0 0.0 1.857 1512.429 0.0 44.719 58.217 0.0 0.566 1.2 null null null null null null null null null null null null null null null null null 56.48 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BWA Africa Botswana 2020-11-20 9594.0 0.0 195.571 31.0 0.0 0.571 4079.732 0.0 83.164 13.182 0.0 0.243 0.75 null null null null null null null null null null null null null null null null null 50.93 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BRA South America Brazil 2020-02-01 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-07-19 2098389.0 23529.0 33386.857 79488.0 716.0 1055.429 9872.012 110.694 157.071 373.957 3.368 4.965 1.05 null null null null null null null null null null null null 31275.0 0.147 null null null 81.02 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-10-31 5535605.0 18947.0 22138.571 159884.0 407.0 425.857 26042.625 89.137 104.152 752.185 1.915 2.003 1.0 null null null null null null null null null null null null null null null null null 57.87 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-11-12 5781582.0 33922.0 27365.286 164281.0 913.0 453.571 27199.84 159.588 128.742 772.871 4.295 2.134 1.15 null null null null null null null null null null null null null null null null null null 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRN Asia Brunei 2020-02-12 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BRN Asia Brunei 2020-03-17 56.0 2.0 7.857 0.0 0.0 0.0 128.005 4.572 17.96 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 50.0 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BRN Asia Brunei 2020-11-20 148.0 0.0 0.0 3.0 0.0 0.0 338.299 0.0 0.0 6.857 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 35.19 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BGR Europe Bulgaria 2020-04-23 1097.0 73.0 42.429 52.0 3.0 2.0 157.877 10.506 6.106 7.484 0.432 0.288 1.29 37.0 5.325 270.0 38.858 null null null null null null null null 879.0 0.127 4.8e-2 20.7 null 73.15 6948445.0 65.18 44.7 20.801 13.272 18563.307 1.5 424.688 5.81 30.1 44.4 null 7.454 75.05 0.813
BFA Africa Burkina Faso 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BFA Africa Burkina Faso 2020-02-18 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BFA Africa Burkina Faso 2020-11-12 2586.0 0.0 5.143 67.0 0.0 0.0 123.713 0.0 0.246 3.205 0.0 0.0 0.97 null null null null null null null null null null null null null null null null null 22.22 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BDI Africa Burundi 2020-02-20 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 1.1890781e7 423.062 17.5 2.562 1.504 702.225 71.7 293.068 6.05 null null 6.144 0.8 61.58 0.417
BDI Africa Burundi 2020-03-21 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 1.1890781e7 423.062 17.5 2.562 1.504 702.225 71.7 293.068 6.05 null null 6.144 0.8 61.58 0.417
BDI Africa Burundi 2020-08-26 430.0 0.0 1.143 1.0 0.0 0.0 36.162 0.0 9.6e-2 8.4e-2 0.0 0.0 0.73 null null null null null null null null null null null null null null null null null 11.11 1.1890781e7 423.062 17.5 2.562 1.504 702.225 71.7 293.068 6.05 null null 6.144 0.8 61.58 0.417
BDI Africa Burundi 2020-11-20 649.0 8.0 3.571 1.0 0.0 0.0 54.58 0.673 0.3 8.4e-2 0.0 0.0 0.85 null null null null null null null null null null null null null null null null null 14.81 1.1890781e7 423.062 17.5 2.562 1.504 702.225 71.7 293.068 6.05 null null 6.144 0.8 61.58 0.417
KHM Asia Cambodia 2020-02-18 1.0 0.0 0.0 0.0 0.0 0.0 6.0e-2 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-05-05 122.0 0.0 0.0 0.0 0.0 0.0 7.297 0.0 0.0 null 0.0 0.0 4.0e-2 null null null null null null null null null null null null null null null null null 57.41 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-07-04 141.0 0.0 0.0 0.0 0.0 0.0 8.434 0.0 0.0 null 0.0 0.0 0.23 null null null null null null null null null null null null null null null null null 40.74 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
CMR Africa Cameroon 2020-02-16 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CMR Africa Cameroon 2020-07-11 15173.0 257.0 368.714 359.0 0.0 6.571 571.577 9.681 13.89 13.524 0.0 0.248 1.02 null null null null null null null null null null null null null null null null null 60.19 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CMR Africa Cameroon 2020-07-29 17255.0 76.0 104.714 391.0 0.0 1.286 650.007 2.863 3.945 14.729 0.0 4.8e-2 1.02 null null null null null null null null null null null null null null null null null 60.19 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CAN North America Canada 2020-01-26 1.0 1.0 0.0 0.0 0.0 0.0 2.6e-2 2.6e-2 null null 0.0 null null null null null null null null null null null null null null null null null null null 2.78 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-04-14 27035.0 1355.0 1309.0 901.0 120.0 75.143 716.308 35.901 34.683 23.873 3.179 1.991 1.3 null null null null null null null null 454983.0 17508.0 12.055 0.464 15268.0 0.405 8.6e-2 11.7 null 72.69 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-06-26 104629.0 166.0 330.714 8571.0 4.0 23.286 2772.205 4.398 8.762 227.094 0.106 0.617 0.85 null null null null null null null null 2598243.0 39880.0 68.842 1.057 36954.0 0.979 9.0e-3 111.7 null 68.98 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CPV Africa Cape Verde 2020-06-14 750.0 24.0 28.0 6.0 0.0 0.143 1348.95 43.166 50.361 10.792 0.0 0.257 1.09 null null null null null null null null null null null null null null null null null 79.17 555988.0 135.58 25.7 4.46 3.437 6222.554 null 182.219 2.42 2.1 16.5 null 2.1 72.98 0.654
CAF Africa Central African Republic 2020-09-11 4749.0 2.0 2.857 62.0 0.0 0.0 983.278 0.414 0.592 12.837 0.0 0.0 0.61 null null null null null null null null null null null null null null null null null 54.63 4829764.0 7.479 18.3 3.655 2.251 661.24 null 435.727 6.1 null null 16.603 1.0 53.28 0.367
TCD Africa Chad 2020-05-18 519.0 16.0 28.143 53.0 0.0 3.143 31.597 0.974 1.713 3.227 0.0 0.191 0.9 null null null null null null null null null null null null null null null null null 74.07 1.6425859e7 11.833 16.7 2.486 1.446 1768.153 38.4 280.995 6.1 null null 5.818 null 54.24 0.404
TCD Africa Chad 2020-05-20 565.0 20.0 27.571 57.0 1.0 2.143 34.397 1.218 1.679 3.47 6.1e-2 0.13 0.89 null null null null null null null null null null null null null null null null null 74.07 1.6425859e7 11.833 16.7 2.486 1.446 1768.153 38.4 280.995 6.1 null null 5.818 null 54.24 0.404
TCD Africa Chad 2020-07-02 868.0 2.0 0.714 74.0 0.0 0.0 52.844 0.122 4.3e-2 4.505 0.0 0.0 0.78 null null null null null null null null null null null null null null null null null 67.59 1.6425859e7 11.833 16.7 2.486 1.446 1768.153 38.4 280.995 6.1 null null 5.818 null 54.24 0.404
CHL South America Chile 2020-11-12 526438.0 1634.0 1408.0 14699.0 66.0 42.143 27538.828 85.477 73.655 768.929 3.453 2.205 0.99 null null null null null null null null 4695035.0 35708.0 245.605 1.868 34425.0 1.801 4.1e-2 24.4 null 81.94 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHN Asia China 2020-03-26 81782.0 121.0 89.429 3291.0 6.0 6.0 56.82 8.4e-2 6.2e-2 2.286 4.0e-3 4.0e-3 0.9 null null null null null null null null null null null null null null null null null 81.94 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
CHN Asia China 2020-07-04 84857.0 19.0 16.286 4641.0 0.0 0.0 58.956 1.3e-2 1.1e-2 3.224 0.0 0.0 1.05 null null null null null null null null null null null null null null null null null 78.24 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
COL South America Colombia 2020-02-07 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-04-28 5949.0 352.0 257.143 269.0 16.0 10.429 116.916 6.918 5.054 5.287 0.314 0.205 1.34 null null null null null null null null 95085.0 4186.0 1.869 8.2e-2 3818.0 7.5e-2 null null null 90.74 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-11-22 1248417.0 7924.0 7095.857 35287.0 183.0 179.429 24535.107 155.73 139.455 693.494 3.596 3.526 null null null null null null null null null 4844144.0 26969.0 95.202 0.53 27587.0 0.542 null null null 65.74 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COM Africa Comoros 2020-05-25 87.0 0.0 10.857 1.0 0.0 0.0 100.047 0.0 12.485 1.15 0.0 0.0 null null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COM Africa Comoros 2020-10-17 502.0 0.0 1.0 7.0 0.0 0.0 577.28 0.0 1.15 8.05 0.0 0.0 0.64 null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COG Africa Congo 2020-01-25 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 5518092.0 15.405 19.0 3.402 2.063 4881.406 37.0 344.094 7.2 1.7 52.3 47.964 null 64.57 0.606
COG Africa Congo 2020-07-24 3038.0 187.0 57.857 51.0 1.0 0.286 550.553 33.889 10.485 9.242 0.181 5.2e-2 0.72 null null null null null null null null null null null null null null null null null 62.04 5518092.0 15.405 19.0 3.402 2.063 4881.406 37.0 344.094 7.2 1.7 52.3 47.964 null 64.57 0.606
COG Africa Congo 2020-08-31 3979.0 0.0 0.0 78.0 0.0 0.0 721.083 0.0 0.0 14.135 0.0 0.0 0.65 null null null null null null null null null null null null null null null null null 62.04 5518092.0 15.405 19.0 3.402 2.063 4881.406 37.0 344.094 7.2 1.7 52.3 47.964 null 64.57 0.606
CRI North America Costa Rica 2020-02-20 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 5094114.0 96.079 33.6 9.468 5.694 15524.995 1.3 137.973 8.78 6.4 17.4 83.841 1.13 80.28 0.794
CRI North America Costa Rica 2020-06-15 1744.0 29.0 57.429 12.0 0.0 0.143 342.356 5.693 11.274 2.356 0.0 2.8e-2 1.44 null null null null null null null null 24411.0 237.0 4.792 4.7e-2 368.0 7.2e-2 null null null 72.22 5094114.0 96.079 33.6 9.468 5.694 15524.995 1.3 137.973 8.78 6.4 17.4 83.841 1.13 80.28 0.794
CIV Africa Cote d'Ivoire 2020-07-22 14733.0 202.0 190.0 93.0 0.0 0.857 558.528 7.658 7.203 3.526 0.0 3.2e-2 0.94 null null null null null null null null 87683.0 1131.0 3.324 4.3e-2 1113.0 4.2e-2 0.171 5.9 null 60.65 2.6378275e7 76.399 18.7 2.933 1.582 3601.006 28.2 303.74 2.42 null null 19.351 null 57.78 0.492
CUB North America Cuba 2020-08-20 3565.0 83.0 55.857 88.0 0.0 -0.143 314.745 7.328 4.931 7.769 0.0 -1.3e-2 1.11 null null null null null null null null 351663.0 5224.0 31.047 0.461 4603.0 0.406 1.2e-2 82.4 null 82.41 1.1326616e7 110.408 43.1 14.738 9.719 null null 190.968 8.27 17.1 53.3 85.198 5.2 78.8 0.777
CYP Europe Cyprus 2020-07-20 1038.0 0.0 2.286 19.0 0.0 0.0 1185.068 0.0 2.61 21.692 0.0 0.0 1.32 null null null null null null null null 185489.0 1565.0 211.77 1.787 1532.0 1.749 1.0e-3 670.2 null 47.22 875899.0 127.657 37.3 13.416 8.563 32415.132 null 141.171 9.24 19.6 52.7 null 3.4 80.98 0.869
CZE Europe Czech Republic 2020-05-05 7896.0 77.0 56.0 257.0 5.0 4.286 737.325 7.19 5.229 23.999 0.467 0.4 0.78 47.0 4.389 223.0 20.824 null null null null 283273.0 9383.0 26.452 0.876 6303.0 0.589 9.0e-3 112.6 null 57.41 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
COD Africa Democratic Republic of Congo 2020-03-13 2.0 1.0 0.286 0.0 0.0 0.0 2.2e-2 1.1e-2 3.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
DNK Europe Denmark 2020-02-18 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null 14.0 2.0 2.0e-3 0.0 1.0 0.0 0.0 null null 0.0 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DJI Africa Djibouti 2020-09-27 5409.0 0.0 0.857 61.0 0.0 0.0 5474.685 0.0 0.868 61.741 0.0 0.0 0.82 null null null null null null null null null null null null null null null null null 50.93 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DJI Africa Djibouti 2020-10-01 5417.0 1.0 1.429 61.0 0.0 0.0 5482.782 1.012 1.446 61.741 0.0 0.0 0.82 null null null null null null null null null null null null null null null null null 47.22 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DOM North America Dominican Republic 2020-03-07 2.0 0.0 0.286 0.0 0.0 0.0 0.184 0.0 2.6e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
DOM North America Dominican Republic 2020-04-14 3286.0 119.0 190.0 183.0 6.0 12.143 302.916 10.97 17.515 16.87 0.553 1.119 1.37 null null null null null null null null 11741.0 1293.0 1.082 0.119 769.0 7.1e-2 0.247 4.0 null 92.59 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
DOM North America Dominican Republic 2020-10-06 115371.0 317.0 495.857 2149.0 5.0 6.857 10635.326 29.222 45.71 198.103 0.461 0.632 1.0 null null null null null null null null 502680.0 4599.0 46.339 0.424 3610.0 0.333 0.137 7.3 null 78.7 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
DOM North America Dominican Republic 2020-11-20 136784.0 601.0 604.286 2306.0 5.0 3.714 12609.256 55.402 55.705 212.576 0.461 0.342 1.18 null null null null null null null null null null null null 4378.0 0.404 0.138 7.2 null 64.81 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
EGY Africa Egypt 2020-03-22 327.0 33.0 31.0 14.0 4.0 1.714 3.195 0.322 0.303 0.137 3.9e-2 1.7e-2 1.47 null null null null null null null null null null null null null null null null null 40.74 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-04-14 2350.0 160.0 128.571 178.0 14.0 12.0 22.964 1.564 1.256 1.739 0.137 0.117 1.36 null null null null null null null null null null null null null null null null null 84.26 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
SLV North America El Salvador 2020-12-03 39130.0 0.0 178.0 1134.0 5.0 5.143 6032.807 0.0 27.443 174.833 0.771 0.793 null null null null null null null null null null null null null null null null null null null 6486201.0 307.811 27.6 8.273 5.417 7292.458 2.2 167.295 8.87 2.5 18.8 90.65 1.3 73.32 0.674
GNQ Africa Equatorial Guinea 2020-05-15 594.0 11.0 22.143 7.0 0.0 0.429 423.383 7.84 15.783 4.989 0.0 0.305 0.82 null null null null null null null null null null null null null null null null null null 1402985.0 45.194 22.4 2.846 1.752 22604.873 null 202.812 7.78 null null 24.64 2.1 58.74 0.591
EST Europe Estonia 2020-04-22 1559.0 7.0 22.714 44.0 1.0 1.286 1175.239 5.277 17.123 33.169 0.754 0.969 0.72 12.0 9.046 110.0 82.923 null null null null 48443.0 1732.0 36.518 1.306 1461.0 1.101 1.6e-2 64.3 null 77.78 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
EST Europe Estonia 2020-07-10 2013.0 2.0 3.143 69.0 0.0 0.0 1517.483 1.508 2.369 52.015 0.0 0.0 0.94 2.0 1.508 4.0 3.015 null null null null 129910.0 422.0 97.932 0.318 556.0 0.419 6.0e-3 176.9 null 25.93 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
EST Europe Estonia 2020-09-14 2698.0 22.0 23.714 64.0 0.0 0.0 2033.864 16.585 17.877 48.246 0.0 0.0 1.25 1.0 0.754 19.0 14.323 null null null null 208696.0 3059.0 157.324 2.306 2476.0 1.867 1.0e-2 104.4 null 25.93 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
TLS Asia Timor 2020-04-09 1.0 0.0 0.0 0.0 0.0 0.0 0.758 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 75.0 1318442.0 87.176 18.0 3.556 1.897 6570.102 30.3 335.346 6.86 6.3 78.1 28.178 5.9 69.5 0.625
TLS Asia Timor 2020-05-12 24.0 0.0 0.0 0.0 0.0 0.0 18.203 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 66.67 1318442.0 87.176 18.0 3.556 1.897 6570.102 30.3 335.346 6.86 6.3 78.1 28.178 5.9 69.5 0.625
TGO Africa Togo 2020-04-03 40.0 1.0 2.143 3.0 1.0 0.286 4.832 0.121 0.259 0.362 0.121 3.5e-2 null null null null null null null null null 1018.0 294.0 0.123 3.6e-2 100.0 1.2e-2 2.1e-2 46.7 null 73.15 8278737.0 143.366 19.4 2.839 1.525 1429.813 49.2 280.033 6.15 0.9 14.2 10.475 0.7 61.04 0.503
TTO North America Trinidad and Tobago 2020-03-18 7.0 2.0 1.0 0.0 0.0 0.0 5.002 1.429 0.715 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 49.07 1399491.0 266.886 36.2 10.014 5.819 28763.071 null 228.467 10.97 null null 89.443 3.0 73.51 0.784
TUN Africa Tunisia 2020-03-21 60.0 6.0 6.0 1.0 0.0 0.143 5.077 0.508 0.508 8.5e-2 0.0 1.2e-2 null null null null null null null null null 955.0 135.0 8.1e-2 1.1e-2 85.0 7.0e-3 7.1e-2 14.2 null 77.78 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUN Africa Tunisia 2020-05-11 1032.0 0.0 2.0 45.0 0.0 0.286 87.32 0.0 0.169 3.808 0.0 2.4e-2 0.59 null null null null null null null null 34323.0 443.0 2.904 3.7e-2 1253.0 0.106 2.0e-3 626.5 null 87.04 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUN Africa Tunisia 2020-05-31 1077.0 1.0 3.714 48.0 0.0 0.0 91.127 8.5e-2 0.314 4.061 0.0 0.0 0.69 null null null null null null null null 53161.0 287.0 4.498 2.4e-2 578.0 4.9e-2 6.0e-3 155.6 null 79.63 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUR Asia Turkey 2020-06-14 178239.0 1562.0 1158.143 4807.0 15.0 16.429 2113.362 18.52 13.732 56.996 0.178 0.195 1.44 null null null null null null null null 2632171.0 45176.0 31.209 0.536 41940.0 0.497 2.8e-2 36.2 null 63.89 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
TUR Asia Turkey 2020-07-20 220572.0 931.0 938.714 5508.0 17.0 18.0 2615.3 11.039 11.13 65.308 0.202 0.213 0.93 null null null null null null null null 4316781.0 43404.0 51.184 0.515 42119.0 0.499 2.2e-2 44.9 null 63.89 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
TUR Asia Turkey 2020-09-06 279806.0 1578.0 1608.571 6673.0 53.0 49.571 3317.632 18.71 19.073 79.121 0.628 0.588 1.05 null null null null null null null null 7779539.0 96842.0 92.241 1.148 107307.0 1.272 1.5e-2 66.7 null 47.22 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
UGA Africa Uganda 2020-07-02 902.0 9.0 11.571 0.0 0.0 0.0 19.72 0.197 0.253 null 0.0 0.0 0.95 null null null null null null null null 200179.0 3349.0 4.376 7.3e-2 null null null null null 87.04 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-11-28 19944.0 356.0 325.286 201.0 4.0 4.714 436.02 7.783 7.111 4.394 8.7e-2 0.103 null null null null null null null null null 623977.0 823.0 13.642 1.8e-2 2101.0 4.6e-2 0.155 6.5 null null 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UKR Europe Ukraine 2020-02-01 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
GBR Europe United Kingdom 2020-10-10 593565.0 15175.0 15844.429 42850.0 81.0 63.286 8743.555 223.537 233.398 631.205 1.193 0.932 1.22 470.0 6.923 4194.0 61.78 null null null null 2.3471856e7 256190.0 345.754 3.774 251482.0 3.704 6.3e-2 15.9 null 67.59 6.7886004e7 272.898 40.8 18.517 12.527 39753.244 0.2 122.137 4.28 20.0 24.7 null 2.54 81.32 0.922
USA North America United States 2020-03-22 34855.0 8830.0 4520.429 574.0 110.0 72.0 105.301 26.677 13.657 1.734 0.332 0.218 3.1 null null 2173.0 6.565 0.0 0.0 2989.0 9.03 459727.0 72176.0 1.389 0.218 56551.0 0.171 null null null 72.69 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
USA North America United States 2020-05-25 1666505.0 18347.0 21812.714 101521.0 557.0 1115.286 5034.718 55.429 65.899 306.708 1.683 3.369 0.93 8467.0 25.58 37382.0 112.936 null null null null 1.6179748e7 335387.0 48.881 1.013 413773.0 1.25 null null null 72.69 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
USA North America United States 2020-10-04 7402515.0 36092.0 42957.571 210006.0 349.0 711.714 22363.915 109.038 129.78 634.454 1.054 2.15 1.05 5974.0 18.048 29945.0 90.468 679.0 2.051 9423.0 28.468 1.20830414e8 626288.0 365.044 1.892 951162.0 2.874 null null null 62.5 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
URY South America Uruguay 2020-09-15 1827.0 15.0 16.429 45.0 0.0 0.0 525.948 4.318 4.729 12.954 0.0 0.0 1.11 null null null null null null null null 203232.0 1797.0 58.505 0.517 2085.0 0.6 8.0e-3 126.9 null 32.41 3473727.0 19.751 35.6 14.655 10.361 20551.409 0.1 160.708 6.93 14.0 19.9 null 2.8 77.91 0.804
URY South America Uruguay 2020-09-24 1959.0 13.0 11.857 47.0 0.0 0.143 563.948 3.742 3.413 13.53 0.0 4.1e-2 1.12 null null null null null null null null 224322.0 3009.0 64.577 0.866 2290.0 0.659 5.0e-3 193.1 null 43.52 3473727.0 19.751 35.6 14.655 10.361 20551.409 0.1 160.708 6.93 14.0 19.9 null 2.8 77.91 0.804
UZB Asia Uzbekistan 2020-05-24 3164.0 49.0 58.714 13.0 0.0 0.143 94.535 1.464 1.754 0.388 0.0 4.0e-3 1.17 null null null null null null null null null null null null null null null null null 86.11 3.3469199e7 76.134 28.2 4.469 2.873 6253.104 null 724.417 7.57 1.3 24.7 null 4.0 71.72 0.71
VUT Oceania Vanuatu 2020-06-08 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 66.67 307150.0 22.662 23.1 4.394 2.62 2921.909 13.2 546.3 12.02 2.8 34.5 25.209 null 70.47 0.603
VUT Oceania Vanuatu 2020-10-23 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 22.22 307150.0 22.662 23.1 4.394 2.62 2921.909 13.2 546.3 12.02 2.8 34.5 25.209 null 70.47 0.603
VAT Europe Vatican 2020-02-07 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 809.0 null null null null null null null null null null null null 75.12 null
VAT Europe Vatican 2020-09-13 12.0 0.0 0.0 0.0 0.0 0.0 14833.127 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 809.0 null null null null null null null null null null null null 75.12 null
VAT Europe Vatican 2020-10-23 27.0 0.0 0.143 0.0 0.0 0.0 33374.536 0.0 176.585 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 809.0 null null null null null null null null null null null null 75.12 null
VEN South America Venezuela 2020-05-04 357.0 0.0 4.0 10.0 0.0 0.0 12.555 0.0 0.141 0.352 0.0 0.0 1.18 null null null null null null null null null null null null null null null null null 82.41 2.8435943e7 36.253 29.0 6.614 3.915 16745.022 null 204.85 6.47 null null null 0.8 72.06 0.761
VEN South America Venezuela 2020-07-05 7169.0 419.0 267.429 65.0 3.0 3.0 252.111 14.735 9.405 2.286 0.106 0.106 1.29 null null null null null null null null null null null null null null null null null 87.04 2.8435943e7 36.253 29.0 6.614 3.915 16745.022 null 204.85 6.47 null null null 0.8 72.06 0.761
VNM Asia Vietnam 2020-03-31 212.0 9.0 11.143 0.0 0.0 0.0 2.178 9.2e-2 0.114 null 0.0 0.0 0.66 null null null null null null null null null null null null 4476.0 4.6e-2 2.0e-3 401.7 null 83.33 9.7338583e7 308.127 32.6 7.15 4.718 6171.884 2.0 245.465 6.0 1.0 45.9 85.847 2.6 75.4 0.694
VNM Asia Vietnam 2020-06-10 332.0 0.0 0.571 0.0 0.0 0.0 3.411 0.0 6.0e-3 null 0.0 0.0 0.79 null null null null null null null null null null null null null null null null null 65.74 9.7338583e7 308.127 32.6 7.15 4.718 6171.884 2.0 245.465 6.0 1.0 45.9 85.847 2.6 75.4 0.694
ESH Africa Western Sahara 2020-04-24 6.0 0.0 0.0 0.0 0.0 0.0 10.045 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 597330.0 null 28.4 null 1.38 null null null null null null null null 70.26 null
ESH Africa Western Sahara 2020-05-10 6.0 0.0 0.0 0.0 0.0 0.0 10.045 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 597330.0 null 28.4 null 1.38 null null null null null null null null 70.26 null
OWID_WRL World World 2020-04-06 1342655.0 73233.0 77646.857 79519.0 5946.0 5697.571 172.25 9.395 9.961 10.202 0.763 0.731 1.25 null null null null null null null null null null null null null null null null null null 7.794798729e9 58.045 30.9 8.696 5.355 15469.207 10.0 233.07 8.51 6.434 34.635 60.13 2.705 72.58 null
OWID_WRL World World 2020-05-13 4351182.0 84840.0 83759.286 300046.0 5077.0 4674.286 558.216 10.884 10.746 38.493 0.651 0.6 1.05 null null null null null null null null null null null null null null null null null null 7.794798729e9 58.045 30.9 8.696 5.355 15469.207 10.0 233.07 8.51 6.434 34.635 60.13 2.705 72.58 null
OWID_WRL World World 2020-09-06 2.7123898e7 223342.0 270152.286 883806.0 3784.0 5300.143 3479.743 28.653 34.658 113.384 0.485 0.68 1.0 null null null null null null null null null null null null null null null null null null 7.794798729e9 58.045 30.9 8.696 5.355 15469.207 10.0 233.07 8.51 6.434 34.635 60.13 2.705 72.58 null
ZMB Africa Zambia 2020-03-11 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 16.67 1.8383956e7 22.995 17.7 2.48 1.542 3689.251 57.5 234.499 3.94 3.1 24.7 13.938 2.0 63.89 0.588
ZWE Africa Zimbabwe 2020-08-17 5308.0 47.0 80.0 135.0 3.0 4.429 357.13 3.162 5.383 9.083 0.202 0.298 1.05 null null null null null null null null 83782.0 898.0 5.637 6.0e-2 1337.0 9.0e-2 6.0e-2 16.7 null 80.56 1.4862927e7 42.729 19.6 2.822 1.882 1899.775 21.4 307.846 1.82 1.6 30.7 36.791 1.7 61.49 0.535
ZWE Africa Zimbabwe 2020-11-12 8696.0 29.0 36.0 255.0 0.0 1.0 585.08 1.951 2.422 17.157 0.0 6.7e-2 1.21 null null null null null null null null 150616.0 1086.0 10.134 7.3e-2 796.0 5.4e-2 4.5e-2 22.1 null 67.59 1.4862927e7 42.729 19.6 2.822 1.882 1899.775 21.4 307.846 1.82 1.6 30.7 36.791 1.7 61.49 0.535
MNG Asia Mongolia 2020-06-21 213.0 7.0 2.286 0.0 0.0 0.0 64.973 2.135 0.697 null 0.0 0.0 0.87 null null null null null null null null null null null null null null null null null 71.3 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
MNG Asia Mongolia 2020-11-10 382.0 14.0 4.286 0.0 0.0 0.0 116.524 4.271 1.307 null 0.0 0.0 1.47 null null null null null null null null null null null null null null null null null 35.19 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
MNE Europe Montenegro 2020-02-20 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MAR Africa Morocco 2020-05-15 6652.0 45.0 134.429 190.0 0.0 0.571 180.219 1.219 3.642 5.148 0.0 1.5e-2 0.82 null null null null null null null null 81616.0 3694.0 2.211 0.1 3106.0 8.4e-2 4.3e-2 23.1 null 93.52 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MAR Africa Morocco 2020-08-01 25015.0 693.0 767.143 367.0 14.0 8.857 677.719 18.775 20.784 9.943 0.379 0.24 1.42 null null null null null null null null 1273939.0 21574.0 34.514 0.584 21104.0 0.572 3.6e-2 27.5 null 64.81 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MOZ Africa Mozambique 2020-09-16 5994.0 281.0 175.714 39.0 2.0 1.571 191.775 8.99 5.622 1.248 6.4e-2 5.0e-2 1.12 null null null null null null null null 118657.0 1628.0 3.796 5.2e-2 1557.0 5.0e-2 0.113 8.9 null 62.04 3.1255435e7 37.728 17.7 3.158 1.87 1136.103 62.9 329.942 3.3 5.1 29.1 12.227 0.7 60.85 0.437
MOZ Africa Mozambique 2020-10-04 9196.0 147.0 173.286 66.0 2.0 1.143 294.221 4.703 5.544 2.112 6.4e-2 3.7e-2 1.1 null null null null null null null null 144618.0 1337.0 4.627 4.3e-2 1515.0 4.8e-2 0.114 8.7 null 62.04 3.1255435e7 37.728 17.7 3.158 1.87 1136.103 62.9 329.942 3.3 5.1 29.1 12.227 0.7 60.85 0.437
MMR Asia Myanmar 2020-06-27 296.0 3.0 1.286 6.0 0.0 0.0 5.44 5.5e-2 2.4e-2 0.11 0.0 0.0 0.78 null null null null null null null null 73218.0 1526.0 1.346 2.8e-2 1593.0 2.9e-2 1.0e-3 1238.7 null 80.56 5.4409794e7 81.721 29.1 5.732 3.12 5591.597 6.4 202.104 4.61 6.3 35.2 79.287 0.9 67.13 0.578
NAM Africa Namibia 2020-03-21 3.0 0.0 0.143 0.0 0.0 0.0 1.181 0.0 5.6e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 50.0 2540916.0 3.078 22.0 3.552 2.085 9541.808 13.4 243.811 3.94 9.7 34.2 44.6 null 63.71 0.647
NAM Africa Namibia 2020-08-08 2802.0 0.0 82.571 16.0 0.0 0.714 1102.752 0.0 32.497 6.297 0.0 0.281 1.23 null null null null null null null null null null null null 976.0 0.384 8.5e-2 11.8 null 48.61 2540916.0 3.078 22.0 3.552 2.085 9541.808 13.4 243.811 3.94 9.7 34.2 44.6 null 63.71 0.647
NAM Africa Namibia 2020-10-21 12406.0 39.0 48.143 133.0 1.0 0.429 4882.491 15.349 18.947 52.343 0.394 0.169 0.91 null null null null null null null null 118462.0 703.0 46.622 0.277 859.0 0.338 5.6e-2 17.8 null 34.26 2540916.0 3.078 22.0 3.552 2.085 9541.808 13.4 243.811 3.94 9.7 34.2 44.6 null 63.71 0.647
NPL Asia Nepal 2020-07-23 18241.0 147.0 128.143 43.0 1.0 0.571 626.047 5.045 4.398 1.476 3.4e-2 2.0e-2 0.98 null null null null null null null null 331095.0 3481.0 11.363 0.119 3898.0 0.134 3.3e-2 30.4 null 74.07 2.9136808e7 204.43 25.0 5.809 3.212 2442.804 15.0 260.797 7.26 9.5 37.8 47.782 0.3 70.78 0.574
NLD Europe Netherlands 2020-06-01 46749.0 104.0 157.429 5981.0 6.0 18.857 2728.296 6.069 9.188 349.054 0.35 1.101 0.87 151.0 8.812 null null null null null null null null null null 5351.0 0.312 2.9e-2 34.0 null 62.96 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-06-19 49634.0 107.0 138.0 6100.0 3.0 4.0 2896.666 6.245 8.054 355.999 0.175 0.233 0.75 73.0 4.26 null null null null null null null null null null 9291.0 0.542 1.5e-2 67.3 null 59.26 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-07-05 50834.0 73.0 68.429 6146.0 1.0 3.143 2966.698 4.26 3.994 358.684 5.8e-2 0.183 0.83 36.0 2.101 null null 4.957 0.289 8.923 0.521 685145.0 null 39.985 null 9951.0 0.581 7.0e-3 145.4 null 39.81 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-11-30 531930.0 4594.0 4918.429 9453.0 27.0 61.714 31043.708 268.108 287.042 551.682 1.576 3.602 null null null null null null null null null null null null null null null null null null 56.48 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NZL Oceania New Zealand 2020-04-14 1366.0 17.0 29.429 9.0 4.0 1.143 283.271 3.525 6.103 1.866 0.829 0.237 0.55 null null null null null null null null 67480.0 3123.0 13.994 0.648 2423.0 0.502 1.2e-2 82.3 null 96.3 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NZL Oceania New Zealand 2020-06-02 1504.0 0.0 0.0 22.0 0.0 0.143 311.889 0.0 0.0 4.562 0.0 3.0e-2 0.1 null null null null null null null null 278212.0 1149.0 57.694 0.238 1673.0 0.347 0.0 null null 37.04 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NZL Oceania New Zealand 2020-08-15 1622.0 13.0 7.571 22.0 0.0 0.0 336.359 2.696 1.57 4.562 0.0 0.0 1.43 null null null null null null null null 566096.0 23991.0 117.393 4.975 11027.0 2.287 1.0e-3 1456.5 null 68.98 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NIC North America Nicaragua 2020-03-14 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 6624554.0 51.667 27.3 5.445 3.519 5321.444 3.2 137.016 11.47 null null null 0.9 74.48 0.658
NGA Africa Nigeria 2020-02-23 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 2.06139587e8 209.588 18.1 2.751 1.447 5338.454 null 181.013 2.42 0.6 10.8 41.949 null 54.69 0.532
NGA Africa Nigeria 2020-05-03 2558.0 170.0 183.571 87.0 2.0 6.714 12.409 0.825 0.891 0.422 1.0e-2 3.3e-2 1.5 null null null null null null null null 16588.0 null 8.0e-2 null 758.0 4.0e-3 0.242 4.1 null 85.65 2.06139587e8 209.588 18.1 2.751 1.447 5338.454 null 181.013 2.42 0.6 10.8 41.949 null 54.69 0.532
NGA Africa Nigeria 2020-06-29 25133.0 566.0 602.0 573.0 8.0 6.857 121.922 2.746 2.92 2.78 3.9e-2 3.3e-2 1.06 null null null null null null null null 132304.0 2140.0 0.642 1.0e-2 2363.0 1.1e-2 0.255 3.9 null 80.09 2.06139587e8 209.588 18.1 2.751 1.447 5338.454 null 181.013 2.42 0.6 10.8 41.949 null 54.69 0.532
NOR Europe Norway 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
NOR Europe Norway 2020-06-07 8547.0 16.0 15.286 238.0 0.0 0.286 1576.576 2.951 2.82 43.901 0.0 5.3e-2 0.96 null null 21.0 3.874 null null null null 266925.0 933.0 49.237 0.172 2206.0 0.407 7.0e-3 144.3 null 39.81 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
NOR Europe Norway 2020-06-17 8692.0 32.0 14.0 243.0 1.0 0.571 1603.323 5.903 2.582 44.824 0.184 0.105 1.05 null null 18.0 3.32 null null null null 311041.0 4980.0 57.374 0.919 4021.0 0.742 3.0e-3 287.2 null 37.04 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
NOR Europe Norway 2020-10-19 16603.0 146.0 137.714 278.0 0.0 0.286 3062.582 26.931 25.403 51.28 0.0 5.3e-2 1.24 null null 28.0 5.165 null null null null 1514984.0 20733.0 279.453 3.824 13044.0 2.406 1.1e-2 94.7 null 28.7 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
OMN Asia Oman 2020-04-27 2049.0 51.0 91.286 10.0 0.0 0.429 401.244 9.987 17.876 1.958 0.0 8.4e-2 1.26 null null null null null null null null null null null null null null null null null 92.59 5106622.0 14.98 30.7 2.355 1.53 37960.709 null 266.342 12.61 0.5 15.6 97.4 1.6 77.86 0.821
OMN Asia Oman 2020-08-24 84509.0 740.0 183.286 637.0 28.0 7.0 16548.905 144.91 35.892 124.74 5.483 1.371 1.05 null null null null null null null null null null null null null null null null null 86.11 5106622.0 14.98 30.7 2.355 1.53 37960.709 null 266.342 12.61 0.5 15.6 97.4 1.6 77.86 0.821
PAK Asia Pakistan 2020-04-28 15525.0 913.0 778.429 343.0 31.0 18.714 70.283 4.133 3.524 1.553 0.14 8.5e-2 1.4 null null null null null null null null 157223.0 6467.0 0.712 2.9e-2 6488.0 2.9e-2 0.12 8.3 null 89.81 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PSE Asia Palestine 2020-01-27 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 5101416.0 778.202 20.4 3.043 1.726 4449.898 1.0 265.91 10.59 null null null null 74.05 0.686
PAN North America Panama 2020-04-07 2100.0 112.0 131.286 55.0 1.0 3.571 486.701 25.957 30.427 12.747 0.232 0.828 1.46 null null null null null null null null 10681.0 384.0 2.475 8.9e-2 534.0 0.124 0.246 4.1 null 90.74 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PAN North America Panama 2020-04-27 6021.0 242.0 222.0 167.0 2.0 5.857 1395.44 56.086 51.451 38.704 0.464 1.357 1.1 null null null null null null null null 27221.0 1098.0 6.309 0.254 934.0 0.216 0.238 4.2 null 93.52 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PNG Oceania Papua New Guinea 2020-05-29 8.0 0.0 0.0 0.0 0.0 0.0 0.894 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 52.31 8947027.0 18.22 22.6 3.808 2.142 3823.194 null 561.494 17.65 23.5 48.8 null null 64.5 0.544
PRY South America Paraguay 2020-05-12 737.0 13.0 43.714 10.0 0.0 0.0 103.329 1.823 6.129 1.402 0.0 0.0 1.15 null null null null null null null null 16917.0 762.0 2.372 0.107 715.0 0.1 6.1e-2 16.4 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PRY South America Paraguay 2020-09-27 38684.0 762.0 737.714 803.0 21.0 20.571 5423.601 106.834 103.43 112.583 2.944 2.884 1.08 null null null null null null null null 269710.0 2648.0 37.814 0.371 2690.0 0.377 0.274 3.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PER South America Peru 2020-05-22 111698.0 2929.0 3886.143 3244.0 96.0 121.714 3387.678 88.833 117.862 98.387 2.912 3.691 1.22 null null null null null null null null 135586.0 5230.0 4.112 0.159 3878.0 0.118 null null null 92.59 3.2971846e7 25.129 29.1 7.151 4.455 12236.706 3.5 85.755 5.95 4.8 null null 1.6 76.74 0.75
PER South America Peru 2020-09-02 657129.0 5092.0 7106.714 29068.0 124.0 152.429 19930.003 154.435 215.539 881.601 3.761 4.623 0.99 null null null null null null null null 680150.0 7875.0 20.628 0.239 7053.0 0.214 null null null 85.19 3.2971846e7 25.129 29.1 7.151 4.455 12236.706 3.5 85.755 5.95 4.8 null null 1.6 76.74 0.75
PER South America Peru 2020-09-09 696190.0 4615.0 5580.143 30123.0 147.0 150.714 21114.681 139.968 169.24 913.598 4.458 4.571 0.96 null null null null null null null null 728802.0 8243.0 22.104 0.25 6950.0 0.211 null null null 85.19 3.2971846e7 25.129 29.1 7.151 4.455 12236.706 3.5 85.755 5.95 4.8 null null 1.6 76.74 0.75
PER South America Peru 2020-09-22 768895.0 0.0 5005.0 31369.0 0.0 79.571 23319.744 0.0 151.796 951.387 0.0 2.413 0.94 null null null null null null null null 813013.0 7704.0 24.658 0.234 6558.0 0.199 null null null 85.19 3.2971846e7 25.129 29.1 7.151 4.455 12236.706 3.5 85.755 5.95 4.8 null null 1.6 76.74 0.75
PHL Asia Philippines 2020-02-01 1.0 0.0 0.143 0.0 0.0 0.0 9.0e-3 0.0 1.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 1.09581085e8 351.873 25.2 4.803 2.661 7599.188 null 370.437 7.07 7.8 40.8 78.463 1.0 71.23 0.699
PHL Asia Philippines 2020-05-25 14319.0 284.0 228.714 873.0 5.0 6.0 130.67 2.592 2.087 7.967 4.6e-2 5.5e-2 1.31 null null null null null null null null 285929.0 5421.0 2.609 4.9e-2 7459.0 6.8e-2 3.1e-2 32.6 null 96.3 1.09581085e8 351.873 25.2 4.803 2.661 7599.188 null 370.437 7.07 7.8 40.8 78.463 1.0 71.23 0.699
POL Europe Poland 2020-04-07 4848.0 435.0 362.429 129.0 22.0 13.714 128.096 11.494 9.576 3.408 0.581 0.362 1.4 null null null null null null null null null null null null null null null null null 81.48 3.7846605e7 124.027 41.8 16.763 10.202 27216.445 null 227.331 5.91 23.3 33.1 null 6.62 78.73 0.865
POL Europe Poland 2020-04-16 7918.0 336.0 334.714 314.0 28.0 20.0 209.213 8.878 8.844 8.297 0.74 0.528 1.11 null null 2607.0 68.883 null null null null null null null null null null null null null 83.33 3.7846605e7 124.027 41.8 16.763 10.202 27216.445 null 227.331 5.91 23.3 33.1 null 6.62 78.73 0.865
POL Europe Poland 2020-07-22 41162.0 380.0 348.714 1642.0 6.0 6.857 1087.601 10.041 9.214 43.386 0.159 0.181 1.19 null null 1644.0 43.439 null null null null 1761265.0 19656.0 46.537 0.519 17054.0 0.451 2.0e-2 48.9 null 39.81 3.7846605e7 124.027 41.8 16.763 10.202 27216.445 null 227.331 5.91 23.3 33.1 null 6.62 78.73 0.865
POL Europe Poland 2020-10-09 116338.0 4739.0 2937.857 2919.0 52.0 49.857 3073.935 125.216 77.625 77.127 1.374 1.317 1.69 null null 4407.0 116.444 null null null null 3455011.0 31036.0 91.29 0.82 28845.0 0.762 0.102 9.8 null 23.15 3.7846605e7 124.027 41.8 16.763 10.202 27216.445 null 227.331 5.91 23.3 33.1 null 6.62 78.73 0.865
PRT Europe Portugal 2020-04-03 9886.0 852.0 802.571 246.0 37.0 24.286 969.529 83.556 78.709 24.125 3.629 2.382 1.44 245.0 24.027 1058.0 103.759 null null null null 107234.0 9438.0 10.517 0.926 7878.0 0.773 0.102 9.8 null 82.41 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
PRT Europe Portugal 2020-10-01 76396.0 854.0 748.571 1977.0 6.0 6.571 7492.223 83.753 73.413 193.886 0.588 0.644 1.18 107.0 10.494 682.0 66.884 null null null null 2675452.0 24530.0 262.384 2.406 21504.0 2.109 3.5e-2 28.7 null 58.8 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
QAT Asia Qatar 2020-11-19 136649.0 208.0 216.714 235.0 0.0 0.143 47430.113 72.196 75.22 81.567 0.0 5.0e-2 1.0 null null null null null null null null 1067758.0 4703.0 370.613 1.632 4545.0 1.578 4.8e-2 21.0 null 64.81 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
ROU Europe Romania 2020-02-19 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
ROU Europe Romania 2020-08-26 81646.0 1256.0 1147.0 3421.0 54.0 45.0 4244.066 65.289 59.623 177.828 2.807 2.339 1.01 502.0 26.095 null null null null null null 1705368.0 25754.0 88.647 1.339 19819.0 1.03 5.8e-2 17.3 null 42.59 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
ROU Europe Romania 2020-10-11 155283.0 2880.0 2769.0 5411.0 53.0 58.286 8071.814 149.706 143.936 281.271 2.755 3.03 1.29 628.0 32.644 null null null null 18152.199 943.575 2672537.0 15709.0 138.922 0.817 23190.0 1.205 0.119 8.4 null 44.44 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
ROU Europe Romania 2020-10-31 241339.0 5753.0 5078.0 6968.0 101.0 92.857 12545.118 299.049 263.961 362.206 5.25 4.827 1.26 923.0 47.979 null null null null null null 3242748.0 36181.0 168.562 1.881 30479.0 1.584 0.167 6.0 null 54.63 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
RUS Europe Russia 2020-02-29 2.0 0.0 0.0 0.0 0.0 0.0 1.4e-2 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816
RWA Africa Rwanda 2020-04-04 102.0 13.0 6.0 0.0 0.0 0.0 7.875 1.004 0.463 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 90.74 1.2952209e7 494.869 20.3 2.974 1.642 1854.211 56.0 191.375 4.28 4.7 21.0 4.617 null 69.02 0.524
RWA Africa Rwanda 2020-11-12 5319.0 7.0 18.143 41.0 0.0 0.714 410.664 0.54 1.401 3.165 0.0 5.5e-2 1.43 null null null null null null null null null null null null 2056.0 0.159 9.0e-3 113.3 null 58.33 1.2952209e7 494.869 20.3 2.974 1.642 1854.211 56.0 191.375 4.28 4.7 21.0 4.617 null 69.02 0.524
KNA North America Saint Kitts and Nevis 2020-03-27 2.0 0.0 0.286 0.0 0.0 0.0 37.6 0.0 5.371 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 53192.0 212.865 null null null 24654.385 null null 12.84 null null null 2.3 76.23 0.778
KNA North America Saint Kitts and Nevis 2020-10-25 19.0 0.0 0.0 0.0 0.0 0.0 357.197 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 53192.0 212.865 null null null 24654.385 null null 12.84 null null null 2.3 76.23 0.778
LCA North America Saint Lucia 2020-02-01 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 183629.0 293.187 34.9 9.721 6.405 12951.839 null 204.62 11.62 null null 87.202 1.3 76.2 0.747
LCA North America Saint Lucia 2020-04-26 15.0 0.0 0.0 0.0 0.0 0.0 81.686 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 183629.0 293.187 34.9 9.721 6.405 12951.839 null 204.62 11.62 null null 87.202 1.3 76.2 0.747
LCA North America Saint Lucia 2020-09-27 27.0 0.0 0.0 0.0 0.0 0.0 147.036 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 183629.0 293.187 34.9 9.721 6.405 12951.839 null 204.62 11.62 null null 87.202 1.3 76.2 0.747
LCA North America Saint Lucia 2020-10-04 27.0 0.0 0.0 0.0 0.0 0.0 147.036 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 183629.0 293.187 34.9 9.721 6.405 12951.839 null 204.62 11.62 null null 87.202 1.3 76.2 0.747
VCT North America Saint Vincent and the Grenadines 2020-02-24 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
VCT North America Saint Vincent and the Grenadines 2020-09-13 64.0 0.0 0.429 0.0 0.0 0.0 576.852 0.0 3.863 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
VCT North America Saint Vincent and the Grenadines 2020-09-14 64.0 0.0 0.286 0.0 0.0 0.0 576.852 0.0 2.575 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
STP Africa Sao Tome and Principe 2020-06-26 712.0 1.0 2.714 13.0 0.0 0.143 3248.753 4.563 12.385 59.317 0.0 0.652 0.53 null null null null null null null null null null null null null null null null null null 219161.0 212.841 18.7 2.886 2.162 3052.714 32.3 270.113 2.42 null null 41.34 2.9 70.39 0.589
SEN Africa Senegal 2020-09-12 14237.0 44.0 41.286 295.0 2.0 0.714 850.278 2.628 2.466 17.618 0.119 4.3e-2 0.88 null null null null null null null null 165792.0 1093.0 9.902 6.5e-2 1091.0 6.5e-2 3.8e-2 26.4 null 37.96 1.674393e7 82.328 18.7 3.008 1.796 2470.58 38.0 241.219 2.42 0.4 16.6 20.859 null 67.94 0.505
SRB Europe Serbia 2020-05-18 10699.0 89.0 74.714 231.0 1.0 1.857 1572.32 13.079 10.98 33.948 0.147 0.273 0.77 null null null null null null null null 185385.0 4113.0 27.244 0.604 5683.0 0.835 1.3e-2 76.1 null 51.85 6804596.0 80.291 41.2 17.366 null 14048.881 null 439.415 10.08 37.7 40.2 97.719 5.609 76.0 0.787
SRB Europe Serbia 2020-10-02 33735.0 73.0 71.0 751.0 1.0 0.714 4957.679 10.728 10.434 110.367 0.147 0.105 1.17 null null null null null null null null 1147039.0 6661.0 168.568 0.979 5799.0 0.852 1.2e-2 81.7 null 54.63 6804596.0 80.291 41.2 17.366 null 14048.881 null 439.415 10.08 37.7 40.2 97.719 5.609 76.0 0.787
SYC Africa Seychelles 2020-09-16 140.0 0.0 0.429 0.0 0.0 0.0 1423.632 0.0 4.358 null 0.0 0.0 0.3 null null null null null null null null null null null null null null null null null 34.26 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SLE Africa Sierra Leone 2020-04-10 8.0 1.0 0.857 0.0 0.0 0.0 1.003 0.125 0.107 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 75.93 7976985.0 104.7 19.1 2.538 1.285 1390.3 52.2 325.721 2.42 8.8 41.3 19.275 null 54.7 0.419
SLE Africa Sierra Leone 2020-07-07 1572.0 25.0 15.714 63.0 1.0 0.429 197.067 3.134 1.97 7.898 0.125 5.4e-2 0.97 null null null null null null null null null null null null null null null null null 46.3 7976985.0 104.7 19.1 2.538 1.285 1390.3 52.2 325.721 2.42 8.8 41.3 19.275 null 54.7 0.419
SGP Asia Singapore 2020-09-21 57606.0 30.0 21.714 27.0 0.0 0.0 9846.602 5.128 3.712 4.615 0.0 0.0 0.61 null null null null null null null null 2692047.0 null 460.152 null 31585.0 5.399 1.0e-3 1454.6 null 51.85 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SGP Asia Singapore 2020-10-15 57892.0 3.0 6.143 28.0 0.0 0.143 9895.488 0.513 1.05 4.786 0.0 2.4e-2 0.63 null null null null null null null null null null null null 29788.0 5.092 0.0 4849.1 null 52.78 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SGP Asia Singapore 2020-10-23 57951.0 10.0 7.143 28.0 0.0 0.0 9905.573 1.709 1.221 4.786 0.0 0.0 1.07 null null null null null null null null null null null null 27814.0 4.754 0.0 3893.9 null 52.78 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SVK Europe Slovakia 2020-06-16 1552.0 0.0 3.0 28.0 0.0 0.0 284.268 0.0 0.549 5.129 0.0 0.0 1.29 null null 0.0 0.0 null null null null 198780.0 1163.0 36.409 0.213 973.0 0.178 3.0e-3 324.3 null 40.74 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVK Europe Slovakia 2020-08-13 2739.0 49.0 37.0 31.0 0.0 0.286 501.681 8.975 6.777 5.678 0.0 5.2e-2 1.31 null null 33.0 6.044 null null null null 289590.0 2738.0 53.042 0.501 2114.0 0.387 1.8e-2 57.1 null 35.19 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SLB Oceania Solomon Islands 2020-06-13 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 33.33 686878.0 21.841 20.8 3.507 2.043 2205.923 25.1 459.78 18.68 null null 35.89 1.4 73.0 0.546
ZAF Africa South Africa 2020-02-03 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
ZAF Africa South Africa 2020-05-08 8895.0 663.0 420.571 178.0 17.0 8.857 149.978 11.179 7.091 3.001 0.287 0.149 1.53 null null null null null null null null 307752.0 15599.0 5.189 0.263 12890.0 0.217 3.3e-2 30.6 null 84.26 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
ZAF Africa South Africa 2020-08-25 613017.0 1567.0 2981.857 13308.0 149.0 149.143 10336.04 26.421 50.277 224.385 2.512 2.515 0.63 null null null null null null null null 3578836.0 14771.0 60.343 0.249 21213.0 0.358 0.141 7.1 null 72.22 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
KOR Asia South Korea 2020-04-16 10613.0 22.0 27.143 229.0 4.0 3.571 207.005 0.429 0.529 4.467 7.8e-2 7.0e-2 0.48 null null null null null null null null 524507.0 4981.0 10.23 9.7e-2 6472.0 0.126 4.0e-3 238.4 null 82.41 5.1269183e7 527.967 43.4 13.914 8.622 35938.374 0.2 85.998 6.8 6.2 40.9 null 12.27 83.03 0.903
KOR Asia South Korea 2020-06-01 11541.0 38.0 45.143 272.0 1.0 0.429 225.106 0.741 0.881 5.305 2.0e-2 8.0e-3 1.14 null null null null null null null null 897333.0 9805.0 17.502 0.191 12855.0 0.251 4.0e-3 284.8 null 55.09 5.1269183e7 527.967 43.4 13.914 8.622 35938.374 0.2 85.998 6.8 6.2 40.9 null 12.27 83.03 0.903
SSD Africa South Sudan 2020-03-05 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
SSD Africa South Sudan 2020-03-09 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
SSD Africa South Sudan 2020-06-10 1604.0 0.0 87.143 19.0 0.0 1.286 143.295 0.0 7.785 1.697 0.0 0.115 0.82 null null null null null null null null null null null null null null null null null 85.19 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
SSD Africa South Sudan 2020-08-23 2499.0 2.0 1.429 47.0 0.0 0.0 223.25 0.179 0.128 4.199 0.0 0.0 0.91 null null null null null null null null null null null null null null null null null 77.78 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
SSD Africa South Sudan 2020-10-18 2842.0 25.0 9.286 55.0 0.0 0.0 253.892 2.233 0.83 4.913 0.0 0.0 0.99 null null null null null null null null 36740.0 420.0 3.282 3.8e-2 438.0 3.9e-2 2.1e-2 47.2 null 35.19 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
LKA Asia Sri Lanka 2020-11-22 20171.0 400.0 412.0 87.0 4.0 4.143 941.987 18.68 19.24 4.063 0.187 0.193 null null null null null null null null null 747638.0 10679.0 34.915 0.499 10791.0 0.504 3.8e-2 26.2 null 49.54 2.141325e7 341.955 34.1 10.069 5.331 11669.077 0.7 197.093 10.68 0.3 27.0 null 3.6 76.98 0.77
SDN Africa Sudan 2020-03-30 6.0 0.0 0.571 2.0 1.0 0.143 0.137 0.0 1.3e-2 4.6e-2 2.3e-2 3.0e-3 null null null null null null null null null null null null null null null null null null 76.85 4.3849269e7 23.258 19.7 3.548 2.034 4466.507 null 431.388 15.67 null null 23.437 0.8 65.31 0.502
SDN Africa Sudan 2020-06-28 9257.0 0.0 96.714 572.0 0.0 7.286 211.11 0.0 2.206 13.045 0.0 0.166 1.0 null null null null null null null null null null null null null null null null null 84.26 4.3849269e7 23.258 19.7 3.548 2.034 4466.507 null 431.388 15.67 null null 23.437 0.8 65.31 0.502
SUR South America Suriname 2020-02-14 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SUR South America Suriname 2020-05-01 10.0 0.0 0.0 1.0 0.0 0.0 17.046 0.0 0.0 1.705 0.0 0.0 null null null null null null null null null null null null null null null null null null 82.41 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SWZ Africa Swaziland 2020-05-20 217.0 9.0 4.286 2.0 0.0 0.0 187.043 7.758 3.694 1.724 0.0 0.0 0.99 null null null null null null null null null null null null null null null null null 84.26 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWE Europe Sweden 2020-05-30 38396.0 432.0 603.571 4633.0 45.0 39.0 3801.859 42.775 59.764 458.746 4.456 3.862 1.1 null null null null null null null null null null null null null null null null null 64.81 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933
CHE Europe Switzerland 2020-11-24 304593.0 4241.0 4294.143 4308.0 86.0 92.0 35194.274 490.027 496.168 497.769 9.937 10.63 null null null null null null null null null 2633317.0 29537.0 304.267 3.413 22717.0 2.625 0.189 5.3 null 49.07 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
SYR Asia Syria 2020-05-28 122.0 1.0 9.143 4.0 0.0 0.143 6.971 5.7e-2 0.522 0.229 0.0 8.0e-3 0.35 null null null null null null null null null null null null null null null null null 69.44 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
SYR Asia Syria 2020-06-19 187.0 0.0 3.286 7.0 0.0 0.143 10.685 0.0 0.188 0.4 0.0 8.0e-3 1.16 null null null null null null null null null null null null null null null null null 69.44 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
TWN Asia Taiwan 2020-09-22 509.0 0.0 1.429 7.0 0.0 0.0 21.371 0.0 6.0e-2 0.294 0.0 0.0 1.13 null null null null null null null null 92108.0 175.0 3.867 7.0e-3 281.0 1.2e-2 5.0e-3 196.6 null 23.15 2.3816775e7 null 42.2 null 8.353 null null 103.957 null null null null null 80.46 null
TWN Asia Taiwan 2020-09-26 510.0 0.0 0.571 7.0 0.0 0.0 21.413 0.0 2.4e-2 0.294 0.0 0.0 1.14 null null null null null null null null 92975.0 275.0 3.904 1.2e-2 203.0 9.0e-3 3.0e-3 355.5 null 23.15 2.3816775e7 null 42.2 null 8.353 null null 103.957 null null null null null 80.46 null
TJK Asia Tajikistan 2020-03-06 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 9537642.0 64.281 23.3 3.466 2.155 2896.913 4.8 427.698 7.11 null null 72.704 4.8 71.1 0.65
TJK Asia Tajikistan 2020-05-22 2551.0 201.0 204.714 44.0 0.0 1.571 267.467 21.074 21.464 4.613 0.0 0.165 1.32 null null null null null null null null null null null null null null null null null 51.85 9537642.0 64.281 23.3 3.466 2.155 2896.913 4.8 427.698 7.11 null null 72.704 4.8 71.1 0.65
TJK Asia Tajikistan 2020-07-09 6410.0 46.0 50.286 54.0 0.0 0.286 672.074 4.823 5.272 5.662 0.0 3.0e-2 0.92 null null null null null null null null null null null null null null null null null 70.37 9537642.0 64.281 23.3 3.466 2.155 2896.913 4.8 427.698 7.11 null null 72.704 4.8 71.1 0.65
THA Asia Thailand 2020-02-12 33.0 0.0 1.143 0.0 0.0 0.0 0.473 0.0 1.6e-2 null 0.0 0.0 null null null null null null null null null 2727.0 116.0 3.9e-2 2.0e-3 108.0 2.0e-3 1.1e-2 94.5 null 0.0 6.9799978e7 135.132 40.1 11.373 6.89 16277.671 0.1 109.861 7.04 1.9 38.8 90.67 2.1 77.15 0.755
THA Asia Thailand 2020-03-22 599.0 188.0 69.286 1.0 0.0 0.0 8.582 2.693 0.993 1.4e-2 0.0 0.0 1.55 null null null null null null null null 39317.0 2058.0 0.563 2.9e-2 2397.0 3.4e-2 2.9e-2 34.6 null 52.31 6.9799978e7 135.132 40.1 11.373 6.89 16277.671 0.1 109.861 7.04 1.9 38.8 90.67 2.1 77.15 0.755
THA Asia Thailand 2020-08-11 3351.0 0.0 4.286 58.0 0.0 0.0 48.009 0.0 6.1e-2 0.831 0.0 0.0 1.02 null null null null null null null null 836077.0 4136.0 11.978 5.9e-2 4105.0 5.9e-2 1.0e-3 957.8 null 52.78 6.9799978e7 135.132 40.1 11.373 6.89 16277.671 0.1 109.861 7.04 1.9 38.8 90.67 2.1 77.15 0.755
TLS Asia Timor 2020-08-19 25.0 0.0 0.0 0.0 0.0 0.0 18.962 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 29.63 1318442.0 87.176 18.0 3.556 1.897 6570.102 30.3 335.346 6.86 6.3 78.1 28.178 5.9 69.5 0.625
TGO Africa Togo 2020-02-09 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 8278737.0 143.366 19.4 2.839 1.525 1429.813 49.2 280.033 6.15 0.9 14.2 10.475 0.7 61.04 0.503
TGO Africa Togo 2020-09-15 1595.0 17.0 11.714 40.0 0.0 0.857 192.662 2.053 1.415 4.832 0.0 0.104 1.06 null null null null null null null null 78651.0 884.0 9.5 0.107 869.0 0.105 1.3e-2 74.2 null 49.07 8278737.0 143.366 19.4 2.839 1.525 1429.813 49.2 280.033 6.15 0.9 14.2 10.475 0.7 61.04 0.503
TUN Africa Tunisia 2020-09-13 6635.0 0.0 227.714 107.0 0.0 2.0 561.402 0.0 19.267 9.054 0.0 0.169 1.48 null null null null null null null null 190241.0 null 16.097 null 3545.0 0.3 6.4e-2 15.6 null 26.85 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUN Africa Tunisia 2020-10-21 45892.0 1442.0 1586.0 740.0 29.0 32.571 3883.026 122.011 134.195 62.613 2.454 2.756 1.24 null null null null null null null null null null null null null null null null null 58.33 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
UGA Africa Uganda 2020-02-21 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 16.67 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-03-03 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 16.67 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-07-16 1051.0 8.0 7.286 0.0 0.0 0.0 22.977 0.175 0.159 null 0.0 0.0 0.88 null null null null null null null null 238709.0 3696.0 5.219 8.1e-2 2433.0 5.3e-2 3.0e-3 333.9 null 81.48 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-09-17 5380.0 114.0 155.571 60.0 0.0 1.714 117.619 2.492 3.401 1.312 0.0 3.7e-2 1.21 null null null null null null null null 444346.0 2636.0 9.714 5.8e-2 3019.0 6.6e-2 5.2e-2 19.4 null 81.48 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UKR Europe Ukraine 2020-08-11 85023.0 1211.0 1306.143 1979.0 29.0 27.286 1944.105 27.69 29.866 45.251 0.663 0.624 1.16 null null null null null null null null 1195561.0 16127.0 27.337 0.369 16104.0 0.368 8.1e-2 12.3 null 57.87 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
GBR Europe United Kingdom 2020-08-12 315581.0 1039.0 964.143 41414.0 20.0 12.714 4648.69 15.305 14.202 610.052 0.295 0.187 1.21 80.0 1.178 937.0 13.803 null null null null 1.1310805e7 167983.0 166.615 2.474 153405.0 2.26 6.0e-3 159.1 null 69.91 6.7886004e7 272.898 40.8 18.517 12.527 39753.244 0.2 122.137 4.28 20.0 24.7 null 2.54 81.32 0.922
USA North America United States 2020-09-07 6290964.0 23545.0 39247.714 189295.0 276.0 801.571 19005.782 71.132 118.572 571.884 0.834 2.422 0.88 6630.0 20.03 32009.0 96.703 null null null null 9.5865802e7 408656.0 289.622 1.235 809989.0 2.447 null null null 67.13 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
USA North America United States 2020-09-10 6387822.0 36066.0 35026.143 191830.0 907.0 708.857 19298.402 108.96 105.818 579.542 2.74 2.142 0.96 6531.0 19.731 32438.0 97.999 null null null null 9.8444261e7 1034528.0 297.412 3.125 769511.0 2.325 null null null 67.13 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
UZB Asia Uzbekistan 2020-04-04 266.0 39.0 23.143 2.0 0.0 0.0 7.948 1.165 0.691 6.0e-2 0.0 0.0 1.71 null null null null null null null null null null null null null null null null null 90.74 3.3469199e7 76.134 28.2 4.469 2.873 6253.104 null 724.417 7.57 1.3 24.7 null 4.0 71.72 0.71
UZB Asia Uzbekistan 2020-05-29 3468.0 24.0 62.857 14.0 0.0 0.143 103.618 0.717 1.878 0.418 0.0 4.0e-3 1.19 null null null null null null null null null null null null null null null null null 86.11 3.3469199e7 76.134 28.2 4.469 2.873 6253.104 null 724.417 7.57 1.3 24.7 null 4.0 71.72 0.71
VUT Oceania Vanuatu 2020-02-15 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 307150.0 22.662 23.1 4.394 2.62 2921.909 13.2 546.3 12.02 2.8 34.5 25.209 null 70.47 0.603
VUT Oceania Vanuatu 2020-06-17 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 66.67 307150.0 22.662 23.1 4.394 2.62 2921.909 13.2 546.3 12.02 2.8 34.5 25.209 null 70.47 0.603
VUT Oceania Vanuatu 2020-07-07 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 66.67 307150.0 22.662 23.1 4.394 2.62 2921.909 13.2 546.3 12.02 2.8 34.5 25.209 null 70.47 0.603
VAT Europe Vatican 2020-11-05 27.0 0.0 0.0 0.0 0.0 0.0 33374.536 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 809.0 null null null null null null null null null null null null 75.12 null
VEN South America Venezuela 2020-02-23 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2.8435943e7 36.253 29.0 6.614 3.915 16745.022 null 204.85 6.47 null null null 0.8 72.06 0.761
ESH Africa Western Sahara 2020-04-29 6.0 0.0 0.0 0.0 0.0 0.0 10.045 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 597330.0 null 28.4 null 1.38 null null null null null null null null 70.26 null
ZMB Africa Zambia 2020-04-11 40.0 0.0 0.143 2.0 0.0 0.143 2.176 0.0 8.0e-3 0.109 0.0 8.0e-3 null null null null null null null null null 1454.0 111.0 7.9e-2 6.0e-3 78.0 4.0e-3 2.0e-3 545.5 null 50.93 1.8383956e7 22.995 17.7 2.48 1.542 3689.251 57.5 234.499 3.94 3.1 24.7 13.938 2.0 63.89 0.588
ZMB Africa Zambia 2020-08-22 10831.0 204.0 235.0 279.0 2.0 2.714 589.155 11.097 12.783 15.176 0.109 0.148 0.9 null null null null null null null null 106449.0 785.0 5.79 4.3e-2 1098.0 6.0e-2 0.214 4.7 null 49.07 1.8383956e7 22.995 17.7 2.48 1.542 3689.251 57.5 234.499 3.94 3.1 24.7 13.938 2.0 63.89 0.588
MNE Europe Montenegro 2020-06-20 359.0 4.0 5.0 9.0 0.0 0.0 571.6 6.369 7.961 14.33 0.0 0.0 1.5 null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MNE Europe Montenegro 2020-06-24 389.0 11.0 8.0 9.0 0.0 0.0 619.366 17.514 12.738 14.33 0.0 0.0 2.21 null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MNE Europe Montenegro 2020-09-06 5553.0 131.0 109.0 108.0 1.0 1.429 8841.484 208.578 173.55 171.958 1.592 2.275 1.51 null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MNE Europe Montenegro 2020-09-28 10441.0 128.0 228.429 163.0 5.0 3.571 16624.155 203.802 363.704 259.529 7.961 5.686 0.94 null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MAR Africa Morocco 2020-02-15 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null 10.0 null 0.0 null 0.0 0.0 null null null 0.0 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MOZ Africa Mozambique 2020-11-30 15701.0 88.0 84.571 131.0 1.0 0.714 502.345 2.816 2.706 4.191 3.2e-2 2.3e-2 null null null null null null null null null 231131.0 641.0 7.395 2.1e-2 1128.0 3.6e-2 7.5e-2 13.3 null null 3.1255435e7 37.728 17.7 3.158 1.87 1136.103 62.9 329.942 3.3 5.1 29.1 12.227 0.7 60.85 0.437
MMR Asia Myanmar 2020-04-05 21.0 0.0 1.571 1.0 0.0 0.143 0.386 0.0 2.9e-2 1.8e-2 0.0 3.0e-3 null null null null null null null null null null null null null null null null null null 69.44 5.4409794e7 81.721 29.1 5.732 3.12 5591.597 6.4 202.104 4.61 6.3 35.2 79.287 0.9 67.13 0.578
NAM Africa Namibia 2020-10-30 12907.0 49.0 58.0 133.0 0.0 0.0 5079.664 19.284 22.826 52.343 0.0 0.0 0.92 null null null null null null null null 126796.0 1714.0 49.902 0.675 891.0 0.351 6.5e-2 15.4 null 34.26 2540916.0 3.078 22.0 3.552 2.085 9541.808 13.4 243.811 3.94 9.7 34.2 44.6 null 63.71 0.647
NPL Asia Nepal 2020-02-09 1.0 0.0 0.0 0.0 0.0 0.0 3.4e-2 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null 1.0 0.0 0.0 null null 16.67 2.9136808e7 204.43 25.0 5.809 3.212 2442.804 15.0 260.797 7.26 9.5 37.8 47.782 0.3 70.78 0.574
NLD Europe Netherlands 2020-09-08 79792.0 1090.0 855.714 6279.0 1.0 2.714 4656.702 63.613 49.94 366.446 5.8e-2 0.158 1.32 49.0 2.86 null null null null null null null null null null 26932.0 1.572 3.2e-2 31.5 null 50.93 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NZL Oceania New Zealand 2020-03-04 3.0 2.0 0.429 0.0 0.0 0.0 0.622 0.415 8.9e-2 null 0.0 0.0 null null null null null null null null null 305.0 25.0 6.3e-2 5.0e-3 null null null null null 19.44 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NZL Oceania New Zealand 2020-04-19 1431.0 9.0 14.429 12.0 1.0 1.143 296.75 1.866 2.992 2.488 0.207 0.237 0.42 null null null null null null null null 86259.0 2306.0 17.888 0.478 3341.0 0.693 4.0e-3 231.5 null 96.3 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NZL Oceania New Zealand 2020-10-10 1871.0 1.0 2.429 25.0 0.0 0.0 387.995 0.207 0.504 5.184 0.0 0.0 0.79 null null null null null null null null 1000765.0 3809.0 207.531 0.79 4523.0 0.938 1.0e-3 1862.1 null 22.22 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NIC North America Nicaragua 2020-03-20 1.0 0.0 0.143 0.0 0.0 0.0 0.151 0.0 2.2e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 6624554.0 51.667 27.3 5.445 3.519 5321.444 3.2 137.016 11.47 null null null 0.9 74.48 0.658
NER Africa Niger 2020-04-02 98.0 24.0 12.571 5.0 0.0 0.571 4.048 0.991 0.519 0.207 0.0 2.4e-2 null null null null null null null null null null null null null null null null null null 61.11 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
NER Africa Niger 2020-04-26 696.0 12.0 6.857 29.0 2.0 1.286 28.752 0.496 0.283 1.198 8.3e-2 5.3e-2 0.83 null null null null null null null null null null null null null null null null null 61.11 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
NER Africa Niger 2020-11-28 1484.0 12.0 19.0 70.0 0.0 0.0 61.306 0.496 0.785 2.892 0.0 0.0 null null null null null null null null null null null null null null null null null null 24.07 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
NGA Africa Nigeria 2020-03-02 1.0 0.0 0.143 0.0 0.0 0.0 5.0e-3 0.0 1.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 2.06139587e8 209.588 18.1 2.751 1.447 5338.454 null 181.013 2.42 0.6 10.8 41.949 null 54.69 0.532
NGA Africa Nigeria 2020-08-23 52227.0 322.0 451.286 1002.0 5.0 3.857 253.357 1.562 2.189 4.861 2.4e-2 1.9e-2 0.87 null null null null null null null null 378023.0 3946.0 1.834 1.9e-2 3919.0 1.9e-2 0.115 8.7 null 65.74 2.06139587e8 209.588 18.1 2.751 1.447 5338.454 null 181.013 2.42 0.6 10.8 41.949 null 54.69 0.532
NGA Africa Nigeria 2020-09-14 56388.0 132.0 175.429 1083.0 1.0 3.143 273.543 0.64 0.851 5.254 5.0e-3 1.5e-2 0.86 null null null null null null null null 442075.0 1827.0 2.145 9.0e-3 2556.0 1.2e-2 6.9e-2 14.6 null 60.19 2.06139587e8 209.588 18.1 2.751 1.447 5338.454 null 181.013 2.42 0.6 10.8 41.949 null 54.69 0.532
NOR Europe Norway 2020-07-05 8930.0 4.0 10.714 251.0 0.0 0.286 1647.224 0.738 1.976 46.299 0.0 5.3e-2 0.85 null null null null null null null null 373972.0 1192.0 68.983 0.22 3996.0 0.737 3.0e-3 373.0 null 37.04 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
PAK Asia Pakistan 2020-04-03 2818.0 132.0 189.0 41.0 1.0 4.143 12.757 0.598 0.856 0.186 5.0e-3 1.9e-2 1.61 null null null null null null null null 32930.0 2622.0 0.149 1.2e-2 2814.0 1.3e-2 6.7e-2 14.9 null 96.3 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PAK Asia Pakistan 2020-09-28 311516.0 675.0 661.429 6474.0 8.0 7.143 1410.262 3.056 2.994 29.308 3.6e-2 3.2e-2 1.05 null null null null null null null null 3449541.0 28887.0 15.616 0.131 36461.0 0.165 1.8e-2 55.1 null 41.2 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PSE Asia Palestine 2020-07-05 4277.0 442.0 326.714 16.0 3.0 1.714 838.395 86.643 64.044 3.136 0.588 0.336 1.5 null null null null null null null null null null null null null null null null null 83.33 5101416.0 778.202 20.4 3.043 1.726 4449.898 1.0 265.91 10.59 null null null null 74.05 0.686
PAN North America Panama 2020-02-17 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PAN North America Panama 2020-06-15 21422.0 4.0 652.571 448.0 11.0 7.143 4964.809 0.927 151.241 103.829 2.549 1.655 1.25 null null null null null null null null 90950.0 1984.0 21.079 0.46 2034.0 0.471 0.321 3.1 null 83.33 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PAN North America Panama 2020-07-27 61442.0 1146.0 1002.286 1322.0 28.0 27.857 14239.931 265.599 232.292 306.39 6.489 6.456 1.01 null null null null null null null null 208659.0 3450.0 48.359 0.8 3096.0 0.718 0.324 3.1 null 80.56 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PNG Oceania Papua New Guinea 2020-06-26 11.0 1.0 0.429 0.0 0.0 0.0 1.229 0.112 4.8e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 45.37 8947027.0 18.22 22.6 3.808 2.142 3823.194 null 561.494 17.65 23.5 48.8 null null 64.5 0.544
PNG Oceania Papua New Guinea 2020-07-21 27.0 8.0 2.286 0.0 0.0 0.0 3.018 0.894 0.255 0.112 0.0 1.6e-2 null null null null null null null null null null null null null null null null null null 45.37 8947027.0 18.22 22.6 3.808 2.142 3823.194 null 561.494 17.65 23.5 48.8 null null 64.5 0.544
PRY South America Paraguay 2020-10-27 60557.0 448.0 640.571 1347.0 14.0 16.571 8490.255 62.811 89.81 188.853 1.963 2.323 1.04 null null null null null null null null 352711.0 2422.0 49.451 0.34 2689.0 0.377 0.238 4.2 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PER South America Peru 2020-09-11 710067.0 7291.0 5703.143 30344.0 108.0 134.143 21535.555 221.128 172.97 920.3 3.276 4.068 0.96 null null null null null null null null 742273.0 7018.0 22.512 0.213 6581.0 0.2 null null null 85.19 3.2971846e7 25.129 29.1 7.151 4.455 12236.706 3.5 85.755 5.95 4.8 null null 1.6 76.74 0.75
PHL Asia Philippines 2020-01-25 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 11.11 1.09581085e8 351.873 25.2 4.803 2.661 7599.188 null 370.437 7.07 7.8 40.8 78.463 1.0 71.23 0.699
PHL Asia Philippines 2020-11-10 399749.0 1300.0 1798.286 7661.0 14.0 49.0 3647.974 11.863 16.411 69.912 0.128 0.447 0.92 null null null null null null null null 4858722.0 29766.0 44.339 0.272 30904.0 0.282 5.8e-2 17.2 null 68.98 1.09581085e8 351.873 25.2 4.803 2.661 7599.188 null 370.437 7.07 7.8 40.8 78.463 1.0 71.23 0.699
PHL Asia Philippines 2020-11-15 407838.0 1501.0 1634.714 7832.0 41.0 41.857 3721.792 13.698 14.918 71.472 0.374 0.382 0.9 null null null null null null null null 5001441.0 24190.0 45.641 0.221 28245.0 0.258 5.8e-2 17.3 null 68.98 1.09581085e8 351.873 25.2 4.803 2.661 7599.188 null 370.437 7.07 7.8 40.8 78.463 1.0 71.23 0.699
POL Europe Poland 2020-06-15 29788.0 396.0 375.429 1256.0 9.0 12.857 787.072 10.463 9.92 33.187 0.238 0.34 0.98 null null 1736.0 45.869 null null null null 1086927.0 10676.0 28.719 0.282 16196.0 0.428 2.3e-2 43.1 null 50.93 3.7846605e7 124.027 41.8 16.763 10.202 27216.445 null 227.331 5.91 23.3 33.1 null 6.62 78.73 0.865
PRT Europe Portugal 2020-06-14 36690.0 227.0 285.286 1517.0 5.0 5.429 3598.22 22.262 27.978 148.774 0.49 0.532 1.04 73.0 7.159 419.0 41.092 null null 113.114 11.093 1010163.0 4754.0 99.068 0.466 8692.0 0.852 3.3e-2 30.5 null 69.91 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
QAT Asia Qatar 2020-07-19 106648.0 340.0 435.714 157.0 3.0 1.429 37016.931 118.012 151.234 54.494 1.041 0.496 0.74 null null null null null null null null 441700.0 2710.0 153.312 0.941 4145.0 1.439 0.105 9.5 null 80.56 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
QAT Asia Qatar 2020-11-24 137642.0 227.0 202.857 236.0 0.0 0.143 47774.777 78.79 70.411 81.914 0.0 5.0e-2 null null null null null null null null null null null null null null null null null null null 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
ROU Europe Romania 2020-08-31 87540.0 755.0 1172.857 3621.0 43.0 44.571 4550.444 39.246 60.967 188.224 2.235 2.317 0.99 506.0 26.303 null null null null null null 1802946.0 7313.0 93.72 0.38 20544.0 1.068 5.7e-2 17.5 null 42.59 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
RUS Europe Russia 2020-08-21 944671.0 4838.0 4841.857 16148.0 90.0 97.286 6473.255 33.152 33.178 110.652 0.617 0.667 0.97 null null null null null null null null null null null null 272755.0 1.869 1.8e-2 56.3 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816
KNA North America Saint Kitts and Nevis 2020-08-22 17.0 0.0 0.0 0.0 0.0 0.0 319.597 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 53192.0 212.865 null null null 24654.385 null null 12.84 null null null 2.3 76.23 0.778
VCT North America Saint Vincent and the Grenadines 2020-01-28 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
VCT North America Saint Vincent and the Grenadines 2020-03-31 1.0 0.0 0.0 0.0 0.0 0.0 9.013 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
VCT North America Saint Vincent and the Grenadines 2020-05-04 17.0 1.0 0.286 0.0 0.0 0.0 153.226 9.013 2.575 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
VCT North America Saint Vincent and the Grenadines 2020-06-02 26.0 0.0 1.143 0.0 0.0 0.0 234.346 0.0 10.301 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
VCT North America Saint Vincent and the Grenadines 2020-09-09 62.0 0.0 0.143 0.0 0.0 0.0 558.825 0.0 1.288 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 110947.0 281.787 31.8 7.724 4.832 10727.146 null 252.675 11.62 null null null 2.6 72.53 0.723
SMR Europe San Marino 2020-10-14 741.0 0.0 1.286 42.0 0.0 0.0 21833.932 0.0 37.884 1237.551 0.0 0.0 0.77 null null null null null null null null null null null null null null null null null 25.93 33938.0 556.667 null null null 56861.47 null null 5.64 null null null 3.8 84.97 null
STP Africa Sao Tome and Principe 2020-02-15 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 219161.0 212.841 18.7 2.886 2.162 3052.714 32.3 270.113 2.42 null null 41.34 2.9 70.39 0.589
SAU Asia Saudi Arabia 2020-02-23 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 3.4813867e7 15.322 31.9 3.295 1.845 49045.411 null 259.538 17.72 1.8 25.4 null 2.7 75.13 0.853
SAU Asia Saudi Arabia 2020-05-25 74795.0 2235.0 2492.857 399.0 9.0 11.286 2148.426 64.199 71.605 11.461 0.259 0.324 1.09 null null null null null null null null 780041.0 16664.0 22.406 0.479 17237.0 0.495 0.145 6.9 null 91.67 3.4813867e7 15.322 31.9 3.295 1.845 49045.411 null 259.538 17.72 1.8 25.4 null 2.7 75.13 0.853
SAU Asia Saudi Arabia 2020-06-11 116021.0 3733.0 3266.286 857.0 38.0 35.143 3332.609 107.227 93.821 24.617 1.092 1.009 1.18 null null null null null null null null 1110934.0 27324.0 31.911 0.785 22952.0 0.659 0.142 7.0 null 69.91 3.4813867e7 15.322 31.9 3.295 1.845 49045.411 null 259.538 17.72 1.8 25.4 null 2.7 75.13 0.853
SEN Africa Senegal 2020-05-03 1182.0 67.0 73.0 9.0 0.0 0.0 70.593 4.001 4.36 0.538 0.0 0.0 1.43 null null null null null null null null 14770.0 810.0 0.882 4.8e-2 916.0 5.5e-2 8.0e-2 12.5 null 77.78 1.674393e7 82.328 18.7 3.008 1.796 2470.58 38.0 241.219 2.42 0.4 16.6 20.859 null 67.94 0.505
SEN Africa Senegal 2020-11-03 15640.0 3.0 9.857 326.0 1.0 0.571 934.07 0.179 0.589 19.47 6.0e-2 3.4e-2 0.82 null null null null null null null null 217808.0 400.0 13.008 2.4e-2 751.0 4.5e-2 1.3e-2 76.2 null 37.96 1.674393e7 82.328 18.7 3.008 1.796 2470.58 38.0 241.219 2.42 0.4 16.6 20.859 null 67.94 0.505
SRB Europe Serbia 2020-01-29 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 6804596.0 80.291 41.2 17.366 null 14048.881 null 439.415 10.08 37.7 40.2 97.719 5.609 76.0 0.787
SRB Europe Serbia 2020-10-15 35454.0 203.0 158.571 770.0 2.0 1.429 5210.302 29.833 23.304 113.159 0.294 0.21 1.55 null null null null null null null null 1219908.0 6504.0 179.277 0.956 5741.0 0.844 2.8e-2 36.2 null 54.63 6804596.0 80.291 41.2 17.366 null 14048.881 null 439.415 10.08 37.7 40.2 97.719 5.609 76.0 0.787
SYC Africa Seychelles 2020-02-25 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 16.67 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SYC Africa Seychelles 2020-09-02 136.0 0.0 0.0 0.0 0.0 0.0 1382.957 0.0 0.0 null 0.0 0.0 0.21 null null null null null null null null null null null null null null null null null 34.26 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SGP Asia Singapore 2020-06-05 37183.0 261.0 474.714 24.0 0.0 0.143 6355.696 44.613 81.143 4.102 0.0 2.4e-2 0.83 null null null null null null null null null null null null 11066.0 1.892 4.3e-2 23.3 null 77.78 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SGP Asia Singapore 2020-11-07 58054.0 7.0 5.571 28.0 0.0 0.0 9923.179 1.197 0.952 4.786 0.0 0.0 0.98 null null null null null null null null null null null null 27292.0 4.665 0.0 4898.9 null 52.78 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SVK Europe Slovakia 2020-07-26 2179.0 38.0 28.571 28.0 0.0 0.0 399.11 6.96 5.233 5.129 0.0 0.0 1.28 null null 12.0 2.198 null null null null 253691.0 216.0 46.467 4.0e-2 1923.0 0.352 1.5e-2 67.3 null 37.96 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVK Europe Slovakia 2020-09-25 8048.0 419.0 256.0 41.0 0.0 0.286 1474.089 76.745 46.89 7.51 0.0 5.2e-2 1.47 null null 143.0 26.192 null null null null 440331.0 6483.0 80.652 1.187 4504.0 0.825 5.7e-2 17.6 null 31.48 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVN Europe Slovenia 2020-01-23 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 2078932.0 102.619 44.5 19.062 12.93 31400.84 null 153.493 7.25 20.1 25.0 null 4.5 81.32 0.896
SVN Europe Slovenia 2020-10-05 6673.0 175.0 183.571 156.0 1.0 1.0 3209.821 84.178 88.301 75.039 0.481 0.481 1.45 21.0 10.101 107.0 51.469 null null null null 238686.0 2509.0 114.812 1.207 2564.0 1.233 7.2e-2 14.0 null 43.52 2078932.0 102.619 44.5 19.062 12.93 31400.84 null 153.493 7.25 20.1 25.0 null 4.5 81.32 0.896
SLB Oceania Solomon Islands 2020-02-21 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 686878.0 21.841 20.8 3.507 2.043 2205.923 25.1 459.78 18.68 null null 35.89 1.4 73.0 0.546
SLB Oceania Solomon Islands 2020-04-12 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 44.44 686878.0 21.841 20.8 3.507 2.043 2205.923 25.1 459.78 18.68 null null 35.89 1.4 73.0 0.546
SLB Oceania Solomon Islands 2020-09-01 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 33.33 686878.0 21.841 20.8 3.507 2.043 2205.923 25.1 459.78 18.68 null null 35.89 1.4 73.0 0.546
SOM Africa Somalia 2020-02-13 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 1.5893219e7 23.5 16.8 2.731 1.496 null null 365.769 6.05 null null 9.831 0.9 57.4 null
ZAF Africa South Africa 2020-11-23 769759.0 2080.0 2498.571 20968.0 65.0 93.429 12978.857 35.071 42.128 353.54 1.096 1.575 null null null null null null null null null 5305343.0 14377.0 89.453 0.242 23199.0 0.391 0.108 9.3 null 44.44 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
KOR Asia South Korea 2020-03-31 9786.0 125.0 107.0 162.0 4.0 6.0 190.875 2.438 2.087 3.16 7.8e-2 0.117 0.96 null null null null null null null null 393672.0 12009.0 7.679 0.234 8647.0 0.169 1.2e-2 80.8 null 75.93 5.1269183e7 527.967 43.4 13.914 8.622 35938.374 0.2 85.998 6.8 6.2 40.9 null 12.27 83.03 0.903
KOR Asia South Korea 2020-10-11 24703.0 97.0 77.0 433.0 1.0 1.571 481.829 1.892 1.502 8.446 2.0e-2 3.1e-2 1.15 null null null null null null null null 2391180.0 5478.0 46.64 0.107 9564.0 0.187 8.0e-3 124.2 null 54.63 5.1269183e7 527.967 43.4 13.914 8.622 35938.374 0.2 85.998 6.8 6.2 40.9 null 12.27 83.03 0.903
SSD Africa South Sudan 2020-08-30 2519.0 0.0 2.857 47.0 0.0 0.0 225.037 0.0 0.255 4.199 0.0 0.0 0.94 null null null null null null null null null null null null null null null null null 77.78 1.1193729e7 null 19.2 3.441 2.032 1569.888 null 280.775 10.43 null null null null 57.85 0.388
ESP Europe Spain 2020-08-15 342813.0 0.0 4064.429 28617.0 0.0 16.286 7332.148 0.0 86.931 612.066 0.0 0.348 1.41 null null null null null null null null null null null null 58819.0 1.258 6.9e-2 14.5 null 62.5 4.6754783e7 93.105 45.5 19.436 13.799 34272.36 1.0 99.403 7.17 27.4 31.4 null 2.97 83.56 0.891
LKA Asia Sri Lanka 2020-06-14 1889.0 5.0 7.714 11.0 0.0 0.0 88.216 0.234 0.36 0.514 0.0 0.0 0.97 null null null null null null null null 87083.0 1116.0 4.067 5.2e-2 1447.0 6.8e-2 5.0e-3 187.6 null 55.56 2.141325e7 341.955 34.1 10.069 5.331 11669.077 0.7 197.093 10.68 0.3 27.0 null 3.6 76.98 0.77
SDN Africa Sudan 2020-02-29 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 4.3849269e7 23.258 19.7 3.548 2.034 4466.507 null 431.388 15.67 null null 23.437 0.8 65.31 0.502
SDN Africa Sudan 2020-03-07 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 4.3849269e7 23.258 19.7 3.548 2.034 4466.507 null 431.388 15.67 null null 23.437 0.8 65.31 0.502
SDN Africa Sudan 2020-06-01 5173.0 147.0 171.0 298.0 12.0 18.286 117.972 3.352 3.9 6.796 0.274 0.417 1.16 null null null null null null null null null null null null null null null null null 91.67 4.3849269e7 23.258 19.7 3.548 2.034 4466.507 null 431.388 15.67 null null 23.437 0.8 65.31 0.502
SDN Africa Sudan 2020-07-03 9663.0 90.0 58.0 604.0 2.0 4.571 220.369 2.052 1.323 13.774 4.6e-2 0.104 1.0 null null null null null null null null null null null null null null null null null 84.26 4.3849269e7 23.258 19.7 3.548 2.034 4466.507 null 431.388 15.67 null null 23.437 0.8 65.31 0.502
SDN Africa Sudan 2020-11-27 16864.0 0.0 190.571 1215.0 0.0 4.286 384.59 0.0 4.346 27.709 0.0 9.8e-2 null null null null null null null null null null null null null null null null null null null 4.3849269e7 23.258 19.7 3.548 2.034 4466.507 null 431.388 15.67 null null 23.437 0.8 65.31 0.502
SUR South America Suriname 2020-06-04 82.0 8.0 10.0 1.0 0.0 0.0 139.781 13.637 17.046 1.705 0.0 0.0 null null null null null null null null null null null null null null null null null null 93.52 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SWZ Africa Swaziland 2020-01-31 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWZ Africa Swaziland 2020-02-21 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWZ Africa Swaziland 2020-04-14 15.0 0.0 0.714 0.0 0.0 0.0 12.929 0.0 0.616 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 89.81 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWZ Africa Swaziland 2020-09-17 5191.0 36.0 28.143 103.0 2.0 0.714 4474.367 31.03 24.258 88.781 1.724 0.616 0.84 null null null null null null null null null null null null null null null null null 64.81 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWZ Africa Swaziland 2020-11-29 6410.0 4.0 27.286 121.0 0.0 0.143 5525.081 3.448 23.519 104.296 0.0 0.123 null null null null null null null null null null null null null null null null null null null 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWE Europe Sweden 2020-06-25 64009.0 1281.0 1046.714 5424.0 12.0 22.0 6337.983 126.841 103.643 537.069 1.188 2.178 1.01 null null null null null null null null null null null null null null null null null 59.26 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933
CHE Europe Switzerland 2020-04-25 28894.0 217.0 212.857 1599.0 10.0 33.0 3338.564 25.073 24.595 184.757 1.155 3.813 0.59 null null null null null null null null 253431.0 4032.0 29.283 0.466 4071.0 0.47 5.2e-2 19.1 null 73.15 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
SYR Asia Syria 2020-05-10 47.0 0.0 0.429 3.0 0.0 0.0 2.686 0.0 2.4e-2 0.171 0.0 0.0 null null null null null null null null null null null null null null null null null null 87.04 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
SYR Asia Syria 2020-08-15 1593.0 78.0 66.857 60.0 2.0 1.429 91.025 4.457 3.82 3.428 0.114 8.2e-2 1.31 null null null null null null null null null null null null null null null null null 62.04 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
SYR Asia Syria 2020-11-04 5964.0 76.0 54.857 301.0 3.0 3.286 340.787 4.343 3.135 17.199 0.171 0.188 1.1 null null null null null null null null null null null null null null null null null 40.74 1.7500657e7 null 21.7 null 2.577 null null 376.264 null null null 70.598 1.5 72.7 0.536
TWN Asia Taiwan 2020-03-03 42.0 1.0 1.571 1.0 0.0 0.0 1.763 4.2e-2 6.6e-2 4.2e-2 0.0 0.0 null null null null null null null null null 12365.0 506.0 0.519 2.1e-2 494.0 2.1e-2 3.0e-3 314.4 null 23.15 2.3816775e7 null 42.2 null 8.353 null null 103.957 null null null null null 80.46 null
TWN Asia Taiwan 2020-05-01 429.0 0.0 0.143 6.0 0.0 0.0 18.013 0.0 6.0e-3 0.252 0.0 0.0 0.39 null null null null null null null null 63711.0 374.0 2.675 1.6e-2 557.0 2.3e-2 0.0 3895.1 null 31.48 2.3816775e7 null 42.2 null 8.353 null null 103.957 null null null null null 80.46 null
TWN Asia Taiwan 2020-07-31 467.0 0.0 1.286 7.0 0.0 0.0 19.608 0.0 5.4e-2 0.294 0.0 0.0 0.58 null null null null null null null null 81822.0 235.0 3.435 1.0e-2 203.0 9.0e-3 6.0e-3 157.9 null 23.15 2.3816775e7 null 42.2 null 8.353 null null 103.957 null null null null null 80.46 null
TJK Asia Tajikistan 2020-07-17 6786.0 45.0 47.0 56.0 0.0 0.143 711.497 4.718 4.928 5.871 0.0 1.5e-2 0.94 null null null null null null null null null null null null null null null null null 62.04 9537642.0 64.281 23.3 3.466 2.155 2896.913 4.8 427.698 7.11 null null 72.704 4.8 71.1 0.65
TJK Asia Tajikistan 2020-11-15 11610.0 37.0 39.143 85.0 0.0 0.286 1217.282 3.879 4.104 8.912 0.0 3.0e-2 0.99 null null null null null null null null null null null null null null null null null 37.04 9537642.0 64.281 23.3 3.466 2.155 2896.913 4.8 427.698 7.11 null null 72.704 4.8 71.1 0.65
TZA Africa Tanzania 2020-04-23 284.0 0.0 27.143 10.0 0.0 0.857 4.754 0.0 0.454 0.167 0.0 1.4e-2 0.54 null null null null null null null null null null null null null null null null null 50.0 5.9734213e7 64.699 17.7 3.108 1.874 2683.304 49.1 217.288 5.75 3.3 26.7 47.953 0.7 65.46 0.538
TZA Africa Tanzania 2020-11-09 509.0 0.0 0.0 21.0 0.0 0.0 8.521 0.0 0.0 0.352 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 13.89 5.9734213e7 64.699 17.7 3.108 1.874 2683.304 49.1 217.288 5.75 3.3 26.7 47.953 0.7 65.46 0.538
AFG Asia Afghanistan 2020-10-18 40200.0 59.0 57.286 1494.0 4.0 2.143 1032.667 1.516 1.472 38.378 0.103 5.5e-2 1.22 null null null null null null null null null null null null null null null null null 16.67 3.8928341e7 54.422 18.6 2.581 1.337 1803.987 null 597.029 9.59 null null 37.746 0.5 64.83 0.498
ALB Europe Albania 2020-02-07 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
ALB Europe Albania 2020-09-20 12385.0 159.0 147.429 362.0 4.0 4.0 4303.635 55.251 51.23 125.791 1.39 1.39 0.99 null null null null null null null null null null null null null null null null null 54.63 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
DZA Africa Algeria 2020-01-27 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
DZA Africa Algeria 2020-03-09 20.0 1.0 2.429 0.0 0.0 0.0 0.456 2.3e-2 5.5e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
DZA Africa Algeria 2020-09-06 46364.0 293.0 316.857 1556.0 7.0 7.857 1057.307 6.682 7.226 35.484 0.16 0.179 0.84 null null null null null null null null null null null null null null null null null 75.93 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
AND Europe Andorra 2020-07-14 861.0 3.0 0.857 52.0 0.0 0.0 11143.467 38.827 11.094 673.008 0.0 0.0 0.7 null null null null null null null null null null null null null null null null null 41.67 77265.0 163.755 null null null null null 109.135 7.97 29.0 37.8 null null 83.73 0.858
AGO Africa Angola 2020-06-08 92.0 1.0 0.857 4.0 0.0 0.0 2.799 3.0e-2 2.6e-2 0.122 0.0 0.0 null null null null null null null null null null null null null null null null null null 75.93 3.2866268e7 23.89 16.8 2.405 1.362 5819.495 null 276.045 3.94 null null 26.664 null 61.15 0.581
AGO Africa Angola 2020-10-24 9026.0 197.0 223.429 267.0 2.0 3.714 274.628 5.994 6.798 8.124 6.1e-2 0.113 1.13 null null null null null null null null null null null null null null null null null 65.74 3.2866268e7 23.89 16.8 2.405 1.362 5819.495 null 276.045 3.94 null null 26.664 null 61.15 0.581
ATG North America Antigua and Barbuda 2020-08-09 92.0 0.0 0.143 3.0 0.0 0.0 939.466 0.0 1.459 30.635 0.0 0.0 null null null null null null null null null null null null null null null null null null null 97928.0 231.845 32.1 6.933 4.631 21490.943 null 191.511 13.17 null null null 3.8 77.02 0.78
ATG North America Antigua and Barbuda 2020-09-12 95.0 0.0 0.0 3.0 0.0 0.0 970.1 0.0 0.0 30.635 0.0 0.0 null null null null null null null null null null null null null null null null null null null 97928.0 231.845 32.1 6.933 4.631 21490.943 null 191.511 13.17 null null null 3.8 77.02 0.78
ARG South America Argentina 2020-05-20 9283.0 474.0 343.429 403.0 10.0 10.571 205.395 10.488 7.599 8.917 0.221 0.234 1.4 null null null null null null null null null null null null null null null null null 90.74 4.5195777e7 16.177 31.9 11.198 7.441 18933.907 0.6 191.032 5.5 16.2 27.7 null 5.0 76.67 0.825
ARG South America Argentina 2020-08-10 253868.0 7369.0 6732.143 4764.0 158.0 135.857 5617.073 163.046 148.955 105.408 3.496 3.006 1.13 null null null null null null null null null null null null null null null null null 87.96 4.5195777e7 16.177 31.9 11.198 7.441 18933.907 0.6 191.032 5.5 16.2 27.7 null 5.0 76.67 0.825
ARG South America Argentina 2020-09-21 640147.0 8782.0 10671.571 13482.0 429.0 259.286 14163.868 194.31 236.119 298.302 9.492 5.737 1.06 null null null null null null null null null null null null null null null null null 87.96 4.5195777e7 16.177 31.9 11.198 7.441 18933.907 0.6 191.032 5.5 16.2 27.7 null 5.0 76.67 0.825
ARM Asia Armenia 2020-10-04 52496.0 571.0 442.286 977.0 5.0 3.714 17715.779 192.695 149.258 329.707 1.687 1.253 1.37 null null null null null null null null null null null null null null null null null null 2963234.0 102.931 35.7 11.232 7.571 8787.58 1.8 341.01 7.11 1.5 52.1 94.043 4.2 75.09 0.755
AUS Oceania Australia 2020-07-30 16903.0 605.0 472.571 196.0 7.0 8.143 662.866 23.726 18.532 7.686 0.275 0.319 1.23 null null null null null null null null 4164454.0 66205.0 163.313 2.596 63517.0 2.491 7.0e-3 134.4 null 68.06 2.5499881e7 3.202 37.9 15.504 10.129 44648.71 0.5 107.791 5.07 13.0 16.5 null 3.84 83.44 0.939
AUT Europe Austria 2020-05-27 16591.0 34.0 34.0 645.0 2.0 1.714 1842.134 3.775 3.775 71.616 0.222 0.19 0.8 32.0 3.553 84.0 9.327 null null null null 418706.0 7521.0 46.49 0.835 5588.0 0.62 6.0e-3 164.4 null 59.26 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-08-29 26985.0 395.0 274.714 733.0 0.0 0.143 2996.203 43.858 30.502 81.387 0.0 1.6e-2 1.15 30.0 3.331 114.0 12.658 null null null null 1160743.0 12799.0 128.88 1.421 10513.0 1.167 2.6e-2 38.3 null 35.19 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AZE Asia Azerbaijan 2020-03-25 93.0 6.0 9.286 2.0 1.0 0.143 9.172 0.592 0.916 0.197 9.9e-2 1.4e-2 null null null null null null null null null null null null null null null null null null 68.52 1.0139175e7 119.309 32.4 6.018 3.871 15847.419 null 559.812 7.11 0.3 42.5 83.241 4.7 73.0 0.757
AZE Asia Azerbaijan 2020-05-01 1854.0 50.0 37.429 25.0 1.0 0.571 182.855 4.931 3.691 2.466 9.9e-2 5.6e-2 1.14 null null null null null null null null null null null null null null null null null 87.96 1.0139175e7 119.309 32.4 6.018 3.871 15847.419 null 559.812 7.11 0.3 42.5 83.241 4.7 73.0 0.757
BHS North America Bahamas 2020-03-29 11.0 1.0 1.0 0.0 0.0 0.0 27.972 2.543 2.543 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHS North America Bahamas 2020-07-26 342.0 16.0 27.0 11.0 0.0 0.0 869.68 40.687 68.659 27.972 0.0 0.0 1.98 null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHR Asia Bahrain 2020-06-01 11871.0 473.0 385.714 19.0 0.0 0.714 6976.445 277.976 226.68 11.166 0.0 0.42 1.19 null null null null null null null null 323162.0 6355.0 189.918 3.735 5611.0 3.298 6.9e-2 14.5 null 75.0 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-08-17 47185.0 350.0 398.286 173.0 3.0 1.429 27730.061 205.691 234.068 101.67 1.763 0.84 1.01 null null null null null null null null 972003.0 9669.0 571.235 5.682 9992.0 5.872 4.0e-2 25.1 null 69.44 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-10-10 75287.0 427.0 425.286 273.0 2.0 2.143 44245.27 250.943 249.935 160.439 1.175 1.259 0.91 null null null null null null null null 1530133.0 10537.0 899.241 6.192 10173.0 5.979 4.2e-2 23.9 null 63.89 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BLR Europe Belarus 2020-03-08 6.0 0.0 0.714 0.0 0.0 0.0 0.635 0.0 7.6e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 9449321.0 46.858 40.3 14.799 9.788 17167.967 null 443.129 5.18 10.5 46.1 null 11.0 74.79 0.808
BLR Europe Belarus 2020-11-20 120847.0 1457.0 1317.857 1081.0 7.0 6.857 12788.961 154.191 139.466 114.4 0.741 0.726 1.17 null null null null null null null null null null null null 27254.0 2.884 4.8e-2 20.7 null 22.22 9449321.0 46.858 40.3 14.799 9.788 17167.967 null 443.129 5.18 10.5 46.1 null 11.0 74.79 0.808
BEL Europe Belgium 2020-03-22 3401.0 586.0 359.286 75.0 8.0 10.143 293.452 50.563 31.001 6.471 0.69 0.875 2.21 322.0 27.783 1646.0 142.024 null null 1541.84 133.036 31478.0 1414.0 2.716 0.122 2438.0 0.21 0.147 6.8 null 81.48 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-05-01 49032.0 513.0 677.0 7703.0 109.0 146.286 4230.684 44.264 58.414 664.647 9.405 12.622 0.71 690.0 59.536 3109.0 268.257 null null null null 430786.0 23551.0 37.17 2.032 19999.0 1.726 3.4e-2 29.5 null 81.48 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-11-20 553680.0 3416.0 4095.429 15352.0 156.0 178.0 47773.8 294.747 353.371 1324.634 13.46 15.359 0.68 1256.0 108.373 5418.0 467.487 null null null null 5670902.0 34396.0 489.309 2.968 29760.0 2.568 0.138 7.3 null 63.89 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BLZ North America Belize 2020-03-28 2.0 0.0 0.286 0.0 0.0 0.0 5.03 0.0 0.719 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 54.63 397621.0 16.426 25.0 3.853 2.279 7824.362 null 176.957 17.11 null null 90.083 1.3 74.62 0.708
BEN Africa Benin 2020-03-02 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BEN Africa Benin 2020-03-23 5.0 3.0 0.571 0.0 0.0 0.0 0.412 0.247 4.7e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 27.78 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BTN Asia Bhutan 2020-04-20 5.0 0.0 0.0 0.0 0.0 0.0 6.48 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 83.33 771612.0 21.188 28.6 4.885 2.977 8708.597 1.5 217.066 9.75 null null 79.807 1.7 71.78 0.612
BOL South America Bolivia 2020-08-30 115968.0 614.0 974.143 4966.0 28.0 65.286 9934.696 52.6 83.452 425.425 2.399 5.593 0.86 null null null null null null null null null null null null 2630.0 0.225 0.37 2.7 null 89.81 1.1673029e7 10.202 25.4 6.704 4.393 6885.829 7.1 204.299 6.89 null null 25.383 1.1 71.51 0.693
BIH Europe Bosnia and Herzegovina 2020-02-04 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BIH Europe Bosnia and Herzegovina 2020-04-21 1342.0 33.0 37.0 51.0 2.0 1.571 409.045 10.058 11.278 15.545 0.61 0.479 1.16 null null null null null null null null null null null null null null null null null 92.59 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BIH Europe Bosnia and Herzegovina 2020-11-06 59427.0 1921.0 1612.857 1457.0 55.0 35.0 18113.487 585.525 491.603 444.097 16.764 10.668 1.17 null null null null null null null null null null null null null null null null null 40.74 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BWA Africa Botswana 2020-02-04 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BWA Africa Botswana 2020-03-26 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 61.11 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BWA Africa Botswana 2020-07-29 804.0 65.0 40.286 2.0 0.0 0.143 341.891 27.64 17.131 0.85 0.0 6.1e-2 0.83 null null null null null null null null null null null null null null null null null 54.17 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BWA Africa Botswana 2020-09-19 2567.0 0.0 45.0 13.0 0.0 0.429 1091.586 0.0 19.136 5.528 0.0 0.182 0.77 null null null null null null null null null null null null null null null null null 58.33 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BRA South America Brazil 2020-01-26 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-06-04 614941.0 30925.0 25243.286 34021.0 1473.0 1038.143 2893.031 145.489 118.759 160.054 6.93 4.884 1.22 null null null null null null null null null null null null null null null null null 77.31 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-10-13 5113628.0 10220.0 20641.0 150998.0 309.0 500.571 24057.406 48.081 97.107 710.38 1.454 2.355 0.95 null null null null null null null null null null null null null null null null null 63.43 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRN Asia Brunei 2020-04-23 138.0 0.0 0.286 1.0 0.0 0.0 315.441 0.0 0.653 2.286 0.0 0.0 0.12 null null null null null null null null null null null null null null null null null 58.33 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BRN Asia Brunei 2020-06-06 141.0 0.0 0.0 2.0 0.0 0.0 322.298 0.0 0.0 4.572 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 49.07 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BRN Asia Brunei 2020-08-21 143.0 0.0 0.143 3.0 0.0 0.0 326.87 0.0 0.327 6.857 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 40.74 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BGR Europe Bulgaria 2020-03-29 346.0 15.0 22.714 8.0 1.0 0.714 49.795 2.159 3.269 1.151 0.144 0.103 1.14 null null null null null null null null null null null null null null null null null 73.15 6948445.0 65.18 44.7 20.801 13.272 18563.307 1.5 424.688 5.81 30.1 44.4 null 7.454 75.05 0.813
BGR Europe Bulgaria 2020-05-29 2485.0 8.0 16.143 136.0 2.0 1.571 357.634 1.151 2.323 19.573 0.288 0.226 0.96 20.0 2.878 191.0 27.488 null null null null 79389.0 1725.0 11.425 0.248 1112.0 0.16 1.5e-2 68.9 null 56.48 6948445.0 65.18 44.7 20.801 13.272 18563.307 1.5 424.688 5.81 30.1 44.4 null 7.454 75.05 0.813
BFA Africa Burkina Faso 2020-10-24 2444.0 11.0 14.429 65.0 0.0 0.0 116.919 0.526 0.69 3.11 0.0 0.0 0.96 null null null null null null null null null null null null null null null null null 22.22 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BDI Africa Burundi 2020-03-04 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 1.1890781e7 423.062 17.5 2.562 1.504 702.225 71.7 293.068 6.05 null null 6.144 0.8 61.58 0.417
BDI Africa Burundi 2020-07-21 328.0 6.0 8.429 1.0 0.0 0.0 27.584 0.505 0.709 8.4e-2 0.0 0.0 0.67 null null null null null null null null null null null null null null null null null 13.89 1.1890781e7 423.062 17.5 2.562 1.504 702.225 71.7 293.068 6.05 null null 6.144 0.8 61.58 0.417
BDI Africa Burundi 2020-10-08 515.0 0.0 0.714 1.0 0.0 0.0 43.311 0.0 6.0e-2 8.4e-2 0.0 0.0 0.76 null null null null null null null null null null null null null null null null null 14.81 1.1890781e7 423.062 17.5 2.562 1.504 702.225 71.7 293.068 6.05 null null 6.144 0.8 61.58 0.417
KHM Asia Cambodia 2020-11-16 303.0 1.0 0.429 0.0 0.0 0.0 18.123 6.0e-2 2.6e-2 null 0.0 0.0 0.87 null null null null null null null null null null null null null null null null null 42.59 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-11-29 323.0 8.0 2.429 0.0 0.0 0.0 19.319 0.478 0.145 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
CMR Africa Cameroon 2020-06-17 9864.0 0.0 169.0 276.0 0.0 9.143 371.583 0.0 6.366 10.397 0.0 0.344 1.09 null null null null null null null null null null null null null null null null null 60.19 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CMR Africa Cameroon 2020-08-15 18469.0 0.0 61.0 401.0 0.0 0.857 695.739 0.0 2.298 15.106 0.0 3.2e-2 1.02 null null null null null null null null null null null null null null null null null 60.19 2.6545864e7 50.885 18.8 3.165 1.919 3364.926 23.8 244.661 7.2 null null 2.735 1.3 59.29 0.556
CAN North America Canada 2020-03-04 33.0 3.0 3.143 0.0 0.0 0.0 0.874 7.9e-2 8.3e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-06-18 101877.0 386.0 388.286 8361.0 49.0 41.429 2699.289 10.227 10.288 221.529 1.298 1.098 0.79 null null null null null null null null 2295440.0 40959.0 60.819 1.085 38135.0 1.01 1.0e-2 98.2 null 70.83 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-07-05 107394.0 209.0 314.429 8739.0 7.0 22.429 2845.465 5.538 8.331 231.545 0.185 0.594 0.94 null null null null null null null null 2940925.0 25971.0 77.921 0.688 37746.0 1.0 8.0e-3 120.0 null 68.98 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-08-23 126817.0 257.0 401.857 9119.0 2.0 6.429 3360.089 6.809 10.647 241.613 5.3e-2 0.17 1.1 null null null null null null null null 5115490.0 38756.0 135.538 1.027 48161.0 1.276 8.0e-3 119.8 null 64.35 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CPV Africa Cape Verde 2020-03-11 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 555988.0 135.58 25.7 4.46 3.437 6222.554 null 182.219 2.42 2.1 16.5 null 2.1 72.98 0.654
CPV Africa Cape Verde 2020-05-10 246.0 10.0 11.571 2.0 0.0 0.0 442.456 17.986 20.812 3.597 0.0 0.0 1.06 null null null null null null null null null null null null null null null null null 79.63 555988.0 135.58 25.7 4.46 3.437 6222.554 null 182.219 2.42 2.1 16.5 null 2.1 72.98 0.654
CAF Africa Central African Republic 2020-06-03 1173.0 104.0 67.286 4.0 0.0 0.429 242.869 21.533 13.931 0.828 0.0 8.9e-2 1.07 null null null null null null null null null null null null null null null null null 75.93 4829764.0 7.479 18.3 3.655 2.251 661.24 null 435.727 6.1 null null 16.603 1.0 53.28 0.367
TCD Africa Chad 2020-01-27 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 1.6425859e7 11.833 16.7 2.486 1.446 1768.153 38.4 280.995 6.1 null null 5.818 null 54.24 0.404
TCD Africa Chad 2020-05-17 503.0 29.0 25.857 53.0 3.0 3.143 30.622 1.766 1.574 3.227 0.183 0.191 0.91 null null null null null null null null null null null null null null null null null 87.04 1.6425859e7 11.833 16.7 2.486 1.446 1768.153 38.4 280.995 6.1 null null 5.818 null 54.24 0.404
TCD Africa Chad 2020-07-29 926.0 0.0 5.286 75.0 0.0 0.0 56.375 0.0 0.322 4.566 0.0 0.0 0.85 null null null null null null null null null null null null null null null null null 70.37 1.6425859e7 11.833 16.7 2.486 1.446 1768.153 38.4 280.995 6.1 null null 5.818 null 54.24 0.404
CHL South America Chile 2020-02-02 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHL South America Chile 2020-08-09 373056.0 2033.0 1903.571 10077.0 66.0 67.0 19515.166 106.35 99.579 527.144 3.453 3.505 0.94 null null null null null null null null 1833332.0 28460.0 95.905 1.489 24009.0 1.256 7.9e-2 12.6 null 87.5 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHL South America Chile 2020-09-10 428669.0 1642.0 1738.286 11781.0 79.0 51.286 22424.373 85.896 90.933 616.283 4.133 2.683 0.99 null null null null null null null null 2711664.0 28313.0 141.852 1.481 30134.0 1.576 5.8e-2 17.3 null 81.94 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHN Asia China 2020-06-06 84186.0 9.0 8.286 4638.0 0.0 0.0 58.49 6.0e-3 6.0e-3 3.222 0.0 0.0 1.3 null null null null null null null null null null null null null null null null null 78.24 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
COL South America Colombia 2020-05-18 16295.0 721.0 668.857 592.0 18.0 16.143 320.245 14.17 13.145 11.635 0.354 0.317 1.29 null null null null null null null null 201808.0 5391.0 3.966 0.106 6125.0 0.12 null null null 87.04 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COM Africa Comoros 2020-05-27 87.0 0.0 7.571 2.0 1.0 0.143 100.047 0.0 8.707 2.3 1.15 0.164 null null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COG Africa Congo 2020-03-17 1.0 0.0 0.143 0.0 0.0 0.0 0.181 0.0 2.6e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 5518092.0 15.405 19.0 3.402 2.063 4881.406 37.0 344.094 7.2 1.7 52.3 47.964 null 64.57 0.606
COG Africa Congo 2020-04-18 143.0 0.0 11.857 6.0 0.0 0.143 25.915 0.0 2.149 1.087 0.0 2.6e-2 0.78 null null null null null null null null null null null null null null null null null 97.22 5518092.0 15.405 19.0 3.402 2.063 4881.406 37.0 344.094 7.2 1.7 52.3 47.964 null 64.57 0.606
CIV Africa Cote d'Ivoire 2020-10-07 19935.0 32.0 30.143 120.0 0.0 0.0 755.736 1.213 1.143 4.549 0.0 0.0 0.93 null null null null null null null null 168309.0 1226.0 6.381 4.6e-2 790.0 3.0e-2 3.8e-2 26.2 null 36.11 2.6378275e7 76.399 18.7 2.933 1.582 3601.006 28.2 303.74 2.42 null null 19.351 null 57.78 0.492
CYP Europe Cyprus 2020-07-05 1003.0 1.0 1.286 19.0 0.0 0.0 1145.109 1.142 1.468 21.692 0.0 0.0 1.24 null null null null null null null null 164347.0 1445.0 187.632 1.65 1359.0 1.552 1.0e-3 1056.8 null 50.0 875899.0 127.657 37.3 13.416 8.563 32415.132 null 141.171 9.24 19.6 52.7 null 3.4 80.98 0.869
CZE Europe Czech Republic 2020-01-23 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
CZE Europe Czech Republic 2020-02-18 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null 1.0 0.0 0.0 null null 16.67 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
CZE Europe Czech Republic 2020-04-26 7404.0 52.0 94.0 220.0 2.0 4.857 691.382 4.856 8.778 20.544 0.187 0.454 0.65 72.0 6.723 310.0 28.948 118.656 11.08 480.656 44.883 222658.0 3381.0 20.792 0.316 6655.0 0.621 1.4e-2 70.8 null 60.19 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
CZE Europe Czech Republic 2020-11-01 341644.0 6542.0 11935.286 3429.0 178.0 175.429 31902.566 610.889 1114.512 320.199 16.622 16.381 1.01 1163.0 108.6 7486.0 699.039 1794.919 167.609 11793.174 1101.241 2356389.0 20643.0 220.039 1.928 38502.0 3.595 0.31 3.2 null 73.15 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
CZE Europe Czech Republic 2020-11-26 511520.0 6305.0 4252.143 7779.0 168.0 129.286 47765.511 588.758 397.063 726.4 15.688 12.073 null 743.0 69.381 5048.0 471.38 null null null null 3023731.0 20489.0 282.355 1.913 19862.0 1.855 0.214 4.7 null 69.44 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
COD Africa Democratic Republic of Congo 2020-05-21 1835.0 104.0 84.714 61.0 0.0 1.571 20.489 1.161 0.946 0.681 0.0 1.8e-2 1.13 null null null null null null null null null 225.0 null 3.0e-3 null null null null null 80.56 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
COD Africa Democratic Republic of Congo 2020-07-07 7432.0 0.0 56.143 182.0 0.0 1.714 82.982 0.0 0.627 2.032 0.0 1.9e-2 1.04 null null null null null null null null null 919.0 null 1.0e-2 644.0 7.0e-3 8.7e-2 11.5 null 80.56 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
COD Africa Democratic Republic of Congo 2020-09-15 10401.0 11.0 15.571 267.0 3.0 1.0 116.133 0.123 0.174 2.981 3.3e-2 1.1e-2 1.05 null null null null null null null null null 272.0 null 3.0e-3 227.0 3.0e-3 6.9e-2 14.6 null 42.59 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
COD Africa Democratic Republic of Congo 2020-10-08 10822.0 18.0 19.571 276.0 0.0 0.571 120.833 0.201 0.219 3.082 0.0 6.0e-3 1.09 null null null null null null null null null 154.0 null 2.0e-3 174.0 2.0e-3 0.112 8.9 null 39.81 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
COD Africa Democratic Republic of Congo 2020-10-17 11000.0 1.0 22.714 302.0 1.0 3.714 122.821 1.1e-2 0.254 3.372 1.1e-2 4.1e-2 1.1 null null null null null null null null null null null null null null null null null 48.15 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
COD Africa Democratic Republic of Congo 2020-11-19 12008.0 90.0 45.143 323.0 0.0 0.714 134.076 1.005 0.504 3.606 0.0 8.0e-3 1.15 null null null null null null null null null 385.0 null 4.0e-3 293.0 3.0e-3 0.154 6.5 null 18.52 8.9561404e7 35.879 17.0 3.02 1.745 808.133 77.1 318.949 6.1 null null 4.472 null 60.68 0.457
DNK Europe Denmark 2020-08-07 14747.0 161.0 102.714 617.0 0.0 0.286 2546.009 27.796 17.733 106.523 0.0 4.9e-2 1.37 2.0 0.345 25.0 4.316 null null null null 1698747.0 27074.0 293.282 4.674 22516.0 3.887 5.0e-3 219.2 null 50.93 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DNK Europe Denmark 2020-08-11 15291.0 156.0 139.571 621.0 1.0 0.714 2639.928 26.933 24.096 107.213 0.173 0.123 1.33 2.0 0.345 20.0 3.453 null null null null 1804944.0 33524.0 311.616 5.788 26429.0 4.563 5.0e-3 189.4 null 50.93 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DJI Africa Djibouti 2020-05-08 1135.0 2.0 5.429 3.0 0.0 0.143 1148.783 2.024 5.494 3.036 0.0 0.145 1.15 null null null null null null null null null null null null null null null null null 94.44 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DMA North America Dominica 2020-04-07 15.0 0.0 0.429 0.0 0.0 0.0 208.359 0.0 5.953 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 79.63 71991.0 98.567 null null null 9673.367 null 227.376 11.62 null null null 3.8 75.0 0.715
DOM North America Dominican Republic 2020-03-13 5.0 0.0 0.429 0.0 0.0 0.0 0.461 0.0 4.0e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
DOM North America Dominican Republic 2020-10-18 121347.0 422.0 410.0 2199.0 4.0 3.714 11186.216 38.902 37.795 202.712 0.369 0.342 0.96 null null null null null null null null 545492.0 3265.0 50.285 0.301 3427.0 0.316 0.12 8.4 null 67.59 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
DOM North America Dominican Republic 2020-11-17 134697.0 494.0 509.429 2290.0 4.0 3.0 12416.869 45.539 46.961 211.101 0.369 0.277 1.16 null null null null null null null null 659160.0 3869.0 60.764 0.357 3716.0 0.343 0.137 7.3 null 64.81 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
ECU South America Ecuador 2020-05-31 39098.0 527.0 334.571 3358.0 24.0 35.714 2216.055 29.87 18.963 190.33 1.36 2.024 1.02 null null null null null null null null 68988.0 757.0 3.91 4.3e-2 1009.0 5.7e-2 null null null 86.11 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
ECU South America Ecuador 2020-06-13 46356.0 578.0 518.286 3874.0 46.0 38.0 2627.435 32.761 29.376 219.576 2.607 2.154 1.13 null null null null null null null null 88946.0 1385.0 5.041 7.9e-2 1403.0 8.0e-2 null null null 83.33 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
EGY Africa Egypt 2020-03-20 285.0 29.0 29.286 8.0 2.0 0.857 2.785 0.283 0.286 7.8e-2 2.0e-2 8.0e-3 1.5 null null null null null null null null null null null null null null null null null 29.63 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-07-06 76222.0 969.0 1352.571 3422.0 79.0 78.571 744.833 9.469 13.217 33.439 0.772 0.768 0.86 null null null null null null null null null null null null null null null null null 60.19 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-08-28 98285.0 223.0 162.429 5362.0 20.0 18.714 960.43 2.179 1.587 52.397 0.195 0.183 1.05 null null null null null null null null null null null null null null null null null 62.96 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-09-19 101900.0 128.0 149.143 5750.0 17.0 17.571 995.755 1.251 1.457 56.188 0.166 0.172 0.9 null null null null null null null null null null null null null null null null null 62.96 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-10-30 107376.0 167.0 163.714 6258.0 11.0 11.714 1049.266 1.632 1.6 61.152 0.107 0.114 1.12 null null null null null null null null null null null null null null null null null 75.93 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
SLV North America El Salvador 2020-05-30 2395.0 117.0 82.286 46.0 4.0 1.857 369.245 18.038 12.686 7.092 0.617 0.286 1.13 null null null null null null null null 89358.0 2386.0 13.777 0.368 2392.0 0.369 3.4e-2 29.1 null 100.0 6486201.0 307.811 27.6 8.273 5.417 7292.458 2.2 167.295 8.87 2.5 18.8 90.65 1.3 73.32 0.674
GNQ Africa Equatorial Guinea 2020-10-06 5052.0 7.0 3.143 83.0 0.0 0.0 3600.894 4.989 2.24 59.16 0.0 0.0 0.58 null null null null null null null null null null null null null null null null null null 1402985.0 45.194 22.4 2.846 1.752 22604.873 null 202.812 7.78 null null 24.64 2.1 58.74 0.591
GNQ Africa Equatorial Guinea 2020-10-21 5074.0 0.0 0.857 83.0 0.0 0.0 3616.575 0.0 0.611 59.16 0.0 0.0 0.51 null null null null null null null null null null null null null null null null null null 1402985.0 45.194 22.4 2.846 1.752 22604.873 null 202.812 7.78 null null 24.64 2.1 58.74 0.591
ERI Africa Eritrea 2020-05-24 39.0 0.0 0.0 0.0 0.0 0.0 10.997 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 93.52 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
ERI Africa Eritrea 2020-05-28 39.0 0.0 0.0 0.0 0.0 0.0 10.997 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 93.52 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
ERI Africa Eritrea 2020-08-17 285.0 0.0 0.0 0.0 0.0 0.0 80.363 0.0 0.0 null 0.0 0.0 0.28 null null null null null null null null null null null null null null null null null 89.81 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
ERI Africa Eritrea 2020-08-22 306.0 0.0 3.0 0.0 0.0 0.0 86.284 0.0 0.846 null 0.0 0.0 0.28 null null null null null null null null null null null null null null null null null 89.81 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
EST Europe Estonia 2020-09-05 2491.0 35.0 18.286 64.0 0.0 0.0 1877.819 26.384 13.785 48.246 0.0 0.0 1.32 0.0 0.0 7.0 5.277 null null null null 188267.0 1342.0 141.923 1.012 2061.0 1.554 9.0e-3 112.7 null 23.15 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
ETH Africa Ethiopia 2020-02-26 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
ETH Africa Ethiopia 2020-04-29 130.0 4.0 2.0 3.0 0.0 0.0 1.131 3.5e-2 1.7e-2 2.6e-2 0.0 0.0 0.56 null null null null null null null null 16434.0 766.0 0.143 7.0e-3 952.0 8.0e-3 2.0e-3 476.0 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
ETH Africa Ethiopia 2020-08-07 21452.0 552.0 560.286 380.0 15.0 15.143 186.598 4.802 4.874 3.305 0.13 0.132 1.06 null null null null null null null null 478017.0 9203.0 4.158 8.0e-2 7952.0 6.9e-2 7.0e-2 14.2 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
ETH Africa Ethiopia 2020-08-24 42143.0 1472.0 1543.857 692.0 14.0 21.143 366.577 12.804 13.429 6.019 0.122 0.184 1.17 null null null null null null null null 775908.0 18851.0 6.749 0.164 20957.0 0.182 7.4e-2 13.6 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
FIN Europe Finland 2020-04-02 1518.0 72.0 80.0 19.0 2.0 2.0 273.972 12.995 14.439 3.429 0.361 0.361 1.32 65.0 11.731 160.0 28.877 null null null null 27466.0 2331.0 4.957 0.421 1422.0 0.257 5.6e-2 17.8 null 67.59 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-08-07 7554.0 22.0 17.429 331.0 0.0 0.286 1363.361 3.971 3.146 59.74 0.0 5.2e-2 1.29 0.0 0.0 3.0 0.541 null null null null 428351.0 8815.0 77.31 1.591 6469.0 1.168 3.0e-3 371.2 null 35.19 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-08-14 7700.0 17.0 20.857 333.0 0.0 0.286 1389.712 3.068 3.764 60.101 0.0 5.2e-2 1.25 0.0 0.0 6.0 1.083 null null null null 491843.0 9621.0 88.769 1.736 9070.0 1.637 2.0e-3 434.9 null 32.41 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-09-04 8225.0 25.0 26.143 336.0 0.0 0.143 1484.465 4.512 4.718 60.642 0.0 2.6e-2 1.25 1.0 0.18 14.0 2.527 null null null null 798694.0 16079.0 144.15 2.902 15326.0 2.766 2.0e-3 586.2 null 32.41 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
GMB Africa Gambia 2020-02-24 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GMB Africa Gambia 2020-03-18 1.0 0.0 0.143 0.0 0.0 0.0 0.414 0.0 5.9e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 45.37 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GMB Africa Gambia 2020-04-28 10.0 0.0 0.0 1.0 0.0 0.0 4.138 0.0 0.0 0.414 0.0 0.0 null null null null null null null null null null null null null null null null null null 78.7 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GMB Africa Gambia 2020-10-06 3613.0 19.0 4.857 117.0 2.0 0.714 1495.036 7.862 2.01 48.414 0.828 0.296 0.7 null null null null null null null null null null null null null null null null null 75.93 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GEO Asia Georgia 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 3989175.0 65.032 38.7 14.864 10.244 9745.079 4.2 496.218 7.11 5.3 55.5 null 2.6 73.77 0.78
GEO Asia Georgia 2020-03-06 4.0 0.0 0.429 0.0 0.0 0.0 1.003 0.0 0.107 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 41.67 3989175.0 65.032 38.7 14.864 10.244 9745.079 4.2 496.218 7.11 5.3 55.5 null 2.6 73.77 0.78
GEO Asia Georgia 2020-06-04 801.0 1.0 9.0 13.0 0.0 0.143 200.793 0.251 2.256 3.259 0.0 3.6e-2 0.78 null null null null null null null null null null null null null null null null null 69.44 3989175.0 65.032 38.7 14.864 10.244 9745.079 4.2 496.218 7.11 5.3 55.5 null 2.6 73.77 0.78
GEO Asia Georgia 2020-11-16 82835.0 3157.0 3165.0 733.0 30.0 33.429 20764.945 791.392 793.397 183.747 7.52 8.38 1.18 null null null null null null null null null null null null null null null null null 64.81 3989175.0 65.032 38.7 14.864 10.244 9745.079 4.2 496.218 7.11 5.3 55.5 null 2.6 73.77 0.78
DEU Europe Germany 2020-05-29 182922.0 726.0 458.857 8504.0 34.0 39.429 2183.258 8.665 5.477 101.499 0.406 0.471 0.79 null null null null null null null null null null null null 55781.0 0.666 8.0e-3 121.6 null 59.72 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
GHA Africa Ghana 2020-02-05 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-10-03 46803.0 109.0 83.0 303.0 2.0 0.571 1506.23 3.508 2.671 9.751 6.4e-2 1.8e-2 1.13 null null null null null null null null 492768.0 null 15.858 null 1722.0 5.5e-2 4.8e-2 20.7 null 44.44 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GRC Europe Greece 2020-05-28 2906.0 3.0 7.571 175.0 2.0 1.0 278.805 0.288 0.726 16.79 0.192 9.6e-2 0.97 null null null null null null null null 170467.0 4222.0 16.355 0.405 3770.0 0.362 2.0e-3 498.0 null 68.52 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-06-13 3112.0 4.0 18.857 183.0 0.0 0.429 298.569 0.384 1.809 17.557 0.0 4.1e-2 1.19 null null null null null null null null 247452.0 3585.0 23.741 0.344 5104.0 0.49 4.0e-3 270.7 null 54.63 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-08-29 9977.0 177.0 228.0 260.0 1.0 2.857 957.205 16.982 21.875 24.945 9.6e-2 0.274 1.14 null null null null null null null null 931002.0 13737.0 89.321 1.318 13324.0 1.278 1.7e-2 58.4 null 56.02 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-10-03 19613.0 267.0 340.714 405.0 7.0 4.143 1881.694 25.616 32.689 38.856 0.672 0.397 1.16 null null null null null null null null 1339664.0 11622.0 128.529 1.115 10087.0 0.968 3.4e-2 29.6 null 50.46 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-11-07 54809.0 2555.0 2222.571 749.0 34.0 17.571 5258.439 245.13 213.236 71.86 3.262 1.686 1.34 null null null null null null null null 1926544.0 24086.0 184.835 2.311 21317.0 2.045 0.104 9.6 null 78.7 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRD North America Grenada 2020-02-02 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 112519.0 317.132 29.4 7.304 5.021 13593.877 null 243.964 10.71 null null null 3.7 72.4 0.772
GTM North America Guatemala 2020-01-25 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 2.78 1.7915567e7 157.834 22.9 4.694 3.016 7423.808 8.7 155.898 10.18 null null 76.665 0.6 74.3 0.65
GNB Africa Guinea-Bissau 2020-05-18 1032.0 42.0 38.714 4.0 0.0 0.143 524.391 21.341 19.672 2.033 0.0 7.3e-2 0.95 null null null null null null null null null null null null null null null null null null 1967998.0 66.191 19.4 3.002 1.565 1548.675 67.1 382.474 2.42 null null 6.403 null 58.32 0.455
GNB Africa Guinea-Bissau 2020-09-10 2275.0 30.0 10.0 39.0 1.0 0.714 1155.997 15.244 5.081 19.817 0.508 0.363 0.49 null null null null null null null null null null null null null null null null null null 1967998.0 66.191 19.4 3.002 1.565 1548.675 67.1 382.474 2.42 null null 6.403 null 58.32 0.455
GUY South America Guyana 2020-02-05 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 786559.0 3.952 26.3 5.305 2.837 7435.047 null 373.159 11.62 null null 77.159 1.6 69.91 0.654
GUY South America Guyana 2020-05-29 150.0 0.0 3.286 11.0 0.0 0.143 190.704 0.0 4.177 13.985 0.0 0.182 0.6 null null null null null null null null null null null null null null null null null 87.04 786559.0 3.952 26.3 5.305 2.837 7435.047 null 373.159 11.62 null null 77.159 1.6 69.91 0.654
GUY South America Guyana 2020-07-04 272.0 16.0 6.0 14.0 0.0 0.286 345.81 20.342 7.628 17.799 0.0 0.363 0.98 null null null null null null null null null null null null null null null null null 77.31 786559.0 3.952 26.3 5.305 2.837 7435.047 null 373.159 11.62 null null 77.159 1.6 69.91 0.654
HTI North America Haiti 2020-08-21 8016.0 19.0 29.429 196.0 0.0 0.571 703.002 1.666 2.581 17.189 0.0 5.0e-2 0.94 null null null null null null null null null null null null null null null null null 21.3 1.1402533e7 398.448 24.3 4.8 2.954 1653.173 23.5 430.548 6.65 2.9 23.1 22.863 0.7 64.0 0.498
HND North America Honduras 2020-11-04 99124.0 436.0 560.714 2730.0 24.0 11.143 10007.867 44.02 56.611 275.629 2.423 1.125 0.87 null null null null null null null null null null null null null null null null null 87.04 9904608.0 82.805 24.9 4.652 2.883 4541.795 16.0 240.208 7.21 2.0 null 84.169 0.7 75.27 0.617
HUN Europe Hungary 2020-03-11 13.0 4.0 1.571 0.0 0.0 0.0 1.346 0.414 0.163 null 0.0 0.0 null null null 13.0 1.346 null null null null 609.0 78.0 6.3e-2 8.0e-3 54.0 6.0e-3 2.9e-2 34.4 null 46.3 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
HUN Europe Hungary 2020-06-05 3970.0 16.0 18.429 542.0 3.0 3.571 410.958 1.656 1.908 56.106 0.311 0.37 0.71 null null 397.0 41.096 null null null null 202606.0 6712.0 20.973 0.695 3208.0 0.332 6.0e-3 174.1 null 61.11 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
IND Asia India 2020-03-07 34.0 3.0 4.429 0.0 0.0 0.0 2.5e-2 2.0e-3 3.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 26.85 1.380004385e9 450.419 28.2 5.989 3.414 6426.674 21.2 282.28 10.39 1.9 20.6 59.55 0.53 69.66 0.64
IND Asia India 2020-06-15 343091.0 10667.0 11023.286 9900.0 380.0 346.714 248.616 7.73 7.988 7.174 0.275 0.251 1.21 null null null null null null null null 5774133.0 115519.0 4.184 8.4e-2 142814.0 0.103 7.7e-2 13.0 null 76.85 1.380004385e9 450.419 28.2 5.989 3.414 6426.674 21.2 282.28 10.39 1.9 20.6 59.55 0.53 69.66 0.64
IDN Asia Indonesia 2020-05-24 22271.0 526.0 679.571 1372.0 21.0 32.0 81.423 1.923 2.485 5.016 7.7e-2 0.117 1.14 null null null null null null null null 179864.0 3829.0 0.658 1.4e-2 5626.0 2.1e-2 0.121 8.3 null 71.76 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
IDN Asia Indonesia 2020-07-13 76981.0 1282.0 1717.571 3656.0 50.0 59.286 281.442 4.687 6.279 13.366 0.183 0.217 1.07 null null null null null null null null 630149.0 9062.0 2.304 3.3e-2 11152.0 4.1e-2 0.154 6.5 null 62.5 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
IRN Asia Iran 2020-04-19 82211.0 1343.0 1503.571 5118.0 87.0 92.0 978.784 15.989 17.901 60.934 1.036 1.095 0.77 null null null null null null null null 341662.0 11525.0 4.068 0.137 11182.0 0.133 0.134 7.4 null 53.7 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRN Asia Iran 2020-06-27 220180.0 2456.0 2513.714 10364.0 125.0 122.429 2621.41 29.241 29.928 123.391 1.488 1.458 1.0 null null null null null null null null 1583542.0 25670.0 18.853 0.306 26838.0 0.32 9.4e-2 10.7 null 41.67 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRN Asia Iran 2020-09-01 376894.0 1682.0 1933.0 21672.0 101.0 110.143 4487.21 20.025 23.014 258.022 1.202 1.311 0.84 null null null null null null null null 3256122.0 25012.0 38.767 0.298 23973.0 0.285 8.1e-2 12.4 null 60.19 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRQ Asia Iraq 2020-10-12 405437.0 3107.0 3212.571 9912.0 60.0 64.0 10079.855 77.245 79.87 246.429 1.492 1.591 0.91 null null null null null null null null 2507551.0 20368.0 62.342 0.506 19458.0 0.484 0.165 6.1 null 61.11 4.0222503e7 88.125 20.0 3.186 1.957 15663.986 2.5 218.612 8.83 null null 94.576 1.4 70.6 0.685
IRQ Asia Iraq 2020-11-25 542187.0 2438.0 2190.714 12086.0 55.0 41.571 13479.693 60.613 54.465 300.479 1.367 1.034 null null null null null null null null null 3347344.0 27830.0 83.221 0.692 23504.0 0.584 9.3e-2 10.7 null null 4.0222503e7 88.125 20.0 3.186 1.957 15663.986 2.5 218.612 8.83 null null 94.576 1.4 70.6 0.685
ISR Asia Israel 2020-11-03 316528.0 892.0 686.286 2592.0 12.0 15.571 36569.407 103.055 79.289 299.461 1.386 1.799 0.76 null null null null null null null null 4959948.0 41557.0 573.037 4.801 30484.0 3.522 2.3e-2 44.4 null 40.74 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ISR Asia Israel 2020-11-12 322159.0 833.0 613.714 2706.0 6.0 9.571 37219.973 96.239 70.904 312.632 0.693 1.106 0.95 null null null null null null null null 5254862.0 40338.0 607.11 4.66 31393.0 3.627 2.0e-2 51.2 null 65.74 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ITA Europe Italy 2020-09-17 293025.0 1583.0 1406.429 35658.0 13.0 10.143 4846.446 26.182 23.261 589.761 0.215 0.168 1.1 212.0 3.506 2560.0 42.341 null null null null 1.0146324e7 101773.0 167.814 1.683 84562.0 1.399 1.7e-2 60.1 null 47.22 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
ITA Europe Italy 2020-11-19 1308528.0 36176.0 34589.571 47870.0 653.0 611.571 21642.217 598.328 572.089 791.739 10.8 10.115 1.07 3712.0 61.394 37322.0 617.282 null null null null 1.9724527e7 250186.0 326.231 4.138 217717.0 3.601 0.159 6.3 null 79.63 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
JAM North America Jamaica 2020-03-04 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JAM North America Jamaica 2020-04-19 173.0 10.0 14.857 5.0 0.0 0.143 58.423 3.377 5.017 1.689 0.0 4.8e-2 0.97 null null null null null null null null null null null null 79.0 2.7e-2 0.188 5.3 null 80.56 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JAM North America Jamaica 2020-07-02 715.0 8.0 4.429 10.0 0.0 0.0 241.459 2.702 1.496 3.377 0.0 0.0 1.1 null null null null null null null null 25172.0 285.0 8.501 9.6e-2 360.0 0.122 1.2e-2 81.3 null 64.81 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JAM North America Jamaica 2020-10-04 6895.0 100.0 125.429 120.0 1.0 4.429 2328.479 33.771 42.358 40.525 0.338 1.496 0.96 null null null null null null null null 81071.0 541.0 27.378 0.183 534.0 0.18 0.235 4.3 null 78.7 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JPN Asia Japan 2020-03-31 2255.0 254.0 148.286 67.0 2.0 3.571 17.829 2.008 1.172 0.53 1.6e-2 2.8e-2 1.97 null null null null null null null null 31874.0 1914.0 0.252 1.5e-2 1354.0 1.1e-2 0.11 9.1 null 40.74 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JPN Asia Japan 2020-07-02 19055.0 217.0 142.857 977.0 1.0 0.857 150.66 1.716 1.13 7.725 8.0e-3 7.0e-3 1.68 null null null null null null null null 402243.0 5460.0 3.18 4.3e-2 4570.0 3.6e-2 3.1e-2 32.0 null 25.93 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JPN Asia Japan 2020-10-14 90694.0 541.0 522.143 1646.0 11.0 4.571 717.082 4.277 4.128 13.014 8.7e-2 3.6e-2 1.06 null null null null null null null null 2133151.0 21837.0 16.866 0.173 17411.0 0.138 3.0e-2 33.3 null 38.89 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JOR Asia Jordan 2020-02-10 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 1.020314e7 109.285 23.2 3.81 2.361 8337.49 0.1 208.257 11.75 null null null 1.4 74.53 0.735
JOR Asia Jordan 2020-06-26 1104.0 18.0 13.714 9.0 0.0 0.0 108.202 1.764 1.344 0.882 0.0 0.0 0.89 null null null null null null null null null null null null null null null null null 48.15 1.020314e7 109.285 23.2 3.81 2.361 8337.49 0.1 208.257 11.75 null null null 1.4 74.53 0.735
KAZ Asia Kazakhstan 2020-06-27 20319.0 0.0 442.0 166.0 16.0 6.857 1082.139 0.0 23.54 8.841 0.852 0.365 1.06 null null null null null null null null 1467556.0 20390.0 78.158 1.086 23637.0 1.259 1.9e-2 53.5 null 81.02 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-08-12 115615.0 2114.0 1811.286 1433.0 0.0 46.286 6157.363 112.586 96.465 76.318 0.0 2.465 0.62 null null null null null null null null 2252153.0 15229.0 119.944 0.811 15342.0 0.817 0.118 8.5 null 80.56 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-08-14 118514.0 1410.0 1512.0 1433.0 0.0 46.286 6311.756 75.093 80.525 76.318 0.0 2.465 0.59 null null null null null null null null 2291327.0 19573.0 122.03 1.042 15431.0 0.822 9.8e-2 10.2 null 80.56 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-11-05 152725.0 703.0 606.571 2263.0 1.0 5.857 8133.748 37.44 32.304 120.522 5.3e-2 0.312 1.46 null null null null null null null null 3723082.0 35064.0 198.282 1.867 27230.0 1.45 2.2e-2 44.9 null 68.06 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KEN Africa Kenya 2020-02-12 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KEN Africa Kenya 2020-05-13 737.0 22.0 22.143 40.0 4.0 2.0 13.706 0.409 0.412 0.744 7.4e-2 3.7e-2 1.3 null null null null null null null null 35432.0 1516.0 0.659 2.8e-2 1197.0 2.2e-2 1.8e-2 54.1 null 88.89 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KEN Africa Kenya 2020-09-29 38378.0 210.0 165.714 707.0 7.0 6.857 713.726 3.905 3.082 13.148 0.13 0.128 1.15 null null null null null null null null 545019.0 3604.0 10.136 6.7e-2 3556.0 6.6e-2 4.7e-2 21.5 null 71.3 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KEN Africa Kenya 2020-11-17 71729.0 925.0 1020.143 1302.0 15.0 21.143 1333.964 17.202 18.972 24.214 0.279 0.393 1.09 null null null null null null null null null null null null 6311.0 0.117 0.162 6.2 null 62.96 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
OWID_KOS Europe Kosovo 2020-04-30 799.0 9.0 24.143 22.0 0.0 0.571 413.395 4.657 12.491 11.383 0.0 0.296 0.88 null null null null null null null null null null null null null null null null null 92.59 1932774.0 168.155 null null null 9795.834 0.6 null null null null null null null null
OWID_KOS Europe Kosovo 2020-08-02 8799.0 245.0 237.429 249.0 13.0 10.286 4552.524 126.761 122.843 128.83 6.726 5.322 1.05 null null null null null null null null null null null null null null null null null 69.44 1932774.0 168.155 null null null 9795.834 0.6 null null null null null null null null
OWID_KOS Europe Kosovo 2020-08-05 9492.0 218.0 235.143 284.0 15.0 12.571 4911.076 112.791 121.661 146.939 7.761 6.504 1.01 null null null null null null null null null null null null null null null null null 69.44 1932774.0 168.155 null null null 9795.834 0.6 null null null null null null null null
KGZ Asia Kyrgyzstan 2020-06-06 1974.0 38.0 36.0 22.0 0.0 0.857 302.566 5.824 5.518 3.372 0.0 0.131 1.22 null null null null null null null null null null null null null null null null null 76.39 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
KGZ Asia Kyrgyzstan 2020-11-19 68316.0 422.0 489.857 1217.0 5.0 3.429 10471.183 64.682 75.083 186.537 0.766 0.526 1.0 null null null null null null null null null null null null null null null null null 56.02 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
LAO Asia Laos 2020-02-29 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LAO Asia Laos 2020-07-15 19.0 0.0 0.0 0.0 0.0 0.0 2.611 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 20.37 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LVA Europe Latvia 2020-05-03 879.0 8.0 9.571 16.0 0.0 0.571 466.016 4.241 5.074 8.483 0.0 0.303 0.88 null null 33.0 17.495 1.965 1.042 8.842 4.688 64245.0 1143.0 34.061 0.606 2375.0 1.259 4.0e-3 248.1 null 69.44 1886202.0 31.212 43.9 19.754 14.136 25063.846 0.7 350.06 4.91 25.6 51.0 null 5.57 75.29 0.847
LBN Asia Lebanon 2020-12-01 129455.0 1511.0 1535.714 1033.0 15.0 14.143 18966.537 221.378 224.999 151.346 2.198 2.072 null null null null null null null null null null null null null null null null null null null 6825442.0 594.561 31.1 8.514 5.43 13367.565 null 266.591 12.71 26.9 40.7 null 2.9 78.93 0.757
LSO Africa Lesotho 2020-03-11 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 2142252.0 73.562 22.2 4.506 2.647 2851.153 59.6 405.126 3.94 0.4 53.9 2.117 null 54.33 0.52
LSO Africa Lesotho 2020-09-10 1164.0 0.0 11.286 31.0 0.0 0.0 543.353 0.0 5.268 14.471 0.0 0.0 0.99 null null null null null null null null null null null null null null null null null 65.74 2142252.0 73.562 22.2 4.506 2.647 2851.153 59.6 405.126 3.94 0.4 53.9 2.117 null 54.33 0.52
LSO Africa Lesotho 2020-11-18 2058.0 6.0 4.571 44.0 0.0 0.0 960.671 2.801 2.134 20.539 0.0 0.0 0.7 null null null null null null null null null null null null null null null null null 47.22 2142252.0 73.562 22.2 4.506 2.647 2851.153 59.6 405.126 3.94 0.4 53.9 2.117 null 54.33 0.52
LBY Africa Libya 2020-07-25 2547.0 123.0 108.0 58.0 1.0 1.429 370.673 17.901 15.718 8.441 0.146 0.208 1.27 null null null null null null null null null 1074.0 null 0.156 1256.0 0.183 8.6e-2 11.6 null 90.74 6871287.0 3.623 29.0 4.424 2.816 17881.509 null 341.862 10.43 null null null 3.7 72.91 0.706
LBY Africa Libya 2020-08-17 8579.0 407.0 378.571 157.0 4.0 4.571 1248.529 59.232 55.095 22.849 0.582 0.665 1.23 null null null null null null null null null 2995.0 null 0.436 2766.0 0.403 0.137 7.3 null 87.96 6871287.0 3.623 29.0 4.424 2.816 17881.509 null 341.862 10.43 null null null 3.7 72.91 0.706
LIE Europe Liechtenstein 2020-02-22 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LIE Europe Liechtenstein 2020-08-08 89.0 0.0 0.143 1.0 0.0 0.0 2333.692 0.0 3.746 26.221 0.0 0.0 null null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LIE Europe Liechtenstein 2020-11-16 989.0 4.0 26.857 7.0 2.0 0.429 25932.821 104.885 704.228 183.549 52.443 11.238 0.94 null null null null null null null null null null null null null null null null null null 38137.0 237.012 null null null null null null 7.77 null null null 2.397 82.49 0.916
LTU Europe Lithuania 2020-03-07 1.0 0.0 0.0 0.0 0.0 0.0 0.367 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LTU Europe Lithuania 2020-06-17 1778.0 2.0 6.429 76.0 0.0 0.286 653.126 0.735 2.361 27.918 0.0 0.105 0.85 null null null null null null null null 363718.0 5138.0 133.607 1.887 4080.0 1.499 2.0e-3 634.6 null 34.26 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LTU Europe Lithuania 2020-11-20 42757.0 2265.0 1554.143 357.0 16.0 14.857 15706.256 832.02 570.895 131.14 5.877 5.458 1.33 null null null null null null null null 1159456.0 14358.0 425.912 5.274 11084.0 4.072 0.14 7.1 null 62.96 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
MKD Europe Macedonia 2020-06-05 2790.0 179.0 94.429 149.0 2.0 3.286 1339.17 85.918 45.325 71.518 0.96 1.577 1.68 null null null null null null null null 34386.0 1272.0 16.505 0.611 957.0 0.459 9.9e-2 10.1 null null 2083380.0 82.6 39.1 13.26 8.16 13111.214 5.0 322.688 10.08 null null null 4.28 75.8 0.757
MKD Europe Macedonia 2020-07-05 7046.0 114.0 138.0 341.0 7.0 7.857 3382.004 54.719 66.239 163.676 3.36 3.771 1.0 null null null null null null null null 67165.0 1032.0 32.238 0.495 1209.0 0.58 0.114 8.8 null null 2083380.0 82.6 39.1 13.26 8.16 13111.214 5.0 322.688 10.08 null null null 4.28 75.8 0.757
MKD Europe Macedonia 2020-11-21 53631.0 1182.0 1081.286 1487.0 25.0 29.429 25742.303 567.347 519.006 713.744 12.0 14.125 null null null null null null null null null 312143.0 2553.0 149.825 1.225 2851.0 1.368 0.379 2.6 null null 2083380.0 82.6 39.1 13.26 8.16 13111.214 5.0 322.688 10.08 null null null 4.28 75.8 0.757
MDG Africa Madagascar 2020-10-01 16454.0 46.0 37.571 232.0 2.0 0.714 594.2 1.661 1.357 8.378 7.2e-2 2.6e-2 0.76 null null null null null null null null 71089.0 139.0 2.567 5.0e-3 329.0 1.2e-2 0.114 8.8 null 48.15 2.7691019e7 43.951 19.6 2.929 1.686 1416.44 77.6 405.994 3.94 null null 50.54 0.2 67.04 0.519
MWI Africa Malawi 2020-04-29 36.0 0.0 1.857 3.0 0.0 0.0 1.882 0.0 9.7e-2 0.157 0.0 0.0 null null null null null null null null null 774.0 30.0 4.0e-2 2.0e-3 32.0 2.0e-3 5.8e-2 17.2 null 60.19 1.9129955e7 197.519 18.1 2.979 1.783 1095.042 71.4 227.349 3.94 4.4 24.7 8.704 1.3 64.26 0.477
MWI Africa Malawi 2020-09-27 5768.0 2.0 5.286 179.0 0.0 0.0 301.517 0.105 0.276 9.357 0.0 0.0 0.87 null null null null null null null null 52730.0 null 2.756 null 307.0 1.6e-2 1.7e-2 58.1 null 54.63 1.9129955e7 197.519 18.1 2.979 1.783 1095.042 71.4 227.349 3.94 4.4 24.7 8.704 1.3 64.26 0.477
MYS Asia Malaysia 2020-02-08 16.0 4.0 1.143 0.0 0.0 0.0 0.494 0.124 3.5e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 3.2365998e7 96.254 29.9 6.293 3.407 26808.164 0.1 260.942 16.74 1.0 42.4 null 1.9 76.16 0.802
MYS Asia Malaysia 2020-04-26 5780.0 38.0 55.857 98.0 0.0 1.286 178.582 1.174 1.726 3.028 0.0 4.0e-2 0.79 null null null null null null null null 131491.0 4521.0 4.063 0.14 3943.0 0.122 1.4e-2 70.6 null 73.15 3.2365998e7 96.254 29.9 6.293 3.407 26808.164 0.1 260.942 16.74 1.0 42.4 null 1.9 76.16 0.802
MYS Asia Malaysia 2020-10-15 18129.0 589.0 537.286 170.0 3.0 3.429 560.125 18.198 16.6 5.252 9.3e-2 0.106 1.47 null null null null null null null null 1810777.0 23948.0 55.947 0.74 18424.0 0.569 2.9e-2 34.3 null 65.74 3.2365998e7 96.254 29.9 6.293 3.407 26808.164 0.1 260.942 16.74 1.0 42.4 null 1.9 76.16 0.802
split20: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [features: vector, log_total_cases_per_million: double]
split80: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [features: vector, log_total_cases_per_million: double]
testSet: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [features: vector, log_total_cases_per_million: double]
trainingSet: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [features: vector, log_total_cases_per_million: double]
res43: Long = 26
iso_code continent location date total_cases new_cases new_cases_smoothed total_deaths new_deaths new_deaths_smoothed total_cases_per_million new_cases_per_million new_cases_smoothed_per_million total_deaths_per_million new_deaths_per_million new_deaths_smoothed_per_million reproduction_rate icu_patients icu_patients_per_million hosp_patients hosp_patients_per_million weekly_icu_admissions weekly_icu_admissions_per_million weekly_hosp_admissions weekly_hosp_admissions_per_million total_tests new_tests total_tests_per_thousand new_tests_per_thousand new_tests_smoothed new_tests_smoothed_per_thousand tests_per_case positive_rate tests_units stringency_index population population_density median_age aged_65_older aged_70_older gdp_per_capita extreme_poverty cardiovasc_death_rate diabetes_prevalence female_smokers male_smokers handwashing_facilities hospital_beds_per_thousand life_expectancy human_development_index
FJI Oceania Fiji 2020-11-16 35.0 0.0 0.143 2.0 0.0 0.0 39.043 0.0 0.159 2.231 0.0 0.0 null null null null null null null null null null null null null 120.0 0.134 1.0e-3 839.2 null 49.07 896444.0 49.562 28.6 6.224 3.284 8702.975 1.4 412.82 14.49 10.2 34.8 null 2.3 67.44 0.741
FIN Europe Finland 2020-04-08 2487.0 179.0 148.714 40.0 6.0 3.286 448.859 32.306 26.84 7.219 1.083 0.593 1.24 82.0 14.8 239.0 43.135 null null null null 41461.0 3295.0 7.483 0.595 2332.0 0.421 6.4e-2 15.7 null 67.59 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-09-11 8512.0 43.0 41.0 337.0 0.0 0.143 1536.263 7.761 7.4 60.822 0.0 2.6e-2 1.3 1.0 0.18 8.0 1.444 null null null null 883388.0 14441.0 159.436 2.606 12099.0 2.184 3.0e-3 295.1 null 32.41 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
GMB Africa Gambia 2020-06-13 28.0 0.0 0.286 1.0 0.0 0.0 11.586 0.0 0.118 0.414 0.0 0.0 null null null null null null null null null null null null null null null null null null 74.07 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GMB Africa Gambia 2020-06-21 37.0 0.0 1.286 2.0 0.0 0.143 15.31 0.0 0.532 0.828 0.0 5.9e-2 null null null null null null null null null null null null null null null null null null 74.07 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GEO Asia Georgia 2020-11-13 73154.0 3473.0 3023.0 636.0 37.0 30.429 18338.128 870.606 757.801 159.431 9.275 7.628 1.25 null null null null null null null null null null null null null null null null null 64.81 3989175.0 65.032 38.7 14.864 10.244 9745.079 4.2 496.218 7.11 5.3 55.5 null 2.6 73.77 0.78
DEU Europe Germany 2020-01-31 5.0 1.0 0.714 0.0 0.0 0.0 6.0e-2 1.2e-2 9.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
DEU Europe Germany 2020-07-04 197198.0 418.0 391.429 9020.0 10.0 7.429 2353.649 4.989 4.672 107.658 0.119 8.9e-2 0.96 null null null null null null null null null null null null 71702.0 0.856 5.0e-3 183.2 null 63.43 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
DEU Europe Germany 2020-08-01 211005.0 606.0 675.286 9154.0 7.0 4.286 2518.442 7.233 8.06 109.257 8.4e-2 5.1e-2 1.22 null null null null null null null null null null null null 83563.0 0.997 8.0e-3 123.7 null 57.87 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
DEU Europe Germany 2020-08-02 211220.0 215.0 650.429 9154.0 0.0 4.286 2521.008 2.566 7.763 109.257 0.0 5.1e-2 1.21 null null null null null null 305.791 3.65 8549377.0 null 102.041 null 83803.0 1.0 8.0e-3 128.8 null 57.87 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
GHA Africa Ghana 2020-04-09 378.0 65.0 24.857 6.0 0.0 0.143 12.165 2.092 0.8 0.193 0.0 5.0e-3 1.28 null null null null null null null null 14611.0 null 0.47 null 1008.0 3.2e-2 2.5e-2 40.6 null 86.11 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-06-03 8548.0 251.0 177.857 38.0 0.0 0.571 275.095 8.078 5.724 1.223 0.0 1.8e-2 1.21 null null null null null null null null 226741.0 3676.0 7.297 0.118 2630.0 8.5e-2 6.8e-2 14.8 null 56.48 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-11-27 51225.0 0.0 84.857 323.0 0.0 0.0 1648.54 0.0 2.731 10.395 0.0 0.0 null null null null null null null null null 592285.0 1100.0 19.061 3.5e-2 1705.0 5.5e-2 5.0e-2 20.1 null null 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GRC Europe Greece 2020-03-14 228.0 38.0 26.0 3.0 2.0 0.429 21.875 3.646 2.494 0.288 0.192 4.1e-2 1.33 null null null null null null null null 3400.0 700.0 0.326 6.7e-2 302.0 2.9e-2 8.6e-2 11.6 null 54.63 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-05-01 2612.0 21.0 17.429 140.0 0.0 1.429 250.598 2.015 1.672 13.432 0.0 0.137 0.81 null null null null null null null null 77251.0 2081.0 7.412 0.2 2263.0 0.217 8.0e-3 129.8 null 84.26 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-07-25 4166.0 31.0 26.143 201.0 0.0 1.0 399.691 2.974 2.508 19.284 0.0 9.6e-2 1.28 null null null null null null null null null null null null 5151.0 0.494 5.0e-3 197.0 null 57.41 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
HTI North America Haiti 2020-09-13 8493.0 15.0 19.0 219.0 0.0 0.714 744.835 1.315 1.666 19.206 0.0 6.3e-2 0.93 null null null null null null null null null null null null null null null null null 21.3 1.1402533e7 398.448 24.3 4.8 2.954 1653.173 23.5 430.548 6.65 2.9 23.1 22.863 0.7 64.0 0.498
HTI North America Haiti 2020-10-17 8956.0 31.0 13.714 231.0 0.0 0.143 785.44 2.719 1.203 20.259 0.0 1.3e-2 0.89 null null null null null null null null null null null null null null null null null 47.22 1.1402533e7 398.448 24.3 4.8 2.954 1653.173 23.5 430.548 6.65 2.9 23.1 22.863 0.7 64.0 0.498
HUN Europe Hungary 2020-03-14 30.0 11.0 3.714 0.0 0.0 0.0 3.105 1.139 0.384 null 0.0 0.0 null null null 29.0 3.002 null null null null 1014.0 156.0 0.105 1.6e-2 99.0 1.0e-2 3.8e-2 26.7 null 50.0 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
ISL Europe Iceland 2020-08-13 1976.0 4.0 6.286 10.0 0.0 0.0 5790.476 11.722 18.42 29.304 0.0 0.0 1.14 0.0 0.0 1.0 2.93 null null null null 81052.0 328.0 237.515 0.961 544.0 1.594 1.2e-2 86.5 null 46.3 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
IND Asia India 2020-04-19 17615.0 1893.0 1201.429 559.0 38.0 32.571 12.764 1.372 0.871 0.405 2.8e-2 2.4e-2 1.54 null null null null null null null null 401586.0 29463.0 0.291 2.1e-2 29405.0 2.1e-2 4.1e-2 24.5 null 100.0 1.380004385e9 450.419 28.2 5.989 3.414 6426.674 21.2 282.28 10.39 1.9 20.6 59.55 0.53 69.66 0.64
IND Asia India 2020-10-18 7550273.0 55722.0 61390.714 114610.0 579.0 780.0 5471.195 40.378 44.486 83.05 0.42 0.565 0.89 null null null null null null null null 9.422419e7 970173.0 68.278 0.703 1049564.0 0.761 5.8e-2 17.1 null 64.35 1.380004385e9 450.419 28.2 5.989 3.414 6426.674 21.2 282.28 10.39 1.9 20.6 59.55 0.53 69.66 0.64
IRN Asia Iran 2020-02-13 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRN Asia Iran 2020-10-29 596941.0 8293.0 6597.714 34113.0 399.0 351.857 7107.037 98.734 78.551 406.141 4.75 4.189 1.37 null null null null null null null null null null null null 30096.0 0.358 0.219 4.6 null 70.83 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRL Europe Ireland 2020-02-18 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 4937796.0 69.874 38.7 13.928 8.678 67335.293 0.2 126.459 3.28 23.0 25.7 null 2.96 82.3 0.938
IRL Europe Ireland 2020-08-14 26995.0 66.0 75.0 1774.0 0.0 0.286 5467.014 13.366 15.189 359.27 0.0 5.8e-2 1.37 8.0 1.62 11.0 2.228 null null null null 699219.0 11337.0 141.605 2.296 5877.0 1.19 1.3e-2 78.4 null 59.72 4937796.0 69.874 38.7 13.928 8.678 67335.293 0.2 126.459 3.28 23.0 25.7 null 2.96 82.3 0.938
IRL Europe Ireland 2020-10-16 47427.0 998.0 960.571 1841.0 3.0 2.857 9604.893 202.114 194.534 372.838 0.608 0.579 1.28 30.0 6.076 244.0 49.415 null null null null 1404220.0 17758.0 284.382 3.596 14312.0 2.898 6.7e-2 14.9 null 61.57 4937796.0 69.874 38.7 13.928 8.678 67335.293 0.2 126.459 3.28 23.0 25.7 null 2.96 82.3 0.938
ISR Asia Israel 2020-02-12 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null 293.0 35.0 3.4e-2 4.0e-3 21.0 2.0e-3 0.0 null null 19.44 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ISR Asia Israel 2020-04-03 7428.0 571.0 627.571 40.0 4.0 4.0 858.179 65.969 72.505 4.621 0.462 0.462 1.28 null null null null null null null null 107350.0 10328.0 12.402 1.193 8281.0 0.957 7.6e-2 13.2 null 87.96 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ISR Asia Israel 2020-04-04 7851.0 423.0 604.571 44.0 4.0 4.571 907.049 48.87 69.848 5.083 0.462 0.528 1.17 null null null null null null null null 113705.0 6355.0 13.137 0.734 8369.0 0.967 7.2e-2 13.8 null 87.96 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ISR Asia Israel 2020-05-19 16659.0 16.0 18.571 278.0 2.0 2.571 1924.663 1.849 2.146 32.118 0.231 0.297 0.51 null null null null null null null null 520606.0 7142.0 60.147 0.825 6193.0 0.715 3.0e-3 333.5 null 77.78 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ITA Europe Italy 2020-03-19 41035.0 5322.0 3703.143 3405.0 427.0 341.286 678.693 88.022 61.248 56.317 7.062 5.645 1.79 2498.0 41.315 18255.0 301.926 null null null null 182777.0 17236.0 3.023 0.285 13824.0 0.229 0.268 3.7 null 85.19 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
ITA Europe Italy 2020-07-14 243344.0 114.0 198.286 34984.0 17.0 12.143 4024.754 1.885 3.28 578.613 0.281 0.201 0.93 60.0 0.992 837.0 13.843 null null null null 6004611.0 41867.0 99.312 0.692 42991.0 0.711 5.0e-3 216.8 null 58.33 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
JPN Asia Japan 2020-02-04 22.0 2.0 2.143 0.0 0.0 0.0 0.174 1.6e-2 1.7e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JPN Asia Japan 2020-09-20 79142.0 480.0 499.429 1508.0 4.0 8.571 625.745 3.795 3.949 11.923 3.2e-2 6.8e-2 0.89 null null null null null null null null 1650837.0 6153.0 13.053 4.9e-2 17218.0 0.136 2.9e-2 34.5 null 38.89 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JPN Asia Japan 2020-09-27 82186.0 483.0 434.857 1549.0 2.0 5.857 649.813 3.819 3.438 12.247 1.6e-2 4.6e-2 1.01 null null null null null null null null 1746545.0 4550.0 13.809 3.6e-2 13673.0 0.108 3.2e-2 31.4 null 33.33 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
KAZ Asia Kazakhstan 2020-06-20 17225.0 446.0 426.714 118.0 5.0 6.429 917.36 23.753 22.726 6.284 0.266 0.342 1.18 null null null null null null null null 1302094.0 32506.0 69.346 1.731 27596.0 1.47 1.5e-2 64.7 null 81.02 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-06-22 18231.0 499.0 434.143 127.0 7.0 6.571 970.937 26.575 23.121 6.764 0.373 0.35 1.15 null null null null null null null null 1354456.0 23879.0 72.135 1.272 27669.0 1.474 1.6e-2 63.7 null 81.02 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-08-18 121973.0 334.0 1210.286 1635.0 148.0 28.857 6495.974 17.788 64.457 87.076 7.882 1.537 0.55 null null null null null null null null 2342049.0 7942.0 124.732 0.423 15018.0 0.8 8.1e-2 12.4 null 79.63 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-08-25 127462.0 0.0 784.143 1781.0 0.0 20.857 6788.304 0.0 41.761 94.852 0.0 1.111 0.54 null null null null null null null null 2434444.0 7257.0 129.652 0.386 13199.0 0.703 5.9e-2 16.8 null 79.63 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KWT Asia Kuwait 2020-11-28 142195.0 319.0 351.571 875.0 1.0 1.714 33296.547 74.697 82.324 204.891 0.234 0.401 null null null null null null null null null 1086669.0 4242.0 254.456 0.993 5538.0 1.297 6.3e-2 15.8 null 62.96 4270563.0 232.128 33.7 2.345 1.114 65530.537 null 132.235 15.84 2.7 37.0 null 2.0 75.49 0.803
KGZ Asia Kyrgyzstan 2020-11-11 64360.0 0.0 435.857 1188.0 0.0 3.0 9864.825 0.0 66.806 182.092 0.0 0.46 1.04 null null null null null null null null null null null null null null null null null 56.02 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
KGZ Asia Kyrgyzstan 2020-11-26 71548.0 377.0 461.714 1256.0 5.0 5.571 10966.57 57.785 70.77 192.514 0.766 0.854 null null null null null null null null null null null null null null null null null null 56.02 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
LAO Asia Laos 2020-02-04 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LAO Asia Laos 2020-05-31 19.0 0.0 0.0 0.0 0.0 0.0 2.611 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 56.48 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LAO Asia Laos 2020-11-02 24.0 0.0 0.0 0.0 0.0 0.0 3.299 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 33.33 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LVA Europe Latvia 2020-07-07 1134.0 7.0 2.286 30.0 0.0 0.0 601.208 3.711 1.212 15.905 0.0 0.0 1.35 null null 5.0 2.651 null null null null 160281.0 1763.0 84.976 0.935 1349.0 0.715 2.0e-3 590.1 null 50.0 1886202.0 31.212 43.9 19.754 14.136 25063.846 0.7 350.06 4.91 25.6 51.0 null 5.57 75.29 0.847
LVA Europe Latvia 2020-11-22 13120.0 376.0 367.571 153.0 0.0 4.286 6955.777 199.342 194.874 81.115 0.0 2.272 null null null 416.0 220.549 40.279 21.355 322.232 170.836 576647.0 4079.0 305.719 2.163 5412.0 2.869 6.8e-2 14.7 null 57.41 1886202.0 31.212 43.9 19.754 14.136 25063.846 0.7 350.06 4.91 25.6 51.0 null 5.57 75.29 0.847
LBN Asia Lebanon 2020-09-17 26768.0 685.0 618.714 263.0 4.0 6.286 3921.797 100.36 90.648 38.532 0.586 0.921 1.17 null null null null null null null null null null null null null null null null null 61.11 6825442.0 594.561 31.1 8.514 5.43 13367.565 null 266.591 12.71 26.9 40.7 null 2.9 78.93 0.757
LBR Africa Liberia 2020-10-10 1363.0 3.0 2.286 82.0 0.0 0.0 269.491 0.593 0.452 16.213 0.0 0.0 0.99 null null null null null null null null null null null null null null null null null 57.41 5057677.0 49.127 19.2 3.057 1.756 752.788 38.6 272.509 2.42 1.5 18.1 1.188 0.8 64.1 0.435
LUX Europe Luxembourg 2020-02-29 1.0 1.0 0.143 0.0 0.0 0.0 1.598 1.598 0.228 null 0.0 0.0 null 0.0 0.0 null null null null null null 17.0 1.0 2.7e-2 2.0e-3 null null null null null 0.0 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
LUX Europe Luxembourg 2020-05-09 3877.0 6.0 9.286 101.0 1.0 1.286 6193.528 9.585 14.834 161.348 1.598 2.054 0.63 14.0 22.365 82.0 130.995 null null null null 53114.0 737.0 84.85 1.177 1053.0 1.682 9.0e-3 113.4 null 70.37 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
LUX Europe Luxembourg 2020-05-10 3886.0 9.0 8.857 101.0 0.0 0.714 6207.906 14.378 14.149 161.348 0.0 1.141 0.64 18.0 28.755 77.0 123.008 null null null null 53326.0 212.0 85.189 0.339 1050.0 1.677 8.0e-3 118.6 null 70.37 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
LUX Europe Luxembourg 2020-06-08 4040.0 1.0 3.0 110.0 0.0 0.0 6453.922 1.598 4.793 175.726 0.0 0.0 1.01 2.0 3.195 20.0 31.95 null null null null 90406.0 2245.0 144.424 3.586 1782.0 2.847 2.0e-3 594.0 null 43.52 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
MWI Africa Malawi 2020-07-25 3453.0 0.0 91.857 87.0 0.0 4.571 180.502 0.0 4.802 4.548 0.0 0.239 1.02 null null null null null null null null 26602.0 389.0 1.391 2.0e-2 410.0 2.1e-2 0.224 4.5 null 60.19 1.9129955e7 197.519 18.1 2.979 1.783 1095.042 71.4 227.349 3.94 4.4 24.7 8.704 1.3 64.26 0.477
MWI Africa Malawi 2020-08-08 4624.0 49.0 62.571 143.0 6.0 3.286 241.715 2.561 3.271 7.475 0.314 0.172 0.94 null null null null null null null null 34443.0 392.0 1.8 2.0e-2 502.0 2.6e-2 0.125 8.0 null 64.81 1.9129955e7 197.519 18.1 2.979 1.783 1095.042 71.4 227.349 3.94 4.4 24.7 8.704 1.3 64.26 0.477
MYS Asia Malaysia 2020-07-04 8658.0 10.0 6.0 121.0 0.0 0.0 267.503 0.309 0.185 3.738 0.0 0.0 0.75 null null null null null null null null 797796.0 6937.0 24.649 0.214 8334.0 0.257 1.0e-3 1389.0 null 50.93 3.2365998e7 96.254 29.9 6.293 3.407 26808.164 0.1 260.942 16.74 1.0 42.4 null 1.9 76.16 0.802
MLI Africa Mali 2020-03-03 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2.0250834e7 15.196 16.4 2.519 1.486 2014.306 null 268.024 2.42 1.6 23.0 52.232 0.1 59.31 0.427
MLT Europe Malta 2020-08-02 860.0 15.0 22.857 9.0 0.0 0.0 1947.733 33.972 51.767 20.383 0.0 0.0 1.27 null null null null 0.0 0.0 7.157 16.209 131600.0 1437.0 298.048 3.255 1515.0 3.431 1.5e-2 66.3 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MLT Europe Malta 2020-10-29 5866.0 106.0 104.143 59.0 3.0 1.429 13285.35 240.069 235.863 133.624 6.794 3.235 1.02 null null null null null null null null 332583.0 3075.0 753.236 6.964 3019.0 6.837 3.4e-2 29.0 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MLT Europe Malta 2020-12-01 9975.0 102.0 119.714 141.0 4.0 3.429 22591.436 231.01 271.13 319.338 9.059 7.765 null null null null null null null null null null null null null null null null null null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MUS Africa Mauritius 2020-07-07 342.0 0.0 0.143 10.0 0.0 0.0 268.917 0.0 0.112 7.863 0.0 0.0 6.0e-2 null null null null null null null null null null null null null null null null null 22.22 1271767.0 622.962 37.4 10.945 5.884 20292.745 0.5 224.644 22.02 3.2 40.7 null 3.4 74.99 0.79
MUS Africa Mauritius 2020-10-09 395.0 0.0 1.429 10.0 0.0 0.0 310.591 0.0 1.123 7.863 0.0 0.0 0.69 null null null null null null null null null null null null null null null null null 16.67 1271767.0 622.962 37.4 10.945 5.884 20292.745 0.5 224.644 22.02 3.2 40.7 null 3.4 74.99 0.79
MDA Europe Moldova 2020-08-31 36920.0 220.0 441.714 995.0 3.0 7.143 9152.29 54.537 109.499 246.656 0.744 1.771 1.03 null null null null null null null null null null null null null null null null null 57.41 4033963.0 123.655 37.6 10.864 6.955 5189.972 0.2 408.502 5.72 5.9 44.6 86.979 5.8 71.9 0.7
MDA Europe Moldova 2020-10-10 61762.0 929.0 839.143 1458.0 16.0 15.0 15310.502 230.295 208.019 361.431 3.966 3.718 1.05 null null null null null null null null null null null null null null null null null 48.15 4033963.0 123.655 37.6 10.864 6.955 5189.972 0.2 408.502 5.72 5.9 44.6 86.979 5.8 71.9 0.7
MNG Asia Mongolia 2020-04-07 15.0 0.0 0.429 0.0 0.0 0.0 4.576 0.0 0.131 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 65.74 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
TLS Asia Timor 2020-09-27 27.0 0.0 0.0 0.0 0.0 0.0 20.479 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 29.63 1318442.0 87.176 18.0 3.556 1.897 6570.102 30.3 335.346 6.86 6.3 78.1 28.178 5.9 69.5 0.625
TGO Africa Togo 2020-05-25 386.0 5.0 8.0 13.0 1.0 0.143 46.625 0.604 0.966 1.57 0.121 1.7e-2 1.04 null null null null null null null null 17066.0 302.0 2.061 3.6e-2 514.0 6.2e-2 1.6e-2 64.2 null 73.15 8278737.0 143.366 19.4 2.839 1.525 1429.813 49.2 280.033 6.15 0.9 14.2 10.475 0.7 61.04 0.503
TUN Africa Tunisia 2020-04-10 671.0 28.0 25.143 25.0 0.0 1.0 56.775 2.369 2.127 2.115 0.0 8.5e-2 0.93 null null null null null null null null 11238.0 562.0 0.951 4.8e-2 679.0 5.7e-2 3.7e-2 27.0 null 90.74 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUR Asia Turkey 2020-03-12 1.0 0.0 0.143 0.0 0.0 0.0 1.2e-2 0.0 2.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 23.15 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
TUR Asia Turkey 2020-10-23 357693.0 2165.0 1962.571 9658.0 74.0 72.143 4241.131 25.67 23.27 114.514 0.877 0.855 1.17 null null null null null null null null 1.2992246e7 115979.0 154.048 1.375 113924.0 1.351 1.7e-2 58.0 null 68.06 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
UGA Africa Uganda 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-08-01 1176.0 22.0 10.429 4.0 1.0 0.429 25.71 0.481 0.228 8.7e-2 2.2e-2 9.0e-3 1.29 null null null null null null null null null null null null 2512.0 5.5e-2 4.0e-3 240.9 null 76.85 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-10-21 10933.0 145.0 123.429 98.0 1.0 0.429 239.02 3.17 2.698 2.142 2.2e-2 9.0e-3 1.04 null null null null null null null null 529236.0 1886.0 11.57 4.1e-2 2045.0 4.5e-2 6.0e-2 16.6 null 61.11 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UKR Europe Ukraine 2020-06-13 31177.0 762.0 582.286 890.0 10.0 15.0 712.882 17.424 13.314 20.35 0.229 0.343 1.2 null null null null null null null null 479111.0 10939.0 10.955 0.25 9224.0 0.211 6.3e-2 15.8 null 76.39 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
UKR Europe Ukraine 2020-09-04 134069.0 2769.0 2413.857 2812.0 53.0 44.714 3065.572 63.315 55.194 64.298 1.212 1.022 1.14 null null null null null null null null null null null null 21895.0 0.501 0.11 9.1 null 64.35 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
UKR Europe Ukraine 2020-10-02 223376.0 4751.0 3820.714 4357.0 69.0 63.857 5107.633 108.635 87.363 99.626 1.578 1.46 1.18 null null null null null null null null 2337942.0 29527.0 53.459 0.675 25898.0 0.592 0.148 6.8 null 58.8 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
ARE Asia United Arab Emirates 2020-03-19 140.0 27.0 7.857 0.0 0.0 0.0 14.155 2.73 0.794 null 0.0 0.0 1.5 null null null null null null null null 114569.0 13857.0 11.584 1.401 5863.0 0.593 1.0e-3 746.2 null 45.37 9890400.0 112.442 34.0 1.144 0.526 67293.483 null 317.84 17.26 1.2 37.4 null 1.2 77.97 0.863
ARE Asia United Arab Emirates 2020-07-06 52068.0 528.0 546.0 324.0 1.0 1.429 5264.499 53.385 55.205 32.759 0.101 0.144 1.05 null null null null null null null null 3890424.0 51430.0 393.354 5.2 50542.0 5.11 1.1e-2 92.6 null 43.52 9890400.0 112.442 34.0 1.144 0.526 67293.483 null 317.84 17.26 1.2 37.4 null 1.2 77.97 0.863
ARE Asia United Arab Emirates 2020-10-21 119132.0 1538.0 1299.0 472.0 2.0 3.143 12045.216 155.504 131.339 47.723 0.202 0.318 1.08 null null null null null null null null 1.1988391e7 105740.0 1212.124 10.691 110243.0 11.146 1.2e-2 84.9 null 50.93 9890400.0 112.442 34.0 1.144 0.526 67293.483 null 317.84 17.26 1.2 37.4 null 1.2 77.97 0.863
ARE Asia United Arab Emirates 2020-11-19 155254.0 1153.0 1217.0 544.0 2.0 3.0 15697.444 116.578 123.049 55.003 0.202 0.303 1.01 null null null null null null null null 1.5405022e7 120041.0 1557.573 12.137 114706.0 11.598 1.1e-2 94.3 null 45.37 9890400.0 112.442 34.0 1.144 0.526 67293.483 null 317.84 17.26 1.2 37.4 null 1.2 77.97 0.863
GBR Europe United Kingdom 2020-08-16 320343.0 1111.0 1109.857 41451.0 5.0 12.571 4718.837 16.366 16.349 610.597 7.4e-2 0.185 1.04 78.0 1.149 917.0 13.508 null null 718.105 10.578 1.1978298e7 162256.0 176.447 2.39 160168.0 2.359 7.0e-3 144.3 null 66.2 6.7886004e7 272.898 40.8 18.517 12.527 39753.244 0.2 122.137 4.28 20.0 24.7 null 2.54 81.32 0.922
USA North America United States 2020-08-12 5183020.0 56796.0 53010.714 166087.0 1506.0 1026.429 15658.545 171.588 160.152 501.769 4.55 3.101 0.93 9555.0 28.867 47949.0 144.86 null null null null 7.4717483e7 985955.0 225.731 2.979 855780.0 2.585 6.0e-2 16.7 null 67.13 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
URY South America Uruguay 2020-09-03 1636.0 10.0 12.143 44.0 0.0 0.143 470.964 2.879 3.496 12.667 0.0 4.1e-2 1.11 null null null null null null null null 178629.0 null 51.423 null 1787.0 0.514 7.0e-3 147.2 null 32.41 3473727.0 19.751 35.6 14.655 10.361 20551.409 0.1 160.708 6.93 14.0 19.9 null 2.8 77.91 0.804
UZB Asia Uzbekistan 2020-03-05 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 16.67 3.3469199e7 76.134 28.2 4.469 2.873 6253.104 null 724.417 7.57 1.3 24.7 null 4.0 71.72 0.71
YEM Asia Yemen 2020-05-12 65.0 9.0 6.143 10.0 1.0 0.857 2.179 0.302 0.206 0.335 3.4e-2 2.9e-2 null null null null null null null null null null null null null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452
YEM Asia Yemen 2020-08-29 1946.0 3.0 5.571 563.0 0.0 2.429 65.245 0.101 0.187 18.876 0.0 8.1e-2 0.83 null null null null null null null null null null null null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452
YEM Asia Yemen 2020-10-25 2060.0 0.0 0.571 599.0 0.0 0.286 69.067 0.0 1.9e-2 20.083 0.0 1.0e-2 0.74 null null null null null null null null null null null null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452
YEM Asia Yemen 2020-11-14 2072.0 0.0 0.286 605.0 0.0 0.429 69.47 0.0 1.0e-2 20.284 0.0 1.4e-2 0.8 null null null null null null null null null null null null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452
ZMB Africa Zambia 2020-10-27 16243.0 43.0 37.286 348.0 0.0 0.286 883.542 2.339 2.028 18.93 0.0 1.6e-2 0.91 null null null null null null null null 241276.0 3566.0 13.124 0.194 3790.0 0.206 1.0e-2 101.6 null 45.37 1.8383956e7 22.995 17.7 2.48 1.542 3689.251 57.5 234.499 3.94 3.1 24.7 13.938 2.0 63.89 0.588
ZWE Africa Zimbabwe 2020-03-24 3.0 0.0 0.429 1.0 0.0 0.143 0.202 0.0 2.9e-2 6.7e-2 0.0 1.0e-2 null null null null null null null null null null null null null null null null null null 56.48 1.4862927e7 42.729 19.6 2.822 1.882 1899.775 21.4 307.846 1.82 1.6 30.7 36.791 1.7 61.49 0.535
ZWE Africa Zimbabwe 2020-09-04 6837.0 159.0 64.143 206.0 0.0 1.571 460.004 10.698 4.316 13.86 0.0 0.106 1.02 null null null null null null null null 103790.0 919.0 6.983 6.2e-2 931.0 6.3e-2 6.9e-2 14.5 null 80.56 1.4862927e7 42.729 19.6 2.822 1.882 1899.775 21.4 307.846 1.82 1.6 30.7 36.791 1.7 61.49 0.535
ALB Europe Albania 2020-10-02 13965.0 159.0 131.429 389.0 1.0 2.286 4852.665 55.251 45.67 135.173 0.347 0.794 1.08 null null null null null null null null null null null null null null null null null 54.63 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
DZA Africa Algeria 2020-03-29 511.0 57.0 44.286 31.0 2.0 2.0 11.653 1.3 1.01 0.707 4.6e-2 4.6e-2 1.73 null null null null null null null null null null null null null null null null null 75.0 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
DZA Africa Algeria 2020-08-27 43016.0 397.0 394.0 1475.0 10.0 9.143 980.957 9.053 8.985 33.637 0.228 0.208 0.91 null null null null null null null null null null null null null null null null null 79.63 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
ARG South America Argentina 2020-11-16 1318384.0 7893.0 9697.857 35727.0 291.0 260.0 29170.513 174.64 214.574 790.494 6.439 5.753 0.94 null null null null null null null null null null null null null null null null null 79.17 4.5195777e7 16.177 31.9 11.198 7.441 18933.907 0.6 191.032 5.5 16.2 27.7 null 5.0 76.67 0.825
AUS Oceania Australia 2020-04-09 6108.0 98.0 141.714 51.0 1.0 3.857 239.531 3.843 5.557 2.0 3.9e-2 0.151 0.58 null null null null null null null null 330134.0 10766.0 12.946 0.422 9970.0 0.391 1.4e-2 70.4 null 73.15 2.5499881e7 3.202 37.9 15.504 10.129 44648.71 0.5 107.791 5.07 13.0 16.5 null 3.84 83.44 0.939
AUS Oceania Australia 2020-04-24 6677.0 15.0 22.143 79.0 4.0 1.857 261.844 0.588 0.868 3.098 0.157 7.3e-2 0.41 null null null null null null null null 482370.0 15711.0 18.917 0.616 12977.0 0.509 2.0e-3 586.1 null 69.44 2.5499881e7 3.202 37.9 15.504 10.129 44648.71 0.5 107.791 5.07 13.0 16.5 null 3.84 83.44 0.939
AUS Oceania Australia 2020-10-10 27263.0 19.0 18.286 898.0 1.0 0.571 1069.142 0.745 0.717 35.216 3.9e-2 2.2e-2 0.97 null null null null null null null null null null null null 33551.0 1.316 1.0e-3 1834.8 null 68.06 2.5499881e7 3.202 37.9 15.504 10.129 44648.71 0.5 107.791 5.07 13.0 16.5 null 3.84 83.44 0.939
AUT Europe Austria 2020-03-19 2013.0 367.0 244.429 6.0 2.0 0.714 223.508 40.749 27.139 0.666 0.222 7.9e-2 2.43 null null null null null null null null 13724.0 1747.0 1.524 0.194 1122.0 0.125 0.218 4.6 null 81.48 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-08-04 21481.0 96.0 114.857 719.0 1.0 0.857 2385.082 10.659 12.753 79.832 0.111 9.5e-2 0.99 23.0 2.554 84.0 9.327 null null null null 923902.0 7124.0 102.583 0.791 7614.0 0.845 1.5e-2 66.3 null 35.19 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-08-26 26033.0 327.0 278.429 733.0 0.0 0.571 2890.5 36.308 30.915 81.387 0.0 6.3e-2 1.18 23.0 2.554 118.0 13.102 null null null null 1119199.0 9110.0 124.267 1.012 10140.0 1.126 2.7e-2 36.4 null 35.19 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AZE Asia Azerbaijan 2020-06-26 15369.0 517.0 514.571 187.0 7.0 6.286 1515.804 50.99 50.751 18.443 0.69 0.62 1.2 null null null null null null null null null null null null null null null null null 96.3 1.0139175e7 119.309 32.4 6.018 3.871 15847.419 null 559.812 7.11 0.3 42.5 83.241 4.7 73.0 0.757
AZE Asia Azerbaijan 2020-07-08 21916.0 542.0 543.429 274.0 9.0 7.714 2161.517 53.456 53.597 27.024 0.888 0.761 1.02 null null null null null null null null null null null null null null null null null 96.3 1.0139175e7 119.309 32.4 6.018 3.871 15847.419 null 559.812 7.11 0.3 42.5 83.241 4.7 73.0 0.757
BHS North America Bahamas 2020-09-29 3903.0 65.0 62.286 91.0 2.0 2.0 9925.035 165.29 158.388 231.406 5.086 5.086 1.19 null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHS North America Bahamas 2020-10-13 5163.0 0.0 86.286 108.0 0.0 1.143 13129.12 0.0 219.418 274.636 0.0 2.906 1.09 null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHR Asia Bahrain 2020-03-07 85.0 25.0 6.286 0.0 0.0 0.0 49.953 14.692 3.694 null 0.0 0.0 null null null null null null null null null 6420.0 null 3.773 null null null null null null 30.56 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-07-09 31528.0 597.0 527.286 103.0 5.0 1.286 18528.629 350.85 309.88 60.532 2.938 0.756 1.03 null null null null null null null null null null null null 10160.0 5.971 5.2e-2 19.3 null 69.44 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-10-21 78907.0 374.0 326.571 308.0 3.0 3.0 46372.701 219.795 191.922 181.008 1.763 1.763 0.89 null null null null null null null null 1638436.0 10360.0 962.889 6.088 10057.0 5.91 3.2e-2 30.8 null 63.89 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-11-14 84523.0 174.0 179.857 333.0 1.0 0.571 49673.157 102.258 105.7 195.7 0.588 0.336 0.87 null null null null null null null null 1885616.0 8435.0 1108.154 4.957 10218.0 6.005 1.8e-2 56.8 null 58.33 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BGD Asia Bangladesh 2020-04-26 5416.0 418.0 422.857 145.0 5.0 7.714 32.886 2.538 2.568 0.88 3.0e-2 4.7e-2 1.44 null null null null null null null null 50401.0 3812.0 0.306 2.3e-2 3400.0 2.1e-2 0.124 8.0 null 93.52 1.64689383e8 1265.036 27.5 5.098 3.262 3523.984 14.8 298.003 8.38 1.0 44.7 34.808 0.8 72.59 0.608
BRB North America Barbados 2020-08-07 138.0 5.0 4.0 7.0 0.0 0.0 480.215 17.399 13.919 24.359 0.0 0.0 0.62 null null null null null null null null null null null null null null null null null 48.15 287371.0 664.463 39.8 14.952 9.473 16978.068 null 170.05 13.57 1.9 14.5 88.469 5.8 79.19 0.8
BLR Europe Belarus 2020-02-16 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 9449321.0 46.858 40.3 14.799 9.788 17167.967 null 443.129 5.18 10.5 46.1 null 11.0 74.79 0.808
BLR Europe Belarus 2020-07-01 62424.0 306.0 354.143 398.0 6.0 5.143 6606.189 32.383 37.478 42.119 0.635 0.544 0.72 null null null null null null null null null null null null 16577.0 1.754 2.1e-2 46.8 null 16.67 9449321.0 46.858 40.3 14.799 9.788 17167.967 null 443.129 5.18 10.5 46.1 null 11.0 74.79 0.808
BEL Europe Belgium 2020-04-17 36138.0 1329.0 1353.0 5163.0 306.0 306.286 3118.136 114.672 116.742 445.485 26.403 26.428 1.02 1119.0 96.552 5088.0 439.014 null null null null 198449.0 11300.0 17.123 0.975 9046.0 0.781 0.15 6.7 null 81.48 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-06-19 60476.0 128.0 93.857 9695.0 12.0 7.0 5218.119 11.044 8.098 836.525 1.035 0.604 0.87 50.0 4.314 308.0 26.576 null null null null 1133205.0 13395.0 97.778 1.156 12647.0 1.091 7.0e-3 134.7 null 51.85 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEN Africa Benin 2020-04-25 54.0 0.0 2.714 1.0 0.0 0.0 4.454 0.0 0.224 8.2e-2 0.0 0.0 null null null null null null null null null null null null null null null null null null 70.83 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BIH Europe Bosnia and Herzegovina 2020-05-26 2416.0 10.0 13.571 149.0 3.0 2.143 736.402 3.048 4.137 45.416 0.914 0.653 1.16 null null null null null null null null null null null null null null null null null 71.3 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BWA Africa Botswana 2020-04-17 15.0 0.0 0.286 1.0 0.0 0.0 6.379 0.0 0.121 0.425 0.0 0.0 null null null null null null null null null null null null null null null null null null 86.11 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BWA Africa Botswana 2020-08-24 1562.0 254.0 36.286 3.0 0.0 0.0 664.222 108.01 15.43 1.276 0.0 0.0 0.78 null null null null null null null null null null null null null null null null null 47.22 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BRA South America Brazil 2020-06-15 888271.0 20647.0 25837.0 43959.0 627.0 975.0 4178.931 97.135 121.552 206.808 2.95 4.587 1.15 null null null null null null null null null null null null null null null null null 77.31 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-07-30 2610102.0 57837.0 46089.571 91263.0 1129.0 1025.857 12279.4 272.098 216.831 429.353 5.311 4.826 1.06 null null null null null null null null null null null null 67066.0 0.316 null null null 72.69 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-11-29 6314740.0 24468.0 34762.714 172833.0 272.0 521.429 29708.118 115.111 163.544 813.104 1.28 2.453 null null null null null null null null null null null null null null null null null null null 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRN Asia Brunei 2020-02-24 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BRN Asia Brunei 2020-05-21 141.0 0.0 0.0 1.0 0.0 0.0 322.298 0.0 0.0 2.286 0.0 0.0 1.0e-2 null null null null null null null null null null null null null null null null null 52.78 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BGR Europe Bulgaria 2020-07-21 9254.0 325.0 229.857 313.0 5.0 4.286 1331.809 46.773 33.08 45.046 0.72 0.617 1.11 34.0 4.893 624.0 89.804 null null null null 215572.0 9051.0 31.024 1.303 5128.0 0.738 4.5e-2 22.3 null 36.11 6948445.0 65.18 44.7 20.801 13.272 18563.307 1.5 424.688 5.81 30.1 44.4 null 7.454 75.05 0.813
BFA Africa Burkina Faso 2020-10-09 2254.0 13.0 18.714 60.0 0.0 0.143 107.83 0.622 0.895 2.87 0.0 7.0e-3 0.97 null null null null null null null null null null null null null null null null null 36.11 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BFA Africa Burkina Faso 2020-11-29 2856.0 40.0 17.286 68.0 0.0 0.0 136.629 1.914 0.827 3.253 0.0 0.0 null null null null null null null null null null null null null null null null null null 22.22 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
KHM Asia Cambodia 2020-04-12 122.0 2.0 1.143 0.0 0.0 0.0 7.297 0.12 6.8e-2 null 0.0 0.0 0.11 null null null null null null null null null null null null null null null null null 68.52 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-04-22 122.0 0.0 0.0 0.0 0.0 0.0 7.297 0.0 0.0 null 0.0 0.0 6.0e-2 null null null null null null null null null null null null null null null null null 57.41 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-06-02 125.0 0.0 0.143 0.0 0.0 0.0 7.477 0.0 9.0e-3 null 0.0 0.0 5.0e-2 null null null null null null null null null null null null null null null null null 40.74 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-10-08 281.0 0.0 0.429 0.0 0.0 0.0 16.807 0.0 2.6e-2 null 0.0 0.0 0.55 null null null null null null null null null null null null null null null null null 37.04 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-10-25 287.0 0.0 0.571 0.0 0.0 0.0 17.166 0.0 3.4e-2 null 0.0 0.0 0.82 null null null null null null null null null null null null null null null null null 34.26 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
CPV Africa Cape Verde 2020-08-22 3455.0 43.0 41.714 37.0 0.0 0.429 6214.163 77.34 75.027 66.548 0.0 0.771 1.07 null null null null null null null null null null null null null null null null null 65.28 555988.0 135.58 25.7 4.46 3.437 6222.554 null 182.219 2.42 2.1 16.5 null 2.1 72.98 0.654
CHL South America Chile 2020-10-25 502063.0 1521.0 1471.857 13944.0 52.0 44.143 26263.733 79.566 76.995 729.433 2.72 2.309 0.97 null null null null null null null null 4111528.0 38473.0 215.081 2.013 32087.0 1.679 4.6e-2 21.8 null 81.94 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHL South America Chile 2020-10-31 510256.0 1685.0 1387.714 14207.0 49.0 45.0 26692.322 88.145 72.594 743.191 2.563 2.354 0.98 null null null null null null null null 4300738.0 39258.0 224.979 2.054 32526.0 1.701 4.3e-2 23.4 null 81.94 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHN Asia China 2020-08-16 89375.0 96.0 83.143 4703.0 0.0 2.429 62.095 6.7e-2 5.8e-2 3.268 0.0 2.0e-3 0.69 null null null null null null null null null null null null null null null null null 78.24 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
CHN Asia China 2020-10-31 91366.0 27.0 34.0 4739.0 0.0 0.0 63.478 1.9e-2 2.4e-2 3.293 0.0 0.0 1.13 null null null null null null null null null null null null null null null null null 63.43 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
CHN Asia China 2020-11-21 92037.0 60.0 29.857 4742.0 0.0 0.0 63.945 4.2e-2 2.1e-2 3.295 0.0 0.0 null null null null null null null null null null null null null null null null null null 76.39 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
COL South America Colombia 2020-03-19 108.0 6.0 14.143 0.0 0.0 0.0 2.123 0.118 0.278 null 0.0 0.0 1.86 null null null null null null null null 5363.0 673.0 0.105 1.3e-2 567.0 1.1e-2 null null null 50.93 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-05-01 7006.0 499.0 303.571 314.0 21.0 12.714 137.689 9.807 5.966 6.171 0.413 0.25 1.36 null null null null null null null null 108950.0 4293.0 2.141 8.4e-2 4424.0 8.7e-2 null null null 90.74 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-07-14 159898.0 5621.0 5057.714 5625.0 170.0 180.857 3142.471 110.469 99.399 110.548 3.341 3.554 1.25 null null null null null null null null 1082415.0 25601.0 21.273 0.503 25730.0 0.506 null null null 87.04 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-10-07 877684.0 7876.0 6857.857 27180.0 163.0 168.857 17249.101 154.787 134.777 534.168 3.203 3.319 1.04 null null null null null null null null 3526959.0 25357.0 69.315 0.498 25665.0 0.504 null null null 71.3 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COM Africa Comoros 2020-03-22 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COM Africa Comoros 2020-06-25 272.0 7.0 8.857 7.0 0.0 0.286 312.789 8.05 10.185 8.05 0.0 0.329 0.72 null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COM Africa Comoros 2020-08-20 417.0 11.0 2.571 7.0 0.0 0.0 479.534 12.65 2.957 8.05 0.0 0.0 0.66 null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COM Africa Comoros 2020-10-04 487.0 0.0 1.286 7.0 0.0 0.0 560.031 0.0 1.479 8.05 0.0 0.0 0.65 null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
CRI North America Costa Rica 2020-03-31 347.0 17.0 24.286 2.0 0.0 0.0 68.118 3.337 4.767 0.393 0.0 0.0 1.01 null null null null null null null null 3905.0 153.0 0.767 3.0e-2 293.0 5.8e-2 null null null 71.3 5094114.0 96.079 33.6 9.468 5.694 15524.995 1.3 137.973 8.78 6.4 17.4 83.841 1.13 80.28 0.794
CYP Europe Cyprus 2020-04-10 595.0 31.0 28.429 10.0 0.0 -0.143 679.302 35.392 32.456 11.417 0.0 -0.163 0.98 null null null null null null null null 16299.0 819.0 18.608 0.935 979.0 1.118 2.9e-2 34.4 null 92.59 875899.0 127.657 37.3 13.416 8.563 32415.132 null 141.171 9.24 19.6 52.7 null 3.4 80.98 0.869
CYP Europe Cyprus 2020-05-25 937.0 2.0 2.857 17.0 0.0 0.0 1069.758 2.283 3.262 19.409 0.0 0.0 0.86 null null null null null null null null 103705.0 2128.0 118.398 2.43 2140.0 2.443 1.0e-3 749.0 null 76.85 875899.0 127.657 37.3 13.416 8.563 32415.132 null 141.171 9.24 19.6 52.7 null 3.4 80.98 0.869
CZE Europe Czech Republic 2020-11-08 414828.0 3608.0 10454.857 4858.0 177.0 204.143 38736.455 336.913 976.27 453.638 16.528 19.063 0.8 1199.0 111.962 7787.0 727.147 2035.248 190.051 12831.914 1198.238 2601451.0 13727.0 242.922 1.282 35009.0 3.269 0.299 3.3 null 73.15 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
DNK Europe Denmark 2020-06-29 12951.0 76.0 32.0 605.0 1.0 0.429 2235.937 13.121 5.525 104.451 0.173 7.4e-2 0.98 null null null null null null null null 1046901.0 18718.0 180.743 3.232 15903.0 2.746 2.0e-3 497.0 null 57.41 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DNK Europe Denmark 2020-07-05 13033.0 1.0 22.571 606.0 0.0 0.286 2250.094 0.173 3.897 104.623 0.0 4.9e-2 1.01 6.0 1.036 24.0 4.144 null null 10.974 1.895 1131443.0 9737.0 195.339 1.681 14751.0 2.547 2.0e-3 653.5 null 57.41 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DNK Europe Denmark 2020-09-02 17620.0 111.0 94.0 626.0 1.0 0.429 3042.02 19.164 16.229 108.076 0.173 7.4e-2 1.25 4.0 0.691 15.0 2.59 null null null null 2561895.0 40022.0 442.301 6.91 34773.0 6.003 3.0e-3 369.9 null 50.93 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DJI Africa Djibouti 2020-04-04 50.0 1.0 5.143 0.0 0.0 0.0 50.607 1.012 5.205 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 94.44 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DJI Africa Djibouti 2020-05-31 3354.0 160.0 154.857 24.0 2.0 2.0 3394.73 161.943 156.738 24.291 2.024 2.024 1.27 null null null null null null null null null null null null null null null null null 59.26 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DJI Africa Djibouti 2020-07-20 5020.0 9.0 6.143 56.0 0.0 0.0 5080.961 9.109 6.217 56.68 0.0 0.0 0.66 null null null null null null null null null null null null null null null null null 50.93 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DJI Africa Djibouti 2020-08-14 5367.0 9.0 4.143 59.0 0.0 0.0 5432.175 9.109 4.193 59.716 0.0 0.0 0.44 null null null null null null null null null null null null null null null null null 50.93 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DJI Africa Djibouti 2020-11-19 5658.0 0.0 2.429 61.0 0.0 0.0 5726.709 0.0 2.458 61.741 0.0 0.0 0.63 null null null null null null null null null null null null null null null null null 43.52 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
ECU South America Ecuador 2020-08-13 98343.0 1233.0 1115.143 6010.0 26.0 19.0 5574.033 69.886 63.206 340.644 1.474 1.077 1.04 null null null null null null null null 214477.0 3285.0 12.156 0.186 2875.0 0.163 null null null 76.39 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
ECU South America Ecuador 2020-09-16 121525.0 1972.0 1337.0 10996.0 33.0 42.143 6887.977 111.772 75.781 623.248 1.87 2.389 1.17 null null null null null null null null 302597.0 5210.0 17.151 0.295 3380.0 0.192 null null null 51.39 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
ECU South America Ecuador 2020-10-07 143531.0 1475.0 926.286 11743.0 41.0 55.429 8135.267 83.602 52.501 665.587 2.324 3.142 0.98 null null null null null null null null 384086.0 5215.0 21.77 0.296 3453.0 0.196 null null null 51.39 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
EGY Africa Egypt 2020-06-15 46289.0 1691.0 1549.286 1672.0 97.0 57.286 452.331 16.524 15.139 16.339 0.948 0.56 1.11 null null null null null null null null null null null null null null null null null 71.3 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
SLV North America El Salvador 2020-07-28 15446.0 411.0 409.143 417.0 9.0 9.286 2381.363 63.365 63.079 64.29 1.388 1.432 1.1 null null null null null null null null 234086.0 2402.0 36.09 0.37 2453.0 0.378 0.167 6.0 null 89.81 6486201.0 307.811 27.6 8.273 5.417 7292.458 2.2 167.295 8.87 2.5 18.8 90.65 1.3 73.32 0.674
ERI Africa Eritrea 2020-11-09 491.0 0.0 1.571 0.0 0.0 0.0 138.449 0.0 0.443 null 0.0 0.0 0.39 null null null null null null null null null null null null null null null null null 82.41 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
EST Europe Estonia 2020-03-27 575.0 37.0 41.714 1.0 0.0 0.143 433.459 27.892 31.446 0.754 0.0 0.108 1.41 10.0 7.538 59.0 44.477 null null null null 9652.0 1288.0 7.276 0.971 898.0 0.677 4.6e-2 21.5 null 72.22 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
ETH Africa Ethiopia 2020-04-27 124.0 1.0 1.857 3.0 0.0 0.0 1.079 9.0e-3 1.6e-2 2.6e-2 0.0 0.0 0.38 null null null null null null null null 14588.0 943.0 0.127 8.0e-3 948.0 8.0e-3 2.0e-3 510.5 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
ETH Africa Ethiopia 2020-08-26 45221.0 1533.0 1594.714 725.0 16.0 17.857 393.351 13.335 13.871 6.306 0.139 0.155 1.09 null null null null null null null null 813410.0 18724.0 7.075 0.163 20110.0 0.175 7.9e-2 12.6 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
MNE Europe Montenegro 2020-02-28 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MNE Europe Montenegro 2020-09-27 10313.0 116.0 243.0 158.0 0.0 3.143 16420.353 184.695 386.904 251.568 0.0 5.004 0.94 null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MAR Africa Morocco 2020-02-10 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MAR Africa Morocco 2020-05-29 7714.0 71.0 54.571 202.0 0.0 0.714 208.992 1.924 1.478 5.473 0.0 1.9e-2 0.82 null null null null null null null null 190061.0 9872.0 5.149 0.267 9523.0 0.258 6.0e-3 174.5 null 93.52 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MMR Asia Myanmar 2020-11-08 61377.0 1029.0 1138.857 1420.0 24.0 23.143 1128.051 18.912 20.931 26.098 0.441 0.425 1.03 null null null null null null null null null null null null null null null null null 79.63 5.4409794e7 81.721 29.1 5.732 3.12 5591.597 6.4 202.104 4.61 6.3 35.2 79.287 0.9 67.13 0.578
NPL Asia Nepal 2020-03-20 1.0 0.0 0.0 0.0 0.0 0.0 3.4e-2 0.0 0.0 null 0.0 0.0 null null null null null null null null null 546.0 17.0 1.9e-2 1.0e-3 13.0 0.0 0.0 null null 58.33 2.9136808e7 204.43 25.0 5.809 3.212 2442.804 15.0 260.797 7.26 9.5 37.8 47.782 0.3 70.78 0.574
NPL Asia Nepal 2020-07-05 15784.0 293.0 430.286 34.0 0.0 0.857 541.72 10.056 14.768 1.167 0.0 2.9e-2 0.82 null null null null null null null null 251007.0 4710.0 8.615 0.162 5024.0 0.172 8.6e-2 11.7 null 92.59 2.9136808e7 204.43 25.0 5.809 3.212 2442.804 15.0 260.797 7.26 9.5 37.8 47.782 0.3 70.78 0.574
NPL Asia Nepal 2020-10-25 158089.0 2856.0 3691.857 847.0 5.0 15.429 5425.749 98.02 126.708 29.07 0.172 0.53 0.96 null null null null null null null null 1393173.0 12311.0 47.815 0.423 15688.0 0.538 0.235 4.2 null 63.89 2.9136808e7 204.43 25.0 5.809 3.212 2442.804 15.0 260.797 7.26 9.5 37.8 47.782 0.3 70.78 0.574
NLD Europe Netherlands 2020-04-26 38040.0 656.0 743.143 4491.0 67.0 113.429 2220.034 38.284 43.37 262.097 3.91 6.62 0.72 806.0 47.039 null null 116.994 6.828 304.384 17.764 209718.0 null 12.239 null 5485.0 0.32 0.135 7.4 null 79.63 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-07-14 51362.0 54.0 65.0 6154.0 -2.0 0.429 2997.513 3.151 3.793 359.151 -0.117 2.5e-2 1.21 27.0 1.576 null null null null null null null null null null 11757.0 0.686 6.0e-3 180.9 null 39.81 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-08-27 70984.0 602.0 591.571 6244.0 3.0 4.143 4142.663 35.133 34.524 364.403 0.175 0.242 1.04 45.0 2.626 null null null null null null null null null null 24998.0 1.459 2.4e-2 42.3 null 50.93 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-09-18 94345.0 2083.0 1567.857 6318.0 8.0 4.0 5506.023 121.565 91.501 368.722 0.467 0.233 1.41 72.0 4.202 null null null null null null null null null null 28832.0 1.683 5.4e-2 18.4 null 50.93 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NZL Oceania New Zealand 2020-03-05 3.0 0.0 0.429 0.0 0.0 0.0 0.622 0.0 8.9e-2 null 0.0 0.0 null null null null null null null null null 332.0 27.0 6.9e-2 6.0e-3 null null null null null 19.44 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NER Africa Niger 2020-07-26 1136.0 12.0 4.571 69.0 0.0 0.0 46.929 0.496 0.189 2.85 0.0 0.0 0.74 null null null null null null null null null null null null null null null null null 25.93 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
NER Africa Niger 2020-09-24 1194.0 1.0 1.571 69.0 0.0 0.0 49.325 4.1e-2 6.5e-2 2.85 0.0 0.0 0.9 null null null null null null null null null null null null null null null null null 14.81 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
NOR Europe Norway 2020-04-08 6086.0 0.0 174.714 101.0 12.0 8.143 1122.621 0.0 32.228 18.63 2.214 1.502 0.81 null null 250.0 46.115 null null null null 105216.0 2276.0 19.408 0.42 2628.0 0.485 6.6e-2 15.0 null 79.63 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
OMN Asia Oman 2020-06-03 13537.0 738.0 737.714 67.0 8.0 4.0 2650.872 144.518 144.462 13.12 1.567 0.783 1.23 null null null null null null null null null null null null null null null null null 86.11 5106622.0 14.98 30.7 2.355 1.53 37960.709 null 266.342 12.61 0.5 15.6 97.4 1.6 77.86 0.821
PAK Asia Pakistan 2020-08-26 294193.0 482.0 535.429 6267.0 12.0 9.429 1331.839 2.182 2.424 28.371 5.4e-2 4.3e-2 0.86 null null null null null null null null 2512337.0 24593.0 11.374 0.111 24609.0 0.111 2.2e-2 46.0 null 47.69 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PAN North America Panama 2020-02-26 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PAN North America Panama 2020-08-01 66383.0 1127.0 1074.143 1449.0 28.0 24.857 15385.068 261.196 248.946 335.823 6.489 5.761 1.0 null null null null null null null null 224089.0 3668.0 51.935 0.85 3308.0 0.767 0.325 3.1 null 80.56 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PRY South America Paraguay 2020-06-10 1202.0 15.0 18.857 11.0 0.0 0.0 168.524 2.103 2.644 1.542 0.0 0.0 1.18 null null null null null null null null 41702.0 1670.0 5.847 0.234 1232.0 0.173 1.5e-2 65.3 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PRY South America Paraguay 2020-08-30 17105.0 631.0 553.143 308.0 14.0 14.714 2398.167 88.468 77.552 43.182 1.963 2.063 1.18 null null null null null null null null 190169.0 1610.0 26.662 0.226 2404.0 0.337 0.23 4.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PRY South America Paraguay 2020-10-02 42684.0 885.0 779.714 890.0 21.0 18.429 5984.412 124.079 109.318 124.78 2.944 2.584 1.09 null null null null null null null null 283537.0 2628.0 39.753 0.368 2787.0 0.391 0.28 3.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PRT Europe Portugal 2020-06-02 32895.0 195.0 269.714 1436.0 12.0 13.429 3226.042 19.124 26.451 140.83 1.177 1.317 1.09 58.0 5.688 432.0 42.367 null null null null 881524.0 15640.0 86.452 1.534 13827.0 1.356 2.0e-2 51.3 null 71.3 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
PRT Europe Portugal 2020-10-17 98055.0 2153.0 1783.0 2162.0 13.0 13.571 9616.34 211.147 174.86 212.029 1.275 1.331 1.42 148.0 14.514 1012.0 99.248 null null null null 3059464.0 23723.0 300.044 2.327 26828.0 2.631 6.6e-2 15.0 null 56.94 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
QAT Asia Qatar 2020-04-30 13409.0 845.0 806.429 10.0 0.0 0.0 4654.19 293.295 279.907 3.471 0.0 0.0 1.19 null null null null null null null null 94500.0 3085.0 32.8 1.071 3006.0 1.043 0.268 3.7 null 83.33 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
QAT Asia Qatar 2020-05-08 20201.0 1311.0 872.143 12.0 0.0 0.0 7011.655 455.041 302.716 4.165 0.0 0.0 1.44 null null null null null null null null 120458.0 3963.0 41.81 1.376 3247.0 1.127 0.269 3.7 null 83.33 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
QAT Asia Qatar 2020-09-30 125760.0 227.0 226.429 214.0 0.0 0.286 43650.601 78.79 78.592 74.278 0.0 9.9e-2 0.93 null null null null null null null null 775914.0 5701.0 269.315 1.979 5260.0 1.826 4.3e-2 23.2 null 64.81 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
ROU Europe Romania 2020-04-11 5990.0 523.0 339.571 291.0 21.0 20.714 311.368 27.186 17.651 15.127 1.092 1.077 1.28 208.0 10.812 null null null null null null 59272.0 3842.0 3.081 0.2 3311.0 0.172 0.103 9.8 null 87.04 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
ROU Europe Romania 2020-09-07 95897.0 883.0 1193.857 3926.0 33.0 43.571 4984.852 45.9 62.058 204.079 1.715 2.265 1.01 465.0 24.171 null null null null null null 1945738.0 7247.0 101.142 0.377 20399.0 1.06 5.9e-2 17.1 null 45.37 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
RUS Europe Russia 2020-06-15 536484.0 8217.0 8634.429 7081.0 143.0 159.714 3676.198 56.306 59.166 48.522 0.98 1.094 0.96 null null null null null null null null 1.5395417e7 234265.0 105.495 1.605 305820.0 2.096 2.8e-2 35.4 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816
RUS Europe Russia 2020-06-28 633563.0 6784.0 7097.714 9060.0 102.0 137.0 4341.421 46.487 48.636 62.083 0.699 0.939 0.91 null null null null null null null null 1.9334442e7 289488.0 132.487 1.984 292107.0 2.002 2.4e-2 41.2 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816
SAU Asia Saudi Arabia 2020-05-06 31938.0 1687.0 1505.143 209.0 9.0 7.429 917.393 48.458 43.234 6.003 0.259 0.213 1.29 null null null null null null null null 446983.0 16026.0 12.839 0.46 12498.0 0.359 0.12 8.3 null 91.67 3.4813867e7 15.322 31.9 3.295 1.845 49045.411 null 259.538 17.72 1.8 25.4 null 2.7 75.13 0.853
SAU Asia Saudi Arabia 2020-08-09 288690.0 1428.0 1407.857 3167.0 37.0 35.714 8292.385 41.018 40.44 90.969 1.063 1.026 0.86 null null null null null null null null 3872599.0 59325.0 111.237 1.704 56983.0 1.637 2.5e-2 40.5 null 71.3 3.4813867e7 15.322 31.9 3.295 1.845 49045.411 null 259.538 17.72 1.8 25.4 null 2.7 75.13 0.853
SYC Africa Seychelles 2020-03-30 8.0 0.0 0.143 0.0 0.0 0.0 81.35 0.0 1.453 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 52.78 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SYC Africa Seychelles 2020-11-23 166.0 3.0 0.857 0.0 0.0 0.0 1688.021 30.506 8.716 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SGP Asia Singapore 2020-02-19 84.0 3.0 4.857 0.0 0.0 0.0 14.358 0.513 0.83 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 25.0 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SGP Asia Singapore 2020-04-17 5050.0 623.0 420.286 11.0 1.0 0.571 863.197 106.489 71.839 1.88 0.171 9.8e-2 2.16 null null null null null null null null null null null null 3732.0 0.638 0.113 8.9 null 85.19 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SVK Europe Slovakia 2020-08-12 2690.0 75.0 39.0 31.0 0.0 0.286 492.706 13.737 7.143 5.678 0.0 5.2e-2 1.31 null null 39.0 7.143 null null null null 286852.0 2741.0 52.54 0.502 2076.0 0.38 1.9e-2 53.2 null 35.19 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVK Europe Slovakia 2020-10-18 29835.0 1567.0 1426.286 88.0 6.0 3.857 5464.643 287.015 261.242 16.118 1.099 0.706 1.35 null null 481.0 88.101 null null null null 622032.0 5025.0 113.933 0.92 9941.0 1.821 0.143 7.0 null 53.7 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVN Europe Slovenia 2020-09-16 3954.0 123.0 91.714 135.0 0.0 0.0 1901.938 59.165 44.116 64.937 0.0 0.0 1.39 11.0 5.291 61.0 29.342 null null null null 191413.0 3070.0 92.073 1.477 2470.0 1.188 3.7e-2 26.9 null 46.3 2078932.0 102.619 44.5 19.062 12.93 31400.84 null 153.493 7.25 20.1 25.0 null 4.5 81.32 0.896
SVN Europe Slovenia 2020-11-30 75814.0 433.0 1433.714 1435.0 51.0 48.286 36467.763 208.28 689.64 690.258 24.532 23.226 null null null null null null null null null 523620.0 5868.0 251.87 2.823 5767.0 2.774 0.249 4.0 null 68.52 2078932.0 102.619 44.5 19.062 12.93 31400.84 null 153.493 7.25 20.1 25.0 null 4.5 81.32 0.896
ZAF Africa South Africa 2020-05-05 7572.0 352.0 368.0 148.0 10.0 7.857 127.671 5.935 6.205 2.495 0.169 0.132 1.36 null null null null null null null null 268064.0 10523.0 4.52 0.177 11795.0 0.199 3.1e-2 32.1 null 84.26 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
ZAF Africa South Africa 2020-07-28 459761.0 7232.0 11137.571 7257.0 190.0 269.857 7752.001 121.938 187.79 122.36 3.204 4.55 0.86 null null null null null null null null 2830635.0 28424.0 47.727 0.479 41959.0 0.707 0.265 3.8 null 80.56 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
KOR Asia South Korea 2020-02-03 15.0 0.0 1.571 0.0 0.0 0.0 0.293 0.0 3.1e-2 null 0.0 0.0 null null null null null null null null null null null null null 66.0 1.0e-3 2.4e-2 42.0 null 23.15 5.1269183e7 527.967 43.4 13.914 8.622 35938.374 0.2 85.998 6.8 6.2 40.9 null 12.27 83.03 0.903
ESP Europe Spain 2020-04-03 119199.0 7134.0 7640.0 11198.0 850.0 865.714 2549.45 152.583 163.406 239.505 18.18 18.516 1.37 null null null null null null null null null null null null null null null null null 85.19 4.6754783e7 93.105 45.5 19.436 13.799 34272.36 1.0 99.403 7.17 27.4 31.4 null 2.97 83.56 0.891
ESP Europe Spain 2020-11-07 1328832.0 0.0 20450.571 38833.0 0.0 422.143 28421.306 0.0 437.401 830.567 0.0 9.029 1.12 null null null null null null null null null null null null 166951.0 3.571 0.122 8.2 null 71.3 4.6754783e7 93.105 45.5 19.436 13.799 34272.36 1.0 99.403 7.17 27.4 31.4 null 2.97 83.56 0.891
LKA Asia Sri Lanka 2020-04-01 146.0 3.0 6.286 3.0 1.0 0.429 6.818 0.14 0.294 0.14 4.7e-2 2.0e-2 1.01 null null null null null null null null 2785.0 219.0 0.13 1.0e-2 161.0 8.0e-3 3.9e-2 25.6 null 100.0 2.141325e7 341.955 34.1 10.069 5.331 11669.077 0.7 197.093 10.68 0.3 27.0 null 3.6 76.98 0.77
LKA Asia Sri Lanka 2020-05-13 915.0 26.0 16.857 9.0 0.0 0.0 42.731 1.214 0.787 0.42 0.0 0.0 1.04 null null null null null null null null 39629.0 889.0 1.851 4.2e-2 1301.0 6.1e-2 1.3e-2 77.2 null 82.41 2.141325e7 341.955 34.1 10.069 5.331 11669.077 0.7 197.093 10.68 0.3 27.0 null 3.6 76.98 0.77
SUR South America Suriname 2020-02-01 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SUR South America Suriname 2020-02-17 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SUR South America Suriname 2020-06-13 196.0 9.0 13.714 3.0 0.0 0.286 334.11 15.342 23.378 5.114 0.0 0.487 1.13 null null null null null null null null null null null null null null null null null 93.52 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SWZ Africa Swaziland 2020-02-29 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWZ Africa Swaziland 2020-05-16 202.0 12.0 5.571 2.0 0.0 0.0 174.113 10.343 4.802 1.724 0.0 0.0 0.9 null null null null null null null null null null null null null null null null null 84.26 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWE Europe Sweden 2020-05-10 26846.0 278.0 593.286 3678.0 64.0 70.286 2658.212 27.527 58.745 364.185 6.337 6.959 1.13 null null null null 154.004 15.249 null null null null null null null null null null null 64.81 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933
SWE Europe Sweden 2020-10-29 121167.0 3254.0 1742.571 5966.0 3.0 5.143 11997.6 322.202 172.544 590.736 0.297 0.509 1.57 null null null null null null null null null 27613.0 null 2.734 26048.0 2.579 6.7e-2 14.9 null 55.56 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933
SWE Europe Sweden 2020-11-21 208295.0 0.0 4420.0 6406.0 0.0 34.571 20624.758 0.0 437.655 634.303 0.0 3.423 null null null null null null null null null null 38266.0 null 3.789 38119.0 3.774 0.116 8.6 null 50.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933
CHE Europe Switzerland 2020-04-01 17768.0 1163.0 981.571 488.0 55.0 47.857 2053.008 134.379 113.416 56.386 6.355 5.53 1.24 null null null null null null null null 145277.0 6657.0 16.786 0.769 5978.0 0.691 0.164 6.1 null 73.15 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
CHE Europe Switzerland 2020-06-02 30874.0 3.0 16.143 1920.0 0.0 0.714 3567.344 0.347 1.865 221.847 0.0 8.3e-2 0.79 null null null null null null null null 405695.0 4282.0 46.876 0.495 3304.0 0.382 5.0e-3 204.7 null 55.56 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
CHE Europe Switzerland 2020-08-06 36108.0 181.0 155.143 1985.0 1.0 0.714 4172.108 20.914 17.926 229.357 0.116 8.3e-2 1.17 null null null null null null null null 831138.0 6619.0 96.034 0.765 5409.0 0.625 2.9e-2 34.9 null 43.06 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
CHE Europe Switzerland 2020-11-15 257135.0 0.0 6460.286 3369.0 18.0 85.286 29710.728 0.0 746.455 389.272 2.08 9.854 1.04 null null null null null null null null 2419601.0 9364.0 279.573 1.082 25659.0 2.965 0.252 4.0 null 49.07 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
TZA Africa Tanzania 2020-09-11 509.0 0.0 0.0 21.0 0.0 0.0 8.521 0.0 0.0 0.352 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 25.0 5.9734213e7 64.699 17.7 3.108 1.874 2683.304 49.1 217.288 5.75 3.3 26.7 47.953 0.7 65.46 0.538
FJI Oceania Fiji 2020-06-29 18.0 0.0 0.0 0.0 0.0 0.0 20.079 0.0 0.0 null 0.0 0.0 null null null null null null null null null 5015.0 162.0 5.594 0.181 69.0 7.7e-2 0.0 null null 62.04 896444.0 49.562 28.6 6.224 3.284 8702.975 1.4 412.82 14.49 10.2 34.8 null 2.3 67.44 0.741
FJI Oceania Fiji 2020-09-25 32.0 0.0 0.0 2.0 0.0 0.0 35.697 0.0 0.0 2.231 0.0 0.0 null null null null null null null null null 10280.0 64.0 11.468 7.1e-2 65.0 7.3e-2 0.0 null null 51.85 896444.0 49.562 28.6 6.224 3.284 8702.975 1.4 412.82 14.49 10.2 34.8 null 2.3 67.44 0.741
FIN Europe Finland 2020-05-04 5327.0 73.0 90.286 240.0 10.0 6.714 961.428 13.175 16.295 43.316 1.805 1.212 0.9 49.0 8.844 197.0 35.555 null null null null 113479.0 1767.0 20.481 0.319 2956.0 0.534 3.1e-2 32.7 null 60.19 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-11-07 17385.0 0.0 181.714 362.0 0.0 0.571 3137.68 0.0 32.796 65.334 0.0 0.103 1.1 null null null null null null null null 1650143.0 9833.0 297.821 1.775 12769.0 2.305 1.4e-2 70.3 null 40.74 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-11-15 19315.0 213.0 216.857 369.0 0.0 1.0 3486.01 38.443 39.139 66.598 0.0 0.18 1.14 null null null null null null null null 1747491.0 6648.0 315.391 1.2 13080.0 2.361 1.7e-2 60.3 null 40.74 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
GMB Africa Gambia 2020-10-17 3649.0 0.0 3.0 118.0 0.0 0.143 1509.933 0.0 1.241 48.828 0.0 5.9e-2 0.68 null null null null null null null null null null null null null null null null null 60.19 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
DEU Europe Germany 2020-10-25 437698.0 9890.0 9861.0 10062.0 27.0 37.714 5224.127 118.042 117.696 120.095 0.322 0.45 1.45 null null null null null null 2028.515 24.211 2.1848094e7 null 260.767 null 201348.0 2.403 4.9e-2 20.4 null 60.65 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
GHA Africa Ghana 2020-02-14 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-05-20 6269.0 173.0 123.0 31.0 0.0 1.0 201.751 5.568 3.958 0.998 0.0 3.2e-2 1.23 null null null null null null null null 192194.0 4265.0 6.185 0.137 3358.0 0.108 3.7e-2 27.3 null 62.04 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-06-07 9638.0 176.0 224.0 44.0 0.0 1.143 310.173 5.664 7.209 1.416 0.0 3.7e-2 1.2 null null null null null null null null 239395.0 3952.0 7.704 0.127 2796.0 9.0e-2 8.0e-2 12.5 null 56.48 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-08-11 41404.0 192.0 513.143 215.0 0.0 3.429 1332.477 6.179 16.514 6.919 0.0 0.11 1.11 null null null null null null null null 421588.0 1998.0 13.568 6.4e-2 1745.0 5.6e-2 0.294 3.4 null 52.78 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-11-19 50631.0 174.0 96.286 323.0 0.0 0.429 1629.424 5.6 3.099 10.395 0.0 1.4e-2 1.18 null null null null null null null null 578117.0 2126.0 18.605 6.8e-2 2128.0 6.8e-2 4.5e-2 22.1 null 38.89 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
HTI North America Haiti 2020-02-05 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 1.1402533e7 398.448 24.3 4.8 2.954 1653.173 23.5 430.548 6.65 2.9 23.1 22.863 0.7 64.0 0.498
HUN Europe Hungary 2020-03-23 167.0 36.0 18.286 7.0 1.0 0.857 17.287 3.727 1.893 0.725 0.104 8.9e-2 1.7 null null 144.0 14.906 null null null null 5515.0 1072.0 0.571 0.111 578.0 6.0e-2 3.2e-2 31.6 null 67.59 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
HUN Europe Hungary 2020-04-17 1763.0 111.0 81.857 156.0 14.0 11.286 182.499 11.49 8.474 16.148 1.449 1.168 1.14 null null 847.0 87.678 null null null null 41590.0 3101.0 4.305 0.321 1663.0 0.172 4.9e-2 20.3 null 76.85 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
HUN Europe Hungary 2020-08-05 4564.0 11.0 14.143 599.0 1.0 0.429 472.447 1.139 1.464 62.006 0.104 4.4e-2 1.29 null null 72.0 7.453 null null null null 350108.0 1976.0 36.242 0.205 2380.0 0.246 6.0e-3 168.3 null 54.63 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
HUN Europe Hungary 2020-11-07 104943.0 5318.0 4231.714 2357.0 107.0 86.714 10863.271 550.498 438.05 243.987 11.076 8.976 1.32 null null 5612.0 580.931 null null null null 1189962.0 22321.0 123.18 2.311 17831.0 1.846 0.237 4.2 null 57.41 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
ISL Europe Iceland 2020-03-13 134.0 31.0 13.0 0.0 0.0 0.0 392.674 90.842 38.095 null 0.0 0.0 1.64 0.0 0.0 2.0 5.861 null null null null 1504.0 357.0 4.407 1.046 160.0 0.469 8.1e-2 12.3 null 16.67 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-03-28 963.0 73.0 70.0 2.0 0.0 0.143 2821.978 213.919 205.128 5.861 0.0 0.419 1.27 7.0 20.513 26.0 76.19 null null null null 15443.0 849.0 45.254 2.488 767.0 2.248 9.1e-2 11.0 null 53.7 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-07-18 1838.0 2.0 0.714 10.0 0.0 0.0 5386.081 5.861 2.093 29.304 0.0 0.0 1.29 0.0 0.0 0.0 0.0 null null null null 68575.0 64.0 200.952 0.188 112.0 0.328 6.0e-3 156.9 null 39.81 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-07-23 1841.0 1.0 0.714 10.0 0.0 0.0 5394.872 2.93 2.093 29.304 0.0 0.0 1.43 0.0 0.0 0.0 0.0 null null null null 68822.0 67.0 201.676 0.196 71.0 0.208 1.0e-2 99.4 null 39.81 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
IND Asia India 2020-10-26 7946429.0 36470.0 49909.429 119502.0 488.0 615.0 5758.264 26.427 36.166 86.595 0.354 0.446 0.89 null null null null null null null null 1.03462778e8 939309.0 74.973 0.681 1196972.0 0.867 4.2e-2 24.0 null 64.35 1.380004385e9 450.419 28.2 5.989 3.414 6426.674 21.2 282.28 10.39 1.9 20.6 59.55 0.53 69.66 0.64
IDN Asia Indonesia 2020-02-03 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 23.15 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
IDN Asia Indonesia 2020-08-13 132816.0 2098.0 2009.0 5968.0 65.0 63.857 485.574 7.67 7.345 21.819 0.238 0.233 1.06 null null null null null null null null 1026954.0 14850.0 3.755 5.4e-2 12949.0 4.7e-2 0.155 6.4 null 59.72 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
IDN Asia Indonesia 2020-10-05 307120.0 3622.0 4056.857 11253.0 102.0 111.429 1122.828 13.242 14.832 41.141 0.373 0.407 1.01 null null null null null null null null 2119355.0 22771.0 7.748 8.3e-2 26356.0 9.6e-2 0.154 6.5 null 72.69 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
IRN Asia Iran 2020-08-07 322567.0 2450.0 2623.286 18132.0 156.0 195.143 3840.406 29.169 31.232 215.875 1.857 2.323 0.93 null null null null null null null null 2637575.0 null 31.402 null 25809.0 0.307 0.102 9.8 null 60.19 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRN Asia Iran 2020-08-08 324692.0 2125.0 2562.857 18264.0 132.0 183.143 3865.705 25.3 30.513 217.447 1.572 2.18 0.86 null null null null null null null null 2661965.0 24390.0 31.693 0.29 25630.0 0.305 0.1 10.0 null 60.19 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRL Europe Ireland 2020-10-26 58067.0 939.0 1010.571 1885.0 3.0 4.714 11759.7 190.166 204.66 381.749 0.608 0.955 0.96 38.0 7.696 344.0 69.667 null null null null 1568768.0 14264.0 317.706 2.889 16425.0 3.326 6.2e-2 16.3 null 81.48 4937796.0 69.874 38.7 13.928 8.678 67335.293 0.2 126.459 3.28 23.0 25.7 null 2.96 82.3 0.938
IRL Europe Ireland 2020-10-28 59434.0 667.0 858.857 1896.0 6.0 4.0 12036.544 135.081 173.935 383.977 1.215 0.81 0.91 40.0 8.101 327.0 66.224 null null null null 1591370.0 11167.0 322.283 2.262 15161.0 3.07 5.7e-2 17.7 null 81.48 4937796.0 69.874 38.7 13.928 8.678 67335.293 0.2 126.459 3.28 23.0 25.7 null 2.96 82.3 0.938
ISR Asia Israel 2020-03-25 2369.0 1131.0 295.0 5.0 2.0 0.714 273.698 130.668 34.082 0.578 0.231 8.3e-2 1.94 null null null null null null null null 37132.0 5936.0 4.29 0.686 3457.0 0.399 8.5e-2 11.7 null 81.48 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ITA Europe Italy 2020-03-17 31506.0 3526.0 3051.0 2503.0 345.0 267.429 521.089 58.318 50.462 41.398 5.706 4.423 1.84 2060.0 34.071 14954.0 247.33 null null null null 148657.0 10695.0 2.459 0.177 12557.0 0.208 0.243 4.1 null 85.19 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
ITA Europe Italy 2020-08-08 250103.0 347.0 324.429 35203.0 13.0 8.143 4136.544 5.739 5.366 582.235 0.215 0.135 1.29 43.0 0.711 814.0 13.463 null null null null 7212207.0 53298.0 119.285 0.882 48387.0 0.8 7.0e-3 149.1 null 50.93 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
ITA Europe Italy 2020-09-12 286297.0 1501.0 1422.714 35603.0 6.0 9.857 4735.169 24.826 23.531 588.851 9.9e-2 0.163 1.07 182.0 3.01 2133.0 35.278 null null null null 9745975.0 92706.0 161.192 1.533 86225.0 1.426 1.7e-2 60.6 null 54.63 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
ITA Europe Italy 2020-11-28 1564532.0 26315.0 26285.857 54363.0 686.0 728.857 25876.36 435.233 434.751 899.129 11.346 12.055 null 3762.0 62.221 37061.0 612.965 null null null null 2.1637641e7 225940.0 357.873 3.737 205402.0 3.397 0.128 7.8 null null 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
JAM North America Jamaica 2020-02-11 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JAM North America Jamaica 2020-07-10 753.0 0.0 4.571 10.0 0.0 0.0 254.292 0.0 1.544 3.377 0.0 0.0 1.08 null null null null null null null null 27775.0 300.0 9.38 0.101 299.0 0.101 1.5e-2 65.4 null 64.81 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JAM North America Jamaica 2020-11-03 9296.0 39.0 72.714 214.0 4.0 2.571 3139.309 13.171 24.556 72.269 1.351 0.868 0.91 null null null null null null null null 98356.0 565.0 33.215 0.191 648.0 0.219 0.112 8.9 null 67.59 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JPN Asia Japan 2020-10-23 95868.0 734.0 546.286 1706.0 9.0 6.0 757.991 5.803 4.319 13.489 7.1e-2 4.7e-2 1.13 null null null null null null null null 2295456.0 22880.0 18.149 0.181 17267.0 0.137 3.2e-2 31.6 null 38.89 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
KAZ Asia Kazakhstan 2020-03-31 343.0 41.0 38.714 2.0 1.0 0.286 18.267 2.184 2.062 0.107 5.3e-2 1.5e-2 1.62 null null null null null null null null 30905.0 9892.0 1.646 0.527 3003.0 0.16 1.3e-2 77.6 null 92.13 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-06-24 19285.0 520.0 486.857 136.0 2.0 5.571 1027.07 27.694 25.929 7.243 0.107 0.297 1.12 null null null null null null null null 1401692.0 24830.0 74.651 1.322 27159.0 1.446 1.8e-2 55.8 null 81.02 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-10-01 140958.0 251.0 238.429 2080.0 2.0 5.0 7507.067 13.368 12.698 110.776 0.107 0.266 1.01 null null null null null null null null 2973489.0 9208.0 158.361 0.49 13415.0 0.714 1.8e-2 56.3 null 78.7 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-11-14 159756.0 903.0 776.429 2315.0 1.0 7.143 8508.201 48.091 41.351 123.291 5.3e-2 0.38 1.31 null null null null null null null null 4004270.0 39228.0 213.257 2.089 31215.0 1.662 2.5e-2 40.2 null 68.06 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KEN Africa Kenya 2020-02-15 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KEN Africa Kenya 2020-02-24 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KEN Africa Kenya 2020-06-25 5384.0 178.0 161.0 132.0 2.0 2.143 100.128 3.31 2.994 2.455 3.7e-2 4.0e-2 1.24 null null null null null null null null 155314.0 3918.0 2.888 7.3e-2 3545.0 6.6e-2 4.5e-2 22.0 null 84.26 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KGZ Asia Kyrgyzstan 2020-06-07 2007.0 33.0 37.0 22.0 0.0 0.857 307.624 5.058 5.671 3.372 0.0 0.131 1.24 null null null null null null null null null null null null null null null null null 76.39 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
LAO Asia Laos 2020-09-12 23.0 0.0 0.143 0.0 0.0 0.0 3.161 0.0 2.0e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 36.11 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LBN Asia Lebanon 2020-03-28 412.0 21.0 32.143 8.0 0.0 0.571 60.362 3.077 4.709 1.172 0.0 8.4e-2 1.06 null null null null null null null null null null null null null null null null null 85.19 6825442.0 594.561 31.1 8.514 5.43 13367.565 null 266.591 12.71 26.9 40.7 null 2.9 78.93 0.757
LBN Asia Lebanon 2020-11-06 91328.0 2142.0 1685.571 700.0 17.0 10.714 13380.525 313.826 246.954 102.557 2.491 1.57 1.11 null null null null null null null null null null null null null null null null null 57.41 6825442.0 594.561 31.1 8.514 5.43 13367.565 null 266.591 12.71 26.9 40.7 null 2.9 78.93 0.757
LTU Europe Lithuania 2020-05-27 1647.0 8.0 10.0 66.0 1.0 0.857 605.005 2.939 3.673 24.244 0.367 0.315 0.85 null null null null null null null null 272538.0 6268.0 100.113 2.302 4739.0 1.741 2.0e-3 473.9 null 71.3 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LTU Europe Lithuania 2020-09-07 3100.0 17.0 27.714 86.0 0.0 0.0 1138.747 6.245 10.181 31.591 0.0 0.0 1.17 null null null null null null null null 614767.0 3528.0 225.827 1.296 3650.0 1.341 8.0e-3 131.7 null 34.26 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LTU Europe Lithuania 2020-10-30 13823.0 735.0 674.143 157.0 7.0 4.429 5077.708 269.993 247.638 57.672 2.571 1.627 1.52 null null 415.0 152.445 null null null null 936692.0 10520.0 344.082 3.864 8860.0 3.255 7.6e-2 13.1 null 62.5 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LTU Europe Lithuania 2020-11-19 40492.0 1682.0 1525.714 341.0 18.0 13.857 14874.236 617.862 560.452 125.262 6.612 5.09 1.33 null null 1.0 0.367 null null null null 1145098.0 14052.0 420.638 5.162 11081.0 4.07 0.138 7.3 null 62.96 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LUX Europe Luxembourg 2020-07-04 4476.0 29.0 37.0 110.0 0.0 0.0 7150.434 46.328 59.108 175.726 0.0 0.0 1.63 3.0 4.793 24.0 38.34 null null null null 231408.0 7851.0 369.676 12.542 8169.0 13.05 5.0e-3 220.8 null 24.07 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
LUX Europe Luxembourg 2020-08-13 7368.0 68.0 42.143 122.0 0.0 0.429 11770.419 108.63 67.323 194.896 0.0 0.685 0.85 3.0 4.793 38.0 60.705 null null null null 559389.0 4654.0 893.627 7.435 4972.0 7.943 8.0e-3 118.0 null 34.26 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
MWI Africa Malawi 2020-10-03 5783.0 0.0 2.429 179.0 0.0 0.0 302.301 0.0 0.127 9.357 0.0 0.0 0.89 null null null null null null null null 54246.0 231.0 2.836 1.2e-2 266.0 1.4e-2 9.0e-3 109.5 null 54.63 1.9129955e7 197.519 18.1 2.979 1.783 1095.042 71.4 227.349 3.94 4.4 24.7 8.704 1.3 64.26 0.477
MLI Africa Mali 2020-03-19 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 22.22 2.0250834e7 15.196 16.4 2.519 1.486 2014.306 null 268.024 2.42 1.6 23.0 52.232 0.1 59.31 0.427
MLT Europe Malta 2020-03-22 90.0 17.0 9.857 0.0 0.0 0.0 203.833 38.502 22.325 null 0.0 0.0 null 0.0 0.0 11.0 24.913 0.895 2.026 1.789 4.052 3216.0 309.0 7.284 0.7 249.0 0.564 4.0e-2 25.3 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MLT Europe Malta 2020-07-18 675.0 1.0 0.143 9.0 0.0 0.0 1528.744 2.265 0.324 20.383 0.0 0.0 0.37 null null null null null null null null 113237.0 834.0 256.46 1.889 867.0 1.964 0.0 6062.9 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MLT Europe Malta 2020-09-28 3006.0 27.0 32.857 32.0 1.0 1.286 6808.006 61.15 74.415 72.474 2.265 2.912 0.93 null null null null null null null null 251746.0 2116.0 570.156 4.792 2304.0 5.218 1.4e-2 70.1 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MUS Africa Mauritius 2020-03-20 12.0 9.0 1.714 0.0 0.0 0.0 9.436 7.077 1.348 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 50.0 1271767.0 622.962 37.4 10.945 5.884 20292.745 0.5 224.644 22.02 3.2 40.7 null 3.4 74.99 0.79
MEX North America Mexico 2020-08-17 525733.0 3571.0 5699.571 57023.0 266.0 574.286 4077.575 27.697 44.206 442.269 2.063 4.454 0.96 null null null null null null null null 1207328.0 14669.0 9.364 0.114 11905.0 9.2e-2 0.479 2.1 null 70.83 1.28932753e8 66.444 29.3 6.857 4.321 17336.469 2.5 152.783 13.06 6.9 21.4 87.847 1.38 75.05 0.774
MEX North America Mexico 2020-10-13 825340.0 4295.0 4390.286 84420.0 475.0 296.0 6401.321 33.312 34.051 654.76 3.684 2.296 1.02 null null null null null null null null 1880454.0 16473.0 14.585 0.128 11831.0 9.2e-2 0.371 2.7 null 71.76 1.28932753e8 66.444 29.3 6.857 4.321 17336.469 2.5 152.783 13.06 6.9 21.4 87.847 1.38 75.05 0.774
MDA Europe Moldova 2020-05-14 5553.0 147.0 135.429 194.0 9.0 7.0 1376.562 36.441 33.572 48.092 2.231 1.735 1.15 null null null null null null null null null null null null null null null null null 84.26 4033963.0 123.655 37.6 10.864 6.955 5189.972 0.2 408.502 5.72 5.9 44.6 86.979 5.8 71.9 0.7
MNG Asia Mongolia 2020-02-13 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 49.07 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
ALB Europe Albania 2020-05-02 789.0 7.0 11.0 31.0 0.0 0.571 274.168 2.432 3.822 10.772 0.0 0.199 0.69 null null null null null null null null null null null null null null null null null 89.81 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
ALB Europe Albania 2020-09-10 10860.0 156.0 145.143 324.0 2.0 3.286 3773.716 54.208 50.435 112.586 0.695 1.142 1.09 null null null null null null null null null null null null null null null null null 54.63 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
DZA Africa Algeria 2020-05-09 5558.0 189.0 180.429 494.0 6.0 5.0 126.747 4.31 4.115 11.265 0.137 0.114 1.13 null null null null null null null null null null null null null null null null null 76.85 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
DZA Africa Algeria 2020-09-15 48734.0 238.0 256.571 1632.0 12.0 8.714 1111.353 5.427 5.851 37.217 0.274 0.199 0.83 null null null null null null null null null null null null null null null null null 75.93 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
ARG South America Argentina 2020-08-14 282437.0 6365.0 6680.0 5527.0 165.0 159.429 6249.19 140.832 147.801 122.29 3.651 3.528 1.11 null null null null null null null null null null null null null null null null null 87.96 4.5195777e7 16.177 31.9 11.198 7.441 18933.907 0.6 191.032 5.5 16.2 27.7 null 5.0 76.67 0.825
ARM Asia Armenia 2020-04-30 2066.0 134.0 77.571 32.0 2.0 1.143 697.211 45.221 26.178 10.799 0.675 0.386 1.37 null null null null null null null null null null null null null null null null null null 2963234.0 102.931 35.7 11.232 7.571 8787.58 1.8 341.01 7.11 1.5 52.1 94.043 4.2 75.09 0.755
ARM Asia Armenia 2020-07-10 30903.0 557.0 511.857 546.0 11.0 11.0 10428.809 187.97 172.736 184.258 3.712 3.712 0.92 null null null null null null null null null null null null null null null null null null 2963234.0 102.931 35.7 11.232 7.571 8787.58 1.8 341.01 7.11 1.5 52.1 94.043 4.2 75.09 0.755
AUT Europe Austria 2020-05-01 15531.0 79.0 65.714 589.0 5.0 8.429 1724.44 8.772 7.296 65.398 0.555 0.936 0.61 124.0 13.768 348.0 38.639 null null null null 264079.0 7680.0 29.321 0.853 7342.0 0.815 9.0e-3 111.7 null 67.59 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-09-09 30583.0 502.0 373.429 747.0 0.0 1.857 3395.696 55.738 41.463 82.941 0.0 0.206 1.41 36.0 3.997 161.0 17.876 null null null null 1288059.0 11582.0 143.016 1.286 11070.0 1.229 3.4e-2 29.6 null 36.11 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-10-02 46374.0 688.0 696.286 803.0 1.0 2.429 5149.005 76.39 77.31 89.159 0.111 0.27 1.15 100.0 11.103 372.0 41.304 null null null null 1658412.0 21839.0 184.137 2.425 18815.0 2.089 3.7e-2 27.0 null 40.74 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-10-06 49819.0 923.0 825.429 822.0 4.0 3.714 5531.511 102.483 91.649 91.268 0.444 0.412 1.21 101.0 11.214 397.0 44.08 null null null null 1716505.0 18237.0 190.587 2.025 18561.0 2.061 4.4e-2 22.5 null 40.74 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AZE Asia Azerbaijan 2020-03-20 44.0 0.0 4.143 1.0 0.0 0.0 4.34 0.0 0.409 9.9e-2 0.0 0.0 null null null null null null null null null null null null null null null null null null 61.11 1.0139175e7 119.309 32.4 6.018 3.871 15847.419 null 559.812 7.11 0.3 42.5 83.241 4.7 73.0 0.757
BHR Asia Bahrain 2020-05-23 8802.0 388.0 293.571 13.0 1.0 0.143 5172.83 228.023 172.528 7.64 0.588 8.4e-2 1.21 null null null null null null null null 276552.0 7373.0 162.526 4.333 6623.0 3.892 4.4e-2 22.6 null 75.0 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-10-26 80533.0 278.0 329.857 316.0 4.0 2.0 47328.282 163.377 193.853 185.709 2.351 1.175 0.88 null null null null null null null null 1698489.0 19642.0 998.182 11.543 11551.0 6.788 2.9e-2 35.0 null 63.89 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BGD Asia Bangladesh 2020-11-07 418764.0 1289.0 1582.857 6049.0 13.0 18.0 2542.75 7.827 9.611 36.73 7.9e-2 0.109 1.02 null null null null null null null null 2427669.0 11419.0 14.741 6.9e-2 13029.0 7.9e-2 0.121 8.2 null 80.09 1.64689383e8 1265.036 27.5 5.098 3.262 3523.984 14.8 298.003 8.38 1.0 44.7 34.808 0.8 72.59 0.608
BEL Europe Belgium 2020-02-26 1.0 0.0 0.0 0.0 0.0 0.0 8.6e-2 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-03-05 50.0 27.0 7.0 0.0 0.0 0.0 4.314 2.33 0.604 null 0.0 0.0 null null null null null null null null null 2411.0 773.0 0.208 6.7e-2 null null null null null 13.89 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-04-04 18431.0 1661.0 1328.143 1283.0 140.0 132.857 1590.303 143.318 114.598 110.703 12.08 11.463 1.45 1261.0 108.804 5531.0 477.238 null null null null 93217.0 5368.0 8.043 0.463 5288.0 0.456 0.251 4.0 null 81.48 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-07-02 61598.0 89.0 84.429 9761.0 7.0 5.0 5314.93 7.679 7.285 842.219 0.604 0.431 1.04 35.0 3.02 187.0 16.135 null null null null 1303042.0 13607.0 112.432 1.174 12646.0 1.091 7.0e-3 149.8 null 50.0 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEN Africa Benin 2020-05-07 140.0 44.0 10.857 2.0 0.0 0.143 11.548 3.629 0.896 0.165 0.0 1.2e-2 null null null null null null null null null null null null null null null null null null 70.83 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BEN Africa Benin 2020-06-05 261.0 0.0 5.286 3.0 0.0 0.0 21.529 0.0 0.436 0.247 0.0 0.0 0.99 null null null null null null null null null null null null null null null null null 41.67 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BEN Africa Benin 2020-12-01 3015.0 0.0 14.143 43.0 0.0 0.0 248.697 0.0 1.167 3.547 0.0 0.0 null null null null null null null null null null null null null null null null null null null 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BIH Europe Bosnia and Herzegovina 2020-07-05 4962.0 0.0 146.714 191.0 0.0 1.857 1512.429 0.0 44.719 58.217 0.0 0.566 1.2 null null null null null null null null null null null null null null null null null 56.48 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BWA Africa Botswana 2020-11-20 9594.0 0.0 195.571 31.0 0.0 0.571 4079.732 0.0 83.164 13.182 0.0 0.243 0.75 null null null null null null null null null null null null null null null null null 50.93 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BRA South America Brazil 2020-02-01 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-07-19 2098389.0 23529.0 33386.857 79488.0 716.0 1055.429 9872.012 110.694 157.071 373.957 3.368 4.965 1.05 null null null null null null null null null null null null 31275.0 0.147 null null null 81.02 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-10-31 5535605.0 18947.0 22138.571 159884.0 407.0 425.857 26042.625 89.137 104.152 752.185 1.915 2.003 1.0 null null null null null null null null null null null null null null null null null 57.87 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-11-12 5781582.0 33922.0 27365.286 164281.0 913.0 453.571 27199.84 159.588 128.742 772.871 4.295 2.134 1.15 null null null null null null null null null null null null null null null null null null 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRN Asia Brunei 2020-02-12 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BRN Asia Brunei 2020-03-17 56.0 2.0 7.857 0.0 0.0 0.0 128.005 4.572 17.96 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 50.0 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BRN Asia Brunei 2020-11-20 148.0 0.0 0.0 3.0 0.0 0.0 338.299 0.0 0.0 6.857 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 35.19 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BGR Europe Bulgaria 2020-04-23 1097.0 73.0 42.429 52.0 3.0 2.0 157.877 10.506 6.106 7.484 0.432 0.288 1.29 37.0 5.325 270.0 38.858 null null null null null null null null 879.0 0.127 4.8e-2 20.7 null 73.15 6948445.0 65.18 44.7 20.801 13.272 18563.307 1.5 424.688 5.81 30.1 44.4 null 7.454 75.05 0.813
BFA Africa Burkina Faso 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BFA Africa Burkina Faso 2020-02-18 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BFA Africa Burkina Faso 2020-11-12 2586.0 0.0 5.143 67.0 0.0 0.0 123.713 0.0 0.246 3.205 0.0 0.0 0.97 null null null null null null null null null null null null null null null null null 22.22 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
KHM Asia Cambodia 2020-02-18 1.0 0.0 0.0 0.0 0.0 0.0 6.0e-2 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-05-05 122.0 0.0 0.0 0.0 0.0 0.0 7.297 0.0 0.0 null 0.0 0.0 4.0e-2 null null null null null null null null null null null null null null null null null 57.41 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-07-04 141.0 0.0 0.0 0.0 0.0 0.0 8.434 0.0 0.0 null 0.0 0.0 0.23 null null null null null null null null null null null null null null null null null 40.74 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
CAN North America Canada 2020-01-26 1.0 1.0 0.0 0.0 0.0 0.0 2.6e-2 2.6e-2 null null 0.0 null null null null null null null null null null null null null null null null null null null 2.78 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-04-14 27035.0 1355.0 1309.0 901.0 120.0 75.143 716.308 35.901 34.683 23.873 3.179 1.991 1.3 null null null null null null null null 454983.0 17508.0 12.055 0.464 15268.0 0.405 8.6e-2 11.7 null 72.69 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-06-26 104629.0 166.0 330.714 8571.0 4.0 23.286 2772.205 4.398 8.762 227.094 0.106 0.617 0.85 null null null null null null null null 2598243.0 39880.0 68.842 1.057 36954.0 0.979 9.0e-3 111.7 null 68.98 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CPV Africa Cape Verde 2020-06-14 750.0 24.0 28.0 6.0 0.0 0.143 1348.95 43.166 50.361 10.792 0.0 0.257 1.09 null null null null null null null null null null null null null null null null null 79.17 555988.0 135.58 25.7 4.46 3.437 6222.554 null 182.219 2.42 2.1 16.5 null 2.1 72.98 0.654
CHL South America Chile 2020-11-12 526438.0 1634.0 1408.0 14699.0 66.0 42.143 27538.828 85.477 73.655 768.929 3.453 2.205 0.99 null null null null null null null null 4695035.0 35708.0 245.605 1.868 34425.0 1.801 4.1e-2 24.4 null 81.94 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHN Asia China 2020-03-26 81782.0 121.0 89.429 3291.0 6.0 6.0 56.82 8.4e-2 6.2e-2 2.286 4.0e-3 4.0e-3 0.9 null null null null null null null null null null null null null null null null null 81.94 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
CHN Asia China 2020-07-04 84857.0 19.0 16.286 4641.0 0.0 0.0 58.956 1.3e-2 1.1e-2 3.224 0.0 0.0 1.05 null null null null null null null null null null null null null null null null null 78.24 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
COL South America Colombia 2020-02-07 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-04-28 5949.0 352.0 257.143 269.0 16.0 10.429 116.916 6.918 5.054 5.287 0.314 0.205 1.34 null null null null null null null null 95085.0 4186.0 1.869 8.2e-2 3818.0 7.5e-2 null null null 90.74 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-11-22 1248417.0 7924.0 7095.857 35287.0 183.0 179.429 24535.107 155.73 139.455 693.494 3.596 3.526 null null null null null null null null null 4844144.0 26969.0 95.202 0.53 27587.0 0.542 null null null 65.74 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COM Africa Comoros 2020-05-25 87.0 0.0 10.857 1.0 0.0 0.0 100.047 0.0 12.485 1.15 0.0 0.0 null null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COM Africa Comoros 2020-10-17 502.0 0.0 1.0 7.0 0.0 0.0 577.28 0.0 1.15 8.05 0.0 0.0 0.64 null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
CRI North America Costa Rica 2020-02-20 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 5094114.0 96.079 33.6 9.468 5.694 15524.995 1.3 137.973 8.78 6.4 17.4 83.841 1.13 80.28 0.794
CRI North America Costa Rica 2020-06-15 1744.0 29.0 57.429 12.0 0.0 0.143 342.356 5.693 11.274 2.356 0.0 2.8e-2 1.44 null null null null null null null null 24411.0 237.0 4.792 4.7e-2 368.0 7.2e-2 null null null 72.22 5094114.0 96.079 33.6 9.468 5.694 15524.995 1.3 137.973 8.78 6.4 17.4 83.841 1.13 80.28 0.794
CYP Europe Cyprus 2020-07-20 1038.0 0.0 2.286 19.0 0.0 0.0 1185.068 0.0 2.61 21.692 0.0 0.0 1.32 null null null null null null null null 185489.0 1565.0 211.77 1.787 1532.0 1.749 1.0e-3 670.2 null 47.22 875899.0 127.657 37.3 13.416 8.563 32415.132 null 141.171 9.24 19.6 52.7 null 3.4 80.98 0.869
CZE Europe Czech Republic 2020-05-05 7896.0 77.0 56.0 257.0 5.0 4.286 737.325 7.19 5.229 23.999 0.467 0.4 0.78 47.0 4.389 223.0 20.824 null null null null 283273.0 9383.0 26.452 0.876 6303.0 0.589 9.0e-3 112.6 null 57.41 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
DNK Europe Denmark 2020-02-18 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null 14.0 2.0 2.0e-3 0.0 1.0 0.0 0.0 null null 0.0 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DJI Africa Djibouti 2020-09-27 5409.0 0.0 0.857 61.0 0.0 0.0 5474.685 0.0 0.868 61.741 0.0 0.0 0.82 null null null null null null null null null null null null null null null null null 50.93 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DJI Africa Djibouti 2020-10-01 5417.0 1.0 1.429 61.0 0.0 0.0 5482.782 1.012 1.446 61.741 0.0 0.0 0.82 null null null null null null null null null null null null null null null null null 47.22 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DOM North America Dominican Republic 2020-03-07 2.0 0.0 0.286 0.0 0.0 0.0 0.184 0.0 2.6e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
DOM North America Dominican Republic 2020-04-14 3286.0 119.0 190.0 183.0 6.0 12.143 302.916 10.97 17.515 16.87 0.553 1.119 1.37 null null null null null null null null 11741.0 1293.0 1.082 0.119 769.0 7.1e-2 0.247 4.0 null 92.59 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
DOM North America Dominican Republic 2020-10-06 115371.0 317.0 495.857 2149.0 5.0 6.857 10635.326 29.222 45.71 198.103 0.461 0.632 1.0 null null null null null null null null 502680.0 4599.0 46.339 0.424 3610.0 0.333 0.137 7.3 null 78.7 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
DOM North America Dominican Republic 2020-11-20 136784.0 601.0 604.286 2306.0 5.0 3.714 12609.256 55.402 55.705 212.576 0.461 0.342 1.18 null null null null null null null null null null null null 4378.0 0.404 0.138 7.2 null 64.81 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
EGY Africa Egypt 2020-03-22 327.0 33.0 31.0 14.0 4.0 1.714 3.195 0.322 0.303 0.137 3.9e-2 1.7e-2 1.47 null null null null null null null null null null null null null null null null null 40.74 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-04-14 2350.0 160.0 128.571 178.0 14.0 12.0 22.964 1.564 1.256 1.739 0.137 0.117 1.36 null null null null null null null null null null null null null null null null null 84.26 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
SLV North America El Salvador 2020-12-03 39130.0 0.0 178.0 1134.0 5.0 5.143 6032.807 0.0 27.443 174.833 0.771 0.793 null null null null null null null null null null null null null null null null null null null 6486201.0 307.811 27.6 8.273 5.417 7292.458 2.2 167.295 8.87 2.5 18.8 90.65 1.3 73.32 0.674
EST Europe Estonia 2020-04-22 1559.0 7.0 22.714 44.0 1.0 1.286 1175.239 5.277 17.123 33.169 0.754 0.969 0.72 12.0 9.046 110.0 82.923 null null null null 48443.0 1732.0 36.518 1.306 1461.0 1.101 1.6e-2 64.3 null 77.78 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
EST Europe Estonia 2020-07-10 2013.0 2.0 3.143 69.0 0.0 0.0 1517.483 1.508 2.369 52.015 0.0 0.0 0.94 2.0 1.508 4.0 3.015 null null null null 129910.0 422.0 97.932 0.318 556.0 0.419 6.0e-3 176.9 null 25.93 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
EST Europe Estonia 2020-09-14 2698.0 22.0 23.714 64.0 0.0 0.0 2033.864 16.585 17.877 48.246 0.0 0.0 1.25 1.0 0.754 19.0 14.323 null null null null 208696.0 3059.0 157.324 2.306 2476.0 1.867 1.0e-2 104.4 null 25.93 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
TLS Asia Timor 2020-04-09 1.0 0.0 0.0 0.0 0.0 0.0 0.758 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 75.0 1318442.0 87.176 18.0 3.556 1.897 6570.102 30.3 335.346 6.86 6.3 78.1 28.178 5.9 69.5 0.625
TLS Asia Timor 2020-05-12 24.0 0.0 0.0 0.0 0.0 0.0 18.203 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 66.67 1318442.0 87.176 18.0 3.556 1.897 6570.102 30.3 335.346 6.86 6.3 78.1 28.178 5.9 69.5 0.625
TGO Africa Togo 2020-04-03 40.0 1.0 2.143 3.0 1.0 0.286 4.832 0.121 0.259 0.362 0.121 3.5e-2 null null null null null null null null null 1018.0 294.0 0.123 3.6e-2 100.0 1.2e-2 2.1e-2 46.7 null 73.15 8278737.0 143.366 19.4 2.839 1.525 1429.813 49.2 280.033 6.15 0.9 14.2 10.475 0.7 61.04 0.503
TUN Africa Tunisia 2020-03-21 60.0 6.0 6.0 1.0 0.0 0.143 5.077 0.508 0.508 8.5e-2 0.0 1.2e-2 null null null null null null null null null 955.0 135.0 8.1e-2 1.1e-2 85.0 7.0e-3 7.1e-2 14.2 null 77.78 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUN Africa Tunisia 2020-05-11 1032.0 0.0 2.0 45.0 0.0 0.286 87.32 0.0 0.169 3.808 0.0 2.4e-2 0.59 null null null null null null null null 34323.0 443.0 2.904 3.7e-2 1253.0 0.106 2.0e-3 626.5 null 87.04 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUN Africa Tunisia 2020-05-31 1077.0 1.0 3.714 48.0 0.0 0.0 91.127 8.5e-2 0.314 4.061 0.0 0.0 0.69 null null null null null null null null 53161.0 287.0 4.498 2.4e-2 578.0 4.9e-2 6.0e-3 155.6 null 79.63 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUR Asia Turkey 2020-06-14 178239.0 1562.0 1158.143 4807.0 15.0 16.429 2113.362 18.52 13.732 56.996 0.178 0.195 1.44 null null null null null null null null 2632171.0 45176.0 31.209 0.536 41940.0 0.497 2.8e-2 36.2 null 63.89 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
TUR Asia Turkey 2020-07-20 220572.0 931.0 938.714 5508.0 17.0 18.0 2615.3 11.039 11.13 65.308 0.202 0.213 0.93 null null null null null null null null 4316781.0 43404.0 51.184 0.515 42119.0 0.499 2.2e-2 44.9 null 63.89 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
TUR Asia Turkey 2020-09-06 279806.0 1578.0 1608.571 6673.0 53.0 49.571 3317.632 18.71 19.073 79.121 0.628 0.588 1.05 null null null null null null null null 7779539.0 96842.0 92.241 1.148 107307.0 1.272 1.5e-2 66.7 null 47.22 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
UGA Africa Uganda 2020-07-02 902.0 9.0 11.571 0.0 0.0 0.0 19.72 0.197 0.253 null 0.0 0.0 0.95 null null null null null null null null 200179.0 3349.0 4.376 7.3e-2 null null null null null 87.04 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-11-28 19944.0 356.0 325.286 201.0 4.0 4.714 436.02 7.783 7.111 4.394 8.7e-2 0.103 null null null null null null null null null 623977.0 823.0 13.642 1.8e-2 2101.0 4.6e-2 0.155 6.5 null null 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UKR Europe Ukraine 2020-02-01 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
GBR Europe United Kingdom 2020-10-10 593565.0 15175.0 15844.429 42850.0 81.0 63.286 8743.555 223.537 233.398 631.205 1.193 0.932 1.22 470.0 6.923 4194.0 61.78 null null null null 2.3471856e7 256190.0 345.754 3.774 251482.0 3.704 6.3e-2 15.9 null 67.59 6.7886004e7 272.898 40.8 18.517 12.527 39753.244 0.2 122.137 4.28 20.0 24.7 null 2.54 81.32 0.922
USA North America United States 2020-03-22 34855.0 8830.0 4520.429 574.0 110.0 72.0 105.301 26.677 13.657 1.734 0.332 0.218 3.1 null null 2173.0 6.565 0.0 0.0 2989.0 9.03 459727.0 72176.0 1.389 0.218 56551.0 0.171 null null null 72.69 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
USA North America United States 2020-05-25 1666505.0 18347.0 21812.714 101521.0 557.0 1115.286 5034.718 55.429 65.899 306.708 1.683 3.369 0.93 8467.0 25.58 37382.0 112.936 null null null null 1.6179748e7 335387.0 48.881 1.013 413773.0 1.25 null null null 72.69 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
USA North America United States 2020-10-04 7402515.0 36092.0 42957.571 210006.0 349.0 711.714 22363.915 109.038 129.78 634.454 1.054 2.15 1.05 5974.0 18.048 29945.0 90.468 679.0 2.051 9423.0 28.468 1.20830414e8 626288.0 365.044 1.892 951162.0 2.874 null null null 62.5 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
URY South America Uruguay 2020-09-15 1827.0 15.0 16.429 45.0 0.0 0.0 525.948 4.318 4.729 12.954 0.0 0.0 1.11 null null null null null null null null 203232.0 1797.0 58.505 0.517 2085.0 0.6 8.0e-3 126.9 null 32.41 3473727.0 19.751 35.6 14.655 10.361 20551.409 0.1 160.708 6.93 14.0 19.9 null 2.8 77.91 0.804
URY South America Uruguay 2020-09-24 1959.0 13.0 11.857 47.0 0.0 0.143 563.948 3.742 3.413 13.53 0.0 4.1e-2 1.12 null null null null null null null null 224322.0 3009.0 64.577 0.866 2290.0 0.659 5.0e-3 193.1 null 43.52 3473727.0 19.751 35.6 14.655 10.361 20551.409 0.1 160.708 6.93 14.0 19.9 null 2.8 77.91 0.804
UZB Asia Uzbekistan 2020-05-24 3164.0 49.0 58.714 13.0 0.0 0.143 94.535 1.464 1.754 0.388 0.0 4.0e-3 1.17 null null null null null null null null null null null null null null null null null 86.11 3.3469199e7 76.134 28.2 4.469 2.873 6253.104 null 724.417 7.57 1.3 24.7 null 4.0 71.72 0.71
VNM Asia Vietnam 2020-03-31 212.0 9.0 11.143 0.0 0.0 0.0 2.178 9.2e-2 0.114 null 0.0 0.0 0.66 null null null null null null null null null null null null 4476.0 4.6e-2 2.0e-3 401.7 null 83.33 9.7338583e7 308.127 32.6 7.15 4.718 6171.884 2.0 245.465 6.0 1.0 45.9 85.847 2.6 75.4 0.694
VNM Asia Vietnam 2020-06-10 332.0 0.0 0.571 0.0 0.0 0.0 3.411 0.0 6.0e-3 null 0.0 0.0 0.79 null null null null null null null null null null null null null null null null null 65.74 9.7338583e7 308.127 32.6 7.15 4.718 6171.884 2.0 245.465 6.0 1.0 45.9 85.847 2.6 75.4 0.694
ZMB Africa Zambia 2020-03-11 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 16.67 1.8383956e7 22.995 17.7 2.48 1.542 3689.251 57.5 234.499 3.94 3.1 24.7 13.938 2.0 63.89 0.588
ZWE Africa Zimbabwe 2020-08-17 5308.0 47.0 80.0 135.0 3.0 4.429 357.13 3.162 5.383 9.083 0.202 0.298 1.05 null null null null null null null null 83782.0 898.0 5.637 6.0e-2 1337.0 9.0e-2 6.0e-2 16.7 null 80.56 1.4862927e7 42.729 19.6 2.822 1.882 1899.775 21.4 307.846 1.82 1.6 30.7 36.791 1.7 61.49 0.535
ZWE Africa Zimbabwe 2020-11-12 8696.0 29.0 36.0 255.0 0.0 1.0 585.08 1.951 2.422 17.157 0.0 6.7e-2 1.21 null null null null null null null null 150616.0 1086.0 10.134 7.3e-2 796.0 5.4e-2 4.5e-2 22.1 null 67.59 1.4862927e7 42.729 19.6 2.822 1.882 1899.775 21.4 307.846 1.82 1.6 30.7 36.791 1.7 61.49 0.535
MNG Asia Mongolia 2020-06-21 213.0 7.0 2.286 0.0 0.0 0.0 64.973 2.135 0.697 null 0.0 0.0 0.87 null null null null null null null null null null null null null null null null null 71.3 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
MNG Asia Mongolia 2020-11-10 382.0 14.0 4.286 0.0 0.0 0.0 116.524 4.271 1.307 null 0.0 0.0 1.47 null null null null null null null null null null null null null null null null null 35.19 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
MNE Europe Montenegro 2020-02-20 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MAR Africa Morocco 2020-05-15 6652.0 45.0 134.429 190.0 0.0 0.571 180.219 1.219 3.642 5.148 0.0 1.5e-2 0.82 null null null null null null null null 81616.0 3694.0 2.211 0.1 3106.0 8.4e-2 4.3e-2 23.1 null 93.52 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MAR Africa Morocco 2020-08-01 25015.0 693.0 767.143 367.0 14.0 8.857 677.719 18.775 20.784 9.943 0.379 0.24 1.42 null null null null null null null null 1273939.0 21574.0 34.514 0.584 21104.0 0.572 3.6e-2 27.5 null 64.81 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MOZ Africa Mozambique 2020-09-16 5994.0 281.0 175.714 39.0 2.0 1.571 191.775 8.99 5.622 1.248 6.4e-2 5.0e-2 1.12 null null null null null null null null 118657.0 1628.0 3.796 5.2e-2 1557.0 5.0e-2 0.113 8.9 null 62.04 3.1255435e7 37.728 17.7 3.158 1.87 1136.103 62.9 329.942 3.3 5.1 29.1 12.227 0.7 60.85 0.437
MOZ Africa Mozambique 2020-10-04 9196.0 147.0 173.286 66.0 2.0 1.143 294.221 4.703 5.544 2.112 6.4e-2 3.7e-2 1.1 null null null null null null null null 144618.0 1337.0 4.627 4.3e-2 1515.0 4.8e-2 0.114 8.7 null 62.04 3.1255435e7 37.728 17.7 3.158 1.87 1136.103 62.9 329.942 3.3 5.1 29.1 12.227 0.7 60.85 0.437
MMR Asia Myanmar 2020-06-27 296.0 3.0 1.286 6.0 0.0 0.0 5.44 5.5e-2 2.4e-2 0.11 0.0 0.0 0.78 null null null null null null null null 73218.0 1526.0 1.346 2.8e-2 1593.0 2.9e-2 1.0e-3 1238.7 null 80.56 5.4409794e7 81.721 29.1 5.732 3.12 5591.597 6.4 202.104 4.61 6.3 35.2 79.287 0.9 67.13 0.578
NPL Asia Nepal 2020-07-23 18241.0 147.0 128.143 43.0 1.0 0.571 626.047 5.045 4.398 1.476 3.4e-2 2.0e-2 0.98 null null null null null null null null 331095.0 3481.0 11.363 0.119 3898.0 0.134 3.3e-2 30.4 null 74.07 2.9136808e7 204.43 25.0 5.809 3.212 2442.804 15.0 260.797 7.26 9.5 37.8 47.782 0.3 70.78 0.574
NLD Europe Netherlands 2020-06-01 46749.0 104.0 157.429 5981.0 6.0 18.857 2728.296 6.069 9.188 349.054 0.35 1.101 0.87 151.0 8.812 null null null null null null null null null null 5351.0 0.312 2.9e-2 34.0 null 62.96 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-06-19 49634.0 107.0 138.0 6100.0 3.0 4.0 2896.666 6.245 8.054 355.999 0.175 0.233 0.75 73.0 4.26 null null null null null null null null null null 9291.0 0.542 1.5e-2 67.3 null 59.26 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-07-05 50834.0 73.0 68.429 6146.0 1.0 3.143 2966.698 4.26 3.994 358.684 5.8e-2 0.183 0.83 36.0 2.101 null null 4.957 0.289 8.923 0.521 685145.0 null 39.985 null 9951.0 0.581 7.0e-3 145.4 null 39.81 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-11-30 531930.0 4594.0 4918.429 9453.0 27.0 61.714 31043.708 268.108 287.042 551.682 1.576 3.602 null null null null null null null null null null null null null null null null null null 56.48 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NZL Oceania New Zealand 2020-04-14 1366.0 17.0 29.429 9.0 4.0 1.143 283.271 3.525 6.103 1.866 0.829 0.237 0.55 null null null null null null null null 67480.0 3123.0 13.994 0.648 2423.0 0.502 1.2e-2 82.3 null 96.3 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NZL Oceania New Zealand 2020-06-02 1504.0 0.0 0.0 22.0 0.0 0.143 311.889 0.0 0.0 4.562 0.0 3.0e-2 0.1 null null null null null null null null 278212.0 1149.0 57.694 0.238 1673.0 0.347 0.0 null null 37.04 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NZL Oceania New Zealand 2020-08-15 1622.0 13.0 7.571 22.0 0.0 0.0 336.359 2.696 1.57 4.562 0.0 0.0 1.43 null null null null null null null null 566096.0 23991.0 117.393 4.975 11027.0 2.287 1.0e-3 1456.5 null 68.98 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NOR Europe Norway 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
NOR Europe Norway 2020-06-07 8547.0 16.0 15.286 238.0 0.0 0.286 1576.576 2.951 2.82 43.901 0.0 5.3e-2 0.96 null null 21.0 3.874 null null null null 266925.0 933.0 49.237 0.172 2206.0 0.407 7.0e-3 144.3 null 39.81 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
NOR Europe Norway 2020-06-17 8692.0 32.0 14.0 243.0 1.0 0.571 1603.323 5.903 2.582 44.824 0.184 0.105 1.05 null null 18.0 3.32 null null null null 311041.0 4980.0 57.374 0.919 4021.0 0.742 3.0e-3 287.2 null 37.04 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
NOR Europe Norway 2020-10-19 16603.0 146.0 137.714 278.0 0.0 0.286 3062.582 26.931 25.403 51.28 0.0 5.3e-2 1.24 null null 28.0 5.165 null null null null 1514984.0 20733.0 279.453 3.824 13044.0 2.406 1.1e-2 94.7 null 28.7 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
OMN Asia Oman 2020-04-27 2049.0 51.0 91.286 10.0 0.0 0.429 401.244 9.987 17.876 1.958 0.0 8.4e-2 1.26 null null null null null null null null null null null null null null null null null 92.59 5106622.0 14.98 30.7 2.355 1.53 37960.709 null 266.342 12.61 0.5 15.6 97.4 1.6 77.86 0.821
OMN Asia Oman 2020-08-24 84509.0 740.0 183.286 637.0 28.0 7.0 16548.905 144.91 35.892 124.74 5.483 1.371 1.05 null null null null null null null null null null null null null null null null null 86.11 5106622.0 14.98 30.7 2.355 1.53 37960.709 null 266.342 12.61 0.5 15.6 97.4 1.6 77.86 0.821
PAK Asia Pakistan 2020-04-28 15525.0 913.0 778.429 343.0 31.0 18.714 70.283 4.133 3.524 1.553 0.14 8.5e-2 1.4 null null null null null null null null 157223.0 6467.0 0.712 2.9e-2 6488.0 2.9e-2 0.12 8.3 null 89.81 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PAN North America Panama 2020-04-07 2100.0 112.0 131.286 55.0 1.0 3.571 486.701 25.957 30.427 12.747 0.232 0.828 1.46 null null null null null null null null 10681.0 384.0 2.475 8.9e-2 534.0 0.124 0.246 4.1 null 90.74 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PAN North America Panama 2020-04-27 6021.0 242.0 222.0 167.0 2.0 5.857 1395.44 56.086 51.451 38.704 0.464 1.357 1.1 null null null null null null null null 27221.0 1098.0 6.309 0.254 934.0 0.216 0.238 4.2 null 93.52 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PRY South America Paraguay 2020-05-12 737.0 13.0 43.714 10.0 0.0 0.0 103.329 1.823 6.129 1.402 0.0 0.0 1.15 null null null null null null null null 16917.0 762.0 2.372 0.107 715.0 0.1 6.1e-2 16.4 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PRY South America Paraguay 2020-09-27 38684.0 762.0 737.714 803.0 21.0 20.571 5423.601 106.834 103.43 112.583 2.944 2.884 1.08 null null null null null null null null 269710.0 2648.0 37.814 0.371 2690.0 0.377 0.274 3.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PHL Asia Philippines 2020-02-01 1.0 0.0 0.143 0.0 0.0 0.0 9.0e-3 0.0 1.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 1.09581085e8 351.873 25.2 4.803 2.661 7599.188 null 370.437 7.07 7.8 40.8 78.463 1.0 71.23 0.699
PHL Asia Philippines 2020-05-25 14319.0 284.0 228.714 873.0 5.0 6.0 130.67 2.592 2.087 7.967 4.6e-2 5.5e-2 1.31 null null null null null null null null 285929.0 5421.0 2.609 4.9e-2 7459.0 6.8e-2 3.1e-2 32.6 null 96.3 1.09581085e8 351.873 25.2 4.803 2.661 7599.188 null 370.437 7.07 7.8 40.8 78.463 1.0 71.23 0.699
POL Europe Poland 2020-04-07 4848.0 435.0 362.429 129.0 22.0 13.714 128.096 11.494 9.576 3.408 0.581 0.362 1.4 null null null null null null null null null null null null null null null null null 81.48 3.7846605e7 124.027 41.8 16.763 10.202 27216.445 null 227.331 5.91 23.3 33.1 null 6.62 78.73 0.865
POL Europe Poland 2020-04-16 7918.0 336.0 334.714 314.0 28.0 20.0 209.213 8.878 8.844 8.297 0.74 0.528 1.11 null null 2607.0 68.883 null null null null null null null null null null null null null 83.33 3.7846605e7 124.027 41.8 16.763 10.202 27216.445 null 227.331 5.91 23.3 33.1 null 6.62 78.73 0.865
POL Europe Poland 2020-07-22 41162.0 380.0 348.714 1642.0 6.0 6.857 1087.601 10.041 9.214 43.386 0.159 0.181 1.19 null null 1644.0 43.439 null null null null 1761265.0 19656.0 46.537 0.519 17054.0 0.451 2.0e-2 48.9 null 39.81 3.7846605e7 124.027 41.8 16.763 10.202 27216.445 null 227.331 5.91 23.3 33.1 null 6.62 78.73 0.865
POL Europe Poland 2020-10-09 116338.0 4739.0 2937.857 2919.0 52.0 49.857 3073.935 125.216 77.625 77.127 1.374 1.317 1.69 null null 4407.0 116.444 null null null null 3455011.0 31036.0 91.29 0.82 28845.0 0.762 0.102 9.8 null 23.15 3.7846605e7 124.027 41.8 16.763 10.202 27216.445 null 227.331 5.91 23.3 33.1 null 6.62 78.73 0.865
PRT Europe Portugal 2020-04-03 9886.0 852.0 802.571 246.0 37.0 24.286 969.529 83.556 78.709 24.125 3.629 2.382 1.44 245.0 24.027 1058.0 103.759 null null null null 107234.0 9438.0 10.517 0.926 7878.0 0.773 0.102 9.8 null 82.41 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
PRT Europe Portugal 2020-10-01 76396.0 854.0 748.571 1977.0 6.0 6.571 7492.223 83.753 73.413 193.886 0.588 0.644 1.18 107.0 10.494 682.0 66.884 null null null null 2675452.0 24530.0 262.384 2.406 21504.0 2.109 3.5e-2 28.7 null 58.8 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
QAT Asia Qatar 2020-11-19 136649.0 208.0 216.714 235.0 0.0 0.143 47430.113 72.196 75.22 81.567 0.0 5.0e-2 1.0 null null null null null null null null 1067758.0 4703.0 370.613 1.632 4545.0 1.578 4.8e-2 21.0 null 64.81 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
ROU Europe Romania 2020-02-19 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
ROU Europe Romania 2020-08-26 81646.0 1256.0 1147.0 3421.0 54.0 45.0 4244.066 65.289 59.623 177.828 2.807 2.339 1.01 502.0 26.095 null null null null null null 1705368.0 25754.0 88.647 1.339 19819.0 1.03 5.8e-2 17.3 null 42.59 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
ROU Europe Romania 2020-10-11 155283.0 2880.0 2769.0 5411.0 53.0 58.286 8071.814 149.706 143.936 281.271 2.755 3.03 1.29 628.0 32.644 null null null null 18152.199 943.575 2672537.0 15709.0 138.922 0.817 23190.0 1.205 0.119 8.4 null 44.44 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
ROU Europe Romania 2020-10-31 241339.0 5753.0 5078.0 6968.0 101.0 92.857 12545.118 299.049 263.961 362.206 5.25 4.827 1.26 923.0 47.979 null null null null null null 3242748.0 36181.0 168.562 1.881 30479.0 1.584 0.167 6.0 null 54.63 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
RUS Europe Russia 2020-02-29 2.0 0.0 0.0 0.0 0.0 0.0 1.4e-2 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816
SYC Africa Seychelles 2020-09-16 140.0 0.0 0.429 0.0 0.0 0.0 1423.632 0.0 4.358 null 0.0 0.0 0.3 null null null null null null null null null null null null null null null null null 34.26 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SGP Asia Singapore 2020-09-21 57606.0 30.0 21.714 27.0 0.0 0.0 9846.602 5.128 3.712 4.615 0.0 0.0 0.61 null null null null null null null null 2692047.0 null 460.152 null 31585.0 5.399 1.0e-3 1454.6 null 51.85 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SGP Asia Singapore 2020-10-15 57892.0 3.0 6.143 28.0 0.0 0.143 9895.488 0.513 1.05 4.786 0.0 2.4e-2 0.63 null null null null null null null null null null null null 29788.0 5.092 0.0 4849.1 null 52.78 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SGP Asia Singapore 2020-10-23 57951.0 10.0 7.143 28.0 0.0 0.0 9905.573 1.709 1.221 4.786 0.0 0.0 1.07 null null null null null null null null null null null null 27814.0 4.754 0.0 3893.9 null 52.78 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SVK Europe Slovakia 2020-06-16 1552.0 0.0 3.0 28.0 0.0 0.0 284.268 0.0 0.549 5.129 0.0 0.0 1.29 null null 0.0 0.0 null null null null 198780.0 1163.0 36.409 0.213 973.0 0.178 3.0e-3 324.3 null 40.74 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVK Europe Slovakia 2020-08-13 2739.0 49.0 37.0 31.0 0.0 0.286 501.681 8.975 6.777 5.678 0.0 5.2e-2 1.31 null null 33.0 6.044 null null null null 289590.0 2738.0 53.042 0.501 2114.0 0.387 1.8e-2 57.1 null 35.19 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
ZAF Africa South Africa 2020-02-03 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
ZAF Africa South Africa 2020-05-08 8895.0 663.0 420.571 178.0 17.0 8.857 149.978 11.179 7.091 3.001 0.287 0.149 1.53 null null null null null null null null 307752.0 15599.0 5.189 0.263 12890.0 0.217 3.3e-2 30.6 null 84.26 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
ZAF Africa South Africa 2020-08-25 613017.0 1567.0 2981.857 13308.0 149.0 149.143 10336.04 26.421 50.277 224.385 2.512 2.515 0.63 null null null null null null null null 3578836.0 14771.0 60.343 0.249 21213.0 0.358 0.141 7.1 null 72.22 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
KOR Asia South Korea 2020-04-16 10613.0 22.0 27.143 229.0 4.0 3.571 207.005 0.429 0.529 4.467 7.8e-2 7.0e-2 0.48 null null null null null null null null 524507.0 4981.0 10.23 9.7e-2 6472.0 0.126 4.0e-3 238.4 null 82.41 5.1269183e7 527.967 43.4 13.914 8.622 35938.374 0.2 85.998 6.8 6.2 40.9 null 12.27 83.03 0.903
KOR Asia South Korea 2020-06-01 11541.0 38.0 45.143 272.0 1.0 0.429 225.106 0.741 0.881 5.305 2.0e-2 8.0e-3 1.14 null null null null null null null null 897333.0 9805.0 17.502 0.191 12855.0 0.251 4.0e-3 284.8 null 55.09 5.1269183e7 527.967 43.4 13.914 8.622 35938.374 0.2 85.998 6.8 6.2 40.9 null 12.27 83.03 0.903
LKA Asia Sri Lanka 2020-11-22 20171.0 400.0 412.0 87.0 4.0 4.143 941.987 18.68 19.24 4.063 0.187 0.193 null null null null null null null null null 747638.0 10679.0 34.915 0.499 10791.0 0.504 3.8e-2 26.2 null 49.54 2.141325e7 341.955 34.1 10.069 5.331 11669.077 0.7 197.093 10.68 0.3 27.0 null 3.6 76.98 0.77
SUR South America Suriname 2020-02-14 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SUR South America Suriname 2020-05-01 10.0 0.0 0.0 1.0 0.0 0.0 17.046 0.0 0.0 1.705 0.0 0.0 null null null null null null null null null null null null null null null null null null 82.41 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SWZ Africa Swaziland 2020-05-20 217.0 9.0 4.286 2.0 0.0 0.0 187.043 7.758 3.694 1.724 0.0 0.0 0.99 null null null null null null null null null null null null null null null null null 84.26 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWE Europe Sweden 2020-05-30 38396.0 432.0 603.571 4633.0 45.0 39.0 3801.859 42.775 59.764 458.746 4.456 3.862 1.1 null null null null null null null null null null null null null null null null null 64.81 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933
CHE Europe Switzerland 2020-11-24 304593.0 4241.0 4294.143 4308.0 86.0 92.0 35194.274 490.027 496.168 497.769 9.937 10.63 null null null null null null null null null 2633317.0 29537.0 304.267 3.413 22717.0 2.625 0.189 5.3 null 49.07 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
THA Asia Thailand 2020-02-12 33.0 0.0 1.143 0.0 0.0 0.0 0.473 0.0 1.6e-2 null 0.0 0.0 null null null null null null null null null 2727.0 116.0 3.9e-2 2.0e-3 108.0 2.0e-3 1.1e-2 94.5 null 0.0 6.9799978e7 135.132 40.1 11.373 6.89 16277.671 0.1 109.861 7.04 1.9 38.8 90.67 2.1 77.15 0.755
THA Asia Thailand 2020-03-22 599.0 188.0 69.286 1.0 0.0 0.0 8.582 2.693 0.993 1.4e-2 0.0 0.0 1.55 null null null null null null null null 39317.0 2058.0 0.563 2.9e-2 2397.0 3.4e-2 2.9e-2 34.6 null 52.31 6.9799978e7 135.132 40.1 11.373 6.89 16277.671 0.1 109.861 7.04 1.9 38.8 90.67 2.1 77.15 0.755
THA Asia Thailand 2020-08-11 3351.0 0.0 4.286 58.0 0.0 0.0 48.009 0.0 6.1e-2 0.831 0.0 0.0 1.02 null null null null null null null null 836077.0 4136.0 11.978 5.9e-2 4105.0 5.9e-2 1.0e-3 957.8 null 52.78 6.9799978e7 135.132 40.1 11.373 6.89 16277.671 0.1 109.861 7.04 1.9 38.8 90.67 2.1 77.15 0.755
TLS Asia Timor 2020-08-19 25.0 0.0 0.0 0.0 0.0 0.0 18.962 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 29.63 1318442.0 87.176 18.0 3.556 1.897 6570.102 30.3 335.346 6.86 6.3 78.1 28.178 5.9 69.5 0.625
TGO Africa Togo 2020-02-09 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 8278737.0 143.366 19.4 2.839 1.525 1429.813 49.2 280.033 6.15 0.9 14.2 10.475 0.7 61.04 0.503
TGO Africa Togo 2020-09-15 1595.0 17.0 11.714 40.0 0.0 0.857 192.662 2.053 1.415 4.832 0.0 0.104 1.06 null null null null null null null null 78651.0 884.0 9.5 0.107 869.0 0.105 1.3e-2 74.2 null 49.07 8278737.0 143.366 19.4 2.839 1.525 1429.813 49.2 280.033 6.15 0.9 14.2 10.475 0.7 61.04 0.503
TUN Africa Tunisia 2020-09-13 6635.0 0.0 227.714 107.0 0.0 2.0 561.402 0.0 19.267 9.054 0.0 0.169 1.48 null null null null null null null null 190241.0 null 16.097 null 3545.0 0.3 6.4e-2 15.6 null 26.85 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUN Africa Tunisia 2020-10-21 45892.0 1442.0 1586.0 740.0 29.0 32.571 3883.026 122.011 134.195 62.613 2.454 2.756 1.24 null null null null null null null null null null null null null null null null null 58.33 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
UGA Africa Uganda 2020-02-21 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 16.67 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-03-03 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 16.67 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-07-16 1051.0 8.0 7.286 0.0 0.0 0.0 22.977 0.175 0.159 null 0.0 0.0 0.88 null null null null null null null null 238709.0 3696.0 5.219 8.1e-2 2433.0 5.3e-2 3.0e-3 333.9 null 81.48 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UGA Africa Uganda 2020-09-17 5380.0 114.0 155.571 60.0 0.0 1.714 117.619 2.492 3.401 1.312 0.0 3.7e-2 1.21 null null null null null null null null 444346.0 2636.0 9.714 5.8e-2 3019.0 6.6e-2 5.2e-2 19.4 null 81.48 4.5741e7 213.759 16.4 2.168 1.308 1697.707 41.6 213.333 2.5 3.4 16.7 21.222 0.5 63.37 0.516
UKR Europe Ukraine 2020-08-11 85023.0 1211.0 1306.143 1979.0 29.0 27.286 1944.105 27.69 29.866 45.251 0.663 0.624 1.16 null null null null null null null null 1195561.0 16127.0 27.337 0.369 16104.0 0.368 8.1e-2 12.3 null 57.87 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
GBR Europe United Kingdom 2020-08-12 315581.0 1039.0 964.143 41414.0 20.0 12.714 4648.69 15.305 14.202 610.052 0.295 0.187 1.21 80.0 1.178 937.0 13.803 null null null null 1.1310805e7 167983.0 166.615 2.474 153405.0 2.26 6.0e-3 159.1 null 69.91 6.7886004e7 272.898 40.8 18.517 12.527 39753.244 0.2 122.137 4.28 20.0 24.7 null 2.54 81.32 0.922
USA North America United States 2020-09-07 6290964.0 23545.0 39247.714 189295.0 276.0 801.571 19005.782 71.132 118.572 571.884 0.834 2.422 0.88 6630.0 20.03 32009.0 96.703 null null null null 9.5865802e7 408656.0 289.622 1.235 809989.0 2.447 null null null 67.13 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
USA North America United States 2020-09-10 6387822.0 36066.0 35026.143 191830.0 907.0 708.857 19298.402 108.96 105.818 579.542 2.74 2.142 0.96 6531.0 19.731 32438.0 97.999 null null null null 9.8444261e7 1034528.0 297.412 3.125 769511.0 2.325 null null null 67.13 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
UZB Asia Uzbekistan 2020-04-04 266.0 39.0 23.143 2.0 0.0 0.0 7.948 1.165 0.691 6.0e-2 0.0 0.0 1.71 null null null null null null null null null null null null null null null null null 90.74 3.3469199e7 76.134 28.2 4.469 2.873 6253.104 null 724.417 7.57 1.3 24.7 null 4.0 71.72 0.71
UZB Asia Uzbekistan 2020-05-29 3468.0 24.0 62.857 14.0 0.0 0.143 103.618 0.717 1.878 0.418 0.0 4.0e-3 1.19 null null null null null null null null null null null null null null null null null 86.11 3.3469199e7 76.134 28.2 4.469 2.873 6253.104 null 724.417 7.57 1.3 24.7 null 4.0 71.72 0.71
ZMB Africa Zambia 2020-04-11 40.0 0.0 0.143 2.0 0.0 0.143 2.176 0.0 8.0e-3 0.109 0.0 8.0e-3 null null null null null null null null null 1454.0 111.0 7.9e-2 6.0e-3 78.0 4.0e-3 2.0e-3 545.5 null 50.93 1.8383956e7 22.995 17.7 2.48 1.542 3689.251 57.5 234.499 3.94 3.1 24.7 13.938 2.0 63.89 0.588
ZMB Africa Zambia 2020-08-22 10831.0 204.0 235.0 279.0 2.0 2.714 589.155 11.097 12.783 15.176 0.109 0.148 0.9 null null null null null null null null 106449.0 785.0 5.79 4.3e-2 1098.0 6.0e-2 0.214 4.7 null 49.07 1.8383956e7 22.995 17.7 2.48 1.542 3689.251 57.5 234.499 3.94 3.1 24.7 13.938 2.0 63.89 0.588
MNE Europe Montenegro 2020-06-20 359.0 4.0 5.0 9.0 0.0 0.0 571.6 6.369 7.961 14.33 0.0 0.0 1.5 null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MNE Europe Montenegro 2020-06-24 389.0 11.0 8.0 9.0 0.0 0.0 619.366 17.514 12.738 14.33 0.0 0.0 2.21 null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MNE Europe Montenegro 2020-09-06 5553.0 131.0 109.0 108.0 1.0 1.429 8841.484 208.578 173.55 171.958 1.592 2.275 1.51 null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MNE Europe Montenegro 2020-09-28 10441.0 128.0 228.429 163.0 5.0 3.571 16624.155 203.802 363.704 259.529 7.961 5.686 0.94 null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MAR Africa Morocco 2020-02-15 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null 10.0 null 0.0 null 0.0 0.0 null null null 0.0 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MOZ Africa Mozambique 2020-11-30 15701.0 88.0 84.571 131.0 1.0 0.714 502.345 2.816 2.706 4.191 3.2e-2 2.3e-2 null null null null null null null null null 231131.0 641.0 7.395 2.1e-2 1128.0 3.6e-2 7.5e-2 13.3 null null 3.1255435e7 37.728 17.7 3.158 1.87 1136.103 62.9 329.942 3.3 5.1 29.1 12.227 0.7 60.85 0.437
MMR Asia Myanmar 2020-04-05 21.0 0.0 1.571 1.0 0.0 0.143 0.386 0.0 2.9e-2 1.8e-2 0.0 3.0e-3 null null null null null null null null null null null null null null null null null null 69.44 5.4409794e7 81.721 29.1 5.732 3.12 5591.597 6.4 202.104 4.61 6.3 35.2 79.287 0.9 67.13 0.578
NPL Asia Nepal 2020-02-09 1.0 0.0 0.0 0.0 0.0 0.0 3.4e-2 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null 1.0 0.0 0.0 null null 16.67 2.9136808e7 204.43 25.0 5.809 3.212 2442.804 15.0 260.797 7.26 9.5 37.8 47.782 0.3 70.78 0.574
NLD Europe Netherlands 2020-09-08 79792.0 1090.0 855.714 6279.0 1.0 2.714 4656.702 63.613 49.94 366.446 5.8e-2 0.158 1.32 49.0 2.86 null null null null null null null null null null 26932.0 1.572 3.2e-2 31.5 null 50.93 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NZL Oceania New Zealand 2020-03-04 3.0 2.0 0.429 0.0 0.0 0.0 0.622 0.415 8.9e-2 null 0.0 0.0 null null null null null null null null null 305.0 25.0 6.3e-2 5.0e-3 null null null null null 19.44 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NZL Oceania New Zealand 2020-04-19 1431.0 9.0 14.429 12.0 1.0 1.143 296.75 1.866 2.992 2.488 0.207 0.237 0.42 null null null null null null null null 86259.0 2306.0 17.888 0.478 3341.0 0.693 4.0e-3 231.5 null 96.3 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NZL Oceania New Zealand 2020-10-10 1871.0 1.0 2.429 25.0 0.0 0.0 387.995 0.207 0.504 5.184 0.0 0.0 0.79 null null null null null null null null 1000765.0 3809.0 207.531 0.79 4523.0 0.938 1.0e-3 1862.1 null 22.22 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NER Africa Niger 2020-04-02 98.0 24.0 12.571 5.0 0.0 0.571 4.048 0.991 0.519 0.207 0.0 2.4e-2 null null null null null null null null null null null null null null null null null null 61.11 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
NER Africa Niger 2020-04-26 696.0 12.0 6.857 29.0 2.0 1.286 28.752 0.496 0.283 1.198 8.3e-2 5.3e-2 0.83 null null null null null null null null null null null null null null null null null 61.11 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
NER Africa Niger 2020-11-28 1484.0 12.0 19.0 70.0 0.0 0.0 61.306 0.496 0.785 2.892 0.0 0.0 null null null null null null null null null null null null null null null null null null 24.07 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
NOR Europe Norway 2020-07-05 8930.0 4.0 10.714 251.0 0.0 0.286 1647.224 0.738 1.976 46.299 0.0 5.3e-2 0.85 null null null null null null null null 373972.0 1192.0 68.983 0.22 3996.0 0.737 3.0e-3 373.0 null 37.04 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
PAK Asia Pakistan 2020-04-03 2818.0 132.0 189.0 41.0 1.0 4.143 12.757 0.598 0.856 0.186 5.0e-3 1.9e-2 1.61 null null null null null null null null 32930.0 2622.0 0.149 1.2e-2 2814.0 1.3e-2 6.7e-2 14.9 null 96.3 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PAK Asia Pakistan 2020-09-28 311516.0 675.0 661.429 6474.0 8.0 7.143 1410.262 3.056 2.994 29.308 3.6e-2 3.2e-2 1.05 null null null null null null null null 3449541.0 28887.0 15.616 0.131 36461.0 0.165 1.8e-2 55.1 null 41.2 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PAN North America Panama 2020-02-17 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PAN North America Panama 2020-06-15 21422.0 4.0 652.571 448.0 11.0 7.143 4964.809 0.927 151.241 103.829 2.549 1.655 1.25 null null null null null null null null 90950.0 1984.0 21.079 0.46 2034.0 0.471 0.321 3.1 null 83.33 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PAN North America Panama 2020-07-27 61442.0 1146.0 1002.286 1322.0 28.0 27.857 14239.931 265.599 232.292 306.39 6.489 6.456 1.01 null null null null null null null null 208659.0 3450.0 48.359 0.8 3096.0 0.718 0.324 3.1 null 80.56 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PRY South America Paraguay 2020-10-27 60557.0 448.0 640.571 1347.0 14.0 16.571 8490.255 62.811 89.81 188.853 1.963 2.323 1.04 null null null null null null null null 352711.0 2422.0 49.451 0.34 2689.0 0.377 0.238 4.2 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PHL Asia Philippines 2020-01-25 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 11.11 1.09581085e8 351.873 25.2 4.803 2.661 7599.188 null 370.437 7.07 7.8 40.8 78.463 1.0 71.23 0.699
PHL Asia Philippines 2020-11-10 399749.0 1300.0 1798.286 7661.0 14.0 49.0 3647.974 11.863 16.411 69.912 0.128 0.447 0.92 null null null null null null null null 4858722.0 29766.0 44.339 0.272 30904.0 0.282 5.8e-2 17.2 null 68.98 1.09581085e8 351.873 25.2 4.803 2.661 7599.188 null 370.437 7.07 7.8 40.8 78.463 1.0 71.23 0.699
PHL Asia Philippines 2020-11-15 407838.0 1501.0 1634.714 7832.0 41.0 41.857 3721.792 13.698 14.918 71.472 0.374 0.382 0.9 null null null null null null null null 5001441.0 24190.0 45.641 0.221 28245.0 0.258 5.8e-2 17.3 null 68.98 1.09581085e8 351.873 25.2 4.803 2.661 7599.188 null 370.437 7.07 7.8 40.8 78.463 1.0 71.23 0.699
POL Europe Poland 2020-06-15 29788.0 396.0 375.429 1256.0 9.0 12.857 787.072 10.463 9.92 33.187 0.238 0.34 0.98 null null 1736.0 45.869 null null null null 1086927.0 10676.0 28.719 0.282 16196.0 0.428 2.3e-2 43.1 null 50.93 3.7846605e7 124.027 41.8 16.763 10.202 27216.445 null 227.331 5.91 23.3 33.1 null 6.62 78.73 0.865
PRT Europe Portugal 2020-06-14 36690.0 227.0 285.286 1517.0 5.0 5.429 3598.22 22.262 27.978 148.774 0.49 0.532 1.04 73.0 7.159 419.0 41.092 null null 113.114 11.093 1010163.0 4754.0 99.068 0.466 8692.0 0.852 3.3e-2 30.5 null 69.91 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
QAT Asia Qatar 2020-07-19 106648.0 340.0 435.714 157.0 3.0 1.429 37016.931 118.012 151.234 54.494 1.041 0.496 0.74 null null null null null null null null 441700.0 2710.0 153.312 0.941 4145.0 1.439 0.105 9.5 null 80.56 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
QAT Asia Qatar 2020-11-24 137642.0 227.0 202.857 236.0 0.0 0.143 47774.777 78.79 70.411 81.914 0.0 5.0e-2 null null null null null null null null null null null null null null null null null null null 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
ROU Europe Romania 2020-08-31 87540.0 755.0 1172.857 3621.0 43.0 44.571 4550.444 39.246 60.967 188.224 2.235 2.317 0.99 506.0 26.303 null null null null null null 1802946.0 7313.0 93.72 0.38 20544.0 1.068 5.7e-2 17.5 null 42.59 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
RUS Europe Russia 2020-08-21 944671.0 4838.0 4841.857 16148.0 90.0 97.286 6473.255 33.152 33.178 110.652 0.617 0.667 0.97 null null null null null null null null null null null null 272755.0 1.869 1.8e-2 56.3 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816
SAU Asia Saudi Arabia 2020-02-23 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 3.4813867e7 15.322 31.9 3.295 1.845 49045.411 null 259.538 17.72 1.8 25.4 null 2.7 75.13 0.853
SAU Asia Saudi Arabia 2020-05-25 74795.0 2235.0 2492.857 399.0 9.0 11.286 2148.426 64.199 71.605 11.461 0.259 0.324 1.09 null null null null null null null null 780041.0 16664.0 22.406 0.479 17237.0 0.495 0.145 6.9 null 91.67 3.4813867e7 15.322 31.9 3.295 1.845 49045.411 null 259.538 17.72 1.8 25.4 null 2.7 75.13 0.853
SAU Asia Saudi Arabia 2020-06-11 116021.0 3733.0 3266.286 857.0 38.0 35.143 3332.609 107.227 93.821 24.617 1.092 1.009 1.18 null null null null null null null null 1110934.0 27324.0 31.911 0.785 22952.0 0.659 0.142 7.0 null 69.91 3.4813867e7 15.322 31.9 3.295 1.845 49045.411 null 259.538 17.72 1.8 25.4 null 2.7 75.13 0.853
SYC Africa Seychelles 2020-02-25 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 16.67 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SYC Africa Seychelles 2020-09-02 136.0 0.0 0.0 0.0 0.0 0.0 1382.957 0.0 0.0 null 0.0 0.0 0.21 null null null null null null null null null null null null null null null null null 34.26 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SGP Asia Singapore 2020-06-05 37183.0 261.0 474.714 24.0 0.0 0.143 6355.696 44.613 81.143 4.102 0.0 2.4e-2 0.83 null null null null null null null null null null null null 11066.0 1.892 4.3e-2 23.3 null 77.78 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SGP Asia Singapore 2020-11-07 58054.0 7.0 5.571 28.0 0.0 0.0 9923.179 1.197 0.952 4.786 0.0 0.0 0.98 null null null null null null null null null null null null 27292.0 4.665 0.0 4898.9 null 52.78 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SVK Europe Slovakia 2020-07-26 2179.0 38.0 28.571 28.0 0.0 0.0 399.11 6.96 5.233 5.129 0.0 0.0 1.28 null null 12.0 2.198 null null null null 253691.0 216.0 46.467 4.0e-2 1923.0 0.352 1.5e-2 67.3 null 37.96 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVK Europe Slovakia 2020-09-25 8048.0 419.0 256.0 41.0 0.0 0.286 1474.089 76.745 46.89 7.51 0.0 5.2e-2 1.47 null null 143.0 26.192 null null null null 440331.0 6483.0 80.652 1.187 4504.0 0.825 5.7e-2 17.6 null 31.48 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVN Europe Slovenia 2020-01-23 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 2078932.0 102.619 44.5 19.062 12.93 31400.84 null 153.493 7.25 20.1 25.0 null 4.5 81.32 0.896
SVN Europe Slovenia 2020-10-05 6673.0 175.0 183.571 156.0 1.0 1.0 3209.821 84.178 88.301 75.039 0.481 0.481 1.45 21.0 10.101 107.0 51.469 null null null null 238686.0 2509.0 114.812 1.207 2564.0 1.233 7.2e-2 14.0 null 43.52 2078932.0 102.619 44.5 19.062 12.93 31400.84 null 153.493 7.25 20.1 25.0 null 4.5 81.32 0.896
ZAF Africa South Africa 2020-11-23 769759.0 2080.0 2498.571 20968.0 65.0 93.429 12978.857 35.071 42.128 353.54 1.096 1.575 null null null null null null null null null 5305343.0 14377.0 89.453 0.242 23199.0 0.391 0.108 9.3 null 44.44 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
KOR Asia South Korea 2020-03-31 9786.0 125.0 107.0 162.0 4.0 6.0 190.875 2.438 2.087 3.16 7.8e-2 0.117 0.96 null null null null null null null null 393672.0 12009.0 7.679 0.234 8647.0 0.169 1.2e-2 80.8 null 75.93 5.1269183e7 527.967 43.4 13.914 8.622 35938.374 0.2 85.998 6.8 6.2 40.9 null 12.27 83.03 0.903
KOR Asia South Korea 2020-10-11 24703.0 97.0 77.0 433.0 1.0 1.571 481.829 1.892 1.502 8.446 2.0e-2 3.1e-2 1.15 null null null null null null null null 2391180.0 5478.0 46.64 0.107 9564.0 0.187 8.0e-3 124.2 null 54.63 5.1269183e7 527.967 43.4 13.914 8.622 35938.374 0.2 85.998 6.8 6.2 40.9 null 12.27 83.03 0.903
ESP Europe Spain 2020-08-15 342813.0 0.0 4064.429 28617.0 0.0 16.286 7332.148 0.0 86.931 612.066 0.0 0.348 1.41 null null null null null null null null null null null null 58819.0 1.258 6.9e-2 14.5 null 62.5 4.6754783e7 93.105 45.5 19.436 13.799 34272.36 1.0 99.403 7.17 27.4 31.4 null 2.97 83.56 0.891
LKA Asia Sri Lanka 2020-06-14 1889.0 5.0 7.714 11.0 0.0 0.0 88.216 0.234 0.36 0.514 0.0 0.0 0.97 null null null null null null null null 87083.0 1116.0 4.067 5.2e-2 1447.0 6.8e-2 5.0e-3 187.6 null 55.56 2.141325e7 341.955 34.1 10.069 5.331 11669.077 0.7 197.093 10.68 0.3 27.0 null 3.6 76.98 0.77
SUR South America Suriname 2020-06-04 82.0 8.0 10.0 1.0 0.0 0.0 139.781 13.637 17.046 1.705 0.0 0.0 null null null null null null null null null null null null null null null null null null 93.52 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SWZ Africa Swaziland 2020-01-31 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWZ Africa Swaziland 2020-02-21 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWZ Africa Swaziland 2020-04-14 15.0 0.0 0.714 0.0 0.0 0.0 12.929 0.0 0.616 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 89.81 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWZ Africa Swaziland 2020-09-17 5191.0 36.0 28.143 103.0 2.0 0.714 4474.367 31.03 24.258 88.781 1.724 0.616 0.84 null null null null null null null null null null null null null null null null null 64.81 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWZ Africa Swaziland 2020-11-29 6410.0 4.0 27.286 121.0 0.0 0.143 5525.081 3.448 23.519 104.296 0.0 0.123 null null null null null null null null null null null null null null null null null null null 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWE Europe Sweden 2020-06-25 64009.0 1281.0 1046.714 5424.0 12.0 22.0 6337.983 126.841 103.643 537.069 1.188 2.178 1.01 null null null null null null null null null null null null null null null null null 59.26 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933
CHE Europe Switzerland 2020-04-25 28894.0 217.0 212.857 1599.0 10.0 33.0 3338.564 25.073 24.595 184.757 1.155 3.813 0.59 null null null null null null null null 253431.0 4032.0 29.283 0.466 4071.0 0.47 5.2e-2 19.1 null 73.15 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
TZA Africa Tanzania 2020-04-23 284.0 0.0 27.143 10.0 0.0 0.857 4.754 0.0 0.454 0.167 0.0 1.4e-2 0.54 null null null null null null null null null null null null null null null null null 50.0 5.9734213e7 64.699 17.7 3.108 1.874 2683.304 49.1 217.288 5.75 3.3 26.7 47.953 0.7 65.46 0.538
TZA Africa Tanzania 2020-11-09 509.0 0.0 0.0 21.0 0.0 0.0 8.521 0.0 0.0 0.352 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 13.89 5.9734213e7 64.699 17.7 3.108 1.874 2683.304 49.1 217.288 5.75 3.3 26.7 47.953 0.7 65.46 0.538
ALB Europe Albania 2020-02-07 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
ALB Europe Albania 2020-09-20 12385.0 159.0 147.429 362.0 4.0 4.0 4303.635 55.251 51.23 125.791 1.39 1.39 0.99 null null null null null null null null null null null null null null null null null 54.63 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
DZA Africa Algeria 2020-01-27 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
DZA Africa Algeria 2020-03-09 20.0 1.0 2.429 0.0 0.0 0.0 0.456 2.3e-2 5.5e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
DZA Africa Algeria 2020-09-06 46364.0 293.0 316.857 1556.0 7.0 7.857 1057.307 6.682 7.226 35.484 0.16 0.179 0.84 null null null null null null null null null null null null null null null null null 75.93 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
ARG South America Argentina 2020-05-20 9283.0 474.0 343.429 403.0 10.0 10.571 205.395 10.488 7.599 8.917 0.221 0.234 1.4 null null null null null null null null null null null null null null null null null 90.74 4.5195777e7 16.177 31.9 11.198 7.441 18933.907 0.6 191.032 5.5 16.2 27.7 null 5.0 76.67 0.825
ARG South America Argentina 2020-08-10 253868.0 7369.0 6732.143 4764.0 158.0 135.857 5617.073 163.046 148.955 105.408 3.496 3.006 1.13 null null null null null null null null null null null null null null null null null 87.96 4.5195777e7 16.177 31.9 11.198 7.441 18933.907 0.6 191.032 5.5 16.2 27.7 null 5.0 76.67 0.825
ARG South America Argentina 2020-09-21 640147.0 8782.0 10671.571 13482.0 429.0 259.286 14163.868 194.31 236.119 298.302 9.492 5.737 1.06 null null null null null null null null null null null null null null null null null 87.96 4.5195777e7 16.177 31.9 11.198 7.441 18933.907 0.6 191.032 5.5 16.2 27.7 null 5.0 76.67 0.825
ARM Asia Armenia 2020-10-04 52496.0 571.0 442.286 977.0 5.0 3.714 17715.779 192.695 149.258 329.707 1.687 1.253 1.37 null null null null null null null null null null null null null null null null null null 2963234.0 102.931 35.7 11.232 7.571 8787.58 1.8 341.01 7.11 1.5 52.1 94.043 4.2 75.09 0.755
AUS Oceania Australia 2020-07-30 16903.0 605.0 472.571 196.0 7.0 8.143 662.866 23.726 18.532 7.686 0.275 0.319 1.23 null null null null null null null null 4164454.0 66205.0 163.313 2.596 63517.0 2.491 7.0e-3 134.4 null 68.06 2.5499881e7 3.202 37.9 15.504 10.129 44648.71 0.5 107.791 5.07 13.0 16.5 null 3.84 83.44 0.939
AUT Europe Austria 2020-05-27 16591.0 34.0 34.0 645.0 2.0 1.714 1842.134 3.775 3.775 71.616 0.222 0.19 0.8 32.0 3.553 84.0 9.327 null null null null 418706.0 7521.0 46.49 0.835 5588.0 0.62 6.0e-3 164.4 null 59.26 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-08-29 26985.0 395.0 274.714 733.0 0.0 0.143 2996.203 43.858 30.502 81.387 0.0 1.6e-2 1.15 30.0 3.331 114.0 12.658 null null null null 1160743.0 12799.0 128.88 1.421 10513.0 1.167 2.6e-2 38.3 null 35.19 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AZE Asia Azerbaijan 2020-03-25 93.0 6.0 9.286 2.0 1.0 0.143 9.172 0.592 0.916 0.197 9.9e-2 1.4e-2 null null null null null null null null null null null null null null null null null null 68.52 1.0139175e7 119.309 32.4 6.018 3.871 15847.419 null 559.812 7.11 0.3 42.5 83.241 4.7 73.0 0.757
AZE Asia Azerbaijan 2020-05-01 1854.0 50.0 37.429 25.0 1.0 0.571 182.855 4.931 3.691 2.466 9.9e-2 5.6e-2 1.14 null null null null null null null null null null null null null null null null null 87.96 1.0139175e7 119.309 32.4 6.018 3.871 15847.419 null 559.812 7.11 0.3 42.5 83.241 4.7 73.0 0.757
BHS North America Bahamas 2020-03-29 11.0 1.0 1.0 0.0 0.0 0.0 27.972 2.543 2.543 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHS North America Bahamas 2020-07-26 342.0 16.0 27.0 11.0 0.0 0.0 869.68 40.687 68.659 27.972 0.0 0.0 1.98 null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHR Asia Bahrain 2020-06-01 11871.0 473.0 385.714 19.0 0.0 0.714 6976.445 277.976 226.68 11.166 0.0 0.42 1.19 null null null null null null null null 323162.0 6355.0 189.918 3.735 5611.0 3.298 6.9e-2 14.5 null 75.0 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-08-17 47185.0 350.0 398.286 173.0 3.0 1.429 27730.061 205.691 234.068 101.67 1.763 0.84 1.01 null null null null null null null null 972003.0 9669.0 571.235 5.682 9992.0 5.872 4.0e-2 25.1 null 69.44 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-10-10 75287.0 427.0 425.286 273.0 2.0 2.143 44245.27 250.943 249.935 160.439 1.175 1.259 0.91 null null null null null null null null 1530133.0 10537.0 899.241 6.192 10173.0 5.979 4.2e-2 23.9 null 63.89 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BLR Europe Belarus 2020-03-08 6.0 0.0 0.714 0.0 0.0 0.0 0.635 0.0 7.6e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 9449321.0 46.858 40.3 14.799 9.788 17167.967 null 443.129 5.18 10.5 46.1 null 11.0 74.79 0.808
BLR Europe Belarus 2020-11-20 120847.0 1457.0 1317.857 1081.0 7.0 6.857 12788.961 154.191 139.466 114.4 0.741 0.726 1.17 null null null null null null null null null null null null 27254.0 2.884 4.8e-2 20.7 null 22.22 9449321.0 46.858 40.3 14.799 9.788 17167.967 null 443.129 5.18 10.5 46.1 null 11.0 74.79 0.808
BEL Europe Belgium 2020-03-22 3401.0 586.0 359.286 75.0 8.0 10.143 293.452 50.563 31.001 6.471 0.69 0.875 2.21 322.0 27.783 1646.0 142.024 null null 1541.84 133.036 31478.0 1414.0 2.716 0.122 2438.0 0.21 0.147 6.8 null 81.48 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-05-01 49032.0 513.0 677.0 7703.0 109.0 146.286 4230.684 44.264 58.414 664.647 9.405 12.622 0.71 690.0 59.536 3109.0 268.257 null null null null 430786.0 23551.0 37.17 2.032 19999.0 1.726 3.4e-2 29.5 null 81.48 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-11-20 553680.0 3416.0 4095.429 15352.0 156.0 178.0 47773.8 294.747 353.371 1324.634 13.46 15.359 0.68 1256.0 108.373 5418.0 467.487 null null null null 5670902.0 34396.0 489.309 2.968 29760.0 2.568 0.138 7.3 null 63.89 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEN Africa Benin 2020-03-02 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BEN Africa Benin 2020-03-23 5.0 3.0 0.571 0.0 0.0 0.0 0.412 0.247 4.7e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 27.78 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BIH Europe Bosnia and Herzegovina 2020-02-04 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BIH Europe Bosnia and Herzegovina 2020-04-21 1342.0 33.0 37.0 51.0 2.0 1.571 409.045 10.058 11.278 15.545 0.61 0.479 1.16 null null null null null null null null null null null null null null null null null 92.59 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BIH Europe Bosnia and Herzegovina 2020-11-06 59427.0 1921.0 1612.857 1457.0 55.0 35.0 18113.487 585.525 491.603 444.097 16.764 10.668 1.17 null null null null null null null null null null null null null null null null null 40.74 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BWA Africa Botswana 2020-02-04 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BWA Africa Botswana 2020-03-26 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 61.11 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BWA Africa Botswana 2020-07-29 804.0 65.0 40.286 2.0 0.0 0.143 341.891 27.64 17.131 0.85 0.0 6.1e-2 0.83 null null null null null null null null null null null null null null null null null 54.17 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BWA Africa Botswana 2020-09-19 2567.0 0.0 45.0 13.0 0.0 0.429 1091.586 0.0 19.136 5.528 0.0 0.182 0.77 null null null null null null null null null null null null null null null null null 58.33 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BRA South America Brazil 2020-01-26 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-06-04 614941.0 30925.0 25243.286 34021.0 1473.0 1038.143 2893.031 145.489 118.759 160.054 6.93 4.884 1.22 null null null null null null null null null null null null null null null null null 77.31 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-10-13 5113628.0 10220.0 20641.0 150998.0 309.0 500.571 24057.406 48.081 97.107 710.38 1.454 2.355 0.95 null null null null null null null null null null null null null null null null null 63.43 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRN Asia Brunei 2020-04-23 138.0 0.0 0.286 1.0 0.0 0.0 315.441 0.0 0.653 2.286 0.0 0.0 0.12 null null null null null null null null null null null null null null null null null 58.33 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BRN Asia Brunei 2020-06-06 141.0 0.0 0.0 2.0 0.0 0.0 322.298 0.0 0.0 4.572 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 49.07 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BRN Asia Brunei 2020-08-21 143.0 0.0 0.143 3.0 0.0 0.0 326.87 0.0 0.327 6.857 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 40.74 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BGR Europe Bulgaria 2020-03-29 346.0 15.0 22.714 8.0 1.0 0.714 49.795 2.159 3.269 1.151 0.144 0.103 1.14 null null null null null null null null null null null null null null null null null 73.15 6948445.0 65.18 44.7 20.801 13.272 18563.307 1.5 424.688 5.81 30.1 44.4 null 7.454 75.05 0.813
BGR Europe Bulgaria 2020-05-29 2485.0 8.0 16.143 136.0 2.0 1.571 357.634 1.151 2.323 19.573 0.288 0.226 0.96 20.0 2.878 191.0 27.488 null null null null 79389.0 1725.0 11.425 0.248 1112.0 0.16 1.5e-2 68.9 null 56.48 6948445.0 65.18 44.7 20.801 13.272 18563.307 1.5 424.688 5.81 30.1 44.4 null 7.454 75.05 0.813
BFA Africa Burkina Faso 2020-10-24 2444.0 11.0 14.429 65.0 0.0 0.0 116.919 0.526 0.69 3.11 0.0 0.0 0.96 null null null null null null null null null null null null null null null null null 22.22 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
KHM Asia Cambodia 2020-11-16 303.0 1.0 0.429 0.0 0.0 0.0 18.123 6.0e-2 2.6e-2 null 0.0 0.0 0.87 null null null null null null null null null null null null null null null null null 42.59 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-11-29 323.0 8.0 2.429 0.0 0.0 0.0 19.319 0.478 0.145 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
CAN North America Canada 2020-03-04 33.0 3.0 3.143 0.0 0.0 0.0 0.874 7.9e-2 8.3e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-06-18 101877.0 386.0 388.286 8361.0 49.0 41.429 2699.289 10.227 10.288 221.529 1.298 1.098 0.79 null null null null null null null null 2295440.0 40959.0 60.819 1.085 38135.0 1.01 1.0e-2 98.2 null 70.83 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-07-05 107394.0 209.0 314.429 8739.0 7.0 22.429 2845.465 5.538 8.331 231.545 0.185 0.594 0.94 null null null null null null null null 2940925.0 25971.0 77.921 0.688 37746.0 1.0 8.0e-3 120.0 null 68.98 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-08-23 126817.0 257.0 401.857 9119.0 2.0 6.429 3360.089 6.809 10.647 241.613 5.3e-2 0.17 1.1 null null null null null null null null 5115490.0 38756.0 135.538 1.027 48161.0 1.276 8.0e-3 119.8 null 64.35 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CPV Africa Cape Verde 2020-03-11 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 555988.0 135.58 25.7 4.46 3.437 6222.554 null 182.219 2.42 2.1 16.5 null 2.1 72.98 0.654
CPV Africa Cape Verde 2020-05-10 246.0 10.0 11.571 2.0 0.0 0.0 442.456 17.986 20.812 3.597 0.0 0.0 1.06 null null null null null null null null null null null null null null null null null 79.63 555988.0 135.58 25.7 4.46 3.437 6222.554 null 182.219 2.42 2.1 16.5 null 2.1 72.98 0.654
CHL South America Chile 2020-02-02 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHL South America Chile 2020-08-09 373056.0 2033.0 1903.571 10077.0 66.0 67.0 19515.166 106.35 99.579 527.144 3.453 3.505 0.94 null null null null null null null null 1833332.0 28460.0 95.905 1.489 24009.0 1.256 7.9e-2 12.6 null 87.5 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHL South America Chile 2020-09-10 428669.0 1642.0 1738.286 11781.0 79.0 51.286 22424.373 85.896 90.933 616.283 4.133 2.683 0.99 null null null null null null null null 2711664.0 28313.0 141.852 1.481 30134.0 1.576 5.8e-2 17.3 null 81.94 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHN Asia China 2020-06-06 84186.0 9.0 8.286 4638.0 0.0 0.0 58.49 6.0e-3 6.0e-3 3.222 0.0 0.0 1.3 null null null null null null null null null null null null null null null null null 78.24 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
COL South America Colombia 2020-05-18 16295.0 721.0 668.857 592.0 18.0 16.143 320.245 14.17 13.145 11.635 0.354 0.317 1.29 null null null null null null null null 201808.0 5391.0 3.966 0.106 6125.0 0.12 null null null 87.04 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COM Africa Comoros 2020-05-27 87.0 0.0 7.571 2.0 1.0 0.143 100.047 0.0 8.707 2.3 1.15 0.164 null null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
CYP Europe Cyprus 2020-07-05 1003.0 1.0 1.286 19.0 0.0 0.0 1145.109 1.142 1.468 21.692 0.0 0.0 1.24 null null null null null null null null 164347.0 1445.0 187.632 1.65 1359.0 1.552 1.0e-3 1056.8 null 50.0 875899.0 127.657 37.3 13.416 8.563 32415.132 null 141.171 9.24 19.6 52.7 null 3.4 80.98 0.869
CZE Europe Czech Republic 2020-01-23 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
CZE Europe Czech Republic 2020-02-18 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null 1.0 0.0 0.0 null null 16.67 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
CZE Europe Czech Republic 2020-04-26 7404.0 52.0 94.0 220.0 2.0 4.857 691.382 4.856 8.778 20.544 0.187 0.454 0.65 72.0 6.723 310.0 28.948 118.656 11.08 480.656 44.883 222658.0 3381.0 20.792 0.316 6655.0 0.621 1.4e-2 70.8 null 60.19 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
CZE Europe Czech Republic 2020-11-01 341644.0 6542.0 11935.286 3429.0 178.0 175.429 31902.566 610.889 1114.512 320.199 16.622 16.381 1.01 1163.0 108.6 7486.0 699.039 1794.919 167.609 11793.174 1101.241 2356389.0 20643.0 220.039 1.928 38502.0 3.595 0.31 3.2 null 73.15 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
CZE Europe Czech Republic 2020-11-26 511520.0 6305.0 4252.143 7779.0 168.0 129.286 47765.511 588.758 397.063 726.4 15.688 12.073 null 743.0 69.381 5048.0 471.38 null null null null 3023731.0 20489.0 282.355 1.913 19862.0 1.855 0.214 4.7 null 69.44 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
DNK Europe Denmark 2020-08-07 14747.0 161.0 102.714 617.0 0.0 0.286 2546.009 27.796 17.733 106.523 0.0 4.9e-2 1.37 2.0 0.345 25.0 4.316 null null null null 1698747.0 27074.0 293.282 4.674 22516.0 3.887 5.0e-3 219.2 null 50.93 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DNK Europe Denmark 2020-08-11 15291.0 156.0 139.571 621.0 1.0 0.714 2639.928 26.933 24.096 107.213 0.173 0.123 1.33 2.0 0.345 20.0 3.453 null null null null 1804944.0 33524.0 311.616 5.788 26429.0 4.563 5.0e-3 189.4 null 50.93 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DJI Africa Djibouti 2020-05-08 1135.0 2.0 5.429 3.0 0.0 0.143 1148.783 2.024 5.494 3.036 0.0 0.145 1.15 null null null null null null null null null null null null null null null null null 94.44 988002.0 41.285 25.4 4.213 2.38 2705.406 22.5 258.037 6.05 1.7 24.5 null 1.4 67.11 0.476
DOM North America Dominican Republic 2020-03-13 5.0 0.0 0.429 0.0 0.0 0.0 0.461 0.0 4.0e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
DOM North America Dominican Republic 2020-10-18 121347.0 422.0 410.0 2199.0 4.0 3.714 11186.216 38.902 37.795 202.712 0.369 0.342 0.96 null null null null null null null null 545492.0 3265.0 50.285 0.301 3427.0 0.316 0.12 8.4 null 67.59 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
DOM North America Dominican Republic 2020-11-17 134697.0 494.0 509.429 2290.0 4.0 3.0 12416.869 45.539 46.961 211.101 0.369 0.277 1.16 null null null null null null null null 659160.0 3869.0 60.764 0.357 3716.0 0.343 0.137 7.3 null 64.81 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
ECU South America Ecuador 2020-05-31 39098.0 527.0 334.571 3358.0 24.0 35.714 2216.055 29.87 18.963 190.33 1.36 2.024 1.02 null null null null null null null null 68988.0 757.0 3.91 4.3e-2 1009.0 5.7e-2 null null null 86.11 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
ECU South America Ecuador 2020-06-13 46356.0 578.0 518.286 3874.0 46.0 38.0 2627.435 32.761 29.376 219.576 2.607 2.154 1.13 null null null null null null null null 88946.0 1385.0 5.041 7.9e-2 1403.0 8.0e-2 null null null 83.33 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
EGY Africa Egypt 2020-03-20 285.0 29.0 29.286 8.0 2.0 0.857 2.785 0.283 0.286 7.8e-2 2.0e-2 8.0e-3 1.5 null null null null null null null null null null null null null null null null null 29.63 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-07-06 76222.0 969.0 1352.571 3422.0 79.0 78.571 744.833 9.469 13.217 33.439 0.772 0.768 0.86 null null null null null null null null null null null null null null null null null 60.19 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-08-28 98285.0 223.0 162.429 5362.0 20.0 18.714 960.43 2.179 1.587 52.397 0.195 0.183 1.05 null null null null null null null null null null null null null null null null null 62.96 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-09-19 101900.0 128.0 149.143 5750.0 17.0 17.571 995.755 1.251 1.457 56.188 0.166 0.172 0.9 null null null null null null null null null null null null null null null null null 62.96 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-10-30 107376.0 167.0 163.714 6258.0 11.0 11.714 1049.266 1.632 1.6 61.152 0.107 0.114 1.12 null null null null null null null null null null null null null null null null null 75.93 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
SLV North America El Salvador 2020-05-30 2395.0 117.0 82.286 46.0 4.0 1.857 369.245 18.038 12.686 7.092 0.617 0.286 1.13 null null null null null null null null 89358.0 2386.0 13.777 0.368 2392.0 0.369 3.4e-2 29.1 null 100.0 6486201.0 307.811 27.6 8.273 5.417 7292.458 2.2 167.295 8.87 2.5 18.8 90.65 1.3 73.32 0.674
ERI Africa Eritrea 2020-05-24 39.0 0.0 0.0 0.0 0.0 0.0 10.997 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 93.52 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
ERI Africa Eritrea 2020-05-28 39.0 0.0 0.0 0.0 0.0 0.0 10.997 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 93.52 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
ERI Africa Eritrea 2020-08-17 285.0 0.0 0.0 0.0 0.0 0.0 80.363 0.0 0.0 null 0.0 0.0 0.28 null null null null null null null null null null null null null null null null null 89.81 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
ERI Africa Eritrea 2020-08-22 306.0 0.0 3.0 0.0 0.0 0.0 86.284 0.0 0.846 null 0.0 0.0 0.28 null null null null null null null null null null null null null null null null null 89.81 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
EST Europe Estonia 2020-09-05 2491.0 35.0 18.286 64.0 0.0 0.0 1877.819 26.384 13.785 48.246 0.0 0.0 1.32 0.0 0.0 7.0 5.277 null null null null 188267.0 1342.0 141.923 1.012 2061.0 1.554 9.0e-3 112.7 null 23.15 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
ETH Africa Ethiopia 2020-02-26 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
ETH Africa Ethiopia 2020-04-29 130.0 4.0 2.0 3.0 0.0 0.0 1.131 3.5e-2 1.7e-2 2.6e-2 0.0 0.0 0.56 null null null null null null null null 16434.0 766.0 0.143 7.0e-3 952.0 8.0e-3 2.0e-3 476.0 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
ETH Africa Ethiopia 2020-08-07 21452.0 552.0 560.286 380.0 15.0 15.143 186.598 4.802 4.874 3.305 0.13 0.132 1.06 null null null null null null null null 478017.0 9203.0 4.158 8.0e-2 7952.0 6.9e-2 7.0e-2 14.2 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
ETH Africa Ethiopia 2020-08-24 42143.0 1472.0 1543.857 692.0 14.0 21.143 366.577 12.804 13.429 6.019 0.122 0.184 1.17 null null null null null null null null 775908.0 18851.0 6.749 0.164 20957.0 0.182 7.4e-2 13.6 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
FIN Europe Finland 2020-04-02 1518.0 72.0 80.0 19.0 2.0 2.0 273.972 12.995 14.439 3.429 0.361 0.361 1.32 65.0 11.731 160.0 28.877 null null null null 27466.0 2331.0 4.957 0.421 1422.0 0.257 5.6e-2 17.8 null 67.59 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-08-07 7554.0 22.0 17.429 331.0 0.0 0.286 1363.361 3.971 3.146 59.74 0.0 5.2e-2 1.29 0.0 0.0 3.0 0.541 null null null null 428351.0 8815.0 77.31 1.591 6469.0 1.168 3.0e-3 371.2 null 35.19 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-08-14 7700.0 17.0 20.857 333.0 0.0 0.286 1389.712 3.068 3.764 60.101 0.0 5.2e-2 1.25 0.0 0.0 6.0 1.083 null null null null 491843.0 9621.0 88.769 1.736 9070.0 1.637 2.0e-3 434.9 null 32.41 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-09-04 8225.0 25.0 26.143 336.0 0.0 0.143 1484.465 4.512 4.718 60.642 0.0 2.6e-2 1.25 1.0 0.18 14.0 2.527 null null null null 798694.0 16079.0 144.15 2.902 15326.0 2.766 2.0e-3 586.2 null 32.41 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
GMB Africa Gambia 2020-02-24 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GMB Africa Gambia 2020-03-18 1.0 0.0 0.143 0.0 0.0 0.0 0.414 0.0 5.9e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 45.37 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GMB Africa Gambia 2020-04-28 10.0 0.0 0.0 1.0 0.0 0.0 4.138 0.0 0.0 0.414 0.0 0.0 null null null null null null null null null null null null null null null null null null 78.7 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GMB Africa Gambia 2020-10-06 3613.0 19.0 4.857 117.0 2.0 0.714 1495.036 7.862 2.01 48.414 0.828 0.296 0.7 null null null null null null null null null null null null null null null null null 75.93 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
GEO Asia Georgia 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 3989175.0 65.032 38.7 14.864 10.244 9745.079 4.2 496.218 7.11 5.3 55.5 null 2.6 73.77 0.78
GEO Asia Georgia 2020-03-06 4.0 0.0 0.429 0.0 0.0 0.0 1.003 0.0 0.107 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 41.67 3989175.0 65.032 38.7 14.864 10.244 9745.079 4.2 496.218 7.11 5.3 55.5 null 2.6 73.77 0.78
GEO Asia Georgia 2020-06-04 801.0 1.0 9.0 13.0 0.0 0.143 200.793 0.251 2.256 3.259 0.0 3.6e-2 0.78 null null null null null null null null null null null null null null null null null 69.44 3989175.0 65.032 38.7 14.864 10.244 9745.079 4.2 496.218 7.11 5.3 55.5 null 2.6 73.77 0.78
GEO Asia Georgia 2020-11-16 82835.0 3157.0 3165.0 733.0 30.0 33.429 20764.945 791.392 793.397 183.747 7.52 8.38 1.18 null null null null null null null null null null null null null null null null null 64.81 3989175.0 65.032 38.7 14.864 10.244 9745.079 4.2 496.218 7.11 5.3 55.5 null 2.6 73.77 0.78
DEU Europe Germany 2020-05-29 182922.0 726.0 458.857 8504.0 34.0 39.429 2183.258 8.665 5.477 101.499 0.406 0.471 0.79 null null null null null null null null null null null null 55781.0 0.666 8.0e-3 121.6 null 59.72 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
GHA Africa Ghana 2020-02-05 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-10-03 46803.0 109.0 83.0 303.0 2.0 0.571 1506.23 3.508 2.671 9.751 6.4e-2 1.8e-2 1.13 null null null null null null null null 492768.0 null 15.858 null 1722.0 5.5e-2 4.8e-2 20.7 null 44.44 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GRC Europe Greece 2020-05-28 2906.0 3.0 7.571 175.0 2.0 1.0 278.805 0.288 0.726 16.79 0.192 9.6e-2 0.97 null null null null null null null null 170467.0 4222.0 16.355 0.405 3770.0 0.362 2.0e-3 498.0 null 68.52 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-06-13 3112.0 4.0 18.857 183.0 0.0 0.429 298.569 0.384 1.809 17.557 0.0 4.1e-2 1.19 null null null null null null null null 247452.0 3585.0 23.741 0.344 5104.0 0.49 4.0e-3 270.7 null 54.63 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-08-29 9977.0 177.0 228.0 260.0 1.0 2.857 957.205 16.982 21.875 24.945 9.6e-2 0.274 1.14 null null null null null null null null 931002.0 13737.0 89.321 1.318 13324.0 1.278 1.7e-2 58.4 null 56.02 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-10-03 19613.0 267.0 340.714 405.0 7.0 4.143 1881.694 25.616 32.689 38.856 0.672 0.397 1.16 null null null null null null null null 1339664.0 11622.0 128.529 1.115 10087.0 0.968 3.4e-2 29.6 null 50.46 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
GRC Europe Greece 2020-11-07 54809.0 2555.0 2222.571 749.0 34.0 17.571 5258.439 245.13 213.236 71.86 3.262 1.686 1.34 null null null null null null null null 1926544.0 24086.0 184.835 2.311 21317.0 2.045 0.104 9.6 null 78.7 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
HTI North America Haiti 2020-08-21 8016.0 19.0 29.429 196.0 0.0 0.571 703.002 1.666 2.581 17.189 0.0 5.0e-2 0.94 null null null null null null null null null null null null null null null null null 21.3 1.1402533e7 398.448 24.3 4.8 2.954 1653.173 23.5 430.548 6.65 2.9 23.1 22.863 0.7 64.0 0.498
HUN Europe Hungary 2020-03-11 13.0 4.0 1.571 0.0 0.0 0.0 1.346 0.414 0.163 null 0.0 0.0 null null null 13.0 1.346 null null null null 609.0 78.0 6.3e-2 8.0e-3 54.0 6.0e-3 2.9e-2 34.4 null 46.3 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
HUN Europe Hungary 2020-06-05 3970.0 16.0 18.429 542.0 3.0 3.571 410.958 1.656 1.908 56.106 0.311 0.37 0.71 null null 397.0 41.096 null null null null 202606.0 6712.0 20.973 0.695 3208.0 0.332 6.0e-3 174.1 null 61.11 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
IND Asia India 2020-03-07 34.0 3.0 4.429 0.0 0.0 0.0 2.5e-2 2.0e-3 3.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 26.85 1.380004385e9 450.419 28.2 5.989 3.414 6426.674 21.2 282.28 10.39 1.9 20.6 59.55 0.53 69.66 0.64
IND Asia India 2020-06-15 343091.0 10667.0 11023.286 9900.0 380.0 346.714 248.616 7.73 7.988 7.174 0.275 0.251 1.21 null null null null null null null null 5774133.0 115519.0 4.184 8.4e-2 142814.0 0.103 7.7e-2 13.0 null 76.85 1.380004385e9 450.419 28.2 5.989 3.414 6426.674 21.2 282.28 10.39 1.9 20.6 59.55 0.53 69.66 0.64
IDN Asia Indonesia 2020-05-24 22271.0 526.0 679.571 1372.0 21.0 32.0 81.423 1.923 2.485 5.016 7.7e-2 0.117 1.14 null null null null null null null null 179864.0 3829.0 0.658 1.4e-2 5626.0 2.1e-2 0.121 8.3 null 71.76 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
IDN Asia Indonesia 2020-07-13 76981.0 1282.0 1717.571 3656.0 50.0 59.286 281.442 4.687 6.279 13.366 0.183 0.217 1.07 null null null null null null null null 630149.0 9062.0 2.304 3.3e-2 11152.0 4.1e-2 0.154 6.5 null 62.5 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
IRN Asia Iran 2020-04-19 82211.0 1343.0 1503.571 5118.0 87.0 92.0 978.784 15.989 17.901 60.934 1.036 1.095 0.77 null null null null null null null null 341662.0 11525.0 4.068 0.137 11182.0 0.133 0.134 7.4 null 53.7 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRN Asia Iran 2020-06-27 220180.0 2456.0 2513.714 10364.0 125.0 122.429 2621.41 29.241 29.928 123.391 1.488 1.458 1.0 null null null null null null null null 1583542.0 25670.0 18.853 0.306 26838.0 0.32 9.4e-2 10.7 null 41.67 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRN Asia Iran 2020-09-01 376894.0 1682.0 1933.0 21672.0 101.0 110.143 4487.21 20.025 23.014 258.022 1.202 1.311 0.84 null null null null null null null null 3256122.0 25012.0 38.767 0.298 23973.0 0.285 8.1e-2 12.4 null 60.19 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
ISR Asia Israel 2020-11-03 316528.0 892.0 686.286 2592.0 12.0 15.571 36569.407 103.055 79.289 299.461 1.386 1.799 0.76 null null null null null null null null 4959948.0 41557.0 573.037 4.801 30484.0 3.522 2.3e-2 44.4 null 40.74 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ISR Asia Israel 2020-11-12 322159.0 833.0 613.714 2706.0 6.0 9.571 37219.973 96.239 70.904 312.632 0.693 1.106 0.95 null null null null null null null null 5254862.0 40338.0 607.11 4.66 31393.0 3.627 2.0e-2 51.2 null 65.74 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ITA Europe Italy 2020-09-17 293025.0 1583.0 1406.429 35658.0 13.0 10.143 4846.446 26.182 23.261 589.761 0.215 0.168 1.1 212.0 3.506 2560.0 42.341 null null null null 1.0146324e7 101773.0 167.814 1.683 84562.0 1.399 1.7e-2 60.1 null 47.22 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
ITA Europe Italy 2020-11-19 1308528.0 36176.0 34589.571 47870.0 653.0 611.571 21642.217 598.328 572.089 791.739 10.8 10.115 1.07 3712.0 61.394 37322.0 617.282 null null null null 1.9724527e7 250186.0 326.231 4.138 217717.0 3.601 0.159 6.3 null 79.63 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
JAM North America Jamaica 2020-03-04 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JAM North America Jamaica 2020-04-19 173.0 10.0 14.857 5.0 0.0 0.143 58.423 3.377 5.017 1.689 0.0 4.8e-2 0.97 null null null null null null null null null null null null 79.0 2.7e-2 0.188 5.3 null 80.56 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JAM North America Jamaica 2020-07-02 715.0 8.0 4.429 10.0 0.0 0.0 241.459 2.702 1.496 3.377 0.0 0.0 1.1 null null null null null null null null 25172.0 285.0 8.501 9.6e-2 360.0 0.122 1.2e-2 81.3 null 64.81 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JAM North America Jamaica 2020-10-04 6895.0 100.0 125.429 120.0 1.0 4.429 2328.479 33.771 42.358 40.525 0.338 1.496 0.96 null null null null null null null null 81071.0 541.0 27.378 0.183 534.0 0.18 0.235 4.3 null 78.7 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JPN Asia Japan 2020-03-31 2255.0 254.0 148.286 67.0 2.0 3.571 17.829 2.008 1.172 0.53 1.6e-2 2.8e-2 1.97 null null null null null null null null 31874.0 1914.0 0.252 1.5e-2 1354.0 1.1e-2 0.11 9.1 null 40.74 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JPN Asia Japan 2020-07-02 19055.0 217.0 142.857 977.0 1.0 0.857 150.66 1.716 1.13 7.725 8.0e-3 7.0e-3 1.68 null null null null null null null null 402243.0 5460.0 3.18 4.3e-2 4570.0 3.6e-2 3.1e-2 32.0 null 25.93 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
JPN Asia Japan 2020-10-14 90694.0 541.0 522.143 1646.0 11.0 4.571 717.082 4.277 4.128 13.014 8.7e-2 3.6e-2 1.06 null null null null null null null null 2133151.0 21837.0 16.866 0.173 17411.0 0.138 3.0e-2 33.3 null 38.89 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
KAZ Asia Kazakhstan 2020-06-27 20319.0 0.0 442.0 166.0 16.0 6.857 1082.139 0.0 23.54 8.841 0.852 0.365 1.06 null null null null null null null null 1467556.0 20390.0 78.158 1.086 23637.0 1.259 1.9e-2 53.5 null 81.02 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-08-12 115615.0 2114.0 1811.286 1433.0 0.0 46.286 6157.363 112.586 96.465 76.318 0.0 2.465 0.62 null null null null null null null null 2252153.0 15229.0 119.944 0.811 15342.0 0.817 0.118 8.5 null 80.56 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-08-14 118514.0 1410.0 1512.0 1433.0 0.0 46.286 6311.756 75.093 80.525 76.318 0.0 2.465 0.59 null null null null null null null null 2291327.0 19573.0 122.03 1.042 15431.0 0.822 9.8e-2 10.2 null 80.56 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-11-05 152725.0 703.0 606.571 2263.0 1.0 5.857 8133.748 37.44 32.304 120.522 5.3e-2 0.312 1.46 null null null null null null null null 3723082.0 35064.0 198.282 1.867 27230.0 1.45 2.2e-2 44.9 null 68.06 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KEN Africa Kenya 2020-02-12 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KEN Africa Kenya 2020-05-13 737.0 22.0 22.143 40.0 4.0 2.0 13.706 0.409 0.412 0.744 7.4e-2 3.7e-2 1.3 null null null null null null null null 35432.0 1516.0 0.659 2.8e-2 1197.0 2.2e-2 1.8e-2 54.1 null 88.89 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KEN Africa Kenya 2020-09-29 38378.0 210.0 165.714 707.0 7.0 6.857 713.726 3.905 3.082 13.148 0.13 0.128 1.15 null null null null null null null null 545019.0 3604.0 10.136 6.7e-2 3556.0 6.6e-2 4.7e-2 21.5 null 71.3 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KEN Africa Kenya 2020-11-17 71729.0 925.0 1020.143 1302.0 15.0 21.143 1333.964 17.202 18.972 24.214 0.279 0.393 1.09 null null null null null null null null null null null null 6311.0 0.117 0.162 6.2 null 62.96 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KGZ Asia Kyrgyzstan 2020-06-06 1974.0 38.0 36.0 22.0 0.0 0.857 302.566 5.824 5.518 3.372 0.0 0.131 1.22 null null null null null null null null null null null null null null null null null 76.39 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
KGZ Asia Kyrgyzstan 2020-11-19 68316.0 422.0 489.857 1217.0 5.0 3.429 10471.183 64.682 75.083 186.537 0.766 0.526 1.0 null null null null null null null null null null null null null null null null null 56.02 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
LAO Asia Laos 2020-02-29 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LAO Asia Laos 2020-07-15 19.0 0.0 0.0 0.0 0.0 0.0 2.611 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 20.37 7275556.0 29.715 24.4 4.029 2.322 6397.36 22.7 368.111 4.0 7.3 51.2 49.839 1.5 67.92 0.601
LVA Europe Latvia 2020-05-03 879.0 8.0 9.571 16.0 0.0 0.571 466.016 4.241 5.074 8.483 0.0 0.303 0.88 null null 33.0 17.495 1.965 1.042 8.842 4.688 64245.0 1143.0 34.061 0.606 2375.0 1.259 4.0e-3 248.1 null 69.44 1886202.0 31.212 43.9 19.754 14.136 25063.846 0.7 350.06 4.91 25.6 51.0 null 5.57 75.29 0.847
LBN Asia Lebanon 2020-12-01 129455.0 1511.0 1535.714 1033.0 15.0 14.143 18966.537 221.378 224.999 151.346 2.198 2.072 null null null null null null null null null null null null null null null null null null null 6825442.0 594.561 31.1 8.514 5.43 13367.565 null 266.591 12.71 26.9 40.7 null 2.9 78.93 0.757
LTU Europe Lithuania 2020-03-07 1.0 0.0 0.0 0.0 0.0 0.0 0.367 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LTU Europe Lithuania 2020-06-17 1778.0 2.0 6.429 76.0 0.0 0.286 653.126 0.735 2.361 27.918 0.0 0.105 0.85 null null null null null null null null 363718.0 5138.0 133.607 1.887 4080.0 1.499 2.0e-3 634.6 null 34.26 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LTU Europe Lithuania 2020-11-20 42757.0 2265.0 1554.143 357.0 16.0 14.857 15706.256 832.02 570.895 131.14 5.877 5.458 1.33 null null null null null null null null 1159456.0 14358.0 425.912 5.274 11084.0 4.072 0.14 7.1 null 62.96 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
MWI Africa Malawi 2020-04-29 36.0 0.0 1.857 3.0 0.0 0.0 1.882 0.0 9.7e-2 0.157 0.0 0.0 null null null null null null null null null 774.0 30.0 4.0e-2 2.0e-3 32.0 2.0e-3 5.8e-2 17.2 null 60.19 1.9129955e7 197.519 18.1 2.979 1.783 1095.042 71.4 227.349 3.94 4.4 24.7 8.704 1.3 64.26 0.477
MWI Africa Malawi 2020-09-27 5768.0 2.0 5.286 179.0 0.0 0.0 301.517 0.105 0.276 9.357 0.0 0.0 0.87 null null null null null null null null 52730.0 null 2.756 null 307.0 1.6e-2 1.7e-2 58.1 null 54.63 1.9129955e7 197.519 18.1 2.979 1.783 1095.042 71.4 227.349 3.94 4.4 24.7 8.704 1.3 64.26 0.477
MYS Asia Malaysia 2020-02-08 16.0 4.0 1.143 0.0 0.0 0.0 0.494 0.124 3.5e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 3.2365998e7 96.254 29.9 6.293 3.407 26808.164 0.1 260.942 16.74 1.0 42.4 null 1.9 76.16 0.802
MYS Asia Malaysia 2020-04-26 5780.0 38.0 55.857 98.0 0.0 1.286 178.582 1.174 1.726 3.028 0.0 4.0e-2 0.79 null null null null null null null null 131491.0 4521.0 4.063 0.14 3943.0 0.122 1.4e-2 70.6 null 73.15 3.2365998e7 96.254 29.9 6.293 3.407 26808.164 0.1 260.942 16.74 1.0 42.4 null 1.9 76.16 0.802
MYS Asia Malaysia 2020-10-15 18129.0 589.0 537.286 170.0 3.0 3.429 560.125 18.198 16.6 5.252 9.3e-2 0.106 1.47 null null null null null null null null 1810777.0 23948.0 55.947 0.74 18424.0 0.569 2.9e-2 34.3 null 65.74 3.2365998e7 96.254 29.9 6.293 3.407 26808.164 0.1 260.942 16.74 1.0 42.4 null 1.9 76.16 0.802
MLI Africa Mali 2020-05-20 931.0 30.0 24.714 55.0 2.0 1.571 45.973 1.481 1.22 2.716 9.9e-2 7.8e-2 1.08 null null null null null null null null null null null null null null null null null 56.48 2.0250834e7 15.196 16.4 2.519 1.486 2014.306 null 268.024 2.42 1.6 23.0 52.232 0.1 59.31 0.427
MLT Europe Malta 2020-04-30 465.0 2.0 2.857 4.0 0.0 0.143 1053.135 4.53 6.471 9.059 0.0 0.324 0.74 2.0 4.53 4.0 9.059 null null null null 34018.0 1181.0 77.044 2.675 938.0 2.124 3.0e-3 328.3 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MLT Europe Malta 2020-05-21 599.0 15.0 11.0 6.0 0.0 0.0 1356.619 33.972 24.913 13.589 0.0 0.0 1.09 null null null null null null null null 59890.0 1546.0 135.639 3.501 1463.0 3.313 8.0e-3 133.0 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MLT Europe Malta 2020-06-20 664.0 1.0 2.571 9.0 0.0 0.0 1503.831 2.265 5.824 20.383 0.0 0.0 0.63 null null null null null null null null 90270.0 768.0 204.444 1.739 852.0 1.93 3.0e-3 331.4 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MLT Europe Malta 2020-07-05 672.0 0.0 0.286 9.0 0.0 0.0 1521.949 0.0 0.647 20.383 0.0 0.0 0.45 null null null null 0.0 0.0 0.0 0.0 102394.0 457.0 231.903 1.035 827.0 1.873 0.0 2891.6 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MLT Europe Malta 2020-10-19 4737.0 109.0 127.571 45.0 0.0 0.286 10728.384 246.864 288.924 101.916 0.0 0.647 1.29 null null null null null null null null 302988.0 2689.0 686.209 6.09 2666.0 6.038 4.8e-2 20.9 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MUS Africa Mauritius 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 1271767.0 622.962 37.4 10.945 5.884 20292.745 0.5 224.644 22.02 3.2 40.7 null 3.4 74.99 0.79
MUS Africa Mauritius 2020-07-25 344.0 0.0 0.143 10.0 0.0 0.0 270.49 0.0 0.112 7.863 0.0 0.0 5.0e-2 null null null null null null null null null null null null null null null null null 16.67 1271767.0 622.962 37.4 10.945 5.884 20292.745 0.5 224.644 22.02 3.2 40.7 null 3.4 74.99 0.79
MUS Africa Mauritius 2020-08-10 344.0 0.0 0.0 10.0 0.0 0.0 270.49 0.0 0.0 7.863 0.0 0.0 0.11 null null null null null null null null null null null null null null null null null 16.67 1271767.0 622.962 37.4 10.945 5.884 20292.745 0.5 224.644 22.02 3.2 40.7 null 3.4 74.99 0.79
MEX North America Mexico 2020-06-05 110026.0 4346.0 3628.429 13170.0 625.0 536.429 853.36 33.707 28.142 102.146 4.847 4.161 1.18 null null null null null null null null 350901.0 10665.0 2.722 8.3e-2 8667.0 6.7e-2 0.419 2.4 null 72.69 1.28932753e8 66.444 29.3 6.857 4.321 17336.469 2.5 152.783 13.06 6.9 21.4 87.847 1.38 75.05 0.774
MDA Europe Moldova 2020-07-08 18471.0 330.0 224.714 614.0 11.0 9.286 4578.872 81.805 55.706 152.208 2.727 2.302 0.97 null null null null null null null null null null null null null null null null null 80.56 4033963.0 123.655 37.6 10.864 6.955 5189.972 0.2 408.502 5.72 5.9 44.6 86.979 5.8 71.9 0.7
MNG Asia Mongolia 2020-02-03 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 49.07 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
MNG Asia Mongolia 2020-04-10 16.0 0.0 0.286 0.0 0.0 0.0 4.881 0.0 8.7e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 65.74 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
MNG Asia Mongolia 2020-09-14 311.0 0.0 0.143 0.0 0.0 0.0 94.866 0.0 4.4e-2 null 0.0 0.0 0.29 null null null null null null null null null null null null null null null null null 56.48 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
MNE Europe Montenegro 2020-12-02 36351.0 502.0 506.143 510.0 6.0 7.286 57878.044 799.284 805.88 812.022 9.553 11.6 null null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MAR Africa Morocco 2020-03-15 28.0 11.0 3.714 1.0 0.0 0.143 0.759 0.298 0.101 2.7e-2 0.0 4.0e-3 null null null null null null null null null 150.0 20.0 4.0e-3 1.0e-3 13.0 0.0 0.286 3.5 null 44.44 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MAR Africa Morocco 2020-10-08 142953.0 2929.0 2415.571 2486.0 47.0 36.714 3872.957 79.354 65.444 67.352 1.273 0.995 1.12 null null null null null null null null 2803491.0 25126.0 75.954 0.681 22804.0 0.618 0.106 9.4 null 60.19 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MMR Asia Myanmar 2020-03-18 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 36.11 5.4409794e7 81.721 29.1 5.732 3.12 5591.597 6.4 202.104 4.61 6.3 35.2 79.287 0.9 67.13 0.578
NPL Asia Nepal 2020-08-26 34418.0 885.0 782.857 175.0 11.0 7.857 1181.255 30.374 26.868 6.006 0.378 0.27 1.26 null null null null null null null null 635252.0 13253.0 21.802 0.455 11552.0 0.396 6.8e-2 14.8 null 82.41 2.9136808e7 204.43 25.0 5.809 3.212 2442.804 15.0 260.797 7.26 9.5 37.8 47.782 0.3 70.78 0.574
NLD Europe Netherlands 2020-03-24 5580.0 816.0 552.714 277.0 63.0 33.429 325.652 47.622 32.257 16.166 3.677 1.951 1.95 660.0 38.518 null null null null null null null null null null 3187.0 0.186 0.173 5.8 null 74.07 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NZL Oceania New Zealand 2020-02-12 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NZL Oceania New Zealand 2020-05-12 1497.0 0.0 1.286 21.0 0.0 0.0 310.437 0.0 0.267 4.355 0.0 0.0 0.35 null null null null null null null null 205191.0 7495.0 42.551 1.554 5948.0 1.233 0.0 4625.2 null 83.33 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NZL Oceania New Zealand 2020-08-09 1569.0 0.0 0.286 22.0 0.0 0.0 325.368 0.0 5.9e-2 4.562 0.0 0.0 0.94 null null null null null null null null 491245.0 2338.0 101.871 0.485 3510.0 0.728 0.0 12272.7 null 22.22 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NZL Oceania New Zealand 2020-12-03 2069.0 0.0 3.143 25.0 0.0 0.0 429.054 0.0 0.652 5.184 0.0 0.0 null null null null null null null null null 1291609.0 5843.0 267.845 1.212 5573.0 1.156 1.0e-3 1773.1 null null 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NER Africa Niger 2020-05-03 750.0 14.0 7.714 36.0 1.0 1.0 30.983 0.578 0.319 1.487 4.1e-2 4.1e-2 0.84 null null null null null null null null null null null null null null null null null 61.11 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
NOR Europe Norway 2020-07-01 8896.0 17.0 15.429 251.0 1.0 0.286 1640.952 3.136 2.846 46.299 0.184 5.3e-2 0.92 null null 17.0 3.136 null null null null 362075.0 5119.0 66.788 0.944 3754.0 0.692 4.0e-3 243.3 null 37.04 5421242.0 14.462 39.7 16.821 10.813 64800.057 0.2 114.316 5.31 19.6 20.7 null 3.6 82.4 0.953
OMN Asia Oman 2020-05-10 3399.0 175.0 118.714 17.0 0.0 0.714 665.606 34.269 23.247 3.329 0.0 0.14 1.26 null null null null null null null null null null null null null null null null null 87.96 5106622.0 14.98 30.7 2.355 1.53 37960.709 null 266.342 12.61 0.5 15.6 97.4 1.6 77.86 0.821
OMN Asia Oman 2020-06-26 36034.0 1132.0 1194.857 153.0 9.0 4.0 7056.328 221.673 233.982 29.961 1.762 0.783 1.14 null null null null null null null null null 4013.0 null 0.786 3596.0 0.704 0.332 3.0 null 87.96 5106622.0 14.98 30.7 2.355 1.53 37960.709 null 266.342 12.61 0.5 15.6 97.4 1.6 77.86 0.821
PAK Asia Pakistan 2020-05-22 52437.0 1743.0 1948.286 1101.0 34.0 38.143 237.387 7.891 8.82 4.984 0.154 0.173 1.24 null null null null null null null null 445987.0 16387.0 2.019 7.4e-2 14505.0 6.6e-2 0.134 7.4 null 82.41 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PAK Asia Pakistan 2020-10-03 314616.0 632.0 620.143 6513.0 6.0 8.0 1424.296 2.861 2.807 29.485 2.7e-2 3.6e-2 1.03 null null null null null null null null 3615244.0 35071.0 16.367 0.159 33008.0 0.149 1.9e-2 53.2 null 67.13 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PAK Asia Pakistan 2020-10-21 325480.0 736.0 608.857 6702.0 10.0 12.571 1473.478 3.332 2.756 30.341 4.5e-2 5.7e-2 1.13 null null null null null null null null 4148739.0 26670.0 18.782 0.121 29286.0 0.133 2.1e-2 48.1 null 53.24 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PAN North America Panama 2020-03-05 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PAN North America Panama 2020-05-03 7090.0 0.0 187.286 197.0 0.0 4.571 1643.194 0.0 43.406 45.657 0.0 1.059 1.04 null null null null null null null null 33540.0 996.0 7.773 0.231 1060.0 0.246 0.177 5.7 null 93.52 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
PRY South America Paraguay 2020-01-23 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702
PHL Asia Philippines 2020-09-23 294591.0 2802.0 3093.857 5091.0 42.0 51.286 2688.338 25.57 28.233 46.459 0.383 0.468 0.87 null null null null null null null null 3314732.0 38274.0 30.249 0.349 35221.0 0.321 8.8e-2 11.4 null 67.13 1.09581085e8 351.873 25.2 4.803 2.661 7599.188 null 370.437 7.07 7.8 40.8 78.463 1.0 71.23 0.699
PHL Asia Philippines 2020-10-05 324762.0 2265.0 2496.286 5840.0 64.0 65.571 2963.668 20.67 22.78 53.294 0.584 0.598 0.94 null null null null null null null null 3727022.0 29702.0 34.012 0.271 34900.0 0.318 7.2e-2 14.0 null 68.98 1.09581085e8 351.873 25.2 4.803 2.661 7599.188 null 370.437 7.07 7.8 40.8 78.463 1.0 71.23 0.699
POL Europe Poland 2020-08-18 57876.0 597.0 702.143 1896.0 11.0 10.714 1529.226 15.774 18.552 50.097 0.291 0.283 1.05 null null 2057.0 54.351 null null null null 2305392.0 19884.0 60.914 0.525 20980.0 0.554 3.3e-2 29.9 null 39.81 3.7846605e7 124.027 41.8 16.763 10.202 27216.445 null 227.331 5.91 23.3 33.1 null 6.62 78.73 0.865
POL Europe Poland 2020-09-07 71126.0 302.0 536.286 2124.0 4.0 12.143 1879.323 7.98 14.17 56.121 0.106 0.321 0.87 null null 2113.0 55.831 null null null null 2751413.0 10025.0 72.699 0.265 21692.0 0.573 2.5e-2 40.4 null 36.11 3.7846605e7 124.027 41.8 16.763 10.202 27216.445 null 227.331 5.91 23.3 33.1 null 6.62 78.73 0.865
PRT Europe Portugal 2020-06-19 38464.0 375.0 326.286 1527.0 3.0 3.143 3772.198 36.777 31.999 149.754 0.294 0.308 1.07 67.0 6.571 422.0 41.386 null null null null 1079642.0 14713.0 105.881 1.443 11744.0 1.152 2.8e-2 36.0 null 69.91 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
PRT Europe Portugal 2020-08-19 54701.0 253.0 211.143 1786.0 2.0 3.143 5364.575 24.812 20.707 175.155 0.196 0.308 1.09 35.0 3.432 329.0 32.265 null null null null 1909654.0 16820.0 187.281 1.65 14209.0 1.393 1.5e-2 67.3 null 66.2 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
PRT Europe Portugal 2020-11-30 298061.0 3262.0 4751.286 4505.0 78.0 76.286 29231.104 319.907 465.963 441.809 7.65 7.481 null null null null null null null null null 4616871.0 31889.0 452.781 3.127 37661.0 3.693 0.126 7.9 null null 1.0196707e7 112.371 46.2 21.502 14.924 27936.896 0.5 127.842 9.85 16.3 30.0 null 3.39 82.05 0.847
QAT Asia Qatar 2020-02-12 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
QAT Asia Qatar 2020-06-03 62160.0 1901.0 1887.571 45.0 2.0 2.143 21575.392 659.827 655.166 15.619 0.694 0.744 1.02 null null null null null null null null 236437.0 5339.0 82.066 1.853 5037.0 1.748 0.375 2.7 null 83.33 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
QAT Asia Qatar 2020-11-05 133619.0 249.0 209.857 232.0 0.0 0.143 46378.416 86.427 72.84 80.526 0.0 5.0e-2 1.02 null null null null null null null null 1001488.0 6029.0 347.611 2.093 5157.0 1.79 4.1e-2 24.6 null 64.81 2881060.0 227.322 31.9 1.307 0.617 116935.6 null 176.69 16.52 0.8 26.9 null 1.2 80.23 0.856
ROU Europe Romania 2020-02-11 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
ROU Europe Romania 2020-02-25 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 16.67 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
ROU Europe Romania 2020-10-13 160461.0 3109.0 2978.429 5535.0 68.0 59.143 8340.974 161.61 154.823 287.717 3.535 3.074 1.28 651.0 33.84 null null null null null null 2709306.0 26718.0 140.833 1.389 23842.0 1.239 0.125 8.0 null 44.44 1.9237682e7 85.129 43.0 17.85 11.69 23313.199 5.7 370.946 9.74 22.9 37.1 null 6.892 76.05 0.811
RUS Europe Russia 2020-06-04 440538.0 8823.0 8783.857 5376.0 168.0 176.286 3018.739 60.459 60.19 36.838 1.151 1.208 0.99 null null null null null null null null 1.2053663e7 320612.0 82.596 2.197 293372.0 2.01 3.0e-2 33.4 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816
RUS Europe Russia 2020-09-25 1131088.0 7112.0 6304.714 19973.0 106.0 120.714 7750.657 48.734 43.202 136.863 0.726 0.827 1.17 null null null null null null null null 4.4755362e7 390796.0 306.681 2.678 328313.0 2.25 1.9e-2 52.1 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816
RUS Europe Russia 2020-11-05 1699695.0 19116.0 18464.143 29285.0 289.0 310.571 11646.975 130.99 126.524 200.672 1.98 2.128 1.11 null null null null null null null null 6.3541298e7 524304.0 435.41 3.593 524962.0 3.597 3.5e-2 28.4 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816
SAU Asia Saudi Arabia 2020-03-29 1299.0 96.0 112.571 8.0 4.0 1.143 37.313 2.758 3.234 0.23 0.115 3.3e-2 1.72 null null null null null null null null 102069.0 6265.0 2.932 0.18 5986.0 0.172 1.9e-2 53.2 null 89.81 3.4813867e7 15.322 31.9 3.295 1.845 49045.411 null 259.538 17.72 1.8 25.4 null 2.7 75.13 0.853
SYC Africa Seychelles 2020-04-04 10.0 0.0 0.286 0.0 0.0 0.0 101.688 0.0 2.905 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 52.78 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SYC Africa Seychelles 2020-04-20 11.0 0.0 0.0 0.0 0.0 0.0 111.857 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 93.52 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SYC Africa Seychelles 2020-11-21 163.0 0.0 0.429 0.0 0.0 0.0 1657.515 0.0 4.358 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 98340.0 208.354 36.2 8.606 5.586 26382.287 1.1 242.648 10.55 7.1 35.7 null 3.6 73.4 0.797
SGP Asia Singapore 2020-03-16 243.0 17.0 13.286 0.0 0.0 0.0 41.536 2.906 2.271 null 0.0 0.0 1.7 null null null null null null null null null null null null null null null null null 36.11 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SGP Asia Singapore 2020-11-04 58036.0 7.0 7.0 28.0 0.0 0.0 9920.102 1.197 1.197 4.786 0.0 0.0 0.94 null null null null null null null null null null null null 27979.0 4.782 0.0 3997.0 null 52.78 5850343.0 7915.731 42.4 12.922 7.049 85535.383 null 92.243 10.99 5.2 28.3 null 2.4 83.62 0.932
SVN Europe Slovenia 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2078932.0 102.619 44.5 19.062 12.93 31400.84 null 153.493 7.25 20.1 25.0 null 4.5 81.32 0.896
SVN Europe Slovenia 2020-08-01 2171.0 15.0 15.0 119.0 0.0 0.429 1044.286 7.215 7.215 57.241 0.0 0.206 0.97 5.0 2.405 22.0 10.582 null null null null 131427.0 374.0 63.219 0.18 741.0 0.356 2.0e-2 49.4 null 46.3 2078932.0 102.619 44.5 19.062 12.93 31400.84 null 153.493 7.25 20.1 25.0 null 4.5 81.32 0.896
ZAF Africa South Africa 2020-01-27 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 2.78 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
ZAF Africa South Africa 2020-07-30 482169.0 11046.0 10588.143 7812.0 315.0 245.571 8129.82 186.246 178.526 131.718 5.311 4.141 0.92 null null null null null null null null 2918049.0 44886.0 49.201 0.757 40849.0 0.689 0.259 3.9 null 80.56 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
ZAF Africa South Africa 2020-10-21 708359.0 2055.0 1706.429 18741.0 85.0 84.286 11943.595 34.649 28.772 315.991 1.433 1.421 1.07 null null null null null null null null 4607883.0 26537.0 77.693 0.447 21305.0 0.359 8.0e-2 12.5 null 38.89 5.930869e7 46.754 27.3 5.344 3.053 12294.876 18.9 200.38 5.52 8.1 33.2 43.993 2.32 64.13 0.699
KOR Asia South Korea 2020-10-05 24239.0 75.0 77.143 422.0 0.0 2.143 472.779 1.463 1.505 8.231 0.0 4.2e-2 0.98 null null null null null null null null 2329931.0 5702.0 45.445 0.111 6745.0 0.132 1.1e-2 87.4 null 60.19 5.1269183e7 527.967 43.4 13.914 8.622 35938.374 0.2 85.998 6.8 6.2 40.9 null 12.27 83.03 0.903
KOR Asia South Korea 2020-11-29 34201.0 377.0 456.714 526.0 3.0 2.429 667.087 7.353 8.908 10.26 5.9e-2 4.7e-2 null null null null null null null null null 2984142.0 10932.0 58.205 0.213 18469.0 0.36 2.5e-2 40.4 null 45.83 5.1269183e7 527.967 43.4 13.914 8.622 35938.374 0.2 85.998 6.8 6.2 40.9 null 12.27 83.03 0.903
ESP Europe Spain 2020-04-10 158273.0 5051.0 5582.0 16081.0 634.0 697.571 3385.172 108.032 119.389 343.943 13.56 14.92 1.12 null null null null null null null null null null null null null null null null null 85.19 4.6754783e7 93.105 45.5 19.436 13.799 34272.36 1.0 99.403 7.17 27.4 31.4 null 2.97 83.56 0.891
ESP Europe Spain 2020-05-10 224350.0 772.0 983.429 26621.0 143.0 193.857 4798.44 16.512 21.034 569.375 3.059 4.146 0.77 null null null null 33.868 0.724 682.34 14.594 null null null null 40386.0 0.864 2.4e-2 41.1 null 81.94 4.6754783e7 93.105 45.5 19.436 13.799 34272.36 1.0 99.403 7.17 27.4 31.4 null 2.97 83.56 0.891
LKA Asia Sri Lanka 2020-05-14 925.0 10.0 14.429 9.0 0.0 0.0 43.198 0.467 0.674 0.42 0.0 0.0 1.04 null null null null null null null null 41118.0 1489.0 1.92 7.0e-2 1291.0 6.0e-2 1.1e-2 89.5 null 82.41 2.141325e7 341.955 34.1 10.069 5.331 11669.077 0.7 197.093 10.68 0.3 27.0 null 3.6 76.98 0.77
SUR South America Suriname 2020-02-20 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SUR South America Suriname 2020-09-28 4836.0 1.0 13.714 102.0 0.0 0.714 8243.641 1.705 23.378 173.873 0.0 1.218 0.8 null null null null null null null null null null null null null null null null null 67.59 586634.0 3.612 29.6 6.933 4.229 13767.119 null 258.314 12.54 7.4 42.9 67.779 3.1 71.68 0.72
SWZ Africa Swaziland 2020-07-28 2404.0 88.0 72.857 39.0 5.0 2.143 2072.121 75.851 62.799 33.616 4.31 1.847 1.14 null null null null null null null null null null null null null null null null null 80.56 1160164.0 79.492 21.5 3.163 1.845 7738.975 null 333.436 3.94 1.7 16.5 24.097 2.1 60.19 0.588
SWE Europe Sweden 2020-02-27 3.0 1.0 0.286 0.0 0.0 0.0 0.297 9.9e-2 2.8e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933
SWE Europe Sweden 2020-04-25 18563.0 473.0 612.571 2559.0 75.0 78.0 1838.054 46.835 60.655 253.385 7.426 7.723 1.2 null null null null null null null null null null null null null null null null null 64.81 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933
CHE Europe Switzerland 2020-11-23 300352.0 9751.0 4339.714 4222.0 166.0 98.0 34704.247 1126.682 501.433 487.832 19.181 11.323 null null null null null null null null null 2603780.0 26399.0 300.854 3.05 22673.0 2.62 0.191 5.2 null 49.07 8654618.0 214.243 43.1 18.436 12.644 57410.166 null 99.739 5.59 22.6 28.9 null 4.53 83.78 0.944
TZA Africa Tanzania 2020-08-31 509.0 0.0 0.0 21.0 0.0 0.0 8.521 0.0 0.0 0.352 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 25.0 5.9734213e7 64.699 17.7 3.108 1.874 2683.304 49.1 217.288 5.75 3.3 26.7 47.953 0.7 65.46 0.538
THA Asia Thailand 2020-04-23 2839.0 13.0 23.857 50.0 1.0 0.571 40.673 0.186 0.342 0.716 1.4e-2 8.0e-3 0.71 null null null null null null null null 164441.0 9222.0 2.356 0.132 5919.0 8.5e-2 4.0e-3 248.1 null 76.85 6.9799978e7 135.132 40.1 11.373 6.89 16277.671 0.1 109.861 7.04 1.9 38.8 90.67 2.1 77.15 0.755
THA Asia Thailand 2020-04-25 2907.0 0.0 24.857 51.0 0.0 0.571 41.648 0.0 0.356 0.731 0.0 8.0e-3 0.68 null null null null null null null null 176587.0 5619.0 2.53 8.1e-2 6073.0 8.7e-2 4.0e-3 244.3 null 76.85 6.9799978e7 135.132 40.1 11.373 6.89 16277.671 0.1 109.861 7.04 1.9 38.8 90.67 2.1 77.15 0.755
ETH Africa Ethiopia 2020-11-10 100327.0 345.0 403.571 1537.0 7.0 6.143 872.685 3.001 3.51 13.369 6.1e-2 5.3e-2 0.91 null null null null null null null null 1534470.0 4360.0 13.347 3.8e-2 5159.0 4.5e-2 7.8e-2 12.8 null 51.85 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
FJI Oceania Fiji 2020-11-29 38.0 0.0 0.429 2.0 0.0 0.0 42.39 0.0 0.478 2.231 0.0 0.0 null null null null null null null null null 16229.0 156.0 18.104 0.174 120.0 0.134 4.0e-3 279.7 null 49.07 896444.0 49.562 28.6 6.224 3.284 8702.975 1.4 412.82 14.49 10.2 34.8 null 2.3 67.44 0.741
FIN Europe Finland 2020-06-22 7144.0 1.0 5.143 327.0 1.0 0.143 1289.364 0.18 0.928 59.018 0.18 2.6e-2 0.76 2.0 0.361 21.0 3.79 null null null null 240179.0 1604.0 43.348 0.289 1753.0 0.316 3.0e-3 340.9 null 35.19 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-09-23 9288.0 93.0 76.857 343.0 2.0 0.571 1676.317 16.785 13.871 61.905 0.361 0.103 1.36 4.0 0.722 22.0 3.971 null null null null 1036509.0 13652.0 187.071 2.464 13497.0 2.436 6.0e-3 175.6 null 32.41 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FIN Europe Finland 2020-12-01 25462.0 550.0 453.286 399.0 0.0 2.143 4595.433 99.265 81.81 72.012 0.0 0.387 null null null null null null null null null 1984595.0 12765.0 358.184 2.304 13875.0 2.504 3.3e-2 30.6 null null 5540718.0 18.136 42.8 21.228 13.264 40585.721 null 153.507 5.76 18.3 22.6 null 3.28 81.91 0.92
FRA Europe France 2020-03-27 33402.0 3851.0 2949.143 1997.0 299.0 220.857 511.724 58.998 45.181 30.594 4.581 3.384 1.84 3758.0 57.573 15701.0 240.542 null null null null null null null null null null null null null 87.96 6.5273512e7 122.578 42.0 19.718 13.079 38605.671 null 86.06 4.77 30.1 35.6 null 5.98 82.66 0.901
FRA Europe France 2020-07-12 208015.0 0.0 541.857 30007.0 0.0 15.857 3186.821 0.0 8.301 459.712 0.0 0.243 1.17 473.0 7.246 6991.0 107.103 75.975 1.164 523.062 8.013 null 8629.0 null 0.132 55579.0 0.851 1.2e-2 83.3 null 46.3 6.5273512e7 122.578 42.0 19.718 13.079 38605.671 null 86.06 4.77 30.1 35.6 null 5.98 82.66 0.901
GMB Africa Gambia 2020-01-25 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 2416664.0 207.566 17.5 2.339 1.417 1561.767 10.1 331.43 1.91 0.7 31.2 7.876 1.1 62.05 0.46
DEU Europe Germany 2020-07-30 209535.0 989.0 664.857 9144.0 9.0 4.857 2500.897 11.804 7.935 109.138 0.107 5.8e-2 1.25 null null null null null null null null null null null null 83084.0 0.992 8.0e-3 125.0 null 55.09 8.3783945e7 237.016 46.6 21.453 15.957 45229.245 null 156.139 8.31 28.2 33.1 null 8.0 81.33 0.936
GHA Africa Ghana 2020-03-18 7.0 0.0 1.0 0.0 0.0 0.0 0.225 0.0 3.2e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 50.0 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GHA Africa Ghana 2020-11-01 48124.0 69.0 62.0 320.0 0.0 0.571 1548.743 2.221 1.995 10.298 0.0 1.8e-2 1.18 null null null null null null null null 541153.0 2181.0 17.416 7.0e-2 2246.0 7.2e-2 2.8e-2 36.2 null 38.89 3.1072945e7 126.719 21.1 3.385 1.948 4227.63 12.0 298.245 4.97 0.3 7.7 41.047 0.9 64.07 0.592
GRC Europe Greece 2020-06-16 3148.0 14.0 12.857 185.0 1.0 0.286 302.023 1.343 1.234 17.749 9.6e-2 2.7e-2 1.2 null null null null null null null null 259736.0 4882.0 24.919 0.468 3997.0 0.383 3.0e-3 310.9 null 40.74 1.0423056e7 83.479 45.3 20.396 14.524 24574.382 1.5 175.695 4.55 35.3 52.0 null 4.21 82.24 0.87
HTI North America Haiti 2020-03-11 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 1.1402533e7 398.448 24.3 4.8 2.954 1653.173 23.5 430.548 6.65 2.9 23.1 22.863 0.7 64.0 0.498
HTI North America Haiti 2020-11-21 9214.0 3.0 6.571 232.0 0.0 0.0 808.066 0.263 0.576 20.346 0.0 0.0 null null null null null null null null null null null null null null null null null null 47.22 1.1402533e7 398.448 24.3 4.8 2.954 1653.173 23.5 430.548 6.65 2.9 23.1 22.863 0.7 64.0 0.498
HUN Europe Hungary 2020-03-28 343.0 43.0 34.286 11.0 1.0 1.0 35.506 4.451 3.549 1.139 0.104 0.104 1.59 null null 298.0 30.848 null null null null 10303.0 1028.0 1.067 0.106 975.0 0.101 3.5e-2 28.4 null 76.85 9660350.0 108.043 43.4 18.577 11.976 26777.561 0.5 278.296 7.55 26.8 34.8 null 7.02 76.88 0.838
ISL Europe Iceland 2020-02-14 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 16.67 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-04-25 1790.0 1.0 4.286 10.0 0.0 0.143 5245.421 2.93 12.559 29.304 0.0 0.419 0.24 3.0 8.791 14.0 41.026 null null null null 46311.0 381.0 135.71 1.116 513.0 1.503 8.0e-3 119.7 null 53.7 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-05-31 1806.0 0.0 0.286 10.0 0.0 0.0 5292.308 0.0 0.837 29.304 0.0 0.0 0.59 0.0 0.0 0.0 0.0 null null null null 61097.0 16.0 179.039 4.7e-2 326.0 0.955 1.0e-3 1139.9 null 39.81 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-08-18 2027.0 13.0 8.429 10.0 0.0 0.0 5939.927 38.095 24.699 29.304 0.0 0.0 1.13 0.0 0.0 1.0 2.93 null null null null 83006.0 504.0 243.241 1.477 429.0 1.257 2.0e-2 50.9 null 46.3 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
IND Asia India 2020-05-17 95698.0 5050.0 4076.714 3025.0 154.0 116.143 69.346 3.659 2.954 2.192 0.112 8.4e-2 1.32 null null null null null null null null 2227642.0 93365.0 1.614 6.8e-2 88372.0 6.4e-2 4.6e-2 21.7 null 81.94 1.380004385e9 450.419 28.2 5.989 3.414 6426.674 21.2 282.28 10.39 1.9 20.6 59.55 0.53 69.66 0.64
IND Asia India 2020-07-13 906752.0 28498.0 26726.857 23727.0 553.0 509.714 657.065 20.651 19.367 17.193 0.401 0.369 1.23 null null null null null null null null 1.1806256e7 219103.0 8.555 0.159 262371.0 0.19 0.102 9.8 null 77.78 1.380004385e9 450.419 28.2 5.989 3.414 6426.674 21.2 282.28 10.39 1.9 20.6 59.55 0.53 69.66 0.64
IDN Asia Indonesia 2020-03-21 450.0 81.0 50.571 38.0 6.0 4.714 1.645 0.296 0.185 0.139 2.2e-2 1.7e-2 1.94 null null null null null null null null null null null null null null null null null 45.37 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
IDN Asia Indonesia 2020-05-05 12071.0 484.0 365.714 872.0 8.0 14.143 44.131 1.769 1.337 3.188 2.9e-2 5.2e-2 1.13 null null null null null null null null 88924.0 2863.0 0.325 1.0e-2 3769.0 1.4e-2 9.7e-2 10.3 null 74.54 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
IDN Asia Indonesia 2020-06-24 49009.0 1113.0 1082.571 2573.0 38.0 42.429 179.176 4.069 3.958 9.407 0.139 0.155 1.12 null null null null null null null null 413919.0 12238.0 1.513 4.5e-2 9377.0 3.4e-2 0.115 8.7 null 59.72 2.73523621e8 145.725 29.3 5.319 3.053 11188.744 5.7 342.864 6.32 2.8 76.1 64.204 1.04 71.72 0.694
IRN Asia Iran 2020-07-15 264561.0 2388.0 2311.714 13410.0 199.0 189.429 3149.8 28.431 27.523 159.656 2.369 2.255 1.0 null null null null null null null null 2048049.0 24970.0 24.384 0.297 25094.0 0.299 9.2e-2 10.9 null 58.8 8.3992953e7 49.831 32.4 5.44 3.182 19082.62 0.2 270.308 9.59 0.8 21.1 null 1.5 76.68 0.798
IRL Europe Ireland 2020-10-17 48678.0 1251.0 994.857 1849.0 8.0 3.571 9858.244 253.352 201.478 374.459 1.62 0.723 1.26 30.0 6.076 260.0 52.655 null null null null 1423260.0 19040.0 288.238 3.856 14798.0 2.997 6.7e-2 14.9 null 61.57 4937796.0 69.874 38.7 13.928 8.678 67335.293 0.2 126.459 3.28 23.0 25.7 null 2.96 82.3 0.938
ISR Asia Israel 2020-01-31 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ISR Asia Israel 2020-03-12 100.0 21.0 11.429 0.0 0.0 0.0 11.553 2.426 1.32 null 0.0 0.0 null null null null null null null null null 5341.0 607.0 0.617 7.0e-2 440.0 5.1e-2 2.6e-2 38.5 null 41.67 8655541.0 402.606 30.6 11.733 7.359 33132.32 0.5 93.32 6.74 15.4 35.4 null 2.99 82.97 0.903
ITA Europe Italy 2020-09-14 288761.0 1008.0 1425.286 35624.0 14.0 10.143 4775.922 16.672 23.573 589.198 0.232 0.168 1.03 197.0 3.258 2319.0 38.355 null null null null 9863427.0 45309.0 163.135 0.749 84517.0 1.398 1.7e-2 59.3 null 47.22 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
ITA Europe Italy 2020-11-05 824879.0 34502.0 29754.857 40192.0 428.0 295.714 13642.972 570.641 492.126 664.75 7.079 4.891 1.31 2391.0 39.546 25647.0 424.185 null null null null 1.6717651e7 219884.0 276.499 3.637 194880.0 3.223 0.153 6.5 null 66.67 6.0461828e7 205.859 47.9 23.021 16.24 35220.084 2.0 113.151 4.78 19.8 27.8 null 3.18 83.51 0.88
JAM North America Jamaica 2020-03-17 12.0 2.0 1.714 0.0 0.0 0.0 4.052 0.675 0.579 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 59.26 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JAM North America Jamaica 2020-08-13 1071.0 6.0 16.143 14.0 0.0 0.286 361.682 2.026 5.452 4.728 0.0 9.6e-2 1.45 null null null null null null null null 45195.0 354.0 15.263 0.12 486.0 0.164 3.3e-2 30.1 null 73.15 2961161.0 266.879 31.4 9.684 6.39 8193.571 null 206.537 11.28 5.3 28.6 66.425 1.7 74.47 0.732
JPN Asia Japan 2020-06-04 16911.0 44.0 44.714 911.0 6.0 4.286 133.709 0.348 0.354 7.203 4.7e-2 3.4e-2 0.93 null null null null null null null null 286118.0 4600.0 2.262 3.6e-2 3529.0 2.8e-2 1.3e-2 78.9 null 28.7 1.26476458e8 347.778 48.2 27.049 18.493 39002.223 null 79.37 5.72 11.2 33.7 null 13.05 84.63 0.909
KAZ Asia Kazakhstan 2020-03-11 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KAZ Asia Kazakhstan 2020-05-27 9304.0 335.0 333.571 37.0 0.0 0.286 495.508 17.841 17.765 1.971 0.0 1.5e-2 1.2 null null null null null null null null 710352.0 23085.0 37.832 1.229 19829.0 1.056 1.7e-2 59.4 null 83.8 1.8776707e7 6.681 30.6 6.991 4.625 24055.588 0.1 466.792 7.11 7.0 43.1 98.999 6.7 73.6 0.8
KEN Africa Kenya 2020-06-06 2600.0 126.0 101.714 83.0 4.0 2.857 48.353 2.343 1.892 1.544 7.4e-2 5.3e-2 1.29 null null null null null null null null 94507.0 3632.0 1.758 6.8e-2 2605.0 4.8e-2 3.9e-2 25.6 null 88.89 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KEN Africa Kenya 2020-06-18 4257.0 213.0 148.857 117.0 10.0 3.571 79.169 3.961 2.768 2.176 0.186 6.6e-2 1.23 null null null null null null null null 130498.0 null 2.427 null 3464.0 6.4e-2 4.3e-2 23.3 null 88.89 5.37713e7 87.324 20.0 2.686 1.528 2993.028 36.8 218.637 2.92 1.2 20.4 24.651 1.4 66.7 0.59
KWT Asia Kuwait 2020-04-17 1658.0 134.0 95.0 5.0 2.0 0.571 388.239 31.378 22.245 1.171 0.468 0.134 1.39 null null null null null null null null null null null null null null null null null 93.52 4270563.0 232.128 33.7 2.345 1.114 65530.537 null 132.235 15.84 2.7 37.0 null 2.0 75.49 0.803
KGZ Asia Kyrgyzstan 2020-02-11 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
KGZ Asia Kyrgyzstan 2020-05-15 1111.0 29.0 29.286 14.0 2.0 0.286 170.289 4.445 4.489 2.146 0.307 4.4e-2 1.19 null null null null null null null null null null null null null null null null null 81.94 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
KGZ Asia Kyrgyzstan 2020-08-17 41991.0 135.0 272.286 1496.0 1.0 3.143 6436.2 20.692 41.735 229.3 0.153 0.482 0.64 null null null null null null null null null null null null null null null null null 79.17 6524191.0 32.333 26.3 4.489 2.882 3393.474 1.4 436.362 7.11 3.6 50.5 89.22 4.5 71.45 0.672
LVA Europe Latvia 2020-04-15 666.0 9.0 12.714 5.0 0.0 0.429 353.09 4.771 6.741 2.651 0.0 0.227 0.89 null null 46.0 24.388 null null null null 29896.0 878.0 15.85 0.465 837.0 0.444 1.5e-2 65.8 null 69.44 1886202.0 31.212 43.9 19.754 14.136 25063.846 0.7 350.06 4.91 25.6 51.0 null 5.57 75.29 0.847
LVA Europe Latvia 2020-05-18 1009.0 1.0 9.0 19.0 0.0 0.143 534.937 0.53 4.771 10.073 0.0 7.6e-2 0.88 null null 28.0 14.845 null null null null 89123.0 718.0 47.25 0.381 1711.0 0.907 5.0e-3 190.1 null 61.11 1886202.0 31.212 43.9 19.754 14.136 25063.846 0.7 350.06 4.91 25.6 51.0 null 5.57 75.29 0.847
LVA Europe Latvia 2020-09-18 1498.0 4.0 5.571 36.0 0.0 0.143 794.189 2.121 2.954 19.086 0.0 7.6e-2 1.4 null null 7.0 3.711 null null null null 290907.0 2264.0 154.229 1.2 2297.0 1.218 2.0e-3 412.3 null 41.67 1886202.0 31.212 43.9 19.754 14.136 25063.846 0.7 350.06 4.91 25.6 51.0 null 5.57 75.29 0.847
LVA Europe Latvia 2020-10-07 2261.0 67.0 62.429 40.0 0.0 0.429 1198.705 35.521 33.098 21.207 0.0 0.227 1.5 null null 34.0 18.026 null null null null 344821.0 4426.0 182.812 2.347 3543.0 1.878 1.8e-2 56.8 null 32.41 1886202.0 31.212 43.9 19.754 14.136 25063.846 0.7 350.06 4.91 25.6 51.0 null 5.57 75.29 0.847
LTU Europe Lithuania 2020-11-09 25755.0 1056.0 1314.143 210.0 3.0 5.714 9460.781 387.909 482.734 77.141 1.102 2.099 1.41 null null null null null null null null 1028776.0 8979.0 377.908 3.298 10492.0 3.854 0.125 8.0 null 62.96 2722291.0 45.135 43.5 19.002 13.778 29524.265 0.7 342.989 3.67 21.3 38.0 null 6.56 75.93 0.858
LUX Europe Luxembourg 2020-01-29 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
LUX Europe Luxembourg 2020-05-28 4008.0 7.0 4.0 110.0 0.0 0.143 6402.801 11.183 6.39 175.726 0.0 0.228 0.74 4.0 6.39 29.0 46.328 null null null null 73099.0 2003.0 116.776 3.2 1144.0 1.828 3.0e-3 286.0 null 43.52 625976.0 231.447 39.7 14.312 9.842 94277.965 0.2 128.275 4.42 20.9 26.0 null 4.51 82.25 0.904
MWI Africa Malawi 2020-05-11 57.0 1.0 2.286 3.0 0.0 0.0 2.98 5.2e-2 0.119 0.157 0.0 0.0 null null null null null null null null null 1363.0 26.0 7.1e-2 1.0e-3 57.0 3.0e-3 4.0e-2 24.9 null 60.19 1.9129955e7 197.519 18.1 2.979 1.783 1095.042 71.4 227.349 3.94 4.4 24.7 8.704 1.3 64.26 0.477
MYS Asia Malaysia 2020-03-08 99.0 6.0 10.0 0.0 0.0 0.0 3.059 0.185 0.309 null 0.0 0.0 null null null null null null null null null null null null null 124.0 4.0e-3 8.1e-2 12.4 null 22.22 3.2365998e7 96.254 29.9 6.293 3.407 26808.164 0.1 260.942 16.74 1.0 42.4 null 1.9 76.16 0.802
MYS Asia Malaysia 2020-04-27 5820.0 40.0 56.429 99.0 1.0 1.429 179.818 1.236 1.743 3.059 3.1e-2 4.4e-2 0.81 null null null null null null null null 138898.0 7407.0 4.291 0.229 4383.0 0.135 1.3e-2 77.7 null 73.15 3.2365998e7 96.254 29.9 6.293 3.407 26808.164 0.1 260.942 16.74 1.0 42.4 null 1.9 76.16 0.802
MYS Asia Malaysia 2020-05-08 6535.0 68.0 66.286 107.0 0.0 0.571 201.909 2.101 2.048 3.306 0.0 1.8e-2 0.87 null null null null null null null null 239628.0 8609.0 7.404 0.266 10121.0 0.313 7.0e-3 152.7 null 69.44 3.2365998e7 96.254 29.9 6.293 3.407 26808.164 0.1 260.942 16.74 1.0 42.4 null 1.9 76.16 0.802
MYS Asia Malaysia 2020-08-03 9001.0 2.0 13.857 125.0 0.0 0.143 278.1 6.2e-2 0.428 3.862 0.0 4.0e-3 1.0 null null null null null null null null 983297.0 4119.0 30.381 0.127 5722.0 0.177 2.0e-3 412.9 null 57.41 3.2365998e7 96.254 29.9 6.293 3.407 26808.164 0.1 260.942 16.74 1.0 42.4 null 1.9 76.16 0.802
MLI Africa Mali 2020-11-03 3584.0 11.0 9.857 136.0 0.0 0.0 176.98 0.543 0.487 6.716 0.0 0.0 1.2 null null null null null null null null null null null null null null null null null 34.26 2.0250834e7 15.196 16.4 2.519 1.486 2014.306 null 268.024 2.42 1.6 23.0 52.232 0.1 59.31 0.427
MLT Europe Malta 2020-09-30 3058.0 23.0 28.857 35.0 1.0 1.429 6925.776 52.091 65.356 79.268 2.265 3.235 1.03 null null null null null null null null 256523.0 2566.0 580.975 5.811 2309.0 5.229 1.2e-2 80.0 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MLT Europe Malta 2020-10-28 5760.0 75.0 104.857 56.0 1.0 1.429 13045.28 169.86 237.481 126.829 2.265 3.235 1.0 null null null null null null null null 329508.0 2964.0 746.272 6.713 2964.0 6.713 3.5e-2 28.3 null null 441539.0 1454.037 42.4 19.426 11.324 36513.323 0.2 168.711 8.83 20.9 30.2 null 4.485 82.53 0.878
MEX North America Mexico 2020-07-30 416179.0 7730.0 6495.286 46000.0 639.0 584.571 3227.876 59.954 50.377 356.775 4.956 4.534 1.02 null null null null null null null null 997755.0 15249.0 7.739 0.118 12963.0 0.101 0.501 2.0 null 70.83 1.28932753e8 66.444 29.3 6.857 4.321 17336.469 2.5 152.783 13.06 6.9 21.4 87.847 1.38 75.05 0.774
MEX North America Mexico 2020-10-18 851227.0 4119.0 4817.714 86167.0 108.0 340.857 6602.101 31.947 37.366 668.31 0.838 2.644 1.01 null null null null null null null null 1936740.0 4338.0 15.021 3.4e-2 12538.0 9.7e-2 0.384 2.6 null 71.76 1.28932753e8 66.444 29.3 6.857 4.321 17336.469 2.5 152.783 13.06 6.9 21.4 87.847 1.38 75.05 0.774
MDA Europe Moldova 2020-05-09 4867.0 139.0 116.429 161.0 11.0 5.286 1206.506 34.457 28.862 39.911 2.727 1.31 1.08 null null null null null null null null null null null null null null null null null 84.26 4033963.0 123.655 37.6 10.864 6.955 5189.972 0.2 408.502 5.72 5.9 44.6 86.979 5.8 71.9 0.7
MDA Europe Moldova 2020-09-17 44983.0 622.0 468.429 1170.0 11.0 9.143 11151.069 154.191 116.121 290.037 2.727 2.266 1.11 null null null null null null null null null null null null null null null null null 47.22 4033963.0 123.655 37.6 10.864 6.955 5189.972 0.2 408.502 5.72 5.9 44.6 86.979 5.8 71.9 0.7
MNG Asia Mongolia 2020-05-10 42.0 0.0 0.429 0.0 0.0 0.0 12.812 0.0 0.131 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 71.3 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
TGO Africa Togo 2020-10-09 1921.0 14.0 14.714 49.0 0.0 0.143 232.04 1.691 1.777 5.919 0.0 1.7e-2 1.06 null null null null null null null null 100361.0 966.0 12.123 0.117 866.0 0.105 1.7e-2 58.9 null 47.22 8278737.0 143.366 19.4 2.839 1.525 1429.813 49.2 280.033 6.15 0.9 14.2 10.475 0.7 61.04 0.503
TUN Africa Tunisia 2020-03-07 1.0 0.0 0.143 0.0 0.0 0.0 8.5e-2 0.0 1.2e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUN Africa Tunisia 2020-09-17 8570.0 470.0 384.0 133.0 4.0 4.857 725.127 39.768 32.491 11.253 0.338 0.411 1.48 null null null null null null null null null null null null 3780.0 0.32 0.102 9.8 null 26.85 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUN Africa Tunisia 2020-10-13 32556.0 0.0 1475.143 478.0 0.0 22.429 2754.637 0.0 124.815 40.445 0.0 1.898 1.32 null null null null null null null null null null null null null null null null null 58.33 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUN Africa Tunisia 2020-10-27 52399.0 0.0 1135.571 983.0 0.0 38.857 4433.598 0.0 96.083 83.174 0.0 3.288 1.19 null null null null null null null null null null null null null null null null null 58.33 1.1818618e7 74.228 32.7 8.001 5.075 10849.297 2.0 318.991 8.52 1.1 65.8 78.687 2.3 76.7 0.735
TUR Asia Turkey 2020-05-27 159797.0 1035.0 1030.0 4431.0 34.0 29.857 1894.697 12.272 12.213 52.538 0.403 0.354 0.87 null null null null null null null null 1894650.0 21043.0 22.465 0.25 28328.0 0.336 3.6e-2 27.5 null 75.93 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
TUR Asia Turkey 2020-08-11 243180.0 1183.0 1178.0 5873.0 15.0 15.429 2883.361 14.027 13.967 69.636 0.178 0.183 1.08 null null null null null null null null 5387751.0 61716.0 63.882 0.732 59184.0 0.702 2.0e-2 50.2 null 48.15 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
TUR Asia Turkey 2020-09-07 281509.0 1703.0 1625.143 6730.0 57.0 51.429 3337.824 20.192 19.269 79.797 0.676 0.61 1.1 null null null null null null null null 7883464.0 103925.0 93.473 1.232 106425.0 1.262 1.5e-2 65.5 null 47.22 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
TUR Asia Turkey 2020-09-09 284943.0 1673.0 1663.143 6837.0 55.0 53.571 3378.541 19.837 19.72 81.066 0.652 0.635 1.05 null null null null null null null null 8105222.0 111193.0 96.103 1.318 107051.0 1.269 1.6e-2 64.4 null 52.78 8.4339067e7 104.914 31.6 8.153 5.061 25129.341 0.2 171.285 12.13 14.1 41.1 null 2.81 77.69 0.791
UKR Europe Ukraine 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
UKR Europe Ukraine 2020-02-18 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
UKR Europe Ukraine 2020-04-07 1462.0 143.0 116.714 45.0 7.0 4.0 33.43 3.27 2.669 1.029 0.16 9.1e-2 1.68 null null null null null null null null null null null null null null null null null 88.89 4.3733759e7 77.39 41.4 16.462 11.133 7894.393 0.1 539.849 7.11 13.5 47.4 null 8.8 72.06 0.751
ARE Asia United Arab Emirates 2020-02-21 9.0 0.0 0.143 0.0 0.0 0.0 0.91 0.0 1.4e-2 null 0.0 0.0 null null null null null null null null null 8894.0 2201.0 0.899 0.223 851.0 8.6e-2 0.0 5951.0 null 2.78 9890400.0 112.442 34.0 1.144 0.526 67293.483 null 317.84 17.26 1.2 37.4 null 1.2 77.97 0.863
ARE Asia United Arab Emirates 2020-07-24 58249.0 261.0 261.0 343.0 1.0 0.857 5889.448 26.389 26.389 34.68 0.101 8.7e-2 0.88 null null null null null null null null 4724277.0 46965.0 477.663 4.749 44289.0 4.478 6.0e-3 169.7 null 43.52 9890400.0 112.442 34.0 1.144 0.526 67293.483 null 317.84 17.26 1.2 37.4 null 1.2 77.97 0.863
GBR Europe United Kingdom 2020-04-04 57772.0 4073.0 4387.143 5281.0 757.0 545.0 851.015 59.998 64.625 77.792 11.151 8.028 1.22 2309.0 34.013 16589.0 244.366 null null null null 238836.0 15899.0 3.518 0.234 null null null null null 79.63 6.7886004e7 272.898 40.8 18.517 12.527 39753.244 0.2 122.137 4.28 20.0 24.7 null 2.54 81.32 0.922
USA North America United States 2020-11-15 1.1053304e7 135785.0 149131.143 246290.0 627.0 1105.143 33393.401 410.223 450.544 744.073 1.894 3.339 1.23 13693.0 41.368 70113.0 211.82 1450.0 4.381 22098.0 66.761 1.71371708e8 1145506.0 517.735 3.461 1454966.0 4.396 null null null 65.28 3.31002647e8 35.608 38.3 15.413 9.732 54225.446 1.2 151.089 10.79 19.1 24.6 null 2.77 78.86 0.924
URY South America Uruguay 2020-08-07 1325.0 7.0 8.714 37.0 0.0 0.286 381.435 2.015 2.509 10.651 0.0 8.2e-2 1.08 null null null null null null null null 128814.0 null 37.082 null 2182.0 0.628 4.0e-3 250.4 null 26.85 3473727.0 19.751 35.6 14.655 10.361 20551.409 0.1 160.708 6.93 14.0 19.9 null 2.8 77.91 0.804
URY South America Uruguay 2020-10-12 2313.0 19.0 22.571 51.0 1.0 0.429 665.855 5.47 6.498 14.682 0.288 0.123 1.16 null null null null null null null null 266427.0 2340.0 76.698 0.674 2480.0 0.714 9.0e-3 109.9 null 43.52 3473727.0 19.751 35.6 14.655 10.361 20551.409 0.1 160.708 6.93 14.0 19.9 null 2.8 77.91 0.804
UZB Asia Uzbekistan 2020-07-04 9708.0 312.0 289.429 31.0 2.0 1.571 290.058 9.322 8.648 0.926 6.0e-2 4.7e-2 1.29 null null null null null null null null null null null null null null null null null 66.2 3.3469199e7 76.134 28.2 4.469 2.873 6253.104 null 724.417 7.57 1.3 24.7 null 4.0 71.72 0.71
UZB Asia Uzbekistan 2020-08-04 27047.0 981.0 764.0 165.0 8.0 5.857 808.116 29.311 22.827 4.93 0.239 0.175 1.1 null null null null null null null null null null null null null null null null null 73.15 3.3469199e7 76.134 28.2 4.469 2.873 6253.104 null 724.417 7.57 1.3 24.7 null 4.0 71.72 0.71
UZB Asia Uzbekistan 2020-08-11 31747.0 443.0 671.429 204.0 4.0 5.571 948.544 13.236 20.061 6.095 0.12 0.166 1.0 null null null null null null null null null null null null null null null null null 73.15 3.3469199e7 76.134 28.2 4.469 2.873 6253.104 null 724.417 7.57 1.3 24.7 null 4.0 71.72 0.71
VNM Asia Vietnam 2020-10-10 1107.0 2.0 1.571 35.0 0.0 0.0 11.373 2.1e-2 1.6e-2 0.36 0.0 0.0 1.13 null null null null null null null null null null null null 2621.0 2.7e-2 1.0e-3 1668.4 null 51.85 9.7338583e7 308.127 32.6 7.15 4.718 6171.884 2.0 245.465 6.0 1.0 45.9 85.847 2.6 75.4 0.694
VNM Asia Vietnam 2020-11-09 1215.0 2.0 3.286 35.0 0.0 0.0 12.482 2.1e-2 3.4e-2 0.36 0.0 0.0 1.38 null null null null null null null null null null null null null null null null null 39.35 9.7338583e7 308.127 32.6 7.15 4.718 6171.884 2.0 245.465 6.0 1.0 45.9 85.847 2.6 75.4 0.694
YEM Asia Yemen 2020-02-07 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452
YEM Asia Yemen 2020-09-05 1983.0 0.0 5.286 572.0 0.0 1.286 66.486 0.0 0.177 19.178 0.0 4.3e-2 0.81 null null null null null null null null null null null null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452
ZMB Africa Zambia 2020-02-16 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 1.8383956e7 22.995 17.7 2.48 1.542 3689.251 57.5 234.499 3.94 3.1 24.7 13.938 2.0 63.89 0.588
ZWE Africa Zimbabwe 2020-01-25 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 1.4862927e7 42.729 19.6 2.822 1.882 1899.775 21.4 307.846 1.82 1.6 30.7 36.791 1.7 61.49 0.535
ZWE Africa Zimbabwe 2020-06-01 203.0 25.0 21.0 4.0 0.0 0.0 13.658 1.682 1.413 0.269 0.0 0.0 1.08 null null null null null null null null 18709.0 637.0 1.259 4.3e-2 421.0 2.8e-2 5.0e-2 20.0 null 87.96 1.4862927e7 42.729 19.6 2.822 1.882 1899.775 21.4 307.846 1.82 1.6 30.7 36.791 1.7 61.49 0.535
ALB Europe Albania 2020-10-18 17055.0 281.0 236.571 451.0 3.0 4.429 5926.402 97.644 82.206 156.717 1.042 1.539 1.31 null null null null null null null null null null null null null null null null null 54.63 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
DZA Africa Algeria 2020-04-17 2418.0 150.0 93.857 364.0 16.0 15.429 55.141 3.421 2.14 8.301 0.365 0.352 1.27 null null null null null null null null null null null null null null null null null 92.13 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
ARM Asia Armenia 2020-02-12 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 2963234.0 102.931 35.7 11.232 7.571 8787.58 1.8 341.01 7.11 1.5 52.1 94.043 4.2 75.09 0.755
ARM Asia Armenia 2020-05-16 4283.0 239.0 158.286 55.0 3.0 1.571 1445.38 80.655 53.417 18.561 1.012 0.53 1.4 null null null null null null null null null null null null null null null null null null 2963234.0 102.931 35.7 11.232 7.571 8787.58 1.8 341.01 7.11 1.5 52.1 94.043 4.2 75.09 0.755
AUS Oceania Australia 2020-02-02 12.0 0.0 1.143 0.0 0.0 0.0 0.471 0.0 4.5e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 2.5499881e7 3.202 37.9 15.504 10.129 44648.71 0.5 107.791 5.07 13.0 16.5 null 3.84 83.44 0.939
AUS Oceania Australia 2020-07-22 13302.0 408.0 356.0 133.0 5.0 2.857 521.649 16.0 13.961 5.216 0.196 0.112 1.34 null null null null null null null null 3650529.0 59794.0 143.159 2.345 61198.0 2.4 6.0e-3 171.9 null 68.06 2.5499881e7 3.202 37.9 15.504 10.129 44648.71 0.5 107.791 5.07 13.0 16.5 null 3.84 83.44 0.939
AZE Asia Azerbaijan 2020-05-09 2422.0 143.0 75.429 31.0 3.0 0.857 238.875 14.104 7.439 3.057 0.296 8.5e-2 1.54 null null null null null null null null null null null null null null null null null 85.19 1.0139175e7 119.309 32.4 6.018 3.871 15847.419 null 559.812 7.11 0.3 42.5 83.241 4.7 73.0 0.757
BHS North America Bahamas 2020-04-22 65.0 0.0 2.286 9.0 0.0 0.143 165.29 0.0 5.812 22.886 0.0 0.363 null null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHR Asia Bahrain 2020-01-23 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 8.33 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-11-28 86645.0 130.0 150.571 341.0 0.0 0.429 50920.231 76.399 88.489 200.402 0.0 0.252 null null null null null null null null null 2025774.0 10176.0 1190.523 5.98 10177.0 5.981 1.5e-2 67.6 null null 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BGD Asia Bangladesh 2020-09-03 319686.0 2158.0 2157.571 4383.0 32.0 36.571 1941.145 13.103 13.101 26.614 0.194 0.222 0.91 null null null null null null null null 1595001.0 14422.0 9.685 8.8e-2 13093.0 8.0e-2 0.165 6.1 null 80.09 1.64689383e8 1265.036 27.5 5.098 3.262 3523.984 14.8 298.003 8.38 1.0 44.7 34.808 0.8 72.59 0.608
BRB North America Barbados 2020-10-13 210.0 2.0 1.429 7.0 0.0 0.0 730.763 6.96 4.971 24.359 0.0 0.0 0.75 null null null null null null null null null null null null null null null null null 29.63 287371.0 664.463 39.8 14.952 9.473 16978.068 null 170.05 13.57 1.9 14.5 88.469 5.8 79.19 0.8
BLR Europe Belarus 2020-08-19 69801.0 128.0 99.857 622.0 5.0 3.857 7386.88 13.546 10.568 65.825 0.529 0.408 1.09 null null null null null null null null null null null null 8153.0 0.863 1.2e-2 81.6 null 16.67 9449321.0 46.858 40.3 14.799 9.788 17167.967 null 443.129 5.18 10.5 46.1 null 11.0 74.79 0.808
BIH Europe Bosnia and Herzegovina 2020-07-27 10498.0 731.0 288.429 294.0 14.0 5.571 3199.815 222.81 87.914 89.612 4.267 1.698 1.18 null null null null null null null null null null null null null null null null null 59.26 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BWA Africa Botswana 2020-02-08 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 13.89 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BWA Africa Botswana 2020-07-09 314.0 0.0 12.429 1.0 0.0 0.0 133.525 0.0 5.285 0.425 0.0 0.0 0.86 null null null null null null null null null null null null null null null null null 57.41 2351625.0 4.044 25.8 3.941 2.242 15807.374 null 237.372 4.81 5.7 34.4 null 1.8 69.59 0.717
BRA South America Brazil 2020-02-21 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 5.56 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRA South America Brazil 2020-10-26 5409854.0 15726.0 22732.429 157397.0 263.0 460.143 25451.021 73.984 106.946 740.485 1.237 2.165 1.0 null null null null null null null null null null null null null null null null null 57.87 2.12559409e8 25.04 33.5 8.552 5.06 14103.452 3.4 177.961 8.11 10.1 17.9 null 2.2 75.88 0.759
BRN Asia Brunei 2020-07-10 141.0 0.0 0.0 3.0 0.0 0.0 322.298 0.0 0.0 6.857 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 49.07 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BRN Asia Brunei 2020-10-28 148.0 0.0 0.143 3.0 0.0 0.0 338.299 0.0 0.327 6.857 0.0 0.0 0.0 null null null null null null null null null null null null null null null null null 35.19 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BGR Europe Bulgaria 2020-11-22 121820.0 1123.0 3367.0 2880.0 60.0 107.143 17531.98 161.619 484.569 414.481 8.635 15.42 null 408.0 58.718 6350.0 913.874 null null null null 911936.0 5729.0 131.243 0.825 8291.0 1.193 0.406 2.5 null 48.15 6948445.0 65.18 44.7 20.801 13.272 18563.307 1.5 424.688 5.81 30.1 44.4 null 7.454 75.05 0.813
BFA Africa Burkina Faso 2020-07-08 1003.0 0.0 5.857 53.0 0.0 0.0 47.983 0.0 0.28 2.535 0.0 0.0 0.97 null null null null null null null null null null null null null null null null null 45.37 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BFA Africa Burkina Faso 2020-07-21 1065.0 0.0 4.0 53.0 0.0 0.0 50.949 0.0 0.191 2.535 0.0 0.0 0.97 null null null null null null null null null null null null null null null null null 45.37 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
KHM Asia Cambodia 2020-04-04 114.0 0.0 2.143 0.0 0.0 0.0 6.819 0.0 0.128 null 0.0 0.0 0.13 null null null null null null null null null null null null null null null null null 57.41 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-07-13 165.0 9.0 3.429 0.0 0.0 0.0 9.869 0.538 0.205 null 0.0 0.0 0.37 null null null null null null null null null null null null null null null null null 38.89 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
KHM Asia Cambodia 2020-07-14 165.0 0.0 3.429 0.0 0.0 0.0 9.869 0.0 0.205 null 0.0 0.0 0.37 null null null null null null null null null null null null null null null null null 38.89 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
CAN North America Canada 2020-03-07 54.0 5.0 4.857 0.0 0.0 0.0 1.431 0.132 0.129 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 2.78 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-08-02 118768.0 245.0 425.571 8990.0 4.0 8.0 3146.826 6.491 11.276 238.195 0.106 0.212 0.99 null null null null null null null null 4143459.0 44707.0 109.783 1.185 48787.0 1.293 9.0e-3 114.6 null 67.13 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CPV Africa Cape Verde 2020-01-24 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 null null 0.0 null null null null null null null null null null null null null null null null null null null 0.0 555988.0 135.58 25.7 4.46 3.437 6222.554 null 182.219 2.42 2.1 16.5 null 2.1 72.98 0.654
CPV Africa Cape Verde 2020-08-30 3852.0 74.0 49.0 40.0 1.0 0.429 6928.207 133.096 88.131 71.944 1.799 0.771 1.07 null null null null null null null null null null null null null null null null null 65.28 555988.0 135.58 25.7 4.46 3.437 6222.554 null 182.219 2.42 2.1 16.5 null 2.1 72.98 0.654
CHL South America Chile 2020-05-06 25826.0 1032.0 1323.143 281.0 6.0 9.286 1351.0 53.986 69.216 14.7 0.314 0.486 1.47 null null null null null null null null 224566.0 10013.0 11.747 0.524 8498.0 0.445 0.156 6.4 null 73.15 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHL South America Chile 2020-07-20 333029.0 2099.0 2196.0 8633.0 130.0 229.857 17421.289 109.802 114.876 451.606 6.801 12.024 0.86 null null null null null null null null 1412367.0 16343.0 73.883 0.855 15732.0 0.823 0.14 7.2 null 84.72 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHL South America Chile 2020-09-29 461300.0 1629.0 1825.286 12725.0 27.0 57.714 24131.354 85.216 95.484 665.665 1.412 3.019 1.0 null null null null null null null null 3286783.0 28919.0 171.937 1.513 32323.0 1.691 5.6e-2 17.7 null 81.94 1.9116209e7 24.282 35.4 11.087 6.938 22767.037 1.3 127.993 8.46 34.2 41.5 null 2.11 80.18 0.843
CHN Asia China 2020-09-20 90369.0 35.0 24.571 4737.0 0.0 0.429 62.786 2.4e-2 1.7e-2 3.291 0.0 0.0 0.93 null null null null null null null null null null null null null null null null null 81.94 1.439323774e9 147.674 38.7 10.641 5.929 15308.712 0.7 261.899 9.74 1.9 48.4 null 4.34 76.91 0.752
COL South America Colombia 2020-04-10 2473.0 250.0 172.286 80.0 11.0 7.857 48.602 4.913 3.386 1.572 0.216 0.154 1.43 null null null null null null null null 37876.0 2683.0 0.744 5.3e-2 2161.0 4.2e-2 null null null 87.96 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-06-29 95043.0 3274.0 3408.571 3274.0 96.0 137.714 1867.878 64.344 66.989 64.344 1.887 2.706 1.24 null null null null null null null null 743437.0 17609.0 14.611 0.346 17593.0 0.346 null null null 87.04 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-09-05 658456.0 8393.0 8367.429 21156.0 268.0 299.0 12940.619 164.947 164.445 415.778 5.267 5.876 0.92 null null null null null null null null 2753032.0 24609.0 54.105 0.484 25744.0 0.506 null null null 71.3 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-11-27 1290510.0 10023.0 8152.286 36214.0 195.0 183.571 25362.36 196.982 160.217 711.713 3.832 3.608 null null null null null null null null null 4994892.0 32292.0 98.164 0.635 29173.0 0.573 null null null 65.74 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
CRI North America Costa Rica 2020-07-06 5241.0 245.0 281.714 23.0 4.0 1.143 1028.834 48.095 55.302 4.515 0.785 0.224 1.46 null null null null null null null null 38920.0 1000.0 7.64 0.196 976.0 0.192 null null null 73.61 5094114.0 96.079 33.6 9.468 5.694 15524.995 1.3 137.973 8.78 6.4 17.4 83.841 1.13 80.28 0.794
HRV Europe Croatia 2020-04-26 2030.0 14.0 22.714 55.0 1.0 1.143 494.487 3.41 5.533 13.397 0.244 0.278 0.5 null null 314.0 76.487 null null 102.726 25.023 31622.0 709.0 7.703 0.173 1062.0 0.259 2.1e-2 46.8 null 96.3 4105268.0 73.726 44.0 19.724 13.053 22669.797 0.7 253.782 5.59 34.3 39.9 null 5.54 78.49 0.831
HRV Europe Croatia 2020-12-01 131342.0 2900.0 3332.571 1861.0 75.0 59.429 31993.526 706.409 811.779 453.32 18.269 14.476 null null null null null null null null null 759014.0 9668.0 184.888 2.355 9567.0 2.33 0.348 2.9 null null 4105268.0 73.726 44.0 19.724 13.053 22669.797 0.7 253.782 5.59 34.3 39.9 null 5.54 78.49 0.831
CYP Europe Cyprus 2020-05-23 927.0 0.0 1.857 17.0 0.0 0.0 1058.341 0.0 2.12 19.409 0.0 0.0 0.84 null null null null null null null null 99624.0 2414.0 113.739 2.756 2062.0 2.354 1.0e-3 1110.4 null 76.85 875899.0 127.657 37.3 13.416 8.563 32415.132 null 141.171 9.24 19.6 52.7 null 3.4 80.98 0.869
CZE Europe Czech Republic 2020-04-23 7187.0 55.0 107.714 210.0 2.0 5.857 671.119 5.136 10.058 19.61 0.187 0.547 0.69 78.0 7.284 336.0 31.376 null null null null 207702.0 7901.0 19.395 0.738 7078.0 0.661 1.5e-2 65.7 null 60.19 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
CZE Europe Czech Republic 2020-05-09 8095.0 18.0 48.571 276.0 3.0 4.429 755.908 1.681 4.536 25.773 0.28 0.414 0.78 39.0 3.642 173.0 16.155 null null null null 307222.0 3788.0 28.688 0.354 6424.0 0.6 8.0e-3 132.3 null 57.41 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
CZE Europe Czech Republic 2020-08-20 21045.0 247.0 234.857 406.0 2.0 2.143 1965.173 23.065 21.931 37.912 0.187 0.2 1.19 24.0 2.241 117.0 10.925 null null null null 832270.0 8234.0 77.717 0.769 6668.0 0.623 3.5e-2 28.4 null 36.11 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
CZE Europe Czech Republic 2020-10-22 223065.0 14150.0 10579.286 1845.0 106.0 87.857 20829.711 1321.321 987.889 172.285 9.898 8.204 1.4 751.0 70.128 5044.0 471.006 null null null null 1980835.0 46425.0 184.969 4.335 35516.0 3.316 0.298 3.4 null 67.59 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
DNK Europe Denmark 2020-05-04 9868.0 147.0 138.857 493.0 9.0 9.429 1703.67 25.379 23.973 85.114 1.554 1.628 0.88 57.0 9.841 252.0 43.507 null null null null 304058.0 17780.0 52.494 3.07 14381.0 2.483 1.0e-2 103.6 null 68.52 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DNK Europe Denmark 2020-05-29 11793.0 81.0 52.143 568.0 0.0 1.0 2036.013 13.984 9.002 98.063 0.0 0.173 0.84 18.0 3.108 106.0 18.3 null null null null 615238.0 11781.0 106.218 2.034 13065.0 2.256 4.0e-3 250.6 null 57.41 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DNK Europe Denmark 2020-06-16 12450.0 33.0 35.571 598.0 0.0 0.714 2149.441 5.697 6.141 103.242 0.0 0.123 0.96 8.0 1.381 43.0 7.424 null null null null 836877.0 18201.0 144.483 3.142 14195.0 2.451 3.0e-3 399.1 null 57.41 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DOM North America Dominican Republic 2020-10-20 121973.0 306.0 423.571 2204.0 1.0 3.0 11243.923 28.208 39.046 203.173 9.2e-2 0.277 0.97 null null null null null null null null null null null null 3191.0 0.294 0.133 7.5 null 67.59 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
DOM North America Dominican Republic 2020-10-27 125008.0 165.0 433.571 2226.0 1.0 3.143 11523.701 15.21 39.968 205.201 9.2e-2 0.29 1.0 null null null null null null null null 578567.0 6061.0 53.334 0.559 3891.0 0.359 0.111 9.0 null 67.59 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
DOM North America Dominican Republic 2020-10-30 126332.0 419.0 494.143 2236.0 2.0 3.429 11645.752 38.625 45.552 206.123 0.184 0.316 1.01 null null null null null null null null 594704.0 null 54.822 null 4588.0 0.423 0.108 9.3 null 67.59 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
ECU South America Ecuador 2020-05-03 29538.0 2074.0 974.143 1564.0 193.0 141.143 1674.199 117.553 55.214 88.647 10.939 8.0 0.93 null null null null null null null null 43727.0 4803.0 2.478 0.272 2076.0 0.118 null null null 93.52 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
ECU South America Ecuador 2020-07-12 67870.0 661.0 844.571 5047.0 16.0 38.0 3846.838 37.465 47.87 286.061 0.907 2.154 1.13 null null null null null null null null 139271.0 1852.0 7.894 0.105 1934.0 0.11 null null null 79.63 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
EGY Africa Egypt 2020-04-16 2673.0 168.0 139.143 196.0 13.0 11.143 26.12 1.642 1.36 1.915 0.127 0.109 1.34 null null null null null null null null null null null null null null null null null 84.26 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-06-20 53758.0 1547.0 1539.714 2106.0 89.0 88.857 525.317 15.117 15.046 20.58 0.87 0.868 1.05 null null null null null null null null null null null null null null null null null 71.3 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
SLV North America El Salvador 2020-02-07 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 6486201.0 307.811 27.6 8.273 5.417 7292.458 2.2 167.295 8.87 2.5 18.8 90.65 1.3 73.32 0.674
SLV North America El Salvador 2020-03-11 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 41.67 6486201.0 307.811 27.6 8.273 5.417 7292.458 2.2 167.295 8.87 2.5 18.8 90.65 1.3 73.32 0.674
SLV North America El Salvador 2020-11-05 34782.0 767.0 191.0 997.0 5.0 4.286 5362.461 118.251 29.447 153.711 0.771 0.661 1.12 null null null null null null null null null null null null 2406.0 0.371 7.9e-2 12.6 null 52.78 6486201.0 307.811 27.6 8.273 5.417 7292.458 2.2 167.295 8.87 2.5 18.8 90.65 1.3 73.32 0.674
ERI Africa Eritrea 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
ERI Africa Eritrea 2020-03-23 1.0 0.0 0.143 0.0 0.0 0.0 0.282 0.0 4.0e-2 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 53.7 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
ERI Africa Eritrea 2020-04-19 39.0 0.0 0.714 0.0 0.0 0.0 10.997 0.0 0.201 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 93.52 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
EST Europe Estonia 2020-03-19 267.0 9.0 35.857 0.0 0.0 0.0 201.276 6.785 27.031 null 0.0 0.0 1.35 0.0 0.0 20.0 15.077 null null null null 2955.0 378.0 2.228 0.285 330.0 0.249 0.109 9.2 null 50.0 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
EST Europe Estonia 2020-05-26 1834.0 10.0 6.143 65.0 0.0 0.143 1382.545 7.538 4.631 49.0 0.0 0.108 0.98 1.0 0.754 31.0 23.369 null null null null 89563.0 1841.0 67.516 1.388 1244.0 0.938 5.0e-3 202.5 null 50.0 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
EST Europe Estonia 2020-11-07 5933.0 228.0 146.857 73.0 0.0 0.0 4472.541 171.876 110.707 55.03 0.0 0.0 1.51 6.0 4.523 62.0 46.738 null null null null 366885.0 3507.0 276.573 2.644 3667.0 2.764 4.0e-2 25.0 null 25.93 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
EST Europe Estonia 2020-11-11 6508.0 132.0 167.857 76.0 0.0 0.429 4906.0 99.507 126.538 57.292 0.0 0.323 1.46 9.0 6.785 77.0 58.046 null null null null 385182.0 5232.0 290.366 3.944 4386.0 3.306 3.8e-2 26.1 null 25.93 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
EST Europe Estonia 2020-11-20 9076.0 361.0 275.429 87.0 1.0 1.0 6841.864 272.137 207.629 65.584 0.754 0.754 1.45 16.0 12.061 154.0 116.092 null null null null 434619.0 5428.0 327.634 4.092 5549.0 4.183 5.0e-2 20.1 null 37.96 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
ETH Africa Ethiopia 2020-08-01 17999.0 469.0 678.714 284.0 10.0 10.714 156.563 4.08 5.904 2.47 8.7e-2 9.3e-2 1.12 null null null null null null null null 429712.0 7358.0 3.738 6.4e-2 8129.0 7.1e-2 8.3e-2 12.0 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
ALB Europe Albania 2020-02-08 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
ALB Europe Albania 2020-02-09 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2877800.0 104.871 38.0 13.188 8.643 11803.431 1.1 304.195 10.08 7.1 51.2 null 2.89 78.57 0.785
DZA Africa Algeria 2020-04-25 3256.0 129.0 103.143 419.0 4.0 7.429 74.251 2.942 2.352 9.555 9.1e-2 0.169 1.21 null null null null null null null null null null null null null null null null null 76.85 4.3851043e7 17.348 29.1 6.211 3.857 13913.839 0.5 278.364 6.73 0.7 30.4 83.741 1.9 76.88 0.754
ARG South America Argentina 2020-07-11 97509.0 3449.0 3161.857 1810.0 36.0 47.0 2157.48 76.312 69.959 40.048 0.797 1.04 1.21 null null null null null null null null null null null null null null null null null 92.59 4.5195777e7 16.177 31.9 11.198 7.441 18933.907 0.6 191.032 5.5 16.2 27.7 null 5.0 76.67 0.825
ARM Asia Armenia 2020-08-25 42936.0 111.0 155.714 858.0 4.0 3.714 14489.575 37.459 52.549 289.549 1.35 1.253 0.9 null null null null null null null null null null null null null null null null null null 2963234.0 102.931 35.7 11.232 7.571 8787.58 1.8 341.01 7.11 1.5 52.1 94.043 4.2 75.09 0.755
ARM Asia Armenia 2020-10-19 65460.0 766.0 1234.143 1091.0 10.0 9.286 22090.729 258.501 416.485 368.179 3.375 3.134 1.45 null null null null null null null null null null null null null null null null null null 2963234.0 102.931 35.7 11.232 7.571 8787.58 1.8 341.01 7.11 1.5 52.1 94.043 4.2 75.09 0.755
AUS Oceania Australia 2020-11-14 27711.0 29.0 7.571 907.0 0.0 0.0 1086.711 1.137 0.297 35.569 0.0 0.0 1.43 null null null null null null null null null null null null 40685.0 1.595 0.0 5373.8 null 52.31 2.5499881e7 3.202 37.9 15.504 10.129 44648.71 0.5 107.791 5.07 13.0 16.5 null 3.84 83.44 0.939
AUT Europe Austria 2020-03-10 182.0 51.0 23.0 0.0 0.0 0.0 20.208 5.663 2.554 null 0.0 0.0 2.84 null null null null null null null null 5026.0 292.0 0.558 3.2e-2 335.0 3.7e-2 6.9e-2 14.6 null 19.44 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-04-14 14226.0 185.0 226.714 384.0 16.0 20.143 1579.543 20.541 25.173 42.636 1.777 2.237 0.52 243.0 26.981 759.0 84.273 null null null null 151796.0 3384.0 16.854 0.376 5223.0 0.58 4.3e-2 23.0 null 77.78 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AUT Europe Austria 2020-11-06 138979.0 6464.0 5629.0 1340.0 72.0 36.857 15431.138 717.712 625.0 148.783 7.994 4.092 1.42 431.0 47.855 2504.0 278.025 null null null null 2396015.0 33067.0 266.035 3.672 27432.0 3.046 0.205 4.9 null 75.0 9006400.0 106.749 44.4 19.202 13.748 45436.686 0.7 145.183 6.35 28.4 30.9 null 7.37 81.54 0.908
AZE Asia Azerbaijan 2020-11-04 59509.0 1227.0 1053.143 780.0 12.0 11.571 5869.215 121.016 103.869 76.929 1.184 1.141 1.34 null null null null null null null null null null null null null null null null null 64.35 1.0139175e7 119.309 32.4 6.018 3.871 15847.419 null 559.812 7.11 0.3 42.5 83.241 4.7 73.0 0.757
BHS North America Bahamas 2020-01-29 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHS North America Bahamas 2020-03-05 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHS North America Bahamas 2020-04-26 80.0 2.0 3.571 11.0 0.0 0.286 203.434 5.086 9.082 27.972 0.0 0.727 null null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHS North America Bahamas 2020-05-10 92.0 0.0 1.286 11.0 0.0 0.0 233.949 0.0 3.269 27.972 0.0 0.0 null null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHS North America Bahamas 2020-06-21 104.0 0.0 0.143 11.0 0.0 0.0 264.464 0.0 0.363 27.972 0.0 0.0 9.0e-2 null null null null null null null null null null null null null null null null null null 393248.0 39.497 34.3 8.996 5.2 27717.847 null 235.954 13.17 3.1 20.4 null 2.9 73.92 0.807
BHR Asia Bahrain 2020-04-15 1671.0 143.0 121.143 7.0 0.0 0.286 982.027 84.039 71.194 4.114 0.0 0.168 1.35 null null null null null null null null 73272.0 2459.0 43.061 1.445 2924.0 1.718 4.1e-2 24.1 null 75.0 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-05-19 7532.0 348.0 285.857 12.0 0.0 0.429 4426.466 204.515 167.995 7.052 0.0 0.252 1.22 null null null null null null null null 248205.0 5174.0 145.867 3.041 7187.0 4.224 4.0e-2 25.1 null 75.0 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BHR Asia Bahrain 2020-07-02 27837.0 423.0 536.571 94.0 2.0 3.286 16359.472 248.592 315.337 55.243 1.175 1.931 1.05 null null null null null null null null 564365.0 10126.0 331.671 5.951 8800.0 5.172 6.1e-2 16.4 null 75.0 1701583.0 1935.907 32.4 2.372 1.387 43290.705 null 151.689 16.52 5.8 37.6 null 2.0 77.29 0.846
BGD Asia Bangladesh 2020-07-15 193590.0 3533.0 3065.143 2457.0 33.0 37.143 1175.486 21.453 18.612 14.919 0.2 0.226 0.95 null null null null null null null null 983365.0 14002.0 5.971 8.5e-2 13036.0 7.9e-2 0.235 4.3 null 74.54 1.64689383e8 1265.036 27.5 5.098 3.262 3523.984 14.8 298.003 8.38 1.0 44.7 34.808 0.8 72.59 0.608
BRB North America Barbados 2020-02-11 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 287371.0 664.463 39.8 14.952 9.473 16978.068 null 170.05 13.57 1.9 14.5 88.469 5.8 79.19 0.8
BRB North America Barbados 2020-04-11 68.0 1.0 2.286 4.0 0.0 0.571 236.628 3.48 7.954 13.919 0.0 1.988 null null null null null null null null null null null null null null null null null null 88.89 287371.0 664.463 39.8 14.952 9.473 16978.068 null 170.05 13.57 1.9 14.5 88.469 5.8 79.19 0.8
BRB North America Barbados 2020-04-17 75.0 0.0 1.143 5.0 0.0 0.143 260.987 0.0 3.977 17.399 0.0 0.497 null null null null null null null null null null null null null null null null null null 88.89 287371.0 664.463 39.8 14.952 9.473 16978.068 null 170.05 13.57 1.9 14.5 88.469 5.8 79.19 0.8
BRB North America Barbados 2020-04-30 81.0 1.0 0.714 7.0 0.0 0.143 281.866 3.48 2.486 24.359 0.0 0.497 null null null null null null null null null null null null null null null null null null 88.89 287371.0 664.463 39.8 14.952 9.473 16978.068 null 170.05 13.57 1.9 14.5 88.469 5.8 79.19 0.8
BEL Europe Belgium 2020-05-23 56810.0 299.0 260.143 9237.0 25.0 33.143 4901.802 25.799 22.446 797.007 2.157 2.86 0.73 256.0 22.089 1296.0 111.824 null null null null 806344.0 9227.0 69.575 0.796 12665.0 1.093 2.1e-2 48.7 null 75.0 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEL Europe Belgium 2020-08-10 74620.0 468.0 615.143 9879.0 7.0 4.143 6438.522 40.381 53.077 852.401 0.604 0.357 1.15 73.0 6.299 312.0 26.921 null null null null 1899357.0 17036.0 163.884 1.47 20216.0 1.744 3.0e-2 32.9 null 64.81 1.1589616e7 375.564 41.8 18.571 12.849 42658.576 0.2 114.898 4.29 25.1 31.4 null 5.64 81.63 0.916
BEN Africa Benin 2020-02-22 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BEN Africa Benin 2020-11-08 2745.0 0.0 8.857 43.0 0.0 0.286 226.425 0.0 0.731 3.547 0.0 2.4e-2 0.91 null null null null null null null null null null null null null null null null null 31.48 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BEN Africa Benin 2020-11-24 2916.0 0.0 4.571 43.0 0.0 0.0 240.531 0.0 0.377 3.547 0.0 0.0 null null null null null null null null null null null null null null null null null null null 1.2123198e7 99.11 18.8 3.244 1.942 2064.236 49.6 235.848 0.99 0.6 12.3 11.035 0.5 61.77 0.515
BIH Europe Bosnia and Herzegovina 2020-11-04 55598.0 1776.0 1551.571 1358.0 41.0 28.143 16946.399 541.329 472.923 413.922 12.497 8.578 1.17 null null null null null null null null null null null null null null null null null 40.74 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BIH Europe Bosnia and Herzegovina 2020-11-25 83328.0 1589.0 1107.286 2429.0 35.0 48.571 25398.567 484.331 337.503 740.365 10.668 14.805 null null null null null null null null null null null null null null null null null null 48.15 3280815.0 68.496 42.5 16.569 10.711 11713.895 0.2 329.635 10.08 30.2 47.7 97.164 3.5 77.4 0.768
BRN Asia Brunei 2020-02-01 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 19.44 437483.0 81.347 32.4 4.591 2.382 71809.251 null 201.285 12.79 2.0 30.9 null 2.7 75.86 0.853
BFA Africa Burkina Faso 2020-03-07 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BFA Africa Burkina Faso 2020-05-15 780.0 7.0 5.143 51.0 0.0 0.429 37.315 0.335 0.246 2.44 0.0 2.1e-2 0.95 null null null null null null null null null null null null null null null null null 60.19 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
BFA Africa Burkina Faso 2020-08-20 1297.0 12.0 9.857 55.0 0.0 0.143 62.048 0.574 0.472 2.631 0.0 7.0e-3 0.98 null null null null null null null null null null null null null null null null null 48.15 2.0903278e7 70.151 17.6 2.409 1.358 1703.102 43.7 269.048 2.42 1.6 23.9 11.877 0.4 61.58 0.423
KHM Asia Cambodia 2020-04-28 122.0 0.0 0.0 0.0 0.0 0.0 7.297 0.0 0.0 null 0.0 0.0 5.0e-2 null null null null null null null null null null null null null null null null null 57.41 1.6718971e7 90.672 25.6 4.412 2.385 3645.07 null 270.892 4.0 2.0 33.7 66.229 0.8 69.82 0.582
CAN North America Canada 2020-03-28 5576.0 894.0 614.143 61.0 7.0 6.0 147.739 23.687 16.272 1.616 0.185 0.159 2.11 null null null null null null null null 187448.0 16804.0 4.967 0.445 14081.0 0.373 4.4e-2 22.9 null 72.69 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-04-20 37658.0 2025.0 1711.143 1727.0 162.0 135.143 997.77 53.654 45.338 45.758 4.292 3.581 1.19 null null null null null null null null 559578.0 10229.0 14.826 0.271 17443.0 0.462 9.8e-2 10.2 null 72.69 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-04-29 52865.0 1715.0 1600.286 3155.0 172.0 153.857 1400.688 45.44 42.4 83.594 4.557 4.077 1.04 null null null null null null null null 779613.0 24813.0 20.656 0.657 23917.0 0.634 6.7e-2 14.9 null 72.69 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-06-23 103767.0 349.0 382.857 8512.0 18.0 34.429 2749.366 9.247 10.144 225.53 0.477 0.912 0.82 null null null null null null null null 2482869.0 38751.0 65.785 1.027 38020.0 1.007 1.0e-2 99.3 null 68.98 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-07-11 109150.0 166.0 280.714 8818.0 7.0 12.286 2891.992 4.398 7.438 233.638 0.185 0.326 1.03 null null null null null null null null 3183516.0 40814.0 84.349 1.081 38366.0 1.017 7.0e-3 136.7 null 67.13 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-08-11 122389.0 336.0 390.0 9038.0 4.0 4.714 3242.766 8.903 10.333 239.467 0.106 0.125 1.01 null null null null null null null null 4541747.0 36529.0 120.336 0.968 43604.0 1.155 9.0e-3 111.8 null 67.13 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CAN North America Canada 2020-11-28 368279.0 5675.0 5584.0 11993.0 77.0 76.857 9757.762 150.362 147.951 317.761 2.04 2.036 null null null null null null null null null 1.1344925e7 82884.0 300.59 2.196 74577.0 1.976 7.5e-2 13.4 null 64.35 3.7742157e7 4.037 41.4 16.984 10.797 44017.591 0.5 105.599 7.37 12.0 16.6 null 2.5 82.43 0.926
CPV Africa Cape Verde 2020-06-27 1091.0 64.0 32.571 12.0 2.0 0.571 1962.273 115.11 58.583 21.583 3.597 1.028 1.09 null null null null null null null null null null null null null null null null null 79.17 555988.0 135.58 25.7 4.46 3.437 6222.554 null 182.219 2.42 2.1 16.5 null 2.1 72.98 0.654
COL South America Colombia 2020-01-31 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-07-27 257101.0 8125.0 7585.143 8777.0 252.0 264.0 5052.799 159.68 149.071 172.494 4.953 5.188 1.19 null null null null null null null null 1439436.0 30312.0 28.289 0.596 28986.0 0.57 null null null 87.04 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-08-17 476660.0 8328.0 11291.0 15372.0 275.0 316.857 9367.787 163.67 221.902 302.106 5.405 6.227 1.03 null null null null null null null null 2210712.0 32723.0 43.447 0.643 38283.0 0.752 null null null 87.04 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COL South America Colombia 2020-11-07 1136447.0 8714.0 8894.714 32595.0 190.0 183.0 22334.563 171.256 174.808 640.589 3.734 3.596 0.98 null null null null null null null null 4414177.0 27531.0 86.752 0.541 30210.0 0.594 null null null 65.74 5.0882884e7 44.223 32.2 7.646 4.312 13254.949 4.5 124.24 7.44 4.7 13.5 65.386 1.71 77.29 0.747
COM Africa Comoros 2020-09-13 456.0 0.0 0.571 7.0 0.0 0.0 524.382 0.0 0.657 8.05 0.0 0.0 0.65 null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
COM Africa Comoros 2020-11-18 591.0 0.0 3.143 7.0 0.0 0.0 679.627 0.0 3.614 8.05 0.0 0.0 0.64 null null null null null null null null null null null null null null null null null null 869595.0 437.352 20.4 2.963 1.726 1413.89 18.1 261.516 11.88 4.4 23.6 15.574 2.2 64.32 0.503
CRI North America Costa Rica 2020-03-26 231.0 30.0 23.143 2.0 0.0 0.143 45.346 5.889 4.543 0.393 0.0 2.8e-2 1.09 null null null null null null null null 2622.0 677.0 0.515 0.133 226.0 4.4e-2 null null null 71.3 5094114.0 96.079 33.6 9.468 5.694 15524.995 1.3 137.973 8.78 6.4 17.4 83.841 1.13 80.28 0.794
HRV Europe Croatia 2020-01-31 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 11.11 4105268.0 73.726 44.0 19.724 13.053 22669.797 0.7 253.782 5.59 34.3 39.9 null 5.54 78.49 0.831
HRV Europe Croatia 2020-03-03 9.0 2.0 1.143 0.0 0.0 0.0 2.192 0.487 0.278 null 0.0 0.0 null null null null null null null null null 247.0 null 6.0e-2 null null null null null null 13.89 4105268.0 73.726 44.0 19.724 13.053 22669.797 0.7 253.782 5.59 34.3 39.9 null 5.54 78.49 0.831
HRV Europe Croatia 2020-07-20 4370.0 25.0 85.0 122.0 2.0 0.429 1064.486 6.09 20.705 29.718 0.487 0.104 0.95 null null 147.0 35.808 null null null null 104132.0 1028.0 25.365 0.25 1422.0 0.346 6.0e-2 16.7 null 46.3 4105268.0 73.726 44.0 19.724 13.053 22669.797 0.7 253.782 5.59 34.3 39.9 null 5.54 78.49 0.831
HRV Europe Croatia 2020-10-29 43775.0 2776.0 1989.286 511.0 18.0 15.0 10663.128 676.204 484.569 124.474 4.385 3.654 1.52 null null 985.0 239.936 null null null null 475994.0 9679.0 115.947 2.358 7764.0 1.891 0.256 3.9 null 31.48 4105268.0 73.726 44.0 19.724 13.053 22669.797 0.7 253.782 5.59 34.3 39.9 null 5.54 78.49 0.831
CYP Europe Cyprus 2020-07-28 1067.0 7.0 3.857 19.0 0.0 0.0 1218.177 7.992 4.404 21.692 0.0 0.0 1.74 null null null null null null null null 198446.0 1974.0 226.563 2.254 1652.0 1.886 2.0e-3 428.3 null 47.22 875899.0 127.657 37.3 13.416 8.563 32415.132 null 141.171 9.24 19.6 52.7 null 3.4 80.98 0.869
CYP Europe Cyprus 2020-08-23 1421.0 4.0 11.714 20.0 0.0 0.0 1622.333 4.567 13.374 22.834 0.0 0.0 1.0 null null null null null null 4.0 4.567 280418.0 3281.0 320.149 3.746 3486.0 3.98 3.0e-3 297.6 null 50.0 875899.0 127.657 37.3 13.416 8.563 32415.132 null 141.171 9.24 19.6 52.7 null 3.4 80.98 0.869
CZE Europe Czech Republic 2020-08-15 19891.0 198.0 236.571 395.0 1.0 0.857 1857.413 18.489 22.091 36.885 9.3e-2 8.0e-2 1.09 27.0 2.521 104.0 9.711 null null null null 798567.0 5033.0 74.57 0.47 6610.0 0.617 3.6e-2 27.9 null 36.11 1.0708982e7 137.176 43.3 19.027 11.58 32605.906 null 227.485 6.82 30.5 38.3 null 6.63 79.38 0.888
DNK Europe Denmark 2020-09-10 19353.0 317.0 221.857 629.0 1.0 0.429 3341.216 54.729 38.303 108.594 0.173 7.4e-2 1.33 5.0 0.863 35.0 6.043 null null null null 2896298.0 52153.0 500.034 9.004 42228.0 7.29 5.0e-3 190.3 null 47.69 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DNK Europe Denmark 2020-10-04 30168.0 379.0 436.714 658.0 4.0 1.286 5208.381 65.433 75.397 113.601 0.691 0.222 1.12 18.0 3.108 105.0 18.128 null null 128.692 22.218 4041501.0 33949.0 697.749 5.861 43922.0 7.583 1.0e-2 100.6 null 50.93 5792203.0 136.52 42.3 19.677 12.325 46682.515 0.2 114.767 6.41 19.3 18.8 null 2.5 80.9 0.929
DOM North America Dominican Republic 2020-12-03 146009.0 812.0 726.714 2335.0 1.0 2.571 13459.651 74.853 66.991 215.249 9.2e-2 0.237 null null null null null null null null null null null null null null null null null null null 1.0847904e7 222.873 27.6 6.981 4.419 14600.861 1.6 266.653 8.2 8.5 19.1 55.182 1.6 74.08 0.736
ECU South America Ecuador 2020-07-26 80694.0 658.0 954.429 5515.0 8.0 28.857 4573.696 37.295 54.097 312.587 0.453 1.636 1.02 null null null null null null null null 169605.0 1823.0 9.613 0.103 2208.0 0.125 null null null 78.24 1.764306e7 66.939 28.1 7.104 4.458 10581.936 3.6 140.448 5.55 2.0 12.3 80.635 1.5 77.01 0.752
EGY Africa Egypt 2020-03-05 3.0 1.0 0.286 0.0 0.0 0.0 2.9e-2 1.0e-2 3.0e-3 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-04-05 1173.0 103.0 80.571 78.0 7.0 5.429 11.462 1.007 0.787 0.762 6.8e-2 5.3e-2 1.55 null null null null null null null null null null null null null null null null null 84.26 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
EGY Africa Egypt 2020-09-21 102141.0 126.0 137.714 5787.0 17.0 18.0 998.11 1.231 1.346 56.55 0.166 0.176 0.9 null null null null null null null null null null null null null null null null null 62.96 1.02334403e8 97.999 25.3 5.159 2.891 10550.206 1.3 525.432 17.31 0.2 50.1 89.827 1.6 71.99 0.696
SLV North America El Salvador 2020-06-22 4808.0 182.0 140.286 107.0 9.0 4.714 741.266 28.06 21.628 16.497 1.388 0.727 1.12 null null null null null null null null 145341.0 2455.0 22.408 0.378 2448.0 0.377 5.7e-2 17.5 null 90.74 6486201.0 307.811 27.6 8.273 5.417 7292.458 2.2 167.295 8.87 2.5 18.8 90.65 1.3 73.32 0.674
ERI Africa Eritrea 2020-03-16 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 22.22 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
ERI Africa Eritrea 2020-07-05 215.0 0.0 3.429 0.0 0.0 0.0 60.624 0.0 0.967 null 0.0 0.0 0.35 null null null null null null null null null null null null null null null null null 93.52 3546427.0 44.304 19.3 3.607 2.171 1510.459 null 311.11 6.05 0.2 11.4 null 0.7 66.32 0.44
EST Europe Estonia 2020-02-03 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
EST Europe Estonia 2020-04-15 1400.0 27.0 30.714 35.0 4.0 1.571 1055.378 20.354 23.154 26.384 3.015 1.185 0.83 10.0 7.538 132.0 99.507 null null null null 38218.0 2263.0 28.81 1.706 1496.0 1.128 2.1e-2 48.7 null 77.78 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
EST Europe Estonia 2020-10-03 3577.0 70.0 58.857 67.0 1.0 0.429 2696.491 52.769 44.369 50.507 0.754 0.323 1.11 4.0 3.015 41.0 30.907 null null null null 271595.0 1854.0 204.74 1.398 3454.0 2.604 1.7e-2 58.7 null 25.93 1326539.0 31.033 42.7 19.452 13.491 29481.252 0.5 255.569 4.02 24.5 39.3 null 4.69 78.74 0.871
ETH Africa Ethiopia 2020-06-03 1486.0 142.0 107.857 17.0 3.0 1.571 12.926 1.235 0.938 0.148 2.6e-2 1.4e-2 1.6 null null null null null null null null 120429.0 4120.0 1.048 3.6e-2 4116.0 3.6e-2 2.6e-2 38.2 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
ETH Africa Ethiopia 2020-08-16 29876.0 982.0 1008.286 528.0 19.0 17.286 259.874 8.542 8.77 4.593 0.165 0.15 1.45 null null null null null null null null 609463.0 19769.0 5.301 0.172 15927.0 0.139 6.3e-2 15.8 null 80.56 1.14963583e8 104.957 19.8 3.526 2.063 1729.927 26.7 182.634 7.47 0.4 8.5 7.96 0.3 66.6 0.463
MNG Asia Mongolia 2020-09-03 310.0 4.0 1.286 0.0 0.0 0.0 94.561 1.22 0.392 null 0.0 0.0 0.35 null null null null null null null null null null null null null null null null null 56.48 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
MNG Asia Mongolia 2020-09-09 310.0 0.0 0.571 0.0 0.0 0.0 94.561 0.0 0.174 null 0.0 0.0 0.31 null null null null null null null null null null null null null null null null null 56.48 3278292.0 1.98 28.6 4.031 2.421 11840.846 0.5 460.043 4.82 5.5 46.5 71.18 7.0 69.87 0.741
MNE Europe Montenegro 2020-03-13 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MNE Europe Montenegro 2020-04-03 174.0 30.0 13.143 2.0 0.0 0.143 277.043 47.766 20.926 3.184 0.0 0.227 1.15 null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MNE Europe Montenegro 2020-06-07 324.0 0.0 0.0 9.0 0.0 0.0 515.873 0.0 0.0 14.33 0.0 0.0 6.0e-2 null null null null null null null null null null null null null null null null null null 628062.0 46.28 39.1 14.762 9.395 16409.288 1.0 387.305 10.08 44.0 47.9 null 3.861 76.88 0.814
MAR Africa Morocco 2020-06-19 9613.0 539.0 143.286 213.0 0.0 0.143 260.44 14.603 3.882 5.771 0.0 4.0e-3 1.72 null null null null null null null null 505636.0 16689.0 13.699 0.452 16642.0 0.451 9.0e-3 116.1 null 76.85 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MAR Africa Morocco 2020-07-20 17562.0 326.0 232.286 276.0 3.0 3.0 475.799 8.832 6.293 7.478 8.1e-2 8.1e-2 1.24 null null null null null null null null 1027773.0 18447.0 27.845 0.5 18734.0 0.508 1.2e-2 80.7 null 64.81 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MAR Africa Morocco 2020-08-16 42489.0 1472.0 1321.714 658.0 26.0 22.857 1151.134 39.88 35.809 17.827 0.704 0.619 1.21 null null null null null null null null 1605613.0 22379.0 43.5 0.606 22235.0 0.602 5.9e-2 16.8 null 70.37 3.6910558e7 80.08 29.6 6.769 4.209 7485.013 1.0 419.146 7.14 0.8 47.1 null 1.1 76.68 0.667
MOZ Africa Mozambique 2020-02-21 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 8.33 3.1255435e7 37.728 17.7 3.158 1.87 1136.103 62.9 329.942 3.3 5.1 29.1 12.227 0.7 60.85 0.437
MOZ Africa Mozambique 2020-04-20 39.0 0.0 2.571 0.0 0.0 0.0 1.248 0.0 8.2e-2 null 0.0 0.0 null null null null null null null null null 1110.0 73.0 3.6e-2 2.0e-3 61.0 2.0e-3 4.2e-2 23.7 null 56.48 3.1255435e7 37.728 17.7 3.158 1.87 1136.103 62.9 329.942 3.3 5.1 29.1 12.227 0.7 60.85 0.437
MOZ Africa Mozambique 2020-05-22 164.0 2.0 6.429 0.0 0.0 0.0 5.247 6.4e-2 0.206 null 0.0 0.0 1.11 null null null null null null null null 7480.0 417.0 0.239 1.3e-2 303.0 1.0e-2 2.1e-2 47.1 null 56.48 3.1255435e7 37.728 17.7 3.158 1.87 1136.103 62.9 329.942 3.3 5.1 29.1 12.227 0.7 60.85 0.437
MOZ Africa Mozambique 2020-06-30 889.0 6.0 18.857 6.0 0.0 0.143 28.443 0.192 0.603 0.192 0.0 5.0e-3 1.12 null null null null null null null null 29577.0 173.0 0.946 6.0e-3 648.0 2.1e-2 2.9e-2 34.4 null 80.56 3.1255435e7 37.728 17.7 3.158 1.87 1136.103 62.9 329.942 3.3 5.1 29.1 12.227 0.7 60.85 0.437
MMR Asia Myanmar 2020-08-12 361.0 1.0 0.571 6.0 0.0 0.0 6.635 1.8e-2 1.1e-2 0.11 0.0 0.0 1.28 null null null null null null null null 130539.0 1738.0 2.399 3.2e-2 1178.0 2.2e-2 0.0 2063.0 null 74.07 5.4409794e7 81.721 29.1 5.732 3.12 5591.597 6.4 202.104 4.61 6.3 35.2 79.287 0.9 67.13 0.578
NPL Asia Nepal 2020-08-19 28938.0 681.0 643.714 120.0 6.0 4.143 993.177 23.372 22.093 4.119 0.206 0.142 1.32 null null null null null null null null 554388.0 11522.0 19.027 0.395 11601.0 0.398 5.5e-2 18.0 null 85.19 2.9136808e7 204.43 25.0 5.809 3.212 2442.804 15.0 260.797 7.26 9.5 37.8 47.782 0.3 70.78 0.574
NLD Europe Netherlands 2020-02-13 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-08-18 65560.0 580.0 738.429 6197.0 3.0 5.0 3826.115 33.849 43.095 361.66 0.175 0.292 1.09 49.0 2.86 null null null null null null null null null null 18972.0 1.107 3.9e-2 25.7 null 50.93 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-11-17 464205.0 4368.0 5425.429 8689.0 86.0 68.286 27091.243 254.919 316.631 507.095 5.019 3.985 0.85 608.0 35.483 null null null null null null null null null null null null null null null 65.74 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NLD Europe Netherlands 2020-11-20 480649.0 6008.0 5302.286 8898.0 52.0 66.857 28050.923 350.63 309.444 519.292 3.035 3.902 0.89 588.0 34.316 null null null null null null null null null null null null null null null 65.74 1.7134873e7 508.544 43.2 18.779 11.881 48472.545 null 109.361 5.29 24.4 27.3 null 3.32 82.28 0.931
NZL Oceania New Zealand 2020-08-30 1738.0 9.0 7.857 22.0 0.0 0.0 360.414 1.866 1.629 4.562 0.0 0.0 0.99 null null null null null null null null 747385.0 6566.0 154.987 1.362 8447.0 1.752 1.0e-3 1075.1 null 68.98 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NZL Oceania New Zealand 2020-09-04 1767.0 3.0 5.714 24.0 2.0 0.286 366.428 0.622 1.185 4.977 0.415 5.9e-2 0.78 null null null null null null null null 796445.0 8860.0 165.161 1.837 9447.0 1.959 1.0e-3 1653.3 null 34.72 4822233.0 18.206 37.9 15.322 9.72 36085.843 null 128.797 8.08 14.8 17.2 null 2.61 82.29 0.917
NER Africa Niger 2020-03-04 0.0 0.0 0.0 0.0 0.0 0.0 null 0.0 0.0 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 0.0 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
NER Africa Niger 2020-09-13 1180.0 2.0 0.429 69.0 0.0 0.0 48.747 8.3e-2 1.8e-2 2.85 0.0 0.0 0.85 null null null null null null null null null null null null null null null null null 14.81 2.4206636e7 16.955 15.1 2.553 1.378 926.0 44.5 238.339 2.42 0.1 15.4 8.978 0.3 62.42 0.354
PAK Asia Pakistan 2020-05-21 50694.0 2603.0 1699.286 1067.0 50.0 33.286 229.496 11.784 7.693 4.83 0.226 0.151 1.25 null null null null null null null null 429600.0 15346.0 1.945 6.9e-2 14121.0 6.4e-2 0.12 8.3 null 82.41 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PAK Asia Pakistan 2020-06-23 188926.0 3892.0 4880.857 3755.0 60.0 111.429 855.285 17.619 22.096 16.999 0.272 0.504 0.95 null null null null null null null null 1126761.0 24599.0 5.101 0.111 29157.0 0.132 0.167 6.0 null 60.19 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PAK Asia Pakistan 2020-11-18 365927.0 2547.0 2276.429 7248.0 18.0 27.571 1656.585 11.531 10.306 32.812 8.1e-2 0.125 1.32 null null null null null null null null 5018483.0 38544.0 22.719 0.174 34998.0 0.158 6.5e-2 15.4 null 47.69 2.20892331e8 255.573 23.5 4.495 2.78 5034.708 4.0 423.031 8.35 2.8 36.7 59.607 0.6 67.27 0.562
PAN North America Panama 2020-05-28 12131.0 403.0 287.857 320.0 5.0 4.143 2811.507 93.4 66.714 74.164 1.159 0.96 1.32 null null null null null null null null 60973.0 1253.0 14.131 0.29 1275.0 0.295 0.226 4.4 null 89.81 4314768.0 55.133 29.7 7.918 5.03 22267.037 2.2 128.346 8.33 2.4 9.9 null 2.3 78.51 0.789
res44: Long = 133
import org.apache.spark.ml.regression.LinearRegression
import org.apache.spark.ml.regression.LinearRegressionModel
import org.apache.spark.ml.Pipeline
lr: org.apache.spark.ml.regression.LinearRegression = linReg_1077c2744dad
lrModel: org.apache.spark.ml.regression.LinearRegressionModel = LinearRegressionModel: uid=linReg_1077c2744dad, numFeatures=5
Coefficients: [2.6214237261444726,-1.364306221013195,-1.3234981005291744,4.903123743799156,1.0283056897021905], Intercept: 6.69144939405342
RMSE: 1.6058962464052953
trainingSummary: org.apache.spark.ml.regression.LinearRegressionTrainingSummary = org.apache.spark.ml.regression.LinearRegressionTrainingSummary@7545e754
+------------------+---------------------------+--------------------+
|        prediction|log_total_cases_per_million|            features|
+------------------+---------------------------+--------------------+
|  6.32849475311866|          2.142543078223737|[0.15958180147058...|
| 8.115061043502047|          7.528810569839765|[0.36167279411764...|
|7.4629978084926085|          6.223671398897003|[0.64889705882352...|
| 7.831137150153837|          6.524287884057365|[0.79779411764705...|
|10.269420769779098|          5.843997267897207|[0.40429687499999...|
| 7.289562258542387|         2.6304048908829563|[0.49471507352941...|
| 9.963465130096221|          9.237218853465539|[0.57444852941176...|
|13.213369998258525|         10.784078124343976|[0.74460018382352...|
| 9.213228147281594|         10.572977149641726|[0.75528492647058...|
| 9.085379666714468|          9.143147511395949|[0.82444852941176...|
| 6.750739656770264|         10.952187342908323|[0.0,3.6806047717...|
| 8.135800825140635|         10.373288860272808|[0.51056985294117...|
| 7.507644816227433|         10.203096222487993|[0.55319393382352...|
|10.048805671611255|          8.817232647019427|[0.56376378676470...|
| 9.404481665413662|         10.158884909113675|[0.61695772058823...|
| 9.488257390217871|         10.351014339169227|[0.64889705882352...|
|  9.08870238448793|         10.291011744026449|[0.71806066176470...|
|  8.89927809231843|         10.041688001727678|[0.72334558823529...|
|  8.89927809231843|         10.041688001727678|[0.72334558823529...|
|  9.35306553340342|          9.427461709192647|[0.75528492647058...|
+------------------+---------------------------+--------------------+
only showing top 20 rows

Root Mean Squared Error (RMSE) on test data = 2.225906214656472
import org.apache.spark.ml.evaluation.RegressionEvaluator
predictions: org.apache.spark.sql.DataFrame = [features: vector, log_total_cases_per_million: double ... 1 more field]
evaluator: org.apache.spark.ml.evaluation.RegressionEvaluator = RegressionEvaluator: uid=regEval_4b8a404d0038, metricName=rmse, throughOrigin=false
rmse: Double = 2.225906214656472
df_cleaned_feature_permillion: org.apache.spark.sql.DataFrame = [iso_code: string, continent: string ... 48 more fields]
Root Mean Squared Error (RMSE) on test data = $rmse
evaluator: org.apache.spark.ml.evaluation.RegressionEvaluator = RegressionEvaluator: uid=regEval_4bcd4d071608, metricName=rmse, throughOrigin=false
rmse: Double = 99893.56063834664
iso_code continent location date total_cases new_cases new_cases_smoothed total_deaths new_deaths new_deaths_smoothed reproduction_rate icu_patients icu_patients_per_million hosp_patients hosp_patients_per_million weekly_icu_admissions weekly_icu_admissions_per_million weekly_hosp_admissions weekly_hosp_admissions_per_million total_tests new_tests total_tests_per_thousand new_tests_per_thousand new_tests_smoothed new_tests_smoothed_per_thousand tests_per_case positive_rate tests_units stringency_index population population_density median_age aged_65_older aged_70_older gdp_per_capita extreme_poverty cardiovasc_death_rate diabetes_prevalence female_smokers male_smokers handwashing_facilities hospital_beds_per_thousand life_expectancy human_development_index total_cases_per_million new_cases_per_million new_cases_smoothed_per_million total_deaths_per_million new_deaths_per_million new_deaths_smoothed_per_million
PRY South America Paraguay 2020-01-23 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-01-24 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-01-25 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-01-26 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-01-27 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-01-28 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-01-29 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-01-31 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-01 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-02 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-03 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-04 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-05 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-06 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-07 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-08 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-09 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-10 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-11 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-12 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-13 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-14 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-15 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-16 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-17 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-18 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-19 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-20 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-21 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-22 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-23 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-24 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-25 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-26 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-27 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-28 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-02-29 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-03-01 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-03-02 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-03-03 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-03-04 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-03-05 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-03-06 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-03-07 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 1.0 1.4020270507099166e-4 0.0 null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.0 0.0 0.0 0.0 0.0 0.0
PRY South America Paraguay 2020-03-08 1.0 1.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.14020270507099164 0.14020270507099164 2.0048986825151802e-2 0.0 0.0 0.0
PRY South America Paraguay 2020-03-09 1.0 0.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 1.0 null 1.4020270507099166e-4 null null null null null null 5.56 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.14020270507099164 0.0 2.0048986825151802e-2 0.0 0.0 0.0
PRY South America Paraguay 2020-03-10 1.0 0.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 9.0 8.0 1.2618243456389247e-3 1.0e-3 null null null null null 39.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.14020270507099164 0.0 2.0048986825151802e-2 0.0 0.0 0.0
PRY South America Paraguay 2020-03-11 5.0 4.0 0.714 0.0 0.0 0.0 1.0 null null null null null null null null 16.0 7.0 2.2432432811358666e-3 1.0e-3 null null null null null 39.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.7010135253549582 0.5608108202839666 0.10010473142068803 0.0 0.0 0.0
PRY South America Paraguay 2020-03-12 5.0 0.0 0.714 0.0 0.0 0.0 1.0 null null null null null null null null 22.0 6.0 3.0844595115618162e-3 1.0e-3 null null null null null 39.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.7010135253549582 0.0 0.10010473142068803 0.0 0.0 0.0
PRY South America Paraguay 2020-03-13 6.0 1.0 0.857 0.0 0.0 0.0 1.0 null null null null null null null null 39.0 17.0 5.467905497768674e-3 2.0e-3 null null null null null 50.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.8412162304259498 0.14020270507099164 0.12015371824583984 0.0 0.0 0.0
PRY South America Paraguay 2020-03-14 6.0 0.0 0.857 0.0 0.0 0.0 1.0 null null null null null null null null 54.0 15.0 7.570946073833549e-3 2.0e-3 8.0 1.0e-3 0.107 9.3 null 50.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.8412162304259498 0.0 0.12015371824583984 0.0 0.0 0.0
PRY South America Paraguay 2020-03-15 6.0 0.0 0.714 0.0 0.0 0.0 1.0 null null null null null null null null 87.0 33.0 1.2197635341176273e-2 5.0e-3 12.0 2.0e-3 6.0e-2 16.8 null 50.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 0.8412162304259498 0.0 0.10010473142068803 0.0 0.0 0.0
PRY South America Paraguay 2020-03-16 8.0 2.0 1.0 0.0 0.0 0.0 1.0 null null null null null null null null 114.0 27.0 1.5983108378093046e-2 4.0e-3 15.0 2.0e-3 6.7e-2 15.0 null 70.37 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1.1216216405679331 0.2804054101419833 0.14020270507099164 0.0 0.0 0.0
PRY South America Paraguay 2020-03-17 9.0 1.0 1.143 0.0 0.0 0.0 1.0 null null null null null null null null 140.0 26.0 1.962837870993883e-2 4.0e-3 19.0 3.0e-3 6.0e-2 16.6 null 74.07 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1.2618243456389249 0.14020270507099164 0.16025169189614347 0.0 0.0 0.0
PRY South America Paraguay 2020-03-18 11.0 2.0 0.857 0.0 0.0 0.0 1.0 null null null null null null null null 164.0 24.0 2.299324363164263e-2 3.0e-3 21.0 3.0e-3 4.1e-2 24.5 null 74.07 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1.5422297557809082 0.2804054101419833 0.12015371824583984 0.0 0.0 0.0
PRY South America Paraguay 2020-03-19 11.0 0.0 0.857 0.0 0.0 0.0 1.0 null null null null null null null null 196.0 32.0 2.747973019391436e-2 4.0e-3 25.0 4.0e-3 3.4e-2 29.2 null 74.07 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1.5422297557809082 0.0 0.12015371824583984 0.0 0.0 0.0
PRY South America Paraguay 2020-03-20 13.0 2.0 1.0 0.0 0.0 0.0 1.0 null null null null null null null null 240.0 44.0 3.3648649217037994e-2 6.0e-3 29.0 4.0e-3 3.4e-2 29.0 null 74.07 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1.8226351659228912 0.2804054101419833 0.14020270507099164 0.0 0.0 0.0
PRY South America Paraguay 2020-03-21 18.0 5.0 1.714 1.0 1.0 0.143 1.0 null null null null null null null null 308.0 68.0 4.318243316186543e-2 1.0e-2 36.0 5.0e-3 4.8e-2 21.0 null 85.19 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2.5236486912778497 0.7010135253549582 0.24030743649167968 0.14020270507099164 0.14020270507099164 2.0048986825151802e-2
PRY South America Paraguay 2020-03-22 22.0 4.0 2.286 1.0 0.0 0.143 1.0 null null null null null null null null 345.0 37.0 4.836993324949211e-2 5.0e-3 37.0 5.0e-3 6.2e-2 16.2 null 85.19 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3.0844595115618163 0.5608108202839666 0.32050338379228693 0.14020270507099164 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-03-23 22.0 0.0 2.0 1.0 0.0 0.143 1.0 null null null null null null null null 434.0 89.0 6.084797400081037e-2 1.2e-2 46.0 6.0e-3 4.3e-2 23.0 null 90.74 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3.0844595115618163 0.0 0.2804054101419833 0.14020270507099164 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-03-24 27.0 5.0 2.571 2.0 1.0 0.286 1.0 null null null null null null null null 525.0 91.0 7.360642016227062e-2 1.3e-2 55.0 8.0e-3 4.7e-2 21.4 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3.785473036916774 0.7010135253549582 0.3604611547375195 0.2804054101419833 0.14020270507099164 4.0097973650303605e-2
PRY South America Paraguay 2020-03-25 37.0 10.0 3.714 3.0 1.0 0.429 1.0 null null null null null null null null 576.0 51.0 8.075675812089118e-2 7.0e-3 59.0 8.0e-3 6.3e-2 15.9 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5.187500087626691 1.4020270507099164 0.520712846633663 0.4206081152129749 0.14020270507099164 6.014696047545541e-2
PRY South America Paraguay 2020-03-26 41.0 4.0 4.286 3.0 0.0 0.429 1.0 null null null null null null null null 654.0 78.0 9.169256911642854e-2 1.1e-2 65.0 9.0e-3 6.6e-2 15.2 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5.748310907910658 0.5608108202839666 0.6009087939342701 0.4206081152129749 0.0 6.014696047545541e-2
PRY South America Paraguay 2020-03-27 52.0 11.0 5.571 3.0 0.0 0.429 1.0 null null null null null null null null 755.0 101.0 0.1058530423285987 1.4e-2 74.0 1.0e-2 7.5e-2 13.3 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7.290540663691565 1.5422297557809082 0.7810692699504943 0.4206081152129749 0.0 6.014696047545541e-2
PRY South America Paraguay 2020-03-28 56.0 4.0 5.429 3.0 0.0 0.286 1.0 null null null null null null null null 815.0 60.0 0.11426520463285819 8.0e-3 72.0 1.0e-2 7.5e-2 13.3 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7.851351483975532 0.5608108202839666 0.7611604858304136 0.4206081152129749 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-03-29 59.0 3.0 5.286 3.0 0.0 0.286 1.0 null null null null null null null null 920.0 105.0 0.12898648866531232 1.5e-2 82.0 1.1e-2 6.4e-2 15.5 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8.271959599188508 0.4206081152129749 0.7411114990052617 0.4206081152129749 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-03-30 64.0 5.0 6.0 3.0 0.0 0.286 1.0 null null null null null null null null 988.0 68.0 0.13852027261013974 1.0e-2 79.0 1.1e-2 7.6e-2 13.2 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8.972973124543465 0.7010135253549582 0.8412162304259498 0.4206081152129749 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-03-31 65.0 1.0 5.429 3.0 0.0 0.143 1.0 null null null null null null null null 1078.0 90.0 0.15113851606652898 1.3e-2 79.0 1.1e-2 6.9e-2 14.6 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9.113175829614455 0.14020270507099164 0.7611604858304136 0.4206081152129749 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-01 69.0 4.0 4.571 3.0 0.0 0.0 1.0 null null null null null null null null 1173.0 95.0 0.1644577730482732 1.3e-2 85.0 1.2e-2 5.4e-2 18.6 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9.673986649898424 0.5608108202839666 0.6408665648795027 0.4206081152129749 0.0 0.0
PRY South America Paraguay 2020-04-02 77.0 8.0 5.143 3.0 0.0 0.0 1.0 null null null null null null null null 1289.0 116.0 0.18072128683650823 1.6e-2 91.0 1.3e-2 5.7e-2 17.7 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10.795608290466356 1.1216216405679331 0.72106251218011 0.4206081152129749 0.0 0.0
PRY South America Paraguay 2020-04-03 92.0 15.0 5.714 3.0 0.0 0.0 1.0 null null null null null null null null 1454.0 165.0 0.20385473317322184 2.3e-2 100.0 1.4e-2 5.7e-2 17.5 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 12.89864886653123 2.1030405760648745 0.8011182567756463 0.4206081152129749 0.0 0.0
PRY South America Paraguay 2020-04-04 96.0 4.0 5.714 3.0 0.0 0.0 1.0 null null null null null null null null 1646.0 192.0 0.23077365254685223 2.7e-2 119.0 1.7e-2 4.8e-2 20.8 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 13.459459686815197 0.5608108202839666 0.8011182567756463 0.4206081152129749 0.0 0.0
PRY South America Paraguay 2020-04-05 104.0 8.0 6.429 3.0 0.0 0.0 1.0 null null null null null null null null 1846.0 200.0 0.25881419356105057 2.8e-2 132.0 1.9e-2 4.9e-2 20.5 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 14.58108132738313 1.1216216405679331 0.9013631909014053 0.4206081152129749 0.0 0.0
PRY South America Paraguay 2020-04-06 113.0 9.0 7.0 5.0 2.0 0.286 1.0 null null null null null null null null 2008.0 162.0 0.28152703178255123 2.3e-2 146.0 2.0e-2 4.8e-2 20.9 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 15.842905673022058 1.2618243456389249 0.9814189354969415 0.7010135253549582 0.2804054101419833 4.0097973650303605e-2
PRY South America Paraguay 2020-04-07 115.0 2.0 7.143 5.0 0.0 0.286 0.99 null null null null null null null null 2220.0 212.0 0.31125000525760144 3.0e-2 163.0 2.3e-2 4.4e-2 22.8 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 16.123311083164037 0.2804054101419833 1.0014679223220933 0.7010135253549582 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-04-08 119.0 4.0 7.143 5.0 0.0 0.286 1.0 null null null null null null null null 2462.0 242.0 0.3451790598847814 3.4e-2 184.0 2.6e-2 3.9e-2 25.8 null 93.52 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 16.684121903448005 0.5608108202839666 1.0014679223220933 0.7010135253549582 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-04-09 124.0 5.0 6.714 5.0 0.0 0.286 1.0 null null null null null null null null 2685.0 223.0 0.3764442631156126 3.1e-2 199.0 2.8e-2 3.4e-2 29.6 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 17.38513542880296 0.7010135253549582 0.9413209618466379 0.7010135253549582 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-04-10 129.0 5.0 5.286 6.0 1.0 0.429 1.01 null null null null null null null null 2905.0 220.0 0.40728885823123073 3.1e-2 207.0 2.9e-2 2.6e-2 39.2 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 18.086148954157924 0.7010135253549582 0.7411114990052617 0.8412162304259498 0.14020270507099164 6.014696047545541e-2
PRY South America Paraguay 2020-04-11 133.0 4.0 5.286 6.0 0.0 0.429 1.03 null null null null null null null null 3135.0 230.0 0.43953548039755874 3.2e-2 213.0 3.0e-2 2.5e-2 40.3 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 18.64695977444189 0.5608108202839666 0.7411114990052617 0.8412162304259498 0.0 6.014696047545541e-2
PRY South America Paraguay 2020-04-12 134.0 1.0 4.286 6.0 0.0 0.429 1.05 null null null null null null null null 3394.0 259.0 0.4758479810109456 3.6e-2 221.0 3.1e-2 1.9e-2 51.6 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 18.78716247951288 0.14020270507099164 0.6009087939342701 0.8412162304259498 0.0 6.014696047545541e-2
PRY South America Paraguay 2020-04-13 147.0 13.0 4.857 6.0 0.0 0.143 1.08 null null null null null null null null 3642.0 248.0 0.5106182518685515 3.5e-2 233.0 3.3e-2 2.1e-2 48.0 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 20.60979764543577 1.8226351659228912 0.6809645385298064 0.8412162304259498 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-14 159.0 12.0 6.286 7.0 1.0 0.286 1.09 null null null null null null null null 3888.0 246.0 0.5451081173160155 3.4e-2 238.0 3.3e-2 2.6e-2 37.9 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 22.292230106287672 1.6824324608518997 0.8813142040762534 0.9814189354969415 0.14020270507099164 4.0097973650303605e-2
PRY South America Paraguay 2020-04-15 161.0 2.0 6.0 8.0 1.0 0.429 1.1 null null null null null null null null 4267.0 379.0 0.5982449425379214 5.3e-2 258.0 3.6e-2 2.3e-2 43.0 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 22.572635516429653 0.2804054101419833 0.8412162304259498 1.1216216405679331 0.14020270507099164 6.014696047545541e-2
PRY South America Paraguay 2020-04-16 174.0 13.0 7.143 8.0 0.0 0.429 1.12 null null null null null null null null 4612.0 345.0 0.6466148757874134 4.8e-2 275.0 3.9e-2 2.6e-2 38.5 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 24.395270682352546 1.8226351659228912 1.0014679223220933 1.1216216405679331 0.0 6.014696047545541e-2
PRY South America Paraguay 2020-04-17 199.0 25.0 10.0 8.0 0.0 0.286 1.13 null null null null null null null null 4950.0 338.0 0.6940033901014087 4.7e-2 292.0 4.1e-2 3.4e-2 29.2 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 27.900338309127335 3.505067626774791 1.4020270507099164 1.1216216405679331 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-04-18 202.0 3.0 9.857 8.0 0.0 0.286 1.1 null null null null null null null null 5254.0 304.0 0.7366250124429901 4.3e-2 303.0 4.2e-2 3.3e-2 30.7 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 28.320946424340313 0.4206081152129749 1.3819780638847645 1.1216216405679331 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-04-19 206.0 4.0 10.286 8.0 0.0 0.286 1.08 null null null null null null null null 5501.0 247.0 0.771255080595525 3.5e-2 301.0 4.2e-2 3.4e-2 29.3 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 28.88175724462428 0.5608108202839666 1.44212502436022 1.1216216405679331 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-04-20 208.0 2.0 8.714 8.0 0.0 0.286 1.08 null null null null null null null null 5878.0 377.0 0.8241115004072889 5.3e-2 319.0 4.5e-2 2.7e-2 36.6 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 29.16216265476626 0.2804054101419833 1.221726371988621 1.1216216405679331 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-04-21 208.0 0.0 7.0 8.0 0.0 0.143 1.08 null null null null null null null null 6292.0 414.0 0.8821554203066794 5.8e-2 343.0 4.8e-2 2.0e-2 49.0 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 29.16216265476626 0.0 0.9814189354969415 1.1216216405679331 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-22 213.0 5.0 7.429 9.0 1.0 0.143 1.1 null null null null null null null null 6598.0 306.0 0.9250574480584028 4.3e-2 333.0 4.7e-2 2.2e-2 44.8 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 29.863176180121222 0.7010135253549582 1.041565895972397 1.2618243456389249 0.14020270507099164 2.0048986825151802e-2
PRY South America Paraguay 2020-04-23 213.0 0.0 5.571 9.0 0.0 0.143 1.12 null null null null null null null null 6917.0 319.0 0.9697821109760492 4.5e-2 329.0 4.6e-2 1.7e-2 59.1 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 29.863176180121222 0.0 0.7810692699504943 1.2618243456389249 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-24 223.0 10.0 3.429 9.0 0.0 0.143 1.16 null null null null null null null null 7322.0 405.0 1.0265642065298008 5.7e-2 339.0 4.8e-2 1.0e-2 98.9 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 31.265203230831137 1.4020270507099164 0.4807550756884303 1.2618243456389249 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-25 228.0 5.0 3.714 9.0 0.0 0.143 1.18 null null null null null null null null 7630.0 308.0 1.0697466396916664 4.3e-2 339.0 4.8e-2 1.1e-2 91.3 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 31.966216756186093 0.7010135253549582 0.520712846633663 1.2618243456389249 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-26 228.0 0.0 3.143 9.0 0.0 0.143 1.21 null null null null null null null null 7925.0 295.0 1.1111064376876088 4.1e-2 346.0 4.9e-2 9.0e-3 110.1 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 31.966216756186093 0.0 0.4406571020381267 1.2618243456389249 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-27 228.0 0.0 2.857 9.0 0.0 0.143 1.26 null null null null null null null null 8444.0 519.0 1.1838716416194535 7.3e-2 367.0 5.1e-2 8.0e-3 128.5 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 31.966216756186093 0.0 0.40055912838782315 1.2618243456389249 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-28 239.0 11.0 4.429 9.0 0.0 0.143 1.34 null null null null null null null null 8891.0 447.0 1.2465422507861867 6.3e-2 371.0 5.2e-2 1.2e-2 83.8 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 33.508446511967 1.5422297557809082 0.620957780759422 1.2618243456389249 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-04-29 239.0 0.0 3.714 9.0 0.0 0.0 1.41 null null null null null null null null 9454.0 563.0 1.325476373741155 7.9e-2 408.0 5.7e-2 9.0e-3 109.9 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 33.508446511967 0.0 0.520712846633663 1.2618243456389249 0.0 0.0
PRY South America Paraguay 2020-04-30 266.0 27.0 7.571 10.0 1.0 0.143 1.53 null null null null null null null null 9903.0 449.0 1.3884273883180303 6.3e-2 427.0 6.0e-2 1.8e-2 56.4 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 37.29391954888378 3.785473036916774 1.0614746800924777 1.4020270507099164 0.14020270507099164 2.0048986825151802e-2
PRY South America Paraguay 2020-05-01 333.0 67.0 15.714 10.0 0.0 0.143 1.57 null null null null null null null null 10342.0 439.0 1.4499763758441955 6.2e-2 431.0 6.0e-2 3.6e-2 27.4 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 46.687500788640214 9.39358123975644 2.203145307485563 1.4020270507099164 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-02 370.0 37.0 20.286 10.0 0.0 0.143 1.5 null null null null null null null null 10766.0 424.0 1.509422322794296 5.9e-2 448.0 6.3e-2 4.5e-2 22.1 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 51.87500087626691 5.187500087626691 2.8441520750701366 1.4020270507099164 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-03 396.0 26.0 24.0 10.0 0.0 0.143 1.43 null null null null null null null null 11106.0 340.0 1.5570912425184331 4.8e-2 454.0 6.4e-2 5.3e-2 18.9 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 55.52027120811269 3.6452703318457824 3.3648649217037994 1.4020270507099164 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-04 415.0 19.0 26.714 10.0 0.0 0.143 1.38 null null null null null null null null 11455.0 349.0 1.606021986588209 4.9e-2 430.0 6.0e-2 6.2e-2 16.1 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 58.184122604461535 2.663851396348841 3.745375063266471 1.4020270507099164 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-05 431.0 16.0 27.429 10.0 0.0 0.143 1.35 null null null null null null null null 11913.0 458.0 1.6702348255107233 6.4e-2 432.0 6.1e-2 6.3e-2 15.7 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 60.427365885597396 2.2432432811358662 3.8456199973922294 1.4020270507099164 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-06 440.0 9.0 28.714 10.0 0.0 0.143 1.35 null null null null null null null null 12497.0 584.0 1.7521132052721826 8.2e-2 435.0 6.1e-2 6.6e-2 15.1 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 61.68919023123632 1.2618243456389249 4.025780473408454 1.4020270507099164 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-07 462.0 22.0 28.0 10.0 0.0 0.0 1.36 null null null null null null null null 13096.0 599.0 1.8360946256097066 8.4e-2 456.0 6.4e-2 6.1e-2 16.3 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 64.77364974279814 3.0844595115618163 3.925675741987766 1.4020270507099164 0.0 0.0
PRY South America Paraguay 2020-05-08 563.0 101.0 32.857 10.0 0.0 0.0 1.4 null null null null null null null null 13846.0 750.0 1.9412466544129503 0.105 501.0 7.0e-2 6.6e-2 15.2 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 78.9341229549683 14.160473212170157 4.606640280517572 1.4020270507099164 0.0 0.0
PRY South America Paraguay 2020-05-09 689.0 126.0 45.571 10.0 0.0 0.0 1.36 null null null null null null null null 14646.0 800.0 2.053408818469743 0.112 554.0 7.8e-2 8.2e-2 12.2 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 96.59966379391324 17.665540838944946 6.38917747279016 1.4020270507099164 0.0 0.0
PRY South America Paraguay 2020-05-10 713.0 24.0 45.286 10.0 0.0 0.0 1.27 null null null null null null null null 15446.0 800.0 2.1655709825265372 0.112 620.0 8.7e-2 7.3e-2 13.7 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 99.96452871561705 3.3648649217037994 6.349219701844928 1.4020270507099164 0.0 0.0
PRY South America Paraguay 2020-05-11 724.0 11.0 44.143 10.0 0.0 0.0 1.2 null null null null null null null null 16155.0 709.0 2.2649747004218703 9.9e-2 671.0 9.4e-2 6.6e-2 15.2 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 101.50675847139796 1.5422297557809082 6.188968009948784 1.4020270507099164 0.0 0.0
PRY South America Paraguay 2020-05-12 737.0 13.0 43.714 10.0 0.0 0.0 1.15 null null null null null null null null 16917.0 762.0 2.371809161685966 0.107 715.0 0.1 6.1e-2 16.4 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 103.32939363732085 1.8226351659228912 6.128821049473328 1.4020270507099164 0.0 0.0
PRY South America Paraguay 2020-05-13 740.0 3.0 42.857 11.0 1.0 0.143 1.12 null null null null null null null null 17589.0 672.0 2.4660253794936717 9.4e-2 727.0 0.102 5.9e-2 17.0 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 103.75000175253382 0.4206081152129749 6.008667331227488 1.5422297557809082 0.14020270507099164 2.0048986825151802e-2
PRY South America Paraguay 2020-05-14 754.0 14.0 41.714 11.0 0.0 0.143 1.1 null null null null null null null null 18184.0 595.0 2.549445989010912 8.3e-2 727.0 0.102 5.7e-2 17.4 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 105.7128396235277 1.962837870993883 5.848415639331345 1.5422297557809082 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-15 759.0 5.0 28.0 11.0 0.0 0.143 1.08 null null null null null null null null 18856.0 672.0 2.643662206818618 9.4e-2 716.0 0.1 3.9e-2 25.6 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 106.41385314888265 0.7010135253549582 3.925675741987766 1.5422297557809082 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-16 778.0 19.0 12.714 11.0 0.0 0.143 1.08 null null null null null null null null 19308.0 452.0 2.7070338295107064 6.3e-2 666.0 9.3e-2 1.9e-2 52.4 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 109.0777045452315 2.663851396348841 1.782537192272588 1.5422297557809082 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-17 786.0 8.0 10.429 11.0 0.0 0.143 1.07 null null null null null null null null 20124.0 816.0 2.8214392368486356 0.114 668.0 9.4e-2 1.6e-2 64.1 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 110.19932618579944 1.1216216405679331 1.4621740111853718 1.5422297557809082 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-18 788.0 2.0 9.143 11.0 0.0 0.143 1.07 null null null null null null null null 20429.0 305.0 2.864201061895288 4.3e-2 611.0 8.6e-2 1.5e-2 66.8 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 110.47973159594142 0.2804054101419833 1.2818733324640765 1.5422297557809082 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-19 829.0 41.0 13.143 11.0 0.0 0.143 1.09 null null null null null null null null 21121.0 692.0 2.9612213338044144 9.7e-2 601.0 8.4e-2 2.2e-2 45.7 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 116.22804250385207 5.748310907910658 1.8426841527480433 1.5422297557809082 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-05-20 833.0 4.0 13.286 11.0 0.0 0.0 1.07 null null null null null null null null 21542.0 421.0 3.020246672639302 5.9e-2 565.0 7.9e-2 2.4e-2 42.5 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 116.78885332413604 0.5608108202839666 1.8627331395731948 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-21 836.0 3.0 11.714 11.0 0.0 0.0 1.06 null null null null null null null null 21987.0 445.0 3.082636876395893 6.2e-2 543.0 7.6e-2 2.2e-2 46.4 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 117.20946143934901 0.4206081152129749 1.6423344872015961 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-22 838.0 2.0 11.286 11.0 0.0 0.0 1.06 null null null null null null null null 22868.0 881.0 3.206155459563437 0.124 573.0 8.0e-2 2.0e-2 50.8 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 117.489866849491 0.2804054101419833 1.5823277294312115 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-23 850.0 12.0 10.286 11.0 0.0 0.0 1.08 null null null null null null null null 23805.0 937.0 3.3375253942149556 0.131 642.0 9.0e-2 1.6e-2 62.4 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 119.1722993103429 1.6824324608518997 1.44212502436022 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-24 862.0 12.0 10.857 11.0 0.0 0.0 1.09 null null null null null null null null 24812.0 1007.0 3.4787095182214443 0.141 670.0 9.4e-2 1.6e-2 61.7 null 94.44 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 120.85473177119479 1.6824324608518997 1.522180768955756 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-25 865.0 3.0 11.0 11.0 0.0 0.0 1.1 null null null null null null null null 25216.0 404.0 3.5353514110701254 5.7e-2 684.0 9.6e-2 1.6e-2 62.2 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 121.27533988640776 0.4206081152129749 1.5422297557809082 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-26 877.0 12.0 6.857 11.0 0.0 0.0 1.13 null null null null null null null null 26169.0 953.0 3.66896458900278 0.134 721.0 0.101 1.0e-2 105.1 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 122.95777234725966 1.6824324608518997 0.9613699486717897 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-27 884.0 7.0 7.286 11.0 0.0 0.0 1.15 null null null null null null null null 26760.0 591.0 3.7518243876997364 8.3e-2 745.0 0.104 1.0e-2 102.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 123.93919128275661 0.9814189354969415 1.021516909147245 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-28 900.0 16.0 9.143 11.0 0.0 0.0 1.19 null null null null null null null null 27425.0 665.0 3.845059186571946 9.3e-2 777.0 0.109 1.2e-2 85.0 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 126.18243456389249 2.2432432811358662 1.2818733324640765 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-29 917.0 17.0 11.286 11.0 0.0 0.0 1.22 null null null null null null null null 28337.0 912.0 3.9729240535966905 0.128 781.0 0.109 1.4e-2 69.2 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 128.56588055009934 2.383445986206858 1.5823277294312115 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-30 964.0 47.0 16.286 11.0 0.0 0.0 1.25 null null null null null null null null 29153.0 816.0 4.087329460934619 0.114 764.0 0.107 2.1e-2 46.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 135.15540768843593 6.5895271383366065 2.28334125478617 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-05-31 986.0 22.0 17.714 11.0 0.0 0.0 1.23 null null null null null null null null 30004.0 851.0 4.206641962950033 0.119 742.0 0.104 2.4e-2 41.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 138.23986719999775 3.0844595115618163 2.4835507176275455 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-01 995.0 9.0 18.571 11.0 0.0 0.0 1.22 null null null null null null null null 30834.0 830.0 4.323010208158957 0.116 803.0 0.113 2.3e-2 43.2 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 139.5016915456367 1.2618243456389249 2.6037044358733863 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-02 1013.0 18.0 19.429 11.0 0.0 0.0 1.22 null null null null null null null null 32106.0 1272.0 4.501348049009257 0.178 848.0 0.119 2.3e-2 43.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 142.02534023691453 2.5236486912778497 2.7239983568242967 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-03 1070.0 57.0 26.571 11.0 0.0 0.0 1.23 null null null null null null null null 33081.0 975.0 4.6380456864534745 0.137 903.0 0.127 2.9e-2 34.0 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 150.01689442596106 7.991554189046523 3.7253260764413194 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-04 1086.0 16.0 26.571 11.0 0.0 0.0 1.2 null null null null null null null null 34240.0 1159.0 4.800540621630754 0.162 974.0 0.137 2.7e-2 36.7 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 152.26013770709693 2.2432432811358662 3.7253260764413194 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-05 1087.0 1.0 24.286 11.0 0.0 0.0 1.18 null null null null null null null null 35258.0 1018.0 4.943266975393024 0.143 989.0 0.139 2.5e-2 40.7 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 152.4003404121679 0.14020270507099164 3.404962895354103 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-06 1090.0 3.0 18.0 11.0 0.0 0.0 1.18 null null null null null null null null 36373.0 1115.0 5.099592991547179 0.156 1031.0 0.145 1.7e-2 57.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 152.8209485273809 0.4206081152129749 2.5236486912778497 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-07 1135.0 45.0 21.286 11.0 0.0 0.0 1.21 null null null null null null null null 37532.0 1159.0 5.262087926724458 0.162 1075.0 0.151 2.0e-2 50.5 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 159.1300702555755 6.309121728194624 2.9843547801411283 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-08 1145.0 10.0 21.429 11.0 0.0 0.0 1.19 null null null null null null null null 38942.0 1410.0 5.459773740874557 0.198 1158.0 0.162 1.9e-2 54.0 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 160.53209730628544 1.4020270507099164 3.0044037669662798 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-09 1187.0 42.0 24.857 11.0 0.0 0.0 1.2 null null null null null null null null 40032.0 1090.0 5.612594689401938 0.153 1132.0 0.159 2.2e-2 45.5 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 166.42061091926706 5.888513612981649 3.4850186399496392 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-10 1202.0 15.0 18.857 11.0 0.0 0.0 1.18 null null null null null null null null 41702.0 1670.0 5.846733206870494 0.234 1232.0 0.173 1.5e-2 65.3 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 168.52365149533196 2.1030405760648745 2.643802409523689 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-11 1230.0 28.0 20.571 11.0 0.0 0.0 1.18 null null null null null null null null 43292.0 1590.0 6.06965550793337 0.223 1293.0 0.181 1.6e-2 62.9 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 172.44932723731972 3.925675741987766 2.8841098460153693 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-12 1254.0 24.0 23.857 11.0 0.0 0.0 1.17 null null null null null null null null 45132.0 1840.0 6.327628485263995 0.258 1411.0 0.198 1.7e-2 59.1 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 175.81419215902352 3.3648649217037994 3.3448159348786475 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-13 1261.0 7.0 24.429 11.0 0.0 0.0 1.16 null null null null null null null null 46608.0 1476.0 6.534567677948779 0.207 1462.0 0.205 1.7e-2 59.8 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 176.79561109452047 0.9814189354969415 3.4250118821792546 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-14 1289.0 28.0 22.0 11.0 0.0 0.0 1.16 null null null null null null null null 48081.0 1473.0 6.741086262518349 0.207 1507.0 0.211 1.5e-2 68.5 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 180.72128683650823 3.925675741987766 3.0844595115618163 1.5422297557809082 0.0 0.0
PRY South America Paraguay 2020-06-15 1296.0 7.0 21.571 12.0 1.0 0.143 1.15 null null null null null null null null 48729.0 648.0 6.831937615404351 9.1e-2 1398.0 0.196 1.5e-2 64.8 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 181.70270577200515 0.9814189354969415 3.0243125510863607 1.6824324608518997 0.14020270507099164 2.0048986825151802e-2
PRY South America Paraguay 2020-06-16 1303.0 7.0 16.571 13.0 1.0 0.286 1.15 null null null null null null null null 49978.0 1249.0 7.00705079403802 0.175 1421.0 0.199 1.2e-2 85.8 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 182.6841247075021 0.9814189354969415 2.323299025731403 1.8226351659228912 0.14020270507099164 4.0097973650303605e-2
PRY South America Paraguay 2020-06-17 1308.0 5.0 15.143 13.0 0.0 0.286 1.17 null null null null null null null null 51178.0 1200.0 7.17529404012321 0.168 1354.0 0.19 1.1e-2 89.4 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 183.38513823285706 0.7010135253549582 2.1230895628900264 1.8226351659228912 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-06-18 1330.0 22.0 14.286 13.0 0.0 0.286 1.2 null null null null null null null null 52649.0 1471.0 7.381532219282638 0.206 1337.0 0.187 1.1e-2 93.6 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 186.46959774441888 3.0844595115618163 2.0029358446441865 1.8226351659228912 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-06-19 1336.0 6.0 11.714 13.0 0.0 0.286 1.23 null null null null null null null null 54278.0 1629.0 7.609922425843284 0.228 1307.0 0.183 9.0e-3 111.6 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 187.31081397484482 0.8412162304259498 1.6423344872015961 1.8226351659228912 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-06-20 1362.0 26.0 14.429 13.0 0.0 0.286 1.27 null null null null null null null null 55827.0 1549.0 7.82709641599825 0.217 1317.0 0.185 1.1e-2 91.3 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 190.9560843066906 3.6452703318457824 2.0229848314693384 1.8226351659228912 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-06-21 1379.0 17.0 12.857 13.0 0.0 0.286 1.31 null null null null null null null null 56992.0 1165.0 7.990432567405956 0.163 1273.0 0.178 1.0e-2 99.0 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 193.33953029289748 2.383445986206858 1.8025861790977393 1.8226351659228912 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-06-22 1392.0 13.0 13.714 13.0 0.0 0.143 1.35 null null null null null null null null 57895.0 903.0 8.117035610085061 0.127 1309.0 0.184 1.0e-2 95.4 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 195.16216545882037 1.8226351659228912 1.9227398973435794 1.8226351659228912 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-06-23 1422.0 30.0 17.0 13.0 0.0 0.0 1.42 null null null null null null null null 59454.0 1559.0 8.335611627290737 0.219 1354.0 0.19 1.3e-2 79.6 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 199.3682466109501 4.206081152129749 2.383445986206858 1.8226351659228912 0.0 0.0
PRY South America Paraguay 2020-06-24 1528.0 106.0 31.429 13.0 0.0 0.0 1.49 null null null null null null null null 60811.0 1357.0 8.525866698072072 0.19 1376.0 0.193 2.3e-2 43.8 null 83.33 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 214.22973334847524 14.861486737525114 4.4064308176761955 1.8226351659228912 0.0 0.0
PRY South America Paraguay 2020-06-25 1569.0 41.0 34.143 13.0 0.0 0.0 1.49 null null null null null null null null 62384.0 1573.0 8.746405553148742 0.221 1391.0 0.195 2.5e-2 40.7 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 219.97804425638589 5.748310907910658 4.786940959238867 1.8226351659228912 0.0 0.0
PRY South America Paraguay 2020-06-26 1711.0 142.0 53.571 13.0 0.0 0.0 1.51 null null null null null null null null 63974.0 1590.0 8.969327854211619 0.223 1385.0 0.194 3.9e-2 25.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 239.8868283764667 19.908784120080814 7.510799113358093 1.8226351659228912 0.0 0.0
PRY South America Paraguay 2020-06-27 1942.0 231.0 82.857 15.0 2.0 0.286 1.49 null null null null null null null null 65605.0 1631.0 9.197998466182407 0.229 1397.0 0.196 5.9e-2 16.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 272.27365324786575 32.38682487139907 11.616775534067154 2.1030405760648745 0.2804054101419833 4.0097973650303605e-2
PRY South America Paraguay 2020-06-28 2127.0 185.0 106.857 15.0 0.0 0.286 1.42 null null null null null null null null 66966.0 1361.0 9.388814347784026 0.191 1425.0 0.2 7.5e-2 13.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 298.2111536859992 25.937500438133455 14.981640455770952 2.1030405760648745 0.0 4.0097973650303605e-2
PRY South America Paraguay 2020-06-29 2191.0 64.0 114.143 16.0 1.0 0.429 1.33 null null null null null null null null 68027.0 1061.0 9.537569417864349 0.149 1447.0 0.203 7.9e-2 12.7 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 307.1841268105427 8.972973124543465 16.0031573649182 2.2432432811358662 0.14020270507099164 6.014696047545541e-2
PRY South America Paraguay 2020-06-30 2221.0 30.0 114.143 17.0 1.0 0.571 1.27 null null null null null null null null 69343.0 1316.0 9.722076177737774 0.185 1413.0 0.198 8.1e-2 12.4 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 311.39020796267243 4.206081152129749 16.0031573649182 2.383445986206858 0.14020270507099164 8.005574459553623e-2
PRY South America Paraguay 2020-07-01 2260.0 39.0 104.571 19.0 2.0 0.857 1.23 null null null null null null null null 70690.0 1347.0 9.9109292214684 0.189 1411.0 0.198 7.4e-2 13.5 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 316.85811346044113 5.467905497768673 14.661137071978667 2.663851396348841 0.2804054101419833 0.12015371824583984
PRY South America Paraguay 2020-07-02 2303.0 43.0 104.857 19.0 0.0 0.857 1.2 null null null null null null null null 72319.0 1629.0 10.139319428029044 0.228 1419.0 0.199 7.4e-2 13.5 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 322.88682977849373 6.02871631805264 14.70123504562897 2.663851396348841 0.0 0.12015371824583984
PRY South America Paraguay 2020-07-03 2349.0 46.0 91.143 19.0 0.0 0.857 1.19 null null null null null null null null 74088.0 1769.0 10.387338013299628 0.248 1445.0 0.203 6.3e-2 15.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 329.3361542117594 6.449324433265615 12.77849514828539 2.663851396348841 0.0 0.12015371824583984
PRY South America Paraguay 2020-07-04 2385.0 36.0 63.286 20.0 1.0 0.714 1.18 null null null null null null null null 76077.0 1989.0 10.666201193685831 0.279 1496.0 0.21 4.2e-2 23.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 334.38345159431503 5.0472973825556995 8.872868393122777 2.804054101419833 0.14020270507099164 0.10010473142068803
PRY South America Paraguay 2020-07-05 2427.0 42.0 42.857 20.0 0.0 0.714 1.17 null null null null null null null null 77879.0 1802.0 10.918846468223757 0.253 1559.0 0.219 2.7e-2 36.4 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 340.2719652072967 5.888513612981649 6.008667331227488 2.804054101419833 0.0 0.10010473142068803
PRY South America Paraguay 2020-07-06 2456.0 29.0 37.857 20.0 0.0 0.571 1.18 null null null null null null null null 79365.0 1486.0 11.127187687959252 0.208 1620.0 0.227 2.3e-2 42.8 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 344.3378436543555 4.065878447058758 5.307653805872531 2.804054101419833 0.0 8.005574459553623e-2
PRY South America Paraguay 2020-07-07 2502.0 46.0 40.143 20.0 0.0 0.429 1.19 null null null null null null null null 81441.0 2076.0 11.41824850368663 0.291 1728.0 0.242 2.3e-2 43.0 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 350.7871680876211 6.449324433265615 5.628157189664818 2.804054101419833 0.0 6.014696047545541e-2
PRY South America Paraguay 2020-07-08 2554.0 52.0 42.0 20.0 0.0 0.143 1.21 null null null null null null null null 82974.0 1533.0 11.63317925056046 0.215 1755.0 0.246 2.4e-2 41.8 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 358.0777087513126 7.290540663691565 5.888513612981649 2.804054101419833 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-07-09 2638.0 84.0 47.857 20.0 0.0 0.143 1.23 null null null null null null null null 84991.0 2017.0 11.91596810668865 0.283 1810.0 0.254 2.6e-2 37.8 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 369.85473597727594 11.777027225963298 6.709680856582446 2.804054101419833 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-07-10 2736.0 98.0 55.286 20.0 0.0 0.143 1.24 null null null null null null null null 87203.0 2212.0 12.226096490305684 0.31 1874.0 0.263 3.0e-2 33.9 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 383.59460107423314 13.739865096957182 7.751246752554843 2.804054101419833 0.0 2.0048986825151802e-2
PRY South America Paraguay 2020-07-11 2820.0 84.0 62.143 21.0 1.0 0.143 1.24 null null null null null null null null 89344.0 2141.0 12.526270481862678 0.3 1895.0 0.266 3.3e-2 30.5 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 395.37162830019645 11.777027225963298 8.712616701226635 2.9442568064908246 0.14020270507099164 2.0048986825151802e-2
PRY South America Paraguay 2020-07-12 2948.0 128.0 74.429 22.0 1.0 0.286 1.24 null null null null null null null null 91281.0 1937.0 12.797843121585188 0.272 1915.0 0.268 3.9e-2 25.7 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 413.3175745492834 17.94594624908693 10.435147135728837 3.0844595115618163 0.14020270507099164 4.0097973650303605e-2
PRY South America Paraguay 2020-07-13 2980.0 32.0 74.857 25.0 3.0 0.714 1.23 null null null null null null null null 92442.0 1161.0 12.96061846217261 0.163 1868.0 0.262 4.0e-2 25.0 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 417.8040611115551 4.4864865622717325 10.49515389349922 3.505067626774791 0.4206081152129749 0.10010473142068803
PRY South America Paraguay 2020-07-14 3074.0 94.0 81.714 25.0 0.0 0.714 1.24 null null null null null null null null 94328.0 1886.0 13.2250407639365 0.264 1841.0 0.258 4.4e-2 22.5 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 430.98311538822827 13.179054276673213 11.456523842171011 3.505067626774791 0.0 0.10010473142068803
PRY South America Paraguay 2020-07-15 3198.0 124.0 92.0 25.0 0.0 0.714 1.25 null null null null null null null null 96060.0 1732.0 13.467871849119456 0.243 1869.0 0.262 4.9e-2 20.3 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 448.36825081703125 17.38513542880296 12.89864886653123 3.505067626774791 0.0 0.10010473142068803
PRY South America Paraguay 2020-07-16 3342.0 144.0 100.571 27.0 2.0 1.0 1.25 null null null null null null null null 98088.0 2028.0 13.752202935003428 0.284 1871.0 0.262 5.4e-2 18.6 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 468.5574403472541 20.189189530222798 14.1003262516947 3.785473036916774 0.2804054101419833 0.14020270507099164
PRY South America Paraguay 2020-07-17 3457.0 115.0 103.0 28.0 1.0 1.143 1.24 null null null null null null null null 100315.0 2227.0 14.064434359196525 0.312 1873.0 0.263 5.5e-2 18.2 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 484.68075143041807 16.123311083164037 14.44087862231214 3.925675741987766 0.14020270507099164 0.16025169189614347
PRY South America Paraguay 2020-07-18 3629.0 172.0 115.571 29.0 1.0 1.143 1.23 null null null null null null null null 102784.0 2469.0 14.410594838016804 0.346 1920.0 0.269 6.0e-2 16.6 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 508.79561670262865 24.11486527221056 16.203366827759574 4.065878447058758 0.14020270507099164 0.16025169189614347
PRY South America Paraguay 2020-07-19 3721.0 92.0 110.429 31.0 2.0 1.286 1.21 null null null null null null null null 105122.0 2338.0 14.738388762472782 0.328 1977.0 0.277 5.6e-2 17.9 null 75.93 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 521.6942655691599 12.89864886653123 15.482444518284536 4.34628385720074 0.2804054101419833 0.18030067872129527
PRY South America Paraguay 2020-07-20 3748.0 27.0 109.714 33.0 2.0 1.143 1.2 null null null null null null null null 106345.0 1223.0 14.909856670774605 0.171 1986.0 0.278 5.5e-2 18.1 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 525.4797386060767 3.785473036916774 15.382199584158776 4.626689267342724 0.2804054101419833 0.16025169189614347
PRY South America Paraguay 2020-07-21 3817.0 69.0 106.143 35.0 2.0 1.429 1.21 null null null null null null null null 108033.0 1688.0 15.14651883693444 0.237 1958.0 0.275 5.4e-2 18.4 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 535.1537252559751 9.673986649898424 14.881535724350266 4.907094677484707 0.2804054101419833 0.20034966554644704
PRY South America Paraguay 2020-07-22 4000.0 183.0 114.571 36.0 1.0 1.571 1.22 null null null null null null null null 109874.0 1841.0 15.404632016970135 0.258 1973.0 0.277 5.8e-2 17.2 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 560.8108202839666 25.65709502799147 16.063164122688583 5.0472973825556995 0.14020270507099164 0.22025844966652788
PRY South America Paraguay 2020-07-23 4113.0 113.0 110.143 36.0 0.0 1.286 1.21 null null null null null null null null 112039.0 2165.0 15.70817087344883 0.304 1993.0 0.279 5.5e-2 18.1 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 576.6537259569886 15.842905673022058 15.442346544634232 5.0472973825556995 0.0 0.18030067872129527
PRY South America Paraguay 2020-07-24 4224.0 111.0 109.571 38.0 2.0 1.429 1.21 null null null null null null null null 114045.0 2006.0 15.989417499821242 0.281 1961.0 0.275 5.6e-2 17.9 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 592.2162262198686 15.562500262880071 15.362150597333624 5.327702792697682 0.2804054101419833 0.20034966554644704
PRY South America Paraguay 2020-07-25 4328.0 104.0 99.857 40.0 2.0 1.571 1.21 null null null null null null null null 115906.0 1861.0 16.250334733958358 0.261 1875.0 0.263 5.3e-2 18.8 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 606.7973075472519 14.58108132738313 14.000221520274012 5.608108202839666 0.2804054101419833 0.22025844966652788
PRY South America Paraguay 2020-07-26 4444.0 116.0 103.286 41.0 1.0 1.429 1.22 null null null null null null null null 117562.0 1656.0 16.482510413555918 0.232 1777.0 0.249 5.8e-2 17.2 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 623.0608213354868 16.26351378823503 14.480976595962442 5.748310907910658 0.14020270507099164 0.20034966554644704
PRY South America Paraguay 2020-07-27 4548.0 104.0 114.286 43.0 2.0 1.429 1.23 null null null null null null null null 119256.0 1694.0 16.72001379594618 0.238 1844.0 0.259 6.2e-2 16.1 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 637.64190266287 14.58108132738313 16.02320635174335 6.02871631805264 0.2804054101419833 0.20034966554644704
PRY South America Paraguay 2020-07-28 4674.0 126.0 122.429 45.0 2.0 1.429 1.24 null null null null null null null null 120943.0 1687.0 16.956535759400943 0.237 1844.0 0.259 6.6e-2 15.1 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 655.307443501815 17.665540838944946 17.164876979136437 6.309121728194624 0.2804054101419833 0.20034966554644704
PRY South America Paraguay 2020-07-29 4866.0 192.0 123.714 46.0 1.0 1.429 1.25 null null null null null null null null 122829.0 1886.0 17.220958061164833 0.264 1851.0 0.26 6.7e-2 15.0 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 682.2263628754453 26.918919373630395 17.345037455152656 6.449324433265615 0.14020270507099164 0.20034966554644704
PRY South America Paraguay 2020-07-30 5207.0 341.0 156.286 47.0 1.0 1.571 1.26 null null null null null null null null 125361.0 2532.0 17.575951310404584 0.355 1903.0 0.267 8.2e-2 12.2 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 730.0354853046534 47.80912242920815 21.911719964725 6.5895271383366065 0.14020270507099164 0.22025844966652788
PRY South America Paraguay 2020-07-31 5338.0 131.0 159.143 49.0 2.0 1.571 1.24 null null null null null null null null 127610.0 2249.0 17.89126719410924 0.315 1938.0 0.272 8.2e-2 12.2 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 748.4020396689533 18.366554364299905 22.312279093112824 6.869932548478591 0.2804054101419833 0.22025844966652788
PRY South America Paraguay 2020-08-01 5485.0 147.0 165.286 52.0 3.0 1.714 1.22 null null null null null null null null 128709.0 1099.0 18.045349966982265 0.154 1829.0 0.256 9.0e-2 11.1 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 769.0118373143891 20.60979764543577 23.173544310363926 7.290540663691565 0.4206081152129749 0.24030743649167968
PRY South America Paraguay 2020-08-02 5644.0 159.0 171.429 52.0 0.0 1.571 1.22 null null null null null null null null 129724.0 1015.0 18.187655712629322 0.142 1737.0 0.244 9.9e-2 10.1 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 791.3040674206768 22.292230106287672 24.034809527615028 7.290540663691565 0.0 0.22025844966652788
PRY South America Paraguay 2020-08-03 5724.0 80.0 168.0 55.0 3.0 1.714 1.21 null null null null null null null null 130786.0 1062.0 18.33655098541471 0.149 1647.0 0.231 0.102 9.8 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 802.5202838263561 11.216216405679331 23.554054451926596 7.71114877890454 0.4206081152129749 0.24030743649167968
PRY South America Paraguay 2020-08-04 5852.0 128.0 168.286 59.0 4.0 2.0 1.22 null null null null null null null null 132111.0 1325.0 18.522319569633776 0.186 1595.0 0.224 0.106 9.5 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 820.4662300754431 17.94594624908693 23.594152425576898 8.271959599188508 0.5608108202839666 0.2804054101419833
PRY South America Paraguay 2020-08-05 6060.0 208.0 170.571 61.0 2.0 2.143 1.24 null null null null null null null null 133822.0 1711.0 18.762206398010242 0.24 1570.0 0.22 0.109 9.2 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 849.6283927302093 29.16216265476626 23.914515606664114 8.55236500933049 0.2804054101419833 0.30045439696713505
PRY South America Paraguay 2020-08-06 6375.0 315.0 166.857 66.0 5.0 2.714 1.25 null null null null null null null null 135277.0 1455.0 18.966201333888538 0.204 1417.0 0.199 0.118 8.5 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 893.7922448275716 44.163852097362366 23.39380276003045 9.253378534685448 0.7010135253549582 0.3805101415626713
PRY South America Paraguay 2020-08-07 6508.0 133.0 167.143 69.0 3.0 2.857 1.25 null null null null null null null null 136279.0 1002.0 19.10668444436967 0.14 1238.0 0.174 0.135 7.4 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 912.4392046020137 18.64695977444189 23.433900733680755 9.673986649898424 0.4206081152129749 0.40055912838782315
PRY South America Paraguay 2020-08-08 6705.0 197.0 174.286 72.0 3.0 2.857 1.25 null null null null null null null null 137300.0 1021.0 19.249831406247154 0.143 1227.0 0.172 0.142 7.0 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 940.0591375009989 27.619932898985354 24.43536865600285 10.094594765111399 0.4206081152129749 0.40055912838782315
PRY South America Paraguay 2020-08-09 6907.0 202.0 180.429 75.0 3.0 3.286 1.26 null null null null null null null null 138415.0 1115.0 19.406157422401307 0.156 1242.0 0.174 0.145 6.9 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 968.3800839253392 28.320946424340313 25.296633873253953 10.515202880324374 0.4206081152129749 0.4607060888632785
PRY South America Paraguay 2020-08-10 7234.0 327.0 215.714 82.0 7.0 3.857 1.28 null null null null null null null null 140236.0 1821.0 19.661466548335586 0.255 1350.0 0.189 0.16 6.3 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1014.2263684835535 45.846284558214265 30.243686321683892 11.496621815821316 0.9814189354969415 0.5407618334588148
PRY South America Paraguay 2020-08-11 7519.0 285.0 238.143 86.0 4.0 3.857 1.29 null null null null null null null null 142394.0 2158.0 19.964023985878782 0.303 1469.0 0.206 0.162 6.2 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1054.184139428786 39.95777094523262 33.388292793721156 12.05743263610528 0.5608108202839666 0.5407618334588148
PRY South America Paraguay 2020-08-12 8018.0 499.0 279.714 93.0 7.0 4.571 1.3 null null null null null null null null 144517.0 2123.0 20.261674328744498 0.298 1528.0 0.214 0.183 5.5 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1124.145289259211 69.96114983042483 39.216659446227354 13.038851571602223 0.9814189354969415 0.6408665648795027
PRY South America Paraguay 2020-08-13 8389.0 371.0 287.714 97.0 4.0 4.429 1.29 null null null null null null null null 146284.0 1767.0 20.50941250860494 0.248 1572.0 0.22 0.183 5.5 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1176.1604928405488 52.0152035813379 40.33828108679529 13.59966239188619 0.5608108202839666 0.620957780759422
PRY South America Paraguay 2020-08-14 9022.0 633.0 359.143 108.0 11.0 5.571 1.29 null null null null null null null null 149349.0 3065.0 20.939133799647532 0.43 1867.0 0.262 0.192 5.2 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1264.9088051504866 88.7483123099377 50.352820107311146 15.141892147667097 1.5422297557809082 0.7810692699504943
PRY South America Paraguay 2020-08-15 9381.0 359.0 382.286 127.0 19.0 7.857 1.27 null null null null null null null null 151427.0 2078.0 21.23047502078505 0.291 2018.0 0.283 0.189 5.3 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1315.2415762709725 50.332771120486 53.597531310769114 17.80574354401594 2.663851396348841 1.1015726537427815
PRY South America Paraguay 2020-08-16 9791.0 410.0 412.0 138.0 11.0 9.0 1.25 null null null null null null null null 154392.0 2965.0 21.64617604132054 0.416 2282.0 0.32 0.181 5.5 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1372.724685350079 57.48310907910657 57.76351448924856 19.34797329979685 1.5422297557809082 1.2618243456389249
PRY South America Paraguay 2020-08-17 10135.0 344.0 414.429 145.0 7.0 9.0 1.24 null null null null null null null null 156611.0 2219.0 21.957285843873073 0.311 2339.0 0.328 0.177 5.6 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1420.9544158945005 48.22973054442112 58.10406685986599 20.329392235293785 0.9814189354969415 1.2618243456389249
PRY South America Paraguay 2020-08-18 10606.0 471.0 441.0 161.0 16.0 10.714 1.24 null null null null null null null null 159666.0 3055.0 22.38560510786495 0.428 2467.0 0.346 0.179 5.6 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1486.9898899829373 66.03547408843706 61.82939293630732 22.572635516429653 2.2432432811358662 1.5021317821306046
PRY South America Paraguay 2020-08-19 11133.0 527.0 445.0 165.0 4.0 10.286 1.24 null null null null null null null null 162323.0 2657.0 22.758123695238577 0.373 2544.0 0.357 0.175 5.7 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1560.8767155553498 73.88682557241259 62.390203756591276 23.13344633671362 0.5608108202839666 1.44212502436022
PRY South America Paraguay 2020-08-20 11817.0 684.0 489.714 170.0 5.0 10.429 1.24 null null null null null null null null 166110.0 3787.0 23.28907133934242 0.531 2832.0 0.397 0.173 5.8 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1656.7753658239083 95.89865026855828 68.6592275111356 23.83445986206858 0.7010135253549582 1.4621740111853718
PRY South America Paraguay 2020-08-21 12536.0 719.0 502.0 182.0 12.0 10.571 1.22 null null null null null null null null 169260.0 3150.0 23.730709860316043 0.442 2844.0 0.399 0.177 5.7 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1757.5811107699512 100.80574494604298 70.3817579456378 25.516892322920476 1.6824324608518997 1.4820827953054525
PRY South America Paraguay 2020-08-22 12974.0 438.0 513.286 192.0 10.0 9.286 1.2 null null null null null null null null 171552.0 2292.0 24.052054460338756 0.321 2875.0 0.403 0.179 5.6 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1818.9898955910455 61.408784821094336 71.96408567506901 26.918919373630395 1.4020270507099164 1.3019223192892282
PRY South America Paraguay 2020-08-23 13233.0 259.0 491.714 205.0 13.0 9.571 1.19 null null null null null null null null 173340.0 1788.0 24.30273689700569 0.251 2707.0 0.38 0.182 5.5 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1855.3023962044324 36.31250061338683 68.93963292127759 28.741554539553285 1.8226351659228912 1.3418800902344608
PRY South America Paraguay 2020-08-24 13602.0 369.0 495.286 219.0 14.0 10.571 1.19 null null null null null null null null 175652.0 2312.0 24.626885551129824 0.324 2720.0 0.381 0.182 5.5 null 78.7 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1907.0371943756284 51.73479817119591 69.44043698379116 30.704392410547168 1.962837870993883 1.4820827953054525
PRY South America Paraguay 2020-08-25 14228.0 626.0 517.429 231.0 12.0 10.0 1.19 null null null null null null null null 177771.0 2119.0 24.923975083175257 0.297 2586.0 0.363 0.2 5.0 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 1994.8040877500691 87.76689337444077 72.54494548217814 32.38682487139907 1.6824324608518997 1.4020270507099164
PRY South America Paraguay 2020-08-26 14872.0 644.0 534.143 247.0 16.0 11.714 1.19 null null null null null null null null 180606.0 2835.0 25.321449752051517 0.397 2612.0 0.366 0.204 4.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2085.094629815788 90.29054206571861 74.8882934947347 34.63006815253494 2.2432432811358662 1.6423344872015961
PRY South America Paraguay 2020-08-27 15290.0 418.0 496.143 265.0 18.0 13.571 1.18 null null null null null null null null 182791.0 2185.0 25.627792662631634 0.306 2383.0 0.334 0.208 4.8 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2143.6993605354623 58.60473071967451 69.560590702037 37.15371684381279 2.5236486912778497 1.9026909105184275
PRY South America Paraguay 2020-08-28 15873.0 583.0 476.714 280.0 15.0 14.0 1.18 null null null null null null null null 185921.0 3130.0 26.066627129503836 0.439 2380.0 0.334 0.2 5.0 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2225.4375375918503 81.73817705638812 66.83659234521271 39.25675741987766 2.1030405760648745 1.962837870993883
PRY South America Paraguay 2020-08-29 16474.0 601.0 500.0 294.0 14.0 14.571 1.18 null null null null null null null null 188559.0 2638.0 26.436481865481113 0.37 2430.0 0.341 0.206 4.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2309.6993633395164 84.26182574766598 70.10135253549582 41.21959529087154 1.962837870993883 2.0428936155894193
PRY South America Paraguay 2020-08-30 17105.0 631.0 553.143 308.0 14.0 14.714 1.18 null null null null null null null null 190169.0 1610.0 26.662208220645407 0.226 2404.0 0.337 0.23 4.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2398.167270239312 88.46790689979574 77.55214489108354 43.182433161865426 1.962837870993883 2.0629426024145707
PRY South America Paraguay 2020-08-31 17662.0 557.0 580.0 326.0 18.0 15.286 1.18 null null null null null null null null 192465.0 2296.0 26.98411363148841 0.322 2402.0 0.337 0.241 4.1 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2476.260176963854 78.09290672454235 81.31756894117514 45.706081853143274 2.5236486912778497 2.1431385497151783
PRY South America Paraguay 2020-09-01 18338.0 676.0 587.143 348.0 22.0 16.714 1.19 null null null null null null null null 195554.0 3089.0 27.4171997874527 0.433 2540.0 0.356 0.231 4.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2571.0372055918447 94.77702862799035 82.31903686349725 48.79054136470509 3.0844595115618163 2.3433480125565542
PRY South America Paraguay 2020-09-02 19138.0 800.0 609.429 358.0 10.0 15.857 1.19 null null null null null null null null 198620.0 3066.0 27.84706128120036 0.43 2573.0 0.361 0.237 4.2 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2683.199369648638 112.16216405679332 85.44359434870935 50.19256841541501 1.4020270507099164 2.223194294310714
PRY South America Paraguay 2020-09-03 19959.0 821.0 667.0 373.0 15.0 15.429 1.19 null null null null null null null null 201750.0 3130.0 28.285895748072566 0.439 2708.0 0.38 0.246 4.1 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2798.305790511922 115.10642086328414 93.51520428235142 52.29560899147988 2.1030405760648745 2.16318753654033
PRY South America Paraguay 2020-09-04 20654.0 695.0 683.0 398.0 25.0 16.857 1.18 null null null null null null null null 204220.0 2470.0 28.63219642959791 0.346 2614.0 0.366 0.261 3.8 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 2895.7466705362613 97.4408800243392 95.7584475634873 55.80067661825467 3.505067626774791 2.363396999381706
PRY South America Paraguay 2020-09-05 21871.0 1217.0 771.0 412.0 14.0 16.857 1.18 null null null null null null null null 206483.0 2263.0 28.949475151173566 0.317 2561.0 0.359 0.301 3.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3066.3733626076582 170.62669207139683 108.09628560973455 57.76351448924856 1.962837870993883 2.363396999381706
PRY South America Paraguay 2020-09-06 22486.0 615.0 768.714 435.0 23.0 18.143 1.17 null null null null null null null null 209202.0 2719.0 29.330686306261594 0.381 2719.0 0.381 0.283 3.5 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3152.598026226318 86.22466361865986 107.77578222594228 60.988176705881365 3.2246622166328076 2.5436976781030016
PRY South America Paraguay 2020-09-07 23353.0 867.0 813.0 449.0 14.0 17.571 1.16 null null null null null null null null 211956.0 2754.0 29.716804556027103 0.386 2784.0 0.39 0.292 3.4 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3274.153771522868 121.55574529654974 113.9847992227162 62.951014576875245 1.962837870993883 2.463501730802394
PRY South America Paraguay 2020-09-08 24214.0 861.0 839.429 463.0 14.0 16.429 1.15 null null null null null null null null 214976.0 3020.0 30.1402167253415 0.423 2775.0 0.389 0.302 3.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3394.8683005889916 120.7145290661238 117.69021651503743 64.91385244786913 1.962837870993883 2.3033902416113214
PRY South America Paraguay 2020-09-09 25026.0 812.0 841.143 474.0 11.0 16.571 1.14 null null null null null null null null 217643.0 2667.0 30.514137339765835 0.374 2718.0 0.381 0.309 3.2 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3508.712897106637 113.8445965176452 117.93052395152912 66.45608220365003 1.5422297557809082 2.323299025731403
PRY South America Paraguay 2020-09-10 25631.0 605.0 810.286 485.0 11.0 16.0 1.13 null null null null null null null null 220293.0 2650.0 30.88567450820396 0.372 2649.0 0.371 0.306 3.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3593.535533674587 84.82263656794994 113.60428908115352 67.99831195943094 1.5422297557809082 2.2432432811358662
PRY South America Paraguay 2020-09-11 26512.0 881.0 836.857 496.0 11.0 14.0 1.13 null null null null null null null null 223303.0 3010.0 31.307684650467646 0.422 2726.0 0.382 0.307 3.3 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3717.05411684213 123.51858316754364 117.32961515759484 69.54054171521184 1.5422297557809082 1.962837870993883
PRY South America Paraguay 2020-09-12 27324.0 812.0 779.0 514.0 18.0 14.571 1.12 null null null null null null null null 227011.0 3708.0 31.827556280870883 0.52 2933.0 0.411 0.266 3.8 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3830.8987133597752 113.8445965176452 109.21790725030249 72.06419040648971 2.5236486912778497 2.0428936155894193
PRY South America Paraguay 2020-09-13 27817.0 493.0 761.571 525.0 11.0 12.857 1.11 null null null null null null null null 229992.0 2981.0 32.24550054468751 0.418 2970.0 0.416 0.256 3.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3900.0186469597743 69.11993359999887 106.77431430362017 73.60642016227062 1.5422297557809082 1.8025861790977393
PRY South America Paraguay 2020-09-14 28367.0 550.0 716.286 539.0 14.0 12.857 1.11 null null null null null null null null 232515.0 2523.0 32.59923196958162 0.354 2937.0 0.412 0.244 4.1 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 3977.1301347488193 77.1114877890454 100.4252348044803 75.56925803326449 1.962837870993883 1.8025861790977393
PRY South America Paraguay 2020-09-15 29298.0 931.0 726.286 552.0 13.0 12.714 1.12 null null null null null null null null 235620.0 3105.0 33.03456136882705 0.435 2949.0 0.413 0.246 4.1 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4107.6588531699135 130.5287184210932 101.82726185519023 77.3918931991874 1.8226351659228912 1.782537192272588
PRY South America Paraguay 2020-09-16 30419.0 1121.0 770.429 566.0 14.0 13.143 1.12 null null null null null null null null 239172.0 3552.0 33.53256137723921 0.498 3076.0 0.431 0.25 4.0 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4264.826085554495 157.16723238458164 108.01622986513901 79.35473107018127 1.962837870993883 1.8426841527480433
PRY South America Paraguay 2020-09-17 31113.0 694.0 783.143 584.0 18.0 14.143 1.11 null null null null null null null null 241837.0 2665.0 33.9062015862534 0.374 3078.0 0.432 0.254 3.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4362.126762873763 97.3006773192682 109.79876705741161 81.87837976145912 2.5236486912778497 1.9828868578190348
PRY South America Paraguay 2020-09-18 32127.0 1014.0 802.143 611.0 27.0 16.429 1.11 null null null null null null null null 245271.0 3434.0 34.38765767546719 0.481 3138.0 0.44 0.256 3.9 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4504.2923058157485 142.1655429419855 112.46261845376044 85.66385279837588 3.785473036916774 2.3033902416113214
PRY South America Paraguay 2020-09-19 33015.0 888.0 813.0 636.0 25.0 17.429 1.1 null null null null null null null null 248376.0 3105.0 34.822987074712614 0.435 3052.0 0.428 0.266 3.8 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4628.792307918789 124.50000210304057 113.9847992227162 89.16892042515069 3.505067626774791 2.443592946682313
PRY South America Paraguay 2020-09-20 33520.0 505.0 814.714 659.0 23.0 19.143 1.09 null null null null null null null null 250882.0 2506.0 35.174335053620524 0.351 2984.0 0.418 0.273 3.7 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4699.59467397964 70.80236606085079 114.22510665920788 92.39358264178348 3.2246622166328076 2.683900383173993
PRY South America Paraguay 2020-09-21 34260.0 740.0 841.857 676.0 17.0 19.571 1.09 null null null null null null null null 252943.0 2061.0 35.463292828771834 0.289 2918.0 0.409 0.289 3.5 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4803.3446757321735 103.75000175253382 118.03062868294981 94.77702862799035 2.383445986206858 2.7439071409443776
PRY South America Paraguay 2020-09-22 34828.0 568.0 790.0 705.0 29.0 21.857 1.08 null null null null null null null null 255851.0 2908.0 35.87100229511828 0.408 2890.0 0.405 0.273 3.7 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4882.979812212497 79.63513648032325 110.76013700608338 98.84290707504911 4.065878447058758 3.064410524736664
PRY South America Paraguay 2020-09-23 35571.0 743.0 736.0 727.0 22.0 23.0 1.09 null null null null null null null null 258828.0 2977.0 36.28838574811463 0.417 2808.0 0.394 0.262 3.8 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 4987.1504220802435 104.17060986774679 103.18919093224984 101.92736658661092 3.0844595115618163 3.2246622166328076
PRY South America Paraguay 2020-09-24 36404.0 833.0 755.857 743.0 16.0 22.714 1.09 null null null null null null null null 261563.0 2735.0 36.67184014648379 0.383 2818.0 0.395 0.268 3.7 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5103.93927540438 116.78885332413604 105.97319604684452 104.17060986774679 2.2432432811358662 3.1845642429825043
PRY South America Paraguay 2020-09-25 37226.0 822.0 728.429 761.0 18.0 21.429 1.09 null null null null null null null null 264031.0 2468.0 37.01786042259899 0.346 2680.0 0.376 0.272 3.7 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5219.185898972735 115.24662356835513 102.12771625215737 106.69425855902463 2.5236486912778497 3.0044037669662798
PRY South America Paraguay 2020-09-26 37922.0 696.0 701.0 782.0 21.0 20.857 1.08 null null null null null null null null 267062.0 3031.0 37.44281482166917 0.425 2669.0 0.374 0.263 3.8 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5316.766981702144 97.58108272941018 98.28209625476514 109.63851536551546 2.9442568064908246 2.9242078196656727
PRY South America Paraguay 2020-09-27 38684.0 762.0 737.714 803.0 21.0 20.571 1.08 null null null null null null null null 269710.0 2648.0 37.81407158469715 0.371 2690.0 0.377 0.274 3.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5423.60144296624 106.83446126409564 103.42949836874153 112.58277217200629 2.9442568064908246 2.8841098460153693
PRY South America Paraguay 2020-09-28 39432.0 748.0 738.857 818.0 15.0 20.286 1.08 null null null null null null null null 272494.0 2784.0 38.204395915614796 0.39 2793.0 0.392 0.265 3.8 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5528.473066359343 104.87162339310174 103.58975006063767 114.68581274807116 2.1030405760648745 2.8441520750701366
PRY South America Paraguay 2020-09-29 40101.0 669.0 753.286 841.0 23.0 19.429 1.08 null null null null null null null null 274555.0 2061.0 38.493353690766114 0.289 2672.0 0.375 0.282 3.5 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5622.268676051835 93.79560969249341 105.612734892107 117.91047496470398 3.2246622166328076 2.7239983568242967
PRY South America Paraguay 2020-09-30 40758.0 657.0 741.0 857.0 16.0 18.571 1.08 null null null null null null null null 277492.0 2937.0 38.90512903555961 0.412 2666.0 0.374 0.278 3.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5714.381853283477 92.1131772316415 103.8902044576048 120.15371824583984 2.2432432811358662 2.6037044358733863
PRY South America Paraguay 2020-10-01 41799.0 1041.0 770.714 869.0 12.0 18.0 1.09 null null null null null null null null 280909.0 3417.0 39.38420167878719 0.479 2764.0 0.388 0.279 3.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5860.332869262379 145.9510159789023 108.05618763608425 121.83615070669173 1.6824324608518997 2.5236486912778497
PRY South America Paraguay 2020-10-02 42684.0 885.0 779.714 890.0 21.0 18.429 1.09 null null null null null null null null 283537.0 2628.0 39.752654387713754 0.368 2787.0 0.391 0.28 3.6 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 5984.412263250207 124.07939398782761 109.31801198172319 124.78040751318255 2.9442568064908246 2.5837956517533045
PRY South America Paraguay 2020-10-03 43452.0 768.0 790.0 913.0 23.0 18.714 1.08 null null null null null null null null 286262.0 2725.0 40.13470675903221 0.382 2743.0 0.385 0.288 3.5 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6092.087940744729 107.67567749452158 110.76013700608338 128.00506972981538 3.2246622166328076 2.6237534226985373
PRY South America Paraguay 2020-10-04 44182.0 730.0 785.429 929.0 16.0 18.0 1.08 null null null null null null null null 288502.0 2240.0 40.44876081839123 0.314 2685.0 0.376 0.293 3.4 null 81.48 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6194.435915446553 102.34797470182389 110.1192704412039 130.24831301095125 2.2432432811358662 2.5236486912778497
PRY South America Paraguay 2020-10-05 44715.0 533.0 754.714 947.0 18.0 18.429 1.07 null null null null null null null null 290507.0 2005.0 40.72986724205857 0.281 2573.0 0.361 0.293 3.4 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6269.163957249391 74.72804180283855 105.81294435494839 132.77196170222908 2.5236486912778497 2.5837956517533045
PRY South America Paraguay 2020-10-06 45647.0 932.0 792.286 966.0 19.0 17.857 1.08 null null null null null null null null 293374.0 2867.0 41.1318283974971 0.402 2688.0 0.377 0.295 3.4 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6399.832878375556 130.6689211261642 111.08064038987568 135.43581309857794 2.663851396348841 2.5035997044526974
PRY South America Paraguay 2020-10-07 46435.0 788.0 811.0 989.0 23.0 18.857 1.08 null null null null null null null null 296536.0 3162.0 41.575149350931575 0.443 2721.0 0.381 0.298 3.4 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6510.312609971496 110.47973159594142 113.70439381257422 138.66047531521073 3.2246622166328076 2.643802409523689
PRY South America Paraguay 2020-10-08 47316.0 881.0 788.143 1012.0 23.0 20.429 1.08 null null null null null null null null 299557.0 3021.0 41.99870172295105 0.424 2664.0 0.374 0.296 3.4 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6633.83119313904 123.51858316754364 110.49978058276658 141.88513753184353 3.2246622166328076 2.864201061895288
PRY South America Paraguay 2020-10-09 48275.0 959.0 798.714 1045.0 33.0 22.143 1.07 null null null null null null null null 302657.0 3100.0 42.43333010867112 0.435 2731.0 0.383 0.292 3.4 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6768.285587302122 134.45439416308096 111.98186337807202 146.51182679918625 4.626689267342724 3.104508498386968
PRY South America Paraguay 2020-10-10 48978.0 703.0 789.429 1065.0 20.0 21.714 1.07 null null null null null null null null 305552.0 2895.0 42.83921693985164 0.406 2756.0 0.386 0.286 3.5 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6866.848088967028 98.56250166490712 110.68008126148786 149.3158809006061 2.804054101419833 3.044361537911512
PRY South America Paraguay 2020-10-11 49675.0 697.0 784.714 1077.0 12.0 21.143 1.06 null null null null null null null null 308443.0 2891.0 43.244542960211874 0.405 2849.0 0.399 0.275 3.6 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 6964.56937440151 97.72128543448116 110.01902550707814 150.998313361458 1.6824324608518997 2.964305793315976
PRY South America Paraguay 2020-10-12 50344.0 669.0 804.143 1096.0 19.0 21.286 1.06 null null null null null null null null 311326.0 2883.0 43.648747358931544 0.404 2974.0 0.417 0.27 3.7 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7058.364984094003 93.79560969249341 112.74302386390244 153.66216475780683 2.663851396348841 2.9843547801411283
PRY South America Paraguay 2020-10-13 51197.0 853.0 792.857 1108.0 12.0 20.286 1.06 null null null null null null null null 314053.0 2727.0 44.03108013566013 0.382 2954.0 0.414 0.268 3.7 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7177.957891519559 119.59290742555586 111.16069613447122 155.34459721865875 1.6824324608518997 2.8441520750701366
PRY South America Paraguay 2020-10-14 51845.0 648.0 772.857 1131.0 23.0 20.286 1.06 null null null null null null null null 317084.0 3031.0 44.456034534730314 0.425 2935.0 0.411 0.263 3.8 null 67.59 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7268.809244405562 90.85135288600257 108.35664203305137 158.56925943529154 3.2246622166328076 2.8441520750701366
PRY South America Paraguay 2020-10-15 52596.0 751.0 754.286 1150.0 19.0 19.714 1.06 null null null null null null null null 320006.0 2922.0 44.86570683894775 0.41 2921.0 0.41 0.258 3.9 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7374.101475913876 105.29223150831473 105.752937597178 161.23311083164037 2.663851396348841 2.763956127769529
PRY South America Paraguay 2020-10-16 53482.0 886.0 743.857 1165.0 15.0 17.143 1.06 null null null null null null null null 322978.0 2972.0 45.28238927841874 0.417 2903.0 0.407 0.256 3.9 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7498.3210726067755 124.21959669289858 104.29076358599262 163.33615140770524 2.1030405760648745 2.4034949730320094
PRY South America Paraguay 2020-10-17 54015.0 533.0 719.571 1179.0 14.0 16.286 1.05 null null null null null null null null 325909.0 2931.0 45.69332340698182 0.411 2908.0 0.408 0.247 4.0 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7573.049114409614 74.72804180283855 100.88580069063853 165.29898927869914 1.962837870993883 2.28334125478617
PRY South America Paraguay 2020-10-18 54724.0 709.0 721.286 1188.0 9.0 15.857 1.05 null null null null null null null null 328600.0 2691.0 46.070608886327854 0.377 2880.0 0.404 0.25 4.0 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7672.452832304946 99.40371789533307 101.12624832983528 166.56081362433807 1.2618243456389249 2.223194294310714
PRY South America Paraguay 2020-10-19 55452.0 728.0 729.714 1207.0 19.0 15.857 1.05 null null null null null null null null 330854.0 2254.0 46.38662578355787 0.316 2790.0 0.391 0.262 3.8 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7774.520401596628 102.0675692916819 102.3078767281736 169.22466502068693 2.663851396348841 2.223194294310714
PRY South America Paraguay 2020-10-20 56073.0 621.0 696.571 1231.0 24.0 17.571 1.05 null null null null null null null null 333885.0 3031.0 46.81158018262804 0.425 2833.0 0.397 0.246 4.1 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7861.586281445714 87.0658798490858 97.66113847400572 172.5895299423907 3.3648649217037994 2.463501730802394
PRY South America Paraguay 2020-10-21 56819.0 746.0 710.571 1250.0 19.0 17.0 1.05 null null null null null null null null 336639.0 2754.0 47.19769843239356 0.386 2794.0 0.392 0.254 3.9 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 7966.177499428673 104.59121798295976 99.6239763449996 175.25338133873956 2.663851396348841 2.383445986206858
PRY South America Paraguay 2020-10-22 57526.0 707.0 704.286 1262.0 12.0 16.0 1.05 null null null null null null null null 339477.0 2838.0 47.59559370938503 0.398 2782.0 0.39 0.253 4.0 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8065.300811913865 99.1233124851911 98.74280234362841 176.93581379959147 1.6824324608518997 2.2432432811358662
PRY South America Paraguay 2020-10-23 58259.0 733.0 682.429 1278.0 16.0 16.143 1.05 null null null null null null null null 342331.0 2854.0 47.99573222965764 0.4 2765.0 0.388 0.247 4.1 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8168.069394730903 102.76858281703687 95.67839181889174 179.17905708072732 2.2432432811358662 2.263292267961018
PRY South America Paraguay 2020-10-24 59043.0 784.0 718.286 1293.0 15.0 16.286 1.04 null null null null null null null null 345336.0 3005.0 48.41704135839597 0.421 2775.0 0.389 0.259 3.9 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8277.98831550656 109.91892077565745 100.70564021462229 181.2820976567922 2.1030405760648745 2.28334125478617
PRY South America Paraguay 2020-10-25 59594.0 551.0 695.714 1309.0 16.0 17.286 1.04 null null null null null null null null 347863.0 2527.0 48.77133359411037 0.354 2752.0 0.386 0.253 4.0 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8355.240006000675 77.25169049411639 97.5409847557599 183.52534093792806 2.2432432811358662 2.4235439598571618
PRY South America Paraguay 2020-10-26 60109.0 515.0 665.286 1333.0 24.0 18.0 1.04 null null null null null null null null 350289.0 2426.0 49.11146535661259 0.34 2776.0 0.389 0.24 4.2 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8427.444399112237 72.20439311156069 93.27489684585973 186.89020585963186 3.3648649217037994 2.5236486912778497
PRY South America Paraguay 2020-10-27 60557.0 448.0 640.571 1347.0 14.0 16.571 1.04 null null null null null null null null 352711.0 2422.0 49.45103630829453 0.34 2689.0 0.377 0.238 4.2 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8490.255210984042 62.810811871804255 89.80978699003019 188.85304373062573 1.962837870993883 2.323299025731403
PRY South America Paraguay 2020-10-28 61290.0 733.0 638.714 1359.0 12.0 15.571 1.04 null null null null null null null null 355553.0 2842.0 49.84949239610629 0.398 2702.0 0.379 0.236 4.2 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8593.023793801078 102.76858281703687 89.54943056671337 190.53547619147764 1.6824324608518997 2.183096320660411
PRY South America Paraguay 2020-10-29 62050.0 760.0 646.286 1373.0 14.0 15.857 1.04 null null null null null null null null 358694.0 3141.0 50.28986909273427 0.44 2745.0 0.385 0.235 4.2 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8699.577849655032 106.55405585395364 90.6110454495109 192.4983140624715 1.962837870993883 2.223194294310714
PRY South America Paraguay 2020-10-30 62596.0 546.0 619.571 1387.0 14.0 15.571 1.04 null null null null null null null null 361696.0 3002.0 50.710757613357394 0.421 2766.0 0.388 0.224 4.5 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8776.128526623792 76.55067696876144 86.86553018353936 194.4611519334654 1.962837870993883 2.183096320660411
PRY South America Paraguay 2020-10-31 63185.0 589.0 591.714 1404.0 17.0 15.857 1.04 null null null null null null null null 364557.0 2861.0 51.1118775525655 0.401 2746.0 0.385 0.215 4.6 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8858.707919910607 82.57939328681408 82.95990342837675 196.84459791967228 2.383445986206858 2.223194294310714
PRY South America Paraguay 2020-11-01 63731.0 546.0 591.0 1418.0 14.0 15.571 1.04 null null null null null null null null 367224.0 2667.0 51.48579816698983 0.374 2766.0 0.388 0.214 4.7 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8935.258596879368 76.55067696876144 82.85979869695605 198.80743579066615 1.962837870993883 2.183096320660411
PRY South America Paraguay 2020-11-02 64156.0 425.0 578.143 1429.0 11.0 13.714 1.03 null null null null null null null null 368759.0 1535.0 51.70100931927381 0.215 2639.0 0.37 0.219 4.6 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 8994.84474653454 59.58614965517145 81.05721251785833 200.34966554644706 1.5422297557809082 1.9227398973435794
PRY South America Paraguay 2020-11-03 64628.0 472.0 581.571 1441.0 12.0 13.429 1.04 null null null null null null null null 371762.0 3003.0 52.12203804260199 0.421 2722.0 0.382 0.214 4.7 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9061.020423328047 66.17567679350806 81.53782739084168 202.03209800729897 1.6824324608518997 1.8827821263983469
PRY South America Paraguay 2020-11-04 65258.0 630.0 566.857 1454.0 13.0 13.571 1.04 null null null null null null null null 374486.0 2724.0 52.503950211215376 0.382 2705.0 0.379 0.21 4.8 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9149.348127522771 88.32770419472473 79.4748847884271 203.85473317322183 1.8226351659228912 1.9026909105184275
PRY South America Paraguay 2020-11-05 65778.0 520.0 532.571 1462.0 8.0 12.714 1.05 null null null null null null null null 377309.0 2823.0 52.899742447630786 0.396 2659.0 0.373 0.2 5.0 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9222.253534159689 72.90540663691564 74.66789484236308 204.97635481378978 1.1216216405679331 1.782537192272588
PRY South America Paraguay 2020-11-06 66481.0 703.0 555.0 1472.0 10.0 12.143 1.05 null null null null null null null null 380237.0 2928.0 53.31025596807864 0.411 2649.0 0.371 0.21 4.8 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9320.816035824595 98.56250166490712 77.81250131440036 206.3783818644997 1.4020270507099164 1.7024814476770516
PRY South America Paraguay 2020-11-07 66941.0 460.0 536.571 1479.0 7.0 10.714 1.05 null null null null null null null null 382872.0 2635.0 53.67969009594071 0.369 2616.0 0.367 0.205 4.9 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9385.309280157251 64.49324433265615 75.22870566264706 207.35980079999663 0.9814189354969415 1.5021317821306046
PRY South America Paraguay 2020-11-08 67589.0 648.0 551.143 1490.0 11.0 10.286 1.05 null null null null null null null null 385453.0 2581.0 54.041553277728944 0.362 2604.0 0.365 0.212 4.7 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9476.160633043253 90.85135288600257 77.27173948094155 208.90203055577754 1.5422297557809082 1.44212502436022
PRY South America Paraguay 2020-11-09 67948.0 359.0 541.714 1502.0 12.0 10.429 1.05 null null null null null null null null 387941.0 2488.0 54.39037760794557 0.349 2740.0 0.384 0.198 5.1 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9526.493404163739 50.332771120486 75.94976817482717 210.58446301662946 1.6824324608518997 1.4621740111853718
PRY South America Paraguay 2020-11-10 68497.0 549.0 552.714 1516.0 14.0 10.714 1.06 null null null null null null null null 390180.0 2239.0 54.70429146459952 0.314 2631.0 0.369 0.21 4.8 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9603.464689247714 76.97128508397441 77.49199793060808 212.54730088762332 1.962837870993883 1.5021317821306046
PRY South America Paraguay 2020-11-11 69106.0 609.0 549.714 1532.0 16.0 11.143 1.07 null null null null null null null null 392876.0 2696.0 55.082277957470914 0.378 2627.0 0.368 0.209 4.8 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9688.848136635948 85.38344738823392 77.0713898153951 214.7905441687592 2.2432432811358662 1.56227874260606
PRY South America Paraguay 2020-11-12 69653.0 547.0 553.571 1543.0 11.0 11.571 1.07 null null null null null null null null 395518.0 2642.0 55.452693504268474 0.37 2601.0 0.365 0.213 4.7 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9765.53901630978 76.69087967383243 77.61215164885391 216.3327739245401 1.5422297557809082 1.622285500376444
PRY South America Paraguay 2020-11-13 70392.0 739.0 558.714 1556.0 13.0 12.0 1.08 null null null null null null null null 398428.0 2910.0 55.86068337602506 0.408 2599.0 0.364 0.215 4.7 null 64.81 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9869.148815357243 103.60979904746281 78.33321416103404 218.155409090463 1.8226351659228912 1.6824324608518997
PRY South America Paraguay 2020-11-14 71065.0 673.0 589.143 1569.0 13.0 12.857 1.08 null null null null null null null null 401017.0 2589.0 56.22366817945385 0.363 2592.0 0.363 0.227 4.4 null 61.11 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 9963.505235870021 94.35642051277738 82.59944227363924 219.97804425638589 1.8226351659228912 1.8025861790977393
PRY South America Paraguay 2020-11-15 71574.0 509.0 569.286 1587.0 18.0 13.857 1.08 null null null null null null null null 402564.0 1547.0 56.44056176419868 0.217 2444.0 0.343 0.233 4.3 null 61.11 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10034.868412751155 71.36317688113473 79.81543715904454 222.50169294766374 2.5236486912778497 1.9427888841687313
PRY South America Paraguay 2020-11-16 72099.0 525.0 593.0 1602.0 15.0 14.286 1.08 null null null null null null null null 405816.0 3252.0 56.896500961089544 0.456 2554.0 0.358 0.232 4.3 null 66.67 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10108.474832913427 73.60642016227062 83.14020410709804 224.60473352372858 2.1030405760648745 2.0029358446441865
PRY South America Paraguay 2020-11-17 72857.0 758.0 622.857 1613.0 11.0 13.857 1.09 null null null null null null null null 408717.0 2901.0 57.30322900850049 0.407 2648.0 0.371 0.235 4.3 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10214.748483357238 106.27365044381166 87.32623627240264 226.1469632795095 1.5422297557809082 1.9427888841687313
PRY South America Paraguay 2020-11-18 73639.0 782.0 647.571 1624.0 11.0 13.143 1.09 null null null null null null null null 411727.0 3010.0 57.725239150764175 0.422 2693.0 0.378 0.24 4.2 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10324.386998722754 109.63851536551546 90.79120592552714 227.6891930352904 1.5422297557809082 1.8426841527480433
PRY South America Paraguay 2020-11-19 74495.0 856.0 691.714 1636.0 12.0 13.286 1.09 null null null null null null null null 414988.0 3261.0 58.18244017200068 0.457 2781.0 0.39 0.249 4.0 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10444.400514263521 120.01351554076884 96.98017393547592 229.37162549614231 1.6824324608518997 1.8627331395731948
PRY South America Paraguay 2020-11-20 75058.0 563.0 666.571 1647.0 11.0 13.0 1.09 null null null null null null null null 417510.0 2522.0 58.53603139418972 0.354 2726.0 0.382 0.245 4.1 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10523.33463721849 78.9341229549683 93.45505732187597 230.91385525192322 1.5422297557809082 1.8226351659228912
PRY South America Paraguay 2020-11-21 75857.0 799.0 684.571 1652.0 5.0 11.857 1.09 null null null null null null null null 420258.0 2748.0 58.9213084277248 0.385 2749.0 0.385 0.249 4.0 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10635.356598570213 112.02196135172233 95.97870601315381 231.6148687772782 0.7010135253549582 1.6623834740267478
PRY South America Paraguay 2020-11-22 76476.0 619.0 700.286 1657.0 5.0 10.0 1.09 null null null null null null null null 423142.0 2884.0 59.32565302914954 0.404 2940.0 0.412 0.238 4.2 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10722.142073009156 86.78547443894382 98.18199152334444 232.31588230263313 0.7010135253549582 1.4020270507099164
PRY South America Paraguay 2020-11-23 77072.0 596.0 710.429 1665.0 8.0 9.0 1.09 null null null null null null null null 425902.0 2760.0 59.71261249514548 0.387 2869.0 0.402 0.248 4.0 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10805.702885231469 83.56081222231101 99.60406756087951 233.43750394320108 1.1216216405679331 1.2618243456389249
PRY South America Paraguay 2020-11-24 77891.0 819.0 719.143 1677.0 12.0 9.143 1.09 null null null null null null null null 428912.0 3010.0 60.134622637409166 0.422 2885.0 0.404 0.249 4.0 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 10920.528900684609 114.82601545314216 100.82579393286815 235.119936404053 1.6824324608518997 1.2818733324640765
PRY South America Paraguay 2020-11-25 78878.0 987.0 748.429 1691.0 14.0 9.571 1.09 null null null null null null null null 432048.0 3136.0 60.574298320511794 0.44 2903.0 0.407 0.258 3.9 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11058.908970589679 138.38006990506875 104.93177035357719 237.08277427504686 1.962837870993883 1.3418800902344608
PRY South America Paraguay 2020-11-26 79517.0 639.0 717.429 1704.0 13.0 9.714 1.09 null null null null null null null null 435667.0 3619.0 61.08169191016371 0.507 2954.0 0.414 0.243 4.1 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11148.498499130043 89.58952854036366 100.58548649637646 238.90540944096978 1.8226351659228912 1.3619290770596129
PRY South America Paraguay 2020-11-27 80436.0 919.0 768.286 1720.0 16.0 10.429 1.09 null null null null null null null null 439175.0 3508.0 61.57352299955275 0.492 3095.0 0.434 0.248 4.0 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11277.344785090285 128.84628596024132 107.71577546817187 241.14865272210562 2.2432432811358662 1.4621740111853718
PRY South America Paraguay 2020-11-28 81131.0 695.0 753.429 1731.0 11.0 11.286 1.09 null null null null null null null null 442832.0 3657.0 62.08624429199737 0.513 3225.0 0.452 0.234 4.3 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11374.785665114623 97.4408800243392 105.63278387893214 242.69088247788653 1.5422297557809082 1.5823277294312115
PRY South America Paraguay 2020-11-29 81906.0 775.0 775.714 1743.0 12.0 12.286 1.09 null null null null null null null null 445986.0 3154.0 62.52844362379127 0.442 3263.0 0.457 0.238 4.2 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11483.442761544642 108.65709643001853 108.75720116143923 244.37331493873842 1.6824324608518997 1.7225304345022032
PRY South America Paraguay 2020-11-30 82424.0 518.0 764.571 1756.0 13.0 13.0 1.09 null null null null null null null null 445986.0 null 62.52844362379127 null null null null null null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11556.067762771416 72.62500122677366 107.19492241883314 246.19595010466134 1.8226351659228912 1.8226351659228912
PRY South America Paraguay 2020-11-30 82424.0 518.0 764.571 1756.0 13.0 13.0 1.09 null null null null null null null null 449057.0 3071.0 62.9590061310643 0.431 3308.0 0.464 0.231 4.3 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11556.067762771416 72.62500122677366 107.19492241883314 246.19595010466134 1.8226351659228912 1.8226351659228912
PRY South America Paraguay 2020-12-01 83479.0 1055.0 798.286 1771.0 15.0 13.429 1.09 null null null null null null null null 449057.0 null 62.9590061310643 null null null null null null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11703.981616621311 147.91385384989619 111.92185662030163 248.29899068072618 2.1030405760648745 1.8827821263983469
PRY South America Paraguay 2020-12-01 83479.0 1055.0 798.286 1771.0 15.0 13.429 1.09 null null null null null null null null 452851.0 3794.0 63.490935194103635 0.532 3420.0 0.479 0.233 4.3 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11703.981616621311 147.91385384989619 111.92185662030163 248.29899068072618 2.1030405760648745 1.8827821263983469
PRY South America Paraguay 2020-12-02 84482.0 1003.0 800.571 1783.0 12.0 13.143 1.09 null null null null null null null null 456916.0 4065.0 64.06085919021722 0.57 3553.0 0.498 0.225 4.4 null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11844.604929807516 140.6233131862046 112.24221980138886 249.98142314157806 1.6824324608518997 1.8426841527480433
PRY South America Paraguay 2020-12-02 84482.0 1003.0 800.571 1783.0 12.0 13.143 1.09 null null null null null null null null 456916.0 null 64.06085919021722 null null null null null null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11844.604929807516 140.6233131862046 112.24221980138886 249.98142314157806 1.6824324608518997 1.8426841527480433
PRY South America Paraguay 2020-12-03 85477.0 995.0 851.429 1796.0 13.0 13.143 1.09 null null null null null null null null 456916.0 null 64.06085919021722 null null null null null null 63.89 7132530.0 17.144 26.5 6.378 3.833 8827.01 1.7 199.128 8.27 5.0 21.6 79.602 1.3 74.25 0.702 11984.106621353152 139.5016915456367 119.37264897588933 251.80405830750098 1.8226351659228912 1.8426841527480433
RUS Europe Russia 2020-01-23 0.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 0.0 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.0 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-01-24 0.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 0.0 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.0 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-01-25 0.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 0.0 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.0 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-01-26 0.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 0.0 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.0 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-01-27 0.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 0.0 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.0 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-01-28 0.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 0.0 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.0 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-01-29 0.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 0.0 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.0 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.0 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-01-31 2.0 2.0 0.286 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 1.3704782270068359e-2 1.959783864619775e-3 0.0 0.0 0.0
RUS Europe Russia 2020-02-01 2.0 0.0 0.286 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 1.959783864619775e-3 0.0 0.0 0.0
RUS Europe Russia 2020-02-02 2.0 0.0 0.286 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 1.959783864619775e-3 0.0 0.0 0.0
RUS Europe Russia 2020-02-03 2.0 0.0 0.286 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 1.959783864619775e-3 0.0 0.0 0.0
RUS Europe Russia 2020-02-04 2.0 0.0 0.286 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 1.959783864619775e-3 0.0 0.0 0.0
RUS Europe Russia 2020-02-05 2.0 0.0 0.286 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 1.959783864619775e-3 0.0 0.0 0.0
RUS Europe Russia 2020-02-06 2.0 0.0 0.286 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 1.959783864619775e-3 0.0 0.0 0.0
RUS Europe Russia 2020-02-07 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-08 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-09 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-10 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-11 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-12 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-13 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-14 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-15 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-16 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-17 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-18 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-19 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-20 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-21 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-22 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-23 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-24 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-25 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-26 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-27 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-28 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-02-29 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-03-01 2.0 0.0 0.0 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3704782270068359e-2 0.0 0.0 0.0 0.0 0.0
RUS Europe Russia 2020-03-02 3.0 1.0 0.143 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2.0557173405102536e-2 6.852391135034179e-3 9.798919323098876e-4 0.0 0.0 0.0
RUS Europe Russia 2020-03-03 3.0 0.0 0.143 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2.0557173405102536e-2 0.0 9.798919323098876e-4 0.0 0.0 0.0
RUS Europe Russia 2020-03-04 3.0 0.0 0.143 0.0 0.0 0.0 2.27 null null null null null null null null 46414.0 null 0.3180468821414764 null null null null null null 8.33 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2.0557173405102536e-2 0.0 9.798919323098876e-4 0.0 0.0 0.0
RUS Europe Russia 2020-03-05 4.0 1.0 0.286 0.0 0.0 0.0 2.27 null null null null null null null null 51366.0 4952.0 0.35197992304216563 3.4e-2 null null null null null 22.22 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2.7409564540136717e-2 6.852391135034179e-3 1.959783864619775e-3 0.0 0.0 0.0
RUS Europe Russia 2020-03-06 13.0 9.0 1.571 0.0 0.0 0.0 2.27 null null null null null null null null 55688.0 4322.0 0.3815959575277834 3.0e-2 null null null null null 22.22 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8.908108475544432e-2 6.167152021530761e-2 1.0765106473138695e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-07 13.0 0.0 1.571 0.0 0.0 0.0 2.27 null null null null null null null null 59960.0 4272.0 0.41086937245664934 2.9e-2 null null null null null 22.22 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8.908108475544432e-2 0.0 1.0765106473138695e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-08 17.0 4.0 2.143 0.0 0.0 0.0 2.27 null null null null null null null null 63191.0 3231.0 0.43300944821394477 2.2e-2 null null null null null 22.22 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.11649064929558105 2.7409564540136717e-2 1.4684674202378244e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-09 17.0 0.0 2.0 0.0 0.0 0.0 2.27 null null null null null null null null 63191.0 null 0.43300944821394477 null null null null null null 22.22 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.11649064929558105 0.0 1.3704782270068359e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-10 20.0 3.0 2.429 0.0 0.0 0.0 2.27 null null null null null null null null 70601.0 null 0.4837856665245481 null null null null null null 31.94 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.13704782270068358 2.0557173405102536e-2 1.664445806699802e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-11 20.0 0.0 2.429 0.0 0.0 0.0 2.27 null null null null null null null null 76963.0 6362.0 0.5273805789256355 4.4e-2 4364.0 3.0e-2 1.0e-3 1796.6 null 31.94 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.13704782270068358 0.0 1.664445806699802e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-12 28.0 8.0 3.429 0.0 0.0 0.0 2.27 null null null null null null null null 76963.0 null 0.5273805789256355 null 4934.0 3.4e-2 1.0e-3 1438.9 null 31.94 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.191866951780957 5.4819129080273435e-2 2.3496849202032197e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-13 45.0 17.0 4.571 0.0 0.0 0.0 2.27 null null null null null null null null 94852.0 null 0.649963003940262 null 5595.0 3.8e-2 1.0e-3 1224.0 null 31.94 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.3083576010765381 0.11649064929558105 3.132227987824123e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-14 59.0 14.0 6.571 0.0 0.0 0.0 2.27 null null null null null null null null 104883.0 10031.0 0.7186993394157898 6.9e-2 6418.0 4.4e-2 1.0e-3 976.7 null 35.65 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.40429107696701655 9.59334758904785e-2 4.5027062148309586e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-15 63.0 4.0 6.571 0.0 0.0 0.0 2.27 null null null null null null null null 109939.0 5056.0 0.7533450289945226 3.5e-2 6678.0 4.6e-2 1.0e-3 1016.3 null 35.65 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.43170064150715326 2.7409564540136717e-2 4.5027062148309586e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-16 90.0 27.0 10.429 0.0 0.0 0.0 2.27 null null null null null null null null 116061.0 6122.0 0.7952953675232018 4.2e-2 7024.0 4.8e-2 1.0e-3 673.5 null 50.46 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.6167152021530762 0.18501456064592284 7.146358714727145e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-17 114.0 24.0 13.429 0.0 0.0 0.0 2.27 null null null null null null null null 122854.0 6793.0 0.841843660503489 4.7e-2 7465.0 5.1e-2 2.0e-3 555.9 null 60.65 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 0.7811725893938963 0.1644573872408203 9.2020760552374e-2 0.0 0.0 0.0
RUS Europe Russia 2020-03-18 147.0 33.0 18.143 0.0 0.0 0.0 2.27 null null null null null null null null 133101.0 10247.0 0.9120601124641843 7.0e-2 8020.0 5.5e-2 2.0e-3 442.0 null 60.65 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.0073014968500242 0.2261289074561279 0.12432293236292512 0.0 0.0 0.0
RUS Europe Russia 2020-03-19 199.0 52.0 24.429 1.0 1.0 0.143 2.29 null null null null null null null null 143519.0 10418.0 0.9834483233089704 7.1e-2 8230.0 5.6e-2 3.0e-3 336.9 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.3636258358718016 0.3563243390217773 0.16739706303774995 6.852391135034179e-3 6.852391135034179e-3 9.798919323098876e-4
RUS Europe Russia 2020-03-20 253.0 54.0 29.714 1.0 0.0 0.143 2.26 null null null null null null null null 156016.0 12497.0 1.0690826553234927 8.6e-2 8738.0 6.0e-2 3.0e-3 294.1 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1.7336549571636475 0.3700291212918457 0.20361195018640557 6.852391135034179e-3 0.0 9.798919323098876e-4
RUS Europe Russia 2020-03-21 306.0 53.0 35.286 1.0 0.0 0.143 2.23 null null null null null null null null 163529.0 7513.0 1.1205646699210041 5.1e-2 8378.0 5.7e-2 4.0e-3 237.4 null 69.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2.0968316873204587 0.36317673015681146 0.24179347359081607 6.852391135034179e-3 0.0 9.798919323098876e-4
RUS Europe Russia 2020-03-22 367.0 61.0 43.429 1.0 0.0 0.143 2.23 null null null null null null null null 165772.0 2243.0 1.135934583236886 1.5e-2 7976.0 5.5e-2 5.0e-3 183.7 null 69.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2.5148275465575436 0.41799585923708493 0.29759249460339937 6.852391135034179e-3 0.0 9.798919323098876e-4
RUS Europe Russia 2020-03-23 438.0 71.0 49.714 1.0 0.0 0.143 2.27 null null null null null null null null 185918.0 20146.0 1.2739828550432846 0.138 9980.0 6.8e-2 5.0e-3 200.7 null 69.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3.0013473171449707 0.48651977058742674 0.3406597728870892 6.852391135034179e-3 0.0 9.798919323098876e-4
RUS Europe Russia 2020-03-24 495.0 57.0 54.429 1.0 0.0 0.143 2.33 null null null null null null null null 192824.0 6906.0 1.3213054682218306 4.7e-2 9996.0 6.8e-2 5.0e-3 183.7 null 69.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3.3919336118419188 0.39058629469694817 0.3729687970887754 6.852391135034179e-3 0.0 9.798919323098876e-4
RUS Europe Russia 2020-03-25 658.0 163.0 73.0 3.0 2.0 0.429 2.51 null null null null null null null null 197251.0 4427.0 1.3516410037766269 3.0e-2 9164.0 6.3e-2 8.0e-3 125.5 null 69.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4.50887336685249 1.116939755010571 0.5002245528574951 2.0557173405102536e-2 1.3704782270068359e-2 2.9396757969296626e-3
RUS Europe Russia 2020-03-26 840.0 182.0 91.571 3.0 0.0 0.286 2.54 null null null null null null null null 223509.0 26258.0 1.5315710902003543 0.18 11427.0 7.8e-2 8.0e-3 124.8 null 69.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5.75600855342871 1.2471351865762206 0.6274803086262148 2.0557173405102536e-2 0.0 1.959783864619775e-3
RUS Europe Russia 2020-03-27 1036.0 196.0 111.857 4.0 1.0 0.429 2.51 null null null null null null null null 243377.0 19868.0 1.6677143972712134 0.136 12480.0 8.6e-2 9.0e-3 111.6 null 69.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7.099077215895409 1.343068662466699 0.7664879151915182 2.7409564540136717e-2 6.852391135034179e-3 2.9396757969296626e-3
RUS Europe Russia 2020-03-28 1264.0 228.0 136.857 4.0 0.0 0.429 2.48 null null null null null null null null 263888.0 20511.0 1.8082637918418993 0.141 14337.0 9.8e-2 1.0e-2 104.8 null 71.76 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8.661422394683203 1.5623451787877927 0.9377976935673726 2.7409564540136717e-2 0.0 2.9396757969296626e-3
RUS Europe Russia 2020-03-29 1534.0 270.0 166.714 8.0 4.0 1.0 2.45 null null null null null null null null 343523.0 79635.0 2.3539539598803465 0.546 25393.0 0.174 7.0e-3 152.3 null 71.76 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10.51156800114243 1.8501456064592283 1.142389535686088 5.4819129080273435e-2 2.7409564540136717e-2 6.852391135034179e-3
RUS Europe Russia 2020-03-30 1836.0 302.0 199.714 9.0 1.0 1.143 2.44 null null null null null null null null 343523.0 null 2.3539539598803465 null 27013.0 0.185 7.0e-3 135.3 null 87.04 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 12.580990123922753 2.069422122780322 1.368518443142216 6.167152021530761e-2 6.852391135034179e-3 7.832283067344067e-3
RUS Europe Russia 2020-03-31 2337.0 501.0 263.143 17.0 8.0 2.286 2.45 null null null null null null null null 406500.0 null 2.7854969963913936 null 30525.0 0.209 9.0e-3 116.0 null 87.04 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 16.014038082574878 3.4330479586521236 1.8031587604462989 0.11649064929558105 5.4819129080273435e-2 1.5664566134688133e-2
RUS Europe Russia 2020-04-01 2777.0 440.0 302.714 24.0 7.0 3.0 2.39 null null null null null null null null 536000.0 129500.0 3.67288164837832 0.887 48393.0 0.332 6.0e-3 159.9 null 87.04 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 19.029090181989915 3.0150520994150387 2.0743147300507365 0.1644573872408203 4.796673794523925e-2 2.0557173405102536e-2
RUS Europe Russia 2020-04-02 3548.0 771.0 386.857 30.0 6.0 3.857 2.36 null null null null null null null null 575103.0 39103.0 3.940830698931561 0.268 50228.0 0.344 8.0e-3 129.8 null 87.04 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 24.31228374710127 5.283193565111351 2.6508954773259172 0.20557173405102536 4.111434681020507e-2 2.642967260782683e-2
RUS Europe Russia 2020-04-03 4149.0 601.0 444.714 34.0 4.0 4.286 2.23 null null null null null null null null 639606.0 64503.0 4.38283048431467 0.442 56604.0 0.388 8.0e-3 127.3 null 87.04 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 28.430570819256808 4.118287072155542 3.04735427122559 0.2329812985911621 2.7409564540136717e-2 2.936934840475649e-2
RUS Europe Russia 2020-04-04 4731.0 582.0 495.286 43.0 9.0 5.571 2.13 null null null null null null null null 697004.0 57398.0 4.776144030683363 0.393 61874.0 0.424 8.0e-3 124.9 null 87.04 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 32.4186624598467 3.9880916405898925 3.393893395706538 0.2946528188064697 6.167152021530761e-2 3.817467101327541e-2
RUS Europe Russia 2020-04-05 5389.0 658.0 550.714 45.0 2.0 5.286 2.1 null null null null null null null null 758401.0 61397.0 5.196860289201057 0.421 59268.0 0.406 9.0e-3 107.6 null 87.04 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 36.92753582669919 4.50887336685249 3.773707731539213 0.3083576010765381 1.3704782270068359e-2 3.6221739539790666e-2
RUS Europe Russia 2020-04-06 6343.0 954.0 643.857 47.0 2.0 5.429 2.11 null null null null null null null null 795523.0 37122.0 5.451234752915795 0.254 60073.0 0.412 1.1e-2 93.3 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 43.4647169695218 6.5371811428226065 4.411959999029701 0.3220623833466064 1.3704782270068359e-2 3.720163147210056e-2
RUS Europe Russia 2020-04-07 7497.0 1154.0 737.143 58.0 11.0 5.857 2.12 null null null null null null null null 910221.0 114698.0 6.237190311321946 0.786 71960.0 0.493 1.0e-2 97.6 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 51.37237633935124 7.9076593698294415 5.0511921584525 0.3974386858319824 7.537630248537597e-2 4.013445487789519e-2
RUS Europe Russia 2020-04-08 8672.0 1175.0 842.143 63.0 5.0 5.571 2.1 null null null null null null null null 1004719.0 94498.0 6.884727568800406 0.648 66960.0 0.459 1.3e-2 79.5 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 59.4239359230164 8.051559583665162 5.770693227631089 0.43170064150715326 3.4261955675170895e-2 3.817467101327541e-2
RUS Europe Russia 2020-04-09 10131.0 1459.0 940.429 76.0 13.0 6.571 2.09 null null null null null null null null 1092811.0 88092.0 7.488368408667836 0.604 73958.0 0.507 1.3e-2 78.6 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 69.42157458903128 9.997638666014867 6.444187342729057 0.5207817262625977 8.908108475544432e-2 4.5027062148309586e-2
RUS Europe Russia 2020-04-10 11917.0 1786.0 1109.714 94.0 18.0 8.571 2.08 null null null null null null null null 1184442.0 91631.0 8.116259860762153 0.628 77834.0 0.533 1.4e-2 70.1 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 81.65994515620231 12.238370567171042 7.604194376023319 0.6441247666932128 0.12334304043061523 5.873184441837794e-2
RUS Europe Russia 2020-04-11 13584.0 1667.0 1264.714 106.0 12.0 9.0 2.04 null null null null null null null null 1278747.0 94305.0 8.762474606751551 0.646 83106.0 0.569 1.5e-2 65.7 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 93.08288117830429 11.422936022101977 8.666315001953617 0.7263534603136229 8.222869362041015e-2 6.167152021530761e-2
RUS Europe Russia 2020-04-12 15770.0 2186.0 1483.0 130.0 24.0 12.143 2.04 null null null null null null null null 1359993.0 81246.0 9.319203976908538 0.557 85942.0 0.589 1.7e-2 58.0 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 108.062208199489 14.979327021184716 10.162096053255686 0.8908108475544433 0.1644573872408203 8.320858555272004e-2
RUS Europe Russia 2020-04-13 18328.0 2558.0 1712.143 148.0 18.0 14.429 2.02 null null null null null null null null 1426014.0 66021.0 9.77160569203463 0.452 90070.0 0.617 1.9e-2 52.6 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 125.59062472290643 17.52841652341743 11.732273515110824 1.0141538879850585 0.12334304043061523 9.887315168740816e-2
RUS Europe Russia 2020-04-14 21102.0 2774.0 1943.571 170.0 22.0 16.0 2.0 null null null null null null null null 1517992.0 91978.0 10.401874923852803 0.63 86824.0 0.595 2.2e-2 44.7 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 144.59915773149126 19.008533008584813 13.318108690709515 1.1649064929558106 0.15075260497075194 0.10963825816054687
RUS Europe Russia 2020-04-15 24490.0 3388.0 2259.714 198.0 28.0 19.286 1.97 null null null null null null null null 1613413.0 95421.0 11.0557369383489 0.654 86956.0 0.596 2.6e-2 38.5 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 167.81505889698704 23.2159011654958 15.484444181312623 1.3567734447367674 0.191866951780957 0.1321552154302692
RUS Europe Russia 2020-04-16 27938.0 3448.0 2543.857 232.0 34.0 22.286 1.93 null null null null null null null null 1718019.0 104606.0 11.772538165420286 0.717 89315.0 0.612 2.8e-2 35.1 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 191.44210353058492 23.627044633597848 17.43150315559464 1.5897547433279295 0.2329812985911621 0.15271238883537172
RUS Europe Russia 2020-04-17 32008.0 4070.0 2870.143 273.0 41.0 25.571 1.9 null null null null null null null null 1831892.0 113873.0 12.552840501140032 0.78 92493.0 0.634 3.1e-2 32.2 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 219.331335450174 27.889231919589108 19.667342449480405 1.8707027798643308 0.2809480365364014 0.175222493713959
RUS Europe Russia 2020-04-18 36793.0 4785.0 3315.571 313.0 40.0 29.571 1.86 null null null null null null null null 1949813.0 117921.0 13.360881316174398 0.808 95867.0 0.657 3.5e-2 28.9 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 252.12002703131256 32.78869158113854 22.719589327976408 2.144798425265698 0.27409564540136716 0.2026320582540957
RUS Europe Russia 2020-04-19 42853.0 6060.0 3869.0 361.0 48.0 33.0 1.8 null null null null null null null null 2053319.0 103506.0 14.070144912997245 0.709 99047.0 0.679 3.9e-2 25.6 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 293.64551730961966 41.525490278307124 26.51190130144724 2.4737131997473387 0.3289147744816406 0.2261289074561279
RUS Europe Russia 2020-04-20 47121.0 4268.0 4113.286 405.0 44.0 36.714 1.69 null null null null null null null null 2142604.0 89285.0 14.681960655488771 0.612 102370.0 0.701 4.0e-2 24.9 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 322.89152267394553 29.246005364325878 28.185844522260197 2.7752184096888426 0.30150520994150387 0.25157868813164486
RUS Europe Russia 2020-04-21 52763.0 5642.0 4523.0 456.0 51.0 40.857 1.63 null null null null null null null null 2252539.0 109935.0 15.435278274918755 0.753 104935.0 0.719 4.3e-2 23.2 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 361.5527134578084 38.661190783862835 30.99336510375959 3.1246903575755853 0.34947194788674313 0.2799681446040914
RUS Europe Russia 2020-04-22 57999.0 5236.0 4787.0 513.0 57.0 45.0 1.55 null null null null null null null null 2401616.0 149077.0 16.456812188156245 1.022 112600.0 0.772 4.3e-2 23.5 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 397.4318334408473 35.87911998303896 32.80239636340862 3.515276652272534 0.39058629469694817 0.3083576010765381
RUS Europe Russia 2020-04-23 62773.0 4774.0 4976.429 555.0 42.0 46.143 1.49 null null null null null null null null 2552000.0 150384.0 17.487302176607226 1.03 119140.0 0.816 4.2e-2 23.9 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 430.1451487195005 32.71331527865317 34.100437963727 3.8030770799439697 0.28780042767143554 0.3161898841438821
RUS Europe Russia 2020-04-24 68622.0 5849.0 5230.571 615.0 60.0 48.857 1.46 null null null null null null null null 2721500.0 169500.0 18.64878247399552 1.161 127087.0 0.871 4.1e-2 24.3 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 470.2247844683154 40.079635748814916 35.84191835156686 4.21422054804602 0.4111434681020507 0.3347872736843649
RUS Europe Russia 2020-04-25 74588.0 5966.0 5399.286 681.0 66.0 52.571 1.43 null null null null null null null null 2877699.0 156199.0 19.71911911689672 1.07 132555.0 0.908 4.1e-2 24.6 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 511.1061499799293 40.881365511613915 36.99801952191416 4.666478362958276 0.4522578149122558 0.3602370543598818
RUS Europe Russia 2020-04-26 80949.0 6361.0 5442.286 747.0 66.0 55.143 1.41 null null null null null null null null 3019434.0 141735.0 20.69034277442079 0.971 138016.0 0.946 3.9e-2 25.4 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 554.6942099898818 43.588060009952414 37.29267234072062 5.118736177870532 0.4522578149122558 0.37786140435918975
RUS Europe Russia 2020-04-27 87147.0 6198.0 5718.0 794.0 47.0 55.571 1.38 null null null null null null null null 3139258.0 119824.0 21.511423689785126 0.821 142379.0 0.976 4.0e-2 24.9 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 597.1653302448236 42.471120254941845 39.18197251012544 5.440798561217139 0.3220623833466064 0.38079422776498434
RUS Europe Russia 2020-04-28 93558.0 6411.0 5827.857 867.0 73.0 58.714 1.37 null null null null null null null null 3303717.0 164459.0 22.638361083461714 1.127 150168.0 1.029 3.9e-2 25.8 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 641.0960098115278 43.93067956670412 39.934755643046884 5.941023114074633 0.5002245528574951 0.40233129310239674
RUS Europe Russia 2020-04-29 99399.0 5841.0 5914.286 972.0 105.0 65.571 1.36 null null null null null null null null 3498308.0 194591.0 23.97177472681915 1.333 156670.0 1.074 3.8e-2 26.5 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 681.1208264312625 40.024816619734636 40.52700095645675 6.660524183253222 0.7195010691785888 0.44931813911532614
RUS Europe Russia 2020-04-30 106498.0 7099.0 6246.429 1073.0 101.0 74.0 1.38 null null null null null null null null 3723807.0 225499.0 25.516982075378223 1.545 167401.0 1.147 3.7e-2 26.8 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 729.76595109887 48.64512466760764 42.802974705220414 7.352615687891674 0.692091504638452 0.5070769439925292
RUS Europe Russia 2020-05-01 114431.0 7933.0 6544.143 1169.0 96.0 79.143 1.41 null null null null null null null null 3945518.0 221711.0 27.036232566317786 1.519 174860.0 1.198 3.7e-2 26.7 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 784.1259699730962 54.36001887422614 44.843027479595975 8.010445236854956 0.6578295489632812 0.5423187916000101
RUS Europe Russia 2020-05-02 124054.0 9623.0 7066.571 1222.0 53.0 77.286 1.43 null null null null null null null null 4099999.0 154481.0 28.094796801249 1.059 174614.0 1.197 4.0e-2 24.7 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 850.06652986553 65.94055989243391 48.42290847548961 8.373621967011767 0.36317673015681146 0.5295939012622516
RUS Europe Russia 2020-05-03 134687.0 10633.0 7676.857 1280.0 58.0 76.143 1.43 null null null null null null null null 4303243.0 203244.0 29.487504185097887 1.393 183401.0 1.257 4.2e-2 23.9 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 922.9280048043485 72.86147493881842 52.60482685172508 8.77106065284375 0.3974386858319824 0.5217616181949075
RUS Europe Russia 2020-05-04 145268.0 10581.0 8303.0 1356.0 76.0 80.286 1.41 null null null null null null null null 4460357.0 157114.0 30.564110765887648 1.077 188728.0 1.293 4.4e-2 22.7 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 995.433155404145 72.50515059979664 56.895403594188785 9.291842379106345 0.5207817262625977 0.5501510746673541
RUS Europe Russia 2020-05-05 155370.0 10102.0 8830.286 1451.0 95.0 83.429 1.37 null null null null null null null null 4633731.0 173374.0 31.752137226533062 1.188 190002.0 1.302 4.6e-2 21.5 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1064.6560106502604 69.22285524611529 60.50857350621642 9.942819536934595 0.650977157828247 0.5716881400047665
RUS Europe Russia 2020-05-06 165929.0 10559.0 9504.286 1537.0 86.0 80.714 1.34 null null null null null null null null 4803192.0 169461.0 32.91335028066709 1.161 186412.0 1.277 5.1e-2 19.6 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1137.0104086450863 72.35439799482589 65.12708513122946 10.532125174547533 0.5893056376129394 0.5530838980731487
RUS Europe Russia 2020-05-07 177160.0 11231.0 10094.571 1625.0 88.0 78.857 1.3 null null null null null null null null 4987468.0 184276.0 34.17608150946665 1.263 180523.0 1.237 5.6e-2 17.9 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1213.9696134826552 76.95920483756888 69.1719488323731 11.135135594430542 0.6030104198830077 0.5403590077353903
RUS Europe Russia 2020-05-08 187859.0 10699.0 10489.714 1723.0 98.0 79.143 1.26 null null null null null null null null 5221964.0 234496.0 35.78293982106762 1.607 182349.0 1.25 5.8e-2 17.4 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1287.2833462363858 73.31373275373068 71.87962322264393 11.80666992566389 0.6715343312333495 0.5423187916000101
RUS Europe Russia 2020-05-09 198676.0 10817.0 10660.286 1827.0 104.0 86.429 1.23 null null null null null null null null 5448463.0 226499.0 37.33499956076173 1.552 192638.0 1.32 5.5e-2 18.1 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1361.4056611440506 74.12231490766472 73.04844928332898 12.519318603707445 0.7126486780435546 0.5922453134098691
RUS Europe Russia 2020-05-10 209688.0 11012.0 10714.429 1915.0 88.0 90.714 1.2 null null null null null null null null 5636763.0 188300.0 38.62530481148867 1.29 190503.0 1.305 5.6e-2 17.8 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1436.864192323047 75.45853117899638 73.41945829655313 13.122329023590453 0.6030104198830077 0.6216078094234905
RUS Europe Russia 2020-05-11 221344.0 11656.0 10868.0 2009.0 94.0 93.286 1.16 null null null null null null null null 5805404.0 168641.0 39.78089890489196 1.156 192150.0 1.317 5.7e-2 17.7 null 85.19 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1516.7356633930053 79.87147106995839 74.47178685555146 13.766453790283665 0.6441247666932128 0.6392321594227984
RUS Europe Russia 2020-05-12 232243.0 10899.0 10981.857 2116.0 107.0 95.0 1.12 null null null null null null null null 5982558.0 177154.0 40.99482740402781 1.214 192690.0 1.32 5.7e-2 17.5 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1591.419874373743 74.6842109807375 75.25197955301304 14.499659641732322 0.7332058514486571 0.650977157828247
RUS Europe Russia 2020-05-13 242271.0 10028.0 10906.0 2212.0 96.0 96.429 1.09 null null null null null null null null 6188102.0 205544.0 42.40329528748727 1.408 197844.0 1.356 5.5e-2 18.1 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1660.1356526758657 68.71577830212276 74.73217771868276 15.157489190695603 0.6578295489632812 0.6607692247602108
RUS Europe Russia 2020-05-14 252245.0 9974.0 10726.429 2305.0 93.0 97.143 1.06 null null null null null null null null 6413948.0 225846.0 43.9508804157702 1.548 203783.0 1.396 5.3e-2 19.0 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1728.4814018566965 68.34574918083091 73.50168699017352 15.794761566253783 0.6372723755581787 0.6656618320306253
RUS Europe Russia 2020-05-15 262843.0 10598.0 10712.0 2418.0 113.0 99.286 1.03 null null null null null null null null 6656340.0 242392.0 45.611845207773406 1.661 204911.0 1.404 5.2e-2 19.1 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1801.1030431057889 72.62164124909224 73.40281383848613 16.569081764512646 0.7743201982588622 0.6803465062330035
RUS Europe Russia 2020-05-16 272043.0 9200.0 10481.0 2537.0 119.0 101.429 1.0 null null null null null null null null 6916088.0 259748.0 47.39174010031626 1.78 209661.0 1.437 5.0e-2 20.0 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1864.1450415481033 63.041998442314444 71.81991148629324 17.384516309581713 0.8154345450690673 0.6950311804353817
RUS Europe Russia 2020-05-17 281752.0 9709.0 10294.857 2631.0 94.0 102.286 0.99 null null null null null null null null 7147014.0 230926.0 48.97413537556517 1.582 215750.0 1.478 4.8e-2 21.0 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1930.67490707815 66.52986553004685 70.54438684324457 18.028641076274926 0.6441247666932128 0.7009036796381061
RUS Europe Russia 2020-05-18 290678.0 8926.0 9904.857 2722.0 91.0 101.857 0.97 null null null null null null null null 7352316.0 205302.0 50.380944980369954 1.407 220987.0 1.514 4.5e-2 22.3 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 1991.8393503494651 61.16444327131508 67.87195430058124 18.652208669563034 0.6235675932881103 0.6979640038411763
RUS Europe Russia 2020-05-19 299941.0 9263.0 9671.143 2837.0 115.0 103.0 0.96 null null null null null null null null 7578029.0 225713.0 51.92761874063193 1.547 227924.0 1.562 4.2e-2 23.6 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2055.313049433287 63.4736990838216 66.27045455884785 19.44023365009197 0.7880249805289306 0.7057962869085204
RUS Europe Russia 2020-05-20 308705.0 8764.0 9490.571 2972.0 135.0 108.571 0.96 null null null null null null null null 7840880.0 262851.0 53.728776602866795 1.801 236111.0 1.618 4.0e-2 24.9 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2115.3674053407262 60.05435590743954 65.03310458681246 20.36530645332158 0.9250728032296142 0.7439709579217959
RUS Europe Russia 2020-05-21 317554.0 8849.0 9329.857 3099.0 127.0 113.429 0.95 null null null null null null null null 8126626.0 285746.0 55.68681996013827 1.958 244668.0 1.677 3.8e-2 26.2 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2176.0042144946437 60.636809153917454 63.93182939793658 21.235560127470922 0.8702536741493407 0.7772598740557919
RUS Europe Russia 2020-05-22 326448.0 8894.0 9086.429 3249.0 150.0 118.714 0.95 null null null null null null null null 8402747.0 276121.0 57.57890905273504 1.892 249487.0 1.71 3.6e-2 27.5 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2236.9493812496376 60.94516675499399 62.26376552871748 22.263418797726047 1.027858670255127 0.8134747612044475
RUS Europe Russia 2020-05-23 335882.0 9434.0 9119.857 3388.0 139.0 121.571 0.96 null null null null null null null null 8685305.0 282558.0 59.51510698706803 1.936 252745.0 1.732 3.6e-2 27.7 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2301.59483921755 64.64545796791244 62.4928272595794 23.2159011654958 0.9524823677697509 0.8330520426772401
RUS Europe Russia 2020-05-24 344481.0 8599.0 8961.286 3541.0 153.0 130.0 0.95 null null null null null null null null 8945384.0 260079.0 61.297270021076585 1.782 256910.0 1.76 3.5e-2 28.7 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2360.518550587709 58.923711370158905 61.4062367449059 24.264317009156027 1.0484158436602293 0.8908108475544433
RUS Europe Russia 2020-05-25 353427.0 8946.0 8964.143 3633.0 92.0 130.143 0.96 null null null null null null null null 9160590.0 215206.0 62.771945707682754 1.475 258325.0 1.77 3.5e-2 28.8 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2421.820041681725 61.301491094015766 61.425814026378696 24.894736993579173 0.6304199844231445 0.8917907394867531
RUS Europe Russia 2020-05-26 362342.0 8915.0 8914.429 3807.0 174.0 138.571 0.96 null null null null null null null null 9415992.0 255402.0 64.52206010835275 1.75 262566.0 1.799 3.4e-2 29.5 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2482.9091086505546 61.089066968829705 61.0851542534916 26.08705305107512 1.1923160574959473 0.9495426919728212
RUS Europe Russia 2020-05-27 370680.0 8338.0 8853.571 3968.0 161.0 142.286 0.95 null null null null null null null null 9701280.0 285288.0 66.47696507048438 1.955 265771.0 1.821 3.3e-2 30.0 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2540.044345934469 57.13523728391498 60.66813143379569 27.190288023815622 1.1032349727405029 0.9749993250394732
RUS Europe Russia 2020-05-28 379051.0 8371.0 8785.286 4142.0 174.0 149.0 0.96 null null null null null null null null 1.0000061e7 298781.0 68.52432934620101 2.047 267634.0 1.834 3.3e-2 30.5 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2597.4057121258406 57.36136619137111 60.200215905139885 28.38260408131157 1.1923160574959473 1.0210062791200927
RUS Europe Russia 2020-05-29 387623.0 8572.0 8739.286 4374.0 232.0 160.714 0.97 null null null null null null null null 1.03162e7 316139.0 70.6906374272396 2.166 273350.0 1.873 3.2e-2 31.3 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2656.1444089353536 58.73869680951298 59.88500591292831 29.9723588246395 1.5897547433279295 1.101275188875883
RUS Europe Russia 2020-05-30 396575.0 8952.0 8670.429 4555.0 181.0 166.714 0.97 null null null null null null null null 1.0643124e7 326924.0 72.93084854666951 2.24 279688.0 1.917 3.1e-2 32.3 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2717.4870143761796 61.34260544082597 59.413170816543264 31.212641620080685 1.2402827954411864 1.142389535686088
RUS Europe Russia 2020-05-31 405843.0 9268.0 8766.0 4693.0 138.0 164.571 0.98 null null null null null null null null 1.0923108e7 279984.0 74.84940842622093 1.919 282532.0 1.936 3.1e-2 32.2 null 78.24 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2780.9949754156764 63.50796103949678 60.06806068970961 32.1582715967154 0.9456299766347167 1.1277048614837097
RUS Europe Russia 2020-06-01 414328.0 8485.0 8700.143 4849.0 156.0 173.714 0.98 null null null null null null null null 1.1151622e7 228514.0 76.41527573405212 1.566 284433.0 1.949 3.1e-2 32.7 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2839.1375141964413 58.14253878076501 59.61678276672967 33.227244613780734 1.068973017065332 1.1903562736313273
RUS Europe Russia 2020-06-02 423186.0 8858.0 8692.0 5031.0 182.0 174.857 0.98 null null null null null null null null 1.1426045e7 274423.0 78.29572946650161 1.88 287150.0 1.968 3.0e-2 33.0 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2899.8359948705743 60.69848067413276 59.56098374571708 34.47437980035695 1.2471351865762206 1.1981885566986716
RUS Europe Russia 2020-06-03 431715.0 8529.0 8719.286 5208.0 177.0 177.143 0.98 null null null null null null null null 1.1733051e7 307006.0 80.39945465930391 2.104 290253.0 1.989 3.0e-2 33.3 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 2958.280038861281 58.44404399070652 59.74795809022763 35.68725303125801 1.2128732309010497 1.2138531228333596
RUS Europe Russia 2020-06-04 440538.0 8823.0 8783.857 5376.0 168.0 176.286 0.99 null null null null null null null null 1.2053663e7 320612.0 82.59641348588949 2.197 293372.0 2.01 3.0e-2 33.4 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3018.738685845687 60.45864698440656 60.19042383820791 36.83845474194375 1.1512017106857422 1.2079806236306354
RUS Europe Russia 2020-06-05 449256.0 8718.0 8804.714 5520.0 144.0 163.714 0.99 null null null null null null null null 1.2388968e7 335305.0 84.89405449542211 2.298 296110.0 2.029 3.0e-2 33.6 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3078.477831760915 59.73914591522797 60.333344160111324 37.82519906538867 0.9867443234449218 1.1218323622809856
RUS Europe Russia 2020-06-06 458102.0 8846.0 8789.571 5717.0 197.0 166.0 0.99 null null null null null null null null 1.2721549e7 332581.0 87.17302959150292 2.279 296918.0 2.035 3.0e-2 33.8 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3139.0940837414278 60.616251980512345 60.2295784011535 39.1751201189904 1.3499210536017332 1.1374969284156737
RUS Europe Russia 2020-06-07 467073.0 8971.0 8747.143 5851.0 134.0 165.429 0.99 null null null null null null null null 1.3016023e7 294474.0 89.19088061860097 2.018 298988.0 2.049 2.9e-2 34.2 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3200.566884613819 61.47280087239162 59.938845150076276 40.09334053108498 0.91822041209458 1.1335842130775693
RUS Europe Russia 2020-06-08 476043.0 8970.0 8816.429 5963.0 112.0 159.143 0.99 null null null null null null null null 1.3254678e7 238655.0 90.82623802493256 1.635 300437.0 2.059 2.9e-2 34.1 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3262.0328330950756 61.46594848125658 60.413619922258256 40.86080833820881 0.767467807123828 1.0905100824027445
RUS Europe Russia 2020-06-09 484630.0 8587.0 8777.714 6134.0 171.0 157.571 0.98 null null null null null null null null 1.3545303e7 290625.0 92.81771419855187 1.991 302751.0 2.075 2.9e-2 34.5 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3320.8743157716144 58.8414826765385 60.148329599465406 42.032567222299654 1.1717588840908446 1.0797381235384707
RUS Europe Russia 2020-06-10 493023.0 8393.0 8758.286 6350.0 216.0 163.143 0.98 null null null null null null null null 1.3875097e7 329794.0 95.07759168053934 2.26 306007.0 2.097 2.9e-2 34.9 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3378.386434567956 57.512118796341866 60.01520134449396 43.51268370746704 1.4801164851673827 1.1179196469428812
RUS Europe Russia 2020-06-11 501800.0 8777.0 8751.714 6522.0 172.0 163.714 0.98 null null null null null null null null 1.4218674e7 343577.0 97.43191566954097 2.354 309287.0 2.119 2.8e-2 35.3 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3438.529871560151 60.14343699219499 59.970167429954515 44.69129498269292 1.1786112752258788 1.1218323622809856
RUS Europe Russia 2020-06-12 510761.0 8961.0 8786.429 6705.0 183.0 169.286 0.98 null null null null null null null null 1.4574117e7 355443.0 99.86755013175093 2.436 312164.0 2.139 2.8e-2 35.5 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3499.9341485211926 61.40427696104128 60.20804818820723 45.94528256040417 1.2539875777112548 1.1600138856853959
RUS Europe Russia 2020-06-13 519458.0 8697.0 8765.143 6819.0 114.0 157.429 0.98 null null null null null null null null 1.4880172e7 306055.0 101.96475870058381 2.097 308375.0 2.113 2.8e-2 35.2 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3559.529394222585 59.59524570139226 60.06218819050689 46.72645514979806 0.7811725893938963 1.0787650839972958
RUS Europe Russia 2020-06-14 528267.0 8809.0 8742.0 6938.0 119.0 155.286 0.97 null null null null null null null null 1.5161152e7 280980.0 103.89014356170571 1.925 306447.0 2.1 2.9e-2 35.1 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3619.8921077311006 60.36271350851608 59.903603302468795 47.54188969486713 0.8154345450690673 1.0640804097949177
RUS Europe Russia 2020-06-15 536484.0 8217.0 8634.429 7081.0 143.0 159.714 0.96 null null null null null null null null 1.5395417e7 234265.0 105.49541897095449 1.605 305820.0 2.096 2.8e-2 35.4 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3676.1982056876764 56.30609795657585 59.166484735682026 48.52178162717702 0.9798919323098875 1.094422797740849
RUS Europe Russia 2020-06-16 544725.0 8241.0 8585.0 7274.0 193.0 162.857 0.95 null null null null null null null null 1.5679724e7 284307.0 107.44360173738265 1.948 304917.0 2.089 2.8e-2 35.5 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3732.6687610314934 56.47055534381667 58.82777789426843 49.84429311623862 1.3225114890615965 1.1159598630782614
RUS Europe Russia 2020-06-17 552549.0 7824.0 8503.714 7468.0 194.0 159.714 0.94 null null null null null null null null 1.5991697e7 311973.0 109.58136275695269 2.138 302371.0 2.072 2.8e-2 35.6 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3786.2818692720007 53.613108240507415 58.27077442846604 51.17365699643525 1.3293638801966305 1.094422797740849
RUS Europe Russia 2020-06-18 560321.0 7772.0 8360.143 7650.0 182.0 161.143 0.94 null null null null null null null null 1.6321964e7 330267.0 111.844481419947 2.263 300470.0 2.059 2.8e-2 35.9 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3839.538653173486 53.25678390148564 57.28696978081805 52.42079218301147 1.2471351865762206 1.1042148646728127
RUS Europe Russia 2020-06-19 568292.0 7971.0 8218.714 7831.0 181.0 160.857 0.94 null null null null null null null null 1.6661287e7 339323.0 114.1696553370602 2.325 298167.0 2.043 2.8e-2 36.3 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3894.1590629108437 54.62040973735744 56.3178429549813 53.66107497845266 1.2402827954411864 1.102255080808193
RUS Europe Russia 2020-06-20 576162.0 7870.0 8100.571 7992.0 161.0 167.571 0.93 null null null null null null null null 1.6998453e7 337166.0 116.48004864649515 2.31 302612.0 2.074 2.7e-2 37.4 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 3948.087381143562 53.928318232718986 55.50828090911496 54.764309951193155 1.1032349727405029 1.1482620348888124
RUS Europe Russia 2020-06-21 583879.0 7717.0 7944.571 8101.0 109.0 166.143 0.93 null null null null null null null null 1.7289691e7 291238.0 118.47572533588023 1.996 304077.0 2.084 2.6e-2 38.3 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4000.9672835326214 52.87990238905876 54.43930789204962 55.51122058491189 0.7469106337187255 1.1384768203479836
RUS Europe Russia 2020-06-22 591465.0 7586.0 7854.429 8196.0 95.0 159.286 0.92 null null null null null null null null 1.7522752e7 233061.0 120.07275046620244 1.597 303905.0 2.082 2.6e-2 38.7 null 74.54 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4052.949522682991 51.98223915036929 53.82161965035537 56.16219774274013 0.650977157828247 1.0914899743350541
RUS Europe Russia 2020-06-23 598878.0 7413.0 7736.143 8349.0 153.0 153.571 0.92 null null null null null null null null 1.7803955e7 281203.0 121.99966341054746 1.927 303462.0 2.079 2.5e-2 39.2 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4103.746298166999 50.79677548400837 53.01107771255672 57.21061358640036 1.0484158436602293 1.052328558998334
RUS Europe Russia 2020-06-24 606043.0 7165.0 7642.0 8503.0 154.0 147.857 0.91 null null null null null null null null 1.811583e7 311875.0 124.13675289578623 2.137 303448.0 2.079 2.5e-2 39.7 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4152.843680649519 49.09738248251989 52.3659730539312 58.26588182119563 1.0552682347952635 1.0131739960527486
RUS Europe Russia 2020-06-25 613148.0 7105.0 7546.714 8594.0 91.0 134.857 0.91 null null null null null null null null 1.8402719e7 286889.0 126.10262853612505 1.966 297251.0 2.037 2.5e-2 39.4 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4201.529919663937 48.68623901441784 51.71303611223833 58.889449414483735 0.6235675932881103 0.9240929112973043
RUS Europe Russia 2020-06-26 619936.0 6788.0 7377.714 8770.0 176.0 134.143 0.91 null null null null null null null null 1.8707946e7 305227.0 128.19416332509815 2.092 292380.0 2.004 2.5e-2 39.6 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4248.043950688549 46.51403102461201 50.554982010417554 60.095470254249754 1.2060208397660155 0.9192003040268899
RUS Europe Russia 2020-06-27 626779.0 6843.0 7231.0 8958.0 188.0 138.0 0.91 null null null null null null null null 1.9044954e7 337008.0 130.50347395673373 2.309 292357.0 2.003 2.5e-2 40.4 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4294.934863225588 46.890912537038886 49.54964029743215 61.38371978763617 1.2882495333864257 0.9456299766347167
RUS Europe Russia 2020-06-28 633563.0 6784.0 7097.714 9060.0 102.0 137.0 0.91 null null null null null null null null 1.9334442e7 289488.0 132.4871589616325 1.984 292107.0 2.002 2.4e-2 41.2 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4341.421484685659 46.486621460071866 48.636312492607985 62.08266368340967 0.6989438957734863 0.9387775854996826
RUS Europe Russia 2020-06-29 640246.0 6683.0 6968.714 9152.0 92.0 136.571 0.91 null null null null null null null null 1.956244e7 227998.0 134.049490435638 1.562 291384.0 1.997 2.4e-2 41.8 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4387.216014641093 45.79452995543342 47.75235403618858 62.7130836678328 0.6304199844231445 0.9358379097027528
RUS Europe Russia 2020-06-30 646929.0 6683.0 6864.429 9306.0 154.0 136.714 0.92 null null null null null null null null 1.9852167e7 289727.0 136.03481316201808 1.985 292602.0 2.005 2.3e-2 42.6 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4433.010544596526 45.79452995543342 47.03775242667154 63.76835190262807 1.0552682347952635 0.9368178016350627
RUS Europe Russia 2020-07-01 653479.0 6550.0 6776.571 9521.0 215.0 145.429 0.92 null null null null null null null null 2.0168904e7 316737.0 138.2052189729554 2.17 293296.0 2.01 2.3e-2 43.3 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4477.893706531 44.88316193447387 46.435715046329705 65.24161599666041 1.4732640940323485 0.9965363903768856
RUS Europe Russia 2020-07-02 660231.0 6752.0 6726.143 9668.0 147.0 153.429 0.93 null null null null null null null null 2.045111e7 282206.0 140.13900486560885 1.934 292627.0 2.005 2.3e-2 43.5 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4524.161051474751 46.26734494375078 46.0901626661722 66.24891749351043 1.0073014968500242 1.051355519457159
RUS Europe Russia 2020-07-03 666941.0 6710.0 6715.0 9844.0 176.0 153.429 0.94 null null null null null null null null 2.0752406e7 301296.0 142.20360290503012 2.065 292066.0 2.001 2.3e-2 43.5 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4570.140595990831 45.97954451607934 46.01380647175451 67.45493833327646 1.2060208397660155 1.051355519457159
RUS Europe Russia 2020-07-04 673564.0 6623.0 6683.571 10011.0 167.0 150.429 0.94 null null null null null null null null 2.0752406e7 null 142.20360290503012 null 285564.0 1.957 2.3e-2 42.7 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4615.523982478162 45.383386487331364 45.79844267077152 68.59928765282716 1.144349319550708 1.0307983460520567
RUS Europe Russia 2020-07-05 680283.0 6719.0 6674.286 10145.0 134.0 155.0 0.95 null null null null null null null null 2.1335394e7 null 146.1984647080614 null 285850.0 1.959 2.3e-2 42.8 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4661.565198514456 46.04121603629465 45.73481821908273 69.51750806492176 0.91822041209458 1.0621206259302978
RUS Europe Russia 2020-07-06 686852.0 6569.0 6658.0 10280.0 135.0 161.143 0.95 null null null null null null null null 2.1537771e7 202377.0 147.58523106879622 1.387 282190.0 1.934 2.4e-2 42.4 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4706.5785558804955 45.01335736603952 45.62322017705756 70.44258086815137 0.9250728032296142 1.1042148646728127
RUS Europe Russia 2020-07-07 693215.0 6363.0 6612.286 10478.0 198.0 167.429 0.95 null null null null null null null null 2.1790705e7 252934.0 149.31843376814496 1.733 276934.0 1.898 2.4e-2 41.9 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4750.180320672718 43.60176479222248 45.30996996871061 71.79935431288813 1.3567734447367674 1.1472889953476375
RUS Europe Russia 2020-07-08 699749.0 6534.0 6610.0 10650.0 172.0 161.286 0.96 null null null null null null null null 2.2079294e7 288589.0 151.29595847341335 1.978 272913.0 1.87 2.4e-2 41.3 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4794.953844349032 44.773523676313324 45.29430540257593 72.97796558811402 1.1786112752258788 1.1051947566051226
RUS Europe Russia 2020-07-09 706240.0 6491.0 6572.714 10826.0 176.0 165.429 0.96 null null null null null null null null 2.2388195e7 308901.0 153.41266894741653 2.117 276726.0 1.896 2.4e-2 42.1 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4839.432715206538 44.478870857506855 45.03880714671504 74.18398642788001 1.2060208397660155 1.1335842130775693
RUS Europe Russia 2020-07-10 712863.0 6623.0 6560.286 11000.0 174.0 165.143 0.96 null null null null null null null null 2.2708416e7 320221.0 155.60694848906832 2.194 279430.0 1.915 2.3e-2 42.6 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4884.816101693869 45.383386487331364 44.95364562968883 75.37630248537597 1.1923160574959473 1.1316244292129494
RUS Europe Russia 2020-07-11 719449.0 6586.0 6555.0 11188.0 188.0 168.143 0.97 null null null null null null null null 2.3031056e7 322640.0 157.81780396487574 2.211 283879.0 1.945 2.3e-2 43.3 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4929.945949709205 45.12984801533511 44.917423890149045 76.6645520187624 1.2882495333864257 1.1521816026180518
RUS Europe Russia 2020-07-12 726036.0 6587.0 6536.143 11318.0 130.0 167.571 0.97 null null null null null null null null 2.329263e7 261574.0 159.61021132363118 1.792 279605.0 1.916 2.3e-2 42.8 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 4975.082650115675 45.13670040647013 44.7882083505157 77.55536286631684 0.8908108475544433 1.1482620348888124
RUS Europe Russia 2020-07-13 732547.0 6511.0 6527.857 11422.0 104.0 163.143 0.96 null null null null null null null null 2.3495752e7 203122.0 161.0020827157616 1.392 279712.0 1.917 2.3e-2 42.8 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5019.698568795883 44.61591868020754 44.73142943757081 78.26801154436039 0.7126486780435546 1.1179196469428812
RUS Europe Russia 2020-07-14 738787.0 6240.0 6510.286 11597.0 175.0 159.857 0.96 null null null null null null null null 2.3754645e7 258893.0 162.77611881388398 1.774 280563.0 1.923 2.3e-2 43.1 null 70.83 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5062.457489478496 42.75892068261328 44.61102607293713 79.46717999299138 1.1991684486309813 1.0954026896731588
RUS Europe Russia 2020-07-15 745197.0 6410.0 6492.571 11753.0 156.0 157.571 0.96 null null null null null null null null 2.4053516e7 298871.0 164.82409980480278 2.048 282032.0 1.933 2.3e-2 43.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5106.381316654065 43.92382717556909 44.48963596397999 80.53615301005671 1.068973017065332 1.0797381235384707
RUS Europe Russia 2020-07-16 751612.0 6415.0 6481.714 11920.0 167.0 156.286 0.96 null null null null null null null null 2.4364568e7 311052.0 166.95554977213746 2.131 282339.0 1.935 2.3e-2 43.6 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5150.339405785309 43.95808913124426 44.41523955342693 81.6805023296074 1.144349319550708 1.0709328009299517
RUS Europe Russia 2020-07-17 758001.0 6389.0 6448.286 12106.0 186.0 158.0 0.96 null null null null null null null null 2.467693e7 312362.0 169.095976371859 2.14 281216.0 1.927 2.3e-2 43.6 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5194.119332747043 43.779926961733366 44.18617782256501 82.95504708072377 1.2745447511163575 1.0826777993354004
RUS Europe Russia 2020-07-18 764215.0 6214.0 6395.143 12228.0 122.0 148.571 0.95 null null null null null null null null 2.499174e7 314810.0 171.2531776250791 2.157 280098.0 1.919 2.3e-2 43.8 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5236.700091260145 42.58075851310239 43.82202120047589 83.79103879919795 0.8359917184741699 1.0180666033231631
RUS Europe Russia 2020-07-19 770311.0 6096.0 6325.0 12323.0 95.0 143.571 0.95 null null null null null null null null 2.5251614e7 259874.0 173.03393591890497 1.781 279855.0 1.918 2.3e-2 44.2 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5278.472267619313 41.772176359168355 43.341373929091176 84.44201595702619 0.650977157828247 0.9838046476479921
RUS Europe Russia 2020-07-20 776212.0 5901.0 6237.857 12408.0 85.0 140.857 0.94 null null null null null null null null 2.5449167e7 197553.0 174.38764634480438 1.354 279059.0 1.912 2.2e-2 44.7 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5318.90822770715 40.43596008783669 42.744236008410894 85.0244692035041 0.5824532464779053 0.9652072581075094
RUS Europe Russia 2020-07-21 782040.0 5828.0 6179.0 12561.0 153.0 137.714 0.94 null null null null null null null null 2.5704372e7 255205.0 176.13641082442078 1.749 278532.0 1.909 2.2e-2 45.1 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5358.84396324213 39.935735534979194 42.34092482337619 86.07288504716432 1.0484158436602293 0.9436701927700969
RUS Europe Russia 2020-07-22 787890.0 5850.0 6099.0 12726.0 165.0 139.0 0.94 null null null null null null null null 2.6000908e7 296536.0 178.16839148203928 2.032 278199.0 1.906 2.2e-2 45.6 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5398.930451382079 40.08648813994994 41.79273353257346 87.20352958444496 1.1306445372806395 0.9524823677697509
RUS Europe Russia 2020-07-23 793720.0 5830.0 6015.429 12873.0 147.0 136.143 0.94 null null null null null null null null 2.6300652e7 299744.0 180.22235461041893 2.054 276583.0 1.895 2.2e-2 46.0 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5438.879891699329 39.94944031724926 41.22007235302752 88.21083108129498 1.0073014968500242 0.9329050862969582
RUS Europe Russia 2020-07-24 799499.0 5779.0 5928.286 13026.0 153.0 131.429 0.94 null null null null null null null null 2.6610623e7 309971.0 182.34639714293664 2.124 276242.0 1.893 2.1e-2 46.6 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5478.479860068691 39.59996836936252 40.62293443234723 89.25924692495522 1.0484158436602293 0.9006029144864072
RUS Europe Russia 2020-07-25 805332.0 5833.0 5873.857 13172.0 146.0 134.857 0.94 null null null null null null null null 2.6902291e7 291668.0 184.34502036050978 1.999 272936.0 1.87 2.2e-2 46.5 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5518.449857559345 39.96999749065437 40.249965635258455 90.25969603067021 1.0004491057149902 0.9240929112973043
RUS Europe Russia 2020-07-26 811073.0 5741.0 5823.143 13249.0 77.0 132.286 0.94 null null null null null null null null 2.7141966e7 239675.0 185.98736720579907 1.642 270050.0 1.85 2.2e-2 46.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5557.789435065577 39.33957750623122 39.902453471236335 90.78733014806784 0.5276341173976318 0.9064754136891314
RUS Europe Russia 2020-07-27 816680.0 5607.0 5781.143 13334.0 85.0 132.286 0.94 null null null null null null null null 2.732757e7 185604.0 187.25919841002596 1.272 268343.0 1.839 2.2e-2 46.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5596.2107921597135 38.42135709413664 39.6146530435649 91.36978339454573 0.5824532464779053 0.9064754136891314
RUS Europe Russia 2020-07-28 822060.0 5380.0 5717.143 13483.0 149.0 131.714 0.93 null null null null null null null null 2.7569646e7 242076.0 188.91799784643052 1.659 266468.0 1.826 2.1e-2 46.6 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5633.076656466197 36.86586430648388 39.17610001092271 92.39078967366584 1.0210062791200927 0.9025558459598919
RUS Europe Russia 2020-07-29 827509.0 5449.0 5659.857 13650.0 167.0 132.0 0.94 null null null null null null null null 2.785785e7 288204.0 190.8928843811119 1.975 265277.0 1.818 2.1e-2 46.9 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5670.4153357609985 37.338679294801246 38.783553932361144 93.53513899321655 1.144349319550708 0.9045156298245116
RUS Europe Russia 2020-07-30 832993.0 5484.0 5610.429 13778.0 128.0 129.286 0.94 null null null null null null null null 2.8161461e7 303611.0 192.97334570601078 2.08 265830.0 1.822 2.1e-2 47.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5707.993848745526 37.57851298452744 38.44485394333868 94.41224505850091 0.877106065284375 0.8859182402840289
RUS Europe Russia 2020-07-31 838461.0 5468.0 5566.0 13939.0 161.0 130.429 0.94 null null null null null null null null 2.8478012e7 316551.0 195.14247697219696 2.169 266770.0 1.828 2.1e-2 47.9 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5745.462723471893 37.46887472636689 38.140409057600245 95.51548003124142 1.1032349727405029 0.893750523351373
RUS Europe Russia 2020-08-01 843890.0 5429.0 5508.286 14034.0 95.0 123.143 0.94 null null null null null null null null 2.879326e7 315248.0 197.30267957273423 2.16 270138.0 1.851 2.0e-2 49.0 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5782.664354943993 37.20163147210056 37.74493015563288 96.16645718906967 0.650977157828247 0.8438240015415139
RUS Europe Russia 2020-08-02 849277.0 5387.0 5457.714 14104.0 70.0 122.143 0.94 null null null null null null null null 2.90299e7 236640.0 198.92422941092872 1.622 269705.0 1.848 2.0e-2 49.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5819.578185988422 36.91383104442912 37.398391031151924 96.64612456852207 0.4796673794523925 0.8369716104064797
RUS Europe Russia 2020-08-03 854641.0 5364.0 5423.0 14183.0 79.0 121.286 0.94 null null null null null null null null 2.9201862e7 171962.0 200.10258029529146 1.178 267756.0 1.835 2.0e-2 49.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5856.3344120367465 36.756226048323335 37.160517125290355 97.18746346818976 0.5413388996677002 0.8310991112037555
RUS Europe Russia 2020-08-04 859762.0 5121.0 5386.0 14327.0 144.0 120.571 0.94 null null null null null null null null 2.943389e7 232028.0 201.69252690557119 1.59 266321.0 1.825 2.0e-2 49.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5891.4255070392555 35.09109500251003 36.90697865329409 98.17420779163469 0.9867443234449218 0.826199651542206
RUS Europe Russia 2020-08-05 864948.0 5186.0 5348.429 14465.0 138.0 116.429 0.94 null null null null null null null null 2.9716907e7 283017.0 203.63187008743515 1.939 265580.0 1.82 2.0e-2 49.7 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5926.962007465543 35.536500426287255 36.64952746595972 99.1198377682694 0.9456299766347167 0.7978170474608944
RUS Europe Russia 2020-08-06 870187.0 5239.0 5313.429 14579.0 114.0 114.429 0.95 null null null null null null null null 3.0038123e7 321216.0 205.83296775826628 2.201 268095.0 1.837 2.0e-2 50.5 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5962.8616846219875 35.89967715644406 36.409693776233524 99.9010103576633 0.7811725893938963 0.7841122651908261
RUS Europe Russia 2020-08-07 875378.0 5191.0 5273.857 14698.0 119.0 108.429 0.95 null null null null null null null null 3.0341344e7 303221.0 207.9107566506225 2.078 266190.0 1.824 2.0e-2 50.5 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 5998.432447003949 35.570762381962425 36.13853095423795 100.71644490273236 0.8154345450690673 0.742997918380621
RUS Europe Russia 2020-08-08 880563.0 5185.0 5239.0 14827.0 129.0 113.286 0.95 null null null null null null null null 3.064002e7 298676.0 209.95740142526995 2.047 263823.0 1.808 2.0e-2 50.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6033.962095039102 35.52964803515222 35.89967715644406 101.60040335915177 0.8839584564194091 0.776279982123482
RUS Europe Russia 2020-08-09 885718.0 5155.0 5205.857 14903.0 76.0 114.143 0.95 null null null null null null null null 3.088616e7 246140.0 211.64404897924726 1.687 265180.0 1.817 2.0e-2 50.9 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6069.286171340203 35.324076301101194 35.672568357055624 102.12118508541437 0.5207817262625977 0.7821524813262063
RUS Europe Russia 2020-08-10 890799.0 5081.0 5165.429 14973.0 70.0 112.857 0.95 null null null null null null null null 3.1063187e7 177027.0 212.85710722470895 1.213 265904.0 1.822 1.9e-2 51.5 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6104.103170697312 34.816999357108664 35.395539888248464 102.60085246486676 0.4796673794523925 0.7733403063265524
RUS Europe Russia 2020-08-11 895691.0 4892.0 5132.714 15103.0 130.0 110.857 0.95 null null null null null null null null 3.1307764e7 244577.0 214.53304449134222 1.676 267696.0 1.834 1.9e-2 52.2 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6137.625068129899 33.5218974325872 35.17136391226582 103.4916633124212 0.8908108475544433 0.7596355240564839
RUS Europe Russia 2020-08-12 900745.0 5054.0 5113.857 15231.0 128.0 109.429 0.95 null null null null null null null null 3.1598302e7 290538.0 216.5239245069328 1.991 268771.0 1.842 1.9e-2 52.6 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6172.257052926361 34.63198479646274 35.04214837263248 104.36876937770558 0.877106065284375 0.7498503095156552
RUS Europe Russia 2020-08-13 905762.0 5017.0 5082.143 15353.0 122.0 110.571 0.96 null null null null null null null null 3.1903055e7 304753.0 218.61221126250786 2.088 266419.0 1.826 1.9e-2 52.4 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6206.635499250829 34.37844632446647 34.82483164017601 105.20476109617975 0.8359917184741699 0.7576757401918642
RUS Europe Russia 2020-08-14 910778.0 5016.0 5057.143 15467.0 114.0 109.857 0.96 null null null null null null null null 3.2221546e7 318491.0 220.794636167496 2.182 268600.0 1.841 1.9e-2 53.1 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6241.00709318416 34.37159393333145 34.65352186180015 105.98593368557366 0.7811725893938963 0.7527831329214498
RUS Europe Russia 2020-08-15 915808.0 5030.0 5035.0 15585.0 118.0 108.286 0.96 null null null null null null null null 3.2533818e7 312272.0 222.9344460520154 2.14 270543.0 1.854 1.9e-2 53.7 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6275.474620593381 34.46752740922192 34.50178936489709 106.79451583950768 0.8085821539340331 0.7420180264483112
RUS Europe Russia 2020-08-16 920719.0 4911.0 5000.143 15653.0 68.0 107.143 0.96 null null null null null null null null 3.2784478e7 250660.0 224.65206641392308 1.718 271188.0 1.858 1.8e-2 54.2 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6309.126713457535 33.652092864152856 34.262935567103206 107.26047843669001 0.4659625971823242 0.7341857433809671
RUS Europe Russia 2020-08-17 925558.0 4839.0 4965.571 15707.0 54.0 104.857 0.96 null null null null null null null null 3.2968759e7 184281.0 225.91483190467832 1.263 272225.0 1.865 1.8e-2 54.8 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6342.285434159964 33.15872070243039 34.0260347007828 107.63050755798184 0.3700291212918457 0.7185211772462788
RUS Europe Russia 2020-08-18 930276.0 4718.0 4940.714 15836.0 129.0 104.714 0.96 null null null null null null null null 3.3217468e7 248709.0 227.61908325148153 1.704 272815.0 1.869 1.8e-2 55.2 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6374.615015535056 32.32958137509126 33.855704814339255 108.51446601440126 0.8839584564194091 0.717541285313969
RUS Europe Russia 2020-08-19 935066.0 4790.0 4903.0 15951.0 115.0 102.857 0.96 null null null null null null null null 3.3509273e7 291805.0 229.61864524664017 2.0 272996.0 1.871 1.8e-2 55.7 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6407.43796907187 32.82295353681371 33.59727373507258 109.30249099493018 0.7880249805289306 0.7048163949762105
RUS Europe Russia 2020-08-20 939833.0 4767.0 4867.286 16058.0 107.0 100.714 0.96 null null null null null null null null 3.3814105e7 304832.0 231.7074733411149 2.089 273007.0 1.871 1.8e-2 56.1 null 68.06 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6440.1033176125775 32.66534854070793 33.35254743807597 110.03569684637884 0.7332058514486571 0.6901317207738323
RUS Europe Russia 2020-08-21 944671.0 4838.0 4841.857 16148.0 90.0 97.286 0.97 null null null null null null null null 3.3814105e7 null 231.7074733411149 null 272755.0 1.869 1.8e-2 56.3 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6473.255185923873 33.15186831129536 33.178297983903185 110.65241204853193 0.6167152021530762 0.6666417239629352
RUS Europe Russia 2020-08-22 949531.0 4860.0 4817.571 16268.0 120.0 97.571 0.97 null null null null null null null null 3.444756e7 null 236.04815476755797 null 273392.0 1.873 1.8e-2 56.7 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6506.557806840139 33.30262091626611 33.01188081279775 111.47469898473602 0.8222869362041014 0.6685946554364199
RUS Europe Russia 2020-08-23 954328.0 4797.0 4801.286 16341.0 73.0 98.286 0.97 null null null null null null null null 3.4695406e7 247846.0 237.74649250081168 1.698 272990.0 1.871 1.8e-2 56.9 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6539.428727114898 32.87092027475895 32.900289623163715 111.97492353759353 0.5002245528574951 0.6734941150979693
RUS Europe Russia 2020-08-24 959016.0 4688.0 4779.714 16406.0 65.0 99.857 0.97 null null null null null null null null 3.488322e7 187814.0 239.033467489447 1.287 273494.0 1.874 1.7e-2 57.2 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6571.552736755938 32.12400964104023 32.75246984159875 112.42032896137074 0.44540542377722164 0.684259221571108
RUS Europe Russia 2020-08-25 963655.0 4639.0 4768.429 16524.0 118.0 98.286 0.97 null null null null null null null null 3.5128661e7 245441.0 240.7153252220209 1.682 273028.0 1.871 1.7e-2 57.3 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6603.340979231362 31.78824247542356 32.6751406076399 113.22891111530478 0.8085821539340331 0.6734941150979693
RUS Europe Russia 2020-08-26 968297.0 4642.0 4747.286 16638.0 114.0 98.143 0.98 null null null null null null null null 3.5423783e7 295122.0 242.73761659857445 2.022 273501.0 1.874 1.7e-2 57.6 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6635.14977888019 31.808799648828657 32.530260501871865 114.01008370469867 0.7811725893938963 0.6725142231656595
RUS Europe Russia 2020-08-27 972972.0 4675.0 4734.143 16758.0 120.0 100.0 0.98 null null null null null null null null 3.5751747e7 327964.0 244.9849542047848 2.247 276806.0 1.897 1.7e-2 58.5 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6667.184707436475 32.03492855628478 32.44019952518411 114.83237064090278 0.8222869362041014 0.6852391135034178
RUS Europe Russia 2020-08-28 977730.0 4758.0 4722.714 16866.0 108.0 102.571 0.99 null null null null null null null null 3.6086182e7 334435.0 247.27663363402996 2.292 279336.0 1.914 1.7e-2 59.1 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6699.788384456968 32.603677020492626 32.3618835469018 115.57242888348647 0.7400582425836914 0.7028566111115908
RUS Europe Russia 2020-08-29 982573.0 4843.0 4720.286 16977.0 111.0 101.286 1.0 null null null null null null null null 3.642685e7 340668.0 249.6110240172198 2.334 282756.0 1.938 1.7e-2 59.9 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6732.974514723938 33.18613026697053 32.34524594122595 116.33304429947526 0.7606154159887939 0.6940512885030719
RUS Europe Russia 2020-08-30 987470.0 4897.0 4734.571 17045.0 68.0 100.571 1.0 null null null null null null null null 3.6696382e7 269532.0 251.45796270462785 1.847 285854.0 1.959 1.7e-2 60.4 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6766.5306741122 33.55615938826238 32.443132348589906 116.79900689665757 0.4659625971823242 0.6891518288415225
RUS Europe Russia 2020-08-31 992402.0 4932.0 4769.429 17128.0 83.0 103.143 1.01 null null null null null null null null 3.6901215e7 204833.0 252.86155853799025 1.404 288285.0 1.975 1.7e-2 60.4 null 54.17 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6800.326667190189 33.79599307798858 32.68199299877493 117.36775536086542 0.5687484642078369 0.7067761788408303
RUS Europe Russia 2020-09-01 997072.0 4670.0 4773.857 17250.0 122.0 103.714 1.01 null null null null null null null null 3.7176827e7 275612.0 254.75015976349928 1.889 292595.0 2.005 1.6e-2 61.3 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6832.327333790799 32.00066660060962 32.71233538672086 118.20374707933959 0.8359917184741699 0.7106888941789349
RUS Europe Russia 2020-09-02 1001965.0 4893.0 4809.714 17365.0 115.0 103.857 1.02 null null null null null null null null 3.7484146e7 307319.0 256.8560297547269 2.106 294338.0 2.017 1.6e-2 61.2 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6865.856083614522 33.52874982372224 32.95804157564978 118.99177205986852 0.7880249805289306 0.7116687861112447
RUS Europe Russia 2020-09-03 1006923.0 4958.0 4850.143 17479.0 114.0 103.0 1.02 null null null null null null null null 3.7818366e7 334220.0 259.146235919878 2.29 295231.0 2.023 1.6e-2 60.9 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6899.83023886202 33.97415524749946 33.23507689684808 119.77294464926241 0.7811725893938963 0.7057962869085204
RUS Europe Russia 2020-09-04 1011987.0 5064.0 4893.857 17598.0 119.0 104.571 1.03 null null null null null null null null 3.8154556e7 336190.0 261.44994129556517 2.304 295482.0 2.025 1.7e-2 60.4 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6934.530747569834 34.70050870781308 33.53462232292497 120.58837919433148 0.8154345450690673 0.7165613933816591
RUS Europe Russia 2020-09-05 1017131.0 5144.0 4936.857 17707.0 109.0 104.286 1.03 null null null null null null null null 3.8488127e7 333571.0 263.7357002588696 2.286 294468.0 2.018 1.7e-2 59.6 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 6969.7794475684495 35.24869999861582 33.82927514173143 121.33528982805021 0.7469106337187255 0.7146084619081744
RUS Europe Russia 2020-09-06 1022228.0 5097.0 4965.429 17768.0 61.0 103.286 1.04 null null null null null null null null 3.8758184e7 270057.0 265.58623645162356 1.851 294543.0 2.018 1.7e-2 59.3 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7004.706085183719 34.92663761526921 34.02506166124163 121.75328568728729 0.41799585923708493 0.7077560707731403
RUS Europe Russia 2020-09-07 1027334.0 5106.0 4990.286 17818.0 50.0 98.571 1.04 null null null null null null null null 3.8960761e7 202577.0 266.9743732905854 1.388 294221.0 2.016 1.7e-2 59.0 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7039.694394319203 34.98830913548451 34.19539154768517 122.095905244039 0.3426195567517089 0.675447046571454
RUS Europe Russia 2020-09-08 1032354.0 5020.0 5040.286 17939.0 121.0 98.429 1.04 null null null null null null null null 3.9289176e7 328415.0 269.22480132519763 2.25 301764.0 2.068 1.7e-2 59.9 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7074.093397817074 34.399003497871576 34.53801110443688 122.92504457137812 0.8291393273391356 0.6744740070302793
RUS Europe Russia 2020-09-09 1037526.0 5172.0 5080.143 18080.0 141.0 102.143 1.05 null null null null null null null null 3.9575311e7 286135.0 271.1855102626206 1.961 298738.0 2.047 1.7e-2 58.8 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7109.533964767472 35.44056695039677 34.81112685790594 123.89123172141795 0.9661871500398191 0.6999237877057962
RUS Europe Russia 2020-09-10 1042836.0 5310.0 5130.429 18207.0 127.0 104.0 1.05 null null null null null null null null 3.9912526e7 337215.0 273.4962393392212 2.311 299166.0 2.05 1.7e-2 58.3 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7145.920161694503 36.38619692703149 35.15570619852227 124.7614853955673 0.8702536741493407 0.7126486780435546
RUS Europe Russia 2020-09-11 1048257.0 5421.0 5181.429 18309.0 102.0 101.571 1.05 null null null null null null null null 4.0268897e7 356371.0 275.9382328204045 2.442 302049.0 2.07 1.7e-2 58.3 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7183.066974037523 37.14681234302029 35.505178146409015 125.46042929134079 0.6989438957734863 0.6960042199765566
RUS Europe Russia 2020-09-12 1053663.0 5406.0 5218.857 18426.0 117.0 102.714 1.06 null null null null null null null null 4.0624075e7 355178.0 278.3720513989636 2.434 305135.0 2.091 1.7e-2 58.5 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7220.111000513519 37.04402647599477 35.76164944181107 126.26215905413979 0.8017297627989989 0.7038365030439007
RUS Europe Russia 2020-09-13 1059024.0 5361.0 5256.571 18517.0 91.0 107.0 1.06 null null null null null null null null 4.0903551e7 279476.0 280.2871302638184 1.915 306481.0 2.1 1.7e-2 58.3 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7256.846669388437 36.73566887491823 36.02008052107775 126.88572664742789 0.6235675932881103 0.7332058514486571
RUS Europe Russia 2020-09-14 1064438.0 5414.0 5300.571 18573.0 56.0 107.857 1.06 null null null null null null null null 4.1122307e7 218756.0 281.786131938954 1.499 308792.0 2.116 1.7e-2 58.3 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7293.945514993512 37.09884560507505 36.321585731019255 127.26946055098982 0.383733903561914 0.7390783506513814
RUS Europe Russia 2020-09-15 1069873.0 5435.0 5359.857 18723.0 150.0 112.0 1.07 null null null null null null null null 4.1424006e7 301699.0 283.8534914920026 2.067 304976.0 2.09 1.8e-2 56.9 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7331.188260812422 37.24274581891076 36.72783659185089 128.29731922124492 1.027858670255127 0.767467807123828
RUS Europe Russia 2020-09-16 1075485.0 5612.0 5422.714 18853.0 130.0 110.429 1.07 null null null null null null null null 4.1748928e7 324922.0 286.07998412438025 2.226 310517.0 2.128 1.7e-2 57.3 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7369.643879862234 38.455619049811816 37.158557341425734 129.18813006879938 0.8908108475544433 0.7567027006506893
RUS Europe Russia 2020-09-17 1081152.0 5667.0 5473.714 18996.0 143.0 112.714 1.08 null null null null null null null null 4.2095246e7 346318.0 288.45309051748296 2.373 311817.0 2.137 1.8e-2 57.0 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7408.476380424473 38.83250056223869 37.50802928931248 130.16802200110928 0.9798919323098875 0.7723604143942425
RUS Europe Russia 2020-09-18 1086955.0 5803.0 5528.286 19128.0 132.0 117.0 1.09 null null null null null null null null 4.2457169e7 361923.0 290.93312847424795 2.48 312610.0 2.142 1.8e-2 56.5 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7448.240806181076 39.76442575660334 37.88197797833356 131.0725376309338 0.9045156298245116 0.8017297627989989
RUS Europe Russia 2020-09-19 1092915.0 5960.0 5607.429 19270.0 142.0 120.571 1.1 null null null null null null null null 4.2821891e7 364722.0 293.4323462737999 2.499 313974.0 2.151 1.8e-2 56.0 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7489.081057345879 40.8402511648037 38.42429676993358 132.04557717210864 0.9730395411748535 0.826199651542206
RUS Europe Russia 2020-09-20 1098958.0 6043.0 5704.857 19349.0 79.0 118.857 1.1 null null null null null null null null 4.3103912e7 282021.0 295.3648644740934 1.933 314337.0 2.154 1.8e-2 55.1 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7530.490056974892 41.40899962901155 39.09191153343768 132.58691607177633 0.5413388996677002 0.8144546531367575
RUS Europe Russia 2020-09-21 1105048.0 6090.0 5801.429 19420.0 71.0 121.0 1.11 null null null null null null null null 4.3341534e7 237622.0 296.9931433603825 1.628 317032.0 2.172 1.8e-2 54.6 null 38.89 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7572.22111898725 41.73106201235815 39.7536606501302 133.07343584236375 0.48651977058742674 0.8291393273391356
RUS Europe Russia 2020-09-22 1111157.0 6109.0 5897.714 19575.0 155.0 121.714 1.12 null null null null null null null null 4.3632541e7 291007.0 298.9872371474154 1.994 315505.0 2.162 1.9e-2 53.5 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7614.082376431173 41.861257443923805 40.41344313056697 134.13555646829406 1.0621206259302978 0.83403193460955
RUS Europe Russia 2020-09-23 1117487.0 6330.0 6000.286 19720.0 145.0 123.857 1.13 null null null null null null null null 4.3990409e7 357868.0 301.43948865812774 2.452 320212.0 2.194 1.9e-2 53.4 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7657.458012315939 43.37563588476635 41.1163065940697 135.129153182874 0.9935967145799559 0.8487166088119283
RUS Europe Russia 2020-09-24 1123976.0 6489.0 6117.714 19867.0 147.0 124.429 1.15 null null null null null null null null 4.4364566e7 374157.0 304.00335876803877 2.564 324189.0 2.221 1.9e-2 53.0 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7701.923178391176 44.46516607523679 41.92096918027448 136.13645467972404 1.0073014968500242 0.8526361765411679
RUS Europe Russia 2020-09-25 1131088.0 7112.0 6304.714 19973.0 106.0 120.714 1.17 null null null null null null null null 4.4755362e7 390796.0 306.68124581404555 2.678 328313.0 2.25 1.9e-2 52.1 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7750.657384143539 48.73420575236308 43.202366322525876 136.86280814003766 0.7263534603136229 0.8271795434745159
RUS Europe Russia 2020-09-26 1138509.0 7421.0 6513.429 20140.0 167.0 124.286 1.19 null null null null null null null null 4.5134435e7 379073.0 309.27880227877637 2.598 330363.0 2.264 2.0e-2 50.7 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7801.5089787566285 50.85159461308864 44.63256313827454 138.00715745958837 1.144349319550708 0.8516562846088579
RUS Europe Russia 2020-09-27 1146273.0 7764.0 6759.286 20239.0 99.0 127.143 1.2 null null null null null null null null 4.5442774e7 308339.0 311.39166170896164 2.113 334123.0 2.29 2.0e-2 49.4 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7854.710943529033 53.20196477240537 46.31727146556063 138.68554418195677 0.6783867223683837 0.8712335660816506
RUS Europe Russia 2020-09-28 1154299.0 8026.0 7035.857 20299.0 60.0 125.571 1.21 null null null null null null null null 4.5698673e7 255899.0 313.1451817480258 1.754 336734.0 2.307 2.1e-2 47.9 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7909.708234778817 54.997291249784325 48.21244413416817 139.0966876500588 0.4111434681020507 0.8604616072173769
RUS Europe Russia 2020-09-29 1162428.0 8129.0 7324.429 20456.0 157.0 125.857 1.22 null null null null null null null null 4.603766e7 338987.0 315.4680532617176 2.323 343588.0 2.354 2.1e-2 46.9 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 7965.411322315512 55.70308753669284 50.189852348787255 140.17251305825917 1.075825408200366 0.8624213910819967
RUS Europe Russia 2020-09-30 1170799.0 8371.0 7616.0 20630.0 174.0 130.0 1.23 null null null null null null null null 4.6421834e7 384174.0 318.1005637736282 2.633 347346.0 2.38 2.2e-2 45.6 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8022.772688506882 57.36136619137111 52.18781088442031 141.3648291157551 1.1923160574959473 0.8908108475544433
RUS Europe Russia 2020-10-01 1179634.0 8835.0 7951.143 20796.0 166.0 132.714 1.24 null null null null null null null null 4.6823879e7 402045.0 320.85553336751303 2.755 351330.0 2.407 2.3e-2 44.2 null 40.74 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8083.3135641849085 60.54087567802697 54.48434180658907 142.5023260441708 1.1374969284156737 0.909408237094926
RUS Europe Russia 2020-10-02 1188928.0 9294.0 8262.857 20981.0 185.0 144.0 1.25 null null null null null null null null 4.6823879e7 null 320.85553336751303 null 356928.0 2.446 2.3e-2 43.2 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8146.999687393916 63.68612320900767 56.62032805685511 143.7700184041521 1.267692359981323 0.9867443234449218
RUS Europe Russia 2020-10-03 1198663.0 9735.0 8593.429 21153.0 172.0 144.714 1.26 null null null null null null null null 4.7683832e7 null 326.7482676812591 null 364200.0 2.496 2.4e-2 42.4 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8213.707715093475 66.70802769955773 58.88553669914563 144.948629679378 1.1786112752258788 0.9916369307153361
RUS Europe Russia 2020-10-04 1209039.0 10376.0 8966.571 21260.0 107.0 145.857 1.26 null null null null null null null null 4.8042343e7 358511.0 329.20492527947135 2.457 371367.0 2.545 2.4e-2 41.4 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8284.80812551059 71.10041041711465 61.44245163205455 145.68183553082665 0.7332058514486571 0.9994692137826802
RUS Europe Russia 2020-10-05 1219796.0 10757.0 9356.714 21375.0 115.0 153.714 1.27 null null null null null null null null 4.8337992e7 295649.0 331.23082786615305 2.026 377046.0 2.584 2.5e-2 40.3 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8358.519296950151 73.71117143956266 64.1158640666502 146.46986051135556 0.7880249805289306 1.0533084509306438
RUS Europe Russia 2020-10-06 1231277.0 11481.0 9835.571 21559.0 184.0 157.571 1.26 null null null null null null null null 4.8709857e7 371865.0 333.77899229558255 2.548 381742.0 2.616 2.6e-2 38.8 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8437.191599571479 78.6723026213274 67.39717952839926 147.73070048020188 1.260839968846289 1.0797381235384707
RUS Europe Russia 2020-10-07 1242258.0 10981.0 10208.429 21755.0 196.0 160.714 1.25 null null null null null null null null 4.9148954e7 439097.0 336.78785668580264 3.009 389589.0 2.67 2.6e-2 38.2 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8512.43770662529 75.24610705381032 69.95214838222583 149.07376914266857 1.343068662466699 1.101275188875883
RUS Europe Russia 2020-10-08 1253603.0 11345.0 10567.0 21939.0 184.0 163.286 1.25 null null null null null null null null 4.9656873e7 507919.0 340.2683163387181 3.48 404713.0 2.773 2.6e-2 38.3 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8590.178084052252 77.74037742696275 72.40921712390616 150.33460911151485 1.260839968846289 1.1188995388751908
RUS Europe Russia 2020-10-09 1265572.0 11969.0 10949.143 22137.0 198.0 165.143 1.25 null null null null null null null null 5.0305243e7 648370.0 344.71120117894014 4.443 435912.0 2.987 2.5e-2 39.8 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8672.194353547475 82.0162694952241 75.02781042942154 151.69138255625163 1.3567734447367674 1.1316244292129494
RUS Europe Russia 2020-10-10 1278245.0 12673.0 11368.857 22331.0 194.0 168.286 1.25 null null null null null null null null 5.0781349e7 476106.0 347.9736657126768 3.262 442502.0 3.032 2.6e-2 38.9 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8759.034706401764 86.84035285428814 77.90385492227126 153.02074643644826 1.3293638801966305 1.1531614945503619
RUS Europe Russia 2020-10-11 1291687.0 13442.0 11806.857 22471.0 140.0 173.0 1.24 null null null null null null null null 5.1191309e7 409960.0 350.78287198239536 2.809 449852.0 3.083 2.6e-2 38.1 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8851.144548038894 92.10984163712943 80.90520223941624 153.98008119535302 0.959334758904785 1.185463666360913
RUS Europe Russia 2020-10-12 1305093.0 13406.0 12185.286 22594.0 123.0 174.143 1.24 null null null null null null null null 5.1364269e7 172960.0 351.9680615531109 1.185 432325.0 2.962 2.8e-2 35.5 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 8943.007703595162 91.86315555626821 83.49834576425609 154.82292530496224 0.842844109609204 1.193295949428257
RUS Europe Russia 2020-10-13 1318783.0 13690.0 12500.857 22834.0 240.0 182.143 1.22 null null null null null null null null 5.1801245e7 436976.0 354.9623920217336 2.994 441627.0 3.026 2.8e-2 35.3 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9036.81693823378 93.80923463861791 85.66076168712996 156.46749917737046 1.6445738724082029 1.2481150785085304
RUS Europe Russia 2020-10-14 1332824.0 14041.0 12938.0 23069.0 235.0 187.714 1.21 null null null null null null null null 5.2279734e7 478489.0 358.24118580354497 3.279 447254.0 3.065 2.9e-2 34.6 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9133.031362160795 96.2144239270149 88.65623650507221 158.07781109410348 1.6103119167330322 1.2862897495218057
RUS Europe Russia 2020-10-15 1346380.0 13556.0 13253.857 23350.0 281.0 201.571 1.2 null null null null null null null null 5.2782097e7 502363.0 361.6835735713141 3.442 446461.0 3.059 3.0e-2 33.7 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9225.922376387318 92.89101422652334 90.8206122118107 160.00333300304808 1.9255219089446043 1.3812433334799745
RUS Europe Russia 2020-10-16 1361317.0 14937.0 13677.857 23580.0 230.0 206.143 1.2 null null null null null null null null 5.3305957e7 523860.0 365.27326719131315 3.59 428673.0 2.937 3.2e-2 31.3 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9328.276542771324 102.35416638400554 93.72602605306518 161.57938296410595 1.576049961057861 1.4125724657493508
RUS Europe Russia 2020-10-17 1376020.0 14703.0 13967.857 23857.0 277.0 218.0 1.19 null null null null null null null null 5.3850509e7 544552.0 369.00475048867827 3.731 438451.0 3.004 3.2e-2 31.4 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9429.027249629731 100.75070685840754 95.7132194822251 163.4774953085104 1.8981123444044676 1.493821267437451
RUS Europe Russia 2020-10-18 1390824.0 14804.0 14162.429 24039.0 182.0 224.0 1.18 null null null null null null null null 5.4300208e7 449699.0 372.086263929712 3.082 444128.0 3.043 3.2e-2 31.4 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9530.470047992778 101.44279836304598 97.04650293015096 164.72463049508664 1.2471351865762206 1.534935614247656
RUS Europe Russia 2020-10-19 1406667.0 15843.0 14510.571 24205.0 166.0 230.143 1.17 null null null null null null null null 5.4675096e7 374888.0 374.6551431375427 2.569 472975.0 3.241 3.1e-2 32.6 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9639.032480745123 108.5624327523465 99.43210808468405 165.8621274235023 1.1374969284156737 1.5770298529901712
RUS Europe Russia 2020-10-20 1422775.0 16108.0 14856.0 24473.0 268.0 234.143 1.16 null null null null null null null null 5.5171784e7 496688.0 378.0586435856206 3.404 481506.0 3.299 3.1e-2 32.4 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9749.410797148254 110.37831640313057 101.79912270206776 167.69856824769147 1.83644082418916 1.6044394175303078
RUS Europe Russia 2020-10-21 1438219.0 15444.0 15056.429 24786.0 313.0 245.286 1.15 null null null null null null null null 5.5683929e7 512145.0 381.5680614434727 3.509 486314.0 3.332 3.1e-2 32.3 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9855.239125837723 105.82832868946785 103.17254060487153 169.84336667295716 2.144798425265698 1.6807956119479937
RUS Europe Russia 2020-10-22 1453923.0 15704.0 15363.286 25072.0 286.0 246.0 1.14 null null null null null null null null 5.6230544e7 546615.0 385.31368122374937 3.746 492635.0 3.376 3.1e-2 32.1 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 9962.8490762223 107.60995038457675 105.27524479139471 171.80315053757695 1.959783864619775 1.685688219218408
RUS Europe Russia 2020-10-23 1471000.0 17077.0 15669.0 25353.0 281.0 253.286 1.14 null null null null null null null null 5.6794639e7 564095.0 389.17908080106645 3.865 498383.0 3.415 3.1e-2 31.8 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10079.867359635278 117.01828341297868 107.37011669485055 173.72867244652153 1.9255219089446043 1.7356147410282672
RUS Europe Russia 2020-10-24 1487260.0 16260.0 15891.429 25647.0 294.0 255.714 1.13 null null null null null null null null 5.7344952e7 550313.0 392.9500407237605 3.771 499206.0 3.421 3.2e-2 31.4 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10191.287239490932 111.41987985565575 108.89428720262507 175.7432754402216 2.0146029937000485 1.75225234670413
RUS Europe Russia 2020-10-25 1503652.0 16392.0 16118.286 25875.0 228.0 262.286 1.12 null null null null null null null null 5.782126e7 476308.0 396.2138894405064 3.264 503007.0 3.447 3.2e-2 31.2 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10303.611634976414 112.32439548548027 110.44880009834553 177.30562061900937 1.5623451787877927 1.7972862612435747
RUS Europe Russia 2020-10-26 1520800.0 17148.0 16304.714 26092.0 217.0 269.571 1.11 null null null null null null null null 5.8223852e7 402592.0 398.97260729234205 2.759 506965.0 3.474 3.2e-2 31.1 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10421.11643815998 117.5048031835661 111.72627767286767 178.7925894953118 1.486968876302417 1.8472059306622988
RUS Europe Russia 2020-10-27 1537142.0 16342.0 16338.143 26409.0 317.0 276.571 1.1 null null null null null null null null 5.8730811e7 506959.0 402.44648864976784 3.474 508432.0 3.484 3.2e-2 31.1 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10533.098214088708 111.98177592872855 111.95534625612072 180.96479748511763 2.172207989805835 1.895172668607538
RUS Europe Russia 2020-10-28 1553028.0 15886.0 16401.286 26752.0 343.0 280.857 1.1 null null null null null null null null 5.9284119e7 553308.0 406.23797148391134 3.791 514313.0 3.524 3.2e-2 31.4 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10641.955299659861 108.85708557115296 112.38802678956019 183.31516764443435 2.350370159316723 1.9245420170122944
RUS Europe Russia 2020-10-29 1570446.0 17418.0 16646.143 27111.0 359.0 291.286 1.1 null null null null null null null null 5.9866561e7 582442.0 410.2290918813829 3.991 519431.0 3.559 3.2e-2 31.2 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10761.310248449887 119.35494879002533 114.06588272571125 185.77517606191162 2.4600084174772703 1.9960056041595657
RUS Europe Russia 2020-10-30 1588433.0 17987.0 16776.143 27462.0 351.0 301.286 1.11 null null null null null null null null 6.0441811e7 575250.0 414.17092988181133 3.942 521025.0 3.57 3.2e-2 31.1 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 10884.564207795747 123.25395934585978 114.9566935732657 188.18036535030862 2.4051892883969965 2.064529515509908
RUS Europe Russia 2020-10-31 1606267.0 17834.0 17001.0 27787.0 325.0 305.714 1.11 null null null null null null null null 6.1029746e7 587935.0 418.19969046378765 4.029 526399.0 3.607 3.2e-2 31.0 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 11006.769751297945 122.20554350219956 116.49750168671608 190.40739246919472 2.227027118886108 2.094871903455839
RUS Europe Russia 2020-11-01 1624648.0 18381.0 17285.143 28026.0 239.0 307.286 1.11 null null null null null null null null 6.154197e7 512224.0 421.7096496605394 3.51 531530.0 3.642 3.3e-2 30.8 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 11132.72355275101 125.95380145306325 118.44456066099809 192.0451139504679 1.6377214812731689 2.105643862320113
RUS Europe Russia 2020-11-02 1642665.0 18017.0 17409.286 28264.0 238.0 310.286 1.11 null null null null null null null null 6.1954566e7 412596.0 424.53691883329 2.827 532959.0 3.652 3.3e-2 30.6 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 11256.18308383092 123.45953107991082 119.29523705367464 193.67598304060604 1.6308690901381346 2.1262010357252152
RUS Europe Russia 2020-11-03 1661096.0 18431.0 17707.714 28611.0 347.0 314.571 1.11 null null null null null null null null 6.2446013e7 491447.0 427.90450589942907 3.368 530743.0 3.637 3.3e-2 30.0 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 11382.479504840734 126.29642100981495 121.34018243532063 196.0537627644629 2.37777972385686 2.155563531738837
RUS Europe Russia 2020-11-04 1680579.0 19483.0 18221.571 28996.0 385.0 320.571 1.11 null null null null null null null null 6.3016994e7 570981.0 431.81709104210205 3.913 533268.0 3.654 3.4e-2 29.3 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 11515.984641324607 133.5051364838709 124.86133158679587 198.69193335145107 2.638170586988159 2.196677878549042
RUS Europe Russia 2020-11-05 1699695.0 19116.0 18464.143 29285.0 289.0 310.571 1.11 null null null null null null null null 6.3541298e7 524304.0 435.409827123765 3.593 524962.0 3.597 3.5e-2 28.4 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 11646.974950261918 130.99030893731336 126.5235298092034 200.67227438947592 1.9803410380248776 2.1281539671987
RUS Europe Russia 2020-11-06 1720063.0 20368.0 18804.286 29654.0 369.0 313.143 1.11 null null null null null null null null 6.4092161e7 550863.0 439.18455586158336 3.775 521479.0 3.573 3.6e-2 27.7 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 11786.544452900294 139.56950263837615 128.85432268704733 203.20080671830354 2.528532328827612 2.145778317198008
RUS Europe Russia 2020-11-07 1740172.0 20109.0 19129.286 30010.0 356.0 317.571 1.11 null null null null null null null null 6.4682511e7 590350.0 443.22986496815076 4.045 521824.0 3.576 3.7e-2 27.3 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 11924.339186234696 137.79473333440228 131.08134980593343 205.6402579623757 2.439451244072168 2.1761207051439397
RUS Europe Russia 2020-11-08 1760420.0 20248.0 19396.0 30292.0 282.0 323.714 1.11 null null null null null null null null 6.5209357e7 526846.0 446.840019828079 3.61 523912.0 3.59 3.7e-2 27.0 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 12063.08640193687 138.74721570217204 132.90897845512293 207.57263226245536 1.9323743000796383 2.218214943886454
RUS Europe Russia 2020-11-09 1781997.0 21577.0 19904.571 30546.0 254.0 326.0 1.11 null null null null null null null null 6.5606582e7 397225.0 449.56196089669294 2.722 521717.0 3.575 3.8e-2 26.2 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 12210.940445457503 147.8540435206325 136.3939058670584 209.31313961075404 1.7405073482986815 2.233879510021142
RUS Europe Russia 2020-11-10 1802762.0 20765.0 20238.0 30899.0 353.0 326.857 1.1 null null null null null null null null 6.6118696e7 512114.0 453.0711663304198 3.509 524669.0 3.595 3.9e-2 25.9 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 12353.230347376486 142.28990191898473 138.67869179082172 211.73203368142111 2.4188940706670654 2.239752009223867
RUS Europe Russia 2020-11-11 1822345.0 19583.0 20252.286 31326.0 427.0 332.857 1.09 null null null null null null null null 6.6710463e7 591767.0 457.12618527522557 4.055 527638.0 3.616 3.8e-2 26.1 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 12487.42072297386 134.19037559737433 138.7765850505768 214.6580046960807 2.9259710146595945 2.280866356034072
RUS Europe Russia 2020-11-12 1843678.0 21333.0 20569.0 31755.0 429.0 352.857 1.09 null null null null null null null null 6.7347351e7 636888.0 461.49039096043526 4.364 543722.0 3.726 3.8e-2 26.4 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 12633.602783057544 146.18206008368415 140.94683325651803 217.59768049301036 2.939675796929663 2.4179141787347556
RUS Europe Russia 2020-11-13 1865395.0 21717.0 20761.714 32156.0 401.0 357.429 1.1 null null null null null null null null 6.7949154e7 601803.0 465.61418050267224 4.124 550999.0 3.776 3.8e-2 26.5 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 12782.416161337082 148.8133782795373 142.267384961715 220.34548933815907 2.7478088451487057 2.4492433110041314
RUS Europe Russia 2020-11-14 1887836.0 22441.0 21094.857 32536.0 380.0 360.857 1.1 null null null null null null null null 6.8577003e7 627849.0 469.9164474244123 4.302 556356.0 3.812 3.8e-2 26.4 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 12936.190670798384 153.77450946130202 144.55021110161368 222.94939796947205 2.603908631312988 2.472733307815029
RUS Europe Russia 2020-11-15 1910149.0 22313.0 21389.857 32885.0 349.0 370.429 1.09 null null null null null null null null 6.9111898e7 534895.0 473.5817571805864 3.665 557506.0 3.82 3.8e-2 26.1 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 13089.088074194402 152.89740339601764 146.57166648644878 225.340882475599 2.3914845061269285 2.538324395759576
RUS Europe Russia 2020-11-16 1932711.0 22562.0 21530.571 33184.0 299.0 376.857 1.09 null null null null null null null null 6.9550659e7 438761.0 476.5883191673851 3.007 563440.0 3.861 3.8e-2 26.2 null 44.91 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 13243.691722983043 154.60364878864115 147.53589385262399 227.3897474249742 2.04886494937522 2.582371565975576
RUS Europe Russia 2020-11-17 1954912.0 22201.0 21735.714 33619.0 435.0 388.571 1.08 null null null null null null null null 7.0075886e7 525227.0 480.1873800060658 3.599 565313.0 3.874 3.8e-2 26.0 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 13395.821658571936 152.1299355888938 148.94161392723828 230.37053756871407 2.980790143739868 2.662640475731366
RUS Europe Russia 2020-11-18 1975629.0 20717.0 21897.714 34068.0 449.0 391.714 1.08 null null null null null null null null 7.0653231e7 577345.0 484.14357376592204 3.956 563253.0 3.86 3.9e-2 25.7 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 13537.782645716441 141.96098714450306 150.05170129111383 233.4472611883444 3.076723619630346 2.6841775410687783
RUS Europe Russia 2020-11-19 1998966.0 23337.0 22184.0 34525.0 457.0 395.714 1.09 null null null null null null null null 7.1249997e7 596766.0 488.23284781401185 4.089 557521.0 3.82 4.0e-2 25.1 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 13697.696897634733 159.91425191829265 152.01344493959823 236.57880393705503 3.1315427487106198 2.711587105608915
RUS Europe Russia 2020-11-20 2023025.0 24059.0 22518.571 34980.0 455.0 403.429 1.09 null null null null null null null null 7.1838293e7 588296.0 492.26408210918794 4.031 555591.0 3.807 4.1e-2 24.7 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 13862.55857595252 164.8616783177873 154.30605629403777 239.69664190349556 3.1178379664405513 2.7644533032157037
RUS Europe Russia 2020-11-21 2047563.0 24538.0 22818.143 35442.0 462.0 415.143 1.09 null null null null null null null null 7.2429063e7 590770.0 496.3122692200321 4.048 550294.0 3.771 4.1e-2 24.1 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 14030.70254962399 168.1439736714687 156.3588408111422 242.86244660788137 3.1658047043857906 2.844722212971494
RUS Europe Russia 2020-11-22 2071858.0 24295.0 23101.286 35838.0 396.0 421.857 1.09 null null null null null null null null 7.2949596e7 520533.0 499.87916493472477 3.567 548243.0 3.757 4.2e-2 23.7 null 47.69 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 14197.181392249644 166.47884262565537 158.29904739428918 245.57599349735492 2.713546889473535 2.890729167052114
RUS Europe Russia 2020-11-23 2096749.0 24891.0 23434.0 36192.0 354.0 429.714 1.09 null null null null null null null null 7.3312313e7 362717.0 502.36464369005097 2.485 537379.0 3.682 4.4e-2 22.9 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 14367.74425999178 170.56286774213575 160.57893385839097 248.00173995915702 2.4257464618020994 2.9445684042000773
RUS Europe Russia 2020-11-24 2120836.0 24087.0 23703.429 36675.0 483.0 436.571 1.09 null null null null null null null null 7.376515e7 452837.0 505.4676599344665 3.103 527038.0 3.611 4.5e-2 22.2 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 14532.797805261349 165.05354526956825 162.42516674951207 251.31144487737853 3.3097049182215086 2.9915552502130067
RUS Europe Russia 2020-11-25 2144229.0 23393.0 24085.714 37173.0 498.0 443.571 1.09 null null null null null null null null 7.427093e7 505780.0 508.93346232274405 3.466 516814.0 3.541 4.7e-2 21.5 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 14693.095791083202 160.29798582185455 165.0447330945686 254.72393566262556 3.412490785247021 3.039521988158246
RUS Europe Russia 2020-11-26 2169424.0 25195.0 24351.143 37688.0 515.0 451.857 1.09 null null null null null null null null 7.4814909e7 543979.0 512.6610191999888 3.728 509273.0 3.49 4.8e-2 20.9 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 14865.741785730388 172.64599464718614 166.8635564211496 258.25291709716817 3.5289814345426023 3.096300901103139
RUS Europe Russia 2020-11-27 2196691.0 27267.0 24809.429 38175.0 487.0 456.429 1.09 null null null null null null null null 7.5402616e7 587707.0 516.6882174367864 4.027 509189.0 3.489 4.9e-2 20.5 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 15052.585934809365 186.84414907897695 170.0039113448599 261.59003157992976 3.3371144827616455 3.1276300333725153
RUS Europe Russia 2020-11-28 2223500.0 26809.0 25133.857 38676.0 501.0 462.0 1.09 null null null null null null null null 7.5948006e7 545390.0 520.4254430379226 3.737 502706.0 3.445 5.0e-2 20.0 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 15236.291688748497 183.7057539391313 172.22701889601674 265.0230795385819 3.4330479586521236 3.1658047043857906
RUS Europe Russia 2020-11-29 2249890.0 26390.0 25433.143 39127.0 451.0 469.857 1.09 null null null null null null null null 7.6422849e7 474843.0 523.6792530016556 3.254 496179.0 3.4 5.1e-2 19.5 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 15417.126290802049 180.83460205355198 174.27784362925658 268.1135079404823 3.090428401900415 3.2196439415337545
RUS Europe Russia 2020-11-30 2275936.0 26046.0 25598.143 39491.0 364.0 471.286 1.09 null null null null null null null null 7.6755901e7 333052.0 525.9614555739611 2.282 491941.0 3.371 5.2e-2 19.2 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 15595.603670305149 178.47737950310022 175.4084881665372 270.60777831363475 2.494270373152441 3.229436008465718
RUS Europe Russia 2020-12-01 2302062.0 26126.0 25889.429 40050.0 559.0 482.143 1.09 null null null null null null null null 7.7200071e7 444170.0 529.0050821444092 3.044 490703.0 3.362 5.3e-2 19.0 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 15774.629241099052 179.02557079390294 177.40449377069677 274.43826495811885 3.8304866444841057 3.303832419018784
RUS Europe Russia 2020-12-02 2327105.0 25043.0 26125.143 40630.0 580.0 493.857 1.09 null null null null null null null null 7.7200071e7 null 529.0050821444092 null 491830.0 3.37 5.3e-2 18.8 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 15946.233672293714 171.60443119466095 179.01969829470025 278.41265181643865 3.9743868583198236 3.384101328774575
RUS Europe Russia 2020-12-02 2327105.0 25043.0 26125.143 40630.0 580.0 493.857 1.09 null null null null null null null null 7.7200071e7 null 529.0050821444092 null null null null null null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 15946.233672293714 171.60443119466095 179.01969829470025 278.41265181643865 3.9743868583198236 3.384101328774575
RUS Europe Russia 2020-12-03 2354934.0 27829.0 26501.429 41173.0 543.0 497.857 1.09 null null null null null null null null 7.8227415e7 null 536.0448450626398 null 487501.0 3.341 5.4e-2 18.4 null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 16136.92886519058 190.6951928968662 181.5981571453377 282.13350020276226 3.7208483863235595 3.411510893314712
RUS Europe Russia 2020-12-03 2354934.0 27829.0 26501.429 41173.0 543.0 497.857 1.09 null null null null null null null null 7.8227415e7 null 536.0448450626398 null null null null null null 55.09 1.4593446e8 8.823 39.6 14.178 9.393 24765.954 0.1 431.297 6.18 23.4 58.3 null 8.05 72.58 0.816 16136.92886519058 190.6951928968662 181.5981571453377 282.13350020276226 3.7208483863235595 3.411510893314712
YEM Asia Yemen 2020-01-23 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-01-24 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-01-25 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-01-26 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-01-27 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-01-28 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-01-29 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-01-31 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-01 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-02 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-03 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-04 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-05 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-06 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-07 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-08 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-09 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-10 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-11 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-12 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-13 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-14 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-15 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-16 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-17 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-18 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-19 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-20 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-21 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-22 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-23 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-24 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-25 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-26 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-27 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-28 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-02-29 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-01 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-02 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-03 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-04 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-05 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-06 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-07 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-08 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-09 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-10 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-11 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-12 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-13 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-14 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-15 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 11.11 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-16 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 11.11 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-17 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 22.22 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-18 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 33.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-19 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 33.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-20 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 33.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-21 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-22 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-23 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-24 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-25 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-26 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-27 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-28 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-29 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-30 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-03-31 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-01 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-02 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-03 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-04 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-05 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-06 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-07 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-08 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-09 0.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 38.89 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.0 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-10 1.0 1.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 3.352783051332986e-2 4.79447976340617e-3 0.0 0.0 0.0
YEM Asia Yemen 2020-04-11 1.0 0.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 4.79447976340617e-3 0.0 0.0 0.0
YEM Asia Yemen 2020-04-12 1.0 0.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 4.79447976340617e-3 0.0 0.0 0.0
YEM Asia Yemen 2020-04-13 1.0 0.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 4.79447976340617e-3 0.0 0.0 0.0
YEM Asia Yemen 2020-04-14 1.0 0.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 4.79447976340617e-3 0.0 0.0 0.0
YEM Asia Yemen 2020-04-15 1.0 0.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 4.79447976340617e-3 0.0 0.0 0.0
YEM Asia Yemen 2020-04-16 1.0 0.0 0.143 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 4.79447976340617e-3 0.0 0.0 0.0
YEM Asia Yemen 2020-04-17 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-18 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-19 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-20 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-21 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-22 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-23 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-24 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-25 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-26 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-27 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-28 1.0 0.0 0.0 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.352783051332986e-2 0.0 0.0 0.0 0.0 0.0
YEM Asia Yemen 2020-04-29 6.0 5.0 0.714 0.0 0.0 0.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.20116698307997916 0.1676391525666493 2.393887098651752e-2 0.0 0.0 0.0
YEM Asia Yemen 2020-04-30 6.0 0.0 0.714 2.0 2.0 0.286 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 52.78 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.20116698307997916 0.0 2.393887098651752e-2 6.705566102665972e-2 6.705566102665972e-2 9.58895952681234e-3
YEM Asia Yemen 2020-05-01 7.0 1.0 0.857 2.0 0.0 0.286 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.23469481359330902 3.352783051332986e-2 2.873335074992369e-2 6.705566102665972e-2 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-05-02 10.0 3.0 1.286 2.0 0.0 0.286 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.3352783051332986 0.10058349153998958 4.3116790040142204e-2 6.705566102665972e-2 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-05-03 10.0 0.0 1.286 2.0 0.0 0.286 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.3352783051332986 0.0 4.3116790040142204e-2 6.705566102665972e-2 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-05-04 12.0 2.0 1.571 2.0 0.0 0.286 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.4023339661599583 6.705566102665972e-2 5.2672221736441205e-2 6.705566102665972e-2 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-05-05 22.0 10.0 3.0 4.0 2.0 0.571 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.737612271293257 0.3352783051332986 0.10058349153998958 0.13411132205331944 6.705566102665972e-2 1.914439122311135e-2
YEM Asia Yemen 2020-05-06 25.0 3.0 2.714 5.0 1.0 0.714 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.8381957628332465 0.10058349153998958 9.099453201317724e-2 0.1676391525666493 3.352783051332986e-2 2.393887098651752e-2
YEM Asia Yemen 2020-05-07 25.0 0.0 2.714 5.0 0.0 0.429 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 0.8381957628332465 0.0 9.099453201317724e-2 0.1676391525666493 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-05-08 34.0 9.0 3.857 7.0 2.0 0.714 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 1.1399462374532154 0.30175047461996873 0.12931684228991328 0.23469481359330902 6.705566102665972e-2 2.393887098651752e-2
YEM Asia Yemen 2020-05-09 34.0 0.0 3.429 7.0 0.0 0.714 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 1.1399462374532154 0.0 0.11496693083020809 0.23469481359330902 0.0 2.393887098651752e-2
YEM Asia Yemen 2020-05-10 51.0 17.0 5.857 8.0 1.0 0.857 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 1.7099193561798227 0.5699731187266077 0.19637250331657302 0.2682226441066389 3.352783051332986e-2 2.873335074992369e-2
YEM Asia Yemen 2020-05-11 56.0 5.0 6.286 9.0 1.0 1.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 1.8775585087464721 0.1676391525666493 0.21075594260679148 0.30175047461996873 3.352783051332986e-2 3.352783051332986e-2
YEM Asia Yemen 2020-05-12 65.0 9.0 6.143 10.0 1.0 0.857 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 2.179308983366441 0.30175047461996873 0.20596146284338532 0.3352783051332986 3.352783051332986e-2 2.873335074992369e-2
YEM Asia Yemen 2020-05-13 70.0 5.0 6.429 12.0 2.0 1.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 2.3469481359330904 0.1676391525666493 0.21555042237019767 0.4023339661599583 6.705566102665972e-2 3.352783051332986e-2
YEM Asia Yemen 2020-05-14 85.0 15.0 8.571 12.0 0.0 1.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 2.849865593633038 0.5029174576999479 0.2873670353297502 0.4023339661599583 0.0 3.352783051332986e-2
YEM Asia Yemen 2020-05-15 106.0 21.0 10.286 15.0 3.0 1.143 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 3.5539500344129653 0.704084440779927 0.344867264660111 0.5029174576999479 0.10058349153998958 3.832231027673603e-2
YEM Asia Yemen 2020-05-16 122.0 16.0 12.571 18.0 3.0 1.571 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 4.090395322626243 0.5364452882132777 0.42147835738306966 0.6035009492399375 0.10058349153998958 5.2672221736441205e-2
YEM Asia Yemen 2020-05-17 128.0 6.0 11.0 20.0 2.0 1.714 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 4.291562305706222 0.20116698307997916 0.3688061356466285 0.6705566102665972 6.705566102665972e-2 5.746670149984738e-2
YEM Asia Yemen 2020-05-18 130.0 2.0 10.571 20.0 0.0 1.571 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 4.358617966732882 6.705566102665972e-2 0.35442269635640994 0.6705566102665972 0.0 5.2672221736441205e-2
YEM Asia Yemen 2020-05-19 167.0 37.0 14.571 28.0 8.0 2.571 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 5.599147695726087 1.240529728993205 0.48853401840972943 0.9387792543732361 0.2682226441066389 8.620005224977108e-2
YEM Asia Yemen 2020-05-20 184.0 17.0 16.286 30.0 2.0 2.571 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 6.169120814452694 0.5699731187266077 0.5460342477400901 1.0058349153998958 6.705566102665972e-2 8.620005224977108e-2
YEM Asia Yemen 2020-05-21 197.0 13.0 16.0 33.0 3.0 3.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 6.604982611125982 0.4358617966732882 0.5364452882132777 1.1064184069398852 0.10058349153998958 0.10058349153998958
YEM Asia Yemen 2020-05-22 209.0 12.0 14.714 33.0 0.0 2.571 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 7.00731657728594 0.4023339661599583 0.49332849817313557 1.1064184069398852 0.0 8.620005224977108e-2
YEM Asia Yemen 2020-05-23 212.0 3.0 12.857 39.0 6.0 3.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 7.107900068825931 0.10058349153998958 0.43106731690988204 1.3075853900198646 0.20116698307997916 0.10058349153998958
YEM Asia Yemen 2020-05-24 222.0 10.0 13.429 42.0 3.0 3.143 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 7.4431783739592285 0.3352783051332986 0.45024523596350674 1.408168881559854 0.10058349153998958 0.10537797130339574
YEM Asia Yemen 2020-05-25 233.0 11.0 14.714 44.0 2.0 3.429 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 7.811984509605857 0.3688061356466285 0.49332849817313557 1.475224542586514 6.705566102665972e-2 0.11496693083020809
YEM Asia Yemen 2020-05-26 249.0 16.0 11.714 49.0 5.0 3.0 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 8.348429797819136 0.5364452882132777 0.39274500663314604 1.6428636951531632 0.1676391525666493 0.10058349153998958
YEM Asia Yemen 2020-05-27 256.0 7.0 10.286 53.0 4.0 3.286 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 56.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 8.583124611412444 0.23469481359330902 0.344867264660111 1.7769750172064827 0.13411132205331944 0.11017245106680193
YEM Asia Yemen 2020-05-28 278.0 22.0 11.571 57.0 4.0 3.429 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 9.3207368827057 0.737612271293257 0.3879505268697398 1.9110863392598023 0.13411132205331944 0.11496693083020809
YEM Asia Yemen 2020-05-29 283.0 5.0 10.571 65.0 8.0 4.571 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 9.488376035272351 0.1676391525666493 0.35442269635640994 2.179308983366441 0.2682226441066389 0.15325571327643078
YEM Asia Yemen 2020-05-30 310.0 27.0 14.0 77.0 12.0 5.429 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 10.393627459132256 0.9052514238599063 0.46938962718661803 2.5816429495263993 0.4023339661599583 0.18202259185686784
YEM Asia Yemen 2020-05-31 323.0 13.0 14.429 80.0 3.0 5.429 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 10.829489255805544 0.4358617966732882 0.4837730664768366 2.6822264410663887 0.10058349153998958 0.18202259185686784
YEM Asia Yemen 2020-06-01 354.0 31.0 17.286 84.0 4.0 5.714 1.02 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 11.86885200171877 1.0393627459132255 0.57956207825342 2.816337763119708 0.13411132205331944 0.19157802355316683
YEM Asia Yemen 2020-06-02 399.0 45.0 21.429 87.0 3.0 5.429 1.02 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 13.377604374818615 1.5087523730998438 0.7184678800701455 2.9169212546596976 0.10058349153998958 0.18202259185686784
YEM Asia Yemen 2020-06-03 419.0 20.0 23.286 95.0 8.0 6.0 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 14.048160985085213 0.6705566102665972 0.7807290613333993 3.185143898766337 0.2682226441066389 0.20116698307997916
YEM Asia Yemen 2020-06-04 453.0 34.0 25.0 103.0 8.0 6.571 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 15.188107222538427 1.1399462374532154 0.8381957628332465 3.453366542872976 0.2682226441066389 0.22031137430309053
YEM Asia Yemen 2020-06-05 469.0 16.0 26.571 111.0 8.0 6.571 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 15.724552510751707 0.5364452882132777 0.8908679845696879 3.7215891869796143 0.2682226441066389 0.22031137430309053
YEM Asia Yemen 2020-06-06 482.0 13.0 24.571 111.0 0.0 4.857 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 16.160414307424993 0.4358617966732882 0.823812323543028 3.7215891869796143 0.0 0.16284467280324313
YEM Asia Yemen 2020-06-07 484.0 2.0 23.0 112.0 1.0 4.571 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 16.227469968451654 6.705566102665972e-2 0.7711401018065868 3.7551170174929442 3.352783051332986e-2 0.15325571327643078
YEM Asia Yemen 2020-06-08 496.0 12.0 20.286 112.0 0.0 4.0 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 16.62980393461161 0.4023339661599583 0.6801455697934096 3.7551170174929442 0.0 0.13411132205331944
YEM Asia Yemen 2020-06-09 524.0 28.0 17.857 127.0 15.0 5.714 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 17.56858318898485 0.9387792543732361 0.5987064694765313 4.2580344751928925 0.5029174576999479 0.19157802355316683
YEM Asia Yemen 2020-06-10 560.0 36.0 20.143 129.0 2.0 4.857 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 18.775585087464723 1.207001898479875 0.6753510900300035 4.3250901362195515 6.705566102665972e-2 0.16284467280324313
YEM Asia Yemen 2020-06-11 591.0 31.0 19.714 136.0 7.0 4.714 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 19.814947833377946 1.0393627459132255 0.6609676507397848 4.559784949812862 0.23469481359330902 0.15805019303983697
YEM Asia Yemen 2020-06-12 632.0 41.0 23.286 139.0 3.0 4.0 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 21.189588884424474 1.3746410510465241 0.7807290613333993 4.66036844135285 0.10058349153998958 0.13411132205331944
YEM Asia Yemen 2020-06-13 705.0 73.0 31.857 160.0 21.0 7.0 1.01 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 23.63712051189755 2.44753162747308 1.0680960966631494 5.3644528821327775 0.704084440779927 0.23469481359330902
YEM Asia Yemen 2020-06-14 728.0 23.0 34.857 164.0 4.0 7.429 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 24.408260613704137 0.7711401018065868 1.168679588203139 5.4985642041860965 0.13411132205331944 0.24907825288352753
YEM Asia Yemen 2020-06-15 844.0 116.0 49.714 208.0 44.0 13.714 1.0 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 28.297488953250404 3.8892283395462637 1.6668025661396806 6.973788746772612 1.475224542586514 0.45980066765980576
YEM Asia Yemen 2020-06-16 885.0 41.0 51.571 214.0 6.0 12.429 0.99 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 29.672130004296925 1.3746410510465241 1.7290637474029342 7.17495572985259 0.20116698307997916 0.4167174054501768
YEM Asia Yemen 2020-06-17 902.0 17.0 48.857 244.0 30.0 16.429 0.98 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 30.242103123023533 0.5699731187266077 1.638069215389757 8.180790645252486 1.0058349153998958 0.5508287275034962
YEM Asia Yemen 2020-06-18 909.0 7.0 45.429 248.0 4.0 16.0 0.98 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 30.476797936616844 0.23469481359330902 1.5231358123900622 8.314901967305804 0.13411132205331944 0.5364452882132777
YEM Asia Yemen 2020-06-19 919.0 10.0 41.0 251.0 3.0 16.0 0.97 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 30.812076241750137 0.3352783051332986 1.3746410510465241 8.415485458845794 0.10058349153998958 0.5364452882132777
YEM Asia Yemen 2020-06-20 922.0 3.0 31.0 254.0 3.0 13.429 0.97 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 30.91265973329013 0.10058349153998958 1.0393627459132255 8.516068950385785 0.10058349153998958 0.45024523596350674
YEM Asia Yemen 2020-06-21 941.0 19.0 30.429 256.0 2.0 13.143 0.96 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 31.5496885130434 0.6370287797532673 1.0202183546901142 8.583124611412444 6.705566102665972e-2 0.44065627643669436
YEM Asia Yemen 2020-06-22 967.0 26.0 17.571 257.0 1.0 7.0 0.96 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 32.42141210638997 0.8717235933465765 0.589117509949719 8.616652441925774 3.352783051332986e-2 0.23469481359330902
YEM Asia Yemen 2020-06-23 992.0 25.0 15.286 261.0 4.0 6.714 0.96 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 33.25960786922322 0.8381957628332465 0.5125064172267602 8.750763763979093 0.13411132205331944 0.2251058540664967
YEM Asia Yemen 2020-06-24 1015.0 23.0 16.143 274.0 13.0 4.286 0.96 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 34.03074797102981 0.7711401018065868 0.5412397679766839 9.18662556065238 0.4358617966732882 0.14370028158013176
YEM Asia Yemen 2020-06-25 1076.0 61.0 23.857 288.0 14.0 5.714 0.96 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 36.07594563234293 2.0451976613131215 0.7998734525565105 9.656015187839 0.46938962718661803 0.19157802355316683
YEM Asia Yemen 2020-06-26 1089.0 13.0 24.286 293.0 5.0 6.0 0.95 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 36.511807429016216 0.4358617966732882 0.8142568918467291 9.82365434040565 0.1676391525666493 0.20116698307997916
YEM Asia Yemen 2020-06-27 1103.0 14.0 25.857 296.0 3.0 6.0 0.95 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 36.98119705620284 0.46938962718661803 0.8669291135831702 9.92423783194564 0.10058349153998958 0.20116698307997916
YEM Asia Yemen 2020-06-28 1118.0 15.0 25.286 302.0 6.0 6.571 0.94 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 37.48411451390278 0.5029174576999479 0.8477847223600589 10.125404815025618 0.20116698307997916 0.22031137430309053
YEM Asia Yemen 2020-06-29 1128.0 10.0 23.0 304.0 2.0 6.714 0.94 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 37.81939281903608 0.3352783051332986 0.7711401018065868 10.192460476052277 6.705566102665972e-2 0.2251058540664967
YEM Asia Yemen 2020-06-30 1158.0 30.0 23.714 312.0 8.0 7.286 0.94 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 38.82522773443598 1.0058349153998958 0.7950789727931042 10.460683120158917 0.2682226441066389 0.24428377312012134
YEM Asia Yemen 2020-07-01 1190.0 32.0 25.0 318.0 6.0 6.286 0.94 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 39.898118310862536 1.0728905764265555 0.8381957628332465 10.661850103238894 0.20116698307997916 0.21075594260679148
YEM Asia Yemen 2020-07-02 1221.0 31.0 20.714 325.0 7.0 5.286 0.94 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 40.93748105677576 1.0393627459132255 0.6944954812531148 10.896544916832205 0.23469481359330902 0.17722811209346162
YEM Asia Yemen 2020-07-03 1240.0 19.0 21.571 335.0 10.0 6.0 0.93 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 41.574509836529025 0.6370287797532673 0.7232288320030386 11.231823221965504 0.3352783051332986 0.20116698307997916
YEM Asia Yemen 2020-07-04 1248.0 8.0 20.714 337.0 2.0 5.857 0.93 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 41.84273248063567 0.2682226441066389 0.6944954812531148 11.298878882992163 6.705566102665972e-2 0.19637250331657302
YEM Asia Yemen 2020-07-05 1265.0 17.0 21.0 338.0 1.0 5.143 0.93 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 42.412705599362276 0.5699731187266077 0.704084440779927 11.332406713505492 3.352783051332986e-2 0.1724336323300555
YEM Asia Yemen 2020-07-06 1284.0 19.0 22.286 345.0 7.0 5.857 0.92 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 43.04973437911554 0.6370287797532673 0.7472012308200693 11.567101527098803 0.23469481359330902 0.19637250331657302
YEM Asia Yemen 2020-07-07 1297.0 13.0 19.857 348.0 3.0 5.143 0.92 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 43.485596175788835 0.4358617966732882 0.665762130503191 11.66768501863879 0.10058349153998958 0.1724336323300555
YEM Asia Yemen 2020-07-08 1318.0 21.0 18.286 351.0 3.0 4.714 0.92 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 44.18968061656875 0.704084440779927 0.61308990876675 11.76826851017878 0.10058349153998958 0.15805019303983697
YEM Asia Yemen 2020-07-09 1356.0 38.0 19.286 361.0 10.0 5.143 0.92 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 45.463738176075296 1.2740575595065347 0.6466177392800798 12.103546815312079 0.3352783051332986 0.1724336323300555
YEM Asia Yemen 2020-07-10 1380.0 24.0 20.0 364.0 3.0 4.143 0.92 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 46.26840610839521 0.8046679323199166 0.6705566102665972 12.204130306852068 0.10058349153998958 0.1389058018167256
YEM Asia Yemen 2020-07-11 1389.0 9.0 20.143 365.0 1.0 4.0 0.92 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 46.57015658301518 0.30175047461996873 0.6753510900300035 12.2376581373654 3.352783051332986e-2 0.13411132205331944
YEM Asia Yemen 2020-07-12 1465.0 76.0 28.571 417.0 52.0 11.286 0.92 null null null null null null null null 0.0 null 0.0 null null null null null null 58.33 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 49.118271702028245 2.5481151190130693 0.9579236455963475 13.981105324058552 1.743447186693153 0.3783950951734408
YEM Asia Yemen 2020-07-13 1498.0 33.0 30.571 424.0 7.0 11.286 0.91 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 50.22469010896813 1.1064184069398852 1.024979306623007 14.215800137651861 0.23469481359330902 0.3783950951734408
YEM Asia Yemen 2020-07-14 1516.0 18.0 31.286 429.0 5.0 11.571 0.9 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 50.82819105820807 0.6035009492399375 1.0489517054400381 14.383439290218512 0.1676391525666493 0.3879505268697398
YEM Asia Yemen 2020-07-15 1526.0 10.0 29.714 433.0 4.0 11.714 0.9 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 51.16346936334137 0.3352783051332986 0.9962459558730835 14.51755061227183 0.13411132205331944 0.39274500663314604
YEM Asia Yemen 2020-07-16 1552.0 26.0 28.0 438.0 5.0 11.0 0.9 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 52.03519295668794 0.8717235933465765 0.9387792543732361 14.685189764838478 0.1676391525666493 0.3688061356466285
YEM Asia Yemen 2020-07-17 1576.0 24.0 28.0 440.0 2.0 10.857 0.89 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 52.83986088900786 0.8046679323199166 0.9387792543732361 14.752245425865139 6.705566102665972e-2 0.36401165588322226
YEM Asia Yemen 2020-07-18 1581.0 5.0 27.429 443.0 3.0 11.143 0.89 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 53.00750004157451 0.1676391525666493 0.9196348631501248 14.852828917405128 0.10058349153998958 0.37360061541003464
YEM Asia Yemen 2020-07-19 1606.0 25.0 20.143 445.0 2.0 4.0 0.88 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 53.845695804407754 0.8381957628332465 0.6753510900300035 14.91988457843179 6.705566102665972e-2 0.13411132205331944
YEM Asia Yemen 2020-07-20 1619.0 13.0 17.286 447.0 2.0 3.286 0.88 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 54.28155760108104 0.4358617966732882 0.57956207825342 14.986940239458448 6.705566102665972e-2 0.11017245106680193
YEM Asia Yemen 2020-07-21 1629.0 10.0 16.143 456.0 9.0 3.857 0.88 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 54.61683590621434 0.3352783051332986 0.5412397679766839 15.288690714078419 0.30175047461996873 0.12931684228991328
YEM Asia Yemen 2020-07-22 1640.0 11.0 16.286 458.0 2.0 3.571 0.88 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 54.98564204186097 0.3688061356466285 0.5460342477400901 15.355746375105076 6.705566102665972e-2 0.11972788276310095
YEM Asia Yemen 2020-07-23 1654.0 14.0 14.571 461.0 3.0 3.286 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 55.45503166904759 0.46938962718661803 0.48853401840972943 15.456329866645065 0.10058349153998958 0.11017245106680193
YEM Asia Yemen 2020-07-24 1674.0 20.0 14.0 469.0 8.0 4.143 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 56.12558827931419 0.6705566102665972 0.46938962718661803 15.724552510751707 0.2682226441066389 0.1389058018167256
YEM Asia Yemen 2020-07-25 1674.0 0.0 13.286 474.0 5.0 4.429 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 56.12558827931419 0.0 0.4454507562001005 15.892191663318354 0.1676391525666493 0.14849476134353798
YEM Asia Yemen 2020-07-26 1681.0 7.0 10.714 479.0 5.0 4.857 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 56.360283092907494 0.23469481359330902 0.35921717611981613 16.059830815885 0.1676391525666493 0.16284467280324313
YEM Asia Yemen 2020-07-27 1691.0 10.0 10.286 483.0 4.0 5.143 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 56.695561398040795 0.3352783051332986 0.344867264660111 16.193942137938322 0.13411132205331944 0.1724336323300555
YEM Asia Yemen 2020-07-28 1703.0 12.0 10.571 484.0 1.0 4.0 0.86 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 57.09789536420075 0.4023339661599583 0.35442269635640994 16.227469968451654 3.352783051332986e-2 0.13411132205331944
YEM Asia Yemen 2020-07-29 1711.0 8.0 10.143 485.0 1.0 3.857 0.86 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 57.36611800830739 0.2682226441066389 0.3400727848967048 16.260997798964983 3.352783051332986e-2 0.12931684228991328
YEM Asia Yemen 2020-07-30 1726.0 15.0 10.286 487.0 2.0 3.714 0.86 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 57.86903546600734 0.5029174576999479 0.344867264660111 16.328053459991644 6.705566102665972e-2 0.1245223625265071
YEM Asia Yemen 2020-07-31 1728.0 2.0 7.714 493.0 6.0 3.429 0.86 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 57.936091127034004 6.705566102665972e-2 0.25863368457982655 16.52922044307162 0.20116698307997916 0.11496693083020809
YEM Asia Yemen 2020-08-01 1730.0 2.0 8.0 494.0 1.0 2.857 0.86 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 58.003146788060654 6.705566102665972e-2 0.2682226441066389 16.56274827358495 3.352783051332986e-2 9.578901177658342e-2
YEM Asia Yemen 2020-08-02 1734.0 4.0 7.571 497.0 3.0 2.571 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 58.13725811011398 0.13411132205331944 0.25383920481642036 16.66333176512494 0.10058349153998958 8.620005224977108e-2
YEM Asia Yemen 2020-08-03 1734.0 0.0 6.143 499.0 2.0 2.286 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 58.13725811011398 0.0 0.20596146284338532 16.730387426151598 6.705566102665972e-2 7.664462055347206e-2
YEM Asia Yemen 2020-08-04 1760.0 26.0 8.143 506.0 7.0 3.143 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 59.008981703460556 0.8717235933465765 0.27301712387004506 16.96508223974491 0.23469481359330902 0.10537797130339574
YEM Asia Yemen 2020-08-05 1763.0 3.0 7.429 508.0 2.0 3.286 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 59.10956519500054 0.10058349153998958 0.24907825288352753 17.03213790077157 6.705566102665972e-2 0.11017245106680193
YEM Asia Yemen 2020-08-06 1768.0 5.0 6.0 508.0 0.0 3.0 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 59.2772043475672 0.1676391525666493 0.20116698307997916 17.03213790077157 0.0 0.10058349153998958
YEM Asia Yemen 2020-08-07 1796.0 28.0 9.714 512.0 4.0 2.714 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 60.21598360194043 0.9387792543732361 0.32568934560648627 17.166249222824888 0.13411132205331944 9.099453201317724e-2
YEM Asia Yemen 2020-08-08 1797.0 1.0 9.571 512.0 0.0 2.571 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 60.24951143245376 3.352783051332986e-2 0.3208948658430801 17.166249222824888 0.0 8.620005224977108e-2
YEM Asia Yemen 2020-08-09 1804.0 7.0 10.0 515.0 3.0 2.571 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 60.484206246047066 0.23469481359330902 0.3352783051332986 17.266832714364877 0.10058349153998958 8.620005224977108e-2
YEM Asia Yemen 2020-08-10 1832.0 28.0 14.0 518.0 3.0 2.714 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 61.4229855004203 0.9387792543732361 0.46938962718661803 17.36741620590487 0.10058349153998958 9.099453201317724e-2
YEM Asia Yemen 2020-08-11 1831.0 -1.0 10.143 523.0 5.0 2.429 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 61.38945766990697 -3.352783051332986e-2 0.3400727848967048 17.535055358471517 0.1676391525666493 8.143910031687823e-2
YEM Asia Yemen 2020-08-12 1841.0 10.0 11.143 528.0 5.0 2.857 0.87 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 61.724735975040275 0.3352783051332986 0.37360061541003464 17.702694511038164 0.1676391525666493 9.578901177658342e-2
YEM Asia Yemen 2020-08-13 1847.0 6.0 11.286 528.0 0.0 2.857 0.86 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 61.92590295812025 0.20116698307997916 0.3783950951734408 17.702694511038164 0.0 9.578901177658342e-2
YEM Asia Yemen 2020-08-14 1858.0 11.0 8.857 528.0 0.0 2.286 0.86 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 62.29470909376688 0.3688061356466285 0.29695599485656254 17.702694511038164 0.0 7.664462055347206e-2
YEM Asia Yemen 2020-08-15 1858.0 0.0 8.714 528.0 0.0 2.286 0.86 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 62.29470909376688 0.0 0.2921615150931564 17.702694511038164 0.0 7.664462055347206e-2
YEM Asia Yemen 2020-08-16 1869.0 11.0 9.286 530.0 2.0 2.143 0.85 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 62.66351522941351 0.3688061356466285 0.31133943414678106 17.76975017206483 6.705566102665972e-2 7.185014079006588e-2
YEM Asia Yemen 2020-08-17 1882.0 13.0 7.143 535.0 5.0 2.429 0.85 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 63.0993770260868 0.4358617966732882 0.23948929335671518 17.937389324631475 0.1676391525666493 8.143910031687823e-2
YEM Asia Yemen 2020-08-18 1889.0 7.0 8.286 537.0 2.0 2.0 0.85 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 63.33407183968011 0.23469481359330902 0.2778116036334512 18.004444985658136 6.705566102665972e-2 6.705566102665972e-2
YEM Asia Yemen 2020-08-19 1892.0 3.0 7.286 539.0 2.0 1.571 0.85 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 63.43465533122009 0.10058349153998958 0.24428377312012134 18.071500646684793 6.705566102665972e-2 5.2672221736441205e-2
YEM Asia Yemen 2020-08-20 1899.0 7.0 7.429 541.0 2.0 1.857 0.84 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 63.6693501448134 0.23469481359330902 0.24907825288352753 18.138556307711458 6.705566102665972e-2 6.226118126325355e-2
YEM Asia Yemen 2020-08-21 1906.0 7.0 6.857 542.0 1.0 2.0 0.84 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 63.904044958406715 0.23469481359330902 0.22990033382990288 18.172084138224783 3.352783051332986e-2 6.705566102665972e-2
YEM Asia Yemen 2020-08-22 1907.0 1.0 7.0 546.0 4.0 2.571 0.84 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 63.93757278892005 3.352783051332986e-2 0.23469481359330902 18.306195460278104 0.13411132205331944 8.620005224977108e-2
YEM Asia Yemen 2020-08-23 1911.0 4.0 6.0 553.0 7.0 3.286 0.84 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 64.07168411097337 0.13411132205331944 0.20116698307997916 18.540890273871412 0.23469481359330902 0.11017245106680193
YEM Asia Yemen 2020-08-24 1916.0 5.0 4.857 555.0 2.0 2.857 0.84 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 64.23932326354 0.1676391525666493 0.16284467280324313 18.607945934898073 6.705566102665972e-2 9.578901177658342e-2
YEM Asia Yemen 2020-08-25 1924.0 8.0 5.0 557.0 2.0 2.857 0.84 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 64.50754590764666 0.2682226441066389 0.1676391525666493 18.675001595924734 6.705566102665972e-2 9.578901177658342e-2
YEM Asia Yemen 2020-08-26 1930.0 6.0 5.429 560.0 3.0 3.0 0.84 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 64.70871289072663 0.20116698307997916 0.18202259185686784 18.775585087464723 0.10058349153998958 0.10058349153998958
YEM Asia Yemen 2020-08-27 1933.0 3.0 4.857 562.0 2.0 3.0 0.84 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 64.80929638226662 0.10058349153998958 0.16284467280324313 18.84264074849138 6.705566102665972e-2 0.10058349153998958
YEM Asia Yemen 2020-08-28 1943.0 10.0 5.286 563.0 1.0 3.0 0.83 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 65.14457468739992 0.3352783051332986 0.17722811209346162 18.876168579004712 3.352783051332986e-2 0.10058349153998958
YEM Asia Yemen 2020-08-29 1946.0 3.0 5.571 563.0 0.0 2.429 0.83 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 65.2451581789399 0.10058349153998958 0.18678354378976064 18.876168579004712 0.0 8.143910031687823e-2
YEM Asia Yemen 2020-08-30 1953.0 7.0 6.0 564.0 1.0 1.571 0.83 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 65.47985299253321 0.23469481359330902 0.20116698307997916 18.90969640951804 3.352783051332986e-2 5.2672221736441205e-2
YEM Asia Yemen 2020-08-31 1958.0 5.0 6.0 566.0 2.0 1.571 0.83 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 65.64749214509986 0.1676391525666493 0.20116698307997916 18.976752070544702 6.705566102665972e-2 5.2672221736441205e-2
YEM Asia Yemen 2020-09-01 1962.0 4.0 5.429 570.0 4.0 1.857 0.83 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 65.78160346715319 0.13411132205331944 0.18202259185686784 19.110863392598024 0.13411132205331944 6.226118126325355e-2
YEM Asia Yemen 2020-09-02 1976.0 14.0 6.571 571.0 1.0 1.571 0.83 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 66.2509930943398 0.46938962718661803 0.22031137430309053 19.14439122311135 3.352783051332986e-2 5.2672221736441205e-2
YEM Asia Yemen 2020-09-03 1979.0 3.0 6.571 571.0 0.0 1.286 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 66.3515765858798 0.10058349153998958 0.22031137430309053 19.14439122311135 0.0 4.3116790040142204e-2
YEM Asia Yemen 2020-09-04 1983.0 4.0 5.714 572.0 1.0 1.286 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 66.48568790793311 0.13411132205331944 0.19157802355316683 19.17791905362468 3.352783051332986e-2 4.3116790040142204e-2
YEM Asia Yemen 2020-09-05 1983.0 0.0 5.286 572.0 0.0 1.286 0.81 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 66.48568790793311 0.0 0.17722811209346162 19.17791905362468 0.0 4.3116790040142204e-2
YEM Asia Yemen 2020-09-06 1987.0 4.0 4.857 572.0 0.0 1.143 0.81 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 66.61979922998644 0.13411132205331944 0.16284467280324313 19.17791905362468 0.0 3.832231027673603e-2
YEM Asia Yemen 2020-09-07 1989.0 2.0 4.429 573.0 1.0 1.0 0.81 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 66.68685489101308 6.705566102665972e-2 0.14849476134353798 19.21144688413801 3.352783051332986e-2 3.352783051332986e-2
YEM Asia Yemen 2020-09-08 1994.0 5.0 4.571 576.0 3.0 0.857 0.8 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 66.85449404357975 0.1676391525666493 0.15325571327643078 19.312030375678 0.10058349153998958 2.873335074992369e-2
YEM Asia Yemen 2020-09-09 1999.0 5.0 3.286 576.0 0.0 0.714 0.8 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.0221331961464 0.1676391525666493 0.11017245106680193 19.312030375678 0.0 2.393887098651752e-2
YEM Asia Yemen 2020-09-10 2003.0 4.0 3.429 580.0 4.0 1.286 0.8 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.15624451819971 0.13411132205331944 0.11496693083020809 19.44614169773132 0.13411132205331944 4.3116790040142204e-2
YEM Asia Yemen 2020-09-11 2007.0 4.0 3.429 582.0 2.0 1.429 0.79 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.29035584025303 0.13411132205331944 0.11496693083020809 19.513197358757978 6.705566102665972e-2 4.791126980354837e-2
YEM Asia Yemen 2020-09-12 2009.0 2.0 3.714 582.0 0.0 1.429 0.79 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.35741150127969 6.705566102665972e-2 0.1245223625265071 19.513197358757978 0.0 4.791126980354837e-2
YEM Asia Yemen 2020-09-13 2011.0 2.0 3.429 583.0 1.0 1.571 0.79 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.42446716230636 6.705566102665972e-2 0.11496693083020809 19.54672518927131 3.352783051332986e-2 5.2672221736441205e-2
YEM Asia Yemen 2020-09-14 2013.0 2.0 3.429 583.0 0.0 1.429 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.49152282333301 6.705566102665972e-2 0.11496693083020809 19.54672518927131 0.0 4.791126980354837e-2
YEM Asia Yemen 2020-09-15 2016.0 3.0 3.143 583.0 0.0 1.0 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.592106314873 0.10058349153998958 0.10537797130339574 19.54672518927131 0.0 3.352783051332986e-2
YEM Asia Yemen 2020-09-16 2019.0 3.0 2.857 583.0 0.0 1.0 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.69268980641299 0.10058349153998958 9.578901177658342e-2 19.54672518927131 0.0 3.352783051332986e-2
YEM Asia Yemen 2020-09-17 2022.0 3.0 2.714 585.0 2.0 0.714 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.79327329795298 0.10058349153998958 9.099453201317724e-2 19.613780850297967 6.705566102665972e-2 2.393887098651752e-2
YEM Asia Yemen 2020-09-18 2024.0 2.0 2.429 585.0 0.0 0.429 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.86032895897964 6.705566102665972e-2 8.143910031687823e-2 19.613780850297967 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-09-19 2026.0 2.0 2.429 585.0 0.0 0.429 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.9273846200063 6.705566102665972e-2 8.143910031687823e-2 19.613780850297967 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-09-20 2026.0 0.0 2.143 586.0 1.0 0.429 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.9273846200063 0.0 7.185014079006588e-2 19.6473086808113 3.352783051332986e-2 1.438343929021851e-2
YEM Asia Yemen 2020-09-21 2028.0 2.0 2.143 586.0 0.0 0.429 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.99444028103296 6.705566102665972e-2 7.185014079006588e-2 19.6473086808113 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-09-22 2028.0 0.0 1.714 586.0 0.0 0.429 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 67.99444028103296 0.0 5.746670149984738e-2 19.6473086808113 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-09-23 2029.0 1.0 1.429 586.0 0.0 0.429 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.02796811154629 3.352783051332986e-2 4.791126980354837e-2 19.6473086808113 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-09-24 2029.0 0.0 1.0 586.0 0.0 0.143 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.02796811154629 0.0 3.352783051332986e-2 19.6473086808113 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-09-25 2029.0 0.0 0.714 587.0 1.0 0.286 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.02796811154629 0.0 2.393887098651752e-2 19.680836511324628 3.352783051332986e-2 9.58895952681234e-3
YEM Asia Yemen 2020-09-26 2030.0 1.0 0.571 587.0 0.0 0.286 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.06149594205962 3.352783051332986e-2 1.914439122311135e-2 19.680836511324628 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-09-27 2030.0 0.0 0.571 587.0 0.0 0.143 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.06149594205962 0.0 1.914439122311135e-2 19.680836511324628 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-09-28 2031.0 1.0 0.429 587.0 0.0 0.143 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 31.48 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.09502377257294 3.352783051332986e-2 1.438343929021851e-2 19.680836511324628 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-09-29 2031.0 0.0 0.429 587.0 0.0 0.143 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.09502377257294 0.0 1.438343929021851e-2 19.680836511324628 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-09-30 2034.0 3.0 0.714 587.0 0.0 0.143 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.19560726411294 0.10058349153998958 2.393887098651752e-2 19.680836511324628 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-10-01 2039.0 5.0 1.429 587.0 0.0 0.143 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.36324641667959 0.1676391525666493 4.791126980354837e-2 19.680836511324628 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-10-02 2040.0 1.0 1.571 589.0 2.0 0.286 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.39677424719292 3.352783051332986e-2 5.2672221736441205e-2 19.74789217235129 6.705566102665972e-2 9.58895952681234e-3
YEM Asia Yemen 2020-10-03 2041.0 1.0 1.571 589.0 0.0 0.286 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.43030207770624 3.352783051332986e-2 5.2672221736441205e-2 19.74789217235129 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-10-04 2041.0 0.0 1.571 591.0 2.0 0.571 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.43030207770624 0.0 5.2672221736441205e-2 19.814947833377946 6.705566102665972e-2 1.914439122311135e-2
YEM Asia Yemen 2020-10-05 2041.0 0.0 1.429 592.0 1.0 0.714 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.43030207770624 0.0 4.791126980354837e-2 19.84847566389128 3.352783051332986e-2 2.393887098651752e-2
YEM Asia Yemen 2020-10-06 2047.0 6.0 2.286 593.0 1.0 0.857 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.63146906078623 0.20116698307997916 7.664462055347206e-2 19.882003494404607 3.352783051332986e-2 2.873335074992369e-2
YEM Asia Yemen 2020-10-07 2049.0 2.0 2.143 593.0 0.0 0.857 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.69852472181289 6.705566102665972e-2 7.185014079006588e-2 19.882003494404607 0.0 2.873335074992369e-2
YEM Asia Yemen 2020-10-08 2050.0 1.0 1.571 593.0 0.0 0.857 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.73205255232621 3.352783051332986e-2 5.2672221736441205e-2 19.882003494404607 0.0 2.873335074992369e-2
YEM Asia Yemen 2020-10-09 2051.0 1.0 1.571 593.0 0.0 0.571 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.76558038283954 3.352783051332986e-2 5.2672221736441205e-2 19.882003494404607 0.0 1.914439122311135e-2
YEM Asia Yemen 2020-10-10 2051.0 0.0 1.429 595.0 2.0 0.857 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.76558038283954 0.0 4.791126980354837e-2 19.949059155431268 6.705566102665972e-2 2.873335074992369e-2
YEM Asia Yemen 2020-10-11 2052.0 1.0 1.571 595.0 0.0 0.571 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.79910821335287 3.352783051332986e-2 5.2672221736441205e-2 19.949059155431268 0.0 1.914439122311135e-2
YEM Asia Yemen 2020-10-12 2052.0 0.0 1.571 596.0 1.0 0.571 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 45.37 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.79910821335287 0.0 5.2672221736441205e-2 19.982586985944597 3.352783051332986e-2 1.914439122311135e-2
YEM Asia Yemen 2020-10-13 2053.0 1.0 0.857 596.0 0.0 0.429 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.83263604386622 3.352783051332986e-2 2.873335074992369e-2 19.982586985944597 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-10-14 2053.0 0.0 0.571 596.0 0.0 0.429 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.83263604386622 0.0 1.914439122311135e-2 19.982586985944597 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-10-15 2053.0 0.0 0.429 596.0 0.0 0.429 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.83263604386622 0.0 1.438343929021851e-2 19.982586985944597 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-10-16 2055.0 2.0 0.571 596.0 0.0 0.429 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.89969170489286 6.705566102665972e-2 1.914439122311135e-2 19.982586985944597 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-10-17 2055.0 0.0 0.571 596.0 0.0 0.143 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.89969170489286 0.0 1.914439122311135e-2 19.982586985944597 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-10-18 2056.0 1.0 0.571 597.0 1.0 0.286 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.9332195354062 3.352783051332986e-2 1.914439122311135e-2 20.016114816457925 3.352783051332986e-2 9.58895952681234e-3
YEM Asia Yemen 2020-10-19 2056.0 0.0 0.571 597.0 0.0 0.143 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.9332195354062 0.0 1.914439122311135e-2 20.016114816457925 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-10-20 2057.0 1.0 0.571 597.0 0.0 0.143 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.96674736591952 3.352783051332986e-2 1.914439122311135e-2 20.016114816457925 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-10-21 2057.0 0.0 0.571 597.0 0.0 0.143 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.96674736591952 0.0 1.914439122311135e-2 20.016114816457925 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-10-22 2057.0 0.0 0.571 597.0 0.0 0.143 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 68.96674736591952 0.0 1.914439122311135e-2 20.016114816457925 0.0 4.79447976340617e-3
YEM Asia Yemen 2020-10-23 2060.0 3.0 0.714 599.0 2.0 0.429 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.06733085745951 0.10058349153998958 2.393887098651752e-2 20.083170477484586 6.705566102665972e-2 1.438343929021851e-2
YEM Asia Yemen 2020-10-24 2060.0 0.0 0.714 599.0 0.0 0.429 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.06733085745951 0.0 2.393887098651752e-2 20.083170477484586 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-10-25 2060.0 0.0 0.571 599.0 0.0 0.286 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.06733085745951 0.0 1.914439122311135e-2 20.083170477484586 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-10-26 2060.0 0.0 0.571 599.0 0.0 0.286 0.74 null null null null null null null null 0.0 null 0.0 null null null null null null 40.74 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.06733085745951 0.0 1.914439122311135e-2 20.083170477484586 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-10-27 2060.0 0.0 0.429 599.0 0.0 0.286 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 29.63 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.06733085745951 0.0 1.438343929021851e-2 20.083170477484586 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-10-28 2061.0 1.0 0.571 599.0 0.0 0.286 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 29.63 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.10085868797285 3.352783051332986e-2 1.914439122311135e-2 20.083170477484586 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-10-29 2062.0 1.0 0.714 599.0 0.0 0.286 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 29.63 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.13438651848617 3.352783051332986e-2 2.393887098651752e-2 20.083170477484586 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-10-30 2062.0 0.0 0.286 599.0 0.0 0.0 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.13438651848617 0.0 9.58895952681234e-3 20.083170477484586 0.0 0.0
YEM Asia Yemen 2020-10-31 2063.0 1.0 0.429 599.0 0.0 0.0 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.1679143489995 3.352783051332986e-2 1.438343929021851e-2 20.083170477484586 0.0 0.0
YEM Asia Yemen 2020-11-01 2063.0 0.0 0.429 600.0 1.0 0.143 0.75 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.1679143489995 0.0 1.438343929021851e-2 20.116698307997915 3.352783051332986e-2 4.79447976340617e-3
YEM Asia Yemen 2020-11-02 2063.0 0.0 0.429 601.0 1.0 0.286 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.1679143489995 0.0 1.438343929021851e-2 20.150226138511247 3.352783051332986e-2 9.58895952681234e-3
YEM Asia Yemen 2020-11-03 2063.0 0.0 0.429 601.0 0.0 0.286 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.1679143489995 0.0 1.438343929021851e-2 20.150226138511247 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-11-04 2063.0 0.0 0.286 601.0 0.0 0.286 0.76 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.1679143489995 0.0 9.58895952681234e-3 20.150226138511247 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-11-05 2063.0 0.0 0.143 601.0 0.0 0.286 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.1679143489995 0.0 4.79447976340617e-3 20.150226138511247 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-11-06 2067.0 4.0 0.714 602.0 1.0 0.429 0.77 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.30202567105282 0.13411132205331944 2.393887098651752e-2 20.183753969024576 3.352783051332986e-2 1.438343929021851e-2
YEM Asia Yemen 2020-11-07 2070.0 3.0 1.0 602.0 0.0 0.429 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.40260916259281 0.10058349153998958 3.352783051332986e-2 20.183753969024576 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-11-08 2070.0 0.0 1.0 602.0 0.0 0.286 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.40260916259281 0.0 3.352783051332986e-2 20.183753969024576 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-11-09 2071.0 1.0 1.143 605.0 3.0 0.571 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.43613699310615 3.352783051332986e-2 3.832231027673603e-2 20.284337460564565 0.10058349153998958 1.914439122311135e-2
YEM Asia Yemen 2020-11-10 2071.0 0.0 1.143 605.0 0.0 0.571 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.43613699310615 0.0 3.832231027673603e-2 20.284337460564565 0.0 1.914439122311135e-2
YEM Asia Yemen 2020-11-11 2071.0 0.0 1.143 605.0 0.0 0.571 0.78 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.43613699310615 0.0 3.832231027673603e-2 20.284337460564565 0.0 1.914439122311135e-2
YEM Asia Yemen 2020-11-12 2071.0 0.0 1.143 605.0 0.0 0.571 0.79 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.43613699310615 0.0 3.832231027673603e-2 20.284337460564565 0.0 1.914439122311135e-2
YEM Asia Yemen 2020-11-13 2072.0 1.0 0.714 605.0 0.0 0.429 0.79 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.46966482361948 3.352783051332986e-2 2.393887098651752e-2 20.284337460564565 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-11-14 2072.0 0.0 0.286 605.0 0.0 0.429 0.8 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.46966482361948 0.0 9.58895952681234e-3 20.284337460564565 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-11-15 2072.0 0.0 0.286 605.0 0.0 0.429 0.8 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.46966482361948 0.0 9.58895952681234e-3 20.284337460564565 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-11-16 2078.0 6.0 1.0 605.0 0.0 0.0 0.81 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.67083180669945 0.20116698307997916 3.352783051332986e-2 20.284337460564565 0.0 0.0
YEM Asia Yemen 2020-11-17 2081.0 3.0 1.429 607.0 2.0 0.286 0.81 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.77141529823943 0.10058349153998958 4.791126980354837e-2 20.351393121591226 6.705566102665972e-2 9.58895952681234e-3
YEM Asia Yemen 2020-11-18 2083.0 2.0 1.714 607.0 0.0 0.286 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.8384709592661 6.705566102665972e-2 5.746670149984738e-2 20.351393121591226 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-11-19 2086.0 3.0 2.143 608.0 1.0 0.429 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 69.93905445080608 0.10058349153998958 7.185014079006588e-2 20.384920952104554 3.352783051332986e-2 1.438343929021851e-2
YEM Asia Yemen 2020-11-20 2090.0 4.0 2.571 608.0 0.0 0.429 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 70.07316577285941 0.13411132205331944 8.620005224977108e-2 20.384920952104554 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-11-21 2093.0 3.0 3.0 608.0 0.0 0.429 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 70.17374926439939 0.10058349153998958 0.10058349153998958 20.384920952104554 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-11-22 2099.0 6.0 3.857 608.0 0.0 0.429 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 70.37491624747938 0.20116698307997916 0.12931684228991328 20.384920952104554 0.0 1.438343929021851e-2
YEM Asia Yemen 2020-11-23 2107.0 8.0 4.143 609.0 1.0 0.571 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 70.643138891586 0.2682226441066389 0.1389058018167256 20.418448782617887 3.352783051332986e-2 1.914439122311135e-2
YEM Asia Yemen 2020-11-24 2114.0 7.0 4.714 609.0 0.0 0.286 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 70.87783370517933 0.23469481359330902 0.15805019303983697 20.418448782617887 0.0 9.58895952681234e-3
YEM Asia Yemen 2020-11-25 2124.0 10.0 5.857 611.0 2.0 0.571 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 71.21311201031263 0.3352783051332986 0.19637250331657302 20.485504443644544 6.705566102665972e-2 1.914439122311135e-2
YEM Asia Yemen 2020-11-26 2137.0 13.0 7.286 612.0 1.0 0.571 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 71.64897380698591 0.4358617966732882 0.24428377312012134 20.519032274157876 3.352783051332986e-2 1.914439122311135e-2
YEM Asia Yemen 2020-11-27 2148.0 11.0 8.286 614.0 2.0 0.857 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 72.01777994263254 0.3688061356466285 0.2778116036334512 20.586087935184533 6.705566102665972e-2 2.873335074992369e-2
YEM Asia Yemen 2020-11-28 2160.0 12.0 9.571 615.0 1.0 1.0 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 72.4201139087925 0.4023339661599583 0.3208948658430801 20.619615765697866 3.352783051332986e-2 3.352783051332986e-2
YEM Asia Yemen 2020-11-29 2177.0 17.0 11.143 617.0 2.0 1.286 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 72.99008702751911 0.5699731187266077 0.37360061541003464 20.686671426724523 6.705566102665972e-2 4.3116790040142204e-2
YEM Asia Yemen 2020-11-30 2191.0 14.0 12.0 619.0 2.0 1.429 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 73.45947665470572 0.46938962718661803 0.4023339661599583 20.753727087751184 6.705566102665972e-2 4.791126980354837e-2
YEM Asia Yemen 2020-12-01 2197.0 6.0 11.857 619.0 0.0 1.429 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 73.6606436377857 0.20116698307997916 0.3975394863965521 20.753727087751184 0.0 4.791126980354837e-2
YEM Asia Yemen 2020-12-02 2217.0 20.0 13.286 621.0 2.0 1.429 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 74.3312002480523 0.6705566102665972 0.4454507562001005 20.820782748777845 6.705566102665972e-2 4.791126980354837e-2
YEM Asia Yemen 2020-12-03 2239.0 22.0 14.571 624.0 3.0 1.714 0.82 null null null null null null null null 0.0 null 0.0 null null null null null null 24.07 2.9825968e7 53.508 20.3 2.922 1.583 1479.147 18.8 495.003 5.35 7.6 29.2 49.542 0.7 66.12 0.452 75.06881251934556 0.737612271293257 0.48853401840972943 20.921366240317834 0.10058349153998958 5.746670149984738e-2
SWE Europe Sweden 2020-01-23 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-01-24 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-01-25 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-01-26 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-01-27 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-01-28 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-01-29 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-01-30 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-01-31 0.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.0 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-01 1.0 1.0 0.143 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 9.901705766852455e-2 1.415943924659901e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-02 1.0 0.0 0.143 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 1.415943924659901e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-03 1.0 0.0 0.143 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 1.415943924659901e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-04 1.0 0.0 0.143 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 1.415943924659901e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-05 1.0 0.0 0.143 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 1.415943924659901e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-06 1.0 0.0 0.143 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 1.415943924659901e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-07 1.0 0.0 0.143 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 1.415943924659901e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-08 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-09 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null 0.0 0.0 null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-10 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-11 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-12 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-13 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-14 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-15 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null 0.0 0.0 null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-16 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-17 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-18 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-19 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-20 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-21 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-22 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-23 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null 0.0 0.0 null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-24 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-25 1.0 0.0 0.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 9.901705766852455e-2 0.0 0.0 0.0 0.0 0.0
SWE Europe Sweden 2020-02-26 2.0 1.0 0.143 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.1980341153370491 9.901705766852455e-2 1.415943924659901e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-27 3.0 1.0 0.286 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 0.2970511730055737 9.901705766852455e-2 2.831887849319802e-2 0.0 0.0 0.0
SWE Europe Sweden 2020-02-28 11.0 8.0 1.429 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 1.0891876343537703 0.7921364613481964 0.1414953754083216 0.0 0.0 0.0
SWE Europe Sweden 2020-02-29 14.0 3.0 1.857 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 1.3862388073593437 0.2970511730055737 0.1838746760904501 0.0 0.0 0.0
SWE Europe Sweden 2020-03-01 14.0 0.0 1.857 0.0 0.0 0.0 1.6 null null null null 0.0 0.0 null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 1.3862388073593437 0.0 0.1838746760904501 0.0 0.0 0.0
SWE Europe Sweden 2020-03-02 19.0 5.0 2.571 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 1.8813240957019666 0.4950852883426227 0.25457285526577667 0.0 0.0 0.0
SWE Europe Sweden 2020-03-03 32.0 13.0 4.429 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 3.1685458453927855 1.2872217496908194 0.4385465484138953 0.0 0.0 0.0
SWE Europe Sweden 2020-03-04 62.0 30.0 8.571 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 6.139057575448523 2.9705117300557364 0.848675201276924 0.0 0.0 0.0
SWE Europe Sweden 2020-03-05 87.0 25.0 12.0 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 8.614484017161637 2.4754264417131138 1.1882046920222948 0.0 0.0 0.0
SWE Europe Sweden 2020-03-06 146.0 59.0 19.286 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 14.456490419604584 5.842006402442949 1.9096429741951646 0.0 0.0 0.0
SWE Europe Sweden 2020-03-07 179.0 33.0 23.571 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 17.724053322665895 3.2675629030613105 2.3339310663047925 0.0 0.0 0.0
SWE Europe Sweden 2020-03-08 225.0 46.0 30.143 0.0 0.0 0.0 1.6 null null null null 2.962 0.293 null null 0.0 null 0.0 null null null null null null 0.0 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 22.278837975418025 4.554784652752129 2.984671169302336 0.0 0.0 0.0
SWE Europe Sweden 2020-03-09 326.0 101.0 43.857 0.0 0.0 0.0 1.6 null null null null null null null null 0.0 null 0.0 null null null null null null 11.11 1.009927e7 24.718 41.0 19.985 13.433 46949.283 0.5 133.982 4.79 18.8 18.9 null 2.22 82.8 0.933 32.279560799939006 10.000722824520981 4.342591098168481 0.0 0.0 0.0
"./08_DataPrediction_GP"

ScaDaMaLe Course site and book

Download Files Periodically

This notebook allows for setup and execution of a script to periodically download files. In this case the "Our World in Data" dataset csv files which are updated daily.

Content is based on "037a_AnimalNamesStructStreamingFiles" by Raazesh Sainudiin.

To be able to later kill a .sh process, we need to make this installation

apt-get install -y psmisc 

create a new directory for our files if needed

dbutils.fs.mkdirs("file:///databricks/driver/projects/group12")
res0: Boolean = true

create a shell script to periodically download the dataset (currently set to download once per day). 1. shell 2. remove the previous shell script 3. write to script: bash binaries 4. write to script: remove folder where previous downloaded files are located 5. write to script: make new directory to put downloaded files 6. write to script: while loop: 6.1) remove old downloaded csv dataset 6.2) download new csv dataset 6.3) copy the csv file to the newly created directory using the timestamp as name 7. print the contents of the shell script

rm -f projects/group12/group12downloadFiles.sh &&
echo "#!/bin/bash" >> projects/group12/group12downloadFiles.sh &&
echo "rm -rf projects/group12/logsEveryXSecs" >> projects/group12/group12downloadFiles.sh &&
echo "mkdir -p projects/group12/logsEveryXSecs" >> projects/group12/group12downloadFiles.sh &&
echo "while true; rm owid-covid-data.csv; wget https://covid.ourworldindata.org/data/owid-covid-data.csv; do echo \$( date --rfc-3339=second )\; | cp owid-covid-data.csv projects/group12/logsEveryXSecs/\$( date '+%y_%m_%d_%H_%M_%S.csv' ); sleep 216000; done" >> projects/group12/group12downloadFiles.sh &&
cat projects/group12/group12downloadFiles.sh
#!/bin/bash
rm -rf projects/group12/logsEveryXSecs
mkdir -p projects/group12/logsEveryXSecs
while true; rm owid-covid-data.csv; wget https://covid.ourworldindata.org/data/owid-covid-data.csv; do echo $( date --rfc-3339=second )\; | cp owid-covid-data.csv projects/group12/logsEveryXSecs/$( date '+%y_%m_%d_%H_%M_%S.csv' ); sleep 216000; done

make the shell script executable

chmod 744 projects/group12/group12downloadFiles.sh

execute the shell script

nohup projects/group12/group12downloadFiles.sh

look at the files

pwd
ls -al projects/group12/logsEveryXSecs
/databricks/driver
total 14244
drwxr-xr-x 2 root root     4096 Jan  7 09:05 .
drwxr-xr-x 3 root root     4096 Jan  7 09:05 ..
-rw-r--r-- 1 root root 14577033 Jan  7 09:05 21_01_07_09_05_33.csv

look at the file content

cat projects/group12/logsEveryXSecs/XXXX.csv
cat: projects/group12/logsEveryXSecs/XXXX.csv: No such file or directory

kill the .sh process

killall group12downloadFiles.sh

move downloaded files to another location to make sure we don't delete the datasets

// dbutils.fs.mkdirs("/datasets/group12/")
dbutils.fs.cp("file:///databricks/driver/projects/group12/logsEveryXSecs/","/datasets/group12/",true)
res5: Boolean = true
display(dbutils.fs.ls("/datasets/group12/"))
path name size
dbfs:/datasets/group12/20_12_04_08_31_44.csv 20_12_04_08_31_44.csv 1.4181338e7
dbfs:/datasets/group12/20_12_04_08_32_40.csv 20_12_04_08_32_40.csv 1.4181338e7
dbfs:/datasets/group12/20_12_04_10_47_08.csv 20_12_04_10_47_08.csv 1.4190774e7
dbfs:/datasets/group12/21_01_07_08_50_05.csv 21_01_07_08_50_05.csv 1.4577033e7
dbfs:/datasets/group12/21_01_07_09_05_33.csv 21_01_07_09_05_33.csv 1.4577033e7

ScaDaMaLe Course site and book

Stream to parquet file

This notebook allows for setup and execution of the data streaming and querying into a parquet file. The idea is thereafter to perform analysis on the parquet file.

Note that this notebooks assumes one has already has downloaded several "Our World in Data" dataset csv files. This can be done by first running "DownloadFilesPeriodicallyScript" at least once.

Content is based on "038_StructuredStreamingProgGuide" by Raazesh Sainudiin.

start by copying latest downloaded csv data to data analysis folder

dbutils.fs.cp("file:///databricks/driver/projects/group12/logsEveryXSecs/","/datasets/group12/",true)
res0: Boolean = true

check that data is in the group12 folder

display(dbutils.fs.ls("/datasets/group12/"))
path name size
dbfs:/datasets/group12/20_12_04_08_31_44.csv 20_12_04_08_31_44.csv 1.4181338e7
dbfs:/datasets/group12/20_12_04_08_32_40.csv 20_12_04_08_32_40.csv 1.4181338e7
dbfs:/datasets/group12/20_12_04_10_47_08.csv 20_12_04_10_47_08.csv 1.4190774e7
dbfs:/datasets/group12/21_01_07_08_50_05.csv 21_01_07_08_50_05.csv 1.4577033e7
dbfs:/datasets/group12/21_01_07_09_05_33.csv 21_01_07_09_05_33.csv 1.4577033e7
dbfs:/datasets/group12/analysis/ analysis/ 0.0
dbfs:/datasets/group12/chkpoint/ chkpoint/ 0.0

check the schema for the csv files.

val df_csv = spark.read.format("csv").option("header", "true").option("inferSchema", "true").csv("/datasets/group12/21_01_07_09_05_33.csv")
df_csv: org.apache.spark.sql.DataFrame = [iso_code: string, continent: string ... 52 more fields]
df_csv.printSchema

The stream requires a user defined schema. Note that the January 2021 schema is different compared to the December 2020 schema. Below, the user defined schemas are created.

import org.apache.spark.sql.types._

val OurWorldinDataSchema2021 = new StructType()                      
                      .add("iso_code", "string")
                      .add("continent", "string")
                      .add("location", "string")
                      .add("date", "string")
                      .add("total_cases","double")
                      .add("new_cases","double")
                      .add("new_cases_smoothed","double")
                      .add("total_deaths","double")
                      .add("new_deaths","double")
                      .add("new_deaths_smoothed","double")
                      .add("total_cases_per_million","double")
                      .add("new_cases_per_million","double")
                      .add("new_cases_smoothed_per_million","double")
                      .add("total_deaths_per_million","double")
                      .add("new_deaths_per_million","double")
                      .add("new_deaths_smoothed_per_million","double")
                      .add("reproduction_rate", "double")
                      .add("icu_patients", "double")
                      .add("icu_patients_per_million", "double")
                      .add("hosp_patients", "double")
                      .add("hosp_patients_per_million", "double")
                      .add("weekly_icu_admissions", "double")
                      .add("weekly_icu_admissions_per_million", "double")
                      .add("weekly_hosp_admissions", "double")
                      .add("weekly_hosp_admissions_per_million", "double")
                      .add("new_tests", "double")
                      .add("total_tests", "double")
                      .add("total_tests_per_thousand", "double")
                      .add("new_tests_per_thousand", "double")
                      .add("new_tests_smoothed", "double")
                      .add("new_tests_smoothed_per_thousand", "double")
                      .add("positive_rate", "double")
                      .add("tests_per_case", "double")
                      .add("tests_units", "double")
                      .add("total_vaccinations", "double")
                      .add("new_vaccinations", "double")
                      .add("stringency_index","double")
                      .add("population","double")
                      .add("population_density","double")
                      .add("median_age", "double")
                      .add("aged_65_older", "double")
                      .add("aged_70_older", "double")
                      .add("gdp_per_capita","double")
                      .add("extreme_poverty","double")
                      .add("cardiovasc_death_rate","double")
                      .add("diabetes_prevalence","double")
                      .add("female_smokers", "double")
                      .add("male_smokers", "double")
                      .add("handwashing_facilities", "double")
                      .add("hospital_beds_per_thousand", "double")
                      .add("life_expectancy","double")
                      .add("human_development_index","double")

val OurWorldinDataSchema2020 = new StructType()                      
                      .add("iso_code", "string")
                      .add("continent", "string")
                      .add("location", "string")
                      .add("date", "string")
                      .add("total_cases","double")
                      .add("new_cases","double")
                      .add("new_cases_smoothed","double")
                      .add("total_deaths","double")
                      .add("new_deaths","double")
                      .add("new_deaths_smoothed","double")
                      .add("total_cases_per_million","double")
                      .add("new_cases_per_million","double")
                      .add("new_cases_smoothed_per_million","double")
                      .add("total_deaths_per_million","double")
                      .add("new_deaths_per_million","double")
                      .add("new_deaths_smoothed_per_million","double")
                      .add("reproduction_rate", "double")
                      .add("icu_patients", "double")
                      .add("icu_patients_per_million", "double")
                      .add("hosp_patients", "double")
                      .add("hosp_patients_per_million", "double")
                      .add("weekly_icu_admissions", "double")
                      .add("weekly_icu_admissions_per_million", "double")
                      .add("weekly_hosp_admissions", "double")
                      .add("weekly_hosp_admissions_per_million", "double")
                      .add("total_tests", "double")
                      .add("new_tests", "double")
                      .add("total_tests_per_thousand", "double")
                      .add("new_tests_per_thousand", "double")
                      .add("new_tests_smoothed", "double")
                      .add("new_tests_smoothed_per_thousand", "double")
                      .add("tests_per_case", "double")
                      .add("positive_rate", "double")
                      .add("tests_units", "double")
                      .add("stringency_index","double")
                      .add("population","double")
                      .add("population_density","double")
                      .add("median_age", "double")
                      .add("aged_65_older", "double")
                      .add("aged_70_older", "double")
                      .add("gdp_per_capita","double")
                      .add("extreme_poverty","double")
                      .add("cardiovasc_death_rate","double")
                      .add("diabetes_prevalence","double")
                      .add("female_smokers", "double")
                      .add("male_smokers", "double")
                      .add("handwashing_facilities", "double")
                      .add("hospital_beds_per_thousand", "double")
                      .add("life_expectancy","double")
                      .add("human_development_index","double")

Start stream

In January 2021, the schema was updated compared to the schema in December 2020. Below, one can choose which type of csv files to stream below.

Stream for 2020

import org.apache.spark.sql.types._

val OurWorldinDataStream = spark
  .readStream
  .schema(OurWorldinDataSchema2020) 
  .option("MaxFilesPerTrigger", 1)
  .option("latestFirst", "true")
  .format("csv")
  .option("header", "true")
  .load("/datasets/group12/20*.csv")
  .dropDuplicates()
import org.apache.spark.sql.types._
OurWorldinDataStream: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [iso_code: string, continent: string ... 48 more fields]

Stream for 2021

import org.apache.spark.sql.types._

val OurWorldinDataStream2021 = spark
  .readStream
  .schema(OurWorldinDataSchema2021) 
  .option("MaxFilesPerTrigger", 1)
  .option("latestFirst", "true")
  .format("csv")
  .option("header", "true")
  .load("/datasets/group12/21*.csv")
  .dropDuplicates()
import org.apache.spark.sql.types._
OurWorldinDataStream2021: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [iso_code: string, continent: string ... 50 more fields]

display stream 2020

OurWorldinDataStream.isStreaming
res81: Boolean = true
display(OurWorldinDataStream) 

Query to File (2020)

query that saves file into a parquet file at periodic intervalls. Analysis will thereafter be performed on the parquet file

create folders for parquet file and checkpoint data

// remove any previous folders if exists
dbutils.fs.rm("datasets/group12/chkpoint",recurse=true)
dbutils.fs.rm("datasets/group12/analysis",recurse=true)
res14: Boolean = true
dbutils.fs.mkdirs("datasets/group12/chkpoint")
res15: Boolean = true
dbutils.fs.mkdirs("/datasets/group12/analysis")
res16: Boolean = true

initialize query to store data in parquet files based on column selection

import org.apache.spark.sql.functions._
import org.apache.spark.sql.streaming.Trigger

val query = OurWorldinDataStream
                 .select($"iso_code", $"continent", $"location", $"date", $"total_cases", $"new_cases", $"new_cases_smoothed", $"total_deaths", $"new_deaths",$"new_deaths_smoothed", $"total_cases_per_million", $"new_cases_per_million", $"new_cases_smoothed_per_million", $"total_deaths_per_million", $"new_deaths_per_million", $"new_deaths_smoothed_per_million", $"reproduction_rate", $"icu_patients", $"icu_patients_per_million", $"hosp_patients", $"hosp_patients_per_million", $"weekly_icu_admissions", $"weekly_icu_admissions_per_million", $"weekly_hosp_admissions", $"weekly_hosp_admissions_per_million", $"total_tests",$"new_tests", $"total_tests_per_thousand", $"new_tests_per_thousand", $"new_tests_smoothed",$"new_tests_smoothed_per_thousand", $"tests_per_case", $"positive_rate", $"tests_units", $"stringency_index", $"population", $"population_density", $"median_age", $"aged_65_older", $"aged_70_older", $"gdp_per_capita", $"extreme_poverty", $"cardiovasc_death_rate", $"diabetes_prevalence", $"female_smokers", $"male_smokers", $"handwashing_facilities", $"hospital_beds_per_thousand", $"life_expectancy", $"human_development_index")
                 .writeStream
                 //.trigger(Trigger.ProcessingTime("20 seconds")) // debugging
                 .trigger(Trigger.ProcessingTime("216000 seconds")) // for each day
                 .option("checkpointLocation", "/datasets/group12/chkpoint")
                 .format("parquet")  
                 .option("path", "/datasets/group12/analysis")
                 .start()
                 
query.awaitTermination() // hit cancel to terminate

check saved parquet file contents

display(dbutils.fs.ls("/datasets/group12/analysis"))
val parquetFileDF = spark.read.parquet("dbfs:/datasets/group12/analysis/*.parquet")
parquetFileDF: org.apache.spark.sql.DataFrame = [iso_code: string, continent: string ... 48 more fields]
display(parquetFileDF.describe())
summary iso_code continent location date total_cases new_cases new_cases_smoothed total_deaths new_deaths new_deaths_smoothed total_cases_per_million new_cases_per_million new_cases_smoothed_per_million total_deaths_per_million new_deaths_per_million new_deaths_smoothed_per_million reproduction_rate icu_patients icu_patients_per_million hosp_patients hosp_patients_per_million weekly_icu_admissions weekly_icu_admissions_per_million weekly_hosp_admissions weekly_hosp_admissions_per_million total_tests new_tests total_tests_per_thousand new_tests_per_thousand new_tests_smoothed new_tests_smoothed_per_thousand tests_per_case positive_rate tests_units stringency_index population population_density median_age aged_65_older aged_70_older gdp_per_capita extreme_poverty cardiovasc_death_rate diabetes_prevalence female_smokers male_smokers handwashing_facilities hospital_beds_per_thousand life_expectancy human_development_index
count 62184 61867 62500 62500 53761 62377 61421 45901 62377 61421 53460 62061 61110 45613 62061 61110 41680 5582 5582 6730 6730 538 538 885 885 25647 25606 25647 25606 28408 28408 26927 26336 0 54546 62184 60592 59340 58383 59024 59329 40812 59902 60595 46712 46080 30696 54818 61868 59646
mean null null null null 235416.1718904038 2397.8407425814003 2367.056380553872 8908.311256835363 55.19233050643667 54.80704391006325 3798.2407507482267 43.13754119334201 42.41964747177225 108.27332865630407 0.761575578865955 0.7475491572574053 1.049197216890596 1171.3697599426728 18.08625438910784 5656.88558692422 104.44401604754825 320.92 10.748325278810405 2961.1632870056505 81.23565310734462 3233707.097438297 37267.77532609545 103.08093254571695 1.1276385222213543 35891.313679245286 1.0969730005632223 0.07456953986704766 171.59424362089905 null 53.312537674623144 8.17052256214782E7 307.3537588625577 30.42868217054277 8.773048729938651 5.539936330984043 19213.552059313115 13.465191610310459 258.8075386297629 7.891889759881105 10.66726918136675 32.47178591579883 50.99304310007871 3.0230664197891057 73.0352230555375 0.7137129396774315
stddev null null null null 2063317.939351184 20722.406766273503 20188.721091973344 62835.10460453239 420.0315418848828 404.7550597418351 7537.842859063191 144.63668342422923 115.82591210719889 201.80463357477137 3.003047037105768 2.17917077365699 0.38591731058680295 2792.1448587365685 24.026044243287902 13218.496002944645 149.63443300155708 596.5733008531096 25.857485153686934 6410.029575144745 233.24453357627317 1.45235647300503E7 144743.48405262225 209.81522035476976 2.1450449484564924 134865.99995119465 1.9561605087188363 0.09616514922644583 861.1206108534275 null 27.591030251926593 5.716608354719421E8 1525.663259783739 9.09237871864885 6.230404954288745 4.248965298848258 20089.06946024988 19.988201128228035 120.99438607360678 4.172554929946806 10.429062017422085 13.415141793587788 31.83056463184429 2.4310237026014865 7.529274919111957 0.15483301083721898
min AFG Africa Afghanistan 2020-01-01 1.0 -10034.0 -525.0 1.0 -1918.0 -232.143 0.001 -2153.437 -276.825 0.001 -76.445 -10.921 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 -3743.0 0.0 -0.398 0.0 0.0 0.0 1.4 null 0.0 809.0 1.98 15.1 1.144 0.526 661.24 0.1 79.37 0.99 0.1 7.7 1.188 0.1 53.28 0.354
max ZWE South America Zimbabwe 2020-12-03 6.5220557E7 690127.0 600775.429 1506251.0 12825.0 10538.571 89354.818 8652.658 2648.773 1469.678 218.329 63.14 6.68 19396.0 127.183 100226.0 988.567 4375.407 190.051 50887.393 2645.194 1.92122147E8 1949384.0 2248.144 26.154 1703410.0 19.244 0.729 44258.7 null 100.0 7.794798729E9 19347.5 48.2 27.049 18.493 116935.6 77.6 724.417 30.53 44.0 78.1 98.999 13.8 86.75 0.953
display(parquetFileDF.orderBy($"date".desc))
parquetFileDF.count()
res5: Long = 62500

Query to File (2021)

query that saves file into a parquet file at periodic intervalls.

// remove any previous folders if exists
dbutils.fs.rm("datasets/group12/chkpoint2021",recurse=true)
dbutils.fs.rm("datasets/group12/analysis2021",recurse=true)
dbutils.fs.mkdirs("datasets/group12/chkpoint2021")
dbutils.fs.mkdirs("datasets/group12/analysis2021")
res18: Boolean = true
import org.apache.spark.sql.functions._
import org.apache.spark.sql.streaming.Trigger

val query = OurWorldinDataStream2021
                 .select($"iso_code", $"continent", $"location", $"date", $"total_cases", $"new_cases", $"new_cases_smoothed", $"total_deaths", $"new_deaths",$"new_deaths_smoothed", $"total_cases_per_million", $"new_cases_per_million", $"new_cases_smoothed_per_million", $"total_deaths_per_million", $"new_deaths_per_million", $"new_deaths_smoothed_per_million", $"reproduction_rate", $"icu_patients", $"icu_patients_per_million", $"hosp_patients", $"hosp_patients_per_million", $"weekly_icu_admissions", $"weekly_icu_admissions_per_million", $"weekly_hosp_admissions", $"weekly_hosp_admissions_per_million", $"total_tests",$"new_tests", $"total_tests_per_thousand", $"new_tests_per_thousand", $"new_tests_smoothed",$"new_tests_smoothed_per_thousand", $"tests_per_case", $"positive_rate", $"tests_units", $"stringency_index", $"population", $"population_density", $"median_age", $"aged_65_older", $"aged_70_older", $"gdp_per_capita", $"extreme_poverty", $"cardiovasc_death_rate", $"diabetes_prevalence", $"female_smokers", $"male_smokers", $"handwashing_facilities", $"hospital_beds_per_thousand", $"life_expectancy", $"human_development_index")
                 .writeStream
                 //.trigger(Trigger.ProcessingTime("20 seconds")) // debugging
                 .trigger(Trigger.ProcessingTime("216000 seconds")) // each day
                 .option("checkpointLocation", "/datasets/group12/chkpoint2021")
                 .format("parquet")  
                 .option("path", "/datasets/group12/analysis2021")
                 .start()
                 
query.awaitTermination() // hit cancel to terminate
val parquetFile2021DF = spark.read.parquet("dbfs:/datasets/group12/analysis2021/*.parquet")
parquetFile2021DF: org.apache.spark.sql.DataFrame = [iso_code: string, continent: string ... 48 more fields]
display(parquetFile2021DF.describe())
summary iso_code continent location date total_cases new_cases new_cases_smoothed total_deaths new_deaths new_deaths_smoothed total_cases_per_million new_cases_per_million new_cases_smoothed_per_million total_deaths_per_million new_deaths_per_million new_deaths_smoothed_per_million reproduction_rate icu_patients icu_patients_per_million hosp_patients hosp_patients_per_million weekly_icu_admissions weekly_icu_admissions_per_million weekly_hosp_admissions weekly_hosp_admissions_per_million total_tests new_tests total_tests_per_thousand new_tests_per_thousand new_tests_smoothed new_tests_smoothed_per_thousand tests_per_case positive_rate tests_units stringency_index population population_density median_age aged_65_older aged_70_older gdp_per_capita extreme_poverty cardiovasc_death_rate diabetes_prevalence female_smokers male_smokers handwashing_facilities hospital_beds_per_thousand life_expectancy human_development_index
count 58196 57845 58531 58531 58008 58001 57046 49657 49656 57046 57673 57666 56716 49335 49334 56716 44995 6086 6086 6845 6845 544 544 878 878 27006 27145 27006 27145 30478 30478 28331 28797 0 241 278 52358 58196 56964 55692 55044 55376 55710 38159 56294 56942 44455 43846 28176 51737
mean null null null null 280856.96293614677 2977.974862502371 2957.9528833748072 9440.825059910989 75.87175769292735 64.76055386880755 4803.329924592101 55.43429124614151 54.92539389237602 123.92782108036903 1.1725306887744764 0.9930127300938001 1.0397301922435842 924.7643772592836 17.942194544857045 4767.396055514974 112.35477647918188 389.18459375 23.096417279411764 2770.236054669703 90.94211161731207 3296570.453047471 33334.96798673789 113.1671816263053 1.1168154724627004 32438.389395629634 1.0890064636787196 166.36620662878127 0.08254411917908085 null 0.9067634854771786 849.6284532374101 59.32707265365355 9.113860612012853E7 323.8082390457141 30.631115779645334 8.842210231814642 5.6059546915631415 19206.748390809662 13.14487276920222 256.0564316090542 7.763601383864184 10.57440184456196 32.64338559959862 51.16526313174358 3.042046311150612
stddev null null null null 2748559.5139726754 26447.176041635634 25947.18346899017 74852.02463395565 554.179232738698 496.3241880037069 9770.196467368594 159.8367692227782 130.23859384700643 231.3831543436838 3.814136613643414 2.592627124113058 0.37314466501106797 2607.447792980141 23.096588581017723 13142.595210484165 162.19963589630862 1062.8669629409615 84.43280553001314 6258.389649510214 237.96388901304604 1.5192379103534836E7 135667.97569510888 232.08417747765577 2.101753078690164 126446.58519497044 1.9266264256088346 842.7776724543986 0.09966680167946733 null 2.447811842168661 2276.8853139301373 22.403193236864983 6.204846769231012E8 1577.4914969226447 9.117030300574706 6.256325795927324 4.27334121579429 19680.321466247937 19.8684806478708 117.99197986122954 3.878859778205247 10.419107338482048 13.45549336530331 31.775955000809844 2.473749904640983
min AFG Africa Afghanistan 2020-01-01 1.0 -46076.0 -1121.714 1.0 -1918.0 -232.143 0.001 -2153.437 -276.825 0.001 -76.445 -10.921 -0.01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 -47510.0 0.0 -0.786 0.0 0.0 1.6 0.0 null 0.0 1.57 0.0 809.0 1.98 15.1 1.144 0.526 661.24 0.1 79.37 0.99 0.1 7.7 1.188 0.1
max ZWE South America Zimbabwe 2021-01-06 8.718654E7 780613.0 646630.286 1883761.0 15525.0 11670.429 108043.746 8652.658 2648.773 1826.861 218.329 63.14 6.74 23707.0 127.183 132476.0 922.018 10301.189 888.829 50887.393 2645.194 2.4798603E8 2133928.0 2705.599 28.716 1840248.0 23.701 44258.7 0.636 null 17.14 14497.77 100.0 7.794798729E9 19347.5 48.2 27.049 18.493 116935.6 77.6 724.417 30.53 44.0 78.1 98.999 13.8

ScaDaMaLe Course site and book

display(dbutils.fs.ls("/datasets/group12/"))
path name size
dbfs:/datasets/group12/20_12_04_08_31_44.csv 20_12_04_08_31_44.csv 1.4181338e7
dbfs:/datasets/group12/20_12_04_08_32_40.csv 20_12_04_08_32_40.csv 1.4181338e7
dbfs:/datasets/group12/20_12_04_10_47_08.csv 20_12_04_10_47_08.csv 1.4190774e7
dbfs:/datasets/group12/21_01_07_08_50_05.csv 21_01_07_08_50_05.csv 1.4577033e7
dbfs:/datasets/group12/21_01_07_09_05_33.csv 21_01_07_09_05_33.csv 1.4577033e7
dbfs:/datasets/group12/analysis/ analysis/ 0.0
dbfs:/datasets/group12/chkpoint/ chkpoint/ 0.0
val df = spark.read.parquet("dbfs:/datasets/group12/analysis/*.parquet")

display(df)
df.count()
res10: Long = 60544
import org.apache.spark.sql.functions._
import org.apache.spark.sql.expressions.Window
import org.apache.spark.sql.functions._
import org.apache.spark.sql.expressions.Window
// filter unknow and HK data
val df_filteredLocation = df.filter($"iso_code"=!="HKG").filter($"iso_code".isNotNull)

// fill missing continent value for World data
val df_fillContinentNull = df_filteredLocation.na.fill("World",Array("continent")).cache
df_filteredLocation.unpersist()
df_filteredLocation: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [iso_code: string, continent: string ... 48 more fields]
df_fillContinentNull: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [iso_code: string, continent: string ... 48 more fields]
res4: df_filteredLocation.type = [iso_code: string, continent: string ... 48 more fields]
// filter date before 2020-01-23
val df_filtered_date = df_fillContinentNull.filter($"date">"2020-01-22").cache
df_fillContinentNull.unpersist()
df_filtered_date: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [iso_code: string, continent: string ... 48 more fields]
res6: df_fillContinentNull.type = [iso_code: string, continent: string ... 48 more fields]

// fill missing for new_cases_smoothed and new_deaths_smoothed
val df_fillNullForSmooth = df_filtered_date.na.fill(0,Array("new_cases_smoothed"))
                           .na.fill(0,Array("new_deaths_smoothed"))
                           .cache
df_filtered_date.unpersist()

// fill missing for total_cases
val df_fillNullForTotalCases = df_fillNullForSmooth.na.fill(0, Array("total_cases")).cache
df_fillNullForSmooth.unpersist()

// correct total_deaths, new_deaths, new_deaths_smoothed
val df_fillNullForTotalDeathsSpecial = df_fillNullForTotalCases.withColumn("total_deaths_correct", 
                                        when(col("iso_code").equalTo("ISL")&&(col("date")>"2020-03-13" && col("date")<"2020-03-22"),0)
                                       .when(col("iso_code").equalTo("PNG")&&(col("date")>"2020-07-19" && col("date")<"2020-07-23"),0)
                                       .when(col("iso_code").equalTo("SVK")&&(col("date")>"2020-03-17" && col("date")<"2020-03-23"),0).otherwise(col("total_deaths")))
                            .withColumn("new_deaths_correct", 
                                        when(col("iso_code").equalTo("ISL")&&(col("date")>"2020-03-13" && col("date")<"2020-03-22"),0)
                                       .when(col("iso_code").equalTo("PNG")&&(col("date")>"2020-07-19" && col("date")<"2020-07-23"),0)
                                       .when(col("iso_code").equalTo("SVK")&&(col("date")>"2020-03-17" && col("date")<"2020-03-23"),0).otherwise(col("new_deaths")))
                            .withColumn("new_deaths_smoothed_correct", 
                                        when(col("iso_code").equalTo("ISL")&&(col("date")>"2020-03-13" && col("date")<"2020-03-22"),0)
                                       .when(col("iso_code").equalTo("PNG")&&(col("date")>"2020-07-19" && col("date")<"2020-07-23"),0)
                                       .when(col("iso_code").equalTo("SVK")&&(col("date")>"2020-03-17" && col("date")<"2020-03-23"),0).otherwise(col("new_deaths_smoothed")))
                            .cache
df_fillNullForTotalCases.unpersist()

val df_cleaned = df_fillNullForTotalDeathsSpecial
                                  .drop("new_deaths", "total_deaths", "new_deaths_smoothed") // drop old column to rename
                                  .withColumnRenamed("new_deaths_correct","new_deaths")
                                  .withColumnRenamed("total_deaths_correct","total_deaths")
                                  .withColumnRenamed("new_deaths_smoothed_correct","new_deaths_smoothed")
                                  .na.fill(0, Array("total_deaths"))
                                  .select(df.columns.head, df.columns.tail: _*)
                                  .cache
df_fillNullForTotalDeathsSpecial.unpersist()

display(df_cleaned)

3. Select invariant (during pandemic) features for clustering and filter out countries that have missing invariant features

Invariant feature list: - population - populationdensity - medianage - aged65older - aged70older - gdppercapita - cardiovascdeathrate - diabetesprevalence - femalesmokers - malesmokers - hospitalbedsperthousand - lifeexpectancy - humandevelopment_index

// select invariant features
val df_invariantFeatures = df_cleaned.select($"iso_code",$"location", $"population",$"population_density",
                                             $"median_age", $"aged_65_older",
                                             $"aged_70_older",$"gdp_per_capita",
                                             $"cardiovasc_death_rate",$"diabetes_prevalence",
                                             $"female_smokers",$"male_smokers",$"hospital_beds_per_thousand",
                                             $"life_expectancy",$"human_development_index").cache

// Extract valid distrinct features RDD
val valid_distinct_features = df_invariantFeatures.distinct()
                                 .filter($"population".isNotNull && $"population_density".isNotNull && $"median_age".isNotNull && 
                                 $"aged_65_older".isNotNull && $"aged_70_older".isNotNull && $"gdp_per_capita".isNotNull &&
                                 $"cardiovasc_death_rate".isNotNull && $"diabetes_prevalence".isNotNull && $"female_smokers".isNotNull && 
                                 $"male_smokers".isNotNull && $"hospital_beds_per_thousand".isNotNull && $"life_expectancy".isNotNull &&
                                 $"human_development_index".isNotNull)


// filter out NULL feature countries
val df_cleaned_feature = df_cleaned.filter($"location".isin(valid_distinct_features.select($"location").rdd.map(r => r(0)).collect().toSeq: _*)).cache

df_cleaned.unpersist()

display(df_cleaned_feature)

4. Imputing missing data for

  • totalcasesper_million
  • newcasesper_million
  • newcasessmoothedpermillion
  • totaldeathsper_million
  • newdeathsper_million
  • newdeathssmoothedpermillion
val df_cleaned_feature_permillion = df_cleaned_feature.withColumn("total_cases_per_million_correct", df_cleaned_feature("total_cases")/df_cleaned_feature("population")*1000000)
                                                   .withColumn("new_cases_per_million_correct", df_cleaned_feature("new_cases")/df_cleaned_feature("population")*1000000)
                                                   .withColumn("new_cases_smoothed_per_million_correct", df_cleaned_feature("new_cases_smoothed")/df_cleaned_feature("population")*1000000)
                                                   .withColumn("total_deaths_per_million_correct", df_cleaned_feature("total_deaths")/df_cleaned_feature("population")*1000000)
                                                   .withColumn("new_deaths_per_million_correct", df_cleaned_feature("new_deaths")/df_cleaned_feature("population")*1000000)
                                                   .withColumn("new_deaths_smoothed_per_million_correct", df_cleaned_feature("new_deaths_smoothed")/df_cleaned_feature("population")*1000000)
                                                   .drop("total_cases_per_million", "new_cases_per_million", "new_cases_smoothed_per_million", 
                                                         "total_deaths_per_million", "new_deaths_per_million", "new_deaths_smoothed_per_million") // drop old column to rename
                                                   .withColumnRenamed("total_cases_per_million_correct","total_cases_per_million")
                                                   .withColumnRenamed("new_cases_per_million_correct","new_cases_per_million")
                                                   .withColumnRenamed("new_cases_smoothed_per_million_correct","new_cases_smoothed_per_million")
                                                   .withColumnRenamed("total_deaths_per_million_correct","total_deaths_per_million")
                                                   .withColumnRenamed("new_deaths_per_million_correct","new_deaths_per_million")
                                                   .withColumnRenamed("new_deaths_smoothed_per_million_correct","new_deaths_smoothed_per_million")
df_cleaned_feature_permillion: org.apache.spark.sql.DataFrame = [iso_code: string, continent: string ... 48 more fields]

5. Impute time series data of

  • reproduction_rate
  • total_tests
  • stringency_index
  • totaltestsper_thousand
val df_cleaned_time_series = df_cleaned_feature_permillion
                              .withColumn("reproduction_rate", last("reproduction_rate", true)
                                         .over(Window.partitionBy("location").orderBy("date").rowsBetween(-df_cleaned_feature_permillion.count(), 0)))
                              .withColumn("reproduction_rate", first("reproduction_rate", true)
                                         .over(Window.partitionBy("location").orderBy("date").rowsBetween(0, df_cleaned_feature_permillion.count())))
                              .na.fill(0, Array("reproduction_rate"))
                              .withColumn("stringency_index", last("stringency_index", true)
                                         .over(Window.partitionBy("location").orderBy("date").rowsBetween(-df_cleaned_feature_permillion.count(), 0)))
                              .na.fill(0, Array("stringency_index"))
                              .withColumn("total_tests", last("total_tests", true)
                                         .over(Window.partitionBy("location").orderBy("date").rowsBetween(-df_cleaned_feature_permillion.count(), 0)))
                              .withColumn("total_tests", first("total_tests", true)
                                         .over(Window.partitionBy("location").orderBy("date").rowsBetween(0, df_cleaned_feature_permillion.count())))
                              .na.fill(0, Array("total_tests"))
                              .withColumn("total_tests_per_thousand", col("total_tests")/col("population")*1000)
                              .cache

df_cleaned_feature_permillion.unpersist()

display(df_cleaned_time_series)

ScaDaMaLe Course site and book

display(dbutils.fs.ls("/datasets/group12/"))
path name size
dbfs:/datasets/group12/20_12_04_08_31_44.csv 20_12_04_08_31_44.csv 1.4181338e7
dbfs:/datasets/group12/20_12_04_08_32_40.csv 20_12_04_08_32_40.csv 1.4181338e7
dbfs:/datasets/group12/20_12_04_10_47_08.csv 20_12_04_10_47_08.csv 1.4190774e7
dbfs:/datasets/group12/21_01_07_08_50_05.csv 21_01_07_08_50_05.csv 1.4577033e7
dbfs:/datasets/group12/21_01_07_09_05_33.csv 21_01_07_09_05_33.csv 1.4577033e7
dbfs:/datasets/group12/analysis/ analysis/ 0.0
dbfs:/datasets/group12/chkpoint/ chkpoint/ 0.0

Load parquet file

val df = spark.read.parquet("dbfs:/datasets/group12/analysis/*.parquet")

display(df)

Load csv file

-> %scala //if want to load csv

val filelocation = "/datasets/group12/201204104708.csv" val file_type = "csv"

// CSV options val inferschema = "true" val firstrowisheader = "true" val delimiter = ","

// The applied options are for CSV files. For other file types, these will be ignored. val df = spark.read.format(filetype) .option("inferSchema", inferschema) .option("header", firstrowisheader) .option("sep", delimiter) .load(filelocation)

display(df)

Number of data

df.count()
res19: Long = 60544

Missing Features in data due to multiple web resource

import org.apache.spark.sql.functions._

for (c <- df.columns) {
  println(c + ": " + df.filter(col(c).isNull).count())
}

Here shows HK does not have meaningful value and there is one unknown international location in data.

display(df.filter($"location"==="Hong Kong" || $"iso_code".isNull)) //HK data iteself is not complete for all dates, and all available data is null! HAVE TO FILTER IT OUT COMPLETELY

190 valid countries data to continue

val df_filteredLocation = df.filter($"iso_code"=!="HKG").filter($"iso_code".isNotNull)
display(df_filteredLocation.select($"location").distinct()) // 190 valid countries 

Fill missing continent value for World aggregate data NOTE: it will be filled as "World"

display(df_filteredLocation.where($"continent".isNull))
val df_fillContinentNull = df_filteredLocation.na.fill("World",Array("continent"))
display(df_fillContinentNull)
df_fillContinentNull.count()
res27: Long = 60158
import org.apache.spark.sql.functions._

for (c <- df_fillContinentNull.columns) {
  println(c + ": " + df_fillContinentNull.filter(col(c).isNull).count())
}
display(df_fillContinentNull.select($"date",$"iso_code").groupBy($"iso_code").count())  // some country starts logging data earlier
val df_filtered_date = df_fillContinentNull.filter($"date">"2020-01-22")
df_filtered_date: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [iso_code: string, continent: string ... 48 more fields]
display(df_filtered_date.select($"date",$"iso_code").groupBy($"iso_code").count())  // all countries have 316 days logging
display(df_filtered_date.select($"date",$"iso_code", $"total_cases", $"total_deaths", $"new_cases", $"new_deaths", $"new_cases_smoothed", $"new_deaths_smoothed").filter($"new_cases_smoothed".isNull || $"new_deaths_smoothed".isNull))

All missing data of newcasessmoothed and newdeathssmoothed from early, so just fill with 0

display(df_filtered_date.select($"date",$"iso_code", $"total_cases", $"total_deaths", $"new_cases", $"new_deaths", $"new_cases_smoothed", $"new_deaths_smoothed")
        .filter($"new_cases_smoothed".isNull || $"new_deaths_smoothed".isNull).select($"date").distinct())
date
2020-01-23
2020-01-27
2020-01-24
2020-01-26
2020-01-25
val df_fillNullForSmooth = df_filtered_date.na.fill(0,Array("new_cases_smoothed"))
                           .na.fill(0,Array("new_deaths_smoothed"))
display(df_fillNullForSmooth)

Fill totaldeaths and totalcases null value

Strictly, when newcases is always 0, totalcases could be imputed as 0. The same apply to total_deaths

val df_NULL_total_cases = df_fillNullForSmooth.select($"date",$"iso_code", $"total_cases", $"total_deaths", $"new_cases", $"new_deaths", $"new_cases_smoothed", $"new_deaths_smoothed")
                          .filter($"total_cases".isNull)


display(df_NULL_total_cases.filter($"new_cases"===0).groupBy("iso_code").count())

When totalcase is Null, all previous newcases is always 0.

df_NULL_total_cases.filter($"total_cases".isNull).groupBy("iso_code").count().except(df_NULL_total_cases.filter($"new_cases"===0).groupBy("iso_code").count()).show() // When total_case is Null, all new_cases is always 0
+--------+-----+
|iso_code|count|
+--------+-----+
+--------+-----+
val df_fillNullForTotalCases = df_fillNullForSmooth.na.fill(0, Array("total_cases"))
                               
display(df_fillNullForTotalCases)
val df_NULL_total_death = df_fillNullForTotalCases.select($"date",$"iso_code", $"total_cases", $"total_deaths", $"new_cases", $"new_deaths", $"new_cases_smoothed", $"new_deaths_smoothed")
                          .filter($"total_deaths".isNull)


display(df_NULL_total_death.filter($"new_deaths"===0).groupBy("iso_code").count().sort())

If totaldeaths is Null when all newdeaths is always 0, then we could simply assign 0 for NULL, otherwise need to investigate more.

Three countries (ISL, PNG, SVK) have abnormal correction on new_cases data.

val abnormal_countries = df_NULL_total_death.filter($"total_deaths".isNull).groupBy("iso_code").count().except(df_NULL_total_death.filter($"new_deaths"===0).groupBy("iso_code").count())
abnormal_countries.show()
df_NULL_total_death.filter($"new_deaths"===0).groupBy("iso_code").count().except(df_NULL_total_death.filter($"total_deaths".isNull).groupBy("iso_code").count()).show()
+--------+-----+
|iso_code|count|
+--------+-----+
|     PNG|  186|
|     SVK|   65|
|     ISL|   54|
+--------+-----+

+--------+-----+
|iso_code|count|
+--------+-----+
|     PNG|  185|
|     SVK|   64|
|     ISL|   52|
+--------+-----+

abnormal_countries: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [iso_code: string, count: bigint]

show abnormal death correction

display(df_fillNullForSmooth.filter($"iso_code"==="ISL").sort("date").filter($"date">"2020-03-13" && $"date"<"2020-03-22")) // death data correction between 2020-03-14 and 2020-03-21, total_deaths -> all 0, new_deaths -> all 0, new_deaths_smoothed -> all 0
iso_code continent location date total_cases new_cases new_cases_smoothed total_deaths new_deaths new_deaths_smoothed total_cases_per_million new_cases_per_million new_cases_smoothed_per_million total_deaths_per_million new_deaths_per_million new_deaths_smoothed_per_million reproduction_rate icu_patients icu_patients_per_million hosp_patients hosp_patients_per_million weekly_icu_admissions weekly_icu_admissions_per_million weekly_hosp_admissions weekly_hosp_admissions_per_million total_tests new_tests total_tests_per_thousand new_tests_per_thousand new_tests_smoothed new_tests_smoothed_per_thousand tests_per_case positive_rate tests_units stringency_index population population_density median_age aged_65_older aged_70_older gdp_per_capita extreme_poverty cardiovasc_death_rate diabetes_prevalence female_smokers male_smokers handwashing_facilities hospital_beds_per_thousand life_expectancy human_development_index
ISL Europe Iceland 2020-03-14 156.0 22.0 15.143 null 0.0 0.0 457.143 64.469 44.375 null 0.0 0.0 1.62 1.0 2.93 3.0 8.791 null null null null 1827.0 323.0 5.354 0.947 198.0 0.58 7.6e-2 13.1 null 16.67 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-03-15 171.0 15.0 17.286 5.0 5.0 0.714 501.099 43.956 50.654 14.652 14.652 2.093 1.61 2.0 5.861 3.0 8.791 null null null null 2902.0 1075.0 8.504 3.15 346.0 1.014 5.0e-2 20.0 null 25.0 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-03-16 180.0 9.0 17.429 null -5.0 0.0 527.473 26.374 51.073 null -14.652 0.0 1.63 2.0 5.861 4.0 11.722 null null null null 4609.0 1707.0 13.506 5.002 576.0 1.688 3.0e-2 33.0 null 50.93 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-03-17 220.0 40.0 21.571 1.0 1.0 0.143 644.689 117.216 63.213 2.93 2.93 0.419 1.7 2.0 5.861 5.0 14.652 null null null null 6009.0 1400.0 17.609 4.103 752.0 2.204 2.9e-2 34.9 null 50.93 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-03-18 250.0 30.0 23.571 1.0 0.0 0.143 732.601 87.912 69.074 2.93 0.0 0.419 1.73 0.0 0.0 6.0 17.582 null null null null 7837.0 1828.0 22.966 5.357 992.0 2.907 2.4e-2 42.1 null 50.93 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-03-19 330.0 80.0 32.429 1.0 0.0 0.143 967.033 234.432 95.029 2.93 0.0 0.419 1.78 1.0 2.93 6.0 17.582 null null null null 9148.0 1311.0 26.807 3.842 1143.0 3.349 2.8e-2 35.2 null 50.93 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-03-20 409.0 79.0 39.286 null -1.0 0.0 1198.535 231.502 115.123 null -2.93 0.0 1.75 1.0 2.93 10.0 29.304 null null null null 9727.0 579.0 28.504 1.697 1175.0 3.443 3.3e-2 29.9 null 53.7 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
ISL Europe Iceland 2020-03-21 473.0 64.0 45.286 1.0 1.0 0.143 1386.081 187.546 132.705 2.93 2.93 0.419 1.68 1.0 2.93 12.0 35.165 null null null null 10077.0 350.0 29.53 1.026 1179.0 3.455 3.8e-2 26.0 null 53.7 341250.0 3.404 37.3 14.431 9.207 46482.958 0.2 117.992 5.31 14.3 15.2 null 2.91 82.99 0.935
display(df_fillNullForSmooth.filter($"iso_code"==="PNG").sort("date").filter($"date">"2020-07-19" && $"date"<"2020-07-24" )) // death data correction between 2020-07-20 and 2020-07-22, total_deaths -> all 0, new_deaths -> all 0, new_deaths_smoothed -> all 0
iso_code continent location date total_cases new_cases new_cases_smoothed total_deaths new_deaths new_deaths_smoothed total_cases_per_million new_cases_per_million new_cases_smoothed_per_million total_deaths_per_million new_deaths_per_million new_deaths_smoothed_per_million reproduction_rate icu_patients icu_patients_per_million hosp_patients hosp_patients_per_million weekly_icu_admissions weekly_icu_admissions_per_million weekly_hosp_admissions weekly_hosp_admissions_per_million total_tests new_tests total_tests_per_thousand new_tests_per_thousand new_tests_smoothed new_tests_smoothed_per_thousand tests_per_case positive_rate tests_units stringency_index population population_density median_age aged_65_older aged_70_older gdp_per_capita extreme_poverty cardiovasc_death_rate diabetes_prevalence female_smokers male_smokers handwashing_facilities hospital_beds_per_thousand life_expectancy human_development_index
PNG Oceania Papua New Guinea 2020-07-20 19.0 3.0 1.143 1.0 1.0 0.143 2.124 0.335 0.128 0.112 0.112 1.6e-2 null null null null null null null null null null null null null null null null null null 45.37 8947027.0 18.22 22.6 3.808 2.142 3823.194 null 561.494 17.65 23.5 48.8 null null 64.5 0.544
PNG Oceania Papua New Guinea 2020-07-21 27.0 8.0 2.286 1.0 0.0 0.143 3.018 0.894 0.255 0.112 0.0 1.6e-2 null null null null null null null null null null null null null null null null null null 45.37 8947027.0 18.22 22.6 3.808 2.142 3823.194 null 561.494 17.65 23.5 48.8 null null 64.5 0.544
PNG Oceania Papua New Guinea 2020-07-22 30.0 3.0 2.714 null -1.0 0.0 3.353 0.335 0.303 null -0.112 0.0 null null null null null null null null null null null null null null null null null null 45.37 8947027.0 18.22 22.6 3.808 2.142 3823.194 null 561.494 17.65 23.5 48.8 null null 64.5 0.544
PNG Oceania Papua New Guinea 2020-07-23 31.0 1.0 2.857 null 0.0 0.0 3.465 0.112 0.319 null 0.0 0.0 null null null null null null null null null null null null null null null null null null 45.37 8947027.0 18.22 22.6 3.808 2.142 3823.194 null 561.494 17.65 23.5 48.8 null null 64.5 0.544
display(df_fillNullForSmooth.filter($"iso_code"==="SVK").sort("date").filter($"date">"2020-03-16" && $"date"<"2020-03-23")) // death data correction between 2020-03-18 and 2020-03-22, total_deaths -> all 0, new_deaths -> all 0, new_deaths_smoothed -> all 0
iso_code continent location date total_cases new_cases new_cases_smoothed total_deaths new_deaths new_deaths_smoothed total_cases_per_million new_cases_per_million new_cases_smoothed_per_million total_deaths_per_million new_deaths_per_million new_deaths_smoothed_per_million reproduction_rate icu_patients icu_patients_per_million hosp_patients hosp_patients_per_million weekly_icu_admissions weekly_icu_admissions_per_million weekly_hosp_admissions weekly_hosp_admissions_per_million total_tests new_tests total_tests_per_thousand new_tests_per_thousand new_tests_smoothed new_tests_smoothed_per_thousand tests_per_case positive_rate tests_units stringency_index population population_density median_age aged_65_older aged_70_older gdp_per_capita extreme_poverty cardiovasc_death_rate diabetes_prevalence female_smokers male_smokers handwashing_facilities hospital_beds_per_thousand life_expectancy human_development_index
SVK Europe Slovakia 2020-03-17 72.0 9.0 9.286 null 0.0 0.0 13.188 1.648 1.701 null 0.0 0.0 null null null null null null null null null 1913.0 318.0 0.35 5.8e-2 173.0 3.2e-2 5.4e-2 18.6 null 75.0 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVK Europe Slovakia 2020-03-18 105.0 33.0 13.571 1.0 1.0 0.143 19.232 6.044 2.486 0.183 0.183 2.6e-2 null null null null null null null null null 2138.0 225.0 0.392 4.1e-2 192.0 3.5e-2 7.1e-2 14.1 null 75.0 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVK Europe Slovakia 2020-03-19 123.0 18.0 15.286 1.0 0.0 0.143 22.529 3.297 2.8 0.183 0.0 2.6e-2 1.19 null null null null null null null null 2439.0 301.0 0.447 5.5e-2 221.0 4.0e-2 6.9e-2 14.5 null 75.0 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVK Europe Slovakia 2020-03-20 137.0 14.0 15.0 1.0 0.0 0.143 25.093 2.564 2.747 0.183 0.0 2.6e-2 1.19 null null null null null null null null 2807.0 368.0 0.514 6.7e-2 265.0 4.9e-2 5.7e-2 17.7 null 75.0 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVK Europe Slovakia 2020-03-21 178.0 41.0 19.143 1.0 0.0 0.143 32.603 7.51 3.506 0.183 0.0 2.6e-2 1.19 null null null null null null null null 3247.0 440.0 0.595 8.1e-2 300.0 5.5e-2 6.4e-2 15.7 null 75.0 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855
SVK Europe Slovakia 2020-03-22 185.0 7.0 18.714 null -1.0 0.0 33.885 1.282 3.428 null -0.183 0.0 1.18 null null null null null null null null 3489.0 242.0 0.639 4.4e-2 293.0 5.4e-2 6.4e-2 15.7 null 75.0 5459643.0 113.128 41.2 15.07 9.167 30155.152 0.7 287.959 7.29 23.1 37.7 null 5.82 77.54 0.855

Correct new_deaths correction back to 0

val df_fillNullForTotalDeathsSpecial = df_fillNullForTotalCases.withColumn("total_deaths_correct", 
                                        when(col("iso_code").equalTo("ISL")&&(col("date")>"2020-03-13" && col("date")<"2020-03-22"),0)
                                       .when(col("iso_code").equalTo("PNG")&&(col("date")>"2020-07-19" && col("date")<"2020-07-23"),0)
                                       .when(col("iso_code").equalTo("SVK")&&(col("date")>"2020-03-17" && col("date")<"2020-03-23"),0).otherwise(col("total_deaths")))
                            .withColumn("new_deaths_correct", 
                                        when(col("iso_code").equalTo("ISL")&&(col("date")>"2020-03-13" && col("date")<"2020-03-22"),0)
                                       .when(col("iso_code").equalTo("PNG")&&(col("date")>"2020-07-19" && col("date")<"2020-07-23"),0)
                                       .when(col("iso_code").equalTo("SVK")&&(col("date")>"2020-03-17" && col("date")<"2020-03-23"),0).otherwise(col("new_deaths")))
                            .withColumn("new_deaths_smoothed_correct", 
                                        when(col("iso_code").equalTo("ISL")&&(col("date")>"2020-03-13" && col("date")<"2020-03-22"),0)
                                       .when(col("iso_code").equalTo("PNG")&&(col("date")>"2020-07-19" && col("date")<"2020-07-23"),0)
                                       .when(col("iso_code").equalTo("SVK")&&(col("date")>"2020-03-17" && col("date")<"2020-03-23"),0).otherwise(col("new_deaths_smoothed")))

df_fillNullForTotalDeathsSpecial: org.apache.spark.sql.DataFrame = [iso_code: string, continent: string ... 51 more fields]

Expect to see an empty table, so correction is right

val df_NULL_total_death_ = df_fillNullForTotalDeathsSpecial.select($"date",$"iso_code", $"total_cases", $"total_deaths_correct", $"new_cases", $"new_deaths_correct", $"new_cases_smoothed", $"new_deaths_smoothed_correct")
                          .filter($"total_deaths_correct".isNull)


df_NULL_total_death_.filter($"total_deaths_correct".isNull).groupBy("iso_code").count().except(df_NULL_total_death_.filter($"new_deaths_correct"===0).groupBy("iso_code").count()).show()
+--------+-----+
|iso_code|count|
+--------+-----+
+--------+-----+

df_NULL_total_death_: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [date: string, iso_code: string ... 6 more fields]

fill rest NULL value for total_death.

val df_fillNullForTotalDeaths = df_fillNullForTotalDeathsSpecial
                                  .drop("new_deaths", "total_deaths", "new_deaths_smoothed") // drop old column to rename
                                  .withColumnRenamed("new_deaths_correct","new_deaths")
                                  .withColumnRenamed("total_deaths_correct","total_deaths")
                                  .withColumnRenamed("new_deaths_smoothed_correct","new_deaths_smoothed")
                                  .na.fill(0, Array("total_deaths"))
                                  .select(df.columns.head, df.columns.tail: _*)
display(df_fillNullForTotalDeaths)

All first 10 column is clean now!

(All code above is for illustration, for processing just run cell below )

// filter unknow and HK data
val df_filteredLocation = df.filter($"iso_code"=!="HKG").filter($"iso_code".isNotNull)

// fill missing continent value for World data
val df_fillContinentNull = df_filteredLocation.na.fill("World",Array("continent")).cache
df_filteredLocation.unpersist()

// filter date before 2020-01-23
val df_filtered_date = df_fillContinentNull.filter($"date">"2020-01-22").cache
df_fillContinentNull.unpersist()

// fill missing for new_cases_smoothed and new_deaths_smoothed
val df_fillNullForSmooth = df_filtered_date.na.fill(0,Array("new_cases_smoothed"))
                           .na.fill(0,Array("new_deaths_smoothed"))
                           .cache
df_filtered_date.unpersist()

// fill missing for total_cases
val df_fillNullForTotalCases = df_fillNullForSmooth.na.fill(0, Array("total_cases")).cache
df_fillNullForSmooth.unpersist()

// correct total_deaths, new_deaths, new_deaths_smoothed
val df_fillNullForTotalDeathsSpecial = df_fillNullForTotalCases.withColumn("total_deaths_correct", 
                                        when(col("iso_code").equalTo("ISL")&&(col("date")>"2020-03-13" && col("date")<"2020-03-22"),0)
                                       .when(col("iso_code").equalTo("PNG")&&(col("date")>"2020-07-19" && col("date")<"2020-07-23"),0)
                                       .when(col("iso_code").equalTo("SVK")&&(col("date")>"2020-03-17" && col("date")<"2020-03-23"),0).otherwise(col("total_deaths")))
                            .withColumn("new_deaths_correct", 
                                        when(col("iso_code").equalTo("ISL")&&(col("date")>"2020-03-13" && col("date")<"2020-03-22"),0)
                                       .when(col("iso_code").equalTo("PNG")&&(col("date")>"2020-07-19" && col("date")<"2020-07-23"),0)
                                       .when(col("iso_code").equalTo("SVK")&&(col("date")>"2020-03-17" && col("date")<"2020-03-23"),0).otherwise(col("new_deaths")))
                            .withColumn("new_deaths_smoothed_correct", 
                                        when(col("iso_code").equalTo("ISL")&&(col("date")>"2020-03-13" && col("date")<"2020-03-22"),0)
                                       .when(col("iso_code").equalTo("PNG")&&(col("date")>"2020-07-19" && col("date")<"2020-07-23"),0)
                                       .when(col("iso_code").equalTo("SVK")&&(col("date")>"2020-03-17" && col("date")<"2020-03-23"),0).otherwise(col("new_deaths_smoothed")))
                            .cache
df_fillNullForTotalCases.unpersist()

val df_cleaned = df_fillNullForTotalDeathsSpecial
                                  .drop("new_deaths", "total_deaths", "new_deaths_smoothed") // drop old column to rename
                                  .withColumnRenamed("new_deaths_correct","new_deaths")
                                  .withColumnRenamed("total_deaths_correct","total_deaths")
                                  .withColumnRenamed("new_deaths_smoothed_correct","new_deaths_smoothed")
                                  .na.fill(0, Array("total_deaths"))
                                  .select(df.columns.head, df.columns.tail: _*)
                                  .cache
df_fillNullForTotalDeathsSpecial.unpersist()

display(df_cleaned)
import org.apache.spark.sql.functions._

for (c <- df_cleaned.columns) {
  println(c + ": " + df_cleaned.filter(col(c).isNull).count())
}

3. select invariant (during pandemic) features for clustering

double check whether they are constant for each country, and if not, change all the value to mean and filter out countries that have missing constant features

Candidate list: - population - populationdensity - medianage - aged65older - aged70older - gdppercapita

  • cardiovascdeathrate
  • diabetes_prevalence
  • female_smokers
  • male_smokers
  • hospitalbedsper_thousand
  • life_expectancy
  • humandevelopmentindex
val df_invariantFeatures = df_cleaned.select($"location", $"population",$"population_density",
                                             $"median_age", $"aged_65_older",
                                             $"aged_70_older",$"gdp_per_capita",
                                             $"cardiovasc_death_rate",$"diabetes_prevalence",
                                             $"female_smokers",$"male_smokers",$"hospital_beds_per_thousand",
                                             $"life_expectancy",$"human_development_index")
display(df_invariantFeatures)
display(df_invariantFeatures.describe())
summary location population population_density median_age aged_65_older aged_70_older gdp_per_capita cardiovasc_death_rate diabetes_prevalence female_smokers male_smokers hospital_beds_per_thousand life_expectancy human_development_index
count 60104 60104 58524 57260 56312 56944 57260 57892 58524 44928 44296 52835 59788 57576
mean null 8.179034692057101E7 305.56040665368073 30.204722319245512 8.595353423781793 5.418455904046091 18397.155660565862 262.00796225730636 7.89011004032537 10.368771011396003 32.645260520137235 3.000101788587119 72.8302766441427 0.7086279005141026
stddev null 5.801702332960505E8 1534.259203474429 9.077112325166668 6.17972101589387 4.214972529727923 19409.896953039588 120.63832428074626 4.2077256136575105 10.396263307877218 13.558764723459655 2.438486660152889 7.538806415792373 0.15398160968293945
min Afghanistan 809.0 1.98 15.1 1.144 0.526 661.24 79.37 0.99 0.1 7.7 0.1 53.28 0.354
max Zimbabwe 7.794798729E9 19347.5 48.2 27.049 18.493 116935.6 724.417 30.53 44.0 78.1 13.8 86.75 0.953
for (c <- df_invariantFeatures.columns) {
  println(c + ": " + df_invariantFeatures.filter(col(c).isNull).count())
}
location: 0
population: 0
population_density: 1580
median_age: 2844
aged_65_older: 3792
aged_70_older: 3160
gdp_per_capita: 2844
cardiovasc_death_rate: 2212
diabetes_prevalence: 1580
female_smokers: 15176
male_smokers: 15808
hospital_beds_per_thousand: 7269
life_expectancy: 316
human_development_index: 2528

Although some countries seems like an outlier, it does have constant femalesmokers and malesmokers

val constant_feature_checker = df_cleaned.groupBy("location")
          .agg(
              //stddev("stringency_index").as("std_si"),         
              stddev("population").as("std_pop"),           
              stddev("population_density").as("std_pd"),
              stddev("median_age").as("std_ma"),         
              stddev("aged_65_older").as("std_a65"),           
              stddev("aged_70_older").as("std_a70"),  
              stddev("gdp_per_capita").as("std_gdp"),
              stddev("cardiovasc_death_rate").as("std_cdr"),         
              stddev("diabetes_prevalence").as("std_dp"),           
              stddev("female_smokers").as("std_fs"),      
              stddev("male_smokers").as("std_ms"),        
              stddev("hospital_beds_per_thousand").as("std_hbpt"),           
              stddev("life_expectancy").as("std_le"),
              stddev("human_development_index").as("std_hdi")
            )
           .where(
                  (col("std_pop") > 0) || (col("std_pd") > 1e-20) || (col("std_ma") > 0) || (col("std_a65") > 0) || (col("std_a70") > 0) || (col("std_gdp") > 0 ||
                   col("std_cdr") > 0) || (col("std_dp") > 0) || (col("std_fs") > 0) || (col("std_ms") > 0) || (col("std_hbpt") > 0) || (col("std_le") > 0) || (col("std_hdi") > 0))

display(constant_feature_checker)

Each country have some constant features always

val distinct_features = df_invariantFeatures.distinct()

display(distinct_features)

In total, 126 countries have complete features

val valid_distinct_features = distinct_features.filter($"population".isNotNull && $"population_density".isNotNull && $"median_age".isNotNull && 
                         $"aged_65_older".isNotNull && $"aged_70_older".isNotNull && $"gdp_per_capita".isNotNull &&
                         $"cardiovasc_death_rate".isNotNull && $"diabetes_prevalence".isNotNull && $"female_smokers".isNotNull && 
                         $"male_smokers".isNotNull && $"hospital_beds_per_thousand".isNotNull && $"life_expectancy".isNotNull &&
                         $"human_development_index".isNotNull)
display(valid_distinct_features)

country list

display(valid_distinct_features.select($"location"))
valid_distinct_features.select($"location").count()
res69: Long = 126
val df_cleaned_feature = df_cleaned.filter($"location".isin(valid_distinct_features.select($"location").rdd.map(r => r(0)).collect().toSeq: _*))

display(df_cleaned_feature)

All data contains complete list of invariant time feature

(All code above is for illustration, for processing just run cell below )

// select invariant features
val df_invariantFeatures = df_cleaned.select($"location", $"population",$"population_density",
                                             $"median_age", $"aged_65_older",
                                             $"aged_70_older",$"gdp_per_capita",
                                             $"cardiovasc_death_rate",$"diabetes_prevalence",
                                             $"female_smokers",$"male_smokers",$"hospital_beds_per_thousand",
                                             $"life_expectancy",$"human_development_index").cache

// Extract valid distrinct features RDD
val valid_distinct_features = df_invariantFeatures.distinct()
                                 .filter($"population".isNotNull && $"population_density".isNotNull && $"median_age".isNotNull && 
                                 $"aged_65_older".isNotNull && $"aged_70_older".isNotNull && $"gdp_per_capita".isNotNull &&
                                 $"cardiovasc_death_rate".isNotNull && $"diabetes_prevalence".isNotNull && $"female_smokers".isNotNull && 
                                 $"male_smokers".isNotNull && $"hospital_beds_per_thousand".isNotNull && $"life_expectancy".isNotNull &&
                                 $"human_development_index".isNotNull).cache

df_invariantFeatures.unpersist()

// filter out NULL feature countries
val df_cleaned_feature = df_cleaned.filter($"location".isin(valid_distinct_features.select($"location").rdd.map(r => r(0)).collect().toSeq: _*)).cache

df_cleaned.unpersist()

display(df_cleaned_feature)
import org.apache.spark.sql.functions._

for (c <- df_cleaned_feature.columns) {
  println(c + ": " + df_cleaned_feature.filter(col(c).isNull).count())
}

4. Imputing missing time series data of

  • totalcasesper_million
  • newcasesper_million
  • newcasessmoothedpermillion
  • totaldeathsper_million
  • newdeathsper_million
  • newdeathssmoothedpermillion
val per_million_data = df_cleaned_feature.select($"location", $"date", $"iso_code", $"total_cases", 
                                                 $"total_deaths", $"new_cases", $"new_deaths", $"new_cases_smoothed", 
                                                 $"new_deaths_smoothed", $"population", $"population_density", 
                                                 $"total_cases_per_million", $"new_cases_per_million", $"new_cases_smoothed_per_million", 
                                                 $"total_deaths_per_million", $"new_deaths_per_million", $"new_deaths_smoothed_per_million")

display(per_million_data)
val per_million_data_corrected = per_million_data.withColumn("total_cases_per_million_correct", per_million_data("total_cases")/per_million_data("population")*1000000)
                                                 .withColumn("new_cases_per_million_correct", per_million_data("new_cases")/per_million_data("population")*1000000)
                                                 .withColumn("new_cases_smoothed_per_million_correct", per_million_data("new_cases_smoothed")/per_million_data("population")*1000000)
                                                 .withColumn("total_deaths_per_million_correct", per_million_data("total_deaths")/per_million_data("population")*1000000)
                                                 .withColumn("new_deaths_per_million_correct", per_million_data("new_deaths")/per_million_data("population")*1000000)
                                                 .withColumn("new_deaths_smoothed_per_million_correct", per_million_data("new_deaths_smoothed")/per_million_data("population")*1000000)
                                                 .drop("total_cases_per_million", "new_cases_per_million", "new_cases_smoothed_per_million", 
                                                       "total_deaths_per_million", "new_deaths_per_million", "new_deaths_smoothed_per_million") // drop old column to rename
                                                 .withColumnRenamed("total_cases_per_million_correct","total_cases_per_million")
                                                 .withColumnRenamed("new_cases_per_million_correct","new_cases_per_million")
                                                 .withColumnRenamed("new_cases_smoothed_per_million_correct","new_cases_smoothed_per_million")
                                                 .withColumnRenamed("total_deaths_per_million_correct","total_deaths_per_million")
                                                 .withColumnRenamed("new_deaths_per_million_correct","new_deaths_per_million")
                                                 .withColumnRenamed("new_deaths_smoothed_per_million_correct","new_deaths_smoothed_per_million")
per_million_data_corrected: org.apache.spark.sql.DataFrame = [location: string, date: string ... 15 more fields]
val df_cleaned_feature_permillion = df_cleaned_feature.withColumn("total_cases_per_million_correct", df_cleaned_feature("total_cases")/df_cleaned_feature("population")*1000000)
                                                   .withColumn("new_cases_per_million_correct", df_cleaned_feature("new_cases")/df_cleaned_feature("population")*1000000)
                                                   .withColumn("new_cases_smoothed_per_million_correct", df_cleaned_feature("new_cases_smoothed")/df_cleaned_feature("population")*1000000)
                                                   .withColumn("total_deaths_per_million_correct", df_cleaned_feature("total_deaths")/df_cleaned_feature("population")*1000000)
                                                   .withColumn("new_deaths_per_million_correct", df_cleaned_feature("new_deaths")/df_cleaned_feature("population")*1000000)
                                                   .withColumn("new_deaths_smoothed_per_million_correct", df_cleaned_feature("new_deaths_smoothed")/df_cleaned_feature("population")*1000000)
                                                   .drop("total_cases_per_million", "new_cases_per_million", "new_cases_smoothed_per_million", 
                                                         "total_deaths_per_million", "new_deaths_per_million", "new_deaths_smoothed_per_million") // drop old column to rename
                                                   .withColumnRenamed("total_cases_per_million_correct","total_cases_per_million")
                                                   .withColumnRenamed("new_cases_per_million_correct","new_cases_per_million")
                                                   .withColumnRenamed("new_cases_smoothed_per_million_correct","new_cases_smoothed_per_million")
                                                   .withColumnRenamed("total_deaths_per_million_correct","total_deaths_per_million")
                                                   .withColumnRenamed("new_deaths_per_million_correct","new_deaths_per_million")
                                                   .withColumnRenamed("new_deaths_smoothed_per_million_correct","new_deaths_smoothed_per_million")
df_cleaned_feature_permillion: org.apache.spark.sql.DataFrame = [iso_code: string, continent: string ... 48 more fields]

5. Impute time series of

  • reproduction_rate
  • total_tests
  • stringency_index
  • totaltestsper_thousand

fill null in reproduction_rate by last available and next available value

All countries has missing data at beginning or in the end

display(df_cleaned_feature_permillion.select($"reproduction_rate", $"location", $"date").filter($"reproduction_rate".isNull).groupBy("location").count().sort("location"))
display(df_cleaned_feature_permillion.select($"reproduction_rate", $"location", $"date").filter($"reproduction_rate".isNull).groupBy("location").agg(max("date").as("max_date"), min("date").as("min_date")).sort("location"))
display(df_cleaned_feature_permillion.select($"reproduction_rate", $"location", $"date").filter($"location"==="Albania"))
import org.apache.spark.sql.functions._
import org.apache.spark.sql.expressions.Window

val df_cleaned_reproduction_rate= df_cleaned_feature_permillion.select($"reproduction_rate", $"location", $"date")
                              .withColumn("reproduction_rate", last("reproduction_rate", true)
                                         .over(Window.partitionBy("location").orderBy("date").rowsBetween(-df_cleaned_feature_permillion.count(), 0)))
                              .withColumn("reproduction_rate", first("reproduction_rate", true)
                                         .over(Window.partitionBy("location").orderBy("date").rowsBetween(0, df_cleaned_feature_permillion.count())))
                              .na.fill(0, Array("reproduction_rate"))
import org.apache.spark.sql.functions._
import org.apache.spark.sql.expressions.Window
df_cleaned_reproduction_rate: org.apache.spark.sql.DataFrame = [reproduction_rate: double, location: string ... 1 more field]

countries miss stringency_index value

display(df_cleaned_feature_permillion.select($"stringency_index", $"location", $"date").filter($"stringency_index".isNull).groupBy("location").count().sort("count"))

start and end date for null value of stringency_index for each country

display(df_cleaned_feature_permillion.select($"stringency_index", $"location", $"date").filter($"stringency_index".isNull).groupBy("location").agg(max("date").as("max_date"), min("date").as("min_date")))
import org.apache.spark.sql.functions._
import org.apache.spark.sql.expressions.Window

val df_cleaned_stringency = df_cleaned_feature_permillion.select($"stringency_index", $"location", $"date")
                              .withColumn("stringency_index_corect", last("stringency_index", true)
                                         .over(Window.partitionBy("location").orderBy("date").rowsBetween(-df_cleaned_feature_permillion.count(), 0)))
display(df_cleaned_stringency.filter($"stringency_index".isNull).filter($"stringency_index_corect".isNull).groupBy("location").count())
location count
Comoros 316.0
Bahamas 316.0
Malta 316.0
Montenegro 316.0
Armenia 316.0

total_tests, impute by last available or next available value

import org.apache.spark.sql.functions._
import org.apache.spark.sql.expressions.Window

val df_cleaned_total_cases = df_cleaned_feature_permillion.select($"total_tests", $"location", $"date")
                              .withColumn("total_tests", last("total_tests", true)
                                         .over(Window.partitionBy("location").orderBy("date").rowsBetween(-df_cleaned_feature_permillion.count(), 0)))
                              .withColumn("total_tests", first("total_tests", true)
                                         .over(Window.partitionBy("location").orderBy("date").rowsBetween(0, df_cleaned_feature_permillion.count())))
                              .na.fill(0, Array("total_tests"))
import org.apache.spark.sql.functions._
import org.apache.spark.sql.expressions.Window
df_cleaned_total_cases: org.apache.spark.sql.DataFrame = [total_tests: double, location: string ... 1 more field]
display(df_cleaned_feature_permillion.select($"total_tests", $"location", $"date").filter($"total_tests".isNull).groupBy("location").count())
val total_tests_date_maxmin = df_cleaned_feature_permillion.select($"total_tests", $"location", $"date").filter($"total_tests".isNull).groupBy("location").agg(max("date").as("max_date"), min("date").as("min_date"))
display(total_tests_date_maxmin)

process stringencyindex, reproductionrate, totaltests, totaltestsperthousand

import org.apache.spark.sql.functions._
import org.apache.spark.sql.expressions.Window

val df_cleaned_time_series = df_cleaned_feature_permillion
                              .withColumn("reproduction_rate", last("reproduction_rate", true)
                                         .over(Window.partitionBy("location").orderBy("date").rowsBetween(-df_cleaned_feature_permillion.count(), 0)))
                              .withColumn("reproduction_rate", first("reproduction_rate", true)
                                         .over(Window.partitionBy("location").orderBy("date").rowsBetween(0, df_cleaned_feature_permillion.count())))
                              .na.fill(0, Array("reproduction_rate"))
                              .withColumn("stringency_index", last("stringency_index", true)
                                         .over(Window.partitionBy("location").orderBy("date").rowsBetween(-df_cleaned_feature_permillion.count(), 0)))
                              .na.fill(0, Array("stringency_index"))
                              .withColumn("total_tests", last("total_tests", true)
                                         .over(Window.partitionBy("location").orderBy("date").rowsBetween(-df_cleaned_feature_permillion.count(), 0)))
                              .withColumn("total_tests", first("total_tests", true)
                                         .over(Window.partitionBy("location").orderBy("date").rowsBetween(0, df_cleaned_feature_permillion.count())))
                              .na.fill(0, Array("total_tests"))
                              .withColumn("total_tests_per_thousand", col("total_tests")/col("population")*1000)
import org.apache.spark.sql.functions._
import org.apache.spark.sql.expressions.Window
df_cleaned_time_series: org.apache.spark.sql.DataFrame = [iso_code: string, continent: string ... 48 more fields]
display(df_cleaned_time_series)
import org.apache.spark.sql.functions._

for (c <- df_cleaned_time_series.columns) {
  println(c + ": " + df_cleaned_time_series.filter(col(c).isNull).count())
}

ScaDaMaLe Course site and book

"./DataPreprocess"
display(valid_distinct_features.describe())
summary iso_code location population population_density median_age aged_65_older aged_70_older gdp_per_capita cardiovasc_death_rate diabetes_prevalence female_smokers male_smokers hospital_beds_per_thousand life_expectancy human_development_index
count 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126
mean null null 5.448349223809524E7 227.40285714285716 32.72619047619046 10.100476190476186 6.477539682539681 22517.798674603175 249.51723809523807 7.5796031746031725 10.470634920634918 32.03650793650794 3.1610476190476198 74.50119047619042 0.7466904761904759
stddev null null 1.8094803349108434E8 737.9315775155493 8.810413643605422 6.507230389299932 4.50202071901193 21194.388486506883 120.66734039269643 3.8247238647083845 10.346516843539705 13.459477571879843 2.4548683837864473 6.634961896757854 0.1496665875490299
min ALB Albania 98340.0 1.98 15.1 1.144 0.526 752.788 79.37 0.99 0.1 7.7 0.1 59.31 0.354
max ZWE Zimbabwe 1.439323774E9 7915.731 48.2 27.049 18.493 116935.6 724.417 22.02 44.0 78.1 13.05 84.63 0.953
display(valid_distinct_features.select($"iso_code", $"population"))

display(valid_distinct_features.select($"iso_code", $"population_density"))

display(valid_distinct_features.select($"iso_code", $"median_age"))

display(valid_distinct_features.select($"iso_code", $"aged_65_older"))

display(valid_distinct_features.select($"iso_code", $"aged_70_older"))

display(valid_distinct_features.select($"iso_code", $"gdp_per_capita"))

display(valid_distinct_features.select($"iso_code", $"cardiovasc_death_rate"))

display(valid_distinct_features.select($"iso_code", $"diabetes_prevalence"))

display(valid_distinct_features.select($"iso_code", $"female_smokers"))

display(valid_distinct_features.select($"iso_code", $"male_smokers"))

display(valid_distinct_features.select($"iso_code", $"hospital_beds_per_thousand"))

display(valid_distinct_features.select($"iso_code", $"life_expectancy"))

display(valid_distinct_features.select($"iso_code", $"human_development_index"))

Correlation between invariant features

There are some pairs of features are highly correlated i.e. 1. medianage, aged65older 2. medianage, humandevelopmentindex 3. medianage, lifeexpectancy 4. gdppercapita, humandevelopmentindex 5. gdppercapita, lifeexpectancy 6. humandevelopmentindex, lifeexpectancy

display(valid_distinct_features.drop("iso_code","location"))

display(df_cleaned_time_series.drop("iso_code", "continent", "location",
                                    "date", "icu_patients", "icu_patients_per_million",
                                    "hosp_patients", "hosp_patients_per_million", "weekly_icu_admissions",
                                    "weekly_icu_admissions_per_million", "weekly_hosp_admissions", "weekly_hosp_admissions_per_million",
                                    "total_tests", "new_tests", "total_tests_per_thousand",
                                    "new_tests_per_thousand", "new_tests_smoothed", "new_tests_smoothed_per_thousand",
                                    "positive_rate", "tests_per_case", "tests_units",
                                    "extreme_poverty", "handwashing_facilities"))

ScaDaMaLe Course site and book

pip install plotly
"./DataPreprocess"
display(df_cleaned_time_series.select($"reproduction_rate", $"location", $"date").filter($"reproduction_rate".isNotNull).filter(
                                                                                       $"location"==="Sweden" ||
                                                                                       $"location"==="Germany" ||
                                                                                       $"location"==="Danmark" ||
                                                                                       $"location"==="Finland" ||
                                                                                       $"location"==="Norway").sort("date"))

df_cleaned_time_series.createOrReplaceTempView("visual_rdd")
import pandas as pd
import numpy as np
import plotly.express as px
test_table = spark.table("visual_rdd")

country = np.array(test_table.select("iso_code").rdd.map(lambda l: l[0]).collect())
dates = np.array(test_table.select("date").rdd.map(lambda l: l[0]).collect())
total_cases = np.array(test_table.select("total_cases").rdd.map(lambda l: l[0]).collect())
total_deaths = np.array(test_table.select("total_deaths").rdd.map(lambda l: l[0]).collect())
new_cases = np.array(test_table.select("new_cases").rdd.map(lambda l: l[0]).collect())
new_deaths = np.array(test_table.select("new_deaths").rdd.map(lambda l: l[0]).collect())

visual_data = {'country':country.tolist(), 'total_cases':total_cases, 'date':dates,
             'total_deaths': total_deaths, 'new_cases': new_cases, 'new_deaths': new_deaths}
visual_df = pd.DataFrame(data = visual_data).sort_values(by='date')
visual_df

Total Cases

fig = px.choropleth(visual_df[~visual_df.country.str.contains("WLD", na=False)], locations="country",
                     color="total_cases", # total_cases is a column of gapminder
                     hover_name="country", # column to add to hover information
                     color_continuous_scale=px.colors.sequential.Plasma,
                     animation_frame = 'date')
fig.show()

fig = px.choropleth(visual_df[~visual_df.country.str.contains("WLD", na=False)], locations="country",
                    color="total_deaths", # total_deaths is a column of gapminder
                    hover_name="country", # column to add to hover information
                    color_continuous_scale=px.colors.sequential.Plasma,
                    animation_frame = 'date')
fig.show()

fig = px.choropleth(visual_df[~visual_df.country.str.contains("WLD", na=False)], locations="country",
                    color="new_cases", # new_cases is a column of gapminder
                    hover_name="country", # column to add to hover information
                    color_continuous_scale=px.colors.sequential.Plasma,
                    animation_frame = 'date')
fig.show()

fig = px.choropleth(visual_df[~visual_df.country.str.contains("WLD", na=False)], locations="country",
                    color="new_deaths", # new_deaths is a column of gapminder
                    hover_name="country", # column to add to hover information
                    color_continuous_scale=px.colors.sequential.Plasma,
                    animation_frame = 'date')
fig.show()

ScaDaMaLe Course site and book

Execute relevant notebooks to load and preprocess data

"./02_DataPreprocess"
display(valid_distinct_features)
// transform to features in order to perform kmeans
import org.apache.spark.ml.feature.VectorAssembler

// define input cols and output (add additional columns here...)
val va = new VectorAssembler().setInputCols(Array("population","population_density","median_age","aged_65_older","aged_70_older","gdp_per_capita","cardiovasc_death_rate","diabetes_prevalence","female_smokers","male_smokers","hospital_beds_per_thousand","life_expectancy","human_development_index")).setOutputCol("features")

// create features
val df_feats = va.transform(valid_distinct_features)
display(df_feats)
import org.apache.spark.ml.clustering.KMeans
import org.apache.spark.ml.evaluation.ClusteringEvaluator

// number of clusters
val num_clusters: Int = 6

// fixed seed for initialization
val seed: Int = 2

// init kmeans method
val kmeans = new KMeans().setK(num_clusters).setSeed(seed).setFeaturesCol("features")

// train kmeans cluster
val model = kmeans.fit(df_feats)

// cluster predictions
val preds = model.transform(df_feats)

// evaluate clustering base on Silhouette metric
val cluster_evaluator = new ClusteringEvaluator()
val silhouette_metric = cluster_evaluator.evaluate(preds)

// show evaluation and results
println(s"Silhouette metric: $silhouette_metric")

// cluster centers
println("Cluster centers:")
model.clusterCenters.foreach(println)
Silhouette metric: 0.8522450614906474
Cluster centers:
[4.610053152E7,113.00692000000001,31.668000000000003,9.45524,6.029160000000001,17977.45664,247.31187999999995,6.65,9.020000000000001,29.740000000000002,2.9476000000000004,73.7436,0.7251200000000002]
[1.4096640795E9,299.0465,33.45,8.315,4.6715,10867.693,272.0895,10.065000000000001,1.9,34.5,2.435,73.285,0.696]
[3.02263134E8,90.6665,33.8,10.366,6.3925,32707.095,246.9765,8.555,10.950000000000001,50.349999999999994,1.905,75.28999999999999,0.8089999999999999]
[1.993803743333333E8,515.2163333333333,28.166666666666664,6.048333333333333,3.700666666666666,7554.047999999999,299.66499999999996,8.280000000000001,4.633333333333333,33.1,1.2,71.91333333333333,0.643]
[7294451.1190476185,259.81845238095224,33.12142857142858,10.440523809523814,6.707988095238093,24778.540952380958,246.83450000000002,7.545952380952383,11.430952380952382,31.786904761904758,3.2384761904761903,74.73202380952378,0.7552380952380952]
[1.07767729E8,167.7762,33.06,10.376800000000001,6.874000000000001,19659.705700000002,258.51500000000004,9.284,9.4,35.4,4.029000000000001,75.318,0.7576]
import org.apache.spark.ml.clustering.KMeans
import org.apache.spark.ml.evaluation.ClusteringEvaluator
num_clusters: Int = 6
seed: Int = 2
kmeans: org.apache.spark.ml.clustering.KMeans = kmeans_46338dc75b58
model: org.apache.spark.ml.clustering.KMeansModel = KMeansModel: uid=kmeans_46338dc75b58, k=6, distanceMeasure=euclidean, numFeatures=13
preds: org.apache.spark.sql.DataFrame = [iso_code: string, location: string ... 15 more fields]
cluster_evaluator: org.apache.spark.ml.evaluation.ClusteringEvaluator = ClusteringEvaluator: uid=cluEval_2943e2a697af, metricName=silhouette, distanceMeasure=squaredEuclidean
silhouette_metric: Double = 0.8522450614906474
// check model parameters
model.extractParamMap
res20: org.apache.spark.ml.param.ParamMap =
{
	kmeans_46338dc75b58-distanceMeasure: euclidean,
	kmeans_46338dc75b58-featuresCol: features,
	kmeans_46338dc75b58-initMode: k-means||,
	kmeans_46338dc75b58-initSteps: 2,
	kmeans_46338dc75b58-k: 6,
	kmeans_46338dc75b58-maxIter: 20,
	kmeans_46338dc75b58-predictionCol: prediction,
	kmeans_46338dc75b58-seed: 2,
	kmeans_46338dc75b58-tol: 1.0E-4
}
val df_clstr = preds.withColumnRenamed("prediction", "kmeans_class")
display(df_clstr)

Visualization

Based on each country's features, the countries can be clustered accordingly

val df_clstr_filtered = df_clstr.select($"iso_code",$"kmeans_class")
display(df_clstr_filtered)

ScaDaMaLe Course site and book

In this model, we use scala to process the data and predict the total cases. In this data set, there are many features which are constant for each country and don’t change with time. So, we tried to predict the total cases on a selected date, from some countries to other countries, without considering the time series.

  1. Import data and preprocess

// You need to uncomment this line if you haven't preprocess data yet.

%run "./02_DataPreprocess"
  1. Data process

display(df_cleaned_time_series)
df_cleaned_time_series.printSchema
root
 |-- iso_code: string (nullable = true)
 |-- continent: string (nullable = false)
 |-- location: string (nullable = true)
 |-- date: string (nullable = true)
 |-- total_cases: double (nullable = false)
 |-- new_cases: double (nullable = true)
 |-- new_cases_smoothed: double (nullable = false)
 |-- total_deaths: double (nullable = false)
 |-- new_deaths: double (nullable = true)
 |-- new_deaths_smoothed: double (nullable = false)
 |-- reproduction_rate: double (nullable = false)
 |-- icu_patients: double (nullable = true)
 |-- icu_patients_per_million: double (nullable = true)
 |-- hosp_patients: double (nullable = true)
 |-- hosp_patients_per_million: double (nullable = true)
 |-- weekly_icu_admissions: double (nullable = true)
 |-- weekly_icu_admissions_per_million: double (nullable = true)
 |-- weekly_hosp_admissions: double (nullable = true)
 |-- weekly_hosp_admissions_per_million: double (nullable = true)
 |-- total_tests: double (nullable = false)
 |-- new_tests: double (nullable = true)
 |-- total_tests_per_thousand: double (nullable = true)
 |-- new_tests_per_thousand: double (nullable = true)
 |-- new_tests_smoothed: double (nullable = true)
 |-- new_tests_smoothed_per_thousand: double (nullable = true)
 |-- tests_per_case: double (nullable = true)
 |-- positive_rate: double (nullable = true)
 |-- tests_units: double (nullable = true)
 |-- stringency_index: double (nullable = false)
 |-- population: double (nullable = true)
 |-- population_density: double (nullable = true)
 |-- median_age: double (nullable = true)
 |-- aged_65_older: double (nullable = true)
 |-- aged_70_older: double (nullable = true)
 |-- gdp_per_capita: double (nullable = true)
 |-- extreme_poverty: double (nullable = true)
 |-- cardiovasc_death_rate: double (nullable = true)
 |-- diabetes_prevalence: double (nullable = true)
 |-- female_smokers: double (nullable = true)
 |-- male_smokers: double (nullable = true)
 |-- handwashing_facilities: double (nullable = true)
 |-- hospital_beds_per_thousand: double (nullable = true)
 |-- life_expectancy: double (nullable = true)
 |-- human_development_index: double (nullable = true)
 |-- total_cases_per_million: double (nullable = true)
 |-- new_cases_per_million: double (nullable = true)
 |-- new_cases_smoothed_per_million: double (nullable = true)
 |-- total_deaths_per_million: double (nullable = true)
 |-- new_deaths_per_million: double (nullable = true)
 |-- new_deaths_smoothed_per_million: double (nullable = true)
import org.apache.spark.sql.functions._

for (c <- df_cleaned_time_series.columns) {
  println(c + ": " + df_cleaned_time_series.filter(col(c).isNull).count())
}
iso_code: 0
continent: 0
location: 0
date: 0
total_cases: 0
new_cases: 0
new_cases_smoothed: 0
total_deaths: 0
new_deaths: 0
new_deaths_smoothed: 0
reproduction_rate: 0
icu_patients: 36018
icu_patients_per_million: 36018
hosp_patients: 34870
hosp_patients_per_million: 34870
weekly_icu_admissions: 41062
weekly_icu_admissions_per_million: 41062
weekly_hosp_admissions: 40715
weekly_hosp_admissions_per_million: 40715
total_tests: 0
new_tests: 20510
total_tests_per_thousand: 0
new_tests_per_thousand: 20510
new_tests_smoothed: 18176
new_tests_smoothed_per_thousand: 18176
tests_per_case: 19301
positive_rate: 19749
tests_units: 41600
stringency_index: 0
population: 0
population_density: 0
median_age: 0
aged_65_older: 0
aged_70_older: 0
gdp_per_capita: 0
extreme_poverty: 11168
cardiovasc_death_rate: 0
diabetes_prevalence: 0
female_smokers: 0
male_smokers: 0
handwashing_facilities: 24124
hospital_beds_per_thousand: 0
life_expectancy: 0
human_development_index: 0
total_cases_per_million: 0
new_cases_per_million: 0
new_cases_smoothed_per_million: 0
total_deaths_per_million: 0
new_deaths_per_million: 0
new_deaths_smoothed_per_million: 0
import org.apache.spark.sql.functions._

Prepare the data for training. We choose a day we want to predict, and select the constant features, and select the target column for prediction.

val df_by_location = df_cleaned_time_series.filter($"date" === "2020-12-01").sort($"continent").select($"iso_code",$"stringency_index", $"population",$"population_density",$"gdp_per_capita",$"diabetes_prevalence",$"total_cases_per_million",$"total_cases")
display(df_by_location)
df_by_location.count()
res145: Long = 159

Rescale the feature values and the target value.

import org.apache.spark.sql.functions._
import org.apache.spark.sql.Column
val min_str_index = df_by_location.select(min($"stringency_index")).first()(0)
val max_str_index = df_by_location.select(max($"stringency_index")).first()(0)
val min_population = df_by_location.select(min($"population")).first()(0)
val max_population = df_by_location.select(max($"population")).first()(0)
val min_population_density = 
df_by_location.select(min($"population_density")).first()(0)
val max_population_density = 
df_by_location.select(max($"population_density")).first()(0)
val min_gdp_per_capita = df_by_location.select(min($"gdp_per_capita")).first()(0)
val max_gdp_per_capita = df_by_location.select(max($"gdp_per_capita")).first()(0)
val min_diabetes_prevalence = 
df_by_location.select(min($"diabetes_prevalence")).first()(0)
val max_diabetes_prevalence = df_by_location.select(max($"diabetes_prevalence")).first()(0)

val df_by_location_normalized = df_by_location
  .withColumn("normal_stringency_index",($"stringency_index" -lit(min_str_index))/(lit(max_str_index)-lit(min_str_index)))
  .withColumn("normal_population", ($"population" - lit(min_population))/(lit(max_population)-lit(min_population)))
  .withColumn("normal_population_density",($"population_density" - lit(min_population_density))/(lit(max_population_density) - lit(min_population_density)))
  .withColumn("normal_gdp_per_capita", ($"gdp_per_capita" - lit(min_gdp_per_capita))/(lit(max_gdp_per_capita)- lit(min_gdp_per_capita)))
  .withColumn("normal_diabetes_prevalence", ($"diabetes_prevalence" - lit(min_diabetes_prevalence))/lit(max_diabetes_prevalence) - lit(min_diabetes_prevalence)).withColumn("log_total_cases_per_million", log($"total_cases_per_million")).toDF
display(df_by_location_normalized)
df_by_location_normalized.printSchema
root
 |-- iso_code: string (nullable = true)
 |-- stringency_index: double (nullable = false)
 |-- population: double (nullable = true)
 |-- population_density: double (nullable = true)
 |-- gdp_per_capita: double (nullable = true)
 |-- diabetes_prevalence: double (nullable = true)
 |-- total_cases_per_million: double (nullable = true)
 |-- total_cases: double (nullable = false)
 |-- normal_stringency_index: double (nullable = true)
 |-- normal_population: double (nullable = true)
 |-- normal_population_density: double (nullable = true)
 |-- normal_gdp_per_capita: double (nullable = true)
 |-- normal_diabetes_prevalence: double (nullable = true)
 |-- log_total_cases_per_million: double (nullable = true)
val df_by_location_normalized_selected = df_by_location_normalized.select($"normal_stringency_index",$"normal_population",$"normal_population_density",$"normal_gdp_per_capita", $"normal_diabetes_prevalence",$"log_total_cases_per_million")
df_by_location_normalized_selected: org.apache.spark.sql.DataFrame = [normal_stringency_index: double, normal_population: double ... 4 more fields]
display(df_by_location_normalized_selected)
  1. Linear Regression from selected value to new cases

These values are irrelevant to time, but relevant to country. So we try to predict the total case in some contries from the data in other contries.

df_by_location_normalized_selected.createOrReplaceTempView("covid_table")
import org.apache.spark.ml.feature.VectorAssembler

val vectorizer =  new VectorAssembler()
.setInputCols(Array("normal_stringency_index", "normal_population", "normal_population_density", "normal_gdp_per_capita", "normal_diabetes_prevalence"))
.setOutputCol("features")

// make a DataFrame called dataset from the table
val dataset = vectorizer.transform(df_by_location_normalized_selected).select("features","log_total_cases_per_million") 
import org.apache.spark.ml.feature.VectorAssembler
vectorizer: org.apache.spark.ml.feature.VectorAssembler = VectorAssembler: uid=vecAssembler_a8c5337c1334, handleInvalid=error, numInputCols=5
dataset: org.apache.spark.sql.DataFrame = [features: vector, log_total_cases_per_million: double]
display(dataset)
var Array(split20, split80) = dataset.randomSplit(Array(0.20, 0.80), 1800009193L)
split20: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [features: vector, log_total_cases_per_million: double]
split80: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [features: vector, log_total_cases_per_million: double]
val testSet = split20.cache()

val trainingSet = split80.cache()
testSet: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [features: vector, log_total_cases_per_million: double]
trainingSet: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [features: vector, log_total_cases_per_million: double]
testSet.count() // action to actually cache
res156: Long = 26
trainingSet.count() // action to actually cache
res157: Long = 133
import org.apache.spark.ml.regression.LinearRegression
import org.apache.spark.ml.regression.LinearRegressionModel
import org.apache.spark.ml.Pipeline

// Let's initialize our linear regression learner
val lr = new LinearRegression()
// We use explain params to dump the parameters we can use
lr.explainParams()
// Now we set the parameters for the method
lr.setPredictionCol("prediction")
  .setLabelCol("log_total_cases_per_million")
  .setMaxIter(100)
  .setRegParam(0.1)
val lrModel = lr.fit(trainingSet)
import org.apache.spark.ml.regression.LinearRegression
import org.apache.spark.ml.regression.LinearRegressionModel
import org.apache.spark.ml.Pipeline
lr: org.apache.spark.ml.regression.LinearRegression = linReg_04758f25dc55
lrModel: org.apache.spark.ml.regression.LinearRegressionModel = LinearRegressionModel: uid=linReg_04758f25dc55, numFeatures=5
val trainingSummary = lrModel.summary

println(s"Coefficients: ${lrModel.coefficients}, Intercept: ${lrModel.intercept}")
println(s"RMSE: ${trainingSummary.rootMeanSquaredError}")
Coefficients: [2.6214237261445112,-1.3643062210132013,-1.3234981005291635,4.903123743799173,1.0283056897021852], Intercept: 6.691449394053385
RMSE: 1.605896246405295
trainingSummary: org.apache.spark.ml.regression.LinearRegressionTrainingSummary = org.apache.spark.ml.regression.LinearRegressionTrainingSummary@3c0bba63
import org.apache.spark.ml.evaluation.RegressionEvaluator

// make predictions on the test data
val predictions = lrModel.transform(testSet)
predictions.select("prediction", "log_total_cases_per_million", "features").show()

// select (prediction, true label) and compute test error.
val evaluator = new RegressionEvaluator()
  .setLabelCol("log_total_cases_per_million")
  .setPredictionCol("prediction")
  .setMetricName("rmse")
val rmse = evaluator.evaluate(predictions)
println(s"Root Mean Squared Error (RMSE) on test data = $rmse")
+------------------+---------------------------+--------------------+
|        prediction|log_total_cases_per_million|            features|
+------------------+---------------------------+--------------------+
| 6.328494753118636|          2.142543078223737|[0.15958180147058...|
| 8.115061043502033|          7.528810569839765|[0.36167279411764...|
| 7.462997808492604|          6.223671398897003|[0.64889705882352...|
| 7.831137150153838|          6.524287884057365|[0.79779411764705...|
|10.269420769779092|          5.843997267897207|[0.40429687499999...|
| 7.289562258542376|         2.6304048908829563|[0.49471507352941...|
| 9.963465130096218|          9.237218853465539|[0.57444852941176...|
|13.213369998258539|         10.784078124343976|[0.74460018382352...|
| 9.213228147281598|         10.572977149641726|[0.75528492647058...|
| 9.085379666714474|          9.143147511395949|[0.82444852941176...|
| 6.750739656770235|         10.952187342908323|[0.0,3.6806047717...|
| 8.135800825140628|         10.373288860272808|[0.51056985294117...|
| 7.507644816227425|         10.203096222487993|[0.55319393382352...|
|10.048805671611257|          8.817232647019427|[0.56376378676470...|
| 9.404481665413662|         10.158884909113675|[0.61695772058823...|
| 9.488257390217875|         10.351014339169227|[0.64889705882352...|
|  9.08870238448793|         10.291011744026449|[0.71806066176470...|
| 8.899278092318433|         10.041688001727678|[0.72334558823529...|
| 8.899278092318433|         10.041688001727678|[0.72334558823529...|
| 9.353065533403424|          9.427461709192647|[0.75528492647058...|
+------------------+---------------------------+--------------------+
only showing top 20 rows

Root Mean Squared Error (RMSE) on test data = 2.2259062146564705
import org.apache.spark.ml.evaluation.RegressionEvaluator
predictions: org.apache.spark.sql.DataFrame = [features: vector, log_total_cases_per_million: double ... 1 more field]
evaluator: org.apache.spark.ml.evaluation.RegressionEvaluator = RegressionEvaluator: uid=regEval_575198e0fd5f, metricName=rmse, throughOrigin=false
rmse: Double = 2.2259062146564705
val predictions = lrModel.transform(testSet)
display(predictions)
val new_predictions = predictions.withColumn("new_prediction", exp($"prediction")).withColumn("total_cases_per_million",exp($"log_total_cases_per_million")).select("new_prediction", "total_cases_per_million", "features")
display(new_predictions)
// select (prediction, true label) and compute test error.
val evaluator = new RegressionEvaluator()
  .setLabelCol("total_cases_per_million")
  .setPredictionCol("new_prediction")
  .setMetricName("rmse")
val rmse = evaluator.evaluate(new_predictions)
println("Root Mean Squared Error (RMSE) on test data = $rmse")
Root Mean Squared Error (RMSE) on test data = $rmse
evaluator: org.apache.spark.ml.evaluation.RegressionEvaluator = RegressionEvaluator: uid=regEval_dcf763c5af79, metricName=rmse, throughOrigin=false
rmse: Double = 99893.56063834814
  1. Conclusion and Reflections

We've tried several ways to preprocess the consant feature, but still didn't get a good result. We came to the conclusion that only predict the total cases of a country from other countries without considering the history time series values are not resonable. This is because the constant feature columns cannot reflect the total cases well. Therefore, we decided to use some time series methods to predict the value from the history value.

ScaDaMaLe Course site and book

In this notebook, we do prediction with the time series method - Autoregressive integrated moving average (ARIMA). We preprocess the data and prepare for prediction. Then we predicted the new cases (smoothed) and new deaths (smoothed) for world and Sweden. We predict the future value from the history value. After the prediction part we evaluated our results.

  1. Import data and preprocess

// You need to uncomment this line if you haven't preprocess data yet.

%run "./02_DataPreprocess"
  1. Prepare for data

display(df_cleaned_time_series)
df_cleaned_time_series.printSchema
root
 |-- iso_code: string (nullable = true)
 |-- continent: string (nullable = false)
 |-- location: string (nullable = true)
 |-- date: string (nullable = true)
 |-- total_cases: double (nullable = false)
 |-- new_cases: double (nullable = true)
 |-- new_cases_smoothed: double (nullable = false)
 |-- total_deaths: double (nullable = false)
 |-- new_deaths: double (nullable = true)
 |-- new_deaths_smoothed: double (nullable = false)
 |-- reproduction_rate: double (nullable = false)
 |-- icu_patients: double (nullable = true)
 |-- icu_patients_per_million: double (nullable = true)
 |-- hosp_patients: double (nullable = true)
 |-- hosp_patients_per_million: double (nullable = true)
 |-- weekly_icu_admissions: double (nullable = true)
 |-- weekly_icu_admissions_per_million: double (nullable = true)
 |-- weekly_hosp_admissions: double (nullable = true)
 |-- weekly_hosp_admissions_per_million: double (nullable = true)
 |-- total_tests: double (nullable = false)
 |-- new_tests: double (nullable = true)
 |-- total_tests_per_thousand: double (nullable = true)
 |-- new_tests_per_thousand: double (nullable = true)
 |-- new_tests_smoothed: double (nullable = true)
 |-- new_tests_smoothed_per_thousand: double (nullable = true)
 |-- tests_per_case: double (nullable = true)
 |-- positive_rate: double (nullable = true)
 |-- tests_units: double (nullable = true)
 |-- stringency_index: double (nullable = false)
 |-- population: double (nullable = true)
 |-- population_density: double (nullable = true)
 |-- median_age: double (nullable = true)
 |-- aged_65_older: double (nullable = true)
 |-- aged_70_older: double (nullable = true)
 |-- gdp_per_capita: double (nullable = true)
 |-- extreme_poverty: double (nullable = true)
 |-- cardiovasc_death_rate: double (nullable = true)
 |-- diabetes_prevalence: double (nullable = true)
 |-- female_smokers: double (nullable = true)
 |-- male_smokers: double (nullable = true)
 |-- handwashing_facilities: double (nullable = true)
 |-- hospital_beds_per_thousand: double (nullable = true)
 |-- life_expectancy: double (nullable = true)
 |-- human_development_index: double (nullable = true)
 |-- total_cases_per_million: double (nullable = true)
 |-- new_cases_per_million: double (nullable = true)
 |-- new_cases_smoothed_per_million: double (nullable = true)
 |-- total_deaths_per_million: double (nullable = true)
 |-- new_deaths_per_million: double (nullable = true)
 |-- new_deaths_smoothed_per_million: double (nullable = true)
// There is no "World" in the 126 countries. we need to calculate it.
val countries = df_cleaned_time_series.groupBy("location").count().sort($"location")
display(countries)

2.1.1 The smoothed new cases of the world.

We use the smoothed new cases because the raw data fluctuates greatly by day - on workdays, there are more new cases than on weekends.

// prediction for all over the world
import org.apache.spark.sql.functions._
// val df_world = df_cleaned_time_series.withColumn("date", (col("date").cast("Timestamp"))).where("location == 'World'").select($"date",$"new_cases_smoothed")

val df_world = df_cleaned_time_series.groupBy("date").sum("new_cases_smoothed").sort(col("date")).withColumnRenamed("sum(new_cases_smoothed)","new_cases_smoothed")

display(df_world)

df_world.printSchema
root
 |-- date: string (nullable = true)
 |-- new_cases_smoothed: double (nullable = true)
df_world.createOrReplaceTempView("df_world")
// val df_world_deaths = df_cleaned_time_series.withColumn("date", (col("date").cast("Timestamp"))).where("location == 'World'").select($"date",$"new_deaths_smoothed")
val df_world_deaths = df_cleaned_time_series.groupBy("date").sum("new_deaths_smoothed").sort(col("date")).withColumnRenamed("sum(new_deaths_smoothed)","new_deaths_smoothed")

df_world_deaths.createOrReplaceTempView("df_world_deaths")
df_world_deaths: org.apache.spark.sql.DataFrame = [date: string, new_deaths_smoothed: double]

2.2.1 The smoothed new cases of Sweden

In addition to the new cases all over the world, we also care about the cases in Sweden. Here we deal with smoothed new cases of Sweden.

// Select one contry for prediction
import org.apache.spark.sql.functions._

val df_sw = df_cleaned_time_series.withColumn("date", (col("date").cast("Timestamp"))).where("location == 'Sweden'").select($"date",$"new_cases_smoothed")
display(df_sw)

df_sw.printSchema
root
 |-- date: timestamp (nullable = true)
 |-- new_cases_smoothed: double (nullable = false)
df_sw.createOrReplaceTempView("df_sw")
val df_sw_deaths = df_cleaned_time_series.withColumn("date", (col("date").cast("Timestamp"))).where("location == 'Sweden'").select($"date",$"new_deaths_smoothed")
df_sw_deaths.createOrReplaceTempView("df_sw_deaths")
df_sw_deaths: org.apache.spark.sql.DataFrame = [date: timestamp, new_deaths_smoothed: double]
  1. Time series regression with ARIMA

ARIMA - Autoregressive Integrated Moving Average model. It's widely used in time series analysis. see defination here: https://en.wikipedia.org/wiki/Autoregressiveintegratedmoving_average

# import some libraries
# dbutils.library.installPyPI('numpy','1.16.3')
# dbutils.library.installPyPI('pandas','1.1.5')
# dbutils.library.restartPython()
import pandas
from matplotlib import pyplot
print(pandas.__version__)
data = spark.table("df_world")

print(type(data))
1.0.1
<class 'pyspark.sql.dataframe.DataFrame'>
from pyspark.sql.functions import *
from datetime import datetime
from pyspark.sql.functions import to_date, to_timestamp
data_pd = data.toPandas()
import numpy as np
import pandas as pd
from statsmodels.tsa.arima_model import ARIMA
import sklearn
import statsmodels
from datetime import date
print(data_pd.columns)
data_pd['date'] = pd.to_datetime(data_pd['date'])
Index(['date', 'new_cases_smoothed'], dtype='object')
// # %python
// # data_pd.plot(x='date', y = 'new_cases_smoothed', figsize=(8,5))

import math
def Predict_by_ARIMA(data_pd, one_step = True, training_length = 0.9):
  data_pd1 = data_pd.set_index('date')
  X = data_pd1.values
  train_size = int(len(X) * training_length) #the length you need for training.
  train, test = X[0:train_size], X[train_size:len(X)]
  test_date = data_pd1.index[train_size:len(X)]
  history = [x for x in train]
  predictions = list()
  print("training_series_size: ", train_size)
  print("test_series_size: ", len(test))
  for t in range(len(test)):
    model = ARIMA(history, order=(2,1,0))
    model_fit = model.fit(disp=0)
    output = model_fit.forecast()
    yhat = output[0]
    predictions.append(yhat)
    if one_step:
      obs = test[t] # use real value, only predict next step
    else:
      obs = yhat # use predicted value, predict all test data
    history.append(obs)
    current_date = test_date[t]
    print(str(current_date.date()), 'pred=%f, gt=%f' % (yhat, obs))
  return test, predictions
test_world, predictions_world = Predict_by_ARIMA(data_pd, True, 0.9)
print("test size: ", len(test_world))
print("predicted size: ", len(predictions_world))
# plot
fig_world = pyplot.figure()  
pyplot.plot(test_world)
pyplot.plot(predictions_world, color='red')
pyplot.show()

print(data_pd)
_, predictions_world_multi = Predict_by_ARIMA(data_pd, False)
print("test size: ", len(test_world))
print("predicted size: ", len(predictions_world))
# plot
fig_world_multi = pyplot.figure()  
pyplot.plot(test_world)
pyplot.plot(predictions_world_multi, color='red')
pyplot.show()

data_world_death = spark.table("df_world_deaths")
data_world_death_pd = data_world_death.toPandas()
print(data_world_death_pd.columns)
data_world_death_pd['date'] = pd.to_datetime(data_world_death_pd['date'])
Index(['date', 'new_deaths_smoothed'], dtype='object')
test_world_death, predictions_world_death = Predict_by_ARIMA(data_world_death_pd)
print("test size: ", len(test_world_death))
print("predicted size: ", len(predictions_world_death))
# plot
fig_world_death = pyplot.figure()  
pyplot.plot(test_world_death)
pyplot.plot(predictions_world_death, color='red')
pyplot.show()

_, predictions_world_death_multi = Predict_by_ARIMA(data_world_death_pd, False)
print("test size: ", len(test_world_death))
print("predicted size: ", len(predictions_world_death_multi))
# plot
fig_world_death = pyplot.figure()  
pyplot.plot(test_world_death)
pyplot.plot(predictions_world_death_multi, color='red')
pyplot.show()

from datetime import datetime
from datetime import date
from matplotlib import pyplot
import numpy as np
import pandas as pd
from pyspark.sql.functions import to_date, to_timestamp
from pyspark.sql.functions import *
from statsmodels.tsa.arima_model import ARIMA
import sklearn
import statsmodels

data_sw = spark.table("df_sw")
data_sw_pd = data_sw.toPandas()
print(data_sw_pd.columns)
data_sw_pd['date'] = pd.to_datetime(data_sw_pd['date'])
Index(['date', 'new_cases_smoothed'], dtype='object')
data_sw_pd.plot(x='date', y = 'new_cases_smoothed', figsize=(8,5))

test_sw, predictions_sw = Predict_by_ARIMA(data_sw_pd)
print("test size: ", len(test_sw))
print("predicted size: ", len(predictions_sw))
# plot
fig_sw = pyplot.figure()  
pyplot.plot(test_sw)
pyplot.plot(predictions_sw, color='red')
pyplot.show()

_, predictions_sw_multi = Predict_by_ARIMA(data_sw_pd, False)
print("test size: ", len(test_sw))
print("predicted size: ", len(predictions_sw))
# plot
fig_sw = pyplot.figure()  
pyplot.plot(test_sw)
pyplot.plot(predictions_sw_multi, color='red')
pyplot.show()

data_sw_death = spark.table("df_sw_deaths")
data_sw_death_pd = data_sw_death.toPandas()
print(data_sw_death_pd.columns)
data_sw_death_pd['date'] = pd.to_datetime(data_sw_death_pd['date'])
Index(['date', 'new_deaths_smoothed'], dtype='object')
test_sw_death, predictions_sw_death = Predict_by_ARIMA(data_sw_death_pd)
print("test size: ", len(test_sw_death))
print("predicted size: ", len(predictions_sw_death))
# plot
fig_sw_death = pyplot.figure()  
pyplot.plot(test_sw_death)
pyplot.plot(predictions_sw_death, color='red')
pyplot.show()

_, predictions_sw_death_multi = Predict_by_ARIMA(data_sw_death_pd, False)
print("test size: ", len(test_sw_death))
print("predicted size: ", len(predictions_sw_death_multi))
# plot
fig_sw_death = pyplot.figure()  
pyplot.plot(test_sw_death)
pyplot.plot(predictions_sw_death_multi, color='red')
pyplot.show()

  1. Evaluation

import math
from sklearn.metrics import mean_squared_error
from sklearn.metrics import mean_absolute_error

def Evaluation(test, predictions):
  error_mse = mean_squared_error(test, predictions)
  error_rmse = math.sqrt(error_mse)
  error_abs = mean_absolute_error(test, predictions)
  avg_gt = test[:,0].sum() / len(test)

  mse_percentage = error_rmse / avg_gt * 100
  abs_percentage = error_abs / avg_gt * 100
  print('Average of groundtruth: %.3f' % avg_gt)
  print('Test MSE: %.3f' % error_mse)
  print('Test RMSE: %.3f' % error_rmse)
  print('RMSE percentage error: %.3f' % mse_percentage, '%')
  print('Test ABS: %.3f' % error_abs)
  print('ABS percentage error: %.3f' % abs_percentage, '%')

Evaluation(test_world, predictions_world)
Average of groundtruth: 763744.916
Test MSE: 1382104096.548
Test RMSE: 37176.661
RMSE percentage error: 4.868 %
Test ABS: 19644.392
ABS percentage error: 2.572 %
Evaluation(test_world, predictions_world_multi)
Average of groundtruth: 763744.916
Test MSE: 16372759781.212
Test RMSE: 127956.085
RMSE percentage error: 16.754 %
Test ABS: 114514.607
ABS percentage error: 14.994 %
Evaluation(test_world_death, predictions_world_death)
Average of groundtruth: 11412.091
Test MSE: 358938.532
Test RMSE: 599.115
RMSE percentage error: 5.250 %
Test ABS: 290.352
ABS percentage error: 2.544 %
Evaluation(test_world_death, predictions_world_death_multi)
Average of groundtruth: 11412.091
Test MSE: 5567620.973
Test RMSE: 2359.581
RMSE percentage error: 20.676 %
Test ABS: 2110.218
ABS percentage error: 18.491 %
Evaluation(test_sw, predictions_sw)
Average of groundtruth: 4564.277
Test MSE: 26457.989
Test RMSE: 162.659
RMSE percentage error: 3.564 %
Test ABS: 82.412
ABS percentage error: 1.806 %
Evaluation(test_sw, predictions_sw_multi)
Average of groundtruth: 4564.277
Test MSE: 1514028.102
Test RMSE: 1230.458
RMSE percentage error: 26.958 %
Test ABS: 1172.056
ABS percentage error: 25.679 %
Evaluation(test_sw_death, predictions_sw_death)
Average of groundtruth: 31.862
Test MSE: 24.933
Test RMSE: 4.993
RMSE percentage error: 15.672 %
Test ABS: 3.072
ABS percentage error: 9.643 %
Evaluation(test_sw_death, predictions_sw_death_multi)
Average of groundtruth: 31.862
Test MSE: 775.703
Test RMSE: 27.851
RMSE percentage error: 87.414 %
Test ABS: 25.094
ABS percentage error: 78.759 %
  1. Conclusion and Reflections

With this time series method - ARIMA, we can get quite resonable results. We predicted the new cases (smoothed) and new deaths (smoothed) for world and Sweden. The evaluation of one step shows that we can get good results with a small error. But the multi step results is not good when we want to predict long term results. The prediction model and evaluation function can also been used for other countries.

ScaDaMaLe Course site and book

Prediction with time series model - Gaussian Processes

This notebook contains time series prediction with gaussian processes. The data used for prediction is new cases (smoothed) and new deaths (smoothed) for both an aggregated number of countries in the world and for Sweden. To implement the gaussian process model, the python package Gpytorch is used.

  1. Install, import, load and preprocess data

Install, import and execute the other relevant notebooks here to load and preprocess data...

pip install gpytorch
Python interpreter will be restarted.
Collecting gpytorch
  Downloading gpytorch-1.3.0.tar.gz (283 kB)
Building wheels for collected packages: gpytorch
  Building wheel for gpytorch (setup.py): started
  Building wheel for gpytorch (setup.py): finished with status 'done'
  Created wheel for gpytorch: filename=gpytorch-1.3.0-py2.py3-none-any.whl size=473796 sha256=5882e250a68a9042a1e51e11617837c2e922878bd22e515cf9459b217c96ba2b
  Stored in directory: /root/.cache/pip/wheels/1d/f0/2c/2146864c1f7bd8a844c4143115c05c392da763fd8b249adb9d
Successfully built gpytorch
Installing collected packages: gpytorch
Successfully installed gpytorch-1.3.0
Python interpreter will be restarted.
# python imports
import gpytorch as gpth
import torch as th
import matplotlib.pyplot as plt
import numpy as np
"./02_DataPreprocess"
  1. Additional data preprocessing in Scala

// define dataframe summing up the new cases smoothed for each date
val df_ncworld = df_cleaned_time_series.groupBy("date").sum("new_cases_smoothed").sort(col("date")).withColumnRenamed("sum(new_cases_smoothed)","new_cases_smoothed")
display(df_ncworld)

// define dataframe summing up the new deaths smoothed for each date
val df_ndworld = df_cleaned_time_series.groupBy("date").sum("new_deaths_smoothed").sort(col("date")).withColumnRenamed("sum(new_deaths_smoothed)","new_deaths_smoothed")
display(df_ndworld)

// Add a time index for the date
import org.apache.spark.sql.expressions.Window
val window_spec  = Window.orderBy($"date")

val df_ncworld_indexed = df_ncworld.withColumn("time_idx",row_number.over(window_spec))
val df_ndworld_indexed = df_ndworld.withColumn("time_idx",row_number.over(window_spec))
display(df_ncworld_indexed)
// Get max and min of time index
import org.apache.spark.sql.functions.{min, max}
import org.apache.spark.sql.Row

val id_maxmin = df_ncworld_indexed.agg(max("time_idx"), min("time_idx")).head()
val id_max: Int = id_maxmin.getInt(0)
val id_min: Int = id_maxmin.getInt(1)
import org.apache.spark.sql.functions.{min, max}
import org.apache.spark.sql.Row
id_maxmin: org.apache.spark.sql.Row = [316,1]
id_max: Int = 316
id_min: Int = 1

Extract a window for prediction

// define training and test data intervalls. test data is set to 10% of the total dataset time length.
val test_wnd: Int = (0.1*id_max).toInt
val train_wnd: Int = (0.9*id_max).toInt

val df_ncworld_train = df_ncworld_indexed.where($"time_idx" > id_max-train_wnd-test_wnd && $"time_idx" <= id_max-test_wnd)
val df_ncworld_test = df_ncworld_indexed.where($"time_idx" > id_max-test_wnd && $"time_idx" <= id_max)
val df_ndworld_train = df_ndworld_indexed.where($"time_idx" > id_max-train_wnd-test_wnd && $"time_idx" <= id_max-test_wnd)
val df_ndworld_test = df_ndworld_indexed.where($"time_idx" > id_max-test_wnd && $"time_idx" <= id_max)
display(df_ncworld_test)

Convert to python for further processing

df_ncworld_train.createOrReplaceTempView("df_ncworld_train")
df_ncworld_test.createOrReplaceTempView("df_ncworld_test")
df_ndworld_train.createOrReplaceTempView("df_ndworld_train")
df_ndworld_test.createOrReplaceTempView("df_ndworld_test")
df_ncworld_train = spark.table("df_ncworld_train")
df_ncworld_test = spark.table("df_ncworld_test")
df_ndworld_train = spark.table("df_ndworld_train")
df_ndworld_test = spark.table("df_ndworld_test")
val df_ncdenswe = df_cleaned_time_series.select($"location", $"date", $"new_cases_smoothed").where(expr("location = 'Sweden' or location = 'Denmark'"))
val df_nddenswe = df_cleaned_time_series.select($"location", $"date", $"new_deaths_smoothed").where(expr("location = 'Sweden' or location = 'Denmark'"))
df_ncdenswe: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [location: string, date: string ... 1 more field]
df_nddenswe: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [location: string, date: string ... 1 more field]
// Add a time index for the date
import org.apache.spark.sql.expressions.Window
val window_spec  = Window.partitionBy("location").orderBy($"date")

val df_ncdenswe_indexed = df_ncdenswe.withColumn("time_idx",row_number.over(window_spec))
display(df_ncdenswe_indexed)

val df_nddenswe_indexed = df_nddenswe.withColumn("time_idx",row_number.over(window_spec))
display(df_nddenswe_indexed)
val test_wnd: Int = (0.1*id_max).toInt
val train_wnd: Int = (0.9*id_max).toInt
val df_ncdenswe_train = df_ncdenswe_indexed.where($"time_idx" > id_max-train_wnd-test_wnd && $"time_idx" <= id_max-test_wnd)
val df_ncdenswe_test = df_ncdenswe_indexed.where($"time_idx" > id_max-test_wnd && $"time_idx" <= id_max)
val df_nddenswe_train = df_nddenswe_indexed.where($"time_idx" > id_max-train_wnd-test_wnd && $"time_idx" <= id_max-test_wnd)
val df_nddenswe_test = df_nddenswe_indexed.where($"time_idx" > id_max-test_wnd && $"time_idx" <= id_max)
display(df_ncdenswe_test)
df_ncdenswe_train.createOrReplaceTempView("df_ncdenswe_train")
df_ncdenswe_test.createOrReplaceTempView("df_ncdenswe_test")
df_nddenswe_train.createOrReplaceTempView("df_nddenswe_train")
df_nddenswe_test.createOrReplaceTempView("df_nddenswe_test")
df_ncdenswe_train = spark.table("df_ncdenswe_train")
df_ncdenswe_test = spark.table("df_ncdenswe_test")
df_nddenswe_train = spark.table("df_nddenswe_train")
df_nddenswe_test = spark.table("df_nddenswe_test")
  1. Time series prediction with Gaussian Processes

In this section we perform predictions based on the input data. Some additional preprocessing in Python is done as well. The transition from Scala to Python is motivated by the use of the python package Gpytorch for implementing the gaussian process model.

3.1 World multistep prediction

As similar operations are performed for processing data, a class is first defined to enable code reuse

from pyspark.sql.functions import col
import matplotlib.pyplot as plt

class GPDataSet():
  def __init__(self, df_train, df_test, datacol, filterloc = None, add_input = None):
    """
      class for processing input data to GP. As similar code is reused, this class enables some code reuse.

      param: 'df_train', training data dataframe
      param: 'df_test', test data dataframe
      param: 'datacol', data column in dataframe to perform predictions on, e.g. 'new_cases_smoothed'
      param: 'filterloc', location column in dataframe to perform predictions on, e.g. 'Sweden'
      param: 'add_input', additional location column in dataframe to use as input for predictions, e.g. 'Denmark'  
    """
    self.df_train = df_train
    self.df_test = df_test
    self.datacol = datacol
    self.filterloc = filterloc
    self.add_input = add_input
    self.num_xdim = None    


  def convert_to_numpy(self):
    """
      convert dataframe to numpy arrays. This process may takes a while.
    """
    # if no filter for location is specified
    if self.filterloc is None:
      x_train_np = np.array(self.df_train.orderBy("time_idx").select("time_idx").rdd.map(lambda x: x[0]).collect())
      x_test_np = np.array(self.df_test.orderBy("time_idx").select("time_idx").rdd.map(lambda x: x[0]).collect())
      y_train_np = np.array(self.df_train.orderBy("time_idx").select(self.datacol).rdd.map(lambda x: x[0]).collect())    
      y_test_np = np.array(self.df_test.orderBy("time_idx").select(self.datacol).rdd.map(lambda x: x[0]).collect())    
      num_xdim = 1      

    # if a filter for location is specified
    else:
      if self.add_input is None:
        x_train_np = np.array(self.df_train.filter(col("location") == self.filterloc).orderBy("time_idx").select("time_idx").rdd.map(lambda x: x[0]).collect())
        x_test_np = np.array(self.df_test.filter(col("location") == self.filterloc).orderBy("time_idx").select("time_idx").rdd.map(lambda x: x[0]).collect())
        num_xdim = 1        

      # if prediction should add additional input from e.g. a neighbouring country
      else:
        x_train_time = np.array(self.df_train.filter(col("location") == self.filterloc).orderBy("time_idx").select("time_idx").rdd.map(lambda x: x[0]).collect())
        x_test_time = np.array(self.df_test.filter(col("location") == self.filterloc).orderBy("time_idx").select("time_idx").rdd.map(lambda x: x[0]).collect())       
        x_train_add = np.array(self.df_train.filter(col("location") == self.add_input).orderBy("time_idx").select(self.datacol).rdd.map(lambda x: x[0]).collect())
        x_test_add = np.array(self.df_test.filter(col("location") == self.add_input).orderBy("time_idx").select(self.datacol).rdd.map(lambda x: x[0]).collect())    
        x_train = np.stack((x_train_time, x_train_add), axis=0)
        x_test = np.stack((x_test_time, x_test_add), axis=0)
        x_train_np = np.moveaxis(x_train, 1, 0)
        x_test_np = np.moveaxis(x_test, 1, 0)
        num_xdim = 2

      # output data
      y_train_np = np.array(self.df_train.filter(col("location") == self.filterloc).orderBy("time_idx").select(self.datacol).rdd.map(lambda x: x[0]).collect())
      y_test_np = np.array(self.df_test.filter(col("location") == self.filterloc).orderBy("time_idx").select(self.datacol).rdd.map(lambda x: x[0]).collect())

    self.x_train_np = x_train_np
    self.x_test_np = x_test_np
    self.y_train_np = y_train_np
    self.y_test_np = y_test_np
    self.num_xdim = num_xdim

  def plot_numpy_data(self):
    """
      plot numpy arrays
    """   
    if self.num_xdim == 2:
      fig, (ax1, ax2) = plt.subplots(1,2, figsize=(12,6))
      ax1.plot(self.x_train_np[:,0], self.y_train_np, 'k*')
      ax1.legend(['train data'])
      ax1.set_xlabel('time [days]')
      ax1.set_ylabel('output')
      ax1.set_title('training data')
      ax1.grid()   
      ax2.plot(self.x_train_np[:,0], self.x_train_np[:,1], 'k*')
      ax2.legend(['train data'])
      ax2.set_xlabel('time [days]')
      ax2.set_ylabel('additional input')
      ax2.set_title('training data')
      ax2.grid()         
    else:
      fig, ax = plt.subplots(1,1, figsize=(12,6))
      ax.plot(self.x_train_np, self.y_train_np, 'k*')
      ax.legend(['train data'])
      ax.set_xlabel('time [days]')
      ax.set_ylabel('output')
      ax.set_title('training data')
      ax.grid()      

  def get_train_length(self):
      if self.num_xdim == 2:
        return len(self.x_train_np[:,0])
      else:
        return len(self.x_train_np)

  def process_numpy_data(self, nth_subsample = 4, window_red = 0.8):
    """
      reduction of data by subsampling data and reducing length of data window.
    """
    assert window_red > 0 and window_red <= 1, "please adjust 'window_red' parameter to be between 0 and 1"
    start_idx = int((self.get_train_length())*window_red)
    self.x_train = th.tensor(self.x_train_np[start_idx::nth_subsample], dtype=th.float)
    self.x_test = th.tensor(self.x_test_np, dtype=th.float)
    self.y_train = th.tensor(self.y_train_np[start_idx::nth_subsample], dtype=th.float)
    self.y_test = th.tensor(self.y_test_np, dtype=th.float)    
    self.normalize()

  def set_time_to_zero(self):
    """
      sets the time vector to start at time zero
    """
    if self.num_xdim == 2:
      self.x_train_min = self.x_train[:,0].min()
      self.x_train[:,0] = self.x_train[:,0] - self.x_train_min
      self.x_test[:,0] = self.x_test[:,0] - self.x_train_min      
    else:
      self.x_train_min = self.x_train.min()
      self.x_train = self.x_train - self.x_train_min
      self.x_test = self.x_test - self.x_train_min

  def normalize(self):
    """
      normalize the data to improve predictions
    """
    self.set_time_to_zero()

    self.x_train_mean = self.x_train.mean()
    self.x_train_std = self.x_train.std()
    self.x_train = (self.x_train - self.x_train_mean) / self.x_train_std
    self.x_test = (self.x_test - self.x_train_mean) / self.x_train_std     

    self.y_train_mean = self.y_train.mean()
    self.y_train_std = self.y_train.std()
    self.y_train = (self.y_train - self.y_train_mean) / self.y_train_std
    self.y_test = (self.y_test - self.y_train_mean) / self.y_train_std
    self.data_normalized = True


  def plot_reduced_data(self):
    """
      plots the reduced training data
    """
    with th.no_grad():      
      if self.num_xdim == 2:
        fig, (ax1, ax2) = plt.subplots(1,2, figsize=(12,6))
        ax1.plot(self.x_train[:,0], self.y_train, 'k*')
        ax1.legend(['train data'])
        ax1.set_xlabel('time [days]')
        ax1.set_ylabel('output')
        ax1.set_title('training data')
        ax1.grid()   
        ax2.plot(self.x_train[:,0], self.x_train[:,1], 'k*')
        ax2.legend(['train data'])
        ax2.set_xlabel('time [days]')
        ax2.set_ylabel('additional input')
        ax2.set_title('training data')
        ax2.grid()         
      else:
        fig, ax = plt.subplots(1,1, figsize=(12,6))
        ax.plot(self.x_train, self.y_train, 'k*')
        ax.legend(['train data'])
        ax.set_xlabel('time [days]')
        ax.set_ylabel('output')
        ax.set_title('training data')
        ax.grid()     

Use class to convert dataframes to numpy arrays for further processing. Note, the conversion may take a while.

ds_ncworld = GPDataSet(df_ncworld_train, df_ncworld_test, datacol = 'new_cases_smoothed', filterloc = None, add_input=None)
ds_ndworld = GPDataSet(df_ndworld_train, df_ndworld_test, datacol = 'new_deaths_smoothed', filterloc = None, add_input=None)
ds_ncworld.convert_to_numpy()
ds_ndworld.convert_to_numpy()

Plot

ds_ncworld.plot_numpy_data()

ds_ndworld.plot_numpy_data()

Process data by subsampling, reducing data window and normalize data. The gaussian process model is a so called non parametric model and will be mainly based on the data points. As such, to reduce the computation and the complexity of the model, we subsample and reduce the number of datapoints.

ds_ncworld.process_numpy_data(nth_subsample = 4, window_red = 0.8)
ds_ndworld.process_numpy_data(nth_subsample = 4, window_red = 0.8)

Plot processed data

ds_ncworld.plot_reduced_data()

ds_ndworld.plot_reduced_data()

Define gaussian process classes using Gpytorch and different kernels.

import gpytorch as gpth
class GPLinearRBF(gpth.models.ExactGP):
  def __init__(self, train_x, train_y, likelihood):
    super(GPLinearRBF, self).__init__(train_x, train_y, likelihood)
    self.mean_module = gpth.means.ConstantMean()
    self.covar_module = gpth.kernels.ScaleKernel(gpth.kernels.LinearKernel() + gpth.kernels.RBFKernel())

  def forward(self, x):
    x_mean = self.mean_module(x)
    x_covar = self.covar_module(x)
    return gpth.distributions.MultivariateNormal(x_mean, x_covar)    

class GPLinearMatern(gpth.models.ExactGP):
  def __init__(self, train_x, train_y, likelihood):
    super(GPLinearMatern, self).__init__(train_x, train_y, likelihood)
    self.mean_module = gpth.means.ConstantMean()
    self.covar_module = gpth.kernels.ScaleKernel(gpth.kernels.LinearKernel() + gpth.kernels.MaternKernel())

  def forward(self, x):
    x_mean = self.mean_module(x)
    x_covar = self.covar_module(x)
    return gpth.distributions.MultivariateNormal(x_mean, x_covar)

Define a training class for the Gaussian Process models

import matplotlib.pyplot as plt
import math
from sklearn.metrics import mean_squared_error
from sklearn.metrics import mean_absolute_error

class GPTrainer():
  def __init__(self, gp_model, x_train, x_train_min, x_train_mean, x_train_std, x_test, y_train, y_test, y_train_mean, y_train_std, device='cpu', train_iter = 300, lr=0.1, verbose = True):
    """
      class to manage training and prediction of data

      param: 'gp_model', name of gaussian process model including kernel to use
      param: 'x_train', pytorch tensor (sequence, dim), normalized input training data, starting at time zero
      param: 'x_train_min', pytorch tensor, start time of input training data
      param: 'x_train_mean', pytorch tensor, mean used when normalizing input training data
      param: 'x_train_std', pytorch tensor, std deviation used when normalizing input training data
      param: 'x_test', pytorch tensor, normalized input test data, starting at time zero
      param: 'y_train', pytorch tensor, normalized output training data      
      param: 'y_train_mean', pytorch tensor, mean used when normalizing output training data
      param: 'y_train_std', pytorch tensor, std deviation used when normalizing output training data
      param: 'y_test', pytorch tensor, normalized output test data     
      param: 'device', cpu or cuda. currently only tested for cpu.
      param: 'train_iter', number of training iterations to fit kernel parameters to data
      param: 'lr', learning rate
      param: 'verbose', print information such as loss during training
    """

    # data
    self.x_train = x_train.to(device)
    self.x_train_min = x_train_min
    self.x_train_mean = x_train_mean
    self.x_train_std = x_train_std    
    self.x_test = x_test.to(device)
    self.x_cat = th.cat((x_train,x_test),dim=0).to(device)
    self.y_train = y_train.to(device)
    self.y_train_mean = y_train_mean
    self.y_train_std = y_train_std
    self.y_test = y_test.to(device)
    self.preds = None

    # define GP likelihood
    self.likelihood = gpth.likelihoods.GaussianLikelihood()    

    # GP model selection and init
    assert gp_model == 'GPLinearRBF' or 'GPLinearMatern', "Error: GP model selected is not defined"
    if gp_model == 'GPLinearRBF':
      self.model = GPLinearRBF(self.x_train, self.y_train, self.likelihood).to(device)
    if gp_model == 'GPLinearMatern':
      self.model = GPLinearMatern(self.x_train, self.y_train, self.likelihood).to(device)

    # training param
    self.train_iter = train_iter
    self.lr = lr
    self.device = device
    self.optimizer = th.optim.Adam(self.model.parameters(), lr=self.lr)
    self.loss_fn = gpth.mlls.ExactMarginalLogLikelihood(self.likelihood, self.model)   
    self.verbose = verbose

    # plots
    self.fig = None
    self.ax = None

  def train(self):
    """
      training of gaussian process model to fit kernel parameters to data
    """
    self.model.train()
    self.likelihood.train()

    for iter_idx in range(1,self.train_iter+1):
      self.optimizer.zero_grad()
      out = self.model(self.x_train)
      loss = -self.loss_fn(out, self.y_train).mean()
      loss.backward()
      self.optimizer.step()
      if iter_idx % 10 == 0 and self.verbose is True:
        print(f"Iter: {iter_idx}, train_loss: {loss.item()}")

  def prediction(self):
    """
      predict data
    """
    self.model.eval()
    self.likelihood.eval()
    with th.no_grad(): #, gpth.settings.fast_pred_var():  
      self.preds = self.likelihood(self.model(self.x_cat))

  def denormalize_y(self, data):
    """
      denormalize the output data
    """
    return data*self.y_train_std + self.y_train_mean

  def denormalize_x(self, data):
    """
      denormalize the input data
    """
    return data*self.x_train_std + self.x_train_mean  

  def plot(self):
    """
      plot the data
    """
    with th.no_grad():

      # extract time index dimension
      xdim = None
      try:
        _, xdim = self.x_train.shape
      except:
        pass
      if xdim == None or xdim == 1:
        x_train = self.denormalize_x(self.x_train)
        x_test = self.denormalize_x(self.x_test)
        x_cat = self.denormalize_x(self.x_cat)
      elif xdim > 1:
        x_train = self.denormalize_x(self.x_train)[:,0]
        x_test = self.denormalize_x(self.x_test)[:,0]
        x_cat = self.denormalize_x(self.x_cat)[:,0]

      # plot
      self.fig, self.ax = plt.subplots(1,1, figsize=(12,6))
      lower = self.denormalize_y(self.preds.mean - self.preds.variance.sqrt() * 1.96)
      upper = self.denormalize_y(self.preds.mean + self.preds.variance.sqrt() * 1.96)
      self.ax.plot(x_train.numpy()+self.x_train_min.numpy(), self.denormalize_y(self.y_train).numpy(), 'k*')
      self.ax.plot(x_test.numpy()+self.x_train_min.numpy(), self.denormalize_y(self.y_test).numpy(), 'r*')
      self.ax.plot(x_cat.numpy()+self.x_train_min.numpy(), self.denormalize_y(self.preds.mean).numpy(), 'b')
      self.ax.fill_between(x_cat.numpy()+self.x_train_min.numpy(), lower.numpy(), upper.numpy(), alpha=0.3)
      self.ax.legend(['train data', 'test data', 'predicted mean', 'predicted confidence 95%'])
      self.ax.set_xlabel('time [days]')
      self.ax.set_ylabel('prediction')
      self.ax.set_title('prediction')
      self.ax.grid()     

  def print_data_dim(self):
    """
      print shapes for debug purpose
    """
    print("data shapes:")
    print(f'x_train: {self.x_train.shape}')
    print(f'x_test: {self.x_test.shape}')
    print(f'x_cat: {self.x_cat.shape}')
    print(f'y_train: {self.y_train.shape}')
    print(f'y_test: {self.y_test.shape}')  
    try:
      print(f'preds mean: {self.preds.mean.shape}')
    except:
      pass

  def evaluate(self):
    """
      evaluation of predictions
    """
    with th.no_grad():
      # data to evaluate
      test_data = self.denormalize_y(self.y_test)
      predictions = self.denormalize_y(self.preds.mean[-len(self.y_test):])

      # evaluate
      error_mse = mean_squared_error(test_data, predictions)
      error_rmse = math.sqrt(error_mse)
      error_abs = mean_absolute_error(test_data, predictions)
      avg_gt = test_data.sum() / len(test_data)
      mse_percentage = error_rmse / avg_gt * 100
      abs_percentage = error_abs / avg_gt * 100

      # print
      print('Average of groundtruth: %.3f' % avg_gt)
      print('Test MSE: %.3f' % error_mse)
      print('Test RMSE: %.3f' % error_rmse)
      print('RMSE percentage error: %.3f' % mse_percentage, '%')
      print('Test ABS: %.3f' % error_abs)
      print('ABS percentage error: %.3f' % abs_percentage, '%')      

Init the training class for the Gaussian Process models

pred_ncworld = GPTrainer(gp_model='GPLinearRBF', x_train=ds_ncworld.x_train, x_train_min=ds_ncworld.x_train_min, x_train_mean=ds_ncworld.x_train_mean, x_train_std=ds_ncworld.x_train_std, x_test=ds_ncworld.x_test, y_train=ds_ncworld.y_train, y_test=ds_ncworld.y_test, y_train_mean=ds_ncworld.y_train_mean, y_train_std=ds_ncworld.y_train_std)

pred_ndworld = GPTrainer(gp_model='GPLinearRBF', x_train=ds_ndworld.x_train, x_train_min=ds_ndworld.x_train_min, x_train_mean=ds_ndworld.x_train_mean, x_train_std=ds_ndworld.x_train_std, x_test=ds_ndworld.x_test, y_train=ds_ndworld.y_train, y_test=ds_ndworld.y_test, y_train_mean=ds_ndworld.y_train_mean, y_train_std=ds_ndworld.y_train_std)

Training

print('\ntraining new cases prediction model')
pred_ncworld.train()
print('\ntraining new deaths prediction model')
pred_ndworld.train()

Prediction and plot

pred_ncworld.prediction()
pred_ncworld.plot()
pred_ncworld.ax.set_ylabel('new cases smoothed')
pred_ncworld.ax.set_title('new cases smoothed')

pred_ndworld.prediction()
pred_ndworld.plot()
pred_ndworld.ax.set_ylabel('new deaths smoothed')
pred_ndworld.ax.set_title('new deaths smoothed')

To perform onestep ahead mean prediction, we define some additional functions

def onestep_prediction(dataset):
  onestep = th.cat((dataset.y_train, dataset.y_test), dim=0) # output vector
  for idx in range(len(dataset.y_test)):

    # define training and test data. Training data is iteratively, step by step, expanded by the use of test data
    x_train = th.cat((dataset.x_train, dataset.x_test[:idx]), dim=0)
    x_test = dataset.x_test[idx:]
    y_train = th.cat((dataset.y_train, dataset.y_test[:idx]), dim=0)
    y_test = dataset.y_test[idx:]

    # create a gaussian process model, train and make predictions
    pred_model = GPTrainer(gp_model='GPLinearRBF', x_train=x_train, x_train_min=dataset.x_train_min, x_train_mean=dataset.x_train_mean, x_train_std=dataset.x_train_std, x_test=x_test, y_train=y_train, y_test=y_test, y_train_mean=dataset.y_train_mean, y_train_std=dataset.y_train_std, verbose=False)
    pred_model.train()
    pred_model.prediction()

    # store one step predictions
    onestep[len(dataset.y_train) + idx] = pred_model.preds.mean[len(dataset.x_train)+idx]

  # plot results
  fig, ax = plt.subplots(1,1, figsize=(12,6))
  ax.plot(pred_model.x_train_min + pred_model.denormalize_x(dataset.x_test), pred_model.denormalize_y(dataset.y_test),'*r', pred_model.x_train_min + pred_model.denormalize_x(dataset.x_test), pred_model.denormalize_y(onestep[len(dataset.y_train):]),'k*')
  ax.legend(['test data', 'prediction mean'])
  ax.set_xlabel('time [days]')
  ax.set_ylabel('prediction mean')
  ax.set_title('one step ahead prediction')
  ax.grid()   

  # return onestep prediction
  return onestep

We iteratively predict the next one step ahead

onestep_pred_ncworld = onestep_prediction(ds_ncworld)

onestep_pred_ndworld = onestep_prediction(ds_ndworld)

3.3 Sweden multistep prediction

Use class to convert dataframes to numpy arrays for further processing. Note, the conversion may take a while.

ds_ncswe = GPDataSet(df_ncdenswe_train, df_ncdenswe_test, datacol = 'new_cases_smoothed', filterloc = 'Sweden', add_input=None)
ds_ndswe = GPDataSet(df_nddenswe_train, df_nddenswe_test, datacol = 'new_deaths_smoothed', filterloc = 'Sweden', add_input=None)
ds_ncswe.convert_to_numpy()
ds_ndswe.convert_to_numpy()

Plot data.

ds_ncswe.plot_numpy_data()

ds_ndswe.plot_numpy_data()

Process data by subsampling, reducing data window and normalize data. The gaussian process model is a so called non parametric model and will be mainly based on the data points. As such, to reduce the computation and the complexity of the model, we subsample and reduce the number of datapoints.

ds_ncswe.process_numpy_data(nth_subsample = 4, window_red = 0.8)
ds_ndswe.process_numpy_data(nth_subsample = 4, window_red = 0.8)

Plot processed data

ds_ncswe.plot_reduced_data()

ds_ndswe.plot_reduced_data()

Init the training class for the Gaussian Process models

pred_ncswe = GPTrainer(gp_model='GPLinearRBF', x_train=ds_ncswe.x_train, x_train_min=ds_ncswe.x_train_min, x_train_mean=ds_ncswe.x_train_mean, x_train_std=ds_ncswe.x_train_std, x_test=ds_ncswe.x_test, y_train=ds_ncswe.y_train, y_test=ds_ncswe.y_test, y_train_mean=ds_ncswe.y_train_mean, y_train_std=ds_ncswe.y_train_std)

pred_ndswe = GPTrainer(gp_model='GPLinearRBF', x_train=ds_ndswe.x_train, x_train_min=ds_ndswe.x_train_min, x_train_mean=ds_ncswe.x_train_mean, x_train_std=ds_ncswe.x_train_std, x_test=ds_ndswe.x_test, y_train=ds_ndswe.y_train, y_test=ds_ndswe.y_test, y_train_mean=ds_ndswe.y_train_mean, y_train_std=ds_ndswe.y_train_std)

Training

print('\ntraining new cases prediction model')
pred_ncswe.train()
print('\ntraining new deaths prediction model')
pred_ndswe.train()

Prediction and plot

pred_ncswe.prediction()
pred_ncswe.plot()
pred_ncswe.ax.set_ylabel('new cases smoothed')
pred_ncswe.ax.set_title('new cases smoothed')

pred_ndswe.prediction()
pred_ndswe.plot()
pred_ndswe.ax.set_ylabel('new deaths smoothed')
pred_ndswe.ax.set_title('new deaths smoothed')

onestep_pred_ncswe = onestep_prediction(ds_ncswe)

onestep_pred_ndswe = onestep_prediction(ds_ndswe)

3.5 Sweden multistep prediction with additional data input from neighbouring country

Assuming we knew the results from a neighbouring country and if data is correlated, we could presumably improve the prediction

Plot resulting data used for prediction. Both plots appears to follow a form of trend.

ds_ncswex = GPDataSet(df_ncdenswe_train, df_ncdenswe_test, datacol = 'new_cases_smoothed', filterloc = 'Sweden', add_input='Denmark')
ds_ndswex = GPDataSet(df_nddenswe_train, df_nddenswe_test, datacol = 'new_deaths_smoothed', filterloc = 'Sweden', add_input='Denmark')
ds_ncswex.convert_to_numpy()
ds_ndswex.convert_to_numpy()

Plot data.

ds_ncswex.plot_numpy_data()

ds_ndswex.plot_numpy_data()

Process data by subsampling, reducing data window and normalize data. The gaussian process model is a so called non parametric model and will be mainly based on the data points. As such, to reduce the computation and the complexity of the model, we subsample and reduce the number of datapoints.

ds_ncswex.process_numpy_data(nth_subsample = 4, window_red = 0.8)
ds_ndswex.process_numpy_data(nth_subsample = 4, window_red = 0.8)

Plot processed data

ds_ncswex.plot_reduced_data()

ds_ndswex.plot_reduced_data()

Init the training class for the Gaussian Process models

pred_ncswex = GPTrainer(gp_model='GPLinearRBF', x_train=ds_ncswex.x_train, x_train_min=ds_ncswex.x_train_min, x_train_mean=ds_ncswex.x_train_mean, x_train_std=ds_ncswex.x_train_std, x_test=ds_ncswex.x_test, y_train=ds_ncswex.y_train, y_test=ds_ncswex.y_test, y_train_mean=ds_ncswex.y_train_mean, y_train_std=ds_ncswex.y_train_std)

pred_ndswex = GPTrainer(gp_model='GPLinearRBF', x_train=ds_ndswex.x_train, x_train_min=ds_ndswex.x_train_min, x_train_mean=ds_ndswex.x_train_mean, x_train_std=ds_ndswex.x_train_std, x_test=ds_ndswex.x_test, y_train=ds_ndswex.y_train, y_test=ds_ndswex.y_test, y_train_mean=ds_ndswex.y_train_mean, y_train_std=ds_ndswex.y_train_std)

Training

print('\ntraining new cases prediction model')
pred_ncswex.train()
print('\ntraining new deaths prediction model')
pred_ndswex.train()
pred_ncswex.prediction()
pred_ncswex.plot()
pred_ncswex.ax.set_ylabel('new cases smoothed')
pred_ncswex.ax.set_title('new cases smoothed')

pred_ndswex.prediction()
pred_ndswex.plot()
pred_ndswex.ax.set_ylabel('new deaths smoothed')
pred_ndswex.ax.set_title('new deaths smoothed')

  1. Evaluation

Evaluation of new cases smoothed

pred_ncworld.evaluate()
Average of groundtruth: 554788.000
Test MSE: 1850106112.000
Test RMSE: 43012.860
RMSE percentage error: 7.753 %
Test ABS: 33457.289
ABS percentage error: 6.031 %

Evaluation of new deaths smoothed

pred_ndworld.evaluate()
Average of groundtruth: 8842.582
Test MSE: 8629836.000
Test RMSE: 2937.658
RMSE percentage error: 33.222 %
Test ABS: 2727.578
ABS percentage error: 30.846 %

To evaluate the onestep ahead prediction, we define an additional function

def evaluate(test_data, prediction):
  with th.no_grad():    
    # evaluate
    error_mse = mean_squared_error(test_data, prediction)
    error_rmse = math.sqrt(error_mse)
    error_abs = mean_absolute_error(test_data, prediction)
    avg_gt = test_data.sum() / len(test_data)
    mse_percentage = error_rmse / avg_gt * 100
    abs_percentage = error_abs / avg_gt * 100

    # print
    print('Average of groundtruth: %.3f' % avg_gt)
    print('Test MSE: %.3f' % error_mse)
    print('Test RMSE: %.3f' % error_rmse)
    print('RMSE percentage error: %.3f' % mse_percentage, '%')
    print('Test ABS: %.3f' % error_abs)
    print('ABS percentage error: %.3f' % abs_percentage, '%')

Evaluation of new cases smoothed

# data to evaluate
test = pred_ncworld.denormalize_y(ds_ncworld.y_test)
preds = pred_ncworld.denormalize_y(onestep_pred_ncworld[-len(ds_ncworld.y_test):])
evaluate(test, preds)
Average of groundtruth: 554788.000
Test MSE: 38076252.000
Test RMSE: 6170.596
RMSE percentage error: 1.112 %
Test ABS: 4394.894
ABS percentage error: 0.792 %

Evaluation of new deaths smoothed

# data to evaluate
test = pred_ndworld.denormalize_y(ds_ndworld.y_test)
preds = pred_ndworld.denormalize_y(onestep_pred_ndworld[-len(ds_ndworld.y_test):])
evaluate(test, preds)
Average of groundtruth: 8842.582
Test MSE: 29195.436
Test RMSE: 170.867
RMSE percentage error: 1.932 %
Test ABS: 137.978
ABS percentage error: 1.560 %

Evaluation of new cases smoothed

pred_ncswe.evaluate()
Average of groundtruth: 4238.664
Test MSE: 4737463.500
Test RMSE: 2176.572
RMSE percentage error: 51.350 %
Test ABS: 2068.833
ABS percentage error: 48.809 %

Evaluation of new deaths smoothed

pred_ndswe.evaluate()
Average of groundtruth: 26.254
Test MSE: 755.362
Test RMSE: 27.484
RMSE percentage error: 104.686 %
Test ABS: 22.457
ABS percentage error: 85.540 %

Evaluation of new cases smoothed

# data to evaluate
test = pred_ncswe.denormalize_y(ds_ncswe.y_test)
preds = pred_ncswe.denormalize_y(onestep_pred_ncswe[-len(ds_ncswe.y_test):])
evaluate(test, preds)
Average of groundtruth: 4238.664
Test MSE: 77977.289
Test RMSE: 279.244
RMSE percentage error: 6.588 %
Test ABS: 235.829
ABS percentage error: 5.564 %

Evaluation of new deaths smoothed

# data to evaluate
test = pred_ndswe.denormalize_y(ds_ndswe.y_test)
preds = pred_ndswe.denormalize_y(onestep_pred_ndswe[-len(ds_ndswe.y_test):])
evaluate(test, preds)
Average of groundtruth: 26.254
Test MSE: 33.230
Test RMSE: 5.765
RMSE percentage error: 21.957 %
Test ABS: 3.928
ABS percentage error: 14.963 %

Evaluation of new cases smoothed

pred_ncswex.evaluate()
Average of groundtruth: 4238.664
Test MSE: 2658296.750
Test RMSE: 1630.428
RMSE percentage error: 38.466 %
Test ABS: 1537.534
ABS percentage error: 36.274 %

Evaluation of new deaths smoothed

pred_ndswex.evaluate()
Average of groundtruth: 26.254
Test MSE: 756.587
Test RMSE: 27.506
RMSE percentage error: 104.771 %
Test ABS: 22.476
ABS percentage error: 85.612 %
  1. Conclusions and reflections

Predictions using gaussian processes were made for both new cases smoothed and new deaths smoothed. This included an aggregation of many countries within the world as well as for Sweden. Making single step ahead predictions resulted naturally in smaller errors compared to the multistep predictions. The multistep prediction for Sweden could be improved for new cases smoothed using correlated data from a neighbouring country.

We believe the Gaussian process model is a valuable tool for making predictions. With this work, we would like to highlight that the data points and kernel chosen for the Gaussian process heavily biases the model and strongly influences the predictions. In this project, we selected a combination of a linear kernel and a radial basis function. The reason being that there is a trend in the data and that nearby data points should be more similar than data points further away. By inspecting the data carefully, a more optimal kernel could likely be selected. Also, the confidence intervall provided with the gaussian process model is based on that the kernel is correctly representing the underlying distribution of data.

In terms of scalability, the predictions are somewhat scalable as a user can define a window of data for making the predictions. Furthermore, GPU support could be included and approximations to the gaussian process model could be made.

Compared to the ARIMA model, the gaussian process model performed in most cases slightly worse. However, this may be due to the selection of data points and kernel considering that the gaussian process model is heavily biased by these choices. One reflection is that if one approximately knows the distribution of the underlying data, a gaussian process model with a proper selected kernel may be a good choice.

ScaDaMaLe Course site and book

Genomics Analysis with Glow and Spark

Project Members - Karin Stacke - Milda Pocoviciute

Link to video: https://youtu.be/6VMeHixsJ3g

The aim of this notebook is to analyze genomic data in the form of SNPs, and see how different variations of SNPs correlated to ethnicity. This work is inspired by the paper from Huang et al., Genetic differences among ethnic groups (2015), and the notebook https://glow.readthedocs.io/en/latest/_static/notebooks/tertiary/gwas.html.

Problem background

Each person as a unique setup of DNA. The DNA consitst of necleotides, structured as a double helix, where each neucliotide binds to one other. The DNA is split between 23 pairs of chromosomes. There are four different neucliotides, commonly denoted as A, T, C, and G.

Single nucleotide polymorphisms (SNPs) are the most common genetic variation between individuals. Each SNP represents a variation of a specific neucleotide. For example, a SNP may replace the nucleotide cytosine (C) with the nucleotide thymine (T) in a certain stretch of DNA. The recent sharp decrease in the cost of sequencing a human genome, made it possible to collect and make publically available such datasets for research.

Data

Genomic data is collected from the 1000 Genomes project, with corresponding sample annotations for all individuals in the dataset. For simiplicty, we are only analyzing SNPs assosiated to chromosome 1, however this study can easily be extended to include SNPs from all chromosomes.

The data consists of approximatly 6.5 million SNPs from 2504 subjects.

Method

After reading the data, we filter low quality SNPs. After this operation, we end up with approx. 400'000 SNPs.

By doing a correlation analysis using PCA, we see that different ethnicities cluster together. There is therfore a good reason to suppose that SNPs can be used to predict ethnicity. However, since not all SNPs are correlated to ethnicity, we want to only use the most relevant ones for linear regression analysis.

For each SNPs, we calculate the correlation between the values and ethnicity, and take the SNPs with a higher correlation than a threshold value of 0.6 (or maximum 2000 SNPs).

Using the selected SNPs as features, we do a linear regression analysis. We make some plots.

import matplotlib.pyplot as plt
import numpy as np

from pyspark.sql.functions import array_min, col, monotonically_increasing_id, when, log10
from pyspark.sql.types import StringType
from pyspark.ml.linalg import Vector, Vectors, SparseVector, DenseMatrix
from pyspark.ml.stat import Summarizer
from pyspark.mllib.linalg.distributed import RowMatrix
from pyspark.mllib.util import MLUtils
from pyspark.ml.feature import IndexToString, StringIndexer
from pyspark.ml.feature import OneHotEncoder
from pyspark.sql.functions import col,lit

from dataclasses import dataclass

import mlflow
import glow
glow.register(spark)
# Helper functions

def plot_layout(plot_title, plot_style, xlabel):
  plt.style.use(plot_style) #e.g. ggplot, seaborn-colorblind, print(plt.style.available)
  plt.title(plot_title)
  plt.xlabel(r'${0}$'.format(xlabel))
  plt.gca().spines['right'].set_visible(False)
  plt.gca().spines['top'].set_visible(False)
  plt.gca().yaxis.set_ticks_position('left')
  plt.gca().xaxis.set_ticks_position('bottom')
  plt.tight_layout()

def plot_histogram(df, col, xlabel, xmin, xmax, nbins, plot_title, plot_style, color, vline, out_path):
  plt.close()
  plt.figure()
  bins = np.linspace(xmin, xmax, nbins)
  df = df.toPandas()
  plt.hist(df[col], bins, alpha=1, color=color)
  if vline:
    plt.axvline(x=vline, linestyle='dashed', linewidth=2.0, color='black')
  plot_layout(plot_title, plot_style, xlabel)
  plt.savefig(out_path)
  plt.show()

def calculate_pval_bonferroni_cutoff(df, cutoff=0.05):
  bonferroni_p =  cutoff / df.count()
  return bonferroni_p

def get_sample_info(vcf_df, sample_metadata_df):
  """
  get sample IDs from VCF dataframe, index them, then join to sample metadata dataframe
  """
  sample_id_list = vcf_df.limit(1).select("genotypes.sampleId").collect()[0].__getitem__("sampleId")
  sample_id_indexed = spark.createDataFrame(sample_id_list, StringType()). \
                            coalesce(1). \
                            withColumnRenamed("value", "Sample"). \
                            withColumn("index", monotonically_increasing_id())
  sample_id_annotated = sample_id_indexed.join(sample_metadata_df, "Sample")
  return sample_id_annotated
# Paths to store/find data.
# Since a lot of the processing takes a long time, we store intermediate results.
vcf_path = "dbfs:///datasets/sds/genomics/ALL.chr1.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz"
delta_silver_path = "/mnt/gwas_test/snps.delta"

gwas_results_path = "/mnt/gwas_test/gwas_results.delta"
phenotype_path = "/databricks-datasets/genomics/1000G/phenotypes.normalized"
sample_info_path = "/databricks-datasets/genomics/1000G/samples/populations_1000_genomes_samples.csv"

principal_components_path = "/dbfs/datasets/sds/genomics/pcs.delta"
hwe_path = "dbfs:///datasets/sds/genomics/hwe.delta"
vectorized_path = "dbfs:///datasets/sds/genomics/vectorized.delta"
delta_gold_path = "dbfs:///datasets/sds/genomics/snps.qced.delta.delta"

The data used was dowloaded from ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/release/20130502/ALL.chr1.phase3shapeit2mvncallintegratedv5a.20130502.genotypes.vcf.gz

wget ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/release/20130502/ALL.chr1.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz

Read data

The data is read using the Glow, an open-source library for working with genomics data in a scallable way. It is inlcuded when enabling "Databricks Runtime for Genomics", allowing easy read of genomic-specific file formats, and other helper methods.

Load and view the vcf files. The info fields are combined to one column.

vcf_view_unsplit = spark.read.format("vcf"). \
   option("flattenInfoFields", "false"). \
   load(vcf_path)

display(vcf_view_unsplit.withColumn("genotypes", col("genotypes")[1]))

In the dataframe above, we see that we have columns named "referenceAllele" and "alternateAlleles". The data so called variations, i.e., genetic sequences which are different between two individuals. The difference may appear differently, and each difference is called an allele. In the data, we have reference genomes, and the alternate alleles are all the variations at a specific position which is found amoung the analyzed subjects.

We do not want multiple alternative allelels in one row, so we split them using the split_miltiallelics function from Glow.

vcf_view = glow.transform("split_multiallelics", vcf_view_unsplit)
display(vcf_view.withColumn("genotypes", col("genotypes")[1]))

We now save our modified dataframe in the Delta format (which compared to VCF is more user friendly). At the same time, we calulcate som neccessary statistics, which we will use later, using the Glow functions call_summary_stats and hardy_weinberg.

# NOTE - this takes approx 2 hours

vcf_view.selectExpr("*", "expand_struct(call_summary_stats(genotypes))", "expand_struct(hardy_weinberg(genotypes))"). \
   write. \
   mode("overwrite"). \
   format("delta"). \
   save(delta_silver_path)

The statistics we calculated, as well as the Hardy-Weinberg equilibrium p-values (which basically denotes the probability of a given allele is probable to be true or may be a reading mistake), are used to filter out low quality SNPs.

We read the saved dataframe, and filter the dataframe.

# Hyper paramters
allele_freq_cutoff = 0.05
num_pcs = 5 #number of principal components
hwe = spark.read.format("delta"). \
                 load(delta_silver_path). \
                 where((col("alleleFrequencies").getItem(0) >= allele_freq_cutoff) &
                       (col("alleleFrequencies").getItem(0) <= (1.0 - allele_freq_cutoff))). \
                 withColumn("log10pValueHwe", when(col("pValueHwe") == 0, 26).otherwise(-log10(col("pValueHwe"))))

hwe.write. \
   mode("overwrite"). \
   format("delta").save(hwe_path)

hwe = spark.read.format('delta').load(hwe_path)
hwe_cutoff = calculate_pval_bonferroni_cutoff(hwe)

Filter and save new dataframe, only alleles with in the frequency band, and where the Hardy-Weiburg value is higher than cutoff.

spark.read.format("delta"). \
   load(hwe_path). \
   where((col("alleleFrequencies").getItem(0) >= allele_freq_cutoff) &
         (col("alleleFrequencies").getItem(0) <= (1.0 - allele_freq_cutoff)) &
         (col("pValueHwe") >= hwe_cutoff)). \
   write. \
   mode("overwrite"). \
   format("delta"). \
   save(delta_gold_path)
# We saved the results to disc and here we jus tload them as the above computation takes a lot of time
hwe_filtered = spark.read.format('delta').load(delta_gold_path)

PCA

We perform a PCA analysis for data exploration purposes.

vectorized = spark.read.format("delta"). \
                        load(delta_gold_path). \
                        selectExpr("array_to_sparse_vector(genotype_states(genotypes)) as features"). \
                        cache()

vectorized.write. \
   mode("overwrite"). \
   format("delta").save("dbfs:///datasets/sds/genomics/vectorized.delta")

# We saved the results to disc and here we jus tload them as the above computation takes a lot of time
vectorized = spark.read.format('delta').load(vectorized_path)
display(vectorized)
# Note - takes approx 30 min

matrix = RowMatrix(MLUtils.convertVectorColumnsFromML(vectorized, "features").rdd.map(lambda x: x.features))
pcs = matrix.computeSVD(num_pcs)
@dataclass()
class Covariates:
    covariates: DenseMatrix

spark.createDataFrame([Covariates(pcs.V.asML())]). \
      write. \
      format("delta"). \
      save(principal_components_path)
pcs_df = spark.createDataFrame(pcs.V.toArray().tolist(), ["pc" + str(i) for i in range(num_pcs)])

display(pcs_df)

pcs_df.coalesce(1).write.format("com.databricks.spark.csv").option("header", "true").save("dbfs:///datasets/sds/genomics/pcs_df.csv")
# Read already caluclated pca
pcs_df = spark.read.format('csv').load("dbfs:///datasets/sds/genomics/pcs_df.csv")
display(pcs_df)

**Read sample metadata and add to PCA components **

We load the subject meta data (which includes information about ethnicity).

sample_metadata = spark.read.option("header", True).csv(sample_info_path)
sample_info = get_sample_info(vcf_view, sample_metadata)

sample_count = sample_info.count()

pcs_indexed = pcs_df.coalesce(1).withColumn("index", monotonically_increasing_id())
pcs_with_samples = pcs_indexed.join(sample_info, "index")

View 1st and 2nd principal component

display(pcs_with_samples)

We see that there there are some clustering based on ethnicity, showing that it could be possible to tell ethnicity from the SNP information of a subject.

Replication of the paper "Genetic differences among ethnic groups", Huang et al. https://bmcgenomics.biomedcentral.com/articles/10.1186/s12864-015-2328-0

Originally, we had approx. 6.5 milj genetic variations, from 2500 individuals. We first did a quality control by filtering only alleles which occur frequently enough, and those above the Hardy-Weinberg P value cutoff.

Since we still have over 400 000 variations, we need to filter further and only keep the SNPs that have significant correlation to ethnicity. We experiment with several different sizes of the final data set.

Here we read the dataset that contains the population information and encode it for regression

# Read sample information
sample_metadata = spark.read.option("header", True).csv(sample_info_path)
sample_info = get_sample_info(vcf_view, sample_metadata)

sample_count = sample_info.count()

mlflow.log_param("number of samples", sample_count)

From the plot below we can see that our data set is not balanced as we have more samples from african ethnicity than any other. We decided not to balance the data and see if this would have obvious negative impact on our results.

display(sample_info)

# One hot encoding of the labels
from pyspark.ml.feature import IndexToString, StringIndexer
from pyspark.ml.feature import OneHotEncoder

# indexer = StringIndexer(inputCol="Population", outputCol="Population_index")
indexer = StringIndexer(inputCol="super_population", outputCol="Population_index")
model = indexer.fit(sample_info)
indexed = model.transform(sample_info)

# indexed.select("Population", "Population_index").distinct().show(30)

encoder = OneHotEncoder(inputCols=["Population_index"],
                        outputCols=["population_onehot"])
model = encoder.fit(indexed)
encoded = model.transform(indexed)
encoded.show()

Filtering of SNPs based on chi-squared test

According to Tao Huang et al. (2015), 85 % of SNPs are the same in all human populations, hence we will apply chi-squared based feature selection to try to identify the approximately 15 % of SNPs that are population-specific. We decided to test our classifiers with several sizes of the feature vectors: * all 416,005 available SNPs from Chromosome 1 * most relevant 200,000 SNPs * most relevant 20,000 SNPs * most relevant 2,000 SNPs * most relevant 1,000 SNPs * most relevant 100 SNPs * most relevant 50 SNPs

This would give us a better understanding if the ChiSqSelector is appropriate method for selecting the features in genomics. We aklowedge that Tao Huang et al. (2015) used different metric based on chi-squared distribution, but ChiSqSelector is the closest already implemented method in spark that we could find.

In order to use ChiSqSelector from pyspark.ml.feature, we first need to format the data into a sparce feature vectors and numeric corresponding label.

# Load earlier-filtered data
delta_gold_path = "dbfs:///datasets/sds/genomics/snps.qced.delta.delta"
hwe_filtered = spark.read.format('delta').load(delta_gold_path)
vectorized_2 = hwe_filtered.select(glow.genotype_states('genotypes').alias('states')).collect()
vectorized_df = spark.createDataFrame(vectorized_2)
display(vectorized_df)

We use monotonicallyincreasingid, poseexplode and collect_list methods to achieve the required format of the data:

# Add a column that indicates to which SNP the states belong and then explode SNPs
from pyspark.sql.functions import monotonically_increasing_id
from pyspark.sql.functions import explode, posexplode
from pyspark.sql.functions import col, concat, desc, first, lit, row_number, collect_list

vec_df_dummy = vectorized_df.withColumn("SNP", monotonically_increasing_id())
#vec_exploded_states = vec_df_dummy.withColumn("expanded_states", explode("states"))
vec_exploded_states = vec_df_dummy.select("SNP",posexplode("states"))
vec_exploded_states = vec_exploded_states.withColumnRenamed("pos", "subjectID")
vec_exploded_states = vec_exploded_states.withColumnRenamed("col", "expandedState")
features_df = vec_exploded_states.groupBy("subjectID").agg(collect_list("expandedState").alias("Features"))
features_df = features_df.join(encoded, features_df.subjectID == encoded.index).select("Features","Population_index", "population_onehot")
features_df.show()

Finally, Glow utility function arraytosparse_vector is used to convert the dense feature vectors into sparse vectors

features_df = features_df.selectExpr("array_to_sparse_vector(Features) as features_sparse","Population_index", "population_onehot")
features_df.show()

Fitting ChiSqSelector

As the computation time of ChiSqSelector takes roughly 3 hours for each subset of features, we are saving them to disc.

feature_selection_200_000 = "dbfs:///datasets/sds/genomics/selected_feat_200_000.delta"
from pyspark.ml.feature import ChiSqSelector
# selector = ChiSqSelector(featuresCol='features_sparse', outputCol='ChiSq',labelCol='Population_index', numTopFeatures = 200000)
# selected_feat_200_000 = selector.fit(features_df).transform(features_df)
# selected_feat_200_000.write.format("delta").save(feature_selection_200_000)
selected_feat_200_000 = spark.read.format('delta').load(feature_selection_200_000)
feature_selection_20_000 = "dbfs:///datasets/sds/genomics/selected_feat_20_000.delta"
# selector = ChiSqSelector(featuresCol='features_sparse', outputCol='ChiSq',labelCol='Population_index', numTopFeatures = 20000)
# selected_feat_20_000 = selector.fit(features_df).transform(features_df)
# selected_feat_20_000.write.format("delta").save(feature_selection_20_000)
selected_feat_20_000 = spark.read.format('delta').load(feature_selection_20_000)
feature_selection_2000 = "dbfs:///datasets/sds/genomics/selected_feat_2000.delta"
# from pyspark.ml.feature import ChiSqSelector
# selector = ChiSqSelector(featuresCol='features_sparse', outputCol='ChiSq',labelCol='Population_index', numTopFeatures = 2000)
# selected_feat_2000 = selector.fit(features_df).transform(features_df)
# selected_feat_2000.write.format("delta").save(feature_selection_2000)

selected_feat_2000 = spark.read.format('delta').load(feature_selection_2000)
selected_feat_2000.show()
feature_selection_results_1000 = "dbfs:///datasets/sds/genomics/selected_feat_1000.delta"
# selector = ChiSqSelector(featuresCol='features_sparse', outputCol='ChiSq',labelCol='Population_index', numTopFeatures = 1000)
# selected_feat_1000 = selector.fit(features_df).transform(features_df)
# selected_feat_1000.write.format("delta").save(feature_selection_results_1000)
#result = selector.fit(features_df).transform(features_df)
selected_feat_1000 = spark.read.format('delta').load(feature_selection_results_1000)
feature_selection_results_100 = "dbfs:///datasets/sds/genomics/selected_feat_100.delta"
# selector = ChiSqSelector(featuresCol='features_sparse', outputCol='ChiSq',labelCol='Population_index', numTopFeatures = 100)
# selected_feat_100 = selector.fit(features_df).transform(features_df)
# selected_feat_100.write.format("delta").save(feature_selection_results_100)
#result = selector.fit(features_df).transform(features_df)
selected_feat_100 = spark.read.format('delta').load(feature_selection_results_100)
feature_selection_50 = "dbfs:///datasets/sds/genomics/selected_feat_50.delta"
# selector = ChiSqSelector(featuresCol='features_sparse', outputCol='ChiSq',labelCol='Population_index', numTopFeatures = 50)
# selected_feat_50 = selector.fit(features_df).transform(features_df)
# selected_feat_50.write.format("delta").save(feature_selection_50)
selected_feat_50 = spark.read.format('delta').load(feature_selection_50)

Train logistic regression and random forest models

The code below implements a loop over datasets with different number of SNPs, test-train split and fitting of logistic regression and random forest models. The performance is measured in accuracy.

from pyspark.ml.classification import LogisticRegression
from pyspark.ml.evaluation import MulticlassClassificationEvaluator
from pyspark.ml.classification import RandomForestClassifier

def fit_ML_model(trainSet,testSet, model_in):

  # Train model.  
  model = model_in.fit(trainSet)

  # Make predictions.
  predictions = model.transform(testSet)

  # Evaluate the classifier based on accuracy
  evaluator = MulticlassClassificationEvaluator(
      labelCol="Population_index", predictionCol="prediction", metricName="accuracy")
  accuracy = evaluator.evaluate(predictions)
  return accuracy


rf = RandomForestClassifier(labelCol="Population_index", featuresCol="final_features", numTrees=20)
lr = LogisticRegression(featuresCol="final_features", labelCol="Population_index", maxIter=100)

acc_rf = []
acc_lr = []

# Run the models on full features set (without ChiSqSelector)
features_ready = selected_feat_2000.selectExpr("features_sparse as final_features","Population_index")
trainSet, testSet = features_ready.randomSplit((0.8, 0.2), seed=123)
acc_rf.append(fit_ML_model(trainSet, testSet, rf))
acc_lr.append(fit_ML_model(trainSet, testSet, lr))

# Run the models on selected features by ChiSqSelector
for data_item in [selected_feat_200_000, selected_feat_20_000, selected_feat_2000, selected_feat_1000, selected_feat_100, selected_feat_50]:
    # Work around for the bug in ChiSqSelector - otherwise does not work with the random forest model
    #ChiSqSelector has a bug that it formats data in a way that RandomForest does not accept. We found this work around to work. Bug reported in https://stackoverflow.com/questions/46269275/spark-ml-issue-in-training-after-using-chisqselector-for-feature-selection
    features_ready = data_item.select(glow.vector_to_array('ChiSq').alias('features_dense'), "Population_index", "ChiSq")
    features_ready = features_ready.selectExpr("array_to_sparse_vector(features_dense) as final_features","Population_index")
    trainSet, testSet = features_ready.randomSplit((0.8, 0.2), seed=123)
    acc_rf.append(fit_ML_model(trainSet, testSet, rf))
    acc_lr.append(fit_ML_model(trainSet, testSet, lr))
import matplotlib.pyplot as plt

rf_plot = plt.scatter(x=['all_feat', '200,000', '20,000', '2,000', '1,000', '100', '50'], y=acc_rf, c='r')
lf_plot = plt.scatter(x=['all_feat', '200,000', '20,000', '2,000', '1,000', '100', '50'], y=acc_lr, c='b')
plt.xlabel("Number of features")
plt.ylabel("Accuracy")
plt.legend((rf_plot, lf_plot),
           ('Random forest', 'Logistic regression'),
           scatterpoints=1,
           bbox_to_anchor=(1.5, 1),
           ncol=1,
           fontsize=12)
plt.show()

The plot above shows the accuracy of random forest and logistic regression classifiers on predicting the ethnicity from prepared SNPs. Both classifiers preformed much better than random guessing, hence the ethnicity information is clearly encoded in SNPs. The logistic regression consistently outperformed random forest and reached accuracy over 90 %. We can also see that random forest was sensitive to the feature selection and it's performance droped once fewer that the all available SNPs (416,005 SNPs) were used. In contrast, logistic regression performed equally well with half of the available features (200,000 SNPs). This indicates that having well-tuned classifier and an appropriate feature selector allows us to reduce the required number of features dramatically without compromising the performance.

The work could be improved by testing other ways of selecting the relevant SNPs, tuning the hyperparameters in a grid-search manner, building confidence intervals based on bootstrapping or cross-validation and testing other types of classifiers.

ScaDaMaLe Course site and book

Distributed combinatorial bandits

Group Project Authors:

Link to video presentation: Video

Idea

We try to solve a routing problem, that is trying to tell a vechicle what the sportest path is to a destination. The problem is that the dispatcher knows the connections in the graph but not the length of each edge. The dispatcher learns how long it takes to traverse a path when a vehicle travels it. This makes the routing problem an online learning problem such that the dispatcher has to learn which paths to tell the vehicle to take in a way that finds the best path, both in terms of speed and gaining information about future good paths (more on this later). Additionally the edges are stochastic, such that one traversal is no enough to get perfect information.

This setting can be seen as a case of a combinatorial bandit where we have to select a set of edges that reach the destination from our start while balancing the need of getting a fast route with obtaining better estimates of edges such that future paths can be more efficient (this is known as exploration-explotation tradeoff).

Distributing this task could be an interesting idea, both since multiple dispatchers and vehicles could work in parallell (which we do not consider here) but also that large graphs can be sped up through distributed computations in the shortest path problems that arise.

Practicalities

To make our task more realistic we have used data from OpenStreetMap, a collection of real world map data to create a graph consisting of real world roads. We also generate some synthetic data to experiment with.

The graph network then goes into our contextual bandit algorithm which samples edge weights from a belief and then selects the shortest path from this sampled graph. This leads to an algorithm with very nice theoretical properties in terms of online learning. This method is well known in the online learning community, but as far as we know has not been done in a distributed fashion.

import org.apache.spark.sql._
import scala.sys.process._
import org.apache.spark.sql.functions.{col}

def toMap(tupesArray: Seq[Row]): Option[Map[String, String]] = {
    if (tupesArray == null) {
      None
    } else {
      val tuples = tupesArray.map(e => {
        (
          e.getAs[String]("key"),
          e.getAs[String]("value")
        )
      })
      Some(tuples.toMap)
    }
  }

def handleCommon()(df:DataFrame):DataFrame = {
  val toMapUDF = udf(toMap _)
  df.drop("uid", "user_sid", "changeset", "version", "timestamp")
    .withColumn("tags", toMapUDF(col("tags")))
}
import org.apache.spark.sql._
import scala.sys.process._
import org.apache.spark.sql.functions.col
toMap: (tupesArray: Seq[org.apache.spark.sql.Row])Option[Map[String,String]]
handleCommon: ()(df: org.apache.spark.sql.DataFrame)org.apache.spark.sql.DataFrame
sqlContext.setConf("spark.sql.parquet.binaryAsString","true")
val nodeDF = sqlContext.read.parquet("dbfs:/FileStore/group14/sweden-latest_osm_pbf_node.parquet").transform(handleCommon())

val wayDF = sqlContext.read.parquet("dbfs:/FileStore/group14/sweden_latest_osm_pbf_way.parquet").transform(handleCommon())
nodeDF: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [id: bigint, tags: map<string,string> ... 2 more fields]
wayDF: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [id: bigint, tags: map<string,string> ... 1 more field]
import org.apache.spark.sql._
import org.apache.spark.sql.functions.{explode,arrays_zip, concat,array, lit}

val wayDF_exploded = wayDF.withColumn("exploded", explode(arrays_zip(concat($"nodes.nodeId",array(lit(-1L))), concat(array(lit(-1L)),$"nodes.nodeId"))))
val wayDF_filtered = wayDF_exploded.filter($"exploded.0" > 0 && $"exploded.1" > 0)
import org.apache.spark.sql._
import org.apache.spark.sql.functions.{explode, arrays_zip, concat, array, lit}
wayDF_exploded: org.apache.spark.sql.DataFrame = [id: bigint, tags: map<string,string> ... 2 more fields]
wayDF_filtered: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [id: bigint, tags: map<string,string> ... 2 more fields]
import org.apache.spark.sql.functions._

val wayNodeDF = wayDF_exploded.select($"exploded.0".as("start"), $"exploded.1".as("end"),$"tags.highway", $"tags.maxspeed")
.filter($"highway" isin ("motorway","trunk","primary","secondary", "tertiary", "unclassified", "residential","motorway_link", "trunk_link",  "primary_link", "secondary_link", "tertiary_link"))

wayNodeDF.createOrReplaceTempView("wayHighway")
val wayNodeDF_nonull = wayNodeDF.withColumn("maxspeed", when($"maxspeed".isNull && col("highway") == "motorway", 110)
                     .when($"maxspeed".isNull && col("highway")=="primary", 50).when($"maxspeed".isNull && col("highway")=="secondary", 50).when($"maxspeed".isNull && col("highway")=="motorway_link", 50)
                     .when($"maxspeed".isNull && col("highway")=="residential", 15).when($"maxspeed".isNull, 50)
                     .otherwise($"maxspeed"))
wayNodeDF_nonull.createOrReplaceTempView("wayHighway")


import org.apache.spark.sql.functions._
wayNodeDF: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [start: bigint, end: bigint ... 2 more fields]
wayNodeDF_nonull: org.apache.spark.sql.DataFrame = [start: bigint, end: bigint ... 2 more fields]
import org.apache.spark.sql.functions._

val nodeLatLonDF = nodeDF
  .select($"id".as("nodeId"), $"latitude".as("startLat"), $"longitude".as("startLong"))

val endnodeLatLonDF = nodeDF
  .select($"id".as("nodeId2"), $"latitude".as("endLat"), $"longitude".as("endLong"))

val wayGeometryDF = wayNodeDF_nonull.join(nodeLatLonDF, $"start" === $"nodeId").join(endnodeLatLonDF, $"end" === $"nodeId2")

val wayGeometry_distDF = wayGeometryDF.withColumn("a", pow(sin(radians($"endLat" - $"startLat") / 2), 2) + cos(radians($"startLat")) * cos(radians($"endLat")) * pow(sin(radians($"endLong" - $"startLong") / 2), 2))
  .withColumn("distance", atan2(org.apache.spark.sql.functions.sqrt($"a"), org.apache.spark.sql.functions.sqrt(-$"a" + 1)) * 2 * 6371)
  .filter($"endLat"<55.4326186d && $"endLong">13.7d) //Small area south of sweden.
  .withColumn("time", $"distance"/$"maxspeed").select("time", "start", "end", "distance", "maxspeed")
wayGeometry_distDF.createOrReplaceTempView("wayGeometry_distDF")
import org.apache.spark.sql.functions._
nodeLatLonDF: org.apache.spark.sql.DataFrame = [nodeId: bigint, startLat: double ... 1 more field]
endnodeLatLonDF: org.apache.spark.sql.DataFrame = [nodeId2: bigint, endLat: double ... 1 more field]
wayGeometryDF: org.apache.spark.sql.DataFrame = [start: bigint, end: bigint ... 8 more fields]
wayGeometry_distDF: org.apache.spark.sql.DataFrame = [time: double, start: bigint ... 3 more fields]
import org.apache.spark.graphx._
import org.apache.spark.rdd.RDD
val eps = 0.000001
val edges: RDD[Edge[Double]]  =  wayGeometry_distDF
    .select("start", "end", "time").rdd.map(line => Edge(line.getAs("start"), line.getAs("end"), line.getAs("time")))


val graph = Graph.fromEdges(edges, "defaultname")
graph.cache()

println("Num edges:")
println(graph.edges.toDF.count())
println("Num vertices:")
println(graph.vertices.toDF.count())
Num edges:
4667
Num vertices:
4488
import org.apache.spark.graphx._
import org.apache.spark.rdd.RDD
eps: Double = 1.0E-6
edges: org.apache.spark.rdd.RDD[org.apache.spark.graphx.Edge[Double]] = MapPartitionsRDD[1075908] at map at command-2294440354339724:6
graph: org.apache.spark.graphx.Graph[String,Double] = org.apache.spark.graphx.impl.GraphImpl@7f4c143a

The shortest path algorithm

The implemented shorthest path alborithm uses the the distributed Pregel algorithm and is divided into two parts.

The first part is based on the code in http://lamastex.org/lmse/mep/src/GraphXShortestWeightedPaths.html. As the original code did not have have all functionality desiered functionality, the algorithm did find the shortest distance but didn't keep track of the path itself, the algorithm was extend with this functionality.

The first part takes a graph, where the edges are double values representing the cost of trevelling between its connected nodes, and an array of the ids of each goal node. As output, it provides a graph where each node containse a Map-object of the different landmarks/goal nodes. When a lookup is made in the map from a specific node, a tuple contaning the shortest distance, the id of the next node in the path and the id of the current node. The last element serves no pupose in the final results but is used as a form of stopping critera in the algorithm.

The second part transforms the output of the first part to a "path graph" where each edge is marked with either a 1 or a 0 depending on if it is used in a path between a starting node and a goal node. Altough this recursion can be performed on a single machine for small examples, this procedure is also implemented using the Pregel algorithm to handle situations of millions of edges.

The input of the second part is the graph created in the first part as well as the id of a single goal node and a start node. The goal node has to be in the set of goal nodes used in the first part. This part outputs a "path graph" where each edge is given the value 1 or 0 depending on if it is on the shortest path or not.

import scala.reflect.ClassTag
import org.apache.spark.graphx._

/**
 * Computes shortest weighted paths to the given set of goal nodes, returning a graph where each
 * vertex attribute is a map containing the shortest-path distance to each reachable landmark.
 * Currently supports only Graph of [VD, Double], where VD is an arbitrary vertex type.
 *
 * The object also include a function which transforms the resulting graph into a path_graph between a
 * specific starting node and goal node. Each edge in the path_grpah is either 1 or 0 depending if it is
 * the shortest path or not.
 *
 */
object ShortestPath extends Serializable {

  // When finding the shortest path each node stores a map from the itself to each goal node.
  // The map returns an array includeing the total distance to the goal node as well as the
  // next node pn the shortest path to the goal node. The last value in the array is only
  // populated with the nodes own id and is only used for computational convenience.
  type SPMap = Map[VertexId, Tuple3[Double, VertexId, VertexId]]

  // PN holds the information of the path nodes which are used for creating a path graph
  // PN = ('Distance left to goal node', 'Next path node id', 'Goal node', 'Is on path')
  type PN = Tuple4[Double, VertexId, VertexId, Boolean]

  private val INITIAL_DIST = 0.0
  private val DEFAULT_ID = -1L
  private val INFINITY = Int.MaxValue.toDouble

  private def makeMap(x: (VertexId, Tuple3[Double, VertexId, VertexId])*) = Map(x: _*)

  //private def incrementMap(spmap: SPMap, delta: Double, id: VertexId): SPMap = {
  //  spmap.map { case (v, d) => v -> (Tuple3(d._1 + delta, d._3, id)) }
  //}
  private def incrementMap(spmap: SPMap, delta: Double, srcId: VertexId, dstId: VertexId): SPMap = {
    spmap.map { case (v, d) => v -> (Tuple3(d._1 + delta, dstId, srcId)) }
  }

  private def addMaps(spmap1: SPMap, spmap2: SPMap): SPMap = {
    (spmap1.keySet ++ spmap2.keySet).map {
    k =>{
        if (spmap1.getOrElse(k, Tuple3(INFINITY, DEFAULT_ID, DEFAULT_ID))._1 < spmap2.getOrElse(k, Tuple3(INFINITY, DEFAULT_ID, DEFAULT_ID))._1)
                k -> (Tuple3(spmap1.getOrElse(k, Tuple3(INFINITY, DEFAULT_ID, DEFAULT_ID))._1,
                             spmap1.getOrElse(k, Tuple3(INFINITY, DEFAULT_ID, DEFAULT_ID))._2,
                             spmap1.getOrElse(k, Tuple3(INFINITY, DEFAULT_ID, DEFAULT_ID))._3))
        else
                k -> (Tuple3(spmap2.getOrElse(k, Tuple3(INFINITY, DEFAULT_ID, DEFAULT_ID))._1,
                             spmap2.getOrElse(k, Tuple3(INFINITY, DEFAULT_ID, DEFAULT_ID))._2,
                             spmap2.getOrElse(k, Tuple3(INFINITY, DEFAULT_ID, DEFAULT_ID))._3))
        }
    }.toMap
  }

  // at this point it does not really matter what vertex type is
  def run[VD](graph: Graph[VD, Double], landmarks: Seq[VertexId]): Graph[SPMap, Double] = {
    val spGraph = graph.mapVertices { (vid, attr) =>
      // initial value for itself is 0.0 as Double
      if (landmarks.contains(vid)) makeMap(vid -> Tuple3(INITIAL_DIST, DEFAULT_ID, DEFAULT_ID)) else makeMap()
    }

    val initMaps = makeMap()

    def vProg(id: VertexId, attr: SPMap, msg: SPMap): SPMap = {
      addMaps(attr, msg)
    }

    def sendMsg(edge: EdgeTriplet[SPMap, Double]): Iterator[(VertexId, SPMap)] = {
      val newAttr = incrementMap(edge.dstAttr, edge.attr, edge.srcId, edge.dstId)
      if (edge.srcAttr != addMaps(newAttr, edge.srcAttr)) Iterator((edge.srcId, newAttr))
      else Iterator.empty
    }

    Pregel(spGraph, initMaps)(vProg, sendMsg, addMaps)
  }

  def create_path_graph[VD](graph: Graph[SPMap, Double], goalId: VertexId, startId: VertexId): Graph[PN, Int] = {
    // For a given goal node we remove the lookup map and extend the state to a Tuple5 with the goal id and a boolean
    val path = graph.mapEdges(e => 0)
              .mapVertices((vertixId, attr) => {
                if (attr.contains(goalId)) {
                  val path_step = attr(goalId)
                  if (vertixId == path_step._3 && path_step._2 == -1L)
                    (path_step._1, goalId, goalId, false) // while we are at it, we clean up the state a bit
                  else  
                    (path_step._1, path_step._2, goalId, false)
                } else// If the vertice does not have a map to our goal we add a default value to it
                    (INFINITY, -1L, -1L, false)
              })

      def mergeMsg(msg1: VertexId, msg2: VertexId): VertexId = { // we should only get one msg
          msg2
      }

      def vprog(id: VertexId, attr: PN, msg: VertexId): PN = {
        // Check that the current node is the one adressed in the message
        if (id == msg)
          (attr._1, attr._2, attr._3, true)
        else // If the message is not addressed to the current node (happens for inital message), use the old value
          attr
      }
      def sendMsg(triplet: EdgeTriplet[PN, Int]): Iterator[(VertexId, VertexId)] = {
        // If dstId is the next node on the path and has not yet been activated
        if (triplet.srcAttr._2 == triplet.dstId && triplet.srcAttr._4 && !triplet.dstAttr._4)
          Iterator((triplet.dstId, triplet.dstId))// Send next msg
        else
          Iterator.empty// Do nothing
      }

      Pregel(path, startId)(vprog, sendMsg, mergeMsg).mapTriplets(triplet => {
        if(triplet.srcAttr._2 == triplet.dstId && triplet.srcAttr._4)
          1
        else
          0
      })
  }
}
import scala.reflect.ClassTag
import org.apache.spark.graphx._
defined object ShortestPath

To make the code somewhat more accessible, we wrap the execution of the two parts above in a new function called shortestPath. This new function takes the id of the start node and a single goal node as well as the input graph as input. The function then ouputs the path graph mentioned above.

import scala.util.Random

def shortestPath(srcId : Long, dstId : Long, graph : Graph[Long, Double], placeholder: Boolean) : Graph[Long, Double] = {
  if (placeholder) {
    return graph.mapEdges(e => Random.nextInt(2))
  } else {
    val distanceGraph = ShortestPath.run(graph, Seq(dstId))
    val pathGraph = ShortestPath.create_path_graph(distanceGraph, dstId, srcId)
    return pathGraph.mapVertices((vid, attr) => 0L).mapEdges(e => e.attr)
  }
}

def shortestPath(srcId : Long, dstId : Long, graph : Graph[Long, Double]) : Graph[Long, Double] = {
  return shortestPath(srcId, dstId, graph, false)
}
import scala.util.Random
shortestPath: (srcId: Long, dstId: Long, graph: org.apache.spark.graphx.Graph[Long,Double], placeholder: Boolean)org.apache.spark.graphx.Graph[Long,Double] <and> (srcId: Long, dstId: Long, graph: org.apache.spark.graphx.Graph[Long,Double])org.apache.spark.graphx.Graph[Long,Double]
shortestPath: (srcId: Long, dstId: Long, graph: org.apache.spark.graphx.Graph[Long,Double], placeholder: Boolean)org.apache.spark.graphx.Graph[Long,Double] <and> (srcId: Long, dstId: Long, graph: org.apache.spark.graphx.Graph[Long,Double])org.apache.spark.graphx.Graph[Long,Double]

Since we want to work with edge attributes rather than vertex attributes, we can't work directly with graph joins in GraphX, since they only join on vertices. This is a helper method to merge edge attributes of two graphs with identical structure, through an inner join on the respective edge RDDs and create a new graph with a tuple combining edge attributes from both graphs. This will only work if both graphs have identical partitioning strategies.

import scala.reflect.ClassTag

// # Merge edge attributes of two (identical in structure) graphs
def mergeEdgeAttributes[ED1 : ClassTag, ED2 : ClassTag](firstGraph : Graph[Long, ED1], secondGraph : Graph[Long, ED2]) : Graph[Long, (ED1, ED2)] = {
  return Graph(firstGraph.vertices, firstGraph.edges.innerJoin(secondGraph.edges) {(id1, id2, first, second) => (first, second)})
}
import scala.reflect.ClassTag
mergeEdgeAttributes: [ED1, ED2](firstGraph: org.apache.spark.graphx.Graph[Long,ED1], secondGraph: org.apache.spark.graphx.Graph[Long,ED2])(implicit evidence$1: scala.reflect.ClassTag[ED1], implicit evidence$2: scala.reflect.ClassTag[ED2])org.apache.spark.graphx.Graph[Long,(ED1, ED2)]

In order to perform distributed sampling from Gaussian distributions in Spark in a reproducible way (specifically for stochastic edge weights in graphs), we want to be able to pass a seed to the random number generator. For this to work consistently, we use the Spark SQL randn function on the edge RDDs and subsequently build a new graph from the sampled weights.

import scala.util.Random

def graphRandomGaussian(graph : Graph[Long, (Double, Double)], seed : Int, eps : Double, sparkSqlRandom : Boolean) : Graph[Long, Double] = {
  if (sparkSqlRandom) {
    return Graph(graph.vertices, graph.edges.toDF.select($"srcId", $"dstId", $"attr._1" + org.apache.spark.sql.functions.sqrt($"attr._2") * org.apache.spark.sql.functions.randn(seed)).rdd.map(r => Edge(r.getLong(0), r.getLong(1), r.getDouble(2)))).mapEdges(e => scala.math.max(eps, e.attr))
  } else {
    return graph.mapEdges(e => scala.math.max(eps, e.attr._1 + Random.nextGaussian() * scala.math.sqrt(e.attr._2)))
  }
}

def graphRandomGaussian(graph : Graph[Long, (Double, Double)], seed : Int, eps : Double) : Graph[Long, Double] = {
  return graphRandomGaussian(graph, seed, eps, true)
}
import scala.util.Random
graphRandomGaussian: (graph: org.apache.spark.graphx.Graph[Long,(Double, Double)], seed: Int, eps: Double, sparkSqlRandom: Boolean)org.apache.spark.graphx.Graph[Long,Double] <and> (graph: org.apache.spark.graphx.Graph[Long,(Double, Double)], seed: Int, eps: Double)org.apache.spark.graphx.Graph[Long,Double]
graphRandomGaussian: (graph: org.apache.spark.graphx.Graph[Long,(Double, Double)], seed: Int, eps: Double, sparkSqlRandom: Boolean)org.apache.spark.graphx.Graph[Long,Double] <and> (graph: org.apache.spark.graphx.Graph[Long,(Double, Double)], seed: Int, eps: Double)org.apache.spark.graphx.Graph[Long,Double]

RDDs in Spark contain lineage graphs with information about previous operations, for e.g. fault tolerance. These can increase significantly in size after many transformations which may result in reduced performance, especially in iterative algorithms (such as in GraphX). For this reason, we truncate the lineage graph by checkpointing the RDDs.

def locallyCheckpointedGraph[VD : ClassTag, ED : ClassTag](graph : Graph[VD, ED]) : Graph[VD, ED] = {
  val mappedGraph = graph.mapEdges(e => e.attr)
  val edgeRdd = mappedGraph.edges.map(x => x)
  val vertexRdd = mappedGraph.vertices.map(x => x)
  edgeRdd.cache()
  edgeRdd.localCheckpoint()
  edgeRdd.count() // We need this line to force the RDD to evaluate, otherwise the truncation is not performed
  vertexRdd.cache()
  vertexRdd.localCheckpoint()
  vertexRdd.count() // We need this line to force the RDD to evaluate, otherwise the truncation is not performed
  return Graph(vertexRdd, edgeRdd)
}

Distributed combinatorial bandit algorithm

The cell below contains the distributed combinatorial bandit algorithm, as well as the simulation framework. In a standard (stochastic) multi-armed bandit problem setting, there is a set of actions \(\mathcal{A}\) wherein each selected action \(a \in \mathcal{A}\) results in the agent receiving a random reward \(r(a)\) from the environment. The distributions of these rewards are unknown and it is the objective of an agent to select actions to learn enough information about the reward distributions such that the long-term rewards can be maximized.

Thompson Sampling is Bayesian bandit algorithm, where the assumption is that the parameters of the reward distributions are drawn from some known prior. By using observed rewards to compute a posterior distribution, the posterior can be used to let the agent explore actions which have a high probability of being optimal. In each iteration, parameters are sampled from the posterior for all actions. The action with the highest (sampled) expected reward is then selected. Thompson Sampling is straightforward to extend to a combinatorial setting, where instead of individual actions, subsets of actions subject to combinatorial constraints are selected in each iteration.

Under the assumption that the travel times individual edges in the road network graph are mutually independent, an online learning version of the shortest path problem can be cast into the combinatorial bandit setting. With the same assumption, the above operations can be performed using Spark and GraphX, in an iterative algorithm. With the exception of the step in which the distributed shortest path algorithm (through pregel) is used to find the path with the lowest (sampled from the posterior distribution) expected travel time, the rest of the steps can be performed almost exclusively by using mapEdges transformations. In this way, expensive repartitioning can be avoided.

As we see it, the main benefit with this approach is that if the road network graph is very large, sub-graphs can be located on different worker nodes.

NOTE: We run this with a toy example instead of the actual road network graph, since we had performance issues keeping us from evaluating it in a meaningful way.

import scala.math.sqrt
import scala.math.max

println("Starting experiment!")
val startTime = System.currentTimeMillis()

val seed = 1000
val eps = 0.00001

// # Horizon N
var N = 10

// # Source and destination node IDs
//val srcId = 0L
var srcId = 2010606671L
//val dstId = numVertices - 1L
var dstId = 2869293096L

var baseGraph: Graph[Long, Double] = null

// # Toy example
val useToyExample = true
if (useToyExample) {
  val numVertices = 10
  N = 100
  srcId = 0L
  dstId = numVertices - 1
  baseGraph = Graph.fromEdges(spark.sparkContext.parallelize(1 until numVertices-1).flatMap(vid => List(Edge(0L, vid.toLong, 100.0), Edge(vid.toLong, numVertices-1, 100.0))), 0L)
} else {
  baseGraph = graph.mapVertices((vid, attr) => 0L)
}

// # Assumption: Gaussian rewards with known variance
// # Prior graph (map weight to prior mean and variance)
val varFactor = 0.01
val prior = baseGraph.mapVertices((vid, attr) => 0L).mapEdges(e => (e.attr, varFactor * (e.attr * e.attr)))
var posterior = prior

// # Environment (sample true environment from prior)
val env = mergeEdgeAttributes(prior, graphRandomGaussian(prior, seed, eps)).mapEdges(e => (e.attr._2, e.attr._1._2))

// # For regret calculations
val optimal = shortestPath(srcId, dstId, env.mapEdges(e => e.attr._1))
val optimalExpectedCost = mergeEdgeAttributes(optimal, env).edges.map(e => e.attr._1 * e.attr._2._1).reduce(_ + _)
val optimalPathEdges = optimal.edges.filter(e => e.attr == 1).map(e => (e.srcId, e.dstId)).collect()
printf("Optimal path edges: [%s]\n", optimalPathEdges.mkString(","))

// # Array with instant regret values
var lastAction = optimal
var allActions = env.mapEdges(e => Array[Double](0))

// # Run experiment for N iterations
for (t <- 0 until N) {
  printf("Iteration %d, elapsed time: %d ms", t, System.currentTimeMillis() - startTime)

  // # Checkpoint to break lineage graph
  allActions = locallyCheckpointedGraph(allActions)
  posterior = locallyCheckpointedGraph(posterior)

  // # Find action (super arm) using posterior sampling
  val sampledParameters = graphRandomGaussian(posterior, seed+t*2+1, eps)
  val action = shortestPath(srcId, dstId, sampledParameters)
  lastAction = action

  // # Apply action on environments (assuming path is indicated by 1-valued edge attributes) and observe realized costs
  val realizedEnv = graphRandomGaussian(env, seed+t*2+2, eps)
  val observation = mergeEdgeAttributes(action, realizedEnv).mapEdges(e => e.attr._1 * e.attr._2)

  // # Update posterior
  posterior = mergeEdgeAttributes(env, mergeEdgeAttributes(action, mergeEdgeAttributes(observation, posterior))).mapEdges(e => {
    val trueVar = e.attr._1._2
    val act = e.attr._2._1
    val obs = e.attr._2._2._1
    val pMean = e.attr._2._2._2._1
    val pVar = e.attr._2._2._2._2
    if (act == 1) {
      val newVar = (1/(1/trueVar + 1/pVar))
      (newVar*(obs/trueVar + pMean/pVar), newVar)
    } else {
      (pMean, pVar)
    }  
  })

  // # Calculate regret
  allActions = mergeEdgeAttributes(allActions, action).mapEdges(e => e.attr._1 :+ e.attr._2)
  printf("\n")
}

printf("Starting aggregation of regret values, elapsed time: %d ms\n", System.currentTimeMillis() - startTime)

// # Aggregation of regret values
val countActions = allActions.mapEdges(e => e.attr.reduce(_ + _))
allActions = allActions.cache()
val instantRegretValues = new Array[Double](N)
for (t <- 0 until N) {
  val action = allActions.mapEdges(e => e.attr(t+1))
  val actionExpectedCost = mergeEdgeAttributes(action, env).edges.map(e => e.attr._1 * e.attr._2._1).reduce(_ + _)
  val instantRegret = actionExpectedCost - optimalExpectedCost
  instantRegretValues(t) = instantRegret
}

val endTime = System.currentTimeMillis()
printf("Finished experiment! Elapsed time:%d\n", endTime - startTime)

Graph visualization

In order to analys the data we visualize a graph which show the number times it has been visited by the exploration algorithm. When visualised, the edges with multiple visits are marked with a thicker line. Note that the graph will get very cluttered if more than 50 nodes are in the graph.

But first, we need to initialize the d3 package.

package d3


// We use a package object so that we can define top level classes like Edge that need to be used in other cells
// This was modified by Ivan Sadikov to make sure it is compatible the latest databricks notebook

import org.apache.spark.sql._
import com.databricks.backend.daemon.driver.EnhancedRDDFunctions.displayHTML

case class Edge(src: String, dest: String, count: Long)

case class Node(name: String)
case class Link(source: Int, target: Int, value: Long)
case class Graph(nodes: Seq[Node], links: Seq[Link])

object graphs {
// val sqlContext = SQLContext.getOrCreate(org.apache.spark.SparkContext.getOrCreate())  /// fix
val sqlContext = SparkSession.builder().getOrCreate().sqlContext
import sqlContext.implicits._

def force(clicks: Dataset[Edge], height: Int = 100, width: Int = 960): Unit = {
  val data = clicks.collect()
  val nodes = (data.map(_.src) ++ data.map(_.dest)).map(_.replaceAll("_", " ")).toSet.toSeq.map(Node)
  val links = data.map { t =>
    Link(nodes.indexWhere(_.name == t.src.replaceAll("_", " ")), nodes.indexWhere(_.name == t.dest.replaceAll("_", " ")), t.count / 20 + 1)
  }
  showGraph(height, width, Seq(Graph(nodes, links)).toDF().toJSON.first())
}

/**
 * Displays a force directed graph using d3
 * input: {"nodes": [{"name": "..."}], "links": [{"source": 1, "target": 2, "value": 0}]}
 */
def showGraph(height: Int, width: Int, graph: String): Unit = {

displayHTML(s"""
<style>

.node_circle {
  stroke: #777;
  stroke-width: 1.3px;
}

.node_label {
  pointer-events: none;
}

.link {
  stroke: #777;
  stroke-opacity: .2;
}

.node_count {
  stroke: #777;
  stroke-width: 1.0px;
  fill: #999;
}

text.legend {
  font-family: Verdana;
  font-size: 13px;
  fill: #000;
}

.node text {
  font-family: "Helvetica Neue","Helvetica","Arial",sans-serif;
  font-size: 17px;
  font-weight: 200;
}

</style>

<div id="clicks-graph">
<script src="//d3js.org/d3.v3.min.js"></script>
<script>

var graph = $graph;

var width = $width,
    height = $height;

var color = d3.scale.category20();

var force = d3.layout.force()
    .charge(-700)
    .linkDistance(180)
    .size([width, height]);

var svg = d3.select("#clicks-graph").append("svg")
    .attr("width", width)
    .attr("height", height);

force
    .nodes(graph.nodes)
    .links(graph.links)
    .start();

var link = svg.selectAll(".link")
    .data(graph.links)
    .enter().append("line")
    .attr("class", "link")
    .style("stroke-width", function(d) { return Math.sqrt(d.value); });

var node = svg.selectAll(".node")
    .data(graph.nodes)
    .enter().append("g")
    .attr("class", "node")
    .call(force.drag);

node.append("circle")
    .attr("r", 10)
    .style("fill", function (d) {
    if (d.name.startsWith("other")) { return color(1); } else { return color(2); };
})

node.append("text")
      .attr("dx", 10)
      .attr("dy", ".35em")
      .text(function(d) { return d.name });

//Now we are giving the SVGs co-ordinates - the force layout is generating the co-ordinates which this code is using to update the attributes of the SVG elements
force.on("tick", function () {
    link.attr("x1", function (d) {
        return d.source.x;
    })
        .attr("y1", function (d) {
        return d.source.y;
    })
        .attr("x2", function (d) {
        return d.target.x;
    })
        .attr("y2", function (d) {
        return d.target.y;
    });
    d3.selectAll("circle").attr("cx", function (d) {
        return d.x;
    })
        .attr("cy", function (d) {
        return d.y;
    });
    d3.selectAll("text").attr("x", function (d) {
        return d.x;
    })
        .attr("y", function (d) {
        return d.y;
    });
});
</script>
</div>
""")
}

  def help() = {
displayHTML("""
<p>
Produces a force-directed graph given a collection of edges of the following form:</br>
<tt><font color="#a71d5d">case class</font> <font color="#795da3">Edge</font>(<font color="#ed6a43">src</font>: <font color="#a71d5d">String</font>, <font color="#ed6a43">dest</font>: <font color="#a71d5d">String</font>, <font color="#ed6a43">count</font>: <font color="#a71d5d">Long</font>)</tt>
</p>
<p>Usage:<br/>
<tt><font color="#a71d5d">import</font> <font color="#ed6a43">d3._</font></tt><br/>
<tt><font color="#795da3">graphs.force</font>(</br>
&nbsp;&nbsp;<font color="#ed6a43">height</font> = <font color="#795da3">500</font>,<br/>
&nbsp;&nbsp;<font color="#ed6a43">width</font> = <font color="#795da3">500</font>,<br/>
&nbsp;&nbsp;<font color="#ed6a43">clicks</font>: <font color="#795da3">Dataset</font>[<font color="#795da3">Edge</font>])</tt>
</p>""")
  }
}
Warning: classes defined within packages cannot be redefined without a cluster restart.
Compilation successful.
import org.graphframes.GraphFrame
import org.apache.spark.sql.functions.lit // import the lit function in sql

val visitedEdges = GraphFrame.fromGraphX(countActions.mapEdges(e => e.attr.toInt))
val visits = visitedEdges.edges.select($"attr".as("count"))
val maxVisits = visits.agg(org.apache.spark.sql.functions.max(visits("count")))
d3.graphs.force(
  height = 500,
  width = 1000,
  clicks = visitedEdges.edges.select($"src", $"dst".as("dest"), $"attr".divide(maxVisits.first().getInt(0)).multiply(500).cast("int").as("count")).as[d3.Edge])

We can also visualize the shortest path in the graph.

val posteriorShortestPath = GraphFrame.fromGraphX(lastAction.mapEdges(e => e.attr.toInt*10000))

d3.graphs.force(
  height = 500,
  width = 1000,
  clicks = posteriorShortestPath.edges.select($"src", $"dst".as("dest"), $"attr".as("count")).as[d3.Edge])

Now we visualize the instant regret. We should see a lot ot spikes in the beginning of the graph but the general trend should be that the curve decrease to zero while having fewer spikes as the algorithm gets closer to the optimal solutions. Note that there will always be some spikes as these corresponds to "exploratory" actions.

val df = spark.sparkContext.parallelize((1 to N) zip instantRegretValues).toDF("Iteration (t)","Instant regret")
display(df)

We can also show the cumulative regret. As the algorithm reaches a final solution, the instantaneous regret should decrease and the cumulative regret should reach a plateau.

val cumulativeRegret = instantRegretValues.scanLeft(0.0)(_ + _)
val df = spark.sparkContext.parallelize((1 to N) zip cumulativeRegret).toDF("Iteration (t)","Cumulative regret")
display(df)

References

Sadikov, I., & Sainudiin, R.. (2016). Distributed Weighted Shortest Paths. http://lamastex.org/lmse/mep/src/GraphXShortestWeightedPaths.html.

Thompson, W. (1933). On the likelihood that one unknown probability exceeds another in view of the evidence of two samples. Biometrika, 25(3–4), 285-–294.

Wang, S., & Chen, W. (2018). Thompson sampling for combinatorial semi-bandits. In International Conference on Machine Learning (pp. 5114–5122).

ScaDaMaLe Course site and book

Reinforcement Learning for Intraday Trading

Group members:

  • Fabian Sinzinger
  • Karl Bäckström
  • Rita Laezza

ScaDaMaLe Course site and book

Reinforcement Learning

In this project, our aim is to implement a Reinforcement Learning (RL) strategy for trading stocks. Adopting a learning-based approach, in particular using RL, entails several potential benefits over current approaches. Firstly, several ML methods allow learning-based pre-processing steps, such as convolutional layers which enable automatic feature extraction and detection, and may be used to focus the computation on the most relevant features. Secondly, constructing an end-to-end learning-based pipeline makes the prediction step implicit, and potentially reduces the problem complexity to predicting only certain aspects or features of the time series which are necessary for the control strategy, as opposed to attempting to predict the exact time series values. Thirdly, an end-to-end learning-based approach alleviates potential bounds of the step-wise modularization that a human-designed pipeline would entail, and allows the learning algorithm to automatically deduce the optimal strategy for utilizing any feature signal, in order to execute the most efficient control strategy.

The main idea behind RL algorithms is to learn by trial-and-error how to act optimally. An agent gathers experience by iteratively interacting with an environment. Starting in state St, the agent takes an action At and receives a reward Rt+1 as it moves to state St+1, as seen below (source). Using this experience, RL algorithms can learn either a value function or a policy directly. We learn the former, which can then be used to compute optimal actions, by chosing the action that maximizes the action value, Q. Specifically, we use the DQN -- Deep Q-Network -- algorithm to train an agent which trades Brent Crude Oil (BCOUSD) stocks, in order to maximize profit.

// Scala imports
import org.lamastex.spark.trendcalculus._
import spark.implicits._
import org.apache.spark.sql._
import org.apache.spark.sql.functions._
import java.sql.Timestamp
import org.apache.spark.sql.expressions._
import org.lamastex.spark.trendcalculus._
import spark.implicits._
import org.apache.spark.sql._
import org.apache.spark.sql.functions._
import java.sql.Timestamp
import org.apache.spark.sql.expressions._

Brent Crude Oil Dataset

The dataset consists of historical data starting from the 14th of October 2010 to the 21st of June 2019. Since the data in the first and last day is incomplete, we remove it from the dataset. The BCUSD data is sampled approximatly every minute with a specific timestamp and registered in US dollars.

To read the BCUSD dataset, we use the same parsers provided by the TrendCalculus library. This allows us to load the FX data into a Spark Dataset. The fx1m function returns the dataset as TickerPoint objects with values x and y, which are time and a close values respectively. The first consists of the name of the stock, the second is the timestamp of the data point and the latter consists of the value of the stock at the end of each 1 minute bin.

Finally we add the index column to facilitate retrieving values from the table, since there are gaps in the data meaning that not all minutes have an entry. Further a **diff_close** column was added, which consists of the relative difference between the close value at the current and the previous time. Note hat since ticker is always the same, we remove that column.

// Load dataset
val oilDS = spark.read.fx1m("dbfs:/FileStore/shared_uploads/fabiansi@kth.se/*csv.gz").toDF.withColumn("ticker", lit("BCOUSD")).select($"ticker", $"time" as "x", $"close" as "y").as[TickerPoint].orderBy("time")

// Add column with difference from previous close value (expected 'x', 'y' column names)
val windowSpec = Window.orderBy("x")
val oilDS1 = oilDS
.withColumn("diff_close", $"y" - when((lag("y", 1).over(windowSpec)).isNull, 0).otherwise(lag("y", 1).over(windowSpec)))

// Rename variables
val oilDS2 = oilDS1.withColumnRenamed("x","time").withColumnRenamed("y","close")

// Remove incomplete data from first day (2010-11-14) and last day (2019-06-21)
val oilDS3 = oilDS2.filter(to_date(oilDS2("time")) >= lit("2010-11-15") && to_date(oilDS2("time")) <= lit("2019-06-20"))

// Add index column
val windowSpec1 = Window.orderBy("time")
val oilDS4 = oilDS3
.withColumn("index", row_number().over(windowSpec1))

// Drop ticker column
val oilDS5 = oilDS4.drop("ticker")

// Store loaded data as temp view, to be accessible in Python
oilDS5.createOrReplaceTempView("temp")
oilDS: org.apache.spark.sql.Dataset[org.lamastex.spark.trendcalculus.TickerPoint] = [ticker: string, x: timestamp ... 1 more field]
windowSpec: org.apache.spark.sql.expressions.WindowSpec = org.apache.spark.sql.expressions.WindowSpec@347f9beb
oilDS1: org.apache.spark.sql.DataFrame = [ticker: string, x: timestamp ... 2 more fields]
oilDS2: org.apache.spark.sql.DataFrame = [ticker: string, time: timestamp ... 2 more fields]
oilDS3: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [ticker: string, time: timestamp ... 2 more fields]
windowSpec1: org.apache.spark.sql.expressions.WindowSpec = org.apache.spark.sql.expressions.WindowSpec@3c3c818a
oilDS4: org.apache.spark.sql.DataFrame = [ticker: string, time: timestamp ... 3 more fields]
oilDS5: org.apache.spark.sql.DataFrame = [time: timestamp, close: double ... 2 more fields]

Preparing the data in Python

Because the TrendCalculus library we use is implemented in Scala and we want to do our implementation in Python, we have to make sure that the data loaded in Scala is correctly read in Python, before moving on. To that end, we select the first 10 data points and show them in a table.

We can see that there are roughly 2.5 million data points in the BCUSD dataset.

#Python imports
import datetime
import gym
import math
import random
import json
import collections
import numpy as np
import matplotlib.pyplot as plt
from keras.models import Sequential
from keras.layers.core import Dense
from keras.layers import Conv1D, MaxPool1D, Flatten, BatchNormalization
from keras import optimizers
# Create Dataframe from temp data
oilDF_py = spark.table("temp")

# Select the 10 first Rows of data and print them
ten_oilDF_py = oilDF_py.limit(10)
ten_oilDF_py.show()

# Check number of data points
last_index = oilDF_py.count()
print("Number of data points: {}".format(last_index))

# Select the date of the last data point
print("Last data point: {}".format(np.array(oilDF_py.where(oilDF_py.index == last_index).select('time').collect()).item()))
+-------------------+-----+--------------------+-----+
|               time|close|          diff_close|index|
+-------------------+-----+--------------------+-----+
|2010-11-15 00:00:00| 86.6|-0.01000000000000...|    1|
|2010-11-15 00:01:00| 86.6|                 0.0|    2|
|2010-11-15 00:02:00|86.63|0.030000000000001137|    3|
|2010-11-15 00:03:00|86.61|-0.01999999999999602|    4|
|2010-11-15 00:05:00|86.61|                 0.0|    5|
|2010-11-15 00:07:00| 86.6|-0.01000000000000...|    6|
|2010-11-15 00:08:00|86.58|-0.01999999999999602|    7|
|2010-11-15 00:09:00|86.58|                 0.0|    8|
|2010-11-15 00:10:00|86.58|                 0.0|    9|
|2010-11-15 00:12:00|86.57|-0.01000000000000...|   10|
+-------------------+-----+--------------------+-----+

Number of data points: 2523078
Last data point: 2019-06-20 23:59:00

RL Environment

In order to train RL agents, we first need to create the environment with which the agent will interact to gather experience. In our case, that consist of a stock market simulation which plays out historical data from the BCUSD dataset. This is valid, under the assumption that the trading on the part of our agent has no affect on the stock market. An RL problem can be formally defined by a Markov Decision Process (MDP).

For our application, we have the following MDP: - State, s: a window of **diffclose** values for a given scope, i.e. the current value and history leading up to it. - Action, a: either LONG for buying stock, or SHORT for selling stock. Note that PASS is not required, since if stock is already owned, buying means holding and if stock is not owned then shorting means pass. - Reward, r: if at=**LONG** rt=st+1=**diff_close**; if at=SHORT rt=-s_t+1=-**diff_close**. Essentially, the reward is negative if we sell and the stock goes up or if we buy and the stock goes down in the next timestep. Conversely, the reward is positive if we buy and the stock goes up or if we sell and the stock goes down in the next timestep.

This environment is very simplified, with only binary actions. An alternative could be to use continuos actions to determine how much stock to buy or sell. However, since we aim to compare to TrendCalculus results which only predict reversals, these actions are more adequate. For the implementation, we used OpenAI Gym's formalism, which includes a done variable to indicate the end of an episode. In MarketEnv, by setting the **start_date** and **end_date** atttributes, we can select the part of the dataset we wish to use. Finally, the and **episode_size** parameter determines the episode size. An episode's starting point can be sampled at random or not, which is defined when calling reset.

# Adapted from: https://github.com/kh-kim/stock_market_reinforcement_learning/blob/master/market_env.py


class MarketEnv(gym.Env):
    def __init__(self, full_data, start_date, end_date, episode_size=30*24*60, scope=60):
        self.episode_size = episode_size
        self.actions = ["LONG", "SHORT"]
        self.action_space = gym.spaces.Discrete(len(self.actions))
        self.state_space = gym.spaces.Box(np.ones(scope) * -1, np.ones(scope))

        self.diff_close = np.array(full_data.filter(full_data["time"] > start_date).filter(full_data["time"] <= end_date).select('diff_close').collect())
        max_diff_close = np.max(self.diff_close)
        self.diff_close = self.diff_close*max_diff_close
        self.close = np.array(full_data.filter(full_data["time"] > start_date).filter(full_data["time"] <= end_date).select('close').collect())
        self.num_ticks_train = np.shape(self.diff_close)[0]

        self.scope = scope # N values to be included in a state vector
        self.time_index = self.scope  # start N steps in, to ensure that we have enough past values for history
        self.episode_init_time = self.time_index  # initial time index of the episode


    def step(self, action):
        info = {'index': int(self.time_index), 'close': float(self.close[self.time_index])}
        self.time_index += 1
        self.state = self.diff_close[self.time_index - self.scope:self.time_index]
        self.reward = float( - (2 * action - 1) * self.state[-1] )

        # Check if done
        if self.time_index - self.episode_init_time > self.episode_size:
            self.done = True
        if self.time_index > self.diff_close.shape[0] - self.scope -1:
            self.done = True

        return self.state, self.reward, self.done, info

    def reset(self, random_starttime=True):
        self.done = False
        self.reward = 0.
        self.time_index = self.scope
        self.state = self.diff_close[self.time_index - self.scope:self.time_index]

        if random_starttime:
            self.time_index += random.randint(0, self.num_ticks_train - self.scope)

        self.episode_init_time = self.time_index

        return self.state

    def seed(self):
        pass
states = []
actions = []
rewards = []
reward_sum = 0.

# Verify environment for 1 hour
start = datetime.datetime(2010, 11, 15, 0, 0)
end = datetime.datetime(2010, 11, 15, 1, 0)

env = MarketEnv(oilDF_py, start, end, episode_size=np.inf, scope=1)
state = env.reset(random_starttime=False)
done = False
while not done:
    states.append(state[-1])
    # Take random actions
    action = env.action_space.sample()
    actions.append(action)
    state, reward, done, info = env.step(action)
    rewards.append(reward)
    reward_sum += reward
print("Return = {}".format(reward_sum))
Return = 0.005
# Plot samples
timesteps = np.linspace(1,len(states),len(states))
longs = np.argwhere(np.asarray(actions) ==  0)
shorts = np.argwhere(np.asarray(actions) ==  1)
states = np.asarray(states)
fig, ax = plt.subplots(2, 1, figsize=(16, 8))
ax[0].grid(True)
ax[0].plot(timesteps, states, label='diff_close')
ax[0].plot(timesteps[longs], states[longs].flatten(), '*g', markersize=12, label='long')
ax[0].plot(timesteps[shorts], states[shorts].flatten(), '*r', markersize=12, label='short')
ax[0].set_ylabel("(s,a)")
ax[0].set_xlabel("Timestep")
ax[0].set_xlim(1,len(states))
ax[0].set_xticks(np.arange(1, len(states), 1.0))
ax[0].legend()
ax[1].grid(True)
ax[1].plot(timesteps, rewards, 'o-r')
ax[1].set_ylabel("r")
ax[1].set_xlabel("Timestep")
ax[1].set_xlim(1,len(states))
ax[1].set_xticks(np.arange(1, len(states), 1.0))
plt.tight_layout()
display(fig)

To illustarte how the reward works, we can look at timestep 9, where there is a large negative reward because the agent shorted (red) and at step 10 the stock went up. Conversely, at timestep 27 there is a large positive reward, since the agent decided to short and in the next timestep (28), the stock went down.

DQN Algorithm

Since we have discrete actions, we can use Q-learning to train our agent. Specifically we use the DQN algorithm with Experience Replay, which was first described in DeepMind's: Playing Atari with Deep Reinforcement Learning. The algorithm is described below, where equation [3], refers to the gradient:

# Adapted from: /scalable-data-science/000_6-sds-3-x-dl/063_DLbyABr_07-ReinforcementLearning

class ExperienceReplay:
    def __init__(self, max_memory=100, discount=.9):
        self.max_memory = max_memory
        self.memory = list()
        self.discount = discount

    def remember(self, states, done):
        self.memory.append([states, done])
        if len(self.memory) > self.max_memory:
            del self.memory[0]

    def get_batch(self, model, batch_size=10):
        len_memory = len(self.memory)
        num_actions = model.output_shape[-1]

        env_dim = self.memory[0][0][0].shape[1]
        inputs = np.zeros((min(len_memory, batch_size), env_dim, 1))
        targets = np.zeros((inputs.shape[0], num_actions))
        for i, idx in enumerate(np.random.randint(0, len_memory, size=inputs.shape[0])):
            state_t, action_t, reward_t, state_tp1 = self.memory[idx][0]
            done = self.memory[idx][1]

            inputs[i:i + 1] = state_t
            # There should be no target values for actions not taken.
            targets[i] = model.predict(state_t)[0]
            Q_sa = np.max(model.predict(state_tp1)[0])
            if done: # if done is True
                targets[i, action_t] = reward_t
            else:
                # reward_t + gamma * max_a' Q(s', a')
                targets[i, action_t] = reward_t + self.discount * Q_sa
        return inputs, targets

Training RL agent

In order to train the RL agent, we use the data from 2014 to 2018, leaving the data from 2019 for testing. RL implementations are quite difficult to train, due to the large amount of parameters which need to be tuned. We have spent little time seraching for better hyperparameters as this was beyond the scope of the course. We have picked parameters based on a similar implementation of RL for trading, however we have designed an new Q-network, since the state is different in our implementation. Sine we are dealing wih sequential data, we could have opted for an RNN, however 1-dimensional CNNs are also a common choice which is less computationally heavy.

# Adapted from: https://dbc-635ca498-e5f1.cloud.databricks.com/?o=445287446643905#notebook/4201196137758409/command/4201196137758410

# RL parameters
epsilon = .5  # exploration
min_epsilon = 0.1
max_memory = 5000
batch_size = 512
discount = 0.8

# Environment parameters
num_actions = 2  # [long, short]
episodes = 500 # 100000
episode_size = 1 * 1 * 60  # roughly an hour worth of data in each training episode

# Define state sequence scope (approx. 1 hour)
sequence_scope = 60
input_shape = (batch_size, sequence_scope, 1)

# Create Q Network
hidden_size = 128
model = Sequential()
model.add(Conv1D(32, (5), strides=2, input_shape=input_shape[1:], activation='relu'))
model.add(MaxPool1D(pool_size=2, strides=1))
model.add(BatchNormalization())
model.add(Conv1D(32, (5), strides=1, activation='relu'))
model.add(MaxPool1D(pool_size=2, strides=1))
model.add(BatchNormalization())
model.add(Flatten())
model.add(Dense(hidden_size, activation='relu'))
model.add(BatchNormalization())
model.add(Dense(num_actions))
opt = optimizers.Adam(lr=0.01)
model.compile(loss='mse', optimizer=opt)

# Define training interval
start = datetime.datetime(2010, 11, 15, 0, 0)
end = datetime.datetime(2018, 12, 31, 23, 59)

# Initialize Environment
env = MarketEnv(oilDF_py, start, end, episode_size=episode_size, scope=sequence_scope)

# Initialize experience replay object
exp_replay = ExperienceReplay(max_memory=max_memory, discount=discount)

# Train
returns = []
for e in range(1, episodes):
    loss = 0.
    counter = 0
    reward_sum = 0.
    done = False

    state = env.reset()
    input_t = state.reshape(1, sequence_scope, 1)

    while not done:     
        counter += 1
        input_tm1 = input_t
        # get next action
        if np.random.rand() <= epsilon:
            action = np.random.randint(0, num_actions, size=1)
        else:
            q = model.predict(input_tm1)
            action = np.argmax(q[0])

        # apply action, get rewards and new state
        state, reward, done, info = env.step(action)
        reward_sum += reward
        input_t = state.reshape(1, sequence_scope, 1)         

        # store experience
        exp_replay.remember([input_tm1, action, reward, input_t], done)

        # adapt model
        inputs, targets = exp_replay.get_batch(model, batch_size=batch_size)
        loss += model.train_on_batch(inputs, targets)


    print("Episode {:03d}/{:d} | Average Loss {:.4f} | Cumulative Reward {:.4f}".format(e, episodes, loss / counter, reward_sum))
    epsilon = max(min_epsilon, epsilon * 0.99)
    returns.append(reward_sum)
# Plotting training results
fig, ax = plt.subplots(figsize=(16, 8))
ax.plot(returns)
ax.set_ylabel("Return")
ax.set_xlabel("Episode")
display(fig)

We have trained our model for 500 episodes and the returns are plotted above. Note that the loss was still quite high at the end of training, which indicates that the algorithm hasn't converged. A possible explanation for this is that RL algorithms typically require significantly more steps to converge. Further, considering the size of the tranining dataset, the neural network used is very small. Besides that, DQN is known to be quite unstable and prone to diverge, which is why several new versions of this algorithm have been proposed since it was first introduced. A very common implementation consists of the Double DQN, which introduced a target Q-network used to compute the actions, which is updated at a lower rate than the main Q-network. In our implementation, the max operator uses the same network both to select and to evaluate an action. This may lead to wrongly selecting overestimated values. Having a separate target network can help prevent this, by decoupling the selection from the evaluation.

Testing RL agent

In order to test our agent, we select the whole data from the 1st of January 2019, which wasn't included during training.

done = False
states = []
actions = []
rewards = []
reward_sum = 0.

# Define testing interval, January 2019
start = datetime.datetime(2019, 1, 1, 0, 0)
end = datetime.datetime(2019, 1, 1, 23, 59)

# Test learned model
env = MarketEnv(oilDF_py, start, end, episode_size=np.inf, scope=sequence_scope)
state = env.reset(random_starttime=False)
input_t = state.reshape(1, sequence_scope, 1)
while not done:    
    states.append(state[-1])
    q = model.predict(input_t)
    action = np.argmax(q[0])
    actions.append(action)
    state, reward, done, info = env.step(action)
    rewards.append(reward)
    reward_sum += reward
    input_t = state.reshape(1, sequence_scope, 1)      
print("Return = {}".format(reward_sum))
Return = 0.096
# Plotting testing results
timesteps = np.linspace(1,len(states),len(states))
longs = np.argwhere(np.asarray(actions) ==  0)
shorts = np.argwhere(np.asarray(actions) ==  1)
states = np.asarray(states)
fig, ax = plt.subplots(2, 1, figsize=(16, 8))
ax[0].grid(True)
ax[0].plot(timesteps, states, label='diff_close')
ax[0].plot(timesteps[longs], states[longs].flatten(), '*g', markersize=12, label='long')
ax[0].plot(timesteps[shorts], states[shorts].flatten(), '*r', markersize=12, label='short')
ax[0].set_ylabel("(s,a)")
ax[0].set_xlabel("Timestep")
ax[0].set_xlim(1,len(states))
ax[0].legend()
ax[1].grid(True)
ax[1].plot(timesteps, rewards, 'o-r')
ax[1].set_ylabel("r")
ax[1].set_xlabel("Timestep")
ax[1].set_xlim(1,len(states))
plt.tight_layout()
display(fig)

We can see that the policy converged to always shorting, meaning that the agent never buys any stock. While abstaining from investments in fossil fuels may be good advice, the result is not very useful for our intended application. Nevertherless, reaching a successful automatic intraday trading bot in the short time we spent implementing this project would be a high bar. After all, this is more or less the holy grail of computational economy.

Summary and Outlook

In this project we have trained and tested an RL agent, using DQN for intraday trading. We started by processing the data and adding a **diff_close** column which contains the differece of the closing stock value between two timesteps. We then implemented our own Gym environment MarketEnv, to be able to read data from the BCUSD dataset and feed it to an agents, as weel as compute the reward given the agent's action. We used a DQN implementation, to train a convolutional Q-Network. Since we are using TensorFlow in the background, the training is automatically scaled to use all cpu cores available (see here). Finally, we have tested our agent on new data, and concluded that more work needs to be put into making the algorithm convege.

As future work we believe we can still improve the state and reward definitions. For the state, used a window of **close_diff** values as our state definiion. However, augmenting the state with longer term trends computed by the TrendCalculus algorithm could yield significant improvements. The TrendCalculus algorithm provides an analytical framework effective for identifying trends in historical price data, including trend pattern analysis and prediction of trend changes. Below we present the idea behind TrendCalculus and how it relates to **close_diff**, as well as a few ideas on how it could be used for our application.

Trend Calculus

Taken from: https://github.com/lamastex/spark-trend-calculus-examples

Trend Calculus is an algorithm invented by Andrew Morgan that is used to find trend changes in a time series (see here). It works by grouping the observations in the time series into windows and defining a trend upwards as “higher highs and higher lows” compared to the previous window. A downwards trend is similarly defined as “lower highs and lower lows”.

If there is a higher high and lower low (or lower high and higher low), no trend is detected. This is solved by introducing intermediate windows that split the non-trend into two trends, ensuring that every point can be labeled with either an up or down trend.

When the trends have been calculated for all windows, the points where the trends change sign are labeled as reversals. If the reversal is from up to down, the previous high is the reversal point and if the reversal is from down to up, the previous low is the reversal. This means that the reversals always are the appropriate extrema (maximum for up to down, minimum for down to up).

The output of the algorithm is a time series consisting of all the labelled reversal points. It is therefore possible to use this as the input for another run of the Trend Calculus algorithm, finding more long term trends. This can be seen when TrendCalculus is applied to the BCUSD datset, shown in column reversal1 of the table below.

val windowSize = 2
val numReversals = 1 // we look at 1 iteration of the algorithm.

val dfWithReversals = new TrendCalculus2(oilDS, windowSize, spark).nReversalsJoinedWithMaxRev(numReversals)
display(dfWithReversals)

val windowSpec = Window.orderBy("x")
val dfWithReversalsDiff = dfWithReversals
.withColumn("diff_close", $"y" - when((lag("y", 1).over(windowSpec)).isNull, 0).otherwise(lag("y", 1).over(windowSpec)))

// Store loaded data as temp view, to be accessible in Python
dfWithReversalsDiff.createOrReplaceTempView("temp")

In conjunction with TrendCalculus, a complete automatic trading pipeline can be constructed, consisting of (i) trend analysis with TrendCalculus (ii) time series prediction and (iii) control, i.e. buy or sell. Implementing and evaluating a pipeline such as the one outlined in the aforementioned steps is left as a suggestion for future work, and it is of particular interest to compare the performance of such a method to a learning-based one.

Below we show that sign(**diff_close**) is equivalent to sign of the output of a single iteration of TrendCalculus with window size 2, over our **scope**. A possible improvement of our algorithm would be to use TrendCalculus to compute long term trends from historical data and include it on our state definition. This way, if for example the agent observes a long term downward trend, then it can be encouraged to buy stock since it is bound to bounce up again.

# Taken from: https://lamastex.github.io/spark-trend-calculus-examples/notebooks/db/01trend-calculus-showcase.html

# Create Dataframe from temp data
fullDS = spark.table("temp")
fullTS = fullDS.select("x", "y", "reversal1", "diff_close").collect()

startDate = datetime.datetime(2019, 1, 1, 1, 0) # first window used as scope
endDate = datetime.datetime(2019, 1, 1, 23, 59)
TS = [row for row in fullTS if startDate <= row['x'] and row['x'] <= endDate]

allData = {'x': [row['x'] for row in TS], 'close': [row['y'] for row in TS], 'diff_close': [row['diff_close'] for row in TS], 'reversal1': [row['reversal1'] for row in TS]}

# Plot reversals
close = np.asarray(allData['close'])
diff_close = np.asarray(allData['diff_close'])
timesteps = np.linspace(1,len(diff_close),len(diff_close))
revs = np.asarray(allData['reversal1'])
pos_rev_ind = np.argwhere(revs ==  1)
neg_rev_ind = np.argwhere(revs ==  -1)
fig, ax = plt.subplots(2, 1, figsize=(16, 8))
ax[0].grid(True)
ax[0].plot(timesteps, close, label='close')
ax[0].plot(timesteps[pos_rev_ind], close[pos_rev_ind].flatten(), '*g', markersize=12, label='+ reversal')
ax[0].plot(timesteps[neg_rev_ind], close[neg_rev_ind].flatten(), '*r', markersize=12, label='- reversal')
ax[0].set_ylabel("close")
ax[0].set_xlabel("Timestep")
ax[0].set_xlim(1,len(close))
ax[0].legend()
ax[1].grid(True)
ax[1].plot(timesteps, diff_close, label='diff_close')
ax[1].plot(timesteps[pos_rev_ind], diff_close[pos_rev_ind].flatten(), '*g', markersize=12, label='+ reversal')
ax[1].plot(timesteps[neg_rev_ind], diff_close[neg_rev_ind].flatten(), '*r', markersize=12, label='- reversal')
ax[1].set_ylabel("diff_close")
ax[1].set_xlabel("Timestep")
ax[1].set_xlim(1,len(diff_close))
plt.tight_layout()
display(fig)

ScaDaMaLe Course site and book

// Scala imports
import org.lamastex.spark.trendcalculus._
import spark.implicits._
import org.apache.spark.sql._
import org.apache.spark.sql.functions._
import java.sql.Timestamp
import org.apache.spark.sql.expressions._
import org.lamastex.spark.trendcalculus._
import spark.implicits._
import org.apache.spark.sql._
import org.apache.spark.sql.functions._
import java.sql.Timestamp
import org.apache.spark.sql.expressions._
// Load dataset
val oilDS = spark.read.fx1m("dbfs:/FileStore/shared_uploads/fabiansi@kth.se/*csv.gz").toDF.withColumn("ticker", lit("BCOUSD")).select($"ticker", $"time" as "x", $"close" as "y").as[TickerPoint].orderBy("time")

// Add column with difference from previous close value (expected 'x', 'y' column names)
val windowSpec = Window.orderBy("x")
val oilDS1 = oilDS 
.withColumn("diff_close", $"y" - when((lag("y", 1).over(windowSpec)).isNull, 0).otherwise(lag("y", 1).over(windowSpec)))

// Rename variables
val oilDS2 = oilDS1.withColumnRenamed("x","time").withColumnRenamed("y","close")

// Remove incomplete data from first day (2010-11-14) and last day (2019-06-21)
val oilDS3 = oilDS2.filter(to_date(oilDS2("time")) >= lit("2010-11-15") && to_date(oilDS2("time")) <= lit("2019-06-20"))

// Add index column
val windowSpec1 = Window.orderBy("time")
val oilDS4 = oilDS3
.withColumn("index", row_number().over(windowSpec1))

// Drop ticker column
val oilDS5 = oilDS4.drop("ticker")

// Store loaded data as temp view, to be accessible in Python
oilDS5.createOrReplaceTempView("temp")
oilDS: org.apache.spark.sql.Dataset[org.lamastex.spark.trendcalculus.TickerPoint] = [ticker: string, x: timestamp ... 1 more field]
windowSpec: org.apache.spark.sql.expressions.WindowSpec = org.apache.spark.sql.expressions.WindowSpec@6dd55d65
oilDS1: org.apache.spark.sql.DataFrame = [ticker: string, x: timestamp ... 2 more fields]
oilDS2: org.apache.spark.sql.DataFrame = [ticker: string, time: timestamp ... 2 more fields]
oilDS3: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [ticker: string, time: timestamp ... 2 more fields]
windowSpec1: org.apache.spark.sql.expressions.WindowSpec = org.apache.spark.sql.expressions.WindowSpec@5be434ff
oilDS4: org.apache.spark.sql.DataFrame = [ticker: string, time: timestamp ... 3 more fields]
oilDS5: org.apache.spark.sql.DataFrame = [time: timestamp, close: double ... 2 more fields]
#Python imports
import datetime
import gym
import math
import random
import json
import collections
import numpy as np
import matplotlib.pyplot as plt
from keras.models import Sequential
from keras.layers.core import Dense
from keras.layers import Conv1D, MaxPool1D, Flatten, BatchNormalization
from keras import optimizers

from elephas.utils.rdd_utils import to_simple_rdd
from elephas.spark_model import SparkModel
Using TensorFlow backend.
WARNING
# Create Dataframe from temp data
oilDF_py = spark.table("temp")

# Select the 10 first Rows of data and print them
ten_oilDF_py = oilDF_py.limit(10)
ten_oilDF_py.show()

# Check number of data points
last_index = oilDF_py.count()
print("Number of data points: {}".format(last_index))

# Select the date of the last data point
print("Last data point: {}".format(np.array(oilDF_py.where(oilDF_py.index == last_index).select('time').collect()).item()))
+-------------------+-----+--------------------+-----+
|               time|close|          diff_close|index|
+-------------------+-----+--------------------+-----+
|2010-11-15 00:00:00| 86.6|-0.01000000000000...|    1|
|2010-11-15 00:01:00| 86.6|                 0.0|    2|
|2010-11-15 00:02:00|86.63|0.030000000000001137|    3|
|2010-11-15 00:03:00|86.61|-0.01999999999999602|    4|
|2010-11-15 00:05:00|86.61|                 0.0|    5|
|2010-11-15 00:07:00| 86.6|-0.01000000000000...|    6|
|2010-11-15 00:08:00|86.58|-0.01999999999999602|    7|
|2010-11-15 00:09:00|86.58|                 0.0|    8|
|2010-11-15 00:10:00|86.58|                 0.0|    9|
|2010-11-15 00:12:00|86.57|-0.01000000000000...|   10|
+-------------------+-----+--------------------+-----+

Number of data points: 2523078
Last data point: 2019-06-20 23:59:00
# Adapted from: https://github.com/kh-kim/stock_market_reinforcement_learning/blob/master/market_env.py


class MarketEnv(gym.Env):
    def __init__(self, full_data, start_date, end_date, episode_size=30*24*60, scope=60):
        self.episode_size = episode_size
        self.actions = ["LONG", "SHORT"] 
        self.action_space = gym.spaces.Discrete(len(self.actions))
        self.state_space = gym.spaces.Box(np.ones(scope) * -1, np.ones(scope))

        self.diff_close = np.array(full_data.filter(full_data["time"] > start_date).filter(full_data["time"] <= end_date).select('diff_close').collect())
        max_diff_close = np.max(self.diff_close)
        self.diff_close = self.diff_close*max_diff_close
        self.close = np.array(full_data.filter(full_data["time"] > start_date).filter(full_data["time"] <= end_date).select('close').collect())
        self.num_ticks_train = np.shape(self.diff_close)[0]

        self.scope = scope # N values to be included in a state vector
        self.time_index = self.scope  # start N steps in, to ensure that we have enough past values for history 
        self.episode_init_time = self.time_index  # initial time index of the episode


    def step(self, action):
        info = {'index': int(self.time_index), 'close': float(self.close[self.time_index])}
        self.time_index += 1
        self.state = self.diff_close[self.time_index - self.scope:self.time_index]
        self.reward = float( - (2 * action - 1) * self.state[-1] )
        
        # Check if done
        if self.time_index - self.episode_init_time > self.episode_size:
            self.done = True
        if self.time_index > self.diff_close.shape[0] - self.scope -1:
            self.done = True

        return self.state, self.reward, self.done, info

    def reset(self, random_starttime=True):
        self.done = False
        self.reward = 0.
        self.time_index = self.scope 
        self.state = self.diff_close[self.time_index - self.scope:self.time_index]
        
        if random_starttime:
            self.time_index += random.randint(0, self.num_ticks_train - self.scope)
        
        self.episode_init_time = self.time_index
        
        return self.state

    def seed(self):
        pass
# Adapted from: https://dbc-635ca498-e5f1.cloud.databricks.com/?o=445287446643905#notebook/4201196137758409/command/4201196137758410

class ExperienceReplay:
    def __init__(self, max_memory=100, discount=.9):
        self.max_memory = max_memory
        self.memory = list()
        self.discount = discount

    def remember(self, states, done):
        self.memory.append([states, done])
        if len(self.memory) > self.max_memory:
            del self.memory[0]

    def get_batch(self, model, batch_size=10):
        len_memory = len(self.memory)
        num_actions = model.output_shape[-1]

        env_dim = self.memory[0][0][0].shape[1]
        inputs = np.zeros((min(len_memory, batch_size), env_dim, 1))
        targets = np.zeros((inputs.shape[0], num_actions))
        for i, idx in enumerate(np.random.randint(0, len_memory, size=inputs.shape[0])):
            state_t, action_t, reward_t, state_tp1 = self.memory[idx][0]
            done = self.memory[idx][1]

            inputs[i:i + 1] = state_t
            # There should be no target values for actions not taken.
            targets[i] = model.predict(state_t)[0]
            Q_sa = np.max(model.predict(state_tp1)[0])
            if done: # if done is True
                targets[i, action_t] = reward_t
            else:
                # reward_t + gamma * max_a' Q(s', a')
                targets[i, action_t] = reward_t + self.discount * Q_sa
        return inputs, targets
# Adapted from: https://dbc-635ca498-e5f1.cloud.databricks.com/?o=445287446643905#notebook/4201196137758409/command/4201196137758410

# RL parameters
epsilon = .5  # exploration
min_epsilon = 0.1
max_memory = 5000
batch_size = 512
discount = 0.8

# Environment parameters
num_actions = 2  # [long, short]
episodes = 500 # 100000
episode_size = 1 * 1 * 60  # roughly an hour worth of data in each training episode

# Define state sequence scope (approx. 1 hour)
sequence_scope = 60
input_shape = (batch_size, sequence_scope, 1)

# Create Q Network
hidden_size = 128
model = Sequential()
model.add(Conv1D(32, (5), strides=2, input_shape=input_shape[1:], activation='relu'))
model.add(MaxPool1D(pool_size=2, strides=1))
model.add(BatchNormalization())
model.add(Conv1D(32, (5), strides=1, activation='relu'))
model.add(MaxPool1D(pool_size=2, strides=1))
model.add(BatchNormalization())
model.add(Flatten())
model.add(Dense(hidden_size, activation='relu'))
model.add(BatchNormalization())
model.add(Dense(num_actions))
opt = optimizers.Adam(lr=0.01)
model.compile(loss='mse', optimizer=opt)

# Define training interval
start = datetime.datetime(2010, 11, 15, 0, 0)
end = datetime.datetime(2018, 12, 31, 23, 59)

# Initialize Environment
env = MarketEnv(oilDF_py, start, end, episode_size=episode_size, scope=sequence_scope)

# Initialize experience replay object
exp_replay = ExperienceReplay(max_memory=max_memory, discount=discount)
WARNING:tensorflow:From /databricks/python/lib/python3.7/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
/databricks/python/lib/python3.7/site-packages/gym/logger.py:30: UserWarning: <span class="ansi-yellow-fg">WARN: Box bound precision lowered by casting to float32</span>
  warnings.warn(colorize('%s: %s'%('WARN', msg % args), 'yellow'))

Elephas

https://github.com/danielenricocahall/elephas

Elephas is a third party library that allows to train distributed Keras models on Spark. To run a distributed training session, a Keras model is first declared and compiled on one (singular) master node. Then, copies of the Master model are serialized and shipped to an arbitrary number of worker nodes. Elephas uses RDD's internally to make the data dynamically available to the workers when required. After gradient computating and the update of the weights, the updated model parameters are pushed to the master model.

For updating the parameters of the master_model, Elephas provides three modes, Synchronous, Asynchronous and HOGWILD (https://arxiv.org/abs/1106.5730).

Integrating Distributed model training in our RL-framework

Elephas supports in the current version only supervised model training. We therefore opt to distribute the supervised training step based on the experience replay buffer and keep the surrounding for loops from the previeous RL-implementation.

Training data conversion

Data must be provided as either RDD or pyspark dataframe (that will internally be converted to RDD's). A more elaborate pipeline might slice and evaluate replay buffer instances from the original dataframe, however, since most of our implementation expects numpy arrays, we convert the buffer to an RDD manually each step.

Elephas SparkModel for retraining in the RL-loop

When Elephas finished its training epochs (here, one Experiancereplay buffer training in one of the RL-loop sweeps), the used processes get terminated. This leads to a crash when trying to retrain a already trained model. As a workaround, we initialize theelephas in each training step newly by using the keras model from the previous training step.

# elephas variables
ele_epochs = 10
ele_batchsize = 32
ele_verbose = 0
ele_valsplit = 0.1

# Train
returns = []
for e in range(1, episodes):
    loss = 0.
    counter = 0
    reward_sum = 0.
    done = False
    
    state = env.reset()
    input_t = state.reshape(1, sequence_scope, 1) 
    
    while not done:     
        counter += 1
        input_tm1 = input_t
        # get next action
        if np.random.rand() <= epsilon:
            action = np.random.randint(0, num_actions, size=1)
        else:
            q = model.predict(input_tm1)
            action = np.argmax(q[0])

        # apply action, get rewards and new state
        state, reward, done, info = env.step(action)
        reward_sum += reward
        input_t = state.reshape(1, sequence_scope, 1)         

        # store experience
        exp_replay.remember([input_tm1, action, reward, input_t], done)

        # adapt model
        inputs, targets = exp_replay.get_batch(model, batch_size=batch_size)
        
        # elephas calls for distributed gradient optimization
        train_rdd = to_simple_rdd(sc, inputs, targets)  # note that we provide the spark context sc (sc variable automatically set in databricks)
        
        spark_model = SparkModel(model, frequency='epoch', mode='asynchronous')  # 'asynchronous', 'hogwild' or 'synchronous'
        spark_model.fit(train_rdd, epochs=ele_epochs, batch_size=ele_batchsize, verbose=ele_verbose, validation_split=ele_valsplit)
        model = spark_model._master_network # hacky!
        
        loss += model.train_on_batch(inputs, targets)
    
    
    print("Episode {:03d}/{:d} | Average Loss {:.4f} | Cumulative Reward {:.4f}".format(e, episodes, loss / counter, reward_sum))
    epsilon = max(min_epsilon, epsilon * 0.99)
    returns.append(reward_sum)

Notes to the elephas training

The pipeline in this notebook serves as a proof of concept to demonstrate how RL-training can be distributed on a spark cluster. During testing, we observed that the experience replay is a bottleneck during distributed model training, when comparing to running keras out-of the box in parallel.

Error that sometimes appears when running on databricks

We notice occasional crashes in the distributed training at line 180 in https://github.com/danielenricocahall/elephas/blob/master/elephas/spark_model.py, more precisely at rdd.mapPartitions(worker.train).collect(), with a Py4JJavaError. Restarting the cluster does not resolve the issue, however sometimes it was possible to re-run a training succesfully after a bit of time. We assume that it is connected with the jvm, but lacking precise insight regarding the nature of this bug.

ScaDaMaLe Course site and book

Resources

ScaDaMaLe Course site and book

Intrusion Detection

Group Project Team:

  • MohamedReza Faridghasemnia
  • Javad Forough
  • Quantao Yang
  • Arman Rahbar

**Video **

https://chalmersuniversity.box.com/s/hbfurlolj3ax8aarxow0fdcuzjxeo206

**Dataset Source **

https://www.unsw.adfa.edu.au/unsw-canberra-cyber/cybersecurity/ADFA-NB15-Datasets/

Problem Definition

With the evolution and pervasive usage of the computer networks and cloud environments, Cyber-attacks such as Distributed Denial of Service (DDoS) become major threads for such environments. For an example, DDoS attacks can prohibit normal usage of the web services through saturating their underlying system’s resources and even in most recent type of attacks namely Low-rate DDoS attacks, they drop the Quality of Service (QoS) of the cloud service providers significantly and bypass the detection systems by behaving similar to the normal users. Modern networked business environments require a high level of security to ensure safe and trusted communication of information between various organizations and to counter such attacks. An Intrusion Detection System is the foremost important step against such threads happening in the network and act as an adaptable safeguard technology for system security after traditional technologies fail. As the network attacks become more sophisticated, it is crucial to equip the system with the state-of-the-art intrusion detection systems. In this project, we investigate different types of learning-based Intrusion detection systems and evaluate them based on different metrics on a large benchmark dataset in a distributed manner using Apache Spark, which is an open-source distributed general-purpose cluster-computing framework.

Loading and Preprocessing Data

For detecting intrusion in the network, we use a dataset named UNSW-NB15, a collection of network traffic data collected by Australian Centre for Cyber Security (ACCS).

UNSW-NB15 Testbed UNSW-NB15 Testbed. Image from UNSW-NB15 website

The raw data of UNSW-NB15 Dataset is a pcap file of network traffic with the size of 100gb, that 49 features (including labels) is extracted from the dataset using Argus, Bro-IDS tools and twelve other algorithms. The extracted features desription is given below.

No.NameTypeDescription
0srcipnominalSource IP address
1sportintegerSource port number
2dstipnominalDestination IP address
3dsportintegerDestination port number
4protonominalTransaction protocol
5statenominalIndicates to the state and its dependent protocol, e.g. ACC, CLO, CON, ECO, ECR, FIN, INT, MAS, PAR, REQ, RST, TST, TXD, URH, URN, and (-) (if not used state)
6durFloatRecord total duration
7sbytesIntegerSource to destination transaction bytes
8dbytesIntegerDestination to source transaction bytes
9sttlIntegerSource to destination time to live value
10dttlIntegerDestination to source time to live value
11slossIntegerSource packets retransmitted or dropped
12dlossIntegerDestination packets retransmitted or dropped
13servicenominalhttp, ftp, smtp, ssh, dns, ftp-data ,irc and (-) if not much used service
14SloadFloatSource bits per second
15DloadFloatDestination bits per second
16SpktsintegerSource to destination packet count
17DpktsintegerDestination to source packet count
18swinintegerSource TCP window advertisement value
19dwinintegerDestination TCP window advertisement value
20stcpbintegerSource TCP base sequence number
21dtcpbintegerDestination TCP base sequence number
22smeanszintegerMean of the ?ow packet size transmitted by the src
23dmeanszintegerMean of the ?ow packet size transmitted by the dst
24trans_depthintegerRepresents the pipelined depth into the connection of http request/response transaction
25resbdylenintegerActual uncompressed content size of the data transferred from the server’s http service.
26SjitFloatSource jitter (mSec)
27DjitFloatDestination jitter (mSec)
28StimeTimestamprecord start time
29LtimeTimestamprecord last time
30SintpktFloatSource interpacket arrival time (mSec)
31DintpktFloatDestination interpacket arrival time (mSec)
32tcprttFloatTCP connection setup round-trip time, the sum of ’synack’ and ’ackdat’.
33synackFloatTCP connection setup time, the time between the SYN and the SYN_ACK packets.
34ackdatFloatTCP connection setup time, the time between the SYN_ACK and the ACK packets.
35issmips_portsBinaryIf source (1) and destination (3)IP addresses equal and port numbers (2)(4) equal then, this variable takes value 1 else 0
36ctstatettlIntegerNo. for each state (6) according to specific range of values for source/destination time to live (10) (11).
37ctflwhttp_mthdIntegerNo. of flows that has methods such as Get and Post in http service.
38isftploginBinaryIf the ftp session is accessed by user and password then 1 else 0.
39ctftpcmdintegerNo of flows that has a command in ftp session.
40ctsrvsrcintegerNo. of connections that contain the same service (14) and source address (1) in 100 connections according to the last time (26).
41ctsrvdstintegerNo. of connections that contain the same service (14) and destination address (3) in 100 connections according to the last time (26).
42ctdstltmintegerNo. of connections of the same destination address (3) in 100 connections according to the last time (26).
43ctsrc ltmintegerNo. of connections of the same source address (1) in 100 connections according to the last time (26).
44ctsrcdport_ltmintegerNo of connections of the same source address (1) and the destination port (4) in 100 connections according to the last time (26).
45ctdstsport_ltmintegerNo of connections of the same destination address (3) and the source port (2) in 100 connections according to the last time (26).
46ctdstsrc_ltmintegerNo of connections of the same source (1) and the destination (3) address in in 100 connections according to the last time (26).
47attack_catnominalThe name of each attack category. In this data set , nine categories e.g. Fuzzers, Analysis, Backdoors, DoS Exploits, Generic, Reconnaissance, Shellcode and Worms
48Labelbinary0 for normal and 1 for attack records

The data is accessible from the dataset source.

We used Spark csv for reading the dataset. In the following cell a spark dataframe from csv is created. In this dataset, the last label is the label, indicating whether an attack happened or not. The problem is a binary classification problem, which the machine learning algorithm has to predict the attack record label.

# load csv with pyspark
# File location and type
file_location = "/FileStore/tables/IDdataset.csv"
file_type = "csv"

# CSV options
infer_schema = "false"
first_row_is_header = "false"
delimiter = ","

# The applied options are for CSV files. For other file types, these will be ignored.
df = spark.read.format(file_type) \
  .option("inferSchema", infer_schema) \
  .option("header", first_row_is_header) \
  .option("sep", delimiter) \
  .load(file_location)

display(df)

Removing unnecessary data

In the dataaset, ip and port of source and destination are not useful, so we drop those columns.

#dropping ip and port of source and destination 
df= df.drop("_c0","_c1","_c2", "_c3", "_c47")

display(df)

Numerization

Now we have to change categorical data (that are columns 4,5,13) to number, that is called ordinal encoding, and we can do it by StringIndexer.

The next step is to convert all columns types to Double. It is neccesssary, as it seems pyspark returned a string dataframe from csv, and doesnot change data types for numbers.

#handling categorical data
from pyspark.ml.feature import StringIndexer


indexer = StringIndexer(inputCols=["_c4", "_c5", "_c13"], outputCols=["c4", "c5", "c13"])

dff = indexer.fit(df).transform(df)

dff = dff.drop("_c4", "_c5", "_c13")


#changing type to double
from pyspark.sql.types import DoubleType


for col in dff.columns:
  dff = dff.withColumn(col, dff[col].cast(DoubleType()))

Handling null values

Check which cells have null values

One another step in preprocessing is to check if the data has null values. For this, we use .isNull() over rows of each column, and count null values in each column.

#check if it has missing data

#showing number of null data  
from pyspark.sql.functions import isnan, when, count, col

for cl in dff.columns:
  dff.select([count(when(col(cl).isNull(),True))]).show()

Filling null values

We noticed that column 37(ctflwhttpmthd) has 1348145, column 38(isftplogin) has 1429879, and column 39(ctftp_cmd) has 1429879 null values. So we fill them by using Imputer function of pyspark. This function fill the missing values with the mean of the column.

#handling null data

from pyspark.ml.feature import Imputer

dff= Imputer(inputCols= dff.columns, outputCols=dff.columns).fit(dff).transform(dff)

#for cl in dff.columns:
#  dff.select([count(when(col(cl).isNull(),True))]).show()

Creating dataset

For creating dataset, we take the following steps:

Vectorizing

We firstly have to put all features into one big vector, using VectorAssembler. We take all the columns of data, except the first 4 columns(are irrelevant) an the last two (are the labels) into "features" column. Notice that VectorAssembler generates either Sparse, or Dense vectors, in favour of the memory.

Normalization

Next, we normalize data that is vectorized in one column. For this dataset, VEctorAssembler returned a sparse vector, and we chose a normalizer that is compatible with sparse vectors. So we used ml.feature.Normalizer for normalizing data.

Sparse to Dense

After normalization, we convert the sparse vectors of features to dense vectors. For this we defined a UDF function.

Selecting columns of features and labels

Finally, we select two columns in the dataframe to use in further steps, that are "labels", and "features".

from pyspark.ml.feature import StandardScaler, VectorAssembler
from pyspark.ml.feature import MinMaxScaler


from pyspark.sql import functions as F
from pyspark.ml.linalg import SparseVector, DenseVector,VectorUDT, Vector
from pyspark.sql import types as T
from pyspark.ml.feature import Normalizer


numCols = ['c4', 'c5', '_c6', '_c7', '_c8', '_c9', '_c10', '_c11', '_c12', 'c13', '_c14', '_c15', '_c16', '_c17', '_c18', '_c19', '_c20', '_c21', '_c22', '_c23', '_c24', '_c25', '_c26', '_c27', '_c28', '_c29', '_c30', '_c31', '_c32', '_c33', '_c34', '_c35', '_c36', '_c37', '_c38', '_c39', '_c40', '_c41', '_c42', '_c43', '_c44', '_c45', '_c46']


dfff = VectorAssembler(inputCols=numCols, outputCol="features").transform(dff)


nrm = Normalizer(inputCol="features", outputCol="features_norm", p=1).transform(dfff)



def sparse_to_array(v):
  v = DenseVector(v)
  new_array = list([float(x) for x in v])
  return new_array


sparse_to_array_udf = F.udf(sparse_to_array, T.ArrayType(T.FloatType()))
featArr = nrm.withColumn('featuresArray', sparse_to_array_udf('features_norm'))


featArr=featArr.withColumnRenamed("_c48", "labels")


trainSet = featArr.select('labels', "featuresArray")

display(trainSet)

Preparing the DataFrame for training classifers

In order to use a dataframe for training the classifiers in the Spark ML Library, we should have a particular format. Specifically, we need to have a single columns for all features and another column for the labels. In this section we first create the the desired format and then use the resulting dataframe for training different classifiers.

Based on the DataFrame created in the preprocessing step (trainSet), we first create an rdd from all available columns (featurestoassemble). To this end, we map all rows in trainSet using the method "functionForRdd".

features_to_assemble = []
for f in range(2,45):
  features_to_assemble.append('_'+str(f))
print(features_to_assemble)
['_2', '_3', '_4', '_5', '_6', '_7', '_8', '_9', '_10', '_11', '_12', '_13', '_14', '_15', '_16', '_17', '_18', '_19', '_20', '_21', '_22', '_23', '_24', '_25', '_26', '_27', '_28', '_29', '_30', '_31', '_32', '_33', '_34', '_35', '_36', '_37', '_38', '_39', '_40', '_41', '_42', '_43', '_44']
# random forest implementation
def functionForRdd(r):
  l = []
  l.append(r[0])
  l = l+list(r[1])
  return l

trainSetRdd = trainSet.rdd.map(functionForRdd)
randomForestDf = trainSetRdd.toDF()

Using VectorAssembler for creating the DataFrame

The best option to create the required format, is using VectorAssembler. Calling the transform function of the assembler object gives us a new DataFrame which includes a new columns called "features". This column together with the labels column ("_1") will be used for training. We also divide our data into train and test in the cell below.

assembler = VectorAssembler(
    inputCols=features_to_assemble,
    outputCol="features")

randomForestDf = assembler.transform(randomForestDf)
train, test = randomForestDf.randomSplit([0.7, 0.3], seed = 2018)
newtrainSet = train.sample(fraction=0.00001)

RandomForestClassifier

The first classifier we use is the RandomForestClassifier avaiable in Spark ML. As mentioned before this classifier requires a single columns for all attributes (features) and a label column (_1). We specify these columns before training and then we use the method fit to train the classifer.

from pyspark.ml.classification import RandomForestClassifier
rf = RandomForestClassifier(featuresCol = 'features', labelCol = '_1')
rfModel = rf.fit(train)

Evaluation

In this part we use the BinaryClassificationMetrics and MulticlassMetrics for evaluating our classifiers. First we need to use our trained model to predict the labels in the test DataFrame. To this aim, we use the transform method. This method add some columns to the test DataFrame. We use the prediction columns which is the predicted classes for data pionts in our test set. BinaryClassificationMetrics and MulticlassMetrics require an rdd of (prediction, truelabel) tuples. We create this rdd using the map function on prediction (rdd) and then calculate different metrics.

from pyspark.mllib.evaluation import BinaryClassificationMetrics

prediction = rfModel.transform(test)
predictionAndLabels = prediction.rdd.map(lambda r: (r.prediction, r._1))

metrics = BinaryClassificationMetrics(predictionAndLabels)
print("Area under ROC = %s" % metrics.areaUnderROC)

from pyspark.mllib.evaluation import MulticlassMetrics
metrics2 = MulticlassMetrics(predictionAndLabels)
print("Precions = %s" % metrics2.precision(1.0))
print("Recall = %s" % metrics2.recall(1.0))
Area under ROC = 0.9893749378235688
Precions = 0.921533690334014
Recall = 0.9909789543458447
print("Accuracy = %s" % metrics2.accuracy)
Accuracy = 0.9881770066509254

Logistic Regression classifier

We have trained and tested the Logistic Regression classifer on our training and testing set respectively as follows:

#Logistic Regression Classification
from pyspark.ml.classification import LogisticRegression
logr = LogisticRegression(featuresCol = 'features', labelCol = '_1')
logrmodel = logr.fit(train)
from pyspark.mllib.evaluation import BinaryClassificationMetrics

lr_prediction = logrmodel.transform(test)

Logistic Regression classifier evaluation

We have evaluated the Logistic Regression classifier using binary and also multi-class evaluation metrics as follows:

#Logistic Regression Evaluation
lr_predictionAndLabels = lr_prediction.rdd.map(lambda r: (r.prediction, r._1))


metrics = BinaryClassificationMetrics(lr_predictionAndLabels)
print("Area under ROC = %s" % metrics.areaUnderROC)

from pyspark.mllib.evaluation import MulticlassMetrics
metrics2 = MulticlassMetrics(lr_predictionAndLabels)
print("Precions = %s" % metrics2.precision(1.0))
print("Recall = %s" % metrics2.recall(1.0))
Area under ROC = 0.9814394501866226
Precions = 0.9305169153391484
Recall = 0.9734132902477421

Gradient-Boosted Trees (GBTs) classifier

We have trained and tested the GBTs classifer on our training and testing set respectively as follows:

from pyspark.ml.classification import GBTClassifier

gbt = GBTClassifier(featuresCol = 'features', labelCol = '_1', maxDepth=5)
gbtmodel = gbt.fit(train)
from pyspark.mllib.evaluation import BinaryClassificationMetrics

gbt_prediction = gbtmodel.transform(test)

Gradient-Boosted Trees (GBTs) classifier evaluation

We have evaluated the GBTs classifier using binary and also multi-class evaluation metrics as follows:

gbt_predictionAndLabels = gbt_prediction.rdd.map(lambda r: (r.prediction, r._1))

metrics = BinaryClassificationMetrics(gbt_predictionAndLabels)
print("Area under ROC = %s" % metrics.areaUnderROC)

from pyspark.mllib.evaluation import MulticlassMetrics
metrics2 = MulticlassMetrics(gbt_predictionAndLabels)
print("Precions = %s" % metrics2.precision(1.0))
print("Recall = %s" % metrics2.recall(1.0))
Area under ROC = 0.9801886786459773
Precions = 0.962630715074687
Recall = 0.9658111691109454
# import sys
# # !{sys.executable} -m pip install tensorflow
# # !{sys.executable} -m pip uninstall keras
# # !{sys.executable} -m pip install keras
# # !{sys.executable} -m pip install dist-keras
# # !{sys.executable} -m pip install elephas


# import keras
# from keras.optimizers import *
# from keras.models import Sequential
# from keras.layers import Dense, Dropout, Activation

# from distkeras.trainers import *
# from distkeras.predictors import *
# from distkeras.transformers import *
# from distkeras.evaluators import *
# from distkeras.utils import *

# from pyspark.ml.linalg import Vectors
# from elephas.utils.rdd_utils import to_simple_rdd
# from elephas.spark_model import SparkModel

# trainSett = trainSet.rdd.map(lambda row: Row(
#     labels=row["labels"], 
#     featuresArray=Vectors.dense(row["featuresArray"])
# )).toDF()

# inpDim= len(trainSett.select("featuresArray").first()[0])

# inpDim= len(train.select("features").first()[0])

# model = Sequential()
# model.add(Dense(128, input_dim = inpDim,activation='relu',use_bias=True))
# model.add(Dropout(0.5))
# model.add(Dense(1,activation='sigmoid',use_bias=True)) 
# model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# print("compile done")
# # model.build()
# print(model.summary())
# trainer = SingleTrainer(keras_model=model, worker_optimizer='adam', loss='binary_crossentropy', num_epoch=1)
# print("trainer done")  
# trained_model = trainer.train(train)#newtrainSet
# print("training done")
# predictor = ModelPredictor(keras_model=trained_model)
# ff=predictor.predict(test.take(50)[15].features)

Multilayer Perceptron Classifier

MLPC consists of multiple layers of nodes. Each layer is fully connected to the next layer in the network. Following code snippet is the implementation of such a model in pyspark. The input layer and the output layer have the size of 43 and 2, with two hidden layers of 5 and 4 neurons respectively.

# Multilayer Perceptron Classifier
from pyspark.ml.classification import MultilayerPerceptronClassifier
from pyspark.ml.evaluation import MulticlassClassificationEvaluator

# specify layers for the neural network:
# input layer of size 43 (features), two intermediate of size 5 and 4
# and output of size 2 (classes)
layers = [43, 5, 4, 2]

# create the trainer and set its parameters
mlpc = MultilayerPerceptronClassifier(maxIter=100, layers=layers, blockSize=128, seed=1234, featuresCol = 'features', labelCol = '_1')

# train the model
mlpcModel = mlpc.fit(train)

Finally, a trained MLPC model is returned that is ready to evaluate on the test data.

# compute accuracy on the test set
testLabeled = test.withColumnRenamed( '_1', "label")
mlpc_prediction = mlpcModel.transform(testLabeled)

The model is tested using MulticlassClassificationEvaluator with accuracy as an evaluation metric.

predictionAndLabels = mlpc_prediction.select("prediction", "label")
evaluator = MulticlassClassificationEvaluator(metricName="accuracy")
print("Test set accuracy = " + str(evaluator.evaluate(predictionAndLabels)))
Test set accuracy = 0.9290082871081126

Decision Tree

The spark.ml implementation supports decision trees for binary and multiclass classification and for regression.

# Decision Tree
from pyspark.ml.classification import DecisionTreeClassifier

# Train a DecisionTree model.
dt = DecisionTreeClassifier(featuresCol = 'features', labelCol = '_1')
dtModel = dt.fit(train)

The decision tree model is tested for ROC, Precision, and recall. The area under ROC is 0.9738, Precision is 0.9626 and recall is 0.9531.

# Decision Tree Metrics
prediction = dtModel.transform(test)
predictionAndLabels = prediction.rdd.map(lambda r: (r.prediction, r._1))

from pyspark.mllib.evaluation import BinaryClassificationMetrics
metrics = BinaryClassificationMetrics(predictionAndLabels)
print("Area under ROC = %s" % metrics.areaUnderROC)

from pyspark.mllib.evaluation import MulticlassMetrics
metrics2 = MulticlassMetrics(predictionAndLabels)
print("Precisions = %s" % metrics2.precision(1.0))
print("Recall = %s" % metrics2.recall(1.0))
Area under ROC = 0.9738847246751252
Precisions = 0.9626855522893936
Recall = 0.9531237053608418

ScaDaMaLe Course site and book

Robert Gieselmann and Vladislav Polianskii

Video of project presentation

Density estimation is a wide sub-area of statistics, tasked with understanding an underlying probability distribution of a given set of points, sampled from an unknown distribution. It can be used as a way of data investigation, like determining the location of low- and high-density regions in data, clusters and outliers, as well as for visualization purposes.

A histogram can be considered as a simple density estimator. Other well-known methods include: - a k-nearest-neighbor density estimator, which describes the density p() at a point x as \[p(x) \cong \frac{1}{d_k(x)}\] where d_k(x) is the distance to the kth nearest neighbor of x; - a kernel density estimator, which requires a selection of a kernel probability distribution K and a bandwidth h and essentially places the distributions at the data points, giving the density estimation \[p(x) \cong \sum_i K(\frac{x - x_i}{h})\]

All of the mentioned methods are sensitive to parameter selection, such as choosing the right number of neighbors or a fitting bandwidth.

Voronoi diagrams are widely used in many areas, including computer science, and provide a natural cell decomposition of space based on the nearest-neighbor rule. For a given data point x, its corresponding cell contains all the points of the metric space, for which x is the closest point among all in the dataset.

An example of a 2D Voronoi diagram built over a set of points sampled from a normal distribution can be seen below in the methodology part.

One of the biggest drawbacks of Voronoi diagrams is their geometric complexity, which grows exponentially with dimensionality and essentially prevents their exact computation in dimensions above 6 for a reasonable number of points. In the worst case, the number of geometric elements of the diagram (such as Voronoi vertices, edges and polyhedra of different dimensions that arise on the cell boundaries) grows as

\[O(n^{\lceil{d/2}\rceil})\]

Our method. In this work, we use some intuition about the Voronoi diagrams to develop a new method of density estimation. In addition, we apply a methodology from our previous work which allows one to work with Voronoi diagrams in high dimensions without their explicit construction.

Intuition: if we construct a Voronoi diagram over a set of points sampled from an unknown distribution then Voronoi cells in regions with higher density will be of a smaller size.

Consider the image below, which depicts a Voronoi diagram in a two-dimensional space built over points sampled from a Gaussian distribution. Voronoi cells in the center of the distribution appear naturally smaller in comparison with other cells, and the cell size increases when we move away from the center.

This intuition follows, in a way, a one-nearest-neighbor density estimator: the distance d to the nearest neighbor is inversly proportional to the estimated density of the point, and at the same time, a ball of radius d/2 centered at the query point always fits into (and touches the boundary of) the Voronoi cell.

On the discussed image, one of the cells is marked with a blue color. Assume that the point inside that cell is our query point, at which we want to understand the density, and all other points are the training (unlabeled) data that provides information about the density. Then, let us try to find a reasonable approximation of the density in a form of

\[p(x) = \frac{c}{size(Cell(x))}\]

where c is some constant, Cell denotes the Voronoi cell of x, and size is some measure of a cell.

Note: at any moment, the Voronoi diagram consists of only one query point and all dataset points.

Volume function

Let us assume for a while that cell's geometry is known to us. What would be a natural way to describe the size of the cell?

Perhaps, one of the first ideas that comes to mind is to use the cell's volume as a size measure. Here we run into an issue of infinite cells, whose volume would also be infinite. Potentially, this could be resolved by computing a weighted volume with an integrable weight function that rapidly decays at infinity.

However, instead, we propose a way to describe the size via volume functions, inspired by how alpha-complexes are motivated and constructed in the area of topological data analysis, where we consider a set of balls of an increasing radius with intersection with voronoi cells:

We define the volume function as follows:

\[\overline{Vol}_d(x)(r) = \frac{Vol_d(Cell(x) \cap B_r(x))}{Vol_d(B_r)}\]

Here, r is a positive radius, Vol() denotes the standard d-dimensional volume, and *B_r(x)* is a d-dimensional ball of radius r centered at x. The volume function of x returns a function that takes a radius r and returns a ratio of the volume of the intersection of the ball with the cell to the whole volume of the ball. Clearly, at the limit to zero, the ratio is equal to 1 (when the ball fully fits inside the cell), but starts to decrease as soon as parts of the ball start to leave the boundary.

Below are two images. On the left, a simple rectangular Voronoi cell with a point, generating it. On the right, a depiction of the volume function for this cell.

If we go into higher dimensions, we will not be able to see the steps that the function makes anymore. Below is an example, which we approximated (with a method described below) on MNIST data (784-dimensional) some time ago of volume functions for different data points:

On the picture above, we can guess that, for example, the point with the light-blue volume curve is located in a lower-density region than other given points, based on the fact that its volume function is greater than other functions at every radius.

A couple of things to consider here. 1. If a cell is infinite, then its volume function will not tend to 0 at infinity. Instead, it will tend to the angular size of this infinity. 2. If one cell can be placed inside another cell, identifying their generator points and rotating arbitrarily, the first volume function will be below the second volume function.

The second bullet point provides an idea that maybe we want to integrate this volume functions and compare them: a function with a larger integral would denote a lower-density region. At the same time, the first bullet point tells us that the functions are not always integrable. Thus, in this project we do the following modifications: we do not consider the directions of the balls which end up in infinity. To be more precise, we replace *B_r* with its sector where the voronoi cell is finite, in the formula for the volume function. This helps to mitigate the integrability issues.

Before we go into details about the computational aspects, we need to mention another modification to the formula. Instead of computing the d-dimensional volumes of balls, we decided to compute the (d-1)-dimensional volumes of spheres (or, the surface area of the balls). This modification makes the computation much easier. For example, the approximations of the volume functions become piecewise-constant.

Therefore, the formula for the size(x) becomes:

\[size(x) = \int_0^{inf}{\overline{Vol}{d-1}(x)(r) dr} = \int_0^{inf}{ \frac{Vol{d-1}(Cell(x) \cap \hat{S}r(x))}{Vol{d-1}( \hat{S}_r )} dr}\]

where *S_r(x)* denotes a hypersphere of radius r, and a "^" denotes that we only consider sections of a sphere where the cell is finite.

Integral computation.

We perform a Monte-Carlo sampling integration method to approximate the volume function, a motivation for which is described in detail in one of our earlier papers about Voronoi Boundary Classification (http://proceedings.mlr.press/v97/polianskii19a.html).

In short details, we sample random rays in uniform directions (equivalently, we sample points uniformly on the unit hypersphere), starting from the query point. For each ray, we record where it hits the boundary of the Voronoi cell. The length is computed by the following equation:

\[l(x, m) = \min_{i=1..N, \langle m, x - x_i \rangle > 0} \frac{\lVert x - x_i \rVert^2}{2\langle m, x - x_i \rangle }\]

Here, x is the origin of the ray (the generator/query point), m is the directional unit vector, *x_i* are other data points. The "infinite" directions are excluded. The condition in the minimum signifies, that we are only interested in the positive length, i.e. we can't find an intersection behind the ray.

After casting T rays from a point, we can approximate the volume function as:

\[\overline{Vol}{d-1}(x)(r) = \frac{1}{T}\sum{t=1}^{T} \mathbb{1}\left[l(x, m_t) \ge r \right]\]

The integral of the function can be easily computed as a sum of all lengths:

\[size(x) = \frac{1}{T}\sum_{t=1}^{T} l(x, m_t)\]

And, our (unnormalized) density:

\[\tilde{p}(x) = \frac{T}{\sum_{t=1}^{T} l(x, m_t)}\]

Overall, the method's compexity with some optimizations is:

\[O(NMT + NMD + NTD + MTD)\]

where N is the number of train points, M is the number of query points, T is the number of rays from each point and D is data dimensionality.

Ranking loss.

At the moment, we do not have any proofs that this indeed generates an unnormalized approximation for the density.

However, we are fairly certain (though also without a proof) that the approximation, when the dataset size tends to infinity, approximates the correct "ranking" of the estimates. Namely,

\[p(x_1) < p(x_2) \Leftrightarrow \tilde{p}(x_1) < \tilde{p}(x_2)\]

with probability 1 when data size is large enough. Here p is the real density used for point sampling, and \tilde{p} is the approximation.

This quality is meaningful in tasks when we need to sort points according to their density. For example, if we want to exclude noise (say, 5% of the all points with the lowest density), or use for density filtration in topological data analysis.

A measure that we use to estimate how well we approximate the correct density ranking works as following: 1. Sort available query points according to their true density. 2. Sort available query points according to the approximated density. 3. Find the number of inverses (swaps of two consecutive elements) required to obtain the first sequence of points from the second one.

The can easily be counted with a merge-sort algorithm in n log n time, but for simplicity and testing purposes (also because we use python for that) we do it in a simple quadratic time.

ScaDaMaLe Course site and book

import org.apache.spark.mllib.random.RandomRDDs
import org.apache.spark.mllib.feature.Normalizer
import org.apache.spark.rdd.RDD
import breeze.linalg._
import breeze.numerics._
import org.apache.spark.mllib.random.RandomRDDs
import org.apache.spark.mllib.feature.Normalizer
import org.apache.spark.rdd.RDD
import breeze.linalg._
import breeze.numerics._

Constants required for the method.

// Constants
val N = 250 // train size
val M = 250 // test size
val D = 2 // dimensionality
val T = 500 // number of rays
val one_vs_all = true

assert((!one_vs_all) || N == M)
N: Int = 250
M: Int = 250
D: Int = 2
T: Int = 500
one_vs_all: Boolean = true

Generate points from standard Gaussian distribution.

val train_data = RandomRDDs.normalVectorRDD(sc, N, D).zipWithIndex().map { case (v, i) => (i, new DenseVector(v.toArray)) }
val test_data = if(one_vs_all) train_data else RandomRDDs.normalVectorRDD(sc, M, D).zipWithIndex().map { case (v, i) => (i, new DenseVector(v.toArray)) }
train_data: org.apache.spark.rdd.RDD[(Long, breeze.linalg.DenseVector[Double])] = MapPartitionsRDD[10486] at map at command-1767923094595286:1
test_data: org.apache.spark.rdd.RDD[(Long, breeze.linalg.DenseVector[Double])] = MapPartitionsRDD[10486] at map at command-1767923094595286:1

Generate T random rays

def get_uni_sphere() = {
  var u = RandomRDDs.normalVectorRDD(sc, T, D)
  u = new Normalizer().transform(u)
  var t = u.zipWithIndex().map { case (v, i) => (i, new DenseVector(v.toArray)) }
  t
}
  
val rays = get_uni_sphere()
get_uni_sphere: ()org.apache.spark.rdd.RDD[(Long, breeze.linalg.DenseVector[Double])]
rays: org.apache.spark.rdd.RDD[(Long, breeze.linalg.DenseVector[Double])] = MapPartitionsRDD[10490] at map at command-685894176423986:4

Compute optimizations: all squared distances and all dot products of points with directions vectors.

def compute_dst_sq() = { // (N, M)
  // dst[n, m] = |x_n - x'_m|^2
  val dst = train_data.cartesian(test_data).map { case ((n, train_vec), (m, test_vec)) => ((n, m), sum(((train_vec - test_vec) *:* (train_vec - test_vec)) ^:^ 2.0) ) }
  dst
}

def compute_pu(data: RDD[(Long, DenseVector[Double])]) = { // (data.N, T)
  // pu[n, t] = <data_n, ray_t>
  val pu = data.cartesian(rays).map { case ((n, data_vec), (t, ray_vec)) => ((n, t), data_vec dot ray_vec) }
  pu
}

val dst = compute_dst_sq()
val pu_train = compute_pu(train_data)
val pu_test = compute_pu(test_data)
compute_dst_sq: ()org.apache.spark.rdd.RDD[((Long, Long), Double)]
compute_pu: (data: org.apache.spark.rdd.RDD[(Long, breeze.linalg.DenseVector[Double])])org.apache.spark.rdd.RDD[((Long, Long), Double)]
dst: org.apache.spark.rdd.RDD[((Long, Long), Double)] = MapPartitionsRDD[10492] at map at command-685894176423990:3
pu_train: org.apache.spark.rdd.RDD[((Long, Long), Double)] = MapPartitionsRDD[10494] at map at command-685894176423990:9
pu_test: org.apache.spark.rdd.RDD[((Long, Long), Double)] = MapPartitionsRDD[10496] at map at command-685894176423990:9

Compute the lengths of all rays. The most expensive step.

def compute_ray_lengths() = { // (M, T)
  // lengths[m, t, n] = dst[n, m] / (2 * (pu_train[n, t] - pu_test[m, t]))
  def compute_length(n: Long, m: Long, dst_val: Double, pu_train_val: Double, pu_test_val: Double) = {
    if (one_vs_all && n == m) {
      Double.PositiveInfinity
    } else {
      val res = dst_val / (2 * (pu_train_val - pu_test_val))
      if (res < 0) Double.PositiveInfinity else res
    }
  }
  
  def my_min(a: Double, b: Double) = {min(a, b)}
        
  val lengths = dst.cartesian(sc.range(0, T))
    .map { case (((n, m), dst_val), t) => ((n, t), (m, dst_val)) }  
    .join(pu_train) 
    .map { case ((n, t), ((m, dst_val), pu_train_val)) => ((m, t), (n, dst_val, pu_train_val)) }
    .join(pu_test) 
    .map { case ((m, t), ((n, dst_val, pu_train_val), pu_test_val)) => ((m, t), compute_length(n, m, dst_val, pu_train_val, pu_test_val)) } 
    .aggregateByKey(Double.PositiveInfinity)(my_min, my_min)  
  lengths
}

val lengths = compute_ray_lengths()
compute_ray_lengths: ()org.apache.spark.rdd.RDD[((Long, Long), Double)]
lengths: org.apache.spark.rdd.RDD[((Long, Long), Double)] = ShuffledRDD[10509] at aggregateByKey at command-685894176423991:20

Compute the approximated weights.

def compute_weights() = { // (M, )
  def agg_f(a: (Double, Double), b: (Double, Double)) = { (a._1 + b._1, a._2 + b._2) }
  
  val weights = lengths.map { case ((m, t), length) => (m, if (!length.isInfinity) (1.0, length) else (0.0, 0.0)) }
    .aggregateByKey((0.0, 0.0))(agg_f, agg_f)
    .map { case (m, (val1, val2)) => (m, if (val1 > 0) val1 / val2 else 0.0) }
  weights
}

val weights = compute_weights()
compute_weights: ()org.apache.spark.rdd.RDD[(Long, Double)]
weights: org.apache.spark.rdd.RDD[(Long, Double)] = MapPartitionsRDD[10512] at map at command-685894176424002:6

Save obtained data in csv.

Note: we repartition the tables here to work with one csv only; this should be removed for larger data.

def save_data(name: String, data: RDD[(Long, DenseVector[Double])]) = {
  data.map { case (k, v) => k.toString() + "," + v.toArray.mkString(",")}
    .toDF.repartition(1).write.format("csv").mode(SaveMode.Overwrite).option("quote", " ").save("dbfs:/FileStore/group17/data/" + name)
}

def save_weights(name: String, data: RDD[(Long, Double)]) = {
  data.map { case (k, v) => k.toString() + "," + v.toString}
    .toDF.repartition(1).write.format("csv").mode(SaveMode.Overwrite).option("quote", " ").save("dbfs:/FileStore/group17/data/" + name)
}

save_data("gaussian_train", train_data)
save_data("gaussian_test", test_data)
save_weights("gaussian_weights", weights)
save_data: (name: String, data: org.apache.spark.rdd.RDD[(Long, breeze.linalg.DenseVector[Double])])Unit
save_weights: (name: String, data: org.apache.spark.rdd.RDD[(Long, Double)])Unit

ScaDaMaLe Course site and book

Here we test the results for normally distributed points.

import numpy as np
import os
import shutil
import glob
import matplotlib.pyplot as plt
import scipy as sp
import scipy.stats as stats
os.listdir('/dbfs/FileStore/group17/data/')

Reading the files.

def read_csv(data_name):
  results = glob.glob('/dbfs/FileStore/group17/data/' + data_name + '/*.csv')
  assert(len(results) == 1)
  filepath = results[0]

  csv = np.loadtxt(filepath, delimiter=',')
  csv = csv[csv[:, 0].argsort()]
  return csv
train_data = read_csv('gaussian_train')
test_data = read_csv('gaussian_test')
weights = read_csv('gaussian_weights')
def display_density(data, weights):
  fig = plt.figure(figsize=(10, 10))
  plt.scatter(data[:, 0], data[:, 1], weights / np.max(weights) * 50)
  display(fig)

True density visualization.

true_density = stats.multivariate_normal.pdf(test_data[:, 1:], mean=np.zeros(2))

display_density(test_data[:, 1:], true_density)

Density, obtained from our method.

display_density(test_data[:, 1:], weights[:, 1])

Density, obtained from kernel density estimation with tophat kernel.

from sklearn.neighbors.kde import KernelDensity
kde = KernelDensity(kernel='tophat', bandwidth=0.13).fit(train_data[:, 1:])
kde_weights = kde.score_samples(test_data[:, 1:])
kde_weights = np.exp(kde_weights)

display_density(test_data[:, 1:], kde_weights)

Density, obtained from kernel density estimation with gaussian kernel.

kde = KernelDensity(kernel='gaussian', bandwidth=0.13).fit(train_data[:, 1:])
gauss_weights = kde.score_samples(test_data[:, 1:])
gauss_weights = np.exp(kde_weights)

display_density(test_data[:, 1:], gauss_weights)

A simple computation of the number of inverses.

def rank_loss(a, b):
  n = a.shape[0]
  assert(n == b.shape[0])
  ans = 0
  for i in range(n):
    for j in range(i + 1, n):
      if (a[i] - a[j]) * (b[i] - b[j]) < 0:
        ans += 1
  return ans

Comparison of losses. On this one test, we get the smallest loss.

One of the immediate futher works: do a proper statistical comparison, also on different sizes of data.

rank_loss(weights[:, 1], true_density)
rank_loss(kde_weights, true_density)

rank_loss(gauss_weights, true_density)

ScaDaMaLe Course site and book

Robotics Dataset

The estimation of probability density functions in a configuration space is of fundamental importance for many applications in probabilistic robotics and sampling-based robot motion planning.

Why is this application relevant? Standard sampling-based motion planners such as RRTConnect randomly explore the search space to iteratively build up a solution path. To speed up the planning it is common to use heuristics to explore the space in an informed way. The estimated densities are useful for designing such heurisitics. High-density regions might for example indicate narrow passages in the search space.

In the following we are going to apply the previously introduced algorithm to estimate densities of points in the configuration space of a multi-joint articulated robot arm. As shown in the figure below, the robot consists of 10 rotational joints and is placed in a 2-dim workspace. Several workspace obstacles are placed in the scene.

We ran RRT-Connect (a well-known shortest path motion planner) for different intial and goal configuration of the robot. The robot always starts in the right half of the workspace while the goal lies within one of the narrow passages as depicted in the figure.

To generate a dataset, we stitched all configurations from all planned paths together to one collection of joint configurations. Our goal is to estimate the density of robot configurations as generated by the RRTConnect motion planner. Originally, we used a dataset of ~125k points in 10 dimensions. Unfortunately, we observed that the current implementation does not scale well to such large dataset. For the scope of this project we instead run the method for 1000 points. Scaling up the implementation to larger dataset will be done in future work.

Here are some examples of paths found by the planner (red -> final configuration, black -> initial configuration, green-> intermediate confgurations along the path):

# # Read data from file
# joint_centers_all = spark.read.format("csv").load("dbfs:/FileStore/shared_uploads/robert.gieselmann@gmail.com/robotics_dataset_joint_centers.csv",inferSchema =True,header=False)
# joint_centers_to_plot = np.reshape(np.array(joint_centers_all.collect()), (-1, 2))

# # Plot 2d histogram of joint center positions
# f = plt.figure()
# plt.hist2d(joint_centers_to_plot[:,0], joint_centers_to_plot[:,1], bins=250)
# plt.xlabel("x")
# plt.ylabel("y")
# plt.title("Distribution of joint center coordinates")

# # Display figure
# display()
#import os
#os.remove("/dbfs/FileStore/group17/data/robotics_test/joint_configs_test.csv")
#os.remove("/dbfs/FileStore/group17/data/robotics_train/joint_configs_train.csv")
#os.listdir("/dbfs/FileStore/group17/data/robotics_train")
#os.rename("/dbfs/FileStore/group17/data/robotics", "/dbfs/FileStore/group17/data/robotics_train")
import org.apache.spark.mllib.random.RandomRDDs
import org.apache.spark.mllib.feature.Normalizer
import org.apache.spark.rdd.RDD
import breeze.linalg._
import breeze.numerics._
import org.apache.spark.mllib.random.RandomRDDs
import org.apache.spark.mllib.feature.Normalizer
import org.apache.spark.rdd.RDD
import breeze.linalg._
import breeze.numerics._
// Constants
val N = 1000 // train size
val M = 100 // test size
val D = 10 // dimensionality
val T = 100 // number of rays
val one_vs_all = true
N: Int = 1000
M: Int = 100
D: Int = 10
T: Int = 100
one_vs_all: Boolean = true
// Read the files from csv and convert to RDD
val df_train = spark.read.option("inferSchema", "true").option("header", "false").format("csv").load("/FileStore/group17/data/robotics_train/joint_configs_train.csv")
val df_test = spark.read.option("inferSchema", "true").option("header", "false").format("csv").load("/FileStore/group17/data/robotics_test/joint_configs_test.csv")
df_train: org.apache.spark.sql.DataFrame = [_c0: double, _c1: double ... 8 more fields]
df_test: org.apache.spark.sql.DataFrame = [_c0: double, _c1: double ... 8 more fields]
// Convert to RDD
val rdd_train = df_train.rdd.map(_.toSeq.toArray.map(_.toString.toDouble))
val rdd_test = df_train.rdd.map(_.toSeq.toArray.map(_.toString.toDouble))

// Convert to Array[(Long, DenseVector)]
val train_data = rdd_train.zipWithIndex().map { case (v, i) => (i, new DenseVector(v.toArray)) }
val test_data = if(one_vs_all) train_data else rdd_test.zipWithIndex().map { case (v, i) => (i, new DenseVector(v.toArray)) }
rdd_train: org.apache.spark.rdd.RDD[Array[Double]] = MapPartitionsRDD[2570] at map at command-3389902380791479:2
rdd_test: org.apache.spark.rdd.RDD[Array[Double]] = MapPartitionsRDD[2571] at map at command-3389902380791479:3
train_data: org.apache.spark.rdd.RDD[(Long, breeze.linalg.DenseVector[Double])] = MapPartitionsRDD[2573] at map at command-3389902380791479:6
test_data: org.apache.spark.rdd.RDD[(Long, breeze.linalg.DenseVector[Double])] = MapPartitionsRDD[2573] at map at command-3389902380791479:6
train_data.collect
def get_uni_sphere() = {
  var u = RandomRDDs.normalVectorRDD(sc, T, D)
  u = new Normalizer().transform(u)
  var t = u.zipWithIndex().map { case (v, i) => (i, new DenseVector(v.toArray)) }
  t
}

val rays = get_uni_sphere()
get_uni_sphere: ()org.apache.spark.rdd.RDD[(Long, breeze.linalg.DenseVector[Double])]
rays: org.apache.spark.rdd.RDD[(Long, breeze.linalg.DenseVector[Double])] = MapPartitionsRDD[2577] at map at command-3389902380791431:4
def compute_dst_sq() = { // (N, M)
  // dst[n, m] = |x_n - x'_m|^2
  val dst = train_data.cartesian(test_data).map { case ((n, train_vec), (m, test_vec)) => ((n, m), sum(((train_vec - test_vec) *:* (train_vec - test_vec)) ^:^ 2.0) ) }
  dst
}

def compute_pu(data: RDD[(Long, DenseVector[Double])]) = { // (data.N, T)
  // pu[n, t] = <data_n, ray_t>
  val pu = data.cartesian(rays).map { case ((n, data_vec), (t, ray_vec)) => ((n, t), data_vec dot ray_vec) }
  pu
}

val dst = compute_dst_sq()
val pu_train = compute_pu(train_data)
val pu_test = compute_pu(test_data)
compute_dst_sq: ()org.apache.spark.rdd.RDD[((Long, Long), Double)]
compute_pu: (data: org.apache.spark.rdd.RDD[(Long, breeze.linalg.DenseVector[Double])])org.apache.spark.rdd.RDD[((Long, Long), Double)]
dst: org.apache.spark.rdd.RDD[((Long, Long), Double)] = MapPartitionsRDD[2579] at map at command-3389902380791475:3
pu_train: org.apache.spark.rdd.RDD[((Long, Long), Double)] = MapPartitionsRDD[2581] at map at command-3389902380791475:9
pu_test: org.apache.spark.rdd.RDD[((Long, Long), Double)] = MapPartitionsRDD[2583] at map at command-3389902380791475:9
def compute_ray_lengths() = { // (M, T)
  // lengths[m, t, n] = dst[n, m] / (2 * (pu_train[n, t] - pu_test[m, t]))
  def compute_length(n: Long, m: Long, dst_val: Double, pu_train_val: Double, pu_test_val: Double) = {
    if (one_vs_all && n == m) {
      Double.PositiveInfinity
    } else {
      val res = dst_val / (2 * (pu_train_val - pu_test_val))
      if (res < 0) Double.PositiveInfinity else res
    }
  }

  def my_min(a: Double, b: Double) = {min(a, b)}

  val lengths = dst.cartesian(sc.range(0, T))
    .map { case (((n, m), dst_val), t) => ((n, t), (m, dst_val)) }  
    .join(pu_train)
    .map { case ((n, t), ((m, dst_val), pu_train_val)) => ((m, t), (n, dst_val, pu_train_val)) }
    .join(pu_test)
    .map { case ((m, t), ((n, dst_val, pu_train_val), pu_test_val)) => ((m, t), compute_length(n, m, dst_val, pu_train_val, pu_test_val)) }
    .aggregateByKey(Double.PositiveInfinity)(my_min, my_min)  
  lengths
}

val lengths = compute_ray_lengths()
compute_ray_lengths: ()org.apache.spark.rdd.RDD[((Long, Long), Double)]
lengths: org.apache.spark.rdd.RDD[((Long, Long), Double)] = ShuffledRDD[2596] at aggregateByKey at command-3389902380791476:20
def compute_weights() = { // (M, )
  def agg_f(a: (Double, Double), b: (Double, Double)) = { (a._1 + b._1, a._2 + b._2) }

  val weights = lengths.map { case ((m, t), length) => (m, if (!length.isInfinity) (1.0, length) else (0.0, 0.0)) }
    .aggregateByKey((0.0, 0.0))(agg_f, agg_f)
    .map { case (m, (val1, val2)) => (m, if (val1 > 0) val1 / val2 else 0.0) }
  weights
}

val weights = compute_weights()
compute_weights: ()org.apache.spark.rdd.RDD[(Long, Double)]
weights: org.apache.spark.rdd.RDD[(Long, Double)] = MapPartitionsRDD[2599] at map at command-3389902380791477:6
//def save_data(name: String, data: RDD[(Long, DenseVector[Double])]) = {
//  data.map { case (k, v) => k.toString() + "," + v.toArray.mkString(",")}
//    .toDF.repartition(1).write.format("csv").mode(SaveMode.Overwrite).option("quote", " ").save("dbfs:/FileStore/group17/data/" + name)
//}

def save_weights(name: String, data: RDD[(Long, Double)]) = {
  data.map { case (k, v) => k.toString() + "," + v.toString}
    .toDF.repartition(1).write.format("csv").mode(SaveMode.Overwrite).option("quote", " ").save("dbfs:/FileStore/group17/data/" + name)
}

save_weights("robotics_weights", weights)
save_weights: (name: String, data: org.apache.spark.rdd.RDD[(Long, Double)])Unit
weights.collect

ScaDaMaLe Course site and book

Recommender System

Project members: - Ines De Miranda De Matos Lourenço - Yassir Jedra - Filippo Vannella

Introduction

In this project, we develop and analyse a Recommendation System.

We guide ourselves by the file 036ALSMovieRecommender, which provides an introduction to recommendation systems.

The goal of recommendation systems is to predict the preferences of users based on their similarity to other users.

Problem description

The recommender problem is the following: we have N users and M movies, and a rating matrix R where each component \(r_{ij}\) corresponds to the rating given by user i to the movie j. The problem is that some components of R are missing, meaning that not all users have rated all movies, and the objective is to estimate these ratings to know which movies to recommend to the users.

To do this we will use a method called Alternating Least Squares (ALS), which estimates a Ratings matrix based on a User and a Movies matrices.

Contents and contributions

We divide the work in the following parts, each of which in a different notebook:

  • 00_Problem description: In this present notebook we introduce what is a recommendation system and which problems it tries to solve. We finally present the datasets used for this project, which include the original (small) data set, and a Netflix (large) dataset.

  • 01_The solution: In the next notebook we present the theory behind Alternating Least Squares to solve recommendation systems, and the solutions for both small and large data sets.

    • The main contribution of this part is a mathematical and algorithmic analysis to how the recommender works
  • 02_Extensions and future ideas: In the final notebook we create specific functions to improve the original receommendation system and propose future ideas.

    • The main contributions of this part are the creation of a system that takes user info and outputs suggestions.

    • For first time users, create an algorithm that gives the top rated movies over all users.

    • Test the performance of the ALS algorithm for reccomendations based on movie's genres.

Data

To test the scalability of our approach we use two different datasets, that contain users' ratings to movies:

  • The original dataset stored in dbutils.fs.ls("/databricks-datasets/cs100/lab4/data-001/") and used in the original algorithm, consisting of 2999 users and 3615 movies, with a total of 487650 ratings.

  • A dataset from kaggle, used in a competition that Netflix held to improve recommendation systems. The dataset contains 480189 users and 17770 movies. Ratings are given on an integral scale from 1 to 5. The data is stored in dbutils.fs.ls("/FileStore/tables/Netflix").

https://kth.box.com/s/tyccs648wusbxcgd3nr0s24gwo5lmc1x

ScaDaMaLe Course site and book

The ALS algorithm

The ALS algorithm was proposed in 2008 by F. Zhang, E.Shang, Y. Xu and X. Wu in a paper titled : Large-scale Parallel Colaborative Filtering for the Netflix Prize (paper). We will briefly describe the main ideas behind the ALS algorithm.

What are we learning ?

In order to finding the missing values of the rating matrix R, the authors of the ALS algorithm considered approximating this matrix by a product of two tall matrices U and M of low rank. In other words, the goal is to find a low rank approximation of the ratings matrix R:

\[ R \approx U M^\top = \begin{bmatrix} u_1 & \dots & u_N \end{bmatrix}^\top \begin{bmatrix} m_1 & \dots & m_M \end{bmatrix} \qquad \text{where} \qquad U \in \mathbb{R}^{N \times K}, M \in \mathbb{R}^{M \times K} \]

Intuitively we think of U (resp. M) as a matrix of users' features (resp. movies features) and we may rewrite this approximation entrywise as

\[ \forall i,j \qquad r_{i,j} \approx u_i^\top m_j. \]

The loss function

If all entries of the rating matrix R were known, one may use an SVD decomposition to reconstruct U and M. However, not all ratings are known therefore one has to learn the matrices U and M. The authors of the paper proposed to minimize the following loss which corresponds to the sum of squares errors with a Thikonov rigularization that weighs the users matrix U (resp. the movies matrix M) using the GammaU (resp. GammaM)

\[ \mathcal{L}{U,M}^{wheighted}(R) = \sum{(i,j)\in S} (r_{i,j} - u_i^\top m_j)^2 + \lambda \Vert M \Gamma_m \Vert^2 + \lambda \Vert U \Gamma_u \Vert^2 \]

where S corresponds to the set of known ratings, \lambda is a regularaziation parameter. In fact this loss corresponds to the Alternating Least Squares with Weigted Regularization (ALS-WR). We will be using a variant of that algorithm a.k.a. the ALS algorithm which corresponds to minimizing the following slighltly similar loss without wheighing:

\[ \mathcal{L}{U,M}(R) = \sum{(i,j)\in S} (r_{i,j} - u_i^\top m_j)^2 + \lambda \Vert M \Vert^2 + \lambda \Vert U \Vert^2 \]

and the goal of the algorithm will be find a condidate (U,M) that

\[ \min_{U,M} \mathcal{L}_{U,M}(R) \]

The ALS algorithm

The authors approach to solve the aforementioned minimization problem as follows: - Step 1. Initialize matrix M, by assigning the average rating for that movie as the first row and small random numbers for the remaining entries. - Step 2. Fix M, Solve for U by minimizing the aformentioned loss. - Step 3. Fix U, solve for M by minimizing the aformentioned loss similarly. - Step 4. Repeat Steps 2 and 3 until a stopping criterion is satisfied.

Note that when one of the matrices is fixed, say M, the loss becomes quadratic in U and the solution corresponds to that of the least squares.

Key parameters of the algorithm

The key parameters of the lagorithm are the rank K, the regularization parameter lambda, and the number of iterations befor stopping the algorithm. Indeed, since we don not have full knowledge of the matrix R, we do not know its rank. To find the best rank we will use cross-validation and dedicate part of the data to that. There is no straight way to choosing the regularization parameter, we will base our choice on reported values that work for the considered datasets. As for the number of iterations, we will proceed similarly.

Practically speaking

We will use the following mllib library in scala wich contain classes dedicated to recommendation systems (See http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.mllib.recommendation.ALS). More specifically, it contains the ALS class which allows for using the ALS algorithm as described earlier.

import org.apache.spark.mllib.recommendation.ALS
import org.apache.spark.mllib.recommendation.MatrixFactorizationModel
import org.apache.spark.mllib.recommendation.Rating
import org.apache.spark.mllib.recommendation.ALS
import org.apache.spark.mllib.recommendation.MatrixFactorizationModel
import org.apache.spark.mllib.recommendation.Rating

On a small dataset

This part of the notebook is borrowed from the notebook on the ALS we had in the course.

display(dbutils.fs.ls("/databricks-datasets/cs100/lab4/data-001/")) // The data is already here
path name size
dbfs:/databricks-datasets/cs100/lab4/data-001/movies.dat movies.dat 171308.0
dbfs:/databricks-datasets/cs100/lab4/data-001/ratings.dat.gz ratings.dat.gz 2837683.0

Loading the data

We read in each of the files and create an RDD consisting of parsed lines. Each line in the ratings dataset (ratings.dat.gz) is formatted as: UserID::MovieID::Rating::Timestamp Each line in the movies (movies.dat) dataset is formatted as: MovieID::Title::Genres The Genres field has the format Genres1|Genres2|Genres3|... The format of these files is uniform and simple, so we can use split().

Parsing the two files yields two RDDs

  • For each line in the ratings dataset, we create a tuple of (UserID, MovieID, Rating). We drop the timestamp because we do not need it for this exercise.
  • For each line in the movies dataset, we create a tuple of (MovieID, Title). We drop the Genres because we do not need them for this exercise.
// take a peek at what's in the rating file
sc.textFile("/databricks-datasets/cs100/lab4/data-001/ratings.dat.gz").map { line => line.split("::") }.take(5)
res33: Array[Array[String]] = Array(Array(1, 1193, 5, 978300760), Array(1, 661, 3, 978302109), Array(1, 914, 3, 978301968), Array(1, 3408, 4, 978300275), Array(1, 2355, 5, 978824291))
val timedRatingsRDD = sc.textFile("/databricks-datasets/cs100/lab4/data-001/ratings.dat.gz").map { line =>
      val fields = line.split("::")
      // format: (timestamp % 10, Rating(userId, movieId, rating))
      (fields(3).toLong % 10, Rating(fields(0).toInt, fields(1).toInt, fields(2).toDouble))
    }

timedRatingsRDD.take(10).map(println)
(0,Rating(1,1193,5.0))
(9,Rating(1,661,3.0))
(8,Rating(1,914,3.0))
(5,Rating(1,3408,4.0))
(1,Rating(1,2355,5.0))
(8,Rating(1,1197,3.0))
(9,Rating(1,1287,5.0))
(9,Rating(1,2804,5.0))
(8,Rating(1,594,4.0))
(8,Rating(1,919,4.0))
timedRatingsRDD: org.apache.spark.rdd.RDD[(Long, org.apache.spark.mllib.recommendation.Rating)] = MapPartitionsRDD[9561] at map at command-3389902380791711:1
res34: Array[Unit] = Array((), (), (), (), (), (), (), (), (), ())
val ratingsRDD = sc.textFile("/databricks-datasets/cs100/lab4/data-001/ratings.dat.gz").map { line =>
      val fields = line.split("::")
      // format: Rating(userId, movieId, rating)
      Rating(fields(0).toInt, fields(1).toInt, fields(2).toDouble)
    }

ratingsRDD.take(10).map(println)
Rating(1,1193,5.0)
Rating(1,661,3.0)
Rating(1,914,3.0)
Rating(1,3408,4.0)
Rating(1,2355,5.0)
Rating(1,1197,3.0)
Rating(1,1287,5.0)
Rating(1,2804,5.0)
Rating(1,594,4.0)
Rating(1,919,4.0)
ratingsRDD: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[9564] at map at command-3389902380791714:1
res35: Array[Unit] = Array((), (), (), (), (), (), (), (), (), ())
val movies = sc.textFile("/databricks-datasets/cs100/lab4/data-001/movies.dat").map { line =>
      val fields = line.split("::")
      // format: (movieId, movieName)
      (fields(0).toInt, fields(1))
    }.collect.toMap

Let's make a data frame to visually explore the data next.

sc.textFile("/databricks-datasets/cs100/lab4/data-001/ratings.dat.gz").map { line => line.split("::") }.take(5)
res36: Array[Array[String]] = Array(Array(1, 1193, 5, 978300760), Array(1, 661, 3, 978302109), Array(1, 914, 3, 978301968), Array(1, 3408, 4, 978300275), Array(1, 2355, 5, 978824291))
val timedRatingsDF = sc.textFile("/databricks-datasets/cs100/lab4/data-001/ratings.dat.gz").map { line =>
      val fields = line.split("::")
      // format: (timestamp % 10, Rating(userId, movieId, rating))
      (fields(3).toLong, fields(0).toInt, fields(1).toInt, fields(2).toDouble)
    }.toDF("timestamp", "userId", "movieId", "rating")


display(timedRatingsDF)

Here we simply check the size of the datasets we are using

val numRatings = ratingsRDD.count
val numUsers = ratingsRDD.map(_.user).distinct.count
val numMovies = ratingsRDD.map(_.product).distinct.count

println("Got " + numRatings + " ratings from "
        + numUsers + " users on " + numMovies + " movies.")
Got 487650 ratings from 2999 users on 3615 movies.
numRatings: Long = 487650
numUsers: Long = 2999
numMovies: Long = 3615

Now that we have the dataset we need, let's make a recommender system.

Creating a Training Set, test Set and Validation Set

Before we jump into using machine learning, we need to break up the ratingsRDD dataset into three pieces:

  • A training set (RDD), which we will use to train models
  • A validation set (RDD), which we will use to choose the best model
  • A test set (RDD), which we will use for our experiments

To randomly split the dataset into the multiple groups, we can use the randomSplit() transformation. randomSplit() takes a set of splits and seed and returns multiple RDDs.

val Array(trainingRDD, validationRDD, testRDD) = ratingsRDD.randomSplit(Array(0.60, 0.20, 0.20), 0L)
// let's find the exact sizes we have next
println(" training data size = " + trainingRDD.count() +
        ", validation data size = " + validationRDD.count() +
        ", test data size = " + testRDD.count() + ".")
 training data size = 292318, validation data size = 97175, test data size = 98157.
trainingRDD: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[9584] at randomSplit at command-3389902380791722:1
validationRDD: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[9585] at randomSplit at command-3389902380791722:1
testRDD: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[9586] at randomSplit at command-3389902380791722:1

After splitting the dataset, your training set has about 293,000 entries and the validation and test sets each have about 97,000 entries (the exact number of entries in each dataset varies slightly due to the random nature of the randomSplit() transformation.

// let's find the exact sizes we have next
println(" training data size = " + trainingRDD.count() +
        ", validation data size = " + validationRDD.count() +
        ", test data size = " + testRDD.count() + ".")
                                                                                                                                          
 training data size = 292318, validation data size = 97175, test data size = 98157.
// Build the recommendation model using ALS by fitting to the validation data
// just trying three different hyper-parameter (rank) values to optimise over
val ranks = List(4, 8, 12); 
var rank=0;
for ( rank <- ranks ){
  val numIterations = 10
  val regularizationParameter = 0.01
  val model = ALS.train(trainingRDD, rank, numIterations, regularizationParameter)

  // Evaluate the model on test data
  val usersProductsValidate = validationRDD.map { case Rating(user, product, rate) =>
                                              (user, product)
  }

  // get the predictions on test data
  val predictions = model.predict(usersProductsValidate)
                         .map { case Rating(user, product, rate)
                                     => ((user, product), rate)
    }

  // find the actual ratings and join with predictions
  val ratesAndPreds = validationRDD.map { case Rating(user, product, rate) 
                                     => ((user, product), rate)
                                   }.join(predictions)
  

  val MSE = ratesAndPreds.map { case ((user, product), (r1, r2)) =>
    val err = (r1 - r2)
    err * err
  }.mean()
  
  println("rank and Mean Squared Error = " +  rank + " and " + MSE)
} // end of loop over ranks
rank and Mean Squared Error = 4 and 0.8479974514693542
rank and Mean Squared Error = 8 and 0.9300503484148622
rank and Mean Squared Error = 12 and 1.02609274473932
ranks: List[Int] = List(4, 8, 12)
rank: Int = 0

Here we have the best model

  val rank = 4
  val numIterations = 10
  val regularizationParameter = 0.01
  val model = ALS.train(trainingRDD, rank, numIterations, regularizationParameter)

  // Evaluate the model on test data
  val usersProductsTest = testRDD.map { case Rating(user, product, rate) =>
                                              (user, product)
  }

  // get the predictions on test data
  val predictions = model.predict(usersProductsTest)
                         .map { case Rating(user, product, rate)
                                     => ((user, product), rate)
    }

  // find the actual ratings and join with predictions
  val ratesAndPreds = testRDD.map { case Rating(user, product, rate) 
                                     => ((user, product), rate)
                                   }.join(predictions)

  val MSE = ratesAndPreds.map { case ((user, product), (r1, r2)) =>
    val err = (r1 - r2)
    err * err
  }.mean()
  
  println("rank and Mean Squared Error for test data = " +  rank + " and " + MSE)
rank and Mean Squared Error for test data = 4 and 0.8339905882351633
rank: Int = 4
numIterations: Int = 10
regularizationParameter: Double = 0.01
model: org.apache.spark.mllib.recommendation.MatrixFactorizationModel = org.apache.spark.mllib.recommendation.MatrixFactorizationModel@4861c837
usersProductsTest: org.apache.spark.rdd.RDD[(Int, Int)] = MapPartitionsRDD[10463] at map at command-3389902380791728:7
predictions: org.apache.spark.rdd.RDD[((Int, Int), Double)] = MapPartitionsRDD[10472] at map at command-3389902380791728:13
ratesAndPreds: org.apache.spark.rdd.RDD[((Int, Int), (Double, Double))] = MapPartitionsRDD[10476] at join at command-3389902380791728:20
MSE: Double = 0.8339905882351633

On a large dataset - Netflix dataset

Loading the data

Netflix held a competition to improve recommendation systems. The dataset can be found in kaggle. Briefly speaking, the dataset contains users' ratings to movies, with 480189 users and 17770 movies. Ratings are given on an integral scale from 1 to 5. The first step is to download the data and store it in databricks. Originally, the dataset is plit into four files each with the following format:

MovieID:
UserID, rating, date
.
.
.
MovieID: 
UserID, rating, date
.
.
.

We process these files so that each line has the format MovieID, UserID, rating, date

// Path where the data is stored 
display(dbutils.fs.ls("/FileStore/tables/Netflix")) 
path name size
dbfs:/FileStore/tables/Netflix/combined_data_1_tar.xz combined_data_1_tar.xz 1.19273784e8
dbfs:/FileStore/tables/Netflix/combined_data_2_tar.xz combined_data_2_tar.xz 1.33487548e8
dbfs:/FileStore/tables/Netflix/combined_data_3_tar.xz combined_data_3_tar.xz 1.11976904e8
dbfs:/FileStore/tables/Netflix/combined_data_4_tar.xz combined_data_4_tar.xz 1.32669964e8
dbfs:/FileStore/tables/Netflix/formatted_combined_data_1_txt.gz formatted_combined_data_1_txt.gz 1.66682858e8
dbfs:/FileStore/tables/Netflix/formatted_combined_data_2_txt.gz formatted_combined_data_2_txt.gz 1.87032103e8
dbfs:/FileStore/tables/Netflix/formatted_combined_data_3_txt.gz formatted_combined_data_3_txt.gz 1.56042358e8
dbfs:/FileStore/tables/Netflix/formatted_combined_data_4_txt.gz formatted_combined_data_4_txt.gz 1.85177843e8
dbfs:/FileStore/tables/Netflix/movie_titles.csv movie_titles.csv 577547.0

Let us load first the movie titles.

// Create a Movie class 
case class Movie(movieID: Int, year: Int, tilte: String)

// Load the movie titles in an RDD
val moviesTitlesRDD: RDD[Movie] = sc.textFile("/FileStore/tables/Netflix/movie_titles.csv").map { line =>
      val fields = line.split(",")
      // format: Rating(movieId, year, title)
      Movie(fields(0).toInt, fields(1).toInt, fields(2))
    }

// Print the titles of the first 3 movies 
moviesTitlesRDD.take(5).foreach(println)
Movie(1,2003,Dinosaur Planet)
Movie(2,2004,Isle of Man TT 2004 Review)
Movie(3,1997,Character)
Movie(4,1994,Paula Abdul's Get Up & Dance)
Movie(5,2004,The Rise and Fall of ECW)
defined class Movie
moviesTitlesRDD: org.apache.spark.rdd.RDD[Movie] = MapPartitionsRDD[129] at map at command-3389902380789882:3
import org.apache.spark.mllib.recommendation.ALS
import org.apache.spark.mllib.recommendation.MatrixFactorizationModel
import org.apache.spark.mllib.recommendation.Rating
import org.apache.spark.mllib.recommendation.ALS
import org.apache.spark.mllib.recommendation.MatrixFactorizationModel
import org.apache.spark.mllib.recommendation.Rating
val RatingsRDD_1 = sc.textFile("/FileStore/tables/Netflix/formatted_combined_data_1_txt.gz").map { line =>
      val fields = line.split(",")
      // format: Rating(userId, movieId, rating))
      Rating(fields(1).toInt, fields(0).toInt, fields(2).toDouble)
    }

val RatingsRDD_2 = sc.textFile("/FileStore/tables/Netflix/formatted_combined_data_2_txt.gz").map { line =>
      val fields = line.split(",")
      // format: Rating(userId, movieId, rating))
      Rating(fields(1).toInt, fields(0).toInt, fields(2).toDouble)
    }

val RatingsRDD_3 = sc.textFile("/FileStore/tables/Netflix/formatted_combined_data_3_txt.gz").map { line =>
      val fields = line.split(",")
      // format: Rating(userId, movieId, rating))
      Rating(fields(1).toInt, fields(0).toInt, fields(2).toDouble)
    }

val RatingsRDD_4 = sc.textFile("/FileStore/tables/Netflix/formatted_combined_data_4_txt.gz").map { line =>
      val fields = line.split(",")
      // format: Rating(userId, movieId, rating))
      Rating(fields(1).toInt, fields(0).toInt, fields(2).toDouble)
    }


RatingsRDD_4.take(5).foreach(println)
Rating(2385003,13368,4.0)
Rating(659432,13368,3.0)
Rating(751812,13368,2.0)
Rating(2625420,13368,2.0)
Rating(1650301,13368,1.0)
RatingsRDD_1: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[258] at map at command-3389902380789875:2
RatingsRDD_2: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[261] at map at command-3389902380789875:8
RatingsRDD_3: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[264] at map at command-3389902380789875:14
RatingsRDD_4: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[267] at map at command-3389902380789875:20
// Concatenating the ratings RDDs (could not find a nice way of doing this)
val r1 = RatingsRDD_1.union(RatingsRDD_2) 
val r2 = r1.union(RatingsRDD_3)
val RatingsRDD = r2.union(RatingsRDD_4)
RatingsRDD.take(5).foreach(println)
r1: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = UnionRDD[278] at union at command-3389902380791426:2
r2: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = UnionRDD[279] at union at command-3389902380791426:3
RatingsRDD: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = UnionRDD[280] at union at command-3389902380791426:4

Let us put our dataset in a dataframe to visulaize it more nicely

val RatingsDF = RatingsRDD.toDF
display(RatingsDF)

Training the movie recommender system

In the training process we will start by splitting the dataset into - a training set (60%) - a validation set (20%) - a test set (20%)

// Splitting the dataset 
val Array(trainingRDD, validationRDD, testRDD) = RatingsRDD.randomSplit(Array(0.60, 0.20, 0.20), 0L)
 training data size = 60288922, validation data size = 20097527, test data size = 20094058.
trainingRDD: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[8350] at randomSplit at command-3389902380791433:1
validationRDD: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[8351] at randomSplit at command-3389902380791433:1
testRDD: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[8352] at randomSplit at command-3389902380791433:1

After splitting the dataset, your training set has about 60,288,922 entries and the validation and test sets each have about 20,097,527 entries (the exact number of entries in each dataset varies slightly due to the random nature of the randomSplit() transformation.

// let's find the exact sizes we have next
println(" training data size = " + trainingRDD.count() +
        ", validation data size = " + validationRDD.count() +
        ", test data size = " + testRDD.count() + ".")
 training data size = 60288922, validation data size = 20097527, test data size = 20094058.
// Build the recommendation model using ALS by fitting to the validation data
// just trying three different hyper-parameter (rank) values to optimise over
val ranks = List(50, 100, 150, 300, 400, 500); 
var rank=0;
for ( rank <- ranks ){
  val numIterations = 12
  val regularizationParameter = 0.05
  val model = ALS.train(trainingRDD, rank, numIterations, regularizationParameter)

  // Evaluate the model on test data
  val usersProductsValidate = validationRDD.map { case Rating(user, product, rate) =>
                                              (user, product)
  }

  // get the predictions on test data
  val predictions = model.predict(usersProductsValidate)
                         .map { case Rating(user, product, rate)
                                     => ((user, product), rate)
    }

  // find the actual ratings and join with predictions
  val ratesAndPreds = validationRDD.map { case Rating(user, product, rate) 
                                     => ((user, product), rate)
                                   }.join(predictions)
  

  val MSE = ratesAndPreds.map { case ((user, product), (r1, r2)) =>
    val err = (r1 - r2)
    err * err
  }.mean()
  
  println("rank and Mean Squared Error = " +  rank + " and " + MSE)
} // end of loop over ranks
rank and Mean Squared Error = 50 and 0.7060806826621556
rank and Mean Squared Error = 100 and 0.7059490573655225
rank and Mean Squared Error = 150 and 0.7056407494686934

ScaDaMaLe Course site and book

Extensions

In this notebook, we introduce multiple improvements to the original algorithm, using the small dataset. We: - First, improve the original algorithm by creating a system that takes user info and outputs suggestions, which is the typical final role of a recommendation system. - Then, we add the functionality that for first time user, we output the top rated movies over all users. - Furthemore, we improve the existing model by including the movie's genres to give better recommendations.

// import the relevant libraries for `mllib`

import org.apache.spark.mllib.recommendation.ALS
import org.apache.spark.mllib.recommendation.MatrixFactorizationModel
import org.apache.spark.mllib.recommendation.Rating
import org.apache.spark.sql.expressions.UserDefinedFunction
import scala.collection.mutable.WrappedArray
import org.apache.spark.mllib.recommendation.ALS
import org.apache.spark.mllib.recommendation.MatrixFactorizationModel
import org.apache.spark.mllib.recommendation.Rating
import org.apache.spark.sql.expressions.UserDefinedFunction
import scala.collection.mutable.WrappedArray
// Get the small dataset and display information
display(dbutils.fs.ls("/databricks-datasets/cs100/lab4/data-001/")) // The data is already here
path name size
dbfs:/databricks-datasets/cs100/lab4/data-001/movies.dat movies.dat 171308.0
dbfs:/databricks-datasets/cs100/lab4/data-001/ratings.dat.gz ratings.dat.gz 2837683.0
// Create the RDD containing the ratings

val ratingsRDD = sc.textFile("/databricks-datasets/cs100/lab4/data-001/ratings.dat.gz").map { line =>
      val fields = line.split("::")
      // format: Rating(userId, movieId, rating)
      Rating(fields(0).toInt, fields(1).toInt, fields(2).toDouble)
}
ratingsRDD: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[21729] at map at command-3389902380791579:3
// We take a look at the first 10 entries in the Ratings RDD
ratingsRDD.take(10).map(println)
Rating(1,1193,5.0)
Rating(1,661,3.0)
Rating(1,914,3.0)
Rating(1,3408,4.0)
Rating(1,2355,5.0)
Rating(1,1197,3.0)
Rating(1,1287,5.0)
Rating(1,2804,5.0)
Rating(1,594,4.0)
Rating(1,919,4.0)
res86: Array[Unit] = Array((), (), (), (), (), (), (), (), (), ())

A similar command is used to format the movies. For this first part the genre field is ignored. They will considered in the second part of this notebook.

val movies = sc.textFile("/databricks-datasets/cs100/lab4/data-001/movies.dat").map { line =>
      val fields = line.split("::")
      // format: (movieId, movieName)
      (fields(0).toInt, fields(1))
    }.collect.toMap
// check the size of the small dataset

val numRatings = ratingsRDD.count
val numUsers = ratingsRDD.map(_.user).distinct.count
val numMovies = ratingsRDD.map(_.product).distinct.count

println("Got " + numRatings + " ratings from "
        + numUsers + " users on " + numMovies + " movies.")
Got 487650 ratings from 2999 users on 3615 movies.
numRatings: Long = 487650
numUsers: Long = 2999
numMovies: Long = 3615
// Creating a Training Set, test Set and Validation Set

val Array(trainingRDD, validationRDD, testRDD) = ratingsRDD.randomSplit(Array(0.60, 0.20, 0.20), 0L)
trainingRDD: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[21741] at randomSplit at command-3389902380791584:3
validationRDD: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[21742] at randomSplit at command-3389902380791584:3
testRDD: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[21743] at randomSplit at command-3389902380791584:3
// let's find the exact sizes we have next
println(" training data size = " + trainingRDD.count() +
        ", validation data size = " + validationRDD.count() +
        ", test data size = " + testRDD.count() + ".")
 training data size = 292318, validation data size = 97175, test data size = 98157.

Ratings distribution

For curiosity, we start by plotting the histogram of the ratings present in this dataset

// Create a DataFrame with the data
import org.apache.spark.sql.functions._

val ratingsDF = sc.textFile("/databricks-datasets/cs100/lab4/data-001/ratings.dat.gz").map { line =>
      val fields = line.split("::")
      // format: (timestamp % 10, Rating(userId, movieId, rating))
      (fields(0).toInt, fields(1).toInt, fields(2).toDouble)
    }.toDF("userID", "movieID", "rating")
display(ratingsDF)
val history = ratingsDF.groupBy("rating").count().orderBy(asc("rating"))
history.show()
+------+------+
|rating| count|
+------+------+
|   1.0| 27472|
|   2.0| 53838|
|   3.0|127216|
|   4.0|170579|
|   5.0|108545|
+------+------+

history: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [rating: double, count: bigint]
display(history)

Create a system that takes user info and outputs suggestions.

user info = ((movieID,rating),(movieID,rating)). It is basically an (incomplete) line in the ratings matrix.

  • Choose an user
  • Run the model and fill the columns - predict the ratings for the movies
  • Output the ones with the best predicted score
// Train the model as usually
  val rank = 4
  val numIterations = 10
  val regularizationParameter = 0.01
  val model = ALS.train(trainingRDD, rank, numIterations, regularizationParameter)
rank: Int = 4
numIterations: Int = 10
regularizationParameter: Double = 0.01
model: org.apache.spark.mllib.recommendation.MatrixFactorizationModel = org.apache.spark.mllib.recommendation.MatrixFactorizationModel@570cf4b3
// Choose any random user,which is going to be our test user
val newUserID = 1000

// Create a list with the MovieIds we want to predict its rating to
val newUser = Array(Rating(newUserID, 1, 0),Rating(newUserID, 2, 0),Rating(newUserID.toInt, 3, 0),Rating(newUserID.toInt, 4, 0),Rating(newUserID.toInt, 5, 0))
newUser.map(println)

// Convert it to an RDD
val newTest = sc.parallelize(newUser)
newTest.map(println)
Rating(1000,1,0.0)
Rating(1000,2,0.0)
Rating(1000,3,0.0)
Rating(1000,4,0.0)
Rating(1000,5,0.0)
newUserID: Int = 1000
newUser: Array[org.apache.spark.mllib.recommendation.Rating] = Array(Rating(1000,1,0.0), Rating(1000,2,0.0), Rating(1000,3,0.0), Rating(1000,4,0.0), Rating(1000,5,0.0))
newTest: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = ParallelCollectionRDD[21968] at parallelize at command-3389902380791591:9
res94: org.apache.spark.rdd.RDD[Unit] = MapPartitionsRDD[21969] at map at command-3389902380791591:10
  // Evaluate the model on this test user
  val usersProductsTest = newTest.map { case Rating(user, product, rate) =>
                                              (user, product)
  }
usersProductsTest: org.apache.spark.rdd.RDD[(Int, Int)] = MapPartitionsRDD[21970] at map at command-3389902380791592:2
  // get the predictions for this test user
  val predictions = model.predict(usersProductsTest)
                         .map { case Rating(user, product, rate)
                                     => ((user, product), rate)
    }

  val ratesAndPreds = newTest.map { case Rating(user, product, rate)
                                     => ((user, product), rate)
                                   }.join(predictions)

predictions: org.apache.spark.rdd.RDD[((Int, Int), Double)] = MapPartitionsRDD[21979] at map at command-3389902380791593:3
ratesAndPreds: org.apache.spark.rdd.RDD[((Int, Int), (Double, Double))] = MapPartitionsRDD[21983] at join at command-3389902380791593:9
// Convert the RDD with the predictions to a DataFrame
val preds2 = ratesAndPreds.map { case ((user, product), (r1, r2)) => (user,product,r2) }

var predsDF = preds2.toDF("userID","movieID","pred")


predsDF.orderBy(asc("movieID"))show()
+------+-------+------------------+
|userID|movieID|              pred|
+------+-------+------------------+
|  1000|      1|4.3134486083287396|
|  1000|      2| 3.561695001470941|
|  1000|      3| 3.251747295342854|
|  1000|      4|2.9727526635707116|
|  1000|      5|3.1890542732727987|
+------+-------+------------------+

preds2: org.apache.spark.rdd.RDD[(Int, Int, Double)] = MapPartitionsRDD[21984] at map at command-3389902380791594:2
predsDF: org.apache.spark.sql.DataFrame = [userID: int, movieID: int ... 1 more field]
// Order the movies according to the predictions
val orderedPreds = predsDF.orderBy(desc("pred"))
orderedPreds.show()
+------+-------+------------------+
|userID|movieID|              pred|
+------+-------+------------------+
|  1000|      1|4.3134486083287396|
|  1000|      2| 3.561695001470941|
|  1000|      3| 3.251747295342854|
|  1000|      5|3.1890542732727987|
|  1000|      4|2.9727526635707116|
+------+-------+------------------+

orderedPreds: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [userID: int, movieID: int ... 1 more field]
// Return the ID of the highest recommended one

val t = orderedPreds.select("movieID").collect().map(_(0)).toList.take(1)
println("The movie highest recommended for this user is:")
println(movies(t(0).asInstanceOf[Int]))
The movie highest recommended for this user is:
Toy Story (1995)
t: List[Any] = List(1)

For first time users, the program gives the top rated movies over all users.

If newUser: - Check the ratings matrix - Compute the average rating of each column (of each movie) - Return the columns with the highest

// Note: This is only for the ones they said. Doesnt include the ones computed by our model...
import org.apache.spark.sql.functions._

val newUserID = 4000

// Compute the average of each movie
val averageRates = ratingsDF.groupBy("movieID").avg("rating")
averageRates.show()
+-------+------------------+
|movieID|       avg(rating)|
+-------+------------------+
|   1580|3.7045454545454546|
|   2366|           3.71875|
|   1088|  3.29595015576324|
|   1959|3.6577181208053693|
|   3175|3.8145454545454545|
|   1645| 3.367021276595745|
|    496|3.3846153846153846|
|   2142|2.8256880733944953|
|   1591|2.5783132530120483|
|   2122|2.3434343434343434|
|    833| 2.130434782608696|
|    463|2.7222222222222223|
|    471| 3.665492957746479|
|   1342|2.8188976377952755|
|    148| 2.857142857142857|
|   3918| 2.806896551724138|
|   3794|               3.4|
|   1238|3.9526627218934913|
|   2866|3.7386363636363638|
|   3749|               4.0|
+-------+------------------+
only showing top 20 rows

import org.apache.spark.sql.functions._
newUserID: Int = 4000
averageRates: org.apache.spark.sql.DataFrame = [movieID: int, avg(rating): double]
// Order the movies by top ratings
val orderedRates = averageRates.orderBy(desc("avg(rating)")).withColumnRenamed("avg(rating)","avg_rate")
orderedRates.show()
+-------+-----------------+
|movieID|         avg_rate|
+-------+-----------------+
|    854|              5.0|
|    853|              5.0|
|    787|              5.0|
|   1830|              5.0|
|   3881|              5.0|
|    557|              5.0|
|   3280|              5.0|
|    578|              5.0|
|   2444|              5.0|
|   3636|              5.0|
|   3443|              5.0|
|   3800|              5.0|
|    989|              5.0|
|   1002|4.666666666666667|
|   3232|4.666666666666667|
|   2839|4.666666666666667|
|   3245|4.666666666666667|
|   2905|4.609756097560975|
|   1743|              4.6|
|   2019|4.586330935251799|
+-------+-----------------+
only showing top 20 rows

orderedRates: org.apache.spark.sql.DataFrame = [movieID: int, avg_rate: double]
// Return the top 5 movies with highest ratings over all users

val topMovies = orderedRates.take(5)
//println(topMovies)
//topMovies.foreach(t => println(t(0)))
val moviesList = orderedRates.select("movieID").collect().map(_(0)).toList.take(5)
//println(moviesList)

println("The movies recommended for a new user based on the overall rating are:")
for (t <-  moviesList )
    println(movies(t.asInstanceOf[Int]))
 // println(movies(t))
The movies recommended for a new user based on the overall rating are:
Dingo (1992)
Gate of Heavenly Peace, The (1995)
Hour of the Pig, The (1993)
Those Who Love Me Can Take the Train (Ceux qui m'aiment prendront le train) (1998)
Schlafes Bruder (Brother of Sleep) (1995)
topMovies: Array[org.apache.spark.sql.Row] = Array([989,5.0], [787,5.0], [853,5.0], [578,5.0], [3636,5.0])
moviesList: List[Any] = List(853, 787, 578, 3636, 989)
// In alternative, return the top movies with rating of 5 over all users

val topMovies5 = orderedRates.where("avg_rate == 5").select("movieID").collect().map(_(0)).toList

println("The movies recommended for a new user based on the overall rating are:")
for (t <-  topMovies5 )
    println(movies(t.asInstanceOf[Int]))
 // println(movies(t))

The movies recommended for a new user based on the overall rating are:
Dingo (1992)
Gate of Heavenly Peace, The (1995)
Hour of the Pig, The (1993)
Those Who Love Me Can Take the Train (Ceux qui m'aiment prendront le train) (1998)
Schlafes Bruder (Brother of Sleep) (1995)
Ballad of Narayama, The (Narayama Bushiko) (1958)
Baby, The (1973)
24 7: Twenty Four Seven (1997)
Born American (1986)
Criminal Lovers (Les Amants Criminels) (1999)
Follow the Bitch (1998)
Bittersweet Motel (2000)
Mamma Roma (1962)
topMovies5: List[Any] = List(853, 787, 578, 3636, 989, 854, 3280, 2444, 3443, 3800, 1830, 3881, 557)
// Read the movies file as a dataframe and display it
val movies_df = sc.textFile("/databricks-datasets/cs100/lab4/data-001/movies.dat").map { line =>
      val fields = line.split("::")
      // format: (movieId, movieName,genre)
      (fields(0).toInt, fields(1),fields(2).split("\\|"))
    }.toDF("movieId", "movieName", "genre")

display(movies_df)
// Select a GENRE, or a set of GENREs and filter the movies dataset according to this genre
val GENRE = "Animation"

def array_contains_any(s:Seq[String]): UserDefinedFunction = {
udf((c: WrappedArray[String]) =>
  c.toList.intersect(s).nonEmpty)}

val b: Array[String] = Array(GENRE)
val genre_df = movies_df.where(array_contains_any(b)($"genre"))
display(genre_df)

val movie_ID_genres = genre_df.select("movieId").rdd.map(r => r(0)).collect()
// We now read and display the ratings dataframe (without the timestamp field) as a dataframe.
val RatingsDF = sc.textFile("/databricks-datasets/cs100/lab4/data-001/ratings.dat.gz").map { line =>
      val fields = line.split("::")
      // format: (timestamp % 10, Rating(userId, movieId, rating))
      (fields(0).toInt, fields(1).toInt, fields(2).toDouble)
    }.toDF("userId", "movieId", "rating")
display(RatingsDF)
// Based on the movies id obtained by the filtering on the movie dataset we filter the ratings df and we convert it to rdd format
val Ratings_genre_df = RatingsDF.filter($"movieId".isin(movie_ID_genres:_*))
val genre_rdd = Ratings_genre_df.rdd
display(Ratings_genre_df)
// Print some dataset statistics
val numRatings = genre_rdd.count
println("Got " + numRatings + " ratings")
Got 22080 ratings
numRatings: Long = 22080
// Create train, test, and evaluation dataset and print some statistics
val Array(temp_trainingRDD, temp_validationRDD, temp_testRDD) = genre_rdd.randomSplit(Array(0.60, 0.20, 0.20), 0L)

// let's find the exact sizes we have next
println("training data size = " + temp_trainingRDD.count() +
        ", validation data size = " + temp_validationRDD.count() +
        ", test data size = " + temp_testRDD.count() + ".")
training data size = 13229, validation data size = 4411, test data size = 4440.
temp_trainingRDD: org.apache.spark.rdd.RDD[org.apache.spark.sql.Row] = MapPartitionsRDD[19929] at randomSplit at command-3389902380791621:2
temp_validationRDD: org.apache.spark.rdd.RDD[org.apache.spark.sql.Row] = MapPartitionsRDD[19930] at randomSplit at command-3389902380791621:2
temp_testRDD: org.apache.spark.rdd.RDD[org.apache.spark.sql.Row] = MapPartitionsRDD[19931] at randomSplit at command-3389902380791621:2
// Map the rdds to the Rating type
val maptrainingRDD = temp_trainingRDD.map(x=>Rating(x(0).asInstanceOf[Int], x(1).asInstanceOf[Int], x(2).asInstanceOf[Double]))
val mapvalidationRDD = temp_validationRDD.map(x=>Rating(x(0).asInstanceOf[Int], x(1).asInstanceOf[Int], x(2).asInstanceOf[Double]))
val maptestRDD = temp_testRDD.map(x=>Rating(x(0).asInstanceOf[Int], x(1).asInstanceOf[Int], x(2).asInstanceOf[Double]))
maptrainingRDD: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[19932] at map at command-3389902380791624:2
mapvalidationRDD: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[19933] at map at command-3389902380791624:3
maptestRDD: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[19934] at map at command-3389902380791624:4
// Build the recommendation model using ALS by fitting to the training data (with Hyperparameter tuning)
// trying different hyper-parameter (rank) values to optimise over
val ranks = List(2, 4, 8, 16, 32, 64, 128, 256);
var rank=0;

for ( rank <- ranks ){
  // using a fixed numIterations=10 and regularisation=0.01
  val numIterations = 10
  val regularizationParameter = 0.01
  val model = ALS.train(maptrainingRDD, rank, numIterations, regularizationParameter)

  // Evaluate the model on test data
  val usersProductsValidate = mapvalidationRDD.map { case Rating(user, product, rate) =>
                                              (user, product)
  }

  // get the predictions on test data
  val predictions = model.predict(usersProductsValidate)
                         .map { case Rating(user, product, rate)
                                     => ((user, product), rate)
    }

  // find the actual ratings and join with predictions
  val ratesAndPreds = mapvalidationRDD.map { case Rating(user, product, rate)
                                     => ((user, product), rate)
                                   }.join(predictions)


  val MSE = ratesAndPreds.map { case ((user, product), (r1, r2)) =>
    val err = (r1 - r2)
    err * err
  }.mean()
  println("rank and Mean Squared Error = " +  rank + " and " + MSE)
} // end of loop over ranks
rank and Mean Squared Error = 2 and 1.0624116959469154
rank and Mean Squared Error = 4 and 1.3393495403657538
rank and Mean Squared Error = 8 and 1.6916511125697133
rank and Mean Squared Error = 16 and 1.63542207107039
rank and Mean Squared Error = 32 and 1.311227268934932
rank and Mean Squared Error = 64 and 0.9461947532838
rank and Mean Squared Error = 128 and 0.8859420827613572
rank and Mean Squared Error = 256 and 0.8845268169033572
numIterations: Int = 10
regularisation: Double = 0.01
ranks: List[Int] = List(2, 4, 8, 16, 32, 64, 128, 256)
rank: Int = 0

ScaDaMaLe Course site and book

Group members: Linn Öström, Patrik Persson, Johan Oxenstierna, and Alexander Dürr

Link to our video explaining the 1) theory, 2) preprocessing the dataset, 3) algorithm and 4) results https://drive.google.com/drive/folders/1zEWj6JsJEUu9f8Q5Xy_avwxQ3yJ9oI7Z?usp=sharing

alternatively: https://youtu.be/eJ2LDtNad08

Problem formulation

A common problem in computer vision is estimating the fundamental matrix based on a image pair. The fundamental matrix relates corresponding points in stereo geometry, and is useful as a pre-processing step for example when one wants to perform reconstruction of a captured scene. In this small project we use a scalable distributed algorithm to compute fundamental matrices between a large set of images.

Short theory section

Assume that we want to link points in some image taken by camera to points in an image taken by another camera . Let and denote the projections of global point onto the cameras and , respectivly. Then the points are related as follows

where are scale factors. Since we always can apply a projective transformation to set one of the cameras to and the other to some we can parametrize the global point by . Thus the projected point onto camera is represented by the line . This line is called the epipolar line to the point in epipolar geomtry, and descirbes how the point in image 1 is related to points on in image 2. Since all scene points that can project to are on the viewing ray, all points in the second image that can correspond have to be on the epipolar line. This condition is called the epipolar constraint.

plot

Taking two points on this line (one of them being using ), (add what is e_2) we can derive an expression of this line , as any point x on the line must fulfill . Thus the line is thus given by

Let , this is called the fundamental matrix. The fundamental matrix thus is a mathematical formulation which links points in image 1 to lines in image 2 (and vice versa). If corresponds to then the epipolar constraint can be written

F is a 3x 3 matrix with 9 entiers and has 7 degrees of freedom. It can be estimated using 7 points using the 7-point algorithm.

Before we have assumed the the correspndeces between points in the imagaes are known, however these are found by first extracting features in the images using some form of feature extractor (e.g. SIFT) and subsequently finding matches using some mathcing criterion/algorithm (e.g. using Lowes criterion or in our case FLANN based matcher)

SIFT

Scale-invariant feature transform (SIFT) is a feature detection algorithm which detect and describe local features in images, see examples of detected SIFT features in the two images (a) and (b). SIFT finds local features present in the image and compute desriptors and locations of these features. Next we need to link the features present in image 1 to the features in image 2, which can be done using e.g. a FLANN (Fast Library for Approximate Nearest Neighbors) based matcher. In short the features in the images are compared and the matches are found using a nearest neighbor search. After a matching algorithm is used we have correspandence between the detected points in image 1 and image 2, see example in image (c) below. Note that there is still a high probaility that some of these matches are incorrect.

plot

RANSAC

Some matches found by the FLANN may be incorrect, and a common robust method used for reducing the influence of these outliers in the estimation of F is RANSAC (RANdom SAmpling Consensus). In short, it relies on the fact that the inliers will tend to a consesus regarding the correct estimation, whereas the outlier estimation will show greater variation. By sampling random sets of points with size corresponding to the degrees of freedom of the model, calculating their corresponding estimations, and grouping all estimations with a difference below a set threshold, the largest consesus group is found. This set is then lastly used for the final estimate of F.

OpenCV is an well-known open-source library for computer vision, machine learning, and image processing tasks. In this project we will use it for feature extraction (SIFT), feature matching (FLANN) and the estimation of the fundamental matrix (using the 7-point algorithm). Let us install opencv

install opencv-python

Also we need to download a dataset that we can work with, this dataset is collected by Carl Olsson from LTH. This is achieved by the bash shell script below. The dataset is placed in the /tmp folder using the -P "prefix"

rm -r /tmp/0019
rm -r /tmp/eglise_int1.zip

wget -P /tmp vision.maths.lth.se/calledataset/eglise_int/eglise_int1.zip
unzip /tmp/eglise_int1.zip -d /tmp/0019/
rm -r /tmp/eglise_int1.zip
rm -r /tmp/eglise_int2.zip

wget -P /tmp vision.maths.lth.se/calledataset/eglise_int/eglise_int2.zip
unzip /tmp/eglise_int2.zip -d /tmp/0019/
rm -r /tmp/eglise_int2.zip
rm -r /tmp/eglise_int3.zip

wget -P /tmp vision.maths.lth.se/calledataset/eglise_int/eglise_int3.zip
unzip /tmp/eglise_int3.zip -d /tmp/0019/
rm -r /tmp/eglise_int3.zip
cd /tmp/0019/
for f in *; do mv "$f" "eglise_$f"; done
cd /databricks/driver
# for an experiment to detect if images from an unrelated scene are not matched to pictures from another scene
%sh
rm -r /tmp/gbg.zip

wget -P /tmp vision.maths.lth.se/calledataset/gbg/gbg.zip
unzip /tmp/gbg.zip -d /tmp/0019/
rm -r /tmp/gbg.zip
import sys.process._

//"wget -P /tmp vision.maths.lth.se/calledataset/door/door.zip" !!
//"unzip /tmp/door.zip -d /tmp/door/"!!

//move downloaded dataset to dbfs

val localpath="file:/tmp/0019/"

dbutils.fs.rm("dbfs:/datasets/0019/mixedimages", true)  // the boolean is for recursive rm

dbutils.fs.mkdirs("dbfs:/datasets/0019/mixedimages")

dbutils.fs.cp(localpath, "dbfs:/datasets/0019/mixedimages", true)
import sys.process._
localpath: String = file:/tmp/0019/
res5: Boolean = true
rm -r /tmp/0019
display(dbutils.fs.ls("dbfs:/datasets/0019/mixedimages"))
#Loading one image from the dataset for testing

import numpy as np
import cv2
import matplotlib.pyplot as plt

def plot_img(figtitle,img):

  #create figure with std size
  fig = plt.figure(figtitle, figsize=(10, 5))

  plt.imshow(img)

  display(plt.show())

img1 = cv2.imread("/dbfs/datasets/0019/mixedimages/eglise_DSC_0133.JPG")
#img2 = cv2.imread("/dbfs/datasets/0019/mixedimages/DSC_0133.JPG")

plot_img("eglise", img1)
#plot_img("gbg", img2)

ls /dbfs/datasets/0019/mixedimages/eglise_DSC_0133.JPG

Read Image Dataset

import glob
import numpy as np
import cv2
import os

dataset_path  = "/dbfs/datasets/0019/mixedimages/"

#get all filenames in folder
files = glob.glob(os.path.join(dataset_path,"*.JPG"))

dataset = []

#load all images names
for i, file in enumerate(files): # Alex: changed
  # Load an color image
  #img = cv2.imread(file)

  #add image and image name as a tupel to the list
  dataset.append((file))
  if i >= 150: # Alex: changed
    break

Define maps

import glob
import numpy as np
import cv2
import matplotlib.pyplot as plt

max_features = 1000

def plot_img(figtitle,s):

  img = cv2.imread(s)

  #create figure with std size
  fig = plt.figure(figtitle, figsize=(10, 5))

  plt.imshow(img)

  display(plt.show())


def extract_features(s):
  """
  """
  # Here we load the images on the executor from dbfs into memory
  img = cv2.imread(s)

  #convert to gray scale
  gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

  sift = cv2.SIFT_create(max_features)

  #extract sift features and descriptors
  kp, des = sift.detectAndCompute(gray, None)

  #convert keypoint class to list of feature locations (for serialization)
  points=[]
  for i in range(len(kp)):
    points.append(kp[i].pt)

  #return a tuple of image name, feature points, descriptors, called a feature tuple
  return (s, points, des)

def estimate_fundamental_matrix(s):
  """
  """

  # s[0] is a feature tuple for the first image, s[1] is the same for the second image
  a = s[0]
  b = s[1]

  # unpacks the tuples
  name1, kp1, desc1 = a
  name2, kp2, desc2 = b

  # Create FLANN matcher object
  FLANN_INDEX_KDTREE = 0
  indexParams = dict(algorithm=FLANN_INDEX_KDTREE,
                   trees=5)
  searchParams = dict(checks=50)
  flann = cv2.FlannBasedMatcher(indexParams,
                              searchParams)

  # matches the descriptors, for each query descriptor it finds the two best matches among the train descriptors
  matches = flann.knnMatch(desc1, desc2, k=2)

  goodMatches = []
  pts1 = []
  pts2 = []

  # compares the best with the second best match and only adds those where the best match is significantly better than the next best.
  for i,(m,n) in enumerate(matches):
    if m.distance < 0.8*n.distance:
        goodMatches.append([m.queryIdx, m.trainIdx])
        pts2.append(kp2[m.trainIdx])
        pts1.append(kp1[m.queryIdx])

  pts1 = np.array(pts1, dtype=np.float32)
  pts2 = np.array(pts2, dtype=np.float32)

  # finds the fundamental matrix using ransac:
  # selects minimal sub-set of the matches,
  # estimates the fundamental matrix,
  # checks how many of the matches satisfy the epipolar geometry (the inlier set)
  # iterates this for a number of iterations,
  # returns the fundamental matrix and mask with the largest number of inliers.
  F, mask = cv2.findFundamentalMat(pts1, pts2, cv2.FM_RANSAC)

  inlier_matches = []

  # removes all matches that are not inliers
  if mask is not None:  
    for i, el in enumerate(mask):
      if el == 1:
        inlier_matches.append(goodMatches[i])

  # returns a tuple containing the feature tuple of image one and image two, the fundamental matrix and the inlier matches
  return (a, b, F, inlier_matches)

def display_data(data):
  for el in data:

    print(el[2])

    print("#######################################################")



Perform Calculations

# creates an rdd from the loaded images (im_name)
rdd = sc.parallelize(dataset,20)
print("num partitions: ",rdd.getNumPartitions())

# applys the feature extraction to the images
rdd_features = rdd.map(extract_features) # Alex: we could leave the name but remove the image in a and b
print("num partitions: ",rdd_features.getNumPartitions())

# forms pairs of images by applying the cartisian product and filtering away the identity pair
rdd_pairs = rdd_features.cartesian(rdd_features).filter(lambda s: s[0][0] != s[1][0])
print("num partitions: ",rdd_pairs.getNumPartitions())

# applys the fundamental matrix estimation function on the pairs formed in the previous step and filters away all pairs with a low inlier set.
rdd_fundamental_matrix = rdd_pairs.map(estimate_fundamental_matrix).filter(lambda s: len(s[3]) > 50)
print("num partitions: ",rdd_fundamental_matrix.getNumPartitions())

# collects the result from the nodes
data = rdd_fundamental_matrix.collect()

# displays the fundamental matrices
display_data(data)

Results

  1. Time complexity of our algorithm
  2. Visualizing epipolar lines
  3. Visualizing matching points

Now we have computed the fundamental matrices, let us have a look at them by present the epipolar lines.

import random

def drawlines(img1,img2,lines,pts1,pts2):
  #from opencv tutorial
    ''' img1 - image on which we draw the epilines for the points in img2
        lines - corresponding epilines '''
    r,c,_ = img1.shape
    for r,pt1,pt2 in zip(lines,pts1,pts2):
        color = tuple(np.random.randint(0,255,3).tolist())
        x0,y0 = map(int, [0, -r[2]/r[1] ])
        x1,y1 = map(int, [c, -(r[2]+r[0]*c)/r[1] ])
        img1 = cv2.line(img1, (x0,y0), (x1,y1), color,3)
        img1 = cv2.circle(img1,tuple(pt1),10,color,-1)
        img2 = cv2.circle(img2,tuple(pt2),10,color,-1)
    return img1,img2

# draws a random subset of the data
sampling = random.choices(data, k=4)

#plotts the inlier features in the first image and the corresponding epipolar lines in the second image
i = 0
fig, axs = plt.subplots(1, 8, figsize=(25, 5))
for el in sampling:

  a, b, F, matches = el;

  if F is None:
    continue

  name1, kp1, desc1 = a
  name2, kp2, desc2 = b
  im1 = cv2.imread(name1)
  im2 = cv2.imread(name2)

  pts1 = []
  pts2 = []

  for m in matches:
    pts1.append(kp1[m[0]]);
    pts2.append(kp2[m[1]]);

  pts1 = np.array(pts1, dtype=np.float32)
  pts2 = np.array(pts2, dtype=np.float32)

  lines1 = cv2.computeCorrespondEpilines(pts2.reshape(-1,1,2), 2, F)
  lines1 = lines1.reshape(-1,3)

  img1, img2 = drawlines(im1,im2,lines1,pts1,pts2)

  axs[i].imshow(img2), axs[i].set_title('Image pair '+str(i+1)+': Features')
  axs[i+1].imshow(img1), axs[i+1].set_title('Image pair '+str(i+1)+': Epipolar lines')

  i += 2
  #plt.subplot(121),plt.imshow(img1), plt.title('Epipolar lines')
  #plt.subplot(122),plt.imshow(img2), plt.title('Points')
display(plt.show())

plot

Present Matches

import random

# draws a random subset of the data
sampling = random.choices(data, k=4)

j = 0
fig, axs = plt.subplots(1, 4, figsize=(25, 5))
# draws lines between the matched feature in the two images (not epipolar lines!)
for el in sampling:

  a, b, F, matches = el;

  if F is None:
    continue

  name1, kp1, desc1 = a
  name2, kp2, desc2 = b
  im1 = cv2.imread(name1)
  im2 = cv2.imread(name2)

  kp1_vec = []
  kp2_vec = []
  matches_vec = []

  for i,m in enumerate(matches):
    kp1_vec.append(cv2.KeyPoint(kp1[m[0]][0], kp1[m[0]][1],1))
    kp2_vec.append(cv2.KeyPoint(kp2[m[1]][0], kp2[m[1]][1],1))

    matches_vec.append(cv2.DMatch(i, i, 1))    

  matched_image = im1.copy()

  matched_image = cv2.drawMatches(im1, kp1_vec, im2, kp2_vec, matches_vec, matched_image)

  axs[j].imshow(matched_image), axs[j].set_title('Image pair '+str(j+1)+': Matches')
  j += 1
  #plot_img("matches", matched_image)
display(plt.show())

plot

ScaDaMaLe Course site and book

MixUp and Generalization

Group Project Authors:

  • Olof Zetterqvist

  • Jimmy Aronsson

  • Fredrik Hellström

Video: https://chalmersuniversity.box.com/s/ubij9bjekg6lcov13kw16kjhk01uzsmy

Introduction

The goal of supervised machine learning is to predict labels given examples. Specifically, we want to choose some mapping f, referred to as a hypothesis, from a space of examples X to a space of labels Y. As a concrete example, X can be the set of pictures of cats and dogs of a given size, Y can be the set {cat, dog}, and f can be a neural network. To choose f, we rely on a set of labelled data. However, our true goal is to perform well on unseen data, i.e., test data. If an algorithm performs similarly well on unseen data as on the training data we used, we say that it generalizes.

A pertinent question, then, is to explain why a model generalizes and using the answer to improve learning algorithms. For overparameterized deep learning methods, this question has yet to be answered conclusively. Recently, a training procedure called MixUp was proposed to improve the generalization capabilities of neural networks [[1]]. The basic idea is that instead of feeding the raw training data to our supervised learning algorithm, we instead use convex combinations of two randomly selected data points. The benefit of this is two-fold. First, it plays the role of data augmentation: the network will never see two completely identical training samples, since we constantly produce new random combinations. Second, the network is encouraged to behave nicely in-between training samples, which has the potential to reduce overfitting. A connection between performance on MixUp data and generalization abilities of networks trained without the MixUp procedure was also studied in [[2]].

** Project description **

In this project, we will investigate the connection between MixUp and generalization at a large scale by performing a distributed hyperparameter search. We will look at both Random Forests and convolutional neural networks. First, we will the algorithms without MixUp, and study the connection between MixUp performance and test error. Then, we will train the networks on MixUp data, and see whether directly optimizing MixUp performance will yield more beneficial test errors.

To make the hyperparameter search distributed and scalable, we will use the Ray Tune package [[3]]. We also planned to use Horovod to enable the individual networks to handle data in a distributed fashion [[4]]. Scalability would then have entered our project in both the scope of the hyperparameter search and the size of the data set. However, we had unexpected GPU problems and were ultimately forced to skip Horovod due to lack of time.

Summary of findings

Our findings were as follows. For Random Forests, we did not find any significant improvement when using MixUp. This may be due to the fact that Random Forests, since they are not trained iteratively, cannot efficiently utilize MixUp. Furthermore, since Decision Trees are piecewise constant, it is unclear what it would mean to force them to behave nicely in-between training samples. When training a CNN to classify MNIST images, we found practically no difference between training on MixUp data and normal, untouched data. This may be due to MNIST being "too easy". However, for a CNN trained on CIFAR-10, the benefits of MixUp became noticable. First of all, training the same number of epochs on MixUp data as the normal training data gave a higher accuracy on the validation set. Secondly, while the network started to overfit on normal data, this did not occur to a significant degree when using MixUp data. This indicates that MixUp can be beneficial when the algorithm and data are sufficiently complex.

ScaDaMaLe Course site and book

Random Forests and MixUp

First off, we will implement MixUp for a Random Forest applied to the Fashion-MNIST data set. Fashion-MNIST consists of black and white 28x28 images of clothing items [[6]]. We will use the scikit-learn package to implement the Random Forest algorithm, and then perform a distributed hyperparameter search with Ray tune. Thus, scalability enters this part of the project through the hyperparameter search.

First, we will just train the Random Forest using the basic training data and observe the performance. Next, we will do the same but utilizing MixUp. Typically, MixUp is used for iterative algorithms, where a new batch of MixUp data is created at each iteration. However, since a Random Forest is not trained iteratively, we use MixUp to augment our data set by adding a number of MixUp data points to our original data set.

First, we will load the data set.

# Loading Fashion-mnist

import tensorflow as tf
(X, y),(testX,testY) = tf.keras.datasets.fashion_mnist.load_data()
X = X.reshape(60000, 28*28)

from sklearn.preprocessing import LabelBinarizer

enc = LabelBinarizer()
y = enc.fit_transform(y)

Next, we define a function that can be used to generated new MixUp data.

# Function to create MixUp data

def create_mixup(X, y, beta_param):
  n = np.shape(X)[0]
  shuffled_indices = np.arange(n).tolist()
  np.random.shuffle(shuffled_indices)
  X_s = X[shuffled_indices]
  y_s = y[shuffled_indices]
  mixup_l = np.random.beta(beta_param,beta_param)
  X_mixed = X*(1-mixup_l) + mixup_l*X_s
  y_mixed = y*(1-mixup_l) + (mixup_l)*(y_s)
  return X_mixed, y_mixed

Next, we split the data into training and validation sets.

# Fixes the issue "AttributeError: 'ConsoleBuffer has no attribute 'fileno'"
import sys
sys.stdout.fileno = lambda: False

import numpy as np

from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor

# Prepare the data
num_classes = 10
np.random.seed(1)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state = 1, test_size=0.5)
X_train_base = X_train.copy()
y_train_base = y_train.copy()

We now define the training function that will be used by Ray Tune. For each set of hyperparameters, we initialize a Random Forest and train on the data, either with or without added folds of MixUp data. We then evaluate on some metrics of interest.

# Fixes the issue "AttributeError: 'ConsoleBuffer has no attribute 'fileno'"
import sys
sys.stdout.fileno = lambda: False

from sklearn import metrics
import numpy as np

from sklearn.ensemble import RandomForestRegressor

def training_function(config, checkpoint_dir=None):
    # Hyperparameters
    n_estimators, max_depth, mixup_folds = config["n_estimators"], config["max_depth"], config["mixup_folds"]
    
    X_train_data = X_train_base.copy()
    y_train_data = y_train_base.copy()
    
    for i in range(mixup_folds):
      X_mixed, y_mixed = create_mixup(X_train_base, y_train_base, 0.2)
      X_train_data = np.concatenate([X_train_data, X_mixed])
      y_train_data = np.concatenate([y_train_data, y_mixed])
    
    # Instantiate model with n_estimators decision trees
    rf = RandomForestRegressor(n_estimators = n_estimators, max_depth = max_depth, random_state = 1)
    # Train the model on training data
    rf.fit(X_train_data, y_train_data)
    
    """
    Logg the results
    """
    
    #x_mix, y_mix = mixup_data( x_val, y_val)
    #mix_loss, mix_acc = model.evaluate( x_mix, y_mix )
    y_pred_probs = rf.predict(X_test)
    y_pred = np.zeros_like(y_pred_probs)
    y_pred[np.arange(len(y_pred_probs)), y_pred_probs.argmax(1)] = 1
    val_acc = np.mean(np.argmax(y_test,1) == np.argmax(y_pred,1))
    
    y_pred_probs = rf.predict(X_train_base)
    y_pred = np.zeros_like(y_pred_probs)
    y_pred[np.arange(len(y_pred_probs)), y_pred_probs.argmax(1)] = 1
    train_acc = np.mean(np.argmax(y_train_base,1) == np.argmax(y_pred,1))
    
    mean_loss = 1
    
    tune.report(mean_loss=mean_loss, train_accuracy = train_acc, val_accuracy = val_acc)

Finally, we run the actual hyperparameter search in a distributed fashion. Regarding the amount of MixUp data, we try using no MixUp, or we add 2 folds, effectively tripling the size of the data set.

from ray import tune
from ray.tune import CLIReporter
# Limit the number of rows.
reporter = CLIReporter(max_progress_rows=10)

reporter.add_metric_column("val_accuracy")
reporter.add_metric_column("train_accuracy")



analysis = tune.run(
    training_function,
    config={
      'n_estimators': tune.grid_search([10, 20]),
      'max_depth': tune.grid_search([5, 10]),
      'mixup_folds': tune.grid_search([0, 2])
    },
    local_dir='ray_results',
    progress_reporter=reporter
) 

print("Best config: ", analysis.get_best_config(
    metric="val_accuracy", mode="max"))

#Get a dataframe for analyzing trial results.
df = analysis.results_df

Let's look at the data from the different trials to see if we can conclude anything about the efficacy of MixUp.

df[['config.n_estimators', 'config.max_depth', 'config.mixup_folds', 'train_accuracy', 'val_accuracy']]
config.n_estimators config.max_depth config.mixup_folds train_accuracy val_accuracy
trial_id
7e269_00000 10 5 0 0.735533 0.728100
7e269_00001 10 10 0 0.887033 0.835733
7e269_00002 10 5 2 0.729433 0.720333
7e269_00003 10 10 2 0.888467 0.827867
7e269_00004 20 5 0 0.734367 0.729667
7e269_00005 20 10 0 0.888367 0.837833
7e269_00006 20 5 2 0.724567 0.715700
7e269_00007 20 10 2 0.865267 0.818967

Conclusions

Based on the results, MixUp does not seem to help in this context. The validation accuracy achieved with MixUp is actually slightly lower than without it. The reasons for this may be that the data is too simple, that Random Forests cannot fully utilize the power of MixUp augmentation due to not being iterative, or that the piecewise constant nature Decision Trees means that MixUp cannot help too much.

ScaDaMaLe Course site and book

CNN for MNIST

Let us move to a classic machine learning task: Image classification with Convolutional Neural Networks (CNN). The general idea is as follows: 1. Train a CNN on normal training data. Evaluate its performance on a conventional ("unmixed") validation set and on a MixUp ("mixed") version of the same validation set. 2. Train a CNN on MixUp training data. Evaluate its performance on both unmixed and mixed validation data.

When training on MixUp training data, we compute a new MixUp of each batch in every epoch. As explained in the introduction, this effectively augments the training set and hopefully makes the network more robust. Evaluating the performance of both networks on unmixed and mixed validation data allows us to compare the generalization properties of both networks, the working hypothesis being that training on MixUp data enhances generalization. To reduce the dependence of our results on the specific choice of hyperparameters, we train several CNNs with varying numbers of convolutional and dense layers. This is done for both kinds of training data (unmixed, mixed) in a distributed fashion using Ray Tune.

In this notebook, we train a simple MNIST classifier. This notebook runs on a CPU, but with a hyperparameter search method that can be scaled up to different workers and be run in parallel.

Import the necessary packages.

import tensorflow as tf
import numpy as np
from tensorflow import keras
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense,Conv2D,Flatten,BatchNormalization,Dropout
from ray import tune
from ray.tune import CLIReporter
from sklearn.metrics import confusion_matrix
#from sparkdl import HorovodRunner
from tensorflow.keras.preprocessing.image import ImageDataGenerator

import shutil
import os


# Fixes the issue "AttributeError: 'ConsoleBuffer has no attribute 'fileno'"
import sys
sys.stdout.fileno = lambda: False

A data generator class that performs MixUp in the loaded data. This is done with two Tensorflow data generators that both load data from our dataset in a shuffled manner and then linearly combined in order to construct the mixed data. The time complexity of this loader is at least twice the time as a normal Tensorflow data loader.

class MixupImageDataGenerator_from_tensor(tf.keras.utils.Sequence):

    """
    A datagenerator that performs mixup on the input data. The input to the generator is numpy arrays with data and labels. 
    """
  
    def __init__(self, X,Y, batch_size, alpha=0.2, subset=None):
        self.batch_size = batch_size
        self.batch_index = 0
        self.alpha = alpha
        self.X = X
        self.Y = Y
        
        # First iterator yielding tuples of (x, y)
        ind = np.random.permutation(len(X))
        self.generator1 = iter(tf.data.Dataset.from_tensor_slices((X[ind],Y[ind])).batch(self.batch_size))
        
        
        # Second iterator yielding tuples of (x, y)
        ind = np.random.permutation(len(X))
        self.generator2 = iter(tf.data.Dataset.from_tensor_slices((X[ind],Y[ind])).batch(self.batch_size))

        # Number of images across all classes in image directory.
        self.n = len(X)


    def __len__(self):
        # returns the number of batches
        return (self.n + self.batch_size - 1) // self.batch_size

    def __getitem__(self, index):
        
        if self.batch_index >= self.__len__()-1:
          self.reset_index()
          self.batch_index = 0
        else:
          self.batch_index += 1
        
        # Get a pair of inputs and outputs from two iterators.
        X1, y1 = self.generator1.next()
        X2, y2 = self.generator2.next()
        
        # random sample the lambda value from beta distribution.
        l = np.random.beta(self.alpha, self.alpha, X1.shape[0])

        X_l = l.reshape(X1.shape[0], 1, 1, 1)
        y_l = l.reshape(X1.shape[0], 1)


        # Perform the mixup.
        X = X1 * X_l + X2 * (1 - X_l)
        y = y1 * y_l + y2 * (1 - y_l)
        return X, y

    def reset_index(self):
        """Reset the generator indexes array.
        """

        # First iterator yielding tuples of (x, y)
        ind = np.random.permutation(len(self.X))
        self.generator1 = iter(tf.data.Dataset.from_tensor_slices((self.X[ind],self.Y[ind])).batch(self.batch_size))
        
        
        # Second iterator yielding tuples of (x, y)
        ind = np.random.permutation(len(self.X))
        self.generator2 = iter(tf.data.Dataset.from_tensor_slices((self.X[ind],self.Y[ind])).batch(self.batch_size))



    def on_epoch_end(self):
        return
        #self.reset_index()

Two helping methods that create the model based on the hyperparameters "numberconv" and "numberdense" and create the dataloaders needed for training and validation.

"""
creates the CNN with number_conv convolutional layers followed by number_dense dense layers. THe model is compiled with a SGD optimizer and a categorical crossentropy loss.
"""
def create_model(number_conv,number_dense):
    model = Sequential()
    model.add(Conv2D(24,kernel_size = 3, activation='relu',padding="same", input_shape=(img_height, img_width,channels)))
    model.add(BatchNormalization())
    for s in range(1,number_conv):
        model.add(Conv2D(24+12*s,kernel_size = 3,padding="same", activation = 'relu'))
        model.add(BatchNormalization())
    model.add(Flatten())
    model.add(Dropout(0.4))
    for s in range(number_dense):
        model.add(Dense(units=num_classes, activation='relu'))
        model.add(Dropout(0.4))
    model.add(BatchNormalization())
    model.add(Dense(num_classes,activation= "softmax"))
    model.compile(optimizer="adam", loss='categorical_crossentropy', metrics=['accuracy'])
    return model


"""
A method that gives us the different dataloaders that we need for training and validation.

train_mix_loader: A data loader that will give us mixes data for training
train_loader: A data loader that gives us the unmixed training data
val_mixed_loader: A data loader that gives us the mixed validation data
val_loader: A data loader with the unmixed validation data

"""
        
def get_mnist_dataloaders():
  (trainX,trainY),(testX,testY) = tf.keras.datasets.mnist.load_data()
  trainX,testX = tf.cast(trainX,tf.float32),tf.cast(testX,tf.float32)
  trainX,testX = tf.expand_dims(trainX, 3),tf.expand_dims(testX, 3)
  trainY_oh,testY_oh = tf.one_hot(trainY,10),tf.one_hot(testY,10)
  trainY_oh,testY_oh = tf.cast(trainY_oh,tf.float32).numpy(),tf.cast(testY_oh,tf.float32).numpy()
  trainX,testX = trainX.numpy()/255 * 2 - 2,testX.numpy()/255 * 2 - 2

  
  train_loader_mix = MixupImageDataGenerator_from_tensor(trainX,trainY_oh,batch_size)
  train_loader = tf.data.Dataset.from_tensor_slices((trainX,trainY_oh)).batch(batch_size)
  test_loader_mix = MixupImageDataGenerator_from_tensor(testX,testY_oh,batch_size)
  test_loader = tf.data.Dataset.from_tensor_slices((trainX,trainY_oh)).batch(batch_size)
  
  return train_loader_mix,train_loader,test_loader_mix,test_loader
  

The method that describes how to construct and train the model.

The steps here are, loading the data and generate the different data loaders, train the model on the preprocessed data and validate the method on the different data sets and report back to the scheduler.

def training_function(config, checkpoint_dir=None):
    # Hyperparameters
    number_conv, number_dense,train_with_mixed_data = config["number_conv"], config["number_dense"],config["train_with_mixed_data"]
    
     
    """
    Get the different dataloaders
    One with training data using mixing
    One with training without mixing
    One with validation data with mixing
    One with validation without mixing
    """
    #train_mix_dataloader,train_dataloader,val_mix_dataloader,val_dataloader = get_data_loaders(train_dir,test_dir,for_training = True)
    train_mix_dataloader,train_dataloader,val_mix_dataloader,val_dataloader = get_mnist_dataloaders()
    """
    Construct the model based on hyperparameters
    """
    model = create_model( number_conv,number_dense )

    
    """
    Adds earlystopping to training. This is based on the performance accuracy on the validation dataset. Chould we have validation loss here?
    """
    callbacks = [tf.keras.callbacks.EarlyStopping(patience=10,monitor="val_accuracy",min_delta=0.01,restore_best_weights=True)]

    """
    Train the model and give the training history.
    """
    if train_with_mixed_data:
      history = model.fit_generator(train_mix_dataloader, validation_data = val_mix_dataloader,callbacks = callbacks,verbose = False,epochs = 200)
    else:
      history = model.fit_generator(train_dataloader, validation_data = val_mix_dataloader,callbacks = callbacks,verbose = False,epochs = 200)
    
    """
    Logg the results
    """
    #x_mix, y_mix = mixup_data( x_val, y_val)
    #mix_loss, mix_acc = model.evaluate( x_mix, y_mix )
    #test_loss, test_acc = model.evaluate( x_val, y_val )
    ind_max = np.argmax(history.history['val_accuracy'])
    train_acc = history.history['accuracy'][ind_max]
    val_acc = history.history['val_accuracy'][ind_max]
    
    tune.report(mean_loss=train_acc,val_mix_accuracy = val_acc)

The global hyperparameters that we need for training.

img_height,img_width,channels = 28,28,1
batch_size = 50
alpha = 0.2
num_classes = 10

The cell that runs the code. In order to train the different models in parallel, we use the ray.tune package that will schedule the training and split the available resources to the various workers.

# Limit the number of rows.
reporter = CLIReporter(max_progress_rows=10)
# Add a custom metric column, in addition to the default metrics.
# Note that this must be a metric that is returned in your training results.
reporter.add_metric_column("val_mix_accuracy")
#reporter.add_metric_column("test_accuracy")

#config = {"number_conv" : 3,"number_dense" : 5}
#training_function(config)

#get_data_loaders()

analysis = tune.run(
    training_function,
    config={
        "number_conv": tune.grid_search(np.arange(2,5,1).tolist()),
        "number_dense": tune.grid_search(np.arange(0,3,1).tolist()),
        "train_with_mixed_data": tune.grid_search([True,False])
    },
    local_dir='ray_results',
    progress_reporter=reporter)

print("Best config: ", analysis.get_best_config(
    metric="mean_loss", mode="max"))

#Get a dataframe for analyzing trial results.
df = analysis.results_df
#print(df)
df

Conclusion

From the dataframe of the results shown above, we can see the accuracy on the validation dataset for the different settings. If we compare the runs with mixup against those without mixup for the different network architectures, we can investigate how much of an effect the mixup implementation has. As we can see, one of the runs did not converge at all. By not including that run, we can see that the average difference off accuracy is 0.01 to the advantage of unmixed data. Without any statistical analysis, we assume this difference is practically zero. Our reasoning to why we don't see any impact of mixup in this simulation is that MNIST is such an easy task to train on that a mixup of the data will not affect the results much.

ScaDaMaLe Course site and book

CNN for Intel Image Classification

We will now implement and test the MixUp preprocessing method for a slightly harder CNN example, the Intel Image Classification data set. Again, this notebook runs on CPUs, but the hyperparameter search is scalable.

# Imports
import tensorflow as tf
import numpy as np
from tensorflow import keras
from tensorflow.keras.layers import Dense,Conv2D,Flatten,BatchNormalization,Dropout
from tensorflow.keras import Sequential
from ray import tune
from ray.tune import CLIReporter
from sklearn.metrics import confusion_matrix
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from functools import partial

# Fixes the issue "AttributeError: 'ConsoleBuffer has no attribute 'fileno'"
import sys
sys.stdout.fileno = lambda: False

We will use the Intel Image Classification data set [[3]]. It consists of 25k 150x150 RBG images from 6 different classes: buildings, forest, glacier, mountain, sea, or street. However when we load the data to our model we will rescale the images to 32x32 RBG images.

"""
Global parameters for training.
"""

img_height,img_width,channels = 32,32,3
batch_size = 32
train_data_dir,test_data_dir = "/dbfs/FileStore/tables/Group20/seg_train/seg_train/", "dbfs/FileStore/tables/Group20/seg_test/seg_test/"
num_classes = 6
alpha = 0.2 # Degree of mixup is ~ Beta(alpha,alpha)

To create MixUp data, we will define a custom data generator. It takes an underlying image generator as argument, and outputs convex combinations of two randomly selected (example,label) pairs drawn according to the underlying generator.

Note that, in order to speed up the data generators, we need to make the data more accessible. We do this by copying the data from the dbfs to the working directory. This is done with our copy_data function.

import os, shutil
def copy_data():
  src = "/dbfs/FileStore/tables/Group20/seg_train/seg_train"
  dst = os.path.join(os.getcwd(), 'seg_train')
  print("Copying data to working folder")
  shutil.copytree(src, dst)
  print("Done with copying!")
  train_data_dir = dst

  src = "/dbfs/FileStore/tables/Group20/seg_test/seg_test"
  dst = os.path.join(os.getcwd(), 'seg_test')
  print("Copying data to working folder")
  shutil.copytree(src, dst)
  print("Done with copying!")
  test_data_dir = dst

  return train_data_dir,test_data_dir
class MixupImageDataGenerator(tf.keras.utils.Sequence):
    def __init__(self, generator, directory, batch_size, img_height, img_width, alpha=0.2, subset=None):
        self.batch_size = batch_size
        self.batch_index = 0
        self.alpha = alpha

        # First iterator yielding tuples of (x, y)
        self.generator1 = generator.flow_from_directory(directory,
                                                        target_size=(
                                                            img_height, img_width),
                                                        class_mode="categorical",
                                                        batch_size=batch_size,
                                                        shuffle=True,
                                                        subset=subset)

        # Second iterator yielding tuples of (x, y)
        self.generator2 = generator.flow_from_directory(directory,
                                                        target_size=(
                                                            img_height, img_width),
                                                        class_mode="categorical",
                                                        batch_size=batch_size,
                                                        shuffle=True,
                                                        subset=subset)

        # Number of images across all classes in image directory.
        self.n = self.generator1.samples


    def __len__(self):
        # returns the number of batches
        return (self.n + self.batch_size - 1) // self.batch_size

    def __getitem__(self, index):
        # Get a pair of inputs and outputs from two iterators.
        X1, y1 = self.generator1.next()
        X2, y2 = self.generator2.next()


        # random sample the lambda value from beta distribution.
        l = np.random.beta(self.alpha, self.alpha, X1.shape[0])

        X_l = l.reshape(X1.shape[0], 1, 1, 1)
        y_l = l.reshape(X1.shape[0], 1)


        # Perform the mixup.
        X = X1 * X_l + X2 * (1 - X_l)
        y = y1 * y_l + y2 * (1 - y_l)
        return X, y

    def reset_index(self):
        """Reset the generator indexes array.
        """

        self.generator1._set_index_array()
        self.generator2._set_index_array()


    def on_epoch_end(self):
        self.reset_index()
"""
A method that gives us the different dataloaders that we need for training and validation.

With for_training set to True, the model gives us the dataloaders
* train_mix_loader: Gives us mixed data for training
* train_loader:     Gives us the unmixed training data
* val_mix_loader:   Gives us mixed validation data
* val_loader:       Gives us unmixed validation data

By setting for_training to False, the method gives us the dataloader
* test_loader: Unmixed and unshuffled dataloader for the testing data. The reason for not shuffeling the data is in order to simplify the validation process.
"""
def get_data_loaders(train_data_dir,test_data_dir,for_training = True):
  
    #For training data
    if for_training:
        datagen_train_val = ImageDataGenerator(rescale=1./255,
                                rotation_range=5,
                                width_shift_range=0.05,
                                height_shift_range=0,
                                shear_range=0.05,
                                zoom_range=0,
                                brightness_range=(1, 1.3),
                                horizontal_flip=True,
                                fill_mode='nearest',
                                validation_split=0.1)

        train_mix_loader = MixupImageDataGenerator(generator = datagen_train_val,
                                                   directory = train_data_dir,
                                                   batch_size = batch_size,
                                                   img_height = img_height,
                                                   img_width = img_width,
                                                   alpha=alpha,
                                                   subset="training")
        
        val_mix_loader = MixupImageDataGenerator(generator = datagen_train_val,
                                                 directory = train_data_dir,
                                                 batch_size = batch_size,
                                                 img_height = img_height,
                                                 img_width = img_width,
                                                 alpha=alpha,
                                                 subset="validation")

        train_loader = datagen_train_val.flow_from_directory(train_data_dir,
                                                        target_size=(img_height, img_width),
                                                        class_mode="categorical",
                                                        batch_size=batch_size,
                                                        shuffle=True,
                                                        subset="training")

        val_loader = datagen_train_val.flow_from_directory(train_data_dir,
                                                        target_size=(img_height, img_width),
                                                        class_mode="categorical",
                                                        batch_size=batch_size,
                                                        shuffle=True,
                                                        subset="validation")
        
        return train_mix_loader,train_loader, val_mix_loader, val_loader

    #For test data
    else:
        datagen_test = ImageDataGenerator(rescale=1./255,
                                rotation_range=0,
                                width_shift_range=0,
                                height_shift_range=0,
                                shear_range=0,
                                zoom_range=0,
                                brightness_range=(1, 1),
                                horizontal_flip=False,
                                fill_mode='nearest',
                                validation_split=0)

        test_loader = datagen_test.flow_from_directory(test_data_dir,
                                                    target_size=(img_height, img_width),
                                                        class_mode="categorical",
                                                        batch_size=batch_size,
                                                        shuffle=False,
                                                        subset=None)

        return test_loader

Next, we define the function for creating the CNN.

"""
creates the CNN with number_conv convolutional layers followed by number_dense dense layers. The model is compiled with a SGD optimizer and a categorical crossentropy loss.
"""
def create_model(number_conv,number_dense):
    model = Sequential()
    model.add(Conv2D(24,kernel_size = 3, activation='relu',padding="same", input_shape=(img_height, img_width,channels)))
    model.add(BatchNormalization())
    for s in range(1,number_conv):
        model.add(Conv2D(24+12*s,kernel_size = 3,padding="same", activation = 'relu'))
        model.add(BatchNormalization())
    model.add(Flatten())
    model.add(Dropout(0.4))
    for s in range(number_dense):
        model.add(Dense(units=num_classes, activation='relu'))
        model.add(Dropout(0.4))
    model.add(BatchNormalization())
    model.add(Dense(num_classes,activation= "softmax"))
    model.compile(optimizer="adam", loss='categorical_crossentropy', metrics=['accuracy'])
    return model

This is the function that the ray.tune method will run. The steps in the function is to generate the dataloaders that will load the data from the working dictionary, create the model based on the hyperparameters given in the config dictionary, train the model and evaluate the model on the different datasets.

def training_function(config, checkpoint_dir=None):
    # Hyperparameters
    number_conv, number_dense = config["number_conv"], config["number_dense"]
    train_with_mixed_data = config["train_with_mixed_data"]
    
    
    """
    Get the different dataloaders
    One with training data using mixing
    One with training without mixing
    One with validation data with mixing
    One with validation without mixing
    Set for_training to False to get testing data
    """
    #train_data_dir,test_data_dir = "/dbfs/FileStore/tables/Group20/seg_train/seg_train","/dbfs/FileStore/tables/Group20/seg_test/seg_test"

    #train_data_dir, test_data_dir = copy_data()
    train_mix_dataloader,train_dataloader,val_mix_dataloader,val_dataloader = get_data_loaders(train_data_dir, test_data_dir, for_training = True)

    """
    Construct the model based on hyperparameters
    """
    model = create_model( number_conv,number_dense )

    
    """
    Adds earlystopping to training. This is based on the performance accuracy on the validation dataset. Chould we have validation loss here?
    """
    callbacks = [tf.keras.callbacks.EarlyStopping(patience=10,monitor="val_accuracy",min_delta=0.01,restore_best_weights=True)]

    """
    Train the model and give the training history.
    """
    if train_with_mixed_data:
      history = model.fit_generator(train_mix_dataloader, validation_data = val_dataloader,callbacks = callbacks,verbose = True,epochs = 200)
    else:
      history = model.fit_generator(train_dataloader, validation_data = val_dataloader,callbacks = callbacks,verbose = True,epochs = 200)
    
    """
    Logg the results
    """
    #x_mix, y_mix = mixup_data( x_val, y_val)
    #mix_loss, mix_acc = model.evaluate( x_mix, y_mix )
    train_loss_unmix, train_acc_unmix = model.evaluate( train_dataloader )
    val_mix_loss, val_mix_acc = model.evaluate( val_mix_dataloader )
    ind_max = np.argmax(history.history['val_accuracy'])
    train_mix_acc = history.history['accuracy'][ind_max]
    train_mix_loss = history.history["loss"][ind_max]
    train_loss = history.history['loss'][ind_max]
    val_acc = history.history['val_accuracy'][ind_max]
    val_loss = history.history['val_loss'][ind_max]
    
    tune.report(mean_loss=train_mix_loss, train_mix_accuracy = train_mix_acc, train_accuracy = train_acc_unmix, val_mix_accuracy = val_mix_acc, val_accuracy = val_acc)
train_data_dir,test_data_dir = copy_data()
Copying data/files to local horovod folder...
Done with copying!
Copying data/files to local horovod folder...
Done with copying!

First, we will train our neural networks using a standard procedure, with normal training data. We then measure their performance on a validation set as well as on a MixUp version of the same validation set, the idea being to study the connection between these metrics.

# Limit the number of rows.
reporter = CLIReporter(max_progress_rows=10)
# Add a custom metric column, in addition to the default metrics.
# Note that this must be a metric that is returned in your training results.
reporter.add_metric_column("val_mix_accuracy")
reporter.add_metric_column("val_accuracy")
reporter.add_metric_column("train_accuracy")
reporter.add_metric_column("train_mix_accuracy")

#config = {"number_conv" : 3,"number_dense" : 5}
#training_function(config)

#get_data_loaders()

analysis = tune.run(
    training_function,
    config={
        "number_conv": tune.grid_search(np.arange(2,7,3).tolist()),
        "number_dense": tune.grid_search(np.arange(0,3,2).tolist()),
        "train_with_mixed_data": False
    },
    local_dir='ray_results',
    progress_reporter=reporter
) 
  #resources_per_trial={'gpu': 1})

print("Best config: ", analysis.get_best_config(
    metric="val_accuracy", mode="max"))

#Get a dataframe for analyzing trial results.
df = analysis.results_df
df

We now check whether directly training on MixUp data has a positive effect on network performance.

# Limit the number of rows.
reporter = CLIReporter(max_progress_rows=10)
# Add a custom metric column, in addition to the default metrics.
# Note that this must be a metric that is returned in your training results.
reporter.add_metric_column("val_mix_accuracy")
reporter.add_metric_column("val_accuracy")
reporter.add_metric_column("train_accuracy")

#config = {"number_conv" : 3,"number_dense" : 5}
#training_function(config)

#get_data_loaders()

analysis = tune.run(
    training_function,
    config={
        "number_conv": tune.grid_search(np.arange(2,7,3).tolist()),
        "number_dense": tune.grid_search(np.arange(0,3,2).tolist()),
        "train_with_mixed_data": True
    },
    local_dir='ray_results',
    progress_reporter=reporter)
    
  #resources_per_trial={'gpu': 1})

print("Best config: ", analysis.get_best_config(
    metric="val_accuracy", mode="max"))

#Get a dataframe for analyzing trial results.
df = analysis.results_df
df

Conclusions

We found that training a CNN using the Ray package was harder than we thought from the beginning. This is probably due to the GPU usage and that we had problems assigning the Keras model to the correct GPU. In other words, Ray requested GPU usage but the code only ever ran on CPU, which took an unfeasible amount of time.

ScaDaMaLe Course site and book

CNNs and MixUp with Horovod

One of the arguments in favor for using MixUp is the data augmentation it provides. For iterative learning algorithms, such as CNNs trained with a variant of stochastic gradient descent, we can generate new MixUp data for each training batch. This effectively means that the network will never see any training example twice. To harness this positive aspect of MixUp to its fullest extent, we want our algorithm to be scalable in the data to use it efficiently. To train neural networks in a scalable way with respet to the data, one can use Horovod, which parallelizes the neural network training procedure.

In this notebook, we use Horovod to train a CNN on the CIFAR-10 data set, both without and with MixUp. While the notebook is executed with only one GPU, the code scales nicely if more GPUs are available.

First, we import packages and check what computational resources are available. In this case, we have one GPU.

import horovod.tensorflow.keras as hvd
import tensorflow as tf
import numpy as np
from tensorflow import keras
from tensorflow.keras.layers import Dense,Conv2D,Flatten,BatchNormalization,Dropout
from tensorflow.keras import Sequential
from sklearn.metrics import confusion_matrix
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from functools import partial
import os
import time

print(tf.__version__)
from tensorflow.python.client import device_lib
local_device_protos = device_lib.list_local_devices()
print(local_device_protos)

checkpoint_dir = '/dbfs/ml/Group_20/train/{}/'.format(time.time())

os.makedirs(checkpoint_dir)

Next, we define the generator for our MixUp images.

class MixupImageDataGenerator_from_tensor(tf.keras.utils.Sequence):

    """
    A datagenerator that performs mixup on the input data. The input to the generator is numpy arrays with data and labels. 
    """
  
    def __init__(self, X,Y, batch_size, alpha=0.2, subset=None):
        self.batch_size = batch_size
        self.batch_index = 0
        self.alpha = alpha
        self.X = X
        self.Y = Y
        
        # First iterator yielding tuples of (x, y)
        ind = np.random.permutation(len(X))
        self.generator1 = iter(tf.data.Dataset.from_tensor_slices((X[ind],Y[ind])).batch(self.batch_size))
        
        
        # Second iterator yielding tuples of (x, y)
        ind = np.random.permutation(len(X))
        self.generator2 = iter(tf.data.Dataset.from_tensor_slices((X[ind],Y[ind])).batch(self.batch_size))

        # Number of images across all classes in image directory.
        self.n = len(X)


    def __len__(self):
        # returns the number of batches
        return (self.n + self.batch_size - 1) // self.batch_size

    def __getitem__(self, index):
        
        if self.batch_index >= self.__len__()-1:
          self.reset_index()
          self.batch_index = 0
        else:
          self.batch_index += 1
        
        # Get a pair of inputs and outputs from two iterators.
        X1, y1 = self.generator1.next()
        X2, y2 = self.generator2.next()
        
        # random sample the lambda value from beta distribution.
        l = np.random.beta(self.alpha, self.alpha, X1.shape[0])

        X_l = l.reshape(X1.shape[0], 1, 1, 1)
        y_l = l.reshape(X1.shape[0], 1)


        # Perform the mixup.
        X = X1 * X_l + X2 * (1 - X_l)
        y = y1 * y_l + y2 * (1 - y_l)
        return X, y

    def reset_index(self):
        """Reset the generator indexes array.
        """

        # First iterator yielding tuples of (x, y)
        ind = np.random.permutation(len(self.X))
        self.generator1 = iter(tf.data.Dataset.from_tensor_slices((self.X[ind],self.Y[ind])).batch(self.batch_size))
        
        
        # Second iterator yielding tuples of (x, y)
        ind = np.random.permutation(len(self.X))
        self.generator2 = iter(tf.data.Dataset.from_tensor_slices((self.X[ind],self.Y[ind])).batch(self.batch_size))



    def on_epoch_end(self):
        return
        #self.reset_index()
        
        

We now define functions for creating the neural network and initializing the dataloaders. We will use dataloaders both with and without MixUp for both training and validation.

"""
creates the CNN with number_conv convolutional layers followed by number_dense dense layers. THe model is compiled with a SGD optimizer and a categorical crossentropy loss.
"""
def create_model(number_conv,number_dense,optimizer = "adam"):
    model = Sequential()
    model.add(Conv2D(24,kernel_size = 3, activation='relu',padding="same", input_shape=(img_height, img_width,channels)))
    model.add(BatchNormalization())
    for s in range(1,number_conv):
        model.add(Conv2D(24+12*s,kernel_size = 3,padding="same", activation = 'relu'))
        model.add(BatchNormalization())
    model.add(Flatten())
    model.add(Dropout(0.4))
    for s in range(number_dense):
        model.add(Dense(units=num_classes, activation='relu'))
        model.add(Dropout(0.4))
    model.add(BatchNormalization())
    model.add(Dense(num_classes,activation= "softmax"))
    model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])
    return model


"""
A method that gives us the different dataloaders that we need for training and validation. with for_training set to True the model will give us the dataloades

train_mix_loader: A data loader that will give us mixes data for training
train_loader: A data loader that gives us the unmixed training data
val_mixed_loader: A data loader that gives us the mixed validation data
val_loader: A data loader with the unmixed validation data

By setting for_training to False the method will give us the dataloader

test_loader: Unmixed and unshuffled dataloader for the testing data. The reason for not shuffeling the data is in order to simplify the validation process.
"""
def get_cifar_dataloaders():
    (trainX,trainY),(testX,testY) = tf.keras.datasets.cifar10.load_data()
    trainX,testX = tf.cast(trainX,tf.float32),tf.cast(testX,tf.float32)
    #trainX,testX = tf.expand_dims(trainX, 3),tf.expand_dims(testX, 3)
    trainY_oh,testY_oh = tf.one_hot(trainY[:,0],10),tf.one_hot(testY[:,0],10)
    trainY_oh,testY_oh = tf.cast(trainY_oh,tf.float32).numpy(),tf.cast(testY_oh,tf.float32).numpy()
    trainX,testX = trainX.numpy()/255 * 2 - 2,testX.numpy()/255 * 2 - 2


    train_loader_mix = MixupImageDataGenerator_from_tensor(trainX,trainY_oh,batch_size)
    train_loader = tf.data.Dataset.from_tensor_slices((trainX,trainY_oh)).batch(batch_size)
    test_loader_mix = MixupImageDataGenerator_from_tensor(testX,testY_oh,batch_size)
    test_loader = tf.data.Dataset.from_tensor_slices((trainX,trainY_oh)).batch(batch_size)

    return train_loader_mix,train_loader,test_loader_mix,test_loader

Next, we define the training function that will be used by Horovod. Each worker uses the datagenerator to load data.

def train_hvd(learning_rate=1.0, train_with_mix = False):
  # Import tensorflow modules to each worker
  from tensorflow.keras import backend as K
  from tensorflow.keras.models import Sequential
  import tensorflow as tf
  from tensorflow import keras
  import horovod.tensorflow.keras as hvd
  
  # Initialize Horovod
  hvd.init()

  # Pin GPU to be used to process local rank (one GPU per process)
  # These steps are skipped on a CPU cluster
  gpus = tf.config.experimental.list_physical_devices('GPU')
  for gpu in gpus:
    tf.config.experimental.set_memory_growth(gpu, True)
  if gpus:
    tf.config.experimental.set_visible_devices(gpus[hvd.local_rank()], 'GPU')

  # Call the get_dataset function you created, this time with the Horovod rank and size
  train_mix_dataloader,train_dataloader,val_mix_dataloader,val_dataloader = get_cifar_dataloaders()
  model = create_model( number_conv,number_dense )

  # Adjust learning rate based on number of GPUs
  optimizer = keras.optimizers.Adadelta(lr=learning_rate * hvd.size())

  # Use the Horovod Distributed Optimizer
  optimizer = hvd.DistributedOptimizer(optimizer)

  model.compile(optimizer=optimizer,
                loss='categorical_crossentropy',
                metrics=['accuracy'])

  # Create a callback to broadcast the initial variable states from rank 0 to all other processes.
  # This is required to ensure consistent initialization of all workers when training is started with random weights or restored from a checkpoint.
  callbacks = [
      hvd.callbacks.BroadcastGlobalVariablesCallback(0),
  ]

  # Save checkpoints only on worker 0 to prevent conflicts between workers
  if hvd.rank() == 0:
      callbacks.append(keras.callbacks.ModelCheckpoint(checkpoint_dir + '/checkpoint-{epoch}.ckpt', save_weights_only = True))
      
  if train_with_mix:
    model.fit(train_mix_dataloader,
            batch_size=batch_size,
            callbacks=callbacks,
            epochs=epochs,
            verbose=2,
            validation_data=val_dataloader)
  else:
    model.fit(train_dataloader,
            batch_size=batch_size,
            callbacks=callbacks,
            epochs=epochs,
            verbose=2,
            validation_data=val_dataloader)
       

Below, we give the parameters that control the training procedure.

"""
The global parameters for training.
"""

img_height,img_width,channels = 32,32,3
batch_size = 32
#train_data_dir,test_data_dir = "/content/seg_train/seg_train","/content/seg_test/seg_test"
#train_data_dir,test_data_dir = "dbfs/FileStore/tables/Group20/seg_train/seg_train/", "dbfs/FileStore/tables/Group20/seg_test/seg_test/"
#train_data_dir,test_data_dir = copy_data()
num_classes = 10
number_conv = 4
number_dense = 2
epochs = 30
alpha = 0.2
#train_with_mixed_data = True

Now, let us run training with Horovod, first on MixUp data, then without MixUp.

from sparkdl import HorovodRunner

hr = HorovodRunner(np=2)
hr.run(train_hvd, learning_rate=0.1, train_with_mix = True)
from sparkdl import HorovodRunner

hr_nomix = HorovodRunner(np=2)
hr_nomix.run(train_hvd, learning_rate=0.1, train_with_mix = False)

Conclusion

From our simulations on CIFAR-10 with and without MixUp it seems that MixUp provides stability against overfitting and has a bit higher top validation accuracy during training. Specifically, when using MixUp, we reach a validation accuracy around 75%, while we peak at 70% without MixUp. Furthermore, when not using MixUp, the validation accuracy starts to decrease after 20 epochs, while it continues to improve with MixUp. Since this is based on only one simulation, we cannot be fully certain about these conclusions. When it comes to the scalability of the model, Horovod provides beneficial scaling with the data and makes the code very simular to a regular single-machine training notebook. Horovod can also be combined with Ray Tune to also perform a hyperparameter search, but this was not done in this project.

ScaDaMaLe Course site and book

Graph Spectral Analysis

Project by Ciwan Ceylan and Hanna Hultin

Link to project video: "https://drive.google.com/file/d/1ctILEsMskFgpsVnu-6ucCMZqM1TLXfEB/view?usp=sharing"

Background on graphs

A graph can be represented by its incidence matrix B*0. Each row of B*0 corresponds to an edge in the graph and each column to a node. Say that row k corresponds to edge i -> j. Then element i of row k is -1 and element j is 1. All other elements are zero. See the figure below for an example of the indicence matrix with the corresponding graph.

Graph Laplacian

The Laplacian lies at the center of specral graph theory. Its spectrum (its eigenvalues) encodes the geometry of the graph and can be used in various applications ranging from computer graphics to machine learning. Therefore, one approximative approach for comparing graphs (a problem which is NP-hard) is to compare their spectra. Graphs with similar geometry are expected to have similar spectrum and vice-versa. Below is an example of the Laplacian for the graph seen in the cell above. The diagonal elements contain the degree of the corresponding node, while all other elements at index (i,j) are -1 if there is an edge between the nodes i and j and zero otherwise.

The Laplacian can be constructed from the indicence matrix as \[ \mathbf{L} = \mathbf{B}_0^T \mathbf{B}_0 \] Thus, we can compute the top eigenvalues of L by instead computing the top singular values of **B_0**. This follows from the following: \[ \mathbf{B}_0 = \mathbf{U} \mathbf{D}^{1/2} \mathbf{V}^T \] \[ \mathbf{L}= \mathbf{V} \mathbf{D}^{1/2} \mathbf{U}^T \mathbf{U} \mathbf{D}^{1/2} \mathbf{V}^T = \mathbf{V} \mathbf{D} \mathbf{V}^T \]

Scaling to large graphs using randomized SVD

In the new age of big data, it is often interesting to analyze very large graphs of for example financial transactions. Doing the spectral graph analysis for these large graphs is challenging, since the full singular value decomposition of an m x n matrix scales as O(m n min(m,n)). To handle this, we turn to low rank approximations and specifically we use Randomized SVD.

Randomized SVD was introduced in 2011 in the article "Finding structure with randomness: Probabilistic algorithms for constructing approximate matrix decompositions" (https://arxiv.org/abs/0909.4061), and is a smart way of finding a low-rank approximation for the singular value decomposition using Gaussian vectors.

The basic idea is that given the m x n matrix A, we can create a sampling matrix Y = AG where G is a n x k Gaussian random matrix and it turns out that Y is then a quite good approximate basis for the column space of A.

A nice summary of the methods and some variations written by one of the authors of the original article can be found in the following link: https://sinews.siam.org/Details-Page/randomized-projection-methods-in-linear-algebra-and-data-analysis

Methods for generating random graphs

Erdős–Rényi model

In "On the Evoluation of Random Graphs" (https://users.renyi.hu/~p_erdos/1960-10.pdf), Erdős and Rényi describes the random graph with n vertices and N edges where the N edges are chosen at random among all the undirected possible edges.

R-MAT model

The Recursive Matrix (R-MAT) model introduced in the article "R-MAT: A Recursive Model for Graph Mining" (https://kilthub.cmu.edu/articles/R-MATARecursiveModelforGraphMining/6609113/files/12101195.pdf) is described as follows by the authors:

"The basic idea behind R-MAT is to recursively subdivide the adjacency matrix into four equal-sized partitions, and distribute edges with in these partitions with unequal probabilities: starting off with an empty adjacency matrix, we "drop" edges into the matrix one at a time. Each edge chooses one of the four partitions with probabilities a; b; c; d respectively (see Figure1). Of course, a+b+c+d=1. The chosen partition is again subdivided into four smaller partitions, and the procedure is repeated until we reach a simplecell (=1 x 1 partition). This is the cell of the adjacency matrix occupied by the edge."

This is visualized in the following image.

Project specifications

The goal of the project is to compare spectra of the Laplacian for different graphs.

Data

  • Ethereum transactions:
    • Original data from google cloud (https://cloud.google.com/blog/products/data-analytics/ethereum-bigquery-public-dataset-smart-contract-analytics)
    • The dataset contains transactions from March 2018 to March 2020, aggregating per edge (same sender and receiver) and only keeping edges with at least 10 transactions with positive value
  • Randomly generated graphs using the two different methods explained above

Notebooks

  • 01preprocessdata: preprocesses the Ethereum data using Python and PySpark and saves the graph information as parquet file
  • 02generategraphs: generates random graphs in Scala using Spark (SQL and GraphX) and saves the graph information as parquet files
  • 03computersvd: computes RSVD for the different graphs in Scala using Spark and the library Spark-RSVD and saves the singular values as parquet files
  • 04analyseeigenvalues: computes the eigenvalues from the singular values and plots these for different graphs

ScaDaMaLe Course site and book

Preprocess the data

Here the raw Ethereum transaction data read from google big query is preprocessed. - Remove any rows with nulls - Drop all self-loops - Enumerate all the distict addresses - Make a canonical ordering for the edges - Each edge will point from lower to higher index - The sign of the transaction is changed for flipped edges - Aggregate transactions based on src, dst pair - Enumerate the edges with a unique edge id

import pyspark.sql.functions as F
from pyspark.sql.window import Window

Load data into DataFrame

And drop nans and self-loop

data_path = "FileStore/tables/ethereum_march_2018_2020"

df = spark.read.format('csv').option("header", "true").load(data_path)\
  .select(F.col("from_address"), F.col("to_address"), F.col("value"))\
  .na.drop()\
  .where(F.col("from_address") != F.col("to_address"))
addresses = df.select(F.col("from_address").alias("address")).union(df.select(F.col("to_address").alias("address"))).distinct()
address_window = Window.orderBy("address")
addresses = addresses.withColumn("id", F.row_number().over(address_window))

Make the edges canonical

  • Each edge will point from lower to higher index
  • The sign of the transaction is changed for flipped edges
# Exchange string addresses for node ids
df_with_ids = df.join(addresses.withColumnRenamed("address", "to_address").withColumnRenamed("id", "dst__"), on="to_address")\
  .join(addresses.withColumnRenamed("address", "from_address").withColumnRenamed("id", "src__"), on="from_address")

canonical_edges = df_with_ids.withColumn("src",
  F.when(F.col("dst__") > F.col("src__"), F.col("src__")).otherwise(F.col("dst__"))
).withColumn("dst",
  F.when(F.col("dst__") > F.col("src__"), F.col("dst__")).otherwise(F.col("src__"))
).withColumn("direction__",
  F.when(F.col("dst__") > F.col("src__"), 1).otherwise(-1)
).withColumn("flow",
F.col("value") * F.col("direction__")
)
grouped_canonical_edges = canonical_edges.select(F.col("src"), F.col("dst"), F.col("flow")).groupBy(F.col("src"), F.col("dst")).agg(F.sum(F.col("flow")).alias("flow"))
edges_window = Window.orderBy(F.col("src"), F.col("dst"))
grouped_canonical_edges = grouped_canonical_edges.withColumn("id", F.row_number().over(edges_window))
preprocessed_edges_path = "/projects/group21/test_ethereum_canonical_edges"
preprocessed_addresses_path = "/projects/group21/test_ethereum_addresses"

grouped_canonical_edges.write.format('parquet').mode("overwrite").save(preprocessed_edges_path)
addresses.write.format('parquet').mode("overwrite").save(preprocessed_addresses_path)

ScaDaMaLe Course site and book

Generate random graphs

Here random graphs are generated, first using Erdös-Renyi method and then using R-MAT.

import org.apache.spark.graphx.util.GraphGenerators
import scala.util.Random
import org.apache.spark.sql.{Row, DataFrame}
import org.apache.spark.sql.expressions.Window
import org.apache.spark.sql.{functions => F}
import org.apache.spark.sql.types.{IntegerType, LongType, DoubleType, StringType, StructField, StructType}
import org.apache.spark.graphx.util.GraphGenerators
import scala.util.Random
import org.apache.spark.sql.{Row, DataFrame}
import org.apache.spark.sql.expressions.Window
import org.apache.spark.sql.{functions=>F}
import org.apache.spark.sql.types.{IntegerType, LongType, DoubleType, StringType, StructField, StructType}
// Values taken from the Ethereum graph
val numNodes = 1520925
val numEdges = 2152835
numNodes: Int = 1520925
numEdges: Int = 2152835

Function for making a canonical ordering for the edges of a graph

  • Input is a dataframe with rows of "src" and "dst" node numbers
  • A new node id is computed such that the nodes have ids 0,1,2,...
  • The canonical ordering is made such that each edge will point from lower to higher index
def makeEdgesCanonical (edgeDF : org.apache.spark.sql.DataFrame): org.apache.spark.sql.DataFrame = {
  // Remove self-loops
  val edgeDFClean = edgeDF.distinct().where(F.col("src") =!= F.col("dst"))
  
  // Provide each node with an index id
  val nodes = edgeDFClean.select(F.col("src").alias("node")).union(edgeDFClean.select(F.col("dst").alias("node"))).distinct()
  val nodes_window = Window.orderBy("node")
  val nodesWithids = nodes.withColumn("id", F.row_number().over(nodes_window))
  
  // Add the canonical node ids to the edgeDF and drop the old ids
  val dstNodes = nodesWithids.withColumnRenamed("node", "dst").withColumnRenamed("id", "dst__")
  val srcNodes = nodesWithids.withColumnRenamed("node", "src").withColumnRenamed("id", "src__")
  val edgesWithBothIds = edgeDFClean.join(dstNodes, dstNodes("dst") === edgeDFClean("dst"))
                           .join(srcNodes, srcNodes("src") === edgeDFClean("src"))
                           .drop("src").drop("dst")
  
  val edgesWithCanonicalIds = edgesWithBothIds.withColumn("src",
                    F.when(F.col("dst__") > F.col("src__"), F.col("src__")).otherwise(F.col("dst__"))
                  ).withColumn("dst",
                    F.when(F.col("dst__") > F.col("src__"), F.col("dst__")).otherwise(F.col("src__"))
                  ).drop("src__").drop("dst__").distinct().where(F.col("src") =!= F.col("dst"))
  
  val edges_window = Window.orderBy(F.col("src"), F.col("dst"))
  val GroupedCanonicalEdges = edgesWithCanonicalIds.withColumn("id", F.row_number().over(edges_window))
  return GroupedCanonicalEdges
}
makeEdgesCanonical: (edgeDF: org.apache.spark.sql.DataFrame)org.apache.spark.sql.DataFrame

Function for sampling an Erdös-Renyi graph

The resulting graph will have at most the number of nodes given by numNodes and at most numEdges edges. The number of nodes is less than numNodes if some nodes did not have an edge to another node. The number of edges is less than numEdges if some edges are duplicates or if some edges are self-loops.

def sampleERGraph (numNodes : Int, numEdges : Int, iter : Int): org.apache.spark.sql.DataFrame = {
  val randomEdges = sc.parallelize(0 until numEdges).map {
    idx =>
      val random = new Random(42 + iter * numEdges + idx)
      val src = random.nextInt(numNodes)
      val dst = random.nextInt(numNodes)
      if (src > dst) Row(dst, src) else Row(src, dst)
  }

  val schema = new StructType()
    .add(StructField("src", IntegerType, true))
    .add(StructField("dst", IntegerType, true))

  val groupedCanonicalEdges = makeEdgesCanonical(spark.createDataFrame(randomEdges, schema))
  return groupedCanonicalEdges
}
sampleERGraph: (numNodes: Int, numEdges: Int, iter: Int)org.apache.spark.sql.DataFrame
for(i <- 0 to 9) {
  val groupedCanonicalEdges = sampleERGraph(numNodes, numEdges, iter=i)
  groupedCanonicalEdges.write.format("parquet").mode("overwrite").save("/projects/group21/uniform_random_graph" + i)
}
println("RMAT a: " + GraphGenerators.RMATa)
println("RMAT b: " + GraphGenerators.RMATb)
println("RMAT c: " + GraphGenerators.RMATc)
println("RMAT d: " + GraphGenerators.RMATd)
RMATa: 0.45
RMATb: 0.15
RMATc: 0.15
RMATd: 0.25
def sampleRMATGraph (numNodes : Int, numEdges : Int): org.apache.spark.sql.DataFrame = {
  val rmatGraphraw = GraphGenerators.rmatGraph(sc=spark.sparkContext, requestedNumVertices=numNodes, numEdges=numEdges)
  val rmatedges = rmatGraphraw.edges.map{ 
    edge => Row(edge.srcId, edge.dstId)
  }

  val schema = new StructType()
    .add(StructField("src", LongType, true))
    .add(StructField("dst", LongType, true))

  val rmatGroupedCanonicalEdges = makeEdgesCanonical(spark.createDataFrame(rmatedges, schema))
  return rmatGroupedCanonicalEdges
}
sampleRMATGraph: (numNodes: Int, numEdges: Int)org.apache.spark.sql.DataFrame
for(i <- 0 to 9) {
  val groupedCanonicalEdges = sampleRMATGraph(numNodes, numEdges)
  groupedCanonicalEdges.write.format("parquet").mode("overwrite").save("/projects/group21/rmat_random_graph" + i)
}

ScaDaMaLe Course site and book

Compute RSVD

Here we read the preprcessed data and compute the rSVD

import com.criteo.rsvd._
import scala.util.Random
import org.apache.spark.mllib.linalg.distributed.MatrixEntry
import org.apache.spark.sql.functions.{min, max}
import com.criteo.rsvd._
import scala.util.Random
import org.apache.spark.mllib.linalg.distributed.MatrixEntry
import org.apache.spark.sql.functions.{min, max}
// code snippet for saving config as json
val config_map = Map("embeddingDim" -> 100, "oversample" -> 30, "powerIter" -> 1, "seed" -> 0, "blockSize" -> 50000, "partitionWidthInBlocks" -> 35, "partitionHeightInBlocks" -> 10)
val config_spark_save = config_map.toSeq.toDF("key","value")
config_spark_save.write.mode("overwrite").json("/projects/group21/rsvd_config.json")
config_map: scala.collection.immutable.Map[String,Int] = Map(seed -> 0, oversample -> 30, blockSize -> 50000, partitionWidthInBlocks -> 35, partitionHeightInBlocks -> 10, powerIter -> 1, embeddingDim -> 100)
config_spark_save: org.apache.spark.sql.DataFrame = [key: string, value: int]
// load config from json (assuming only integer values)
val config_spark = spark.read.json("/projects/group21/rsvd_config.json").rdd.map(r => (r(0).toString -> r(1).toString.toInt)).collect.toMap
config_spark: scala.collection.immutable.Map[String,Int] = Map(seed -> 0, oversample -> 30, blockSize -> 50000, partitionWidthInBlocks -> 35, partitionHeightInBlocks -> 10, powerIter -> 1, embeddingDim -> 100)
// Create RSVD configuration
val config = RSVDConfig(
  embeddingDim = config_spark("embeddingDim"),
  oversample = config_spark("oversample"),
  powerIter = config_spark("powerIter"),
  seed = config_spark("seed"),
  blockSize = config_spark("blockSize"),
  partitionWidthInBlocks = config_spark("partitionWidthInBlocks"),
  partitionHeightInBlocks = config_spark("partitionHeightInBlocks"),
  computeLeftSingularVectors = false,
  computeRightSingularVectors = false
)
config: com.criteo.rsvd.RSVDConfig = RSVDConfig(100,30,1,0,50000,35,10,false,false)
def computeRSVD (groupedCanonicalEdges : org.apache.spark.sql.DataFrame, config : RSVDConfig): RsvdResults = {
  val matHeight = groupedCanonicalEdges.count()
  val Row(maxValue: Int) = groupedCanonicalEdges.agg(max("dst")).head
  val matWidth = maxValue
  val incidenceMatrixEntries = groupedCanonicalEdges.rdd.flatMap{
    case Row(src: Int, dst: Int, id: Int) => List(MatrixEntry(id-1, src-1, -1), MatrixEntry(id-1, dst-1, 1))
  }
  // Create block matrix and compute RSVD
  val matrixToDecompose = BlockMatrix.fromMatrixEntries(incidenceMatrixEntries, matHeight = matHeight, matWidth = matWidth, config.blockSize, config.partitionHeightInBlocks, config.partitionWidthInBlocks)
  return RSVD.run(matrixToDecompose, config, sc)
}
computeRSVD: (groupedCanonicalEdges: org.apache.spark.sql.DataFrame, config: com.criteo.rsvd.RSVDConfig)com.criteo.rsvd.RsvdResults
val groupedCanonicalEdges = spark.read.format("parquet").load("/projects/group21/test_ethereum_canonical_edges").drop("flow")
val rsvd_results_path: String = "/projects/group21/test_ethereum_"

val RsvdResults(leftSingularVectors, singularValues, rightSingularVectors) = computeRSVD(groupedCanonicalEdges, config)
val singularDF = sc.parallelize(singularValues.toArray).toDF()

singularDF.write.format("parquet").mode("overwrite").save(rsvd_results_path + "SingularValues")
for(i <- 0 to 9) {
  val groupedCanonicalEdges = spark.read.format("parquet").load("/projects/group21/uniform_random_graph" + i)
  val rsvd_results_path: String = "/projects/group21/uniform_random_graph_"

  val RsvdResults(leftSingularVectors, singularValues, rightSingularVectors) = computeRSVD(groupedCanonicalEdges, config)
  
  val singularDF = sc.parallelize(singularValues.toArray).toDF()

  singularDF.write.format("parquet").mode("overwrite").save(rsvd_results_path + "SingularValues" + i)
}
for(i <- 0 to 9) {
  val groupedCanonicalEdges = spark.read.format("parquet").load("/projects/group21/rmat_random_graph" + i)
  val rsvd_results_path: String = "/projects/group21/rmat_random_graph_"

  val RsvdResults(leftSingularVectors, singularValues, rightSingularVectors) = computeRSVD(groupedCanonicalEdges, config)
  
  val singularDF = sc.parallelize(singularValues.toArray).toDF()

  singularDF.write.format("parquet").mode("overwrite").save(rsvd_results_path + "SingularValues" + i)
}

ScaDaMaLe Course site and book

  • Load the singular values computed in 03computersvd, sort them and convert to eigenvalues taking the square
  • Plot the spectrum for each graph in a semi-log plot for comparison
import pyspark.sql.functions as F
import numpy as np
import pandas as pd
import seaborn as sns
%matplotlib inline
import matplotlib.pyplot as plt
def to_eigen(singular_values):
  singular_values = singular_values.sort_values(by='value', ascending=False)
  eigen_values = np.power(singular_values, 2)
  return eigen_values
data_path = "/projects/group21/test_ethereum_SingularValues"
singular_values_eth = spark.read.format('parquet').load(data_path).toPandas()
eigen_values_eth = to_eigen(singular_values_eth)
eigen_values_uniform = []
for i in range(10):
  data_path = "/projects/group21/uniform_random_graph_SingularValues" + str(i)
  singular_values = spark.read.format('parquet').load(data_path).toPandas()
  eigen_values_uniform.append(to_eigen(singular_values))
eigen_values_rmat = []
for i in range(10):
  data_path = "/projects/group21/rmat_random_graph_SingularValues" + str(i)
  singular_values = spark.read.format('parquet').load(data_path).toPandas()
  eigen_values_rmat.append(to_eigen(singular_values))
colors = sns.color_palette()
fig, ax = plt.subplots(figsize=(16, 9))
x = np.arange(len(eigen_values_eth))
ax = sns.lineplot(x=x, y=eigen_values_eth.to_numpy().ravel(), color=colors[0], label='ethereum')
for i in range(9):
  ax = sns.lineplot(x=x, y=eigen_values_uniform[i].to_numpy().ravel(), color=colors[1], alpha=0.4)
  ax = sns.lineplot(x=x, y=eigen_values_rmat[i].to_numpy().ravel(), color=colors[2], alpha=0.4)

ax = sns.lineplot(x=x, y=eigen_values_uniform[9].to_numpy().ravel(), color=colors[1], alpha=0.4, label='erdös-renyi')
ax = sns.lineplot(x=x, y=eigen_values_rmat[9].to_numpy().ravel(), color=colors[2], alpha=0.4, label='rmat')
ax.set_yscale('log')
ax.legend()

Conclusion

We observe a large descrepency in the spectrums between the Erdös-Renyi, R-MAT and Ethereum transaction graphs. As can be expected, the spectrum of the Erdös-Renyi graphs is almost constant due to the isotropy of the graph topology. The Ethereum transaction graph has very large eigenvalues compared to the random graphs. A likely explanation is the presence of nodes of very high degree in the graph.

We can see that the R-MAT graph lies in between uniform Erdös-Renyi and Ethereum graph. This is also as expected since the R-MAT model is designed to better mimic the behaviour of real graphs. In this project we used the default parameters for the R-MAT graph and it is likely that with further experimentation one could find a setting which better fit the spectum of the transaction graph.

ScaDaMaLe Course site and book

SWAPWithDDP

  • Christos Matsoukas @ChrisMats

  • Emir Konuk @emirkonuk

  • Johan Fredin Haslum @cfredinh

  • Miquel Marti @miquelmarti

Stochastic Weight Averaging in Parallel (SWAP) in PyTorch

Everything related to the project can be found in this repository.

Video demonstration

Install dependencies etc.

  • Python 3.8+
  • Pytorch 1.7+

Install using conda

  • Using comands\ conda create -n swap python=3.8 scikit-learn easydict matplotlib wandb tqdm -y\ conda install pytorch torchvision cudatoolkit=10.2 -c pytorch -y

  • Using the .yml file\ conda env create -f environment.yml

Docker setup

  • Note that the Dockerfile is provided for single machine, multiGPU usage. For multi-machine setups, refer to the SLURM section.
  • Dockerfile has its own comments. At the end of the file there are a few lines describing how to build/run the docker image. You can (and should) modify the port numbers depending on your setup.
  • Recommended folder setup is to have /storage in the host machine and /storage in the docker image. Clone this repository to the /storage in the host machine, and work from there. You can change the WORKDIR (Line 107) in the Dockerfile if you desire a different folder setup.
  • By default, the image will start with a jupyter notebook running, accessible at port 8855. If you want to login to bash directly, comment/uncomment the respective lines (109 & 111).
  • Remember to add your WANDBAPIKEY to the respective line in the Dockerfile.
  • You can change your image username (line 31). The default is swapuser.
  • If you want to directly clone the repo to the image, you can just add the link and uncomment the respective line (line 103). This is not recommended as you will most likely connect to git from the host for secure access.
  • If you need to set up rootless docker with nvidia GPU support, first install rootless docker. Then, install nvidia-docker. After installation, remember to edit /etc/nvidia-container-runtime/config.toml to have "no-cgroups = true" before restarting the docker daemon.

Usage

  • All input options need to be modified in the params.json file.\ cd your_path/SWAP_with_DDP\ python classification.py --params_path params.json
  • About the params, if you increase the num_workers and notice that it is slow, you should set it back to 0 or 1. This is a problem that occurs occasionally with pytorch DDP.

Distributed training using SLURM

  • Before starting training, define necessary resources for each node in the cluster_run.sbatch file.
  • Train on multiple nodes on SLURM cluster using comand \ cd your_path/SWAP_with_DDP\ sbatch cluster_run.sbatch your_conda_env data_location
  • (N-number of nodes)x(P-processes per node) are initiated each running main.py
  • All comunications between processes are handled over TCP and a master process adress is set using --dist_url
  • The code, conda environment and data location have to be available from all nodes with the same paths

Results

CIFAR10 - 8 GPUs - 512 per gpu - 150 epochs - Step 2 starts at step 1500 - without SWAP 94.3, with SWAP 95.7

Please refer to the project repository for the images.

ScaDaMaLe Course site and book

We did not use databricks for this project

Please use this GITHUB LINK to access our project

SWAPWithDDP

  • Christos Matsoukas @ChrisMats

  • Emir Konuk @emirkonuk

  • Johan Fredin Haslum @cfredinh

  • Miquel Marti @miquelmarti

Stochastic Weight Averaging in Parallel (SWAP) in PyTorch

Everything related to the project can be found in this repository.

Video demonstration

Install dependencies etc.

  • Python 3.8+
  • Pytorch 1.7+

Install using conda

  • Using comands\ conda create -n swap python=3.8 scikit-learn easydict matplotlib wandb tqdm -y\ conda install pytorch torchvision cudatoolkit=10.2 -c pytorch -y

  • Using the .yml file\ conda env create -f environment.yml

Docker setup

  • Note that the Dockerfile is provided for single machine, multiGPU usage. For multi-machine setups, refer to the SLURM section.
  • Dockerfile has its own comments. At the end of the file there are a few lines describing how to build/run the docker image. You can (and should) modify the port numbers depending on your setup.
  • Recommended folder setup is to have /storage in the host machine and /storage in the docker image. Clone this repository to the /storage in the host machine, and work from there. You can change the WORKDIR (Line 107) in the Dockerfile if you desire a different folder setup.
  • By default, the image will start with a jupyter notebook running, accessible at port 8855. If you want to login to bash directly, comment/uncomment the respective lines (109 & 111).
  • Remember to add your WANDBAPIKEY to the respective line in the Dockerfile.
  • You can change your image username (line 31). The default is swapuser.
  • If you want to directly clone the repo to the image, you can just add the link and uncomment the respective line (line 103). This is not recommended as you will most likely connect to git from the host for secure access.
  • If you need to set up rootless docker with nvidia GPU support, first install rootless docker. Then, install nvidia-docker. After installation, remember to edit /etc/nvidia-container-runtime/config.toml to have "no-cgroups = true" before restarting the docker daemon.

Usage

  • All input options need to be modified in the params.json file.\ cd your_path/SWAP_with_DDP\ python classification.py --params_path params.json
  • About the params, if you increase the num_workers and notice that it is slow, you should set it back to 0 or 1. This is a problem that occurs occasionally with pytorch DDP.

Distributed training using SLURM

  • Before starting training, define necessary resources for each node in the cluster_run.sbatch file.
  • Train on multiple nodes on SLURM cluster using comand \ cd your_path/SWAP_with_DDP\ sbatch cluster_run.sbatch your_conda_env data_location
  • (N-number of nodes)x(P-processes per node) are initiated each running main.py
  • All comunications between processes are handled over TCP and a master process adress is set using --dist_url
  • The code, conda environment and data location have to be available from all nodes with the same paths

Results

CIFAR10 - 8 GPUs - 512 per gpu - 150 epochs - Step 2 starts at step 1500 - without SWAP 94.3, with SWAP 95.7

Please refer to the project repository for the images.

ScaDaMaLe Course site and book

Distributed Deep Learning

CNN's with horovod, MLFlow and hypertuning through SparkTrials

William Anzén (Linkedin), Christian von Koch (Linkedin)

2021, Stockholm, Sweden

This project was supported by Combient Mix AB through a Master Thesis project at ISY, Computer Vision Laboratory, Linköpings University.

** Resources: **

These notebooks were inspired by Tensorflow's tutorial on Image Segmentation.

01ImageSegmentationUNet

In this chapter a simple U-Net architecture is implemented and evaluated against the Oxford Pets Data set. The model achieves a validation accuracy of 88.6% and a validation loss of 0.655 after 20 epochs (11.74 min).

02ImageSegmenationPSPNet

In this chapter a PSPNet architecture is implemented and evaluated against the Oxford Pets Data set. The model achieves a validation accuracy of 89.8% and a validation loss of 0.332 after 20 epochs (14.25 min).

03ICNetFunction

In this chapter the ICNet architecture is implemented and evaluated against the Oxford Pets Data set. MLFlow is added to keep track of results and parameters. The model achieves a validation accuracy of 86.1% and a validation loss of 0.363 after 19/20 epochs (6.8 min).

04ICNetFunction_hvd

In this chapter we add horovod to the notebook, allowing distributed training of the model. MLFlow is also integrated to keep track of results and parameters. Achieving validation accuracy of 84.4% and validation loss of 0.454 after 16/20 epochs (13.19 min - 2 workers). (2 workers lead to a slower run because of the overhead being too large in comparison to computational gain)

05ICNetFunctionTuningparallel

In this chapter we run hyperparameter tuning with hyperopt & SparkTrials allowing the tuning runs to be made in parallel across multiple workers. MLFlow is added to keep track of the outcomes from the parallel hyperparameter tuning runs. Achieved 0.43 loss with parameters({'batchsize': 32, 'learningrate': 0.007874409614279713})

ScaDaMaLe Course site and book

U-Net model for image segmentation

This is a modified version of Tensorflows tutorial regarding image segmentation which can be found here. Using a modified U-Net approach, with a VGG16 as the encoder and then using traditional Conv2DTranspose layers for upsampling the dimensions. After 1 epoch a validation accuracy of 84.5 % was achieved on the Oxford Pets Data Set.

import tensorflow as tf
import tensorflow_datasets as tfds
import matplotlib.pyplot as plt
from IPython.display import clear_output

dataset, info = tfds.load('oxford_iiit_pet:3.*.*', with_info=True)

def normalize(input_image, input_mask):
  input_image = tf.cast(input_image, tf.float32) / 255.0
  input_mask -= 1
  return input_image, input_mask

@tf.function
def load_image_train(datapoint):
  input_image = tf.image.resize(datapoint['image'], (128, 128))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (128, 128))

  if tf.random.uniform(()) > 0.5:
    input_image = tf.image.flip_left_right(input_image)
    input_mask = tf.image.flip_left_right(input_mask)

  input_image, input_mask = normalize(input_image, input_mask)

  return input_image, input_mask

def load_image_test(datapoint):
  input_image = tf.image.resize(datapoint['image'], (128, 128))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (128, 128))

  input_image, input_mask = normalize(input_image, input_mask)

  return input_image, input_mask

TRAIN_LENGTH = info.splits['train'].num_examples
BATCH_SIZE = 64
BUFFER_SIZE = 1000
STEPS_PER_EPOCH = TRAIN_LENGTH // BATCH_SIZE

train = dataset['train'].map(load_image_train, num_parallel_calls=tf.data.experimental.AUTOTUNE)
test = dataset['test'].map(load_image_test)

train_dataset = train.cache().shuffle(BUFFER_SIZE).batch(BATCH_SIZE).repeat()
train_dataset = train_dataset.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
test_dataset = test.batch(BATCH_SIZE)

def display(display_list):
  plt.figure(figsize=(15, 15))

  title = ['Input Image', 'True Mask', 'Predicted Mask']

  for i in range(len(display_list)):
    plt.subplot(1, len(display_list), i+1)
    plt.title(title[i])
    plt.imshow(tf.keras.preprocessing.image.array_to_img(display_list[i]))
    plt.axis('off')
  plt.show()

for image, mask in train.take(1):
  sample_image, sample_mask = image, mask
display([sample_image, sample_mask])

Now that the dataset has been loaded into memory, the model can further be defined.

from tensorflow.keras.layers import *
from tensorflow.keras.models import *
from tensorflow.keras.applications import VGG16

def encoder_VGG16(input_shape):
  base_model=VGG16(include_top=False, weights='imagenet', input_shape=input_shape)
  layers=[layer.output for layer in base_model.layers]
  base_model = tf.keras.Model(inputs=base_model.input, outputs=layers[-2])
  base_model.summary()

  x = []
  fourth_layer = base_model.get_layer('block1_conv1').output
  x.append(fourth_layer)
  third_layer = base_model.get_layer('block2_conv2').output
  x.append(third_layer)
  secondary_layer = base_model.get_layer('block3_conv3').output
  x.append(secondary_layer)
  last_layer = base_model.get_layer('block4_conv3').output
  x.append(last_layer)
  output_layer =  base_model.get_layer('block5_conv3').output
  x.append(output_layer)
  return base_model, x

Here, the decoder part is defined where upsampling takes place to convert the encoded part to the same dimensions as the input image for height and width, with the same amount of channels as there are classes.

def unet(image_width: int,
         image_heigth: int,
         n_channels: int,
         n_depth: int,
         n_classes: int):
  #if n_depth<1 or n_depth>5: #+ add more cases
   # raise Exception("Unsupported number of layers/upsamples")
  input_shape = [image_heigth, image_width, n_channels]
  encoded_model, x = encoder_VGG16(input_shape)
  encoded_model.trainable=False
  intermediate_model = x[n_depth-1]
  intermediate_model = tf.keras.layers.Dropout(0.5)(intermediate_model)
  for i in reversed(range(0,n_depth-1)):
    next_filters = x[i+1].shape[3]/2
    intermediate_model = Conv2DTranspose(filters=next_filters ,kernel_size=3,strides=2,padding='same')(intermediate_model)
    intermediate_model = tf.keras.layers.Concatenate()([intermediate_model,x[i]])
    intermediate_model = tf.keras.layers.BatchNormalization()(intermediate_model)
    intermediate_model = tf.keras.layers.ReLU()(intermediate_model)
    intermediate_model = Conv2D(filters=next_filters, kernel_size=3, activation ='relu', padding='same')(intermediate_model)
    intermediate_model = Conv2D(filters=next_filters, kernel_size=3, activation ='relu', padding='same')(intermediate_model)

  outputs=Conv2D(filters=n_classes,kernel_size=(1,1),strides=(1),padding='same')(intermediate_model)
  x = Reshape((image_heigth*image_width, n_classes))(outputs)
  x = Activation(tf.nn.softmax)(x)
  outputs = Reshape((image_heigth,image_width, n_classes))(x)

  print(outputs.shape[2])
  final_model=tf.keras.models.Model(inputs=encoded_model.input ,outputs=[outputs])
  return(final_model)

shape=[128, 128, 3]
this_model = unet(shape[0],shape[1],shape[2],5,3)
this_model.summary()
this_model.outputs

The model is then compiled.

this_model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

def create_mask(pred_mask):
  pred_mask = tf.argmax(pred_mask, axis=-1)
  pred_mask = pred_mask[..., tf.newaxis]
  return pred_mask[0]

def show_predictions(dataset=None, num=1):
  if dataset:
    for image, mask in dataset.take(num):
      pred_mask = this_model.predict(image)
      display([image[0], mask[0], create_mask(pred_mask)])
  else:
    display([sample_image, sample_mask,
             create_mask(this_model.predict(sample_image[tf.newaxis, ...]))])

show_predictions()

1042

Below, the model is fitted against the training data and validated on the validation set after each epoch. A validation accuracy of 84.5 % is achieved after one epoch.

TRAIN_LENGTH = info.splits['train'].num_examples
BATCH_SIZE = 64
BUFFER_SIZE = 1000
STEPS_PER_EPOCH = TRAIN_LENGTH // BATCH_SIZE

EPOCHS = 20
VAL_SUBSPLITS = 5
VALIDATION_STEPS = info.splits['test'].num_examples//BATCH_SIZE//VAL_SUBSPLITS

model_history = this_model.fit(train_dataset, epochs=EPOCHS,
                          steps_per_epoch=STEPS_PER_EPOCH,
                          validation_steps=VALIDATION_STEPS,
                          validation_data=test_dataset)


#scores = model_history.evaluate(X_test, y_test, verbose=2)
show_predictions(test_dataset,num=10)

loss = model_history.history['loss']
val_loss = model_history.history['val_loss']

epochs = range(EPOCHS)

plt.figure()
plt.plot(epochs, loss, 'r', label='Training loss')
plt.plot(epochs, val_loss, 'bo', label='Validation loss')
plt.title('Training and Validation Loss')
plt.xlabel('Epoch')
plt.ylabel('Loss Value')
plt.ylim([0, 1])
plt.legend()
plt.show()

ScaDaMaLe Course site and book

Implementation of PSPNet

In this notebook, an implementation of PSPNet is presented which is an architecture which uses scene parsing and evaluates the images at different scales and finally combines the different results to form a final prediction. The architecture is evaluated against the Oxford-IIIT Pet Dataset. This notebook has reused material from the Image Segmentation Tutorial on Tensorflow for loading the dataset and showing predictions.

Importing the required packages.

import tensorflow as tf
import tensorflow_datasets as tfds
import matplotlib.pyplot as plt
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
import numpy as np
import tensorflow_datasets as tfds
from tensorflow.keras.applications.resnet50 import ResNet50

Defining functions for normalizing and transforming the images.

# Function for normalizing image_size so that pixel intensity is between 0 and 1
def normalize(input_image, input_mask):
  input_image = tf.cast(input_image, tf.float32) / 255.0
  input_mask -= 1
  return input_image, input_mask

# Function for resizing the train images to the desired input shape of 128x128 as well as augmenting the training images
@tf.function
def load_image_train(datapoint):
  input_image = tf.image.resize(datapoint['image'], (128, 128))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (128, 128))

  if tf.random.uniform(()) > 0.5:
    input_image = tf.image.flip_left_right(input_image)
    input_mask = tf.image.flip_left_right(input_mask)

  input_image, input_mask = normalize(input_image, input_mask)
  input_mask = tf.math.round(input_mask)

  return input_image, input_mask

# Function for resizing the test images to the desired output shape (no augmenation)
def load_image_test(datapoint):
  input_image = tf.image.resize(datapoint['image'], (128, 128))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (128, 128))

  input_image, input_mask = normalize(input_image, input_mask)

  return input_image, input_mask

Loading the datasets to memory and displaying an example of an image and an image mask.

dataset, info = tfds.load('oxford_iiit_pet:3.*.*', with_info=True)

TRAIN_LENGTH = info.splits['train'].num_examples
BATCH_SIZE = 64
BUFFER_SIZE = 1000
STEPS_PER_EPOCH = TRAIN_LENGTH // BATCH_SIZE

train = dataset['train'].map(load_image_train, num_parallel_calls=tf.data.experimental.AUTOTUNE)
test = dataset['test'].map(load_image_test)

train_dataset = train.shuffle(BUFFER_SIZE).cache().batch(BATCH_SIZE).repeat()
train_dataset = train_dataset.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
test_dataset = test.batch(BATCH_SIZE)

def display(display_list):
  plt.figure(figsize=(15, 15))

  title = ['Input Image', 'True Mask', 'Predicted Mask']

  for i in range(len(display_list)):
    plt.subplot(1, len(display_list), i+1)
    plt.title(title[i])
    plt.imshow(tf.keras.preprocessing.image.array_to_img(display_list[i]))
    plt.axis('off')
  plt.show()

for image, mask in train.take(1):
  sample_image, sample_mask = image, mask
display([sample_image, sample_mask])

Defining the functions needed for the PSPNet.

def pool_block(cur_tensor,
               image_width,
               image_height,
               pooling_factor,
               activation):

  strides = [int(np.round(float(image_width)/pooling_factor)),
            int(np.round(float(image_height)/pooling_factor))]
  pooling_size = strides
  x = AveragePooling2D(pooling_size, strides=strides, padding='same')(cur_tensor)
  x = Conv2D(128,(1,1),padding='same')(x)
  x = BatchNormalization()(x)
  x = Activation(activation)(x)
  x = tf.keras.layers.experimental.preprocessing.Resizing(
    image_height, image_width, interpolation="bilinear")(x) # Resizing images to correct shape for future concat
  return x

# Function for formatting the resnet model to a modified one which takes advantage of dilation rates instead of strides in the final blocks
def modify_ResNet_Dilation(model):
  for i in range(0,4):
    model.get_layer('conv4_block1_{}_conv'.format(i)).strides = 1
    model.get_layer('conv4_block1_{}_conv'.format(i)).dilation_rate = 2
    model.get_layer('conv5_block1_{}_conv'.format(i)).strides = 1
    model.get_layer('conv5_block1_{}_conv'.format(i)).dilation_rate = 4
  model.save('/tmp/my_model')
  new_model = tf.keras.models.load_model('/tmp/my_model')
  return new_model

def PSPNet(num_classes: int,
           n_filters: int,
           kernel_size: tuple,
           activation: str,
           image_width: int,
           image_height: int,
           isICNet: bool = False
          ):
  if isICNet:
    input_shape=(None, None, 3)
  else:
    input_shape=(image_height,image_width,3)
  encoder=ResNet50(include_top=False, weights='imagenet', input_shape=input_shape)
  encoder=modify_ResNet_Dilation(encoder)
  #encoder.trainable=False
  resnet_output=encoder.output
  pooling_layer=[]
  pooling_layer.append(resnet_output)
  #output=Dropout(rate=0.5)(resnet_output)
  output=resnet_output
  h = image_height//8
  w = image_width//8
  for i in [1,2,3,6]:
    pool = pool_block(output, h, w, i, activation)
    pooling_layer.append(pool)
  concat=Concatenate()(pooling_layer)
  output_layer=Conv2D(filters=num_classes, kernel_size=(1,1), padding='same')(concat)
  final_layer=UpSampling2D(size=(8,8), data_format='channels_last', interpolation='bilinear')(output_layer)
  final_model=tf.keras.models.Model(inputs=encoder.input, outputs=final_layer)
  return final_model

Creating the PSPModel with three classes, 16 filters, kernel size of (3,3), 'relu' as the activation function and with image height and width of 128 pixels.

PSP = PSPNet(3, 16, (3,3), 'relu', 128,128)

And here is the model summary.

PSP.summary()

Compiling the model.

PSP.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

Below, functions needed to show the model's predictions against the true mask are defined.

def create_mask(pred_mask):
  pred_mask = tf.argmax(pred_mask, axis=-1)
  pred_mask = pred_mask[..., tf.newaxis]
  return pred_mask[0]

def show_predictions(dataset=None, num=1):
  if dataset:
    for image, mask in dataset.take(num):
      print(image)
      pred_mask = model.predict(image)
      display([image[0], mask[0], create_mask(pred_mask)])
  else:
    display([sample_image, sample_mask,
             create_mask(PSP.predict(sample_image[tf.newaxis, ...]))])

show_predictions()

A custom callback function is defined for showing how the model learns to predict while training.

class DisplayCallback(tf.keras.callbacks.Callback):
  def on_epoch_end(self, epoch, logs=None):
    show_predictions()

And finally the model is fitted against the training dataset and validated against the test dataset. .

TRAIN_LENGTH = info.splits['train'].num_examples
BATCH_SIZE = 64
BUFFER_SIZE = 1000
STEPS_PER_EPOCH = TRAIN_LENGTH // BATCH_SIZE

EPOCHS = 20
VAL_SUBSPLITS = 5
VALIDATION_STEPS = info.splits['test'].num_examples//BATCH_SIZE//VAL_SUBSPLITS

model_history = PSP.fit(train_dataset, epochs=EPOCHS,
                          steps_per_epoch=STEPS_PER_EPOCH,
                          validation_steps=VALIDATION_STEPS,
                          validation_data=test_dataset,
                          callbacks=[DisplayCallback()])                    

The losses and accuracies of each epoch is plotted to visualize the performance of the model.

loss = model_history.history['loss']
acc = model_history.history['accuracy']
val_loss = model_history.history['val_loss']
val_acc = model_history.history['val_accuracy']

epochs = range(EPOCHS)

plt.figure(figsize=(10,3))
plt.subplot(1,2,1)
plt.plot(epochs, loss, 'r', label='Training loss')
plt.plot(epochs, val_loss, 'b', label='Validation loss')
plt.ylim(0,1)
plt.title('Training and Validation Loss')
plt.xlabel('Epoch')
plt.ylabel('Loss Value')
plt.legend()
plt.subplot(1,2,2)
plt.plot(epochs, acc, 'r', label="Training accuracy")
plt.plot(epochs, val_acc, 'b', label="Validation accuracy")
plt.title('Training and Validation Accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.legend()
plt.show()

ScaDaMaLe Course site and book

Implementation of ICNet

In this notebook, an implementation of ICNet is presented which is an architecture which uses a trade-off between complexity and inference time efficiently. The architecture is evaluated against the Oxford pets dataset. This notebook has reused material from the Image Segmentation Tutorial on Tensorflow for loading the dataset and showing predictions.

Importing the required packages.

import tensorflow as tf
import tensorflow_datasets as tfds
import matplotlib.pyplot as plt
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
import numpy as np
from tensorflow.keras.applications.resnet50 import ResNet50
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import tensorflow_addons as tfa

Loading and transforming the dataset.

def normalize(input_image, input_mask):
  input_image = tf.cast(input_image, tf.float32) / 255.0
  input_mask -= 1
  return input_image, input_mask

# Function for resizing the train images to the desired input shape of HxW as well as augmenting the training images.
def load_image_train_noTf(datapoint, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(datapoint['image'], (wanted_height, wanted_width))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (wanted_height, wanted_width))

  if tf.random.uniform(()) > 0.5:
    input_image = tf.image.flip_left_right(input_image)
    input_mask = tf.image.flip_left_right(input_mask)

  input_image, input_mask = normalize(input_image, input_mask)
  input_mask = tf.math.round(input_mask)

  return input_image, input_mask

# Function for resizing the test images to the desired output shape (no augmenation).
def load_image_test(datapoint, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(datapoint['image'], (wanted_height, wanted_width))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (wanted_height, wanted_width))

  input_image, input_mask = normalize(input_image, input_mask)

  return input_image, input_mask



# Functions for resizing the image to the desired size of factor 2 or 4 to be inputted to the ICNet architecture.
def resize_image16(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//16, wanted_width//16))
  input_mask=tf.image.resize(mask, (wanted_height//16, wanted_width//16))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask

def resize_image8(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//8, wanted_width//8))
  input_mask=tf.image.resize(mask, (wanted_height//8, wanted_width//8))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask

def resize_image4(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//4, wanted_width//4))
  input_mask=tf.image.resize(mask, (wanted_height//4, wanted_width//4))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask

Separating dataset into input and multiple outputs of different sizes.

def create_datasets(wanted_height:int, wanted_width:int, BATCH_SIZE:int = 64, BUFFER_SIZE:int = 1000):

  dataset, info = tfds.load('oxford_iiit_pet:3.*.*', with_info=True)
  n_train = info.splits['train'].num_examples
  n_test = info.splits['test'].num_examples
  #Creating the ndarray in the correct shapes for training data
  train_original_img = np.ndarray(shape=(n_train, wanted_height, wanted_width, 3))

  train_original_mask = np.ndarray(shape=(n_train, wanted_height, wanted_width, 1))
  train16_mask = np.ndarray(shape=(n_train, wanted_height//16, wanted_width//16, 1))
  train8_mask = np.ndarray(shape=(n_train, wanted_height//8, wanted_width//8, 1))
  train4_mask = np.ndarray(shape=(n_train, wanted_height//4, wanted_width//4, 1))

  #Loading the data into the arrays
  count = 0
  for datapoint in dataset['train']:
    img_orig, mask_orig = load_image_train_noTf(datapoint, wanted_height, wanted_width)
    train_original_img[count]=img_orig
    train_original_mask[count]=mask_orig

    img16, mask16 = resize_image16(img_orig, mask_orig, wanted_height, wanted_width)
    train16_mask[count]=(mask16)

    img8, mask8 = resize_image8(img_orig, mask_orig, wanted_height, wanted_width)
    train8_mask[count]=(mask8)

    img4, mask4 = resize_image4(img_orig, mask_orig, wanted_height, wanted_width)
    train4_mask[count]=(mask4)
    count+=1

  #Creating the ndarrays in the correct shapes for test data  
  test_original_img = np.ndarray(shape=(n_test,wanted_height,wanted_width,3))

  test_original_mask = np.ndarray(shape=(n_test,wanted_height,wanted_width,1))
  test16_mask = np.ndarray(shape=(n_test,wanted_height//16,wanted_width//16,1))
  test8_mask = np.ndarray(shape=(n_test,wanted_height//8,wanted_width//8,1))
  test4_mask = np.ndarray(shape=(n_test,wanted_height//4,wanted_width//4,1))

  #Loading the data into the arrays
  count=0
  for datapoint in dataset['test']:
    img_orig, mask_orig = load_image_test(datapoint, wanted_height, wanted_width)
    test_original_img[count]=(img_orig)
    test_original_mask[count]=(mask_orig)

    img16, mask16 = resize_image16(img_orig, mask_orig, wanted_height, wanted_width)
    test16_mask[count]=(mask16)
    #test16_img[count]=(img16)

    img8, mask8 = resize_image8(img_orig, mask_orig, wanted_height, wanted_width)
    test8_mask[count]=(mask8)
    #test8_img[count]=(img8)

    img4, mask4 = resize_image4(img_orig, mask_orig, wanted_height, wanted_width)
    test4_mask[count]=(mask4)
    #test4_img[count]=(img4)
    count+=1


  train_dataset = tf.data.Dataset.from_tensor_slices((train_original_img, {'CC_1': train16_mask, 'CC_2': train8_mask, 'CC_fin': train4_mask, 'final_output': train_original_mask}))
  orig_test_dataset = tf.data.Dataset.from_tensor_slices((test_original_img, {'CC_1': test16_mask, 'CC_2': test8_mask, 'CC_fin': test4_mask, 'final_output': test_original_mask}))
  train_dataset = train_dataset.cache().shuffle(BUFFER_SIZE).batch(BATCH_SIZE).repeat()
  train_dataset.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
  test_dataset = orig_test_dataset.batch(BATCH_SIZE)

  return train_dataset, test_dataset, train_original_mask[0], train_original_img[0], orig_test_dataset, n_train, n_test

Running and loading the functions to create and save the transformed data.

train_dataset, test_dataset, sample_mask, sample_image, orig_test_dataset, n_train, n_test = create_datasets(128,128,64, 1000)

Defining the function for displaying images and the model's predictions jointly.

def display(display_list):
  plt.figure(figsize=(15, 15))

  title = ['Input Image', 'True Mask', 'Predicted Mask']

  for i in range(len(display_list)):
    plt.subplot(1, len(display_list), i+1)
    plt.title(title[i])
    plt.imshow(tf.keras.preprocessing.image.array_to_img(display_list[i]))
    plt.axis('off')
  plt.show()


sample_image, sample_mask = sample_image, sample_mask
display([sample_image, sample_mask])

Defining the functions needed for the PSPNet module.

# Function for the pooling module which takes the output of ResNet50 as input as well as its width and height and pool it with a factor.
def pool_block(cur_tensor,
               image_width,
               image_height,
               pooling_factor,
               activation):

  strides = [int(np.round(float(image_width)/pooling_factor)),
            int(np.round(float(image_height)/pooling_factor))]
  pooling_size = strides
  x = AveragePooling2D(pooling_size, strides=strides, padding='same')(cur_tensor)
  x = Conv2D(128,(1,1),padding='same')(x)
  x = BatchNormalization()(x)
  x = Activation(activation)(x)
  x = tf.keras.layers.experimental.preprocessing.Resizing(
    image_height, image_width, interpolation="bilinear")(x) # Resizing images to correct shape for future concat
  return x

# Function for formatting the resnet model to a modified one which takes advantage of dilation rates instead of strides in the final blocks.

def modify_ResNet_Dilation(model):
  for i in range(0,4):
    model.get_layer('conv4_block1_{}_conv'.format(i)).strides = 1
    model.get_layer('conv4_block1_{}_conv'.format(i)).dilation_rate = 2
    model.get_layer('conv5_block1_{}_conv'.format(i)).strides = 1
    model.get_layer('conv5_block1_{}_conv'.format(i)).dilation_rate = 4
  model.save('/tmp/my_model')
  new_model = tf.keras.models.load_model('/tmp/my_model')
  return new_model


# Function for creating the PSPNet model. The inputs is the number of classes to classify, number of filters to use, kernel_size, activation function,
# input image width and height and a boolean for knowing if the module is part of the ICNet or not.
def PSPNet(n_classes: int,
           n_filters: int,
           kernel_size: tuple,
           activation: str,
           image_width: int,
           image_height: int,
           isICNet: bool = False,
           dropout: bool = True,
           bn: bool = True
          ):
  if isICNet:
    input_shape=(None, None, 3)
  else:
    input_shape=(image_height,image_width,3)
  encoder=ResNet50(include_top=False, weights='imagenet', input_shape=input_shape)
  encoder=modify_ResNet_Dilation(encoder)
  #encoder.trainable=False
  resnet_output=encoder.output
  pooling_layer=[]
  pooling_layer.append(resnet_output)
  output=(resnet_output)
  h = image_height//8
  w = image_width//8
  for i in [1,2,3,6]:
    pool = pool_block(output, h, w, i, activation)
    pooling_layer.append(pool)
  concat=Concatenate()(pooling_layer)
  output_layer=Conv2D(filters=n_classes, kernel_size=(1,1), padding='same')(concat)
  final_layer=UpSampling2D(size=(8,8), data_format='channels_last', interpolation='bilinear')(output_layer)
  final_model=tf.keras.models.Model(inputs=encoder.input, outputs=final_layer)
  return final_model

#model = PSPNet(3, 16, (3,3), 'relu', 128,128)

Defining the functions needed for the ICNet.

# Function for adding stage 4 and 5 of ResNet50 to the 1/4 image size branch of the ICNet.
def PSP_rest(input_prev: tf.Tensor):

  y_ = input_prev
  #Stage 4
  #Conv_Block
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block1_conv1')(y_)
  y = BatchNormalization(name='C4_block1_bn1')(y)
  y = Activation('relu', name='C4_block1_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block1_conv2')(y)
  y = BatchNormalization(name='C4_block1_bn2')(y)
  y = Activation('relu', name='C4_block1_act2')(y)
  y_ = Conv2D(1024, 1, dilation_rate=2, padding='same', name='C4_block1_conv0')(y_)
  y = Conv2D(1024, 1, dilation_rate=2, padding='same', name='C4_block1_conv3')(y)
  y_ = BatchNormalization(name='C4_block1_bn0')(y_)
  y = BatchNormalization(name='C4_block1_bn3')(y)
  y = Add(name='C4_skip1')([y_,y])
  y_ = Activation('relu', name='C4_block1_act3')(y)
  #IDBLOCK1
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block2_conv1')(y_)
  y = BatchNormalization(name='C4_block2_bn1')(y)
  y = Activation('relu', name='C4_block2_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block2_conv2')(y)
  y = BatchNormalization(name='C4_block2_bn2')(y)
  y = Activation('relu', name='C4_block2_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block2_conv3')(y)
  y = BatchNormalization(name='C4_block2_bn3')(y)
  y = Add(name='C4_skip2')([y_,y])
  y_ = Activation('relu', name='C4_block2_act3')(y)
  #IDBLOCK2
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block3_conv1')(y_)
  y = BatchNormalization(name='C4_block3_bn1')(y)
  y = Activation('relu', name='C4_block3_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block3_conv2')(y)
  y = BatchNormalization(name='C4_block3_bn2')(y)
  y = Activation('relu', name='C4_block3_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block3_conv3')(y)
  y = BatchNormalization(name='C4_block3_bn3')(y)
  y = Add(name='C4_skip3')([y_,y])
  y_ = Activation('relu', name='C4_block3_act3')(y)
  #IDBlock3
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block4_conv1')(y_)
  y = BatchNormalization(name='C4_block4_bn1')(y)
  y = Activation('relu', name='C4_block4_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block4_conv2')(y)
  y = BatchNormalization(name='C4_block4_bn2')(y)
  y = Activation('relu', name='C4_block4_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block4_conv3')(y)
  y = BatchNormalization(name='C4_block4_bn3')(y)
  y = Add(name='C4_skip4')([y_,y])
  y_ = Activation('relu', name='C4_block4_act3')(y)
  #ID4
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block5_conv1')(y_)
  y = BatchNormalization(name='C4_block5_bn1')(y)
  y = Activation('relu', name='C4_block5_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block5_conv2')(y)
  y = BatchNormalization(name='C4_block5_bn2')(y)
  y = Activation('relu', name='C4_block5_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block5_conv3')(y)
  y = BatchNormalization(name='C4_block5_bn3')(y)
  y = Add(name='C4_skip5')([y_,y])
  y_ = Activation('relu', name='C4_block5_act3')(y)
  #ID5
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block6_conv1')(y_)
  y = BatchNormalization(name='C4_block6_bn1')(y)
  y = Activation('relu', name='C4_block6_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block6_conv2')(y)
  y = BatchNormalization(name='C4_block6_bn2')(y)
  y = Activation('relu', name='C4_block6_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block6_conv3')(y)
  y = BatchNormalization(name='C4_block6_bn3')(y)
  y = Add(name='C4_skip6')([y_,y])
  y_ = Activation('relu', name='C4_block6_act3')(y)

  #Stage 5
  #Conv
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block1_conv1')(y_)
  y = BatchNormalization(name='C5_block1_bn1')(y)
  y = Activation('relu', name='C5_block1_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block1_conv2')(y)
  y = BatchNormalization(name='C5_block1_bn2')(y)
  y = Activation('relu', name='C5_block1_act2')(y)
  y_ = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block1_conv0')(y_)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block1_conv3')(y)
  y_ = BatchNormalization(name='C5_block1_bn0')(y_)
  y = BatchNormalization(name='C5_block1_bn3')(y)
  y = Add(name='C5_skip1')([y_,y])
  y_ = Activation('relu', name='C5_block1_act3')(y)

  #ID
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block2_conv1')(y_)
  y = BatchNormalization(name='C5_block2_bn1')(y)
  y = Activation('relu', name='C5_block2_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block2_conv2')(y)
  y = BatchNormalization(name='C5_block2_bn2')(y)
  y = Activation('relu', name='C5_block2_act2')(y)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block2_conv3')(y)
  y = BatchNormalization(name='C5_block2_bn3')(y)
  y = Add(name='C5_skip2')([y_,y])
  y_ = Activation('relu', name='C5_block2_act3')(y)

  #ID
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block3_conv1')(y_)
  y = BatchNormalization(name='C5_block3_bn1')(y)
  y = Activation('relu', name='C5_block3_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block3_conv2')(y)
  y = BatchNormalization(name='C5_block3_bn2')(y)
  y = Activation('relu', name='C5_block3_act2')(y)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block3_conv3')(y)
  y = BatchNormalization(name='C5_block3_bn3')(y)
  y = Add(name='C5_skip3')([y_,y])
  y_ = Activation('relu', name='C5_block3_act3')(y)

  return(y_)

# Function for the CFF module in the ICNet architecture. The inputs are which stage (1 or 2), the output from the smaller branch, the output from the
# larger branch, n_classes and the width and height of the output of the smaller branch.
def CFF(stage: int, F_small, F_large, n_classes: int, input_width_small: int, input_height_small: int):
  F_up = tf.keras.layers.experimental.preprocessing.Resizing(int(input_width_small*2), int(input_height_small*2), interpolation="bilinear", name="Upsample_x2_small_{}".format(stage))(F_small)
  F_aux = Conv2D(n_classes, 1, name="CC_{}".format(stage), activation='softmax')(F_up)
  intermediate_f_small = Conv2D(128, 3, dilation_rate=2, padding='same', name="intermediate_f_small_{}".format(stage))(F_up)
  intermediate_f_small_bn = BatchNormalization(name="intermediate_f_small_bn_{}".format(stage))(intermediate_f_small)
  intermediate_f_large = Conv2D(128, 1, padding='same', name="intermediate_f_large_{}".format(stage))(F_large)
  intermediate_f_large_bn = BatchNormalization(name="intermediate_f_large_bn_{}".format(stage))(intermediate_f_large)
  intermediate_f_sum = Add(name="add_intermediates_{}".format(stage))([intermediate_f_small_bn,intermediate_f_large_bn])
  intermediate_f_relu = Activation('relu', name="activation_CFF_{}".format(stage))(intermediate_f_sum)
  return F_aux, intermediate_f_relu

# Function for the high-res branch of ICNet where image is in scale 1:1. The inputs are the input image, number of filters, kernel size and desired activation function.
def ICNet_1(input_obj,
           n_filters: int,
           kernel_size: tuple,
           activation: str):
  temp=input_obj
  for i in range(1,4):
    conv1=Conv2D(filters=n_filters*2*i, kernel_size=kernel_size, strides=(2,2), padding='same')(temp)
    batch_norm1=BatchNormalization()(conv1)
    temp=Activation(activation)(batch_norm1)
  return temp  

# Function for creating the ICNet model. The inputs are the width and height of the images to be used by the model, number of classes, number of filters, kernel size and
# desired activation function.
def ICNet(image_width: int,
         image_height: int,
         n_classes: int,
         n_filters: int = 16,
         kernel_size: tuple = (3,3),
         activation: str = 'relu'):
  input_shape=[image_width,image_height,3]
  input_obj = tf.keras.Input(shape=input_shape, name="input_img_1")
  input_obj_4 = tf.keras.layers.experimental.preprocessing.Resizing(
    image_width//4, image_height//4, interpolation="bilinear", name="input_img_4")(input_obj)
  input_obj_2 = tf.keras.layers.experimental.preprocessing.Resizing(
    image_width//2, image_height//2, interpolation="bilinear", name="input_img_2")(input_obj)
  ICNet_Model1=ICNet_1(input_obj, n_filters, kernel_size, activation)
  PSPModel = PSPNet(n_classes, n_filters, kernel_size, activation, image_width//4, image_height//4, True)
  last_layer = PSPModel.get_layer('conv4_block3_out').output
  PSPModel_2_4 = tf.keras.models.Model(inputs=PSPModel.input, outputs=last_layer, name="JointResNet_2_4")
  ICNet_Model4 = PSPModel_2_4(input_obj_4)
  ICNet_Model2 = PSPModel_2_4(input_obj_2)
  ICNet_4_rest = PSP_rest(ICNet_Model4)
  out1, last_layer = CFF(1, ICNet_4_rest, ICNet_Model2, n_classes, image_width//32, image_height//32)
  out2, last_layer = CFF(2, last_layer, ICNet_Model1, n_classes, image_width//16, image_height//16)
  upsample_2 = UpSampling2D(2, interpolation='bilinear', name="Upsampling_final_prediction")(last_layer)
  output = Conv2D(n_classes, 1, name="CC_fin", activation='softmax')(upsample_2)
  final_output = UpSampling2D(4, interpolation='bilinear', name='final_output')(output)
  final_model = tf.keras.models.Model(inputs=input_obj, outputs=[out1, out2, output, final_output])
  return final_model

Let's call the ICNet function to create the model with input shape (128, 128, 3) and 3 classes with the standard values for number of filters, kernel size and activation function.

model=ICNet(128,128,3)

Here is the summary of the model.

model.summary()

Let's also plot the model architecture to verify that we got the ICNet architecture correctly. We first save the model in png format on DBFS through the package tf.keras.utils.plot_model and then load and display it through matplotlib.image package.

tf.keras.utils.plot_model(model, to_file='/dbfs/FileStore/my_model.jpg', show_shapes=True)
img = mpimg.imread('/dbfs/FileStore/my_model.jpg')
plt.figure(figsize=(200,200))
imgplot = plt.imshow(img)

Compiling the model with optimizer AdamW (Adam with weight_decay), loss function SparseCategoricalCrossentropy and metrics SparseCategoricalAccuracy. We also add loss weights 0.4, 0.4, 1 and 0 to the lower resolution output, medium resolution output and high resolution output and final output (only evaluated in testing phase) respectively.

model.compile(optimizer=tfa.optimizers.AdamW(learning_rate=0.001, weight_decay=0.0001),
              loss=tf.keras.losses.SparseCategoricalCrossentropy(), loss_weights=[0.4,0.4,1,0],
              metrics="acc")

Below, the functions for displaying the predictions from the model against the true image are defined.

# Function for creating the predicted image. It takes the max value between the classes and assigns the correct class label to the image, thus creating a predicted mask.
def create_mask(pred_mask):
  pred_mask = tf.argmax(pred_mask, axis=-1)
  pred_mask = pred_mask[..., tf.newaxis]
  return pred_mask[0]

# Function for showing the model prediction. Output can be 0, 1 or 2 depending on if you want to see the low resolution, medium resolution or high resolution prediction respectively.
def show_predictions(dataset=None, num=1, output=3):
  if dataset:
    for image, mask in dataset.take(num):
      pred_mask = model.predict(image[tf.newaxis,...])[output]
      display([image, mask['final_output'], create_mask(pred_mask)])
  else:
    display([sample_image, sample_mask,
             create_mask(model.predict(sample_image[tf.newaxis, ...])[output])])

show_predictions()

Let's define the variables needed for training the model.

TRAIN_LENGTH = n_train
BATCH_SIZE = 64
BUFFER_SIZE = 1000
STEPS_PER_EPOCH = TRAIN_LENGTH // BATCH_SIZE

EPOCHS = 20
VAL_SUBSPLITS = 5
VALIDATION_STEPS = n_test//BATCH_SIZE//VAL_SUBSPLITS

Now we define the batch generator which will be passed to model.fit() function.

#def batch_generator(X, Y16, Y8, Y4, batch_size = BATCH_SIZE):
#  indices = np.arange(len(X))
#  batch=[]
#  while True:
  # it might be a good idea to shuffle your data before each epoch
#    np.random.shuffle(indices)
#    for i in indices:
#      batch.append(i)
#      if len(batch)==batch_size:
#        yield X[batch], {'ClassifierConv_1': Y16[batch], 'ClassifierConv_2': Y8[batch], 'ClassifierConv_final_prediction': Y4[batch]}
#        batch=[]

And here we define the custom callback function for showing how the model improves its predictions.

class MyCustomCallback(tf.keras.callbacks.Callback):
  def on_epoch_end(self, epoch, logs=None):
    show_predictions()

We create a callback for early stopping to prevent overfitting.

early_stopping = tf.keras.callbacks.EarlyStopping(
    monitor='val_final_output_loss', patience=4, verbose=0
)

MLFlow is initialized to keep track of the experiments.

import mlflow.tensorflow
mlflow.tensorflow.autolog(every_n_iter=1)

Finally, we fit the model to the Oxford dataset.

model_history =  model.fit(train_dataset, epochs=EPOCHS, steps_per_epoch=STEPS_PER_EPOCH,
                           validation_steps=VALIDATION_STEPS, validation_data=test_dataset, callbacks=[MyCustomCallback(), early_stopping])














We visualize the accuracies and losses through the library matplotlib. This can also be seen in the MLFlow experiment visible under Experiments in the top right corner of the notebook.

loss = model_history.history['loss']
acc = model_history.history['final_output_acc']
val_loss = model_history.history['val_loss']
val_loss1 = model_history.history['val_CC_1_loss']
val_loss2 = model_history.history['val_CC_2_loss']
val_loss3 = model_history.history['val_CC_fin_loss']
val_loss4 = model_history.history['val_final_output_loss']
val_acc1 = model_history.history['val_CC_1_acc']
val_acc2 = model_history.history['val_CC_2_acc']
val_acc3 = model_history.history['val_CC_fin_acc']
val_acc4 = model_history.history['val_final_output_acc']

epochs = range(19)

plt.figure(figsize=(20,3))
plt.subplot(1,4,1)
plt.plot(epochs, loss, 'r', label='Training loss')
plt.plot(epochs, val_loss, 'b', label='Validation loss')
plt.title('Training and Validation Loss')
plt.xlabel('Epoch')
plt.ylabel('Loss Value')
plt.legend()
plt.subplot(1,4,2)
plt.plot(epochs, acc, 'r', label="Training accuracy")
plt.plot(epochs, val_acc4, 'b', label="Validation accuracy")
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.legend()
plt.subplot(1,4,3)
plt.plot(epochs, val_loss1, 'b', label="Loss output 1")
plt.plot(epochs, val_loss2, 'g', label="Loss output 2")
plt.plot(epochs, val_loss3, 'y', label="Loss output 3")
plt.plot(epochs, val_loss4, 'y', label="Loss output 4")
plt.legend()
plt.subplot(1,4,4)
plt.plot(epochs, val_acc1, 'b', label="Acc output 1")
plt.plot(epochs, val_acc2, 'g', label="Acc output 2")
plt.plot(epochs, val_acc3, 'y', label="Acc output 3")
plt.plot(epochs, val_acc4, 'y', label="Acc output 4")
plt.legend()
plt.show()

Finally, we visualize some predictions on the test dataset.

show_predictions(orig_test_dataset, 20, 3)










ScaDaMaLe Course site and book

Implementation of ICNet

In this notebook, an implementation of ICNet is presented which is an architecture which uses a trade-off between complexity and inference time efficiently. The architecture is evaluated against the Oxford pets dataset. This notebook has reused material from the Image Segmentation Tutorial on Tensorflow

Importing the required packages.

import tensorflow as tf
import tensorflow_datasets as tfds
import matplotlib.pyplot as plt
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
import numpy as np
from tensorflow.keras.applications.resnet50 import ResNet50
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import tensorflow_addons as tfa
from tensorflow.keras import backend as K
import horovod.tensorflow.keras as hvd

Setting up checkpoint location... The next cell creates a directory for saved checkpoint models.

import os
import time

checkpoint_dir = '/dbfs/ml/OxfordDemo/train/{}/'.format(time.time())

os.makedirs(checkpoint_dir)
# Including MLflow
import mlflow
import mlflow.tensorflow
import os
print("MLflow Version: %s" % mlflow.__version__)

# Configure Databricks MLflow environment
mlflow.set_tracking_uri("databricks")
DEMO_SCOPE_TOKEN_NAME = "databricksEducational"
databricks_host = 'https://dbc-635ca498-e5f1.cloud.databricks.com/'
databricks_token = dbutils.secrets.get(scope = DEMO_SCOPE_TOKEN_NAME, key = "databricksCLIToken")
os.environ['DATABRICKS_HOST'] = databricks_host
os.environ['DATABRICKS_TOKEN'] = databricks_token

# Configure output folder to store TF events
output_root = "/ml/OxfordDemo/logs/"
output_dir = "/dbfs" + output_root
os.environ['OUTPUT_DIR'] = output_dir

Loading and transforming the dataset.

def normalize(input_image, input_mask):
  input_image = tf.cast(input_image, tf.float32) / 255.0
  input_mask -= 1
  return input_image, input_mask

# Function for resizing the train images to the desired input shape of HxW as well as augmenting the training images.
def load_image_train_noTf(datapoint, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(datapoint['image'], (wanted_height, wanted_width))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (wanted_height, wanted_width))

  if tf.random.uniform(()) > 0.5:
    input_image = tf.image.flip_left_right(input_image)
    input_mask = tf.image.flip_left_right(input_mask)

  input_image, input_mask = normalize(input_image, input_mask)
  input_mask = tf.math.round(input_mask)

  return input_image, input_mask

# Function for resizing the test images to the desired output shape (no augmenation).
def load_image_test(datapoint, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(datapoint['image'], (wanted_height, wanted_width))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (wanted_height, wanted_width))

  input_image, input_mask = normalize(input_image, input_mask)

  return input_image, input_mask

# Functions for resizing the image to the desired size of factor 2 or 4 to be inputted to the ICNet architecture.
def resize_image16(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//16, wanted_width//16))
  input_mask=tf.image.resize(mask, (wanted_height//16, wanted_width//16))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask

def resize_image8(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//8, wanted_width//8))
  input_mask=tf.image.resize(mask, (wanted_height//8, wanted_width//8))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask

def resize_image4(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//4, wanted_width//4))
  input_mask=tf.image.resize(mask, (wanted_height//4, wanted_width//4))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask
def create_datasets_hvd(wanted_height:int, wanted_width:int, BATCH_SIZE:int = 64, BUFFER_SIZE:int = 1000, rank=0, size=1):
  dataset, info = tfds.load('oxford_iiit_pet:3.*.*', data_dir='Oxford-%d' % rank, with_info=True)
  n_train = info.splits['train'].num_examples
  n_test = info.splits['test'].num_examples

  #Creating the ndarray in the correct shapes for training data
  train_original_img = np.ndarray(shape=(n_train, wanted_height, wanted_width, 3))

  train_original_mask = np.ndarray(shape=(n_train, wanted_height, wanted_width, 1))
  train16_mask = np.ndarray(shape=(n_train, wanted_height//16, wanted_width//16, 1))
  train8_mask = np.ndarray(shape=(n_train, wanted_height//8, wanted_width//8, 1))
  train4_mask = np.ndarray(shape=(n_train, wanted_height//4, wanted_width//4, 1))

  #Loading the data into the arrays
  count = 0
  for datapoint in dataset['train']:
    img_orig, mask_orig = load_image_train_noTf(datapoint, wanted_height, wanted_width)
    train_original_img[count]=img_orig
    train_original_mask[count]=mask_orig

    img16, mask16 = resize_image16(img_orig, mask_orig, wanted_height, wanted_width)
    train16_mask[count]=(mask16)

    img8, mask8 = resize_image8(img_orig, mask_orig, wanted_height, wanted_width)
    train8_mask[count]=(mask8)

    img4, mask4 = resize_image4(img_orig, mask_orig, wanted_height, wanted_width)
    train4_mask[count]=(mask4)
    count+=1

  #Creating the ndarrays in the correct shapes for test data  
  test_original_img = np.ndarray(shape=(n_test,wanted_height,wanted_width,3))

  test_original_mask = np.ndarray(shape=(n_test,wanted_height,wanted_width,1))
  test16_mask = np.ndarray(shape=(n_test,wanted_height//16,wanted_width//16,1))
  test8_mask = np.ndarray(shape=(n_test,wanted_height//8,wanted_width//8,1))
  test4_mask = np.ndarray(shape=(n_test,wanted_height//4,wanted_width//4,1))

  #Loading the data into the arrays
  count=0
  for datapoint in dataset['test']:
    img_orig, mask_orig = load_image_test(datapoint, wanted_height, wanted_width)
    test_original_img[count]=(img_orig)
    test_original_mask[count]=(mask_orig)

    img16, mask16 = resize_image16(img_orig, mask_orig, wanted_height, wanted_width)
    test16_mask[count]=(mask16)
    #test16_img[count]=(img16)

    img8, mask8 = resize_image8(img_orig, mask_orig, wanted_height, wanted_width)
    test8_mask[count]=(mask8)
    #test8_img[count]=(img8)

    img4, mask4 = resize_image4(img_orig, mask_orig, wanted_height, wanted_width)
    test4_mask[count]=(mask4)
    #test4_img[count]=(img4)
    count+=1


  train_dataset = tf.data.Dataset.from_tensor_slices((train_original_img[rank::size], {'CC_1': train16_mask[rank::size], 'CC_2': train8_mask[rank::size], 'CC_fin': train4_mask[rank::size], 'final_output': train_original_mask[rank::size]}))
  orig_test_dataset = tf.data.Dataset.from_tensor_slices((test_original_img[rank::size], {'CC_1': test16_mask[rank::size], 'CC_2': test8_mask[rank::size], 'CC_fin': test4_mask[rank::size], 'final_output': test_original_mask[rank::size]}))
  train_dataset = train_dataset.shuffle(BUFFER_SIZE).cache().batch(BATCH_SIZE).repeat()
  train_dataset.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
  test_dataset = orig_test_dataset.batch(BATCH_SIZE)




  return train_dataset, test_dataset, train_original_mask[0], train_original_img[0], orig_test_dataset, n_train, n_test

Defining the functions needed for the PSPNet module.

# Function for the pooling module which takes the output of ResNet50 as input as well as its width and height and pool it with a factor.
def pool_block(cur_tensor,
               image_width,
               image_height,
               pooling_factor,
               activation):

  strides = [int(np.round(float(image_width)/pooling_factor)),
            int(np.round(float(image_height)/pooling_factor))]
  pooling_size = strides
  x = AveragePooling2D(pooling_size, strides=strides, padding='same')(cur_tensor)
  x = Conv2D(128,(1,1),padding='same')(x)
  x = BatchNormalization()(x)
  x = Activation(activation)(x)
  x = tf.keras.layers.experimental.preprocessing.Resizing(
    image_height, image_width, interpolation="bilinear")(x) # Resizing images to correct shape for future concat
  return x

# Function for formatting the resnet model to a modified one which takes advantage of dilation rates instead of strides in the final blocks.

def modify_ResNet_Dilation(model):
  for i in range(0,4):
    model.get_layer('conv4_block1_{}_conv'.format(i)).strides = 1
    model.get_layer('conv4_block1_{}_conv'.format(i)).dilation_rate = 2
    model.get_layer('conv5_block1_{}_conv'.format(i)).strides = 1
    model.get_layer('conv5_block1_{}_conv'.format(i)).dilation_rate = 4
  model.save('/tmp/my_model')
  new_model = tf.keras.models.load_model('/tmp/my_model')
  return new_model


# Function for creating the PSPNet model. The inputs is the number of classes to classify, number of filters to use, kernel_size, activation function,
# input image width and height and a boolean for knowing if the module is part of the ICNet or not.
def PSPNet(n_classes: int,
           n_filters: int,
           kernel_size: tuple,
           activation: str,
           image_width: int,
           image_height: int,
           isICNet: bool = False,
           dropout: bool = True,
           bn: bool = True
          ):
  if isICNet:
    input_shape=(None, None, 3)
  else:
    input_shape=(image_height,image_width,3)
  encoder=ResNet50(include_top=False, weights='imagenet', input_shape=input_shape)
  encoder=modify_ResNet_Dilation(encoder)
  #encoder.trainable=False
  resnet_output=encoder.output
  pooling_layer=[]
  pooling_layer.append(resnet_output)
  output=(resnet_output)
  h = image_height//8
  w = image_width//8
  for i in [1,2,3,6]:
    pool = pool_block(output, h, w, i, activation)
    pooling_layer.append(pool)
  concat=Concatenate()(pooling_layer)
  output_layer=Conv2D(filters=n_classes, kernel_size=(1,1), padding='same')(concat)
  final_layer=UpSampling2D(size=(8,8), data_format='channels_last', interpolation='bilinear')(output_layer)
  final_model=tf.keras.models.Model(inputs=encoder.input, outputs=final_layer)
  return final_model

#model = PSPNet(3, 16, (3,3), 'relu', 128,128)

Defining the functions needed for the ICNet.

# Function for adding stage 4 and 5 of ResNet50 to the 1/4 image size branch of the ICNet.
def PSP_rest(input_prev: tf.Tensor):

  y_ = input_prev
  #Stage 4
  #Conv_Block
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block1_conv1')(y_)
  y = BatchNormalization(name='C4_block1_bn1')(y)
  y = Activation('relu', name='C4_block1_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block1_conv2')(y)
  y = BatchNormalization(name='C4_block1_bn2')(y)
  y = Activation('relu', name='C4_block1_act2')(y)
  y_ = Conv2D(1024, 1, dilation_rate=2, padding='same', name='C4_block1_conv0')(y_)
  y = Conv2D(1024, 1, dilation_rate=2, padding='same', name='C4_block1_conv3')(y)
  y_ = BatchNormalization(name='C4_block1_bn0')(y_)
  y = BatchNormalization(name='C4_block1_bn3')(y)
  y = Add(name='C4_skip1')([y_,y])
  y_ = Activation('relu', name='C4_block1_act3')(y)
  #IDBLOCK1
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block2_conv1')(y_)
  y = BatchNormalization(name='C4_block2_bn1')(y)
  y = Activation('relu', name='C4_block2_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block2_conv2')(y)
  y = BatchNormalization(name='C4_block2_bn2')(y)
  y = Activation('relu', name='C4_block2_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block2_conv3')(y)
  y = BatchNormalization(name='C4_block2_bn3')(y)
  y = Add(name='C4_skip2')([y_,y])
  y_ = Activation('relu', name='C4_block2_act3')(y)
  #IDBLOCK2
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block3_conv1')(y_)
  y = BatchNormalization(name='C4_block3_bn1')(y)
  y = Activation('relu', name='C4_block3_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block3_conv2')(y)
  y = BatchNormalization(name='C4_block3_bn2')(y)
  y = Activation('relu', name='C4_block3_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block3_conv3')(y)
  y = BatchNormalization(name='C4_block3_bn3')(y)
  y = Add(name='C4_skip3')([y_,y])
  y_ = Activation('relu', name='C4_block3_act3')(y)
  #IDBlock3
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block4_conv1')(y_)
  y = BatchNormalization(name='C4_block4_bn1')(y)
  y = Activation('relu', name='C4_block4_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block4_conv2')(y)
  y = BatchNormalization(name='C4_block4_bn2')(y)
  y = Activation('relu', name='C4_block4_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block4_conv3')(y)
  y = BatchNormalization(name='C4_block4_bn3')(y)
  y = Add(name='C4_skip4')([y_,y])
  y_ = Activation('relu', name='C4_block4_act3')(y)
  #ID4
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block5_conv1')(y_)
  y = BatchNormalization(name='C4_block5_bn1')(y)
  y = Activation('relu', name='C4_block5_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block5_conv2')(y)
  y = BatchNormalization(name='C4_block5_bn2')(y)
  y = Activation('relu', name='C4_block5_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block5_conv3')(y)
  y = BatchNormalization(name='C4_block5_bn3')(y)
  y = Add(name='C4_skip5')([y_,y])
  y_ = Activation('relu', name='C4_block5_act3')(y)
  #ID5
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block6_conv1')(y_)
  y = BatchNormalization(name='C4_block6_bn1')(y)
  y = Activation('relu', name='C4_block6_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block6_conv2')(y)
  y = BatchNormalization(name='C4_block6_bn2')(y)
  y = Activation('relu', name='C4_block6_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block6_conv3')(y)
  y = BatchNormalization(name='C4_block6_bn3')(y)
  y = Add(name='C4_skip6')([y_,y])
  y_ = Activation('relu', name='C4_block6_act3')(y)

  #Stage 5
  #Conv
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block1_conv1')(y_)
  y = BatchNormalization(name='C5_block1_bn1')(y)
  y = Activation('relu', name='C5_block1_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block1_conv2')(y)
  y = BatchNormalization(name='C5_block1_bn2')(y)
  y = Activation('relu', name='C5_block1_act2')(y)
  y_ = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block1_conv0')(y_)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block1_conv3')(y)
  y_ = BatchNormalization(name='C5_block1_bn0')(y_)
  y = BatchNormalization(name='C5_block1_bn3')(y)
  y = Add(name='C5_skip1')([y_,y])
  y_ = Activation('relu', name='C5_block1_act3')(y)

  #ID
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block2_conv1')(y_)
  y = BatchNormalization(name='C5_block2_bn1')(y)
  y = Activation('relu', name='C5_block2_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block2_conv2')(y)
  y = BatchNormalization(name='C5_block2_bn2')(y)
  y = Activation('relu', name='C5_block2_act2')(y)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block2_conv3')(y)
  y = BatchNormalization(name='C5_block2_bn3')(y)
  y = Add(name='C5_skip2')([y_,y])
  y_ = Activation('relu', name='C5_block2_act3')(y)

  #ID
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block3_conv1')(y_)
  y = BatchNormalization(name='C5_block3_bn1')(y)
  y = Activation('relu', name='C5_block3_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block3_conv2')(y)
  y = BatchNormalization(name='C5_block3_bn2')(y)
  y = Activation('relu', name='C5_block3_act2')(y)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block3_conv3')(y)
  y = BatchNormalization(name='C5_block3_bn3')(y)
  y = Add(name='C5_skip3')([y_,y])
  y_ = Activation('relu', name='C5_block3_act3')(y)

  return(y_)

# Function for the CFF module in the ICNet architecture. The inputs are which stage (1 or 2), the output from the smaller branch, the output from the
# larger branch, n_classes and the width and height of the output of the smaller branch.
def CFF(stage: int, F_small, F_large, n_classes: int, input_width_small: int, input_height_small: int):
  F_up = tf.keras.layers.experimental.preprocessing.Resizing(int(input_width_small*2), int(input_height_small*2), interpolation="bilinear", name="Upsample_x2_small_{}".format(stage))(F_small)
  F_aux = Conv2D(n_classes, 1, name="CC_{}".format(stage), activation='softmax')(F_up)
  intermediate_f_small = Conv2D(128, 3, dilation_rate=2, padding='same', name="intermediate_f_small_{}".format(stage))(F_up)
  intermediate_f_small_bn = BatchNormalization(name="intermediate_f_small_bn_{}".format(stage))(intermediate_f_small)
  intermediate_f_large = Conv2D(128, 1, padding='same', name="intermediate_f_large_{}".format(stage))(F_large)
  intermediate_f_large_bn = BatchNormalization(name="intermediate_f_large_bn_{}".format(stage))(intermediate_f_large)
  intermediate_f_sum = Add(name="add_intermediates_{}".format(stage))([intermediate_f_small_bn,intermediate_f_large_bn])
  intermediate_f_relu = Activation('relu', name="activation_CFF_{}".format(stage))(intermediate_f_sum)
  return F_aux, intermediate_f_relu

# Function for the high-res branch of ICNet where image is in scale 1:1. The inputs are the input image, number of filters, kernel size and desired activation function.
def ICNet_1(input_obj,
           n_filters: int,
           kernel_size: tuple,
           activation: str):
  temp=input_obj
  for i in range(1,4):
    conv1=Conv2D(filters=n_filters*2*i, kernel_size=kernel_size, strides=(2,2), padding='same')(temp)
    batch_norm1=BatchNormalization()(conv1)
    temp=Activation(activation)(batch_norm1)
  return temp  

# Function for creating the ICNet model. The inputs are the width and height of the images to be used by the model, number of classes, number of filters, kernel size and
# desired activation function.
def ICNet(image_width: int,
         image_height: int,
         n_classes: int,
         n_filters: int = 16,
         kernel_size: tuple = (3,3),
         activation: str = 'relu'):
  input_shape=[image_width,image_height,3]
  input_obj = tf.keras.Input(shape=input_shape, name="input_img_1")
  input_obj_4 = tf.keras.layers.experimental.preprocessing.Resizing(
    image_width//4, image_height//4, interpolation="bilinear", name="input_img_4")(input_obj)
  input_obj_2 = tf.keras.layers.experimental.preprocessing.Resizing(
    image_width//2, image_height//2, interpolation="bilinear", name="input_img_2")(input_obj)
  ICNet_Model1=ICNet_1(input_obj, n_filters, kernel_size, activation)
  PSPModel = PSPNet(n_classes, n_filters, kernel_size, activation, image_width//4, image_height//4, True)
  last_layer = PSPModel.get_layer('conv4_block3_out').output
  PSPModel_2_4 = tf.keras.models.Model(inputs=PSPModel.input, outputs=last_layer, name="JointResNet_2_4")
  ICNet_Model4 = PSPModel_2_4(input_obj_4)
  ICNet_Model2 = PSPModel_2_4(input_obj_2)
  ICNet_4_rest = PSP_rest(ICNet_Model4)
  out1, last_layer = CFF(1, ICNet_4_rest, ICNet_Model2, n_classes, image_width//32, image_height//32)
  out2, last_layer = CFF(2, last_layer, ICNet_Model1, n_classes, image_width//16, image_height//16)
  upsample_2 = UpSampling2D(2, interpolation='bilinear', name="Upsampling_final_prediction")(last_layer)
  output = Conv2D(n_classes, 1, name="CC_fin", activation='softmax')(upsample_2)
  final_output = UpSampling2D(4, interpolation='bilinear', name='final_output')(output)
  final_model = tf.keras.models.Model(inputs=input_obj, outputs=[out1, out2, output, final_output])
  return final_model

Below we define a function to be called by the horovod instance which creates the dataset depending on the amount of workers as well as:

Compiling the model with optimizer adam, loss function SparseCategoricalCrossentropy and metrics SparseCategoricalAccuracy. We also add loss weights 0.1, 0.3 and 0.6 to the lower resolution output, medium resolution output and high resolution output respectively.

MLFlow is initialized to keep track of the experiments.

def train_hvd(learning_rate=1.0, batch_size:int =64, buffer_size:int=1000):

  # Initialize Horovod
  hvd.init()

  # Pin GPU to be used to process local rank (one GPU per process)
  # These steps are skipped on a CPU cluster
  gpus = tf.config.experimental.list_physical_devices('GPU')
  for gpu in gpus:
    tf.config.experimental.set_memory_growth(gpu, True)
  if gpus:
    tf.config.experimental.set_visible_devices(gpus[hvd.local_rank()], 'GPU')

  # Including MLflow
  import mlflow
  import mlflow.tensorflow
  import os

  # Configure Databricks MLflow environment
  #    This is my (denny.lee) personal token so you will want to generate yours
  mlflow.set_tracking_uri("databricks")
  os.environ['DATABRICKS_HOST'] = databricks_host
  os.environ['DATABRICKS_TOKEN'] = databricks_token
  mlflow.set_experiment("/scalable-data-science/000_0-sds-3-x-projects/voluntary-student-project-01_group-DDLInMining/04_ICNet_Function_hvd")

  # Call the get_dataset function you created, this time with the Horovod rank and size
  train_dataset, test_dataset, sample_mask, sample_image, orig_test_dataset, n_train, n_test = create_datasets_hvd(128,128, batch_size, buffer_size, hvd.rank(), hvd.size())
  model = ICNet(128,128,3)

  STEPS_PER_EPOCH = n_train // batch_size

  EPOCHS = 20
  VAL_SUBSPLITS = 5
  VALIDATION_STEPS = n_test//batch_size//VAL_SUBSPLITS

  # Adjust learning rate based on number of GPUs
  optimizer = tfa.optimizers.AdamW(lr=learning_rate * hvd.size(), weight_decay=0.0001)

  # Use the Horovod Distributed Optimizer
  optimizer = hvd.DistributedOptimizer(optimizer)

  model.compile(optimizer=optimizer,
              loss=tf.keras.losses.SparseCategoricalCrossentropy(), loss_weights=[0.4,0.4,1,0],
              metrics="acc")

  # Create a callback to broadcast the initial variable states from rank 0 to all other processes.
  # This is required to ensure consistent initialization of all workers when training is started with random weights or restored from a checkpoint.
  callbacks = [
      hvd.callbacks.BroadcastGlobalVariablesCallback(0)
  ]

  # Save checkpoints only on worker 0 to prevent conflicts between workers
  if hvd.rank() == 0:
      callbacks.append(tf.keras.callbacks.ModelCheckpoint(checkpoint_dir + '/checkpoint-{epoch}.ckpt', save_weights_only = True, monitor='val_final_output_loss', save_best_only=True))
      mlflow.tensorflow.autolog(every_n_iter=1)

  model_history =  model.fit(train_dataset, epochs=EPOCHS, steps_per_epoch=STEPS_PER_EPOCH,
                           validation_steps=VALIDATION_STEPS, validation_data=test_dataset, callbacks=callbacks)



Finally, we fit the model to the Oxford dataset.

from sparkdl import HorovodRunner

hr = HorovodRunner(np=2)
hr.run(train_hvd, learning_rate=0.001)
loss = model_history.history['loss']
acc = model_history.history['final_output_acc']
val_loss = model_history.history['val_loss']
val_loss1 = model_history.history['val_CC_1_loss']
val_loss2 = model_history.history['val_CC_2_loss']
val_loss3 = model_history.history['val_CC_fin_loss']
val_loss4 = model_history.history['val_final_output_loss']
val_acc1 = model_history.history['val_CC_1_acc']
val_acc2 = model_history.history['val_CC_2_acc']
val_acc3 = model_history.history['val_CC_fin_acc']
val_acc4 = model_history.history['val_final_output_acc']

epochs = range(16)

plt.figure(figsize=(20,3))
plt.subplot(1,4,1)
plt.plot(epochs, loss, 'r', label='Training loss')
plt.plot(epochs, val_loss, 'b', label='Validation loss')
plt.title('Training and Validation Loss')
plt.xlabel('Epoch')
plt.ylabel('Loss Value')
plt.legend()
plt.subplot(1,4,2)
plt.plot(epochs, acc, 'r', label="Training accuracy")
plt.plot(epochs, val_acc4, 'b', label="Validation accuracy")
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.legend()
plt.subplot(1,4,3)
plt.plot(epochs, val_loss1, 'b', label="Loss output 1")
plt.plot(epochs, val_loss2, 'g', label="Loss output 2")
plt.plot(epochs, val_loss3, 'y', label="Loss output 3")
plt.plot(epochs, val_loss4, 'y', label="Loss output 4")
plt.legend()
plt.subplot(1,4,4)
plt.plot(epochs, val_acc1, 'b', label="Acc output 1")
plt.plot(epochs, val_acc2, 'g', label="Acc output 2")
plt.plot(epochs, val_acc3, 'y', label="Acc output 3")
plt.plot(epochs, val_acc4, 'y', label="Acc output 4")
plt.legend()
plt.show()

Finally, we visualize some predictions on the test dataset.

show_predictions(orig_test_dataset, 20, 3)










ScaDaMaLe Course site and book

Implementation of ICNet

In this notebook, an implementation of ICNet is presented which is an architecture which uses a trade-off between complexity and inference time efficiently. The architecture is evaluated against the Oxford pets dataset. This notebook has reused material from the Image Segmentation Tutorial on Tensorflow

Importing the required packages.

import tensorflow as tf
import tensorflow_datasets as tfds
import matplotlib.pyplot as plt
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
import numpy as np
from tensorflow.keras.applications.resnet50 import ResNet50
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import tensorflow_addons as tfa
from hyperopt import fmin, tpe, hp, Trials, STATUS_OK, SparkTrials

Loading and transforming the dataset.

def normalize(input_image, input_mask):
  input_image = tf.cast(input_image, tf.float32) / 255.0
  input_mask -= 1
  return input_image, input_mask

# Function for resizing the train images to the desired input shape of HxW as well as augmenting the training images.
def load_image_train_noTf(datapoint, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(datapoint['image'], (wanted_height, wanted_width))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (wanted_height, wanted_width))

  if tf.random.uniform(()) > 0.5:
    input_image = tf.image.flip_left_right(input_image)
    input_mask = tf.image.flip_left_right(input_mask)

  input_image, input_mask = normalize(input_image, input_mask)
  input_mask = tf.math.round(input_mask)

  return input_image, input_mask

# Function for resizing the test images to the desired output shape (no augmenation).
def load_image_test(datapoint, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(datapoint['image'], (wanted_height, wanted_width))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (wanted_height, wanted_width))

  input_image, input_mask = normalize(input_image, input_mask)

  return input_image, input_mask



# Functions for resizing the image to the desired size of factor 2 or 4 to be inputted to the ICNet architecture.
def resize_image16(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//16, wanted_width//16))
  input_mask=tf.image.resize(mask, (wanted_height//16, wanted_width//16))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask

def resize_image8(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//8, wanted_width//8))
  input_mask=tf.image.resize(mask, (wanted_height//8, wanted_width//8))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask

def resize_image4(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//4, wanted_width//4))
  input_mask=tf.image.resize(mask, (wanted_height//4, wanted_width//4))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask
def create_datasets(wanted_height:int, wanted_width:int, BATCH_SIZE:int = 64, BUFFER_SIZE:int = 1000):
  #Loading the dataset
  dataset, info = tfds.load('oxford_iiit_pet:3.*.*', with_info=True)
  n_train = info.splits['train'].num_examples
  n_test = info.splits['test'].num_examples

  #Creating the ndarray in the correct shapes for training data
  train_original_img = np.ndarray(shape=(n_train, wanted_height, wanted_width, 3), dtype=np.float32)

  train_original_mask = np.ndarray(shape=(n_train, wanted_height, wanted_width, 1), dtype=np.float32)
  train16_mask = np.ndarray(shape=(n_train, wanted_height//16, wanted_width//16, 1), dtype=np.float32)
  train8_mask = np.ndarray(shape=(n_train, wanted_height//8, wanted_width//8, 1), dtype=np.float32)
  train4_mask = np.ndarray(shape=(n_train, wanted_height//4, wanted_width//4, 1), dtype=np.float32)

  #Loading the data into the arrays
  count = 0
  for datapoint in dataset['train']:
    img_orig, mask_orig = load_image_train_noTf(datapoint, wanted_height, wanted_width)
    train_original_img[count]=img_orig
    train_original_mask[count]=mask_orig

    img16, mask16 = resize_image16(img_orig, mask_orig, wanted_height, wanted_width)
    train16_mask[count]=(mask16)

    img8, mask8 = resize_image8(img_orig, mask_orig, wanted_height, wanted_width)
    train8_mask[count]=(mask8)

    img4, mask4 = resize_image4(img_orig, mask_orig, wanted_height, wanted_width)
    train4_mask[count]=(mask4)
    count+=1

  #Creating the ndarrays in the correct shapes for test data  
  test_original_img = np.ndarray(shape=(n_test,wanted_height,wanted_width,3), dtype=np.float32)

  test_original_mask = np.ndarray(shape=(n_test,wanted_height,wanted_width,1), dtype=np.float32)
  test16_mask = np.ndarray(shape=(n_test,wanted_height//16,wanted_width//16,1), dtype=np.float32)
  test8_mask = np.ndarray(shape=(n_test,wanted_height//8,wanted_width//8,1), dtype=np.float32)
  test4_mask = np.ndarray(shape=(n_test,wanted_height//4,wanted_width//4,1), dtype=np.float32)

  #Loading the data into the arrays
  count=0
  for datapoint in dataset['test']:
    img_orig, mask_orig = load_image_test(datapoint, wanted_height, wanted_width)
    test_original_img[count]=(img_orig)
    test_original_mask[count]=(mask_orig)

    img16, mask16 = resize_image16(img_orig, mask_orig, wanted_height, wanted_width)
    test16_mask[count]=(mask16)

    img8, mask8 = resize_image8(img_orig, mask_orig, wanted_height, wanted_width)
    test8_mask[count]=(mask8)

    img4, mask4 = resize_image4(img_orig, mask_orig, wanted_height, wanted_width)
    test4_mask[count]=(mask4)

    count+=1

  train_dataset = [train_original_img, train16_mask, train8_mask, train4_mask, train_original_mask]
  orig_test_dataset = [test_original_img, test16_mask, test8_mask, test4_mask, test_original_mask]


  return train_dataset, orig_test_dataset, train_original_mask[0], train_original_img[0], n_train, n_test

Running and loading the functions to create and save the transformed data.

train_dataset, orig_test_dataset, sample_mask, sample_image, n_train, n_test = create_datasets(128,128, 64, 1000)

Defining the function for displaying images and the model's predictions jointly.

def display(display_list):
  plt.figure(figsize=(15, 15))

  title = ['Input Image', 'True Mask', 'Predicted Mask']

  for i in range(len(display_list)):
    plt.subplot(1, len(display_list), i+1)
    plt.title(title[i])
    plt.imshow(tf.keras.preprocessing.image.array_to_img(display_list[i]))
    plt.axis('off')
  plt.show()


sample_image, sample_mask = sample_image, sample_mask
display([sample_image, sample_mask])

Defining the functions needed for the PSPNet module.

# Function for the pooling module which takes the output of ResNet50 as input as well as its width and height and pool it with a factor.
def pool_block(cur_tensor,
               image_width,
               image_height,
               pooling_factor,
               activation):

  strides = [int(np.round(float(image_width)/pooling_factor)),
            int(np.round(float(image_height)/pooling_factor))]
  pooling_size = strides
  x = AveragePooling2D(pooling_size, strides=strides, padding='same')(cur_tensor)
  x = Conv2D(128,(1,1),padding='same')(x)
  x = BatchNormalization()(x)
  x = Activation(activation)(x)
  x = tf.keras.layers.experimental.preprocessing.Resizing(
    image_height, image_width, interpolation="bilinear")(x) # Resizing images to correct shape for future concat
  return x

# Function for formatting the resnet model to a modified one which takes advantage of dilation rates instead of strides in the final blocks.

def modify_ResNet_Dilation(model):
  for i in range(0,4):
    model.get_layer('conv4_block1_{}_conv'.format(i)).strides = 1
    model.get_layer('conv4_block1_{}_conv'.format(i)).dilation_rate = 2
    model.get_layer('conv5_block1_{}_conv'.format(i)).strides = 1
    model.get_layer('conv5_block1_{}_conv'.format(i)).dilation_rate = 4
  model.save('/tmp/my_model')
  new_model = tf.keras.models.load_model('/tmp/my_model')
  return new_model


# Function for creating the PSPNet model. The inputs is the number of classes to classify, number of filters to use, kernel_size, activation function,
# input image width and height and a boolean for knowing if the module is part of the ICNet or not.
def PSPNet(n_classes: int,
           n_filters: int,
           kernel_size: tuple,
           activation: str,
           image_width: int,
           image_height: int,
           isICNet: bool = False,
           dropout: bool = True,
           bn: bool = True
          ):
  if isICNet:
    input_shape=(None, None, 3)
  else:
    input_shape=(image_height,image_width,3)
  encoder=ResNet50(include_top=False, weights='imagenet', input_shape=input_shape)
  encoder=modify_ResNet_Dilation(encoder)
  #encoder.trainable=False
  resnet_output=encoder.output
  pooling_layer=[]
  pooling_layer.append(resnet_output)
  output=(resnet_output)
  h = image_height//8
  w = image_width//8
  for i in [1,2,3,6]:
    pool = pool_block(output, h, w, i, activation)
    pooling_layer.append(pool)
  concat=Concatenate()(pooling_layer)
  output_layer=Conv2D(filters=n_classes, kernel_size=(1,1), padding='same')(concat)
  final_layer=UpSampling2D(size=(8,8), data_format='channels_last', interpolation='bilinear')(output_layer)
  final_model=tf.keras.models.Model(inputs=encoder.input, outputs=final_layer)
  return final_model

#model = PSPNet(3, 16, (3,3), 'relu', 128,128)

Defining the functions needed for the ICNet.

# Function for adding stage 4 and 5 of ResNet50 to the 1/4 image size branch of the ICNet.
def PSP_rest(input_prev: tf.Tensor):

  y_ = input_prev
  #Stage 4
  #Conv_Block
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block1_conv1')(y_)
  y = BatchNormalization(name='C4_block1_bn1')(y)
  y = Activation('relu', name='C4_block1_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block1_conv2')(y)
  y = BatchNormalization(name='C4_block1_bn2')(y)
  y = Activation('relu', name='C4_block1_act2')(y)
  y_ = Conv2D(1024, 1, dilation_rate=2, padding='same', name='C4_block1_conv0')(y_)
  y = Conv2D(1024, 1, dilation_rate=2, padding='same', name='C4_block1_conv3')(y)
  y_ = BatchNormalization(name='C4_block1_bn0')(y_)
  y = BatchNormalization(name='C4_block1_bn3')(y)
  y = Add(name='C4_skip1')([y_,y])
  y_ = Activation('relu', name='C4_block1_act3')(y)
  #IDBLOCK1
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block2_conv1')(y_)
  y = BatchNormalization(name='C4_block2_bn1')(y)
  y = Activation('relu', name='C4_block2_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block2_conv2')(y)
  y = BatchNormalization(name='C4_block2_bn2')(y)
  y = Activation('relu', name='C4_block2_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block2_conv3')(y)
  y = BatchNormalization(name='C4_block2_bn3')(y)
  y = Add(name='C4_skip2')([y_,y])
  y_ = Activation('relu', name='C4_block2_act3')(y)
  #IDBLOCK2
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block3_conv1')(y_)
  y = BatchNormalization(name='C4_block3_bn1')(y)
  y = Activation('relu', name='C4_block3_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block3_conv2')(y)
  y = BatchNormalization(name='C4_block3_bn2')(y)
  y = Activation('relu', name='C4_block3_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block3_conv3')(y)
  y = BatchNormalization(name='C4_block3_bn3')(y)
  y = Add(name='C4_skip3')([y_,y])
  y_ = Activation('relu', name='C4_block3_act3')(y)
  #IDBlock3
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block4_conv1')(y_)
  y = BatchNormalization(name='C4_block4_bn1')(y)
  y = Activation('relu', name='C4_block4_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block4_conv2')(y)
  y = BatchNormalization(name='C4_block4_bn2')(y)
  y = Activation('relu', name='C4_block4_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block4_conv3')(y)
  y = BatchNormalization(name='C4_block4_bn3')(y)
  y = Add(name='C4_skip4')([y_,y])
  y_ = Activation('relu', name='C4_block4_act3')(y)
  #ID4
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block5_conv1')(y_)
  y = BatchNormalization(name='C4_block5_bn1')(y)
  y = Activation('relu', name='C4_block5_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block5_conv2')(y)
  y = BatchNormalization(name='C4_block5_bn2')(y)
  y = Activation('relu', name='C4_block5_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block5_conv3')(y)
  y = BatchNormalization(name='C4_block5_bn3')(y)
  y = Add(name='C4_skip5')([y_,y])
  y_ = Activation('relu', name='C4_block5_act3')(y)
  #ID5
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block6_conv1')(y_)
  y = BatchNormalization(name='C4_block6_bn1')(y)
  y = Activation('relu', name='C4_block6_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block6_conv2')(y)
  y = BatchNormalization(name='C4_block6_bn2')(y)
  y = Activation('relu', name='C4_block6_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block6_conv3')(y)
  y = BatchNormalization(name='C4_block6_bn3')(y)
  y = Add(name='C4_skip6')([y_,y])
  y_ = Activation('relu', name='C4_block6_act3')(y)

  #Stage 5
  #Conv
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block1_conv1')(y_)
  y = BatchNormalization(name='C5_block1_bn1')(y)
  y = Activation('relu', name='C5_block1_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block1_conv2')(y)
  y = BatchNormalization(name='C5_block1_bn2')(y)
  y = Activation('relu', name='C5_block1_act2')(y)
  y_ = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block1_conv0')(y_)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block1_conv3')(y)
  y_ = BatchNormalization(name='C5_block1_bn0')(y_)
  y = BatchNormalization(name='C5_block1_bn3')(y)
  y = Add(name='C5_skip1')([y_,y])
  y_ = Activation('relu', name='C5_block1_act3')(y)

  #ID
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block2_conv1')(y_)
  y = BatchNormalization(name='C5_block2_bn1')(y)
  y = Activation('relu', name='C5_block2_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block2_conv2')(y)
  y = BatchNormalization(name='C5_block2_bn2')(y)
  y = Activation('relu', name='C5_block2_act2')(y)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block2_conv3')(y)
  y = BatchNormalization(name='C5_block2_bn3')(y)
  y = Add(name='C5_skip2')([y_,y])
  y_ = Activation('relu', name='C5_block2_act3')(y)

  #ID
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block3_conv1')(y_)
  y = BatchNormalization(name='C5_block3_bn1')(y)
  y = Activation('relu', name='C5_block3_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block3_conv2')(y)
  y = BatchNormalization(name='C5_block3_bn2')(y)
  y = Activation('relu', name='C5_block3_act2')(y)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block3_conv3')(y)
  y = BatchNormalization(name='C5_block3_bn3')(y)
  y = Add(name='C5_skip3')([y_,y])
  y_ = Activation('relu', name='C5_block3_act3')(y)

  return(y_)

# Function for the CFF module in the ICNet architecture. The inputs are which stage (1 or 2), the output from the smaller branch, the output from the
# larger branch, n_classes and the width and height of the output of the smaller branch.
def CFF(stage: int, F_small, F_large, n_classes: int, input_width_small: int, input_height_small: int):
  F_up = tf.keras.layers.experimental.preprocessing.Resizing(int(input_width_small*2), int(input_height_small*2), interpolation="bilinear", name="Upsample_x2_small_{}".format(stage))(F_small)
  F_aux = Conv2D(n_classes, 1, name="CC_{}".format(stage), activation='softmax')(F_up)
  intermediate_f_small = Conv2D(128, 3, dilation_rate=2, padding='same', name="intermediate_f_small_{}".format(stage))(F_up)
  intermediate_f_small_bn = BatchNormalization(name="intermediate_f_small_bn_{}".format(stage))(intermediate_f_small)
  intermediate_f_large = Conv2D(128, 1, padding='same', name="intermediate_f_large_{}".format(stage))(F_large)
  intermediate_f_large_bn = BatchNormalization(name="intermediate_f_large_bn_{}".format(stage))(intermediate_f_large)
  intermediate_f_sum = Add(name="add_intermediates_{}".format(stage))([intermediate_f_small_bn,intermediate_f_large_bn])
  intermediate_f_relu = Activation('relu', name="activation_CFF_{}".format(stage))(intermediate_f_sum)
  return F_aux, intermediate_f_relu

# Function for the high-res branch of ICNet where image is in scale 1:1. The inputs are the input image, number of filters, kernel size and desired activation function.
def ICNet_1(input_obj,
           n_filters: int,
           kernel_size: tuple,
           activation: str):
  temp=input_obj
  for i in range(1,4):
    conv1=Conv2D(filters=n_filters*2*i, kernel_size=kernel_size, strides=(2,2), padding='same')(temp)
    batch_norm1=BatchNormalization()(conv1)
    temp=Activation(activation)(batch_norm1)
  return temp  

# Function for creating the ICNet model. The inputs are the width and height of the images to be used by the model, number of classes, number of filters, kernel size and
# desired activation function.
def ICNet(image_width: int,
         image_height: int,
         n_classes: int,
         n_filters: int = 16,
         kernel_size: tuple = (3,3),
         activation: str = 'relu'):
  input_shape=[image_width,image_height,3]
  input_obj = tf.keras.Input(shape=input_shape, name="input_img_1")
  input_obj_4 = tf.keras.layers.experimental.preprocessing.Resizing(
    image_width//4, image_height//4, interpolation="bilinear", name="input_img_4")(input_obj)
  input_obj_2 = tf.keras.layers.experimental.preprocessing.Resizing(
    image_width//2, image_height//2, interpolation="bilinear", name="input_img_2")(input_obj)
  ICNet_Model1=ICNet_1(input_obj, n_filters, kernel_size, activation)
  PSPModel = PSPNet(n_classes, n_filters, kernel_size, activation, image_width//4, image_height//4, True)
  last_layer = PSPModel.get_layer('conv4_block3_out').output
  PSPModel_2_4 = tf.keras.models.Model(inputs=PSPModel.input, outputs=last_layer, name="JointResNet_2_4")
  ICNet_Model4 = PSPModel_2_4(input_obj_4)
  ICNet_Model2 = PSPModel_2_4(input_obj_2)
  ICNet_4_rest = PSP_rest(ICNet_Model4)
  out1, last_layer = CFF(1, ICNet_4_rest, ICNet_Model2, n_classes, image_width//32, image_height//32)
  out2, last_layer = CFF(2, last_layer, ICNet_Model1, n_classes, image_width//16, image_height//16)
  upsample_2 = UpSampling2D(2, interpolation='bilinear', name="Upsampling_final_prediction")(last_layer)
  output = Conv2D(n_classes, 1, name="CC_fin", activation='softmax')(upsample_2)
  final_output = UpSampling2D(4, interpolation='bilinear', name='final_output')(output)
  final_model = tf.keras.models.Model(inputs=input_obj, outputs=[out1, out2, output, final_output])
  return final_model

We create a callback for early stopping to prevent overfitting.

early_stopping = tf.keras.callbacks.EarlyStopping(
    monitor='val_final_output_loss', patience=4, verbose=0
)

Finally, we fit the model to the Oxford dataset.

def batch_generator(batch_size):
  indices = np.arange(len(train_dataset[0]))
  batch=[]
  while True:
  # it might be a good idea to shuffle your data before each epoch
    np.random.shuffle(indices)
    for i in indices:
      batch.append(i)
      if len(batch)==batch_size:
        yield train_dataset[0][batch], {'CC_1': train_dataset[1][batch], 'CC_2': train_dataset[2][batch], 'CC_fin': train_dataset[3][batch], 'final_output': train_dataset[4][batch]}
        batch=[]

def batch_generator_eval(batch_size):
  indices = np.arange(len(train_dataset[0]))
  batch=[]
  while True:
    for i in indices:
      batch.append(i)
      if len(batch)==batch_size:
        yield orig_test_dataset[0][batch], {'CC_1': orig_test_dataset[1][batch], 'CC_2': orig_test_dataset[2][batch], 'CC_fin': orig_test_dataset[3][batch], 'final_output': orig_test_dataset[4][batch]}
        batch=[]
def train(params):
  VAL_SUBSPLITS=5
  EPOCHS=20
  VALIDATION_STEPS = n_test//params['batch_size']//VAL_SUBSPLITS
  STEPS_PER_EPOCH = n_train // params['batch_size']
  BATCH_SIZE = params['batch_size']
  """
  An example train method that calls into HorovodRunner.
  This method is passed to hyperopt.fmin().

  :param params: hyperparameters. Its structure is consistent with how search space is defined. See below.
  :return: dict with fields 'loss' (scalar loss) and 'status' (success/failure status of run)
  """
  model=ICNet(128,128,3)
  model.compile(optimizer=tfa.optimizers.AdamW(learning_rate=params['learning_rate'], weight_decay=0.0001),
              loss=tf.keras.losses.SparseCategoricalCrossentropy(), loss_weights=[0.4,0.4,1,0],
              metrics="acc")

  train_dataset_temp = batch_generator(BATCH_SIZE)
  test_dataset = batch_generator_eval(BATCH_SIZE)

  model_history =  model.fit(train_dataset_temp, epochs=EPOCHS, steps_per_epoch=STEPS_PER_EPOCH, callbacks=[early_stopping])
  loss = model.evaluate(test_dataset, steps=VALIDATION_STEPS)[4]
  del model, train_dataset_temp, test_dataset, model_history
  tf.keras.backend.clear_session()
  return {'loss': loss, 'status': STATUS_OK}
import numpy as np
space = {
  'learning_rate': hp.loguniform('learning_rate', np.log(1e-4), np.log(1e-1)),
  'batch_size': hp.choice('batch_size', [32, 64, 128]),
}
import mlflow.tensorflow
algo=tpe.suggest

mlflow.tensorflow.autolog(every_n_iter=1)
spark_trials = SparkTrials(parallelism=2)
best_param = fmin(
  fn=train,
  space=space,
  algo=algo,
  max_evals=8,
  return_argmin=False,
  trials = spark_trials,
)

print(best_param)

Without Spark Trials: 1 hour

With Spark Trials: 33.18 min

We visualize the accuracies and losses through the library matplotlib.

loss = model_history.history['loss']
acc = model_history.history['final_output_acc']
val_loss = model_history.history['val_loss']
val_loss1 = model_history.history['val_CC_1_loss']
val_loss2 = model_history.history['val_CC_2_loss']
val_loss3 = model_history.history['val_CC_fin_loss']
val_loss4 = model_history.history['val_final_output_loss']
val_acc1 = model_history.history['val_CC_1_acc']
val_acc2 = model_history.history['val_CC_2_acc']
val_acc3 = model_history.history['val_CC_fin_acc']
val_acc4 = model_history.history['val_final_output_acc']

epochs = range(16)

plt.figure(figsize=(20,3))
plt.subplot(1,4,1)
plt.plot(epochs, loss, 'r', label='Training loss')
plt.plot(epochs, val_loss, 'b', label='Validation loss')
plt.title('Training and Validation Loss')
plt.xlabel('Epoch')
plt.ylabel('Loss Value')
plt.legend()
plt.subplot(1,4,2)
plt.plot(epochs, acc, 'r', label="Training accuracy")
plt.plot(epochs, val_acc4, 'b', label="Validation accuracy")
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.legend()
plt.subplot(1,4,3)
plt.plot(epochs, val_loss1, 'b', label="Loss output 1")
plt.plot(epochs, val_loss2, 'g', label="Loss output 2")
plt.plot(epochs, val_loss3, 'y', label="Loss output 3")
plt.plot(epochs, val_loss4, 'y', label="Loss output 4")
plt.legend()
plt.subplot(1,4,4)
plt.plot(epochs, val_acc1, 'b', label="Acc output 1")
plt.plot(epochs, val_acc2, 'g', label="Acc output 2")
plt.plot(epochs, val_acc3, 'y', label="Acc output 3")
plt.plot(epochs, val_acc4, 'y', label="Acc output 4")
plt.legend()
plt.show()

Finally, we visualize some predictions on the test dataset.

ScaDaMaLe Course site and book

import tensorflow as tf
import tensorflow_datasets as tfds
import matplotlib.pyplot as plt
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
import numpy as np
from tensorflow.keras.applications.resnet50 import ResNet50
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
def normalize(input_image, input_mask):
  input_image = tf.cast(input_image, tf.float32) / 255.0
  input_mask -= 1
  return input_image, input_mask

# Function for resizing the train images to the desired input shape of HxW as well as augmenting the training images.
@tf.function
def load_image_train(datapoint, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(datapoint['image'], (wanted_height, wanted_width))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (wanted_height, wanted_width))

  if tf.random.uniform(()) > 0.5:
    input_image = tf.image.flip_left_right(input_image)
    input_mask = tf.image.flip_left_right(input_mask)

  input_image, input_mask = normalize(input_image, input_mask)
  input_mask = tf.math.round(input_mask)

  return input_image, input_mask

# Function for resizing the test images to the desired output shape (no augmenation).
def load_image_test(datapoint, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(datapoint['image'], (wanted_height, wanted_width))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (wanted_height, wanted_width))

  input_image, input_mask = normalize(input_image, input_mask)

  return input_image, input_mask

def load_image_train_noTf(datapoint, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(datapoint['image'], (wanted_height, wanted_width))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (wanted_height, wanted_width))

  if tf.random.uniform(()) > 0.5:
    input_image = tf.image.flip_left_right(input_image)
    input_mask = tf.image.flip_left_right(input_mask)

  input_image, input_mask = normalize(input_image, input_mask)
  input_mask = tf.math.round(input_mask)

  return input_image, input_mask

# Functions for resizing the image to the desired size of factor 2 or 4 to be inputted to the ICNet architecture.
def resize_image16(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//16, wanted_width//16))
  input_mask=tf.image.resize(mask, (wanted_height//16, wanted_width//16))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask

def resize_image8(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//8, wanted_width//8))
  input_mask=tf.image.resize(mask, (wanted_height//8, wanted_width//8))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask

def resize_image4(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//4, wanted_width//4))
  input_mask=tf.image.resize(mask, (wanted_height//4, wanted_width//4))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask
def load_transform_data(input_height: int, input_width: int):
  dataset, info = tfds.load('oxford_iiit_pet:3.*.*', with_info=True)
  n_train = info.splits['train'].num_examples
  n_test = info.splits['test'].num_examples
  return(dataset, n_train, n_test)

def create_datasets(wanted_height:int, wanted_width:int, n_train:int, n_test:int, BATCH_SIZE:int = 64, BUFFER_SIZE:int = 1000):
  #Creating the ndarray in the correct shapes for training data
  train_original_img = np.ndarray(shape=(n_train, wanted_height, wanted_width, 3))

  train_original_mask = np.ndarray(shape=(n_train, wanted_height, wanted_width, 1))
  train16_mask = np.ndarray(shape=(n_train, wanted_height//16, wanted_width//16, 1))
  train8_mask = np.ndarray(shape=(n_train, wanted_height//8, wanted_width//8, 1))
  train4_mask = np.ndarray(shape=(n_train, wanted_height//4, wanted_width//4, 1))

  #Loading the data into the arrays
  count = 0
  for datapoint in dataset['train']:
    img_orig, mask_orig = load_image_train_noTf(datapoint, wanted_height, wanted_width)
    train_original_img[count]=img_orig
    train_original_mask[count]=mask_orig

    img16, mask16 = resize_image16(img_orig, mask_orig, wanted_height, wanted_width)
    train16_mask[count]=(mask16)

    img8, mask8 = resize_image8(img_orig, mask_orig, wanted_height, wanted_width)
    train8_mask[count]=(mask8)

    img4, mask4 = resize_image4(img_orig, mask_orig, wanted_height, wanted_width)
    train4_mask[count]=(mask4)
    count+=1

  #Saving all img / mask in separate lists


  #Creating the ndarrays in the correct shapes for test data  
  test_original_img = np.ndarray(shape=(n_test,wanted_height,wanted_width,3))

  test16_mask = np.ndarray(shape=(n_test,wanted_height//16,wanted_width//16,1))
  test8_mask = np.ndarray(shape=(n_test,wanted_height//8,wanted_width//8,1))
  test4_mask = np.ndarray(shape=(n_test,wanted_height//4,wanted_width//4,1))

  #Loading the data into the arrays
  count=0
  for datapoint in dataset['test']:
    img_orig, mask_orig = load_image_test(datapoint, wanted_height, wanted_width)
    test_original_img[count]=(img_orig)
    test_original_mask[count]=(mask_orig)

    img16, mask16 = resize_image16(img_orig, mask_orig, wanted_height, wanted_width)
    test16_mask[count]=(mask16)
    #test16_img[count]=(img16)

    img8, mask8 = resize_image8(img_orig, mask_orig, wanted_height, wanted_width)
    test8_mask[count]=(mask8)
    #test8_img[count]=(img8)

    img4, mask4 = resize_image4(img_orig, mask_orig, wanted_height, wanted_width)
    test4_mask[count]=(mask4)
    #test4_img[count]=(img4)
    count+=1

  #Saving all img / mask in separate lists
  #test_img = [test_original_img, test16_img, test8_img, test4_img]
  #test_img = test_original_img
  #test_mask = [test_original_mask, test16_mask, test8_mask, test4_mask]
  #test_mask = [test16_mask, test8_mask, test4_mask]

  train_dataset = tf.data.Dataset.from_tensor_slices((train_original_img, {'output_1': train16_mask, 'output_2': train8_mask, 'output_3': train4_mask, 'output_4': train_original_mask}))
  test_dataset = tf.data.Dataset.from_tensor_slices((test_original_img, {'output_1': test16_mask, 'output_2': test8_mask, 'output_3': test4_mask, 'output_4': test_original_mask}))
  train_dataset = train_dataset.cache().shuffle(BUFFER_SIZE).batch(BATCH_SIZE).repeat()
  train_dataset.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
  test_dataset = test_dataset.batch(BATCH_SIZE)

  return train_dataset, test_dataset, train_original_mask[0], train_original_img[0]
dataset, n_train, n_test = load_transform_data(128,128)

train_dataset, test_dataset, sample_mask, sample_image = create_datasets(128,128,n_train,n_test, 64, 1000)
def display(display_list):
  plt.figure(figsize=(15, 15))

  title = ['Input Image', 'True Mask', 'Predicted Mask']

  for i in range(len(display_list)):
    plt.subplot(1, len(display_list), i+1)
    plt.title(title[i])
    plt.imshow(tf.keras.preprocessing.image.array_to_img(display_list[i]))
    plt.axis('off')
  plt.show()


sample_image, sample_mask = sample_image, sample_mask
display([sample_image, sample_mask])

class ICNet_model(tf.keras.Model):

  def __init__(self,
               encoder: tf.keras.Model,
               image_width: int,
               image_height: int,
               n_classes: int,
               n_filters: int = 16,
               kernel_size: tuple = (3,3),
               activation: str = 'relu'
              ):
    super(ICNet_model, self).__init__() #Skapar en input på self
    self.encoder = encoder
    self.n_classes = n_classes
    self.n_filters = n_filters
    self.kernel_size = kernel_size
    self.activation = activation
    self.image_width = image_width
    self.image_height = image_height

    # Defining the network
    input_shape = (self.image_height, self.image_width, 3)
    inputs = tf.keras.Input(shape=input_shape, name="input_img_1")
    input_obj_4 = tf.keras.layers.experimental.preprocessing.Resizing(
    self.image_height//4, self.image_width//4, interpolation="bilinear", name="input_img_4")(inputs)
    input_obj_2 = tf.keras.layers.experimental.preprocessing.Resizing(
    self.image_height//2, self.image_width//2, interpolation="bilinear", name="input_img_2")(inputs)
    ICNet_Model1=self.ICNet_1(inputs, self.n_filters, self.kernel_size, self.activation)   
    PSP_Model = self.PSPNet(self.encoder,self.n_classes, self.n_filters, self.kernel_size, self.activation, self.image_width//4, self.image_height//4, True)
    last_layer = PSP_Model.get_layer('conv3_block4_out').output
    PSPModel_2_4 = tf.keras.models.Model(inputs=PSP_Model.input, outputs=last_layer, name="JointResNet_2_4")
    ICNet_Model4 = PSPModel_2_4(input_obj_4)
    ICNet_Model2 = PSPModel_2_4(input_obj_2)
    ICNet_4_rest = self.PSP_rest(ICNet_Model4)
    out1, last_layer = self.CFF(1, ICNet_4_rest, ICNet_Model2, self.n_classes, self.image_width//32, self.image_height//32)
    out2, last_layer = self.CFF(2, last_layer, ICNet_Model1, self.n_classes, self.image_width//16, self.image_height//16)
    upsample_2 = UpSampling2D(2, interpolation='bilinear', name="Upsampling_final_prediction")(last_layer)
    output = Conv2D(self.n_classes, 1, name="output_3", activation='softmax')(upsample_2)
    self.network = tf.keras.models.Model(inputs=input_obj, outputs=[out1, out2, output])

  # Function for the pooling module which takes the output of ResNet50 as input as well as its width and height and pool it with a factor.
  def pool_block(self,
                 cur_tensor,
                 image_width,
                 image_height,
                 pooling_factor,
                 activation):

    strides = [int(np.round(float(image_width)/pooling_factor)),
              int(np.round(float(image_height)/pooling_factor))]
    pooling_size = strides
    x = AveragePooling2D(pooling_size, strides=strides, padding='same')(cur_tensor)
    x = Conv2D(128,(1,1),padding='same')(x)
    x = BatchNormalization()(x)
    x = Activation(activation)(x)
    x = tf.keras.layers.experimental.preprocessing.Resizing(
      image_height, image_width, interpolation="bilinear")(x) # Resizing images to correct shape for future concat
    return x



  # Function for creating the PSPNet model. The inputs is the number of classes to classify, number of filters to use, kernel_size, activation function,
  # input image width and height and a boolean for knowing if the module is part of the ICNet or not.
  def PSPNet(self,
             encoder: tf.keras.Model,
             n_classes: int,
             n_filters: int,
             kernel_size: tuple,
             activation: str,
             image_width: int,
             image_height: int,
             dropout: bool = True,
             bn: bool = True):
    #encoder=ResNet50(include_top=False, weights='imagenet', input_shape=input_shape)
    #encoder=self.modify_ResNet_Dilation(encoder)
    #new_encoder = create_modified_encoder(encoder, dropout, bn)
    #encoder.trainable=False
    resnet_output=encoder.output
    #print(encoder.output)
    pooling_layer=[]
    pooling_layer.append(resnet_output)
    output=(resnet_output)
    h = image_height//8
    w = image_width//8
    for i in [1,2,3,6]:
      pool = self.pool_block(output, h, w, i, activation)
      pooling_layer.append(pool)
    concat=Concatenate()(pooling_layer)
    output_layer=Conv2D(filters=n_classes, kernel_size=(1,1), padding='same')(concat)
    final_layer=UpSampling2D(size=(8,8), data_format='channels_last', interpolation='bilinear')(output_layer)
    final_model=tf.keras.models.Model(inputs=encoder.input, outputs=final_layer)
    return final_model

  # Function for adding stage 4 and 5 of ResNet50 to the 1/4 image size branch of the ICNet.
  def PSP_rest(self, input_prev: tf.Tensor):

    y_ = input_prev
    #Stage 4
    #Conv_Block
    y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block1_conv1')(y_)
    y = BatchNormalization(name='C4_block1_bn1')(y)
    y = Activation('relu', name='C4_block1_act1')(y)
    y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block1_conv2')(y)
    y = BatchNormalization(name='C4_block1_bn2')(y)
    y = Activation('relu', name='C4_block1_act2')(y)
    y_ = Conv2D(1024, 1, dilation_rate=2, padding='same', name='C4_block1_conv0')(y_)
    y = Conv2D(1024, 1, dilation_rate=2, padding='same', name='C4_block1_conv3')(y)
    y_ = BatchNormalization(name='C4_block1_bn0')(y_)
    y = BatchNormalization(name='C4_block1_bn3')(y)
    y = Add(name='C4_skip1')([y_,y])
    y_ = Activation('relu', name='C4_block1_act3')(y)
    #IDBLOCK1
    y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block2_conv1')(y_)
    y = BatchNormalization(name='C4_block2_bn1')(y)
    y = Activation('relu', name='C4_block2_act1')(y)
    y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block2_conv2')(y)
    y = BatchNormalization(name='C4_block2_bn2')(y)
    y = Activation('relu', name='C4_block2_act2')(y)
    y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block2_conv3')(y)
    y = BatchNormalization(name='C4_block2_bn3')(y)
    y = Add(name='C4_skip2')([y_,y])
    y_ = Activation('relu', name='C4_block2_act3')(y)
    #IDBLOCK2
    y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block3_conv1')(y_)
    y = BatchNormalization(name='C4_block3_bn1')(y)
    y = Activation('relu', name='C4_block3_act1')(y)
    y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block3_conv2')(y)
    y = BatchNormalization(name='C4_block3_bn2')(y)
    y = Activation('relu', name='C4_block3_act2')(y)
    y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block3_conv3')(y)
    y = BatchNormalization(name='C4_block3_bn3')(y)
    y = Add(name='C4_skip3')([y_,y])
    y_ = Activation('relu', name='C4_block3_act3')(y)
    #IDBlock3
    y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block4_conv1')(y_)
    y = BatchNormalization(name='C4_block4_bn1')(y)
    y = Activation('relu', name='C4_block4_act1')(y)
    y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block4_conv2')(y)
    y = BatchNormalization(name='C4_block4_bn2')(y)
    y = Activation('relu', name='C4_block4_act2')(y)
    y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block4_conv3')(y)
    y = BatchNormalization(name='C4_block4_bn3')(y)
    y = Add(name='C4_skip4')([y_,y])
    y_ = Activation('relu', name='C4_block4_act3')(y)
    #ID4
    y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block5_conv1')(y_)
    y = BatchNormalization(name='C4_block5_bn1')(y)
    y = Activation('relu', name='C4_block5_act1')(y)
    y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block5_conv2')(y)
    y = BatchNormalization(name='C4_block5_bn2')(y)
    y = Activation('relu', name='C4_block5_act2')(y)
    y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block5_conv3')(y)
    y = BatchNormalization(name='C4_block5_bn3')(y)
    y = Add(name='C4_skip5')([y_,y])
    y_ = Activation('relu', name='C4_block5_act3')(y)
    #ID5
    y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block6_conv1')(y_)
    y = BatchNormalization(name='C4_block6_bn1')(y)
    y = Activation('relu', name='C4_block6_act1')(y)
    y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block6_conv2')(y)
    y = BatchNormalization(name='C4_block6_bn2')(y)
    y = Activation('relu', name='C4_block6_act2')(y)
    y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block6_conv3')(y)
    y = BatchNormalization(name='C4_block6_bn3')(y)
    y = Add(name='C4_skip6')([y_,y])
    y_ = Activation('relu', name='C4_block6_act3')(y)

    #Stage 5
    #Conv
    y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block1_conv1')(y_)
    y = BatchNormalization(name='C5_block1_bn1')(y)
    y = Activation('relu', name='C5_block1_act1')(y)
    y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block1_conv2')(y)
    y = BatchNormalization(name='C5_block1_bn2')(y)
    y = Activation('relu', name='C5_block1_act2')(y)
    y_ = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block1_conv0')(y_)
    y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block1_conv3')(y)
    y_ = BatchNormalization(name='C5_block1_bn0')(y_)
    y = BatchNormalization(name='C5_block1_bn3')(y)
    y = Add(name='C5_skip1')([y_,y])
    y_ = Activation('relu', name='C5_block1_act3')(y)

    #ID
    y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block2_conv1')(y_)
    y = BatchNormalization(name='C5_block2_bn1')(y)
    y = Activation('relu', name='C5_block2_act1')(y)
    y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block2_conv2')(y)
    y = BatchNormalization(name='C5_block2_bn2')(y)
    y = Activation('relu', name='C5_block2_act2')(y)
    y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block2_conv3')(y)
    y = BatchNormalization(name='C5_block2_bn3')(y)
    y = Add(name='C5_skip2')([y_,y])
    y_ = Activation('relu', name='C5_block2_act3')(y)

    #ID
    y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block3_conv1')(y_)
    y = BatchNormalization(name='C5_block3_bn1')(y)
    y = Activation('relu', name='C5_block3_act1')(y)
    y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block3_conv2')(y)
    y = BatchNormalization(name='C5_block3_bn2')(y)
    y = Activation('relu', name='C5_block3_act2')(y)
    y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block3_conv3')(y)
    y = BatchNormalization(name='C5_block3_bn3')(y)
    y = Add(name='C5_skip3')([y_,y])
    y_ = Activation('relu', name='C5_block3_act3')(y)

    return(y_)

  # Function for the CFF module in the ICNet architecture. The inputs are which stage (1 or 2), the output from the smaller branch, the output from the
  # larger branch, n_classes and the width and height of the output of the smaller branch.
  def CFF(self, stage: int, F_small, F_large, n_classes: int, input_width_small: int, input_height_small: int):
    F_up = tf.keras.layers.experimental.preprocessing.Resizing(int(input_width_small*2), int(input_height_small*2), interpolation="bilinear",
                                                               name="Upsample_x2_small_{}".format(stage))(F_small)
    F_aux = Conv2D(n_classes, 1, name="CC_{}".format(stage), activation='softmax')(F_up)
    #y = ZeroPadding2D(padding=2, name='padding17')(F_up) ?? behövs denna?
    intermediate_f_small = Conv2D(128, 3, dilation_rate=2, padding='same', name="intermediate_f_small_{}".format(stage))(F_up)
    intermediate_f_small_bn = BatchNormalization(name="intermediate_f_small_bn_{}".format(stage))(intermediate_f_small)
    intermediate_f_large = Conv2D(128, 1, padding='same', name="intermediate_f_large_{}".format(stage))(F_large)
    intermediate_f_large_bn = BatchNormalization(name="intermediate_f_large_bn_{}".format(stage))(intermediate_f_large)
    intermediate_f_sum = Add(name="add_intermediates_{}".format(stage))([intermediate_f_small_bn,intermediate_f_large_bn])
    intermediate_f_relu = Activation('relu', name="activation_CFF_{}".format(stage))(intermediate_f_sum)
    return F_aux, intermediate_f_relu


  # Function for the high-res branch of ICNet where image is in scale 1:1. The inputs are the input image, number of filters, kernel size and desired activation function.
  def ICNet_1(self,
              input_shape,
              n_filters: int,
              kernel_size: tuple,
              activation: str):
    for i in range(1,4):
      conv1=Conv2D(filters=n_filters*2*i, kernel_size=kernel_size, strides=(2,2), padding='same', input_shape=input_shape)
      batch_norm1=BatchNormalization()(conv1)
      temp=Activation(activation)(batch_norm1)
    return temp  

  def call(self, inputs, training=False):
    input_obj_4 = tf.keras.layers.experimental.preprocessing.Resizing(
    self.image_height//4, self.image_width//4, interpolation="bilinear", name="input_img_4")(inputs)
    input_obj_2 = tf.keras.layers.experimental.preprocessing.Resizing(
    self.image_height//2, self.image_width//2, interpolation="bilinear", name="input_img_2")(inputs)
    ICNet_Model1=self.ICNet_1(inputs, self.n_filters, self.kernel_size, self.activation)   
    PSP_Model = self.PSPNet(self.encoder,self.n_classes, self.n_filters, self.kernel_size, self.activation, self.image_width//4, self.image_height//4, True)
    last_layer = PSP_Model.get_layer('conv3_block4_out').output
    PSPModel_2_4 = tf.keras.models.Model(inputs=PSP_Model.input, outputs=last_layer, name="JointResNet_2_4")
    ICNet_Model4 = PSPModel_2_4(input_obj_4)
    ICNet_Model2 = PSPModel_2_4(input_obj_2)
    ICNet_4_rest = self.PSP_rest(ICNet_Model4)
    out1, last_layer = self.CFF(1, ICNet_4_rest, ICNet_Model2, self.n_classes, self.image_width//32, self.image_height//32)
    out2, last_layer = self.CFF(2, last_layer, ICNet_Model1, self.n_classes, self.image_width//16, self.image_height//16)
    upsample_2 = UpSampling2D(2, interpolation='bilinear', name="Upsampling_final_prediction")(last_layer)
    output = Conv2D(self.n_classes, 1, name="output_3", activation='softmax')(upsample_2)
    return out1, out2, output
#Function for formatting the resnet model to a modified one which takes advantage of dilation rates instead of strides in the final blocks.

def modify_ResNet_Dilation(model):
  for i in range(0,4):
    model.get_layer('conv4_block1_{}_conv'.format(i)).strides = 1
    model.get_layer('conv4_block1_{}_conv'.format(i)).dilation_rate = 2
    model.get_layer('conv5_block1_{}_conv'.format(i)).strides = 1
    model.get_layer('conv5_block1_{}_conv'.format(i)).dilation_rate = 4
  model.save('/tmp/my_model')
  new_model = tf.keras.models.load_model('/tmp/my_model')
  return new_model

input_shape=(None, None, 3)
encoder=ResNet50(include_top=False, weights='imagenet', input_shape=input_shape)
encoder=modify_ResNet_Dilation(encoder)
model = ICNet_model(encoder, 128,128,3)
model.build([64,128,128,3])
model.summary()
model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(), loss_weights=[0.1,0.3,0.6],
              metrics="acc")
TRAIN_LENGTH = n_train
BATCH_SIZE = 64
BUFFER_SIZE = 1000
STEPS_PER_EPOCH = TRAIN_LENGTH // BATCH_SIZE

EPOCHS = 100
VAL_SUBSPLITS = 5
VALIDATION_STEPS = n_test//BATCH_SIZE//VAL_SUBSPLITS
res_eval_1 = []

class MyCustomCallback(tf.keras.callbacks.Callback):
    def on_epoch_end(self, epoch, logs=None):
        show_predictions()


model_history =  model.fit(train_dataset, epochs=EPOCHS, steps_per_epoch=STEPS_PER_EPOCH, callbacks=[MyCustomCallback()])

ScaDaMaLe Course site and book

Implementation of ICNet

In this notebook, an implementation of ICNet is presented which is an architecture which uses a trade-off between complexity and inference time efficiently. The architecture is evaluated against the Oxford pets dataset. This notebook has reused material from the Image Segmentation Tutorial on Tensorflow

Importing the required packages.

import tensorflow as tf
import tensorflow_datasets as tfds
import matplotlib.pyplot as plt
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
import numpy as np
from tensorflow.keras.applications.resnet50 import ResNet50
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import tensorflow_addons as tfa
from tensorflow.keras import backend as K
import horovod.tensorflow.keras as hvd
from hyperopt import fmin, tpe, hp, Trials, STATUS_OK, SparkTrials

Setting up checkpoint location... The next cell creates a directory for saved checkpoint models.

import os
import time

checkpoint_dir = '/dbfs/ml/OxfordDemo/train/{}/'.format(time.time())

os.makedirs(checkpoint_dir)
ls /ml
path name size
dbfs:/ml/Group_20/ Group_20/ 0.0
dbfs:/ml/MNISTDemo/ MNISTDemo/ 0.0
dbfs:/ml/OxfordDemo/ OxfordDemo/ 0.0
dbfs:/ml/horovod_pytorch/ horovod_pytorch/ 0.0
# Including MLflow
import mlflow
import mlflow.tensorflow
import os
print("MLflow Version: %s" % mlflow.__version__)

# Configure Databricks MLflow environment
mlflow.set_tracking_uri("databricks")
DEMO_SCOPE_TOKEN_NAME = "databricksEducational"
databricks_host = 'https://dbc-635ca498-e5f1.cloud.databricks.com/'
databricks_token = dbutils.secrets.get(scope = DEMO_SCOPE_TOKEN_NAME, key = "databricksCLIToken")
os.environ['DATABRICKS_HOST'] = databricks_host
os.environ['DATABRICKS_TOKEN'] = databricks_token

# Configure output folder to store TF events
output_root = "/ml/OxfordDemo/logs/"
output_dir = "/dbfs" + output_root
os.environ['OUTPUT_DIR'] = output_dir

experiment = mlflow.start_run()
mlflow.set_experiment("/scalable-data-science/000_0-sds-3-x-projects/voluntary-student-project-01_group-DDLInMining/05Z_ICNet_Function_hvd_tuning")
mlflow.end_run()

Loading and transforming the dataset.

def normalize(input_image, input_mask):
  input_image = tf.cast(input_image, tf.float32) / 255.0
  input_mask -= 1
  return input_image, input_mask

# Function for resizing the train images to the desired input shape of HxW as well as augmenting the training images.
def load_image_train_noTf(datapoint, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(datapoint['image'], (wanted_height, wanted_width))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (wanted_height, wanted_width))

  if tf.random.uniform(()) > 0.5:
    input_image = tf.image.flip_left_right(input_image)
    input_mask = tf.image.flip_left_right(input_mask)

  input_image, input_mask = normalize(input_image, input_mask)
  input_mask = tf.math.round(input_mask)

  return input_image, input_mask

# Function for resizing the test images to the desired output shape (no augmenation).
def load_image_test(datapoint, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(datapoint['image'], (wanted_height, wanted_width))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (wanted_height, wanted_width))

  input_image, input_mask = normalize(input_image, input_mask)

  return input_image, input_mask

# Functions for resizing the image to the desired size of factor 2 or 4 to be inputted to the ICNet architecture.
def resize_image16(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//16, wanted_width//16))
  input_mask=tf.image.resize(mask, (wanted_height//16, wanted_width//16))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask

def resize_image8(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//8, wanted_width//8))
  input_mask=tf.image.resize(mask, (wanted_height//8, wanted_width//8))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask

def resize_image4(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//4, wanted_width//4))
  input_mask=tf.image.resize(mask, (wanted_height//4, wanted_width//4))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask
def create_datasets_hvd(wanted_height:int, wanted_width:int, BATCH_SIZE:int = 64, BUFFER_SIZE:int = 1000, rank=0, size=1):
  dataset, info = tfds.load('oxford_iiit_pet:3.*.*', data_dir='Oxford-%d' % rank, with_info=True)
  n_train = info.splits['train'].num_examples
  n_test = info.splits['test'].num_examples

  #Creating the ndarray in the correct shapes for training data
  train_original_img = np.ndarray(shape=(n_train, wanted_height, wanted_width, 3))

  train_original_mask = np.ndarray(shape=(n_train, wanted_height, wanted_width, 1))
  train16_mask = np.ndarray(shape=(n_train, wanted_height//16, wanted_width//16, 1))
  train8_mask = np.ndarray(shape=(n_train, wanted_height//8, wanted_width//8, 1))
  train4_mask = np.ndarray(shape=(n_train, wanted_height//4, wanted_width//4, 1))

  #Loading the data into the arrays
  count = 0
  for datapoint in dataset['train']:
    img_orig, mask_orig = load_image_train_noTf(datapoint, wanted_height, wanted_width)
    train_original_img[count]=img_orig
    train_original_mask[count]=mask_orig

    img16, mask16 = resize_image16(img_orig, mask_orig, wanted_height, wanted_width)
    train16_mask[count]=(mask16)

    img8, mask8 = resize_image8(img_orig, mask_orig, wanted_height, wanted_width)
    train8_mask[count]=(mask8)

    img4, mask4 = resize_image4(img_orig, mask_orig, wanted_height, wanted_width)
    train4_mask[count]=(mask4)
    count+=1

  #Creating the ndarrays in the correct shapes for test data  
  test_original_img = np.ndarray(shape=(n_test,wanted_height,wanted_width,3))

  test_original_mask = np.ndarray(shape=(n_test,wanted_height,wanted_width,1))
  test16_mask = np.ndarray(shape=(n_test,wanted_height//16,wanted_width//16,1))
  test8_mask = np.ndarray(shape=(n_test,wanted_height//8,wanted_width//8,1))
  test4_mask = np.ndarray(shape=(n_test,wanted_height//4,wanted_width//4,1))

  #Loading the data into the arrays
  count=0
  for datapoint in dataset['test']:
    img_orig, mask_orig = load_image_test(datapoint, wanted_height, wanted_width)
    test_original_img[count]=(img_orig)
    test_original_mask[count]=(mask_orig)

    img16, mask16 = resize_image16(img_orig, mask_orig, wanted_height, wanted_width)
    test16_mask[count]=(mask16)
    #test16_img[count]=(img16)

    img8, mask8 = resize_image8(img_orig, mask_orig, wanted_height, wanted_width)
    test8_mask[count]=(mask8)
    #test8_img[count]=(img8)

    img4, mask4 = resize_image4(img_orig, mask_orig, wanted_height, wanted_width)
    test4_mask[count]=(mask4)
    #test4_img[count]=(img4)
    count+=1


  train_dataset = tf.data.Dataset.from_tensor_slices((train_original_img[rank::size], {'CC_1': train16_mask[rank::size], 'CC_2': train8_mask[rank::size], 'CC_fin': train4_mask[rank::size], 'final_output': train_original_mask[rank::size]}))
  orig_test_dataset = tf.data.Dataset.from_tensor_slices((test_original_img[rank::size], {'CC_1': test16_mask[rank::size], 'CC_2': test8_mask[rank::size], 'CC_fin': test4_mask[rank::size], 'final_output': test_original_mask[rank::size]}))
  train_dataset = train_dataset.cache().shuffle(BUFFER_SIZE).batch(BATCH_SIZE).repeat()
  train_dataset.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
  test_dataset = orig_test_dataset.batch(BATCH_SIZE)




  return train_dataset, test_dataset, train_original_mask[0], train_original_img[0], orig_test_dataset, n_train, n_test
def create_datasets_hvd_test(wanted_height:int, wanted_width:int):
  dataset, info = tfds.load('oxford_iiit_pet:3.*.*', data_dir='Oxford' , with_info=True)
  n_train = info.splits['train'].num_examples
  n_test = info.splits['test'].num_examples

  #Creating the ndarray in the correct shapes for training data
  train_original_img = np.ndarray(shape=(n_train, wanted_height, wanted_width, 3))

  train_original_mask = np.ndarray(shape=(n_train, wanted_height, wanted_width, 1))
  train16_mask = np.ndarray(shape=(n_train, wanted_height//16, wanted_width//16, 1))
  train8_mask = np.ndarray(shape=(n_train, wanted_height//8, wanted_width//8, 1))
  train4_mask = np.ndarray(shape=(n_train, wanted_height//4, wanted_width//4, 1))

  #Loading the data into the arrays
  count = 0
  for datapoint in dataset['train']:
    img_orig, mask_orig = load_image_train_noTf(datapoint, wanted_height, wanted_width)
    train_original_img[count]=img_orig
    train_original_mask[count]=mask_orig

    img16, mask16 = resize_image16(img_orig, mask_orig, wanted_height, wanted_width)
    train16_mask[count]=(mask16)

    img8, mask8 = resize_image8(img_orig, mask_orig, wanted_height, wanted_width)
    train8_mask[count]=(mask8)

    img4, mask4 = resize_image4(img_orig, mask_orig, wanted_height, wanted_width)
    train4_mask[count]=(mask4)
    count+=1

  #Creating the ndarrays in the correct shapes for test data  
  test_original_img = np.ndarray(shape=(n_test,wanted_height,wanted_width,3))

  test_original_mask = np.ndarray(shape=(n_test,wanted_height,wanted_width,1))
  test16_mask = np.ndarray(shape=(n_test,wanted_height//16,wanted_width//16,1))
  test8_mask = np.ndarray(shape=(n_test,wanted_height//8,wanted_width//8,1))
  test4_mask = np.ndarray(shape=(n_test,wanted_height//4,wanted_width//4,1))

  #Loading the data into the arrays
  count=0
  for datapoint in dataset['test']:
    img_orig, mask_orig = load_image_test(datapoint, wanted_height, wanted_width)
    test_original_img[count]=(img_orig)
    test_original_mask[count]=(mask_orig)

    img16, mask16 = resize_image16(img_orig, mask_orig, wanted_height, wanted_width)
    test16_mask[count]=(mask16)
    #test16_img[count]=(img16)

    img8, mask8 = resize_image8(img_orig, mask_orig, wanted_height, wanted_width)
    test8_mask[count]=(mask8)
    #test8_img[count]=(img8)

    img4, mask4 = resize_image4(img_orig, mask_orig, wanted_height, wanted_width)
    test4_mask[count]=(mask4)
    #test4_img[count]=(img4)
    count+=1


  #train_dataset = tf.data.Dataset.from_tensor_slices((train_original_img[rank::size], {'CC_1': train16_mask[rank::size], 'CC_2': train8_mask[rank::size], 'CC_fin': train4_mask[rank::size], 'final_output': train_original_mask[rank::size]}))
  #orig_test_dataset = tf.data.Dataset.from_tensor_slices((test_original_img[rank::size], {'CC_1': test16_mask[rank::size], 'CC_2': test8_mask[rank::size], 'CC_fin': test4_mask[rank::size], 'final_output': test_original_mask[rank::size]}))






  return train_original_img, train16_mask, train8_mask, train4_mask, train_original_mask, test_original_img, test16_mask, test8_mask, test4_mask, test_original_mask, n_train, n_test
def splitDataset(train_original_img, train16_mask, train8_mask, train4_mask, train_original_mask, test_original_img, test16_mask, test8_mask, test4_mask, test_original_mask, rank, size, BATCH_SIZE, BUFFER_SIZE):
  train_dataset = tf.data.Dataset.from_tensor_slices((train_original_img[rank::size], {'CC_1': train16_mask[rank::size], 'CC_2': train8_mask[rank::size], 'CC_fin': train4_mask[rank::size], 'final_output': train_original_mask[rank::size]}))
  orig_test_dataset = tf.data.Dataset.from_tensor_slices((test_original_img[rank::size], {'CC_1': test16_mask[rank::size], 'CC_2': test8_mask[rank::size], 'CC_fin': test4_mask[rank::size], 'final_output': test_original_mask[rank::size]}))

  train_dataset = train_dataset.shuffle(BUFFER_SIZE).batch(BATCH_SIZE).repeat()
  train_dataset.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
  test_dataset = orig_test_dataset.batch(BATCH_SIZE)

  return train_dataset, test_dataset


Running and loading the functions to create and save the transformed data.

#train_dataset, test_dataset, sample_mask, sample_image, orig_test_dataset = create_datasets(128,128,n_train,n_test, 64, 1000)

Defining the function for displaying images and the model's predictions jointly.

def display(display_list):
  plt.figure(figsize=(15, 15))

  title = ['Input Image', 'True Mask', 'Predicted Mask']

  for i in range(len(display_list)):
    plt.subplot(1, len(display_list), i+1)
    plt.title(title[i])
    plt.imshow(tf.keras.preprocessing.image.array_to_img(display_list[i]))
    plt.axis('off')
  plt.show()


sample_image, sample_mask = sample_image, sample_mask
display([sample_image, sample_mask])

Defining the functions needed for the PSPNet module.

# Function for the pooling module which takes the output of ResNet50 as input as well as its width and height and pool it with a factor.
def pool_block(cur_tensor,
               image_width,
               image_height,
               pooling_factor,
               activation):

  strides = [int(np.round(float(image_width)/pooling_factor)),
            int(np.round(float(image_height)/pooling_factor))]
  pooling_size = strides
  x = AveragePooling2D(pooling_size, strides=strides, padding='same')(cur_tensor)
  x = Conv2D(128,(1,1),padding='same')(x)
  x = BatchNormalization()(x)
  x = Activation(activation)(x)
  x = tf.keras.layers.experimental.preprocessing.Resizing(
    image_height, image_width, interpolation="bilinear")(x) # Resizing images to correct shape for future concat
  return x

# Function for formatting the resnet model to a modified one which takes advantage of dilation rates instead of strides in the final blocks.

def modify_ResNet_Dilation(model):
  for i in range(0,4):
    model.get_layer('conv4_block1_{}_conv'.format(i)).strides = 1
    model.get_layer('conv4_block1_{}_conv'.format(i)).dilation_rate = 2
    model.get_layer('conv5_block1_{}_conv'.format(i)).strides = 1
    model.get_layer('conv5_block1_{}_conv'.format(i)).dilation_rate = 4
  model.save('/tmp/my_model')
  new_model = tf.keras.models.load_model('/tmp/my_model')
  return new_model


# Function for creating the PSPNet model. The inputs is the number of classes to classify, number of filters to use, kernel_size, activation function,
# input image width and height and a boolean for knowing if the module is part of the ICNet or not.
def PSPNet(n_classes: int,
           n_filters: int,
           kernel_size: tuple,
           activation: str,
           image_width: int,
           image_height: int,
           isICNet: bool = False,
           dropout: bool = True,
           bn: bool = True
          ):
  if isICNet:
    input_shape=(None, None, 3)
  else:
    input_shape=(image_height,image_width,3)
  encoder=ResNet50(include_top=False, weights='imagenet', input_shape=input_shape)
  encoder=modify_ResNet_Dilation(encoder)
  #encoder.trainable=False
  resnet_output=encoder.output
  pooling_layer=[]
  pooling_layer.append(resnet_output)
  output=(resnet_output)
  h = image_height//8
  w = image_width//8
  for i in [1,2,3,6]:
    pool = pool_block(output, h, w, i, activation)
    pooling_layer.append(pool)
  concat=Concatenate()(pooling_layer)
  output_layer=Conv2D(filters=n_classes, kernel_size=(1,1), padding='same')(concat)
  final_layer=UpSampling2D(size=(8,8), data_format='channels_last', interpolation='bilinear')(output_layer)
  final_model=tf.keras.models.Model(inputs=encoder.input, outputs=final_layer)
  return final_model

#model = PSPNet(3, 16, (3,3), 'relu', 128,128)

Defining the functions needed for the ICNet.

# Function for adding stage 4 and 5 of ResNet50 to the 1/4 image size branch of the ICNet.
def PSP_rest(input_prev: tf.Tensor):

  y_ = input_prev
  #Stage 4
  #Conv_Block
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block1_conv1')(y_)
  y = BatchNormalization(name='C4_block1_bn1')(y)
  y = Activation('relu', name='C4_block1_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block1_conv2')(y)
  y = BatchNormalization(name='C4_block1_bn2')(y)
  y = Activation('relu', name='C4_block1_act2')(y)
  y_ = Conv2D(1024, 1, dilation_rate=2, padding='same', name='C4_block1_conv0')(y_)
  y = Conv2D(1024, 1, dilation_rate=2, padding='same', name='C4_block1_conv3')(y)
  y_ = BatchNormalization(name='C4_block1_bn0')(y_)
  y = BatchNormalization(name='C4_block1_bn3')(y)
  y = Add(name='C4_skip1')([y_,y])
  y_ = Activation('relu', name='C4_block1_act3')(y)
  #IDBLOCK1
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block2_conv1')(y_)
  y = BatchNormalization(name='C4_block2_bn1')(y)
  y = Activation('relu', name='C4_block2_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block2_conv2')(y)
  y = BatchNormalization(name='C4_block2_bn2')(y)
  y = Activation('relu', name='C4_block2_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block2_conv3')(y)
  y = BatchNormalization(name='C4_block2_bn3')(y)
  y = Add(name='C4_skip2')([y_,y])
  y_ = Activation('relu', name='C4_block2_act3')(y)
  #IDBLOCK2
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block3_conv1')(y_)
  y = BatchNormalization(name='C4_block3_bn1')(y)
  y = Activation('relu', name='C4_block3_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block3_conv2')(y)
  y = BatchNormalization(name='C4_block3_bn2')(y)
  y = Activation('relu', name='C4_block3_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block3_conv3')(y)
  y = BatchNormalization(name='C4_block3_bn3')(y)
  y = Add(name='C4_skip3')([y_,y])
  y_ = Activation('relu', name='C4_block3_act3')(y)
  #IDBlock3
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block4_conv1')(y_)
  y = BatchNormalization(name='C4_block4_bn1')(y)
  y = Activation('relu', name='C4_block4_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block4_conv2')(y)
  y = BatchNormalization(name='C4_block4_bn2')(y)
  y = Activation('relu', name='C4_block4_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block4_conv3')(y)
  y = BatchNormalization(name='C4_block4_bn3')(y)
  y = Add(name='C4_skip4')([y_,y])
  y_ = Activation('relu', name='C4_block4_act3')(y)
  #ID4
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block5_conv1')(y_)
  y = BatchNormalization(name='C4_block5_bn1')(y)
  y = Activation('relu', name='C4_block5_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block5_conv2')(y)
  y = BatchNormalization(name='C4_block5_bn2')(y)
  y = Activation('relu', name='C4_block5_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block5_conv3')(y)
  y = BatchNormalization(name='C4_block5_bn3')(y)
  y = Add(name='C4_skip5')([y_,y])
  y_ = Activation('relu', name='C4_block5_act3')(y)
  #ID5
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block6_conv1')(y_)
  y = BatchNormalization(name='C4_block6_bn1')(y)
  y = Activation('relu', name='C4_block6_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block6_conv2')(y)
  y = BatchNormalization(name='C4_block6_bn2')(y)
  y = Activation('relu', name='C4_block6_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block6_conv3')(y)
  y = BatchNormalization(name='C4_block6_bn3')(y)
  y = Add(name='C4_skip6')([y_,y])
  y_ = Activation('relu', name='C4_block6_act3')(y)

  #Stage 5
  #Conv
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block1_conv1')(y_)
  y = BatchNormalization(name='C5_block1_bn1')(y)
  y = Activation('relu', name='C5_block1_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block1_conv2')(y)
  y = BatchNormalization(name='C5_block1_bn2')(y)
  y = Activation('relu', name='C5_block1_act2')(y)
  y_ = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block1_conv0')(y_)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block1_conv3')(y)
  y_ = BatchNormalization(name='C5_block1_bn0')(y_)
  y = BatchNormalization(name='C5_block1_bn3')(y)
  y = Add(name='C5_skip1')([y_,y])
  y_ = Activation('relu', name='C5_block1_act3')(y)

  #ID
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block2_conv1')(y_)
  y = BatchNormalization(name='C5_block2_bn1')(y)
  y = Activation('relu', name='C5_block2_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block2_conv2')(y)
  y = BatchNormalization(name='C5_block2_bn2')(y)
  y = Activation('relu', name='C5_block2_act2')(y)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block2_conv3')(y)
  y = BatchNormalization(name='C5_block2_bn3')(y)
  y = Add(name='C5_skip2')([y_,y])
  y_ = Activation('relu', name='C5_block2_act3')(y)

  #ID
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block3_conv1')(y_)
  y = BatchNormalization(name='C5_block3_bn1')(y)
  y = Activation('relu', name='C5_block3_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block3_conv2')(y)
  y = BatchNormalization(name='C5_block3_bn2')(y)
  y = Activation('relu', name='C5_block3_act2')(y)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block3_conv3')(y)
  y = BatchNormalization(name='C5_block3_bn3')(y)
  y = Add(name='C5_skip3')([y_,y])
  y_ = Activation('relu', name='C5_block3_act3')(y)

  return(y_)

# Function for the CFF module in the ICNet architecture. The inputs are which stage (1 or 2), the output from the smaller branch, the output from the
# larger branch, n_classes and the width and height of the output of the smaller branch.
def CFF(stage: int, F_small, F_large, n_classes: int, input_width_small: int, input_height_small: int):
  F_up = tf.keras.layers.experimental.preprocessing.Resizing(int(input_width_small*2), int(input_height_small*2), interpolation="bilinear", name="Upsample_x2_small_{}".format(stage))(F_small)
  F_aux = Conv2D(n_classes, 1, name="CC_{}".format(stage), activation='softmax')(F_up)
  intermediate_f_small = Conv2D(128, 3, dilation_rate=2, padding='same', name="intermediate_f_small_{}".format(stage))(F_up)
  intermediate_f_small_bn = BatchNormalization(name="intermediate_f_small_bn_{}".format(stage))(intermediate_f_small)
  intermediate_f_large = Conv2D(128, 1, padding='same', name="intermediate_f_large_{}".format(stage))(F_large)
  intermediate_f_large_bn = BatchNormalization(name="intermediate_f_large_bn_{}".format(stage))(intermediate_f_large)
  intermediate_f_sum = Add(name="add_intermediates_{}".format(stage))([intermediate_f_small_bn,intermediate_f_large_bn])
  intermediate_f_relu = Activation('relu', name="activation_CFF_{}".format(stage))(intermediate_f_sum)
  return F_aux, intermediate_f_relu

# Function for the high-res branch of ICNet where image is in scale 1:1. The inputs are the input image, number of filters, kernel size and desired activation function.
def ICNet_1(input_obj,
           n_filters: int,
           kernel_size: tuple,
           activation: str):
  temp=input_obj
  for i in range(1,4):
    conv1=Conv2D(filters=n_filters*2*i, kernel_size=kernel_size, strides=(2,2), padding='same')(temp)
    batch_norm1=BatchNormalization()(conv1)
    temp=Activation(activation)(batch_norm1)
  return temp  

# Function for creating the ICNet model. The inputs are the width and height of the images to be used by the model, number of classes, number of filters, kernel size and
# desired activation function.
def ICNet(image_width: int,
         image_height: int,
         n_classes: int,
         n_filters: int = 16,
         kernel_size: tuple = (3,3),
         activation: str = 'relu'):
  input_shape=[image_width,image_height,3]
  input_obj = tf.keras.Input(shape=input_shape, name="input_img_1")
  input_obj_4 = tf.keras.layers.experimental.preprocessing.Resizing(
    image_width//4, image_height//4, interpolation="bilinear", name="input_img_4")(input_obj)
  input_obj_2 = tf.keras.layers.experimental.preprocessing.Resizing(
    image_width//2, image_height//2, interpolation="bilinear", name="input_img_2")(input_obj)
  ICNet_Model1=ICNet_1(input_obj, n_filters, kernel_size, activation)
  PSPModel = PSPNet(n_classes, n_filters, kernel_size, activation, image_width//4, image_height//4, True)
  last_layer = PSPModel.get_layer('conv4_block3_out').output
  PSPModel_2_4 = tf.keras.models.Model(inputs=PSPModel.input, outputs=last_layer, name="JointResNet_2_4")
  ICNet_Model4 = PSPModel_2_4(input_obj_4)
  ICNet_Model2 = PSPModel_2_4(input_obj_2)
  ICNet_4_rest = PSP_rest(ICNet_Model4)
  out1, last_layer = CFF(1, ICNet_4_rest, ICNet_Model2, n_classes, image_width//32, image_height//32)
  out2, last_layer = CFF(2, last_layer, ICNet_Model1, n_classes, image_width//16, image_height//16)
  upsample_2 = UpSampling2D(2, interpolation='bilinear', name="Upsampling_final_prediction")(last_layer)
  output = Conv2D(n_classes, 1, name="CC_fin", activation='softmax')(upsample_2)
  final_output = UpSampling2D(4, interpolation='bilinear', name='final_output')(output)
  final_model = tf.keras.models.Model(inputs=input_obj, outputs=[out1, out2, output, final_output])
  return final_model

Let's call the ICNet function to create the model with input shape (128, 128, 3) and 3 classes with the standard values for number of filters, kernel size and activation function.

#model=ICNet(128,128,3)

Here is the summary of the model.

model.summary()

Let's also plot the model architecture to verify that we got the ICNet architecture correctly. We first save the model in png format on DBFS through the package tf.keras.utils.plot_model and then load and display it through matplotlib.image package.

tf.keras.utils.plot_model(model, to_file='/dbfs/FileStore/my_model.jpg', show_shapes=True)
img = mpimg.imread('/dbfs/FileStore/my_model.jpg')
plt.figure(figsize=(200,200))
imgplot = plt.imshow(img)

Compiling the model with optimizer adam, loss function SparseCategoricalCrossentropy and metrics SparseCategoricalAccuracy. We also add loss weights 0.1, 0.3 and 0.6 to the lower resolution output, medium resolution output and high resolution output respectively.

model.compile(optimizer=tfa.optimizers.AdamW(learning_rate=0.001, weight_decay=0.0001),
              loss=tf.keras.losses.SparseCategoricalCrossentropy(), loss_weights=[0.4,0.4,1,0],
              metrics="acc")

Below, the functions for displaying the predictions from the model against the true image are defined.

# Function for creating the predicted image. It takes the max value between the classes and assigns the correct class label to the image, thus creating a predicted mask.
def create_mask(pred_mask):
  pred_mask = tf.argmax(pred_mask, axis=-1)
  pred_mask = pred_mask[..., tf.newaxis]
  return pred_mask[0]

# Function for showing the model prediction. Output can be 0, 1 or 2 depending on if you want to see the low resolution, medium resolution or high resolution prediction respectively.
def show_predictions(dataset=None, num=1, output=3):
  if dataset:
    for image, mask in dataset.take(num):
      pred_mask = model.predict(image[tf.newaxis,...])[output]
      display([image, mask['final_output'], create_mask(pred_mask)])
  else:
    display([sample_image, sample_mask,
             create_mask(model.predict(sample_image[tf.newaxis, ...])[output])])

show_predictions()

Let's define the variables needed for training the model.

TRAIN_LENGTH = n_train
BATCH_SIZE = 64
BUFFER_SIZE = 1000
STEPS_PER_EPOCH = TRAIN_LENGTH // BATCH_SIZE

EPOCHS = 100
VAL_SUBSPLITS = 5
VALIDATION_STEPS = n_test//BATCH_SIZE//VAL_SUBSPLITS

Now we define the batch generator which will be passed to model.fit() function.

#def batch_generator(X, Y16, Y8, Y4, batch_size = BATCH_SIZE):
#  indices = np.arange(len(X))
#  batch=[]
#  while True:
  # it might be a good idea to shuffle your data before each epoch
#    np.random.shuffle(indices)
#    for i in indices:
#      batch.append(i)
#      if len(batch)==batch_size:
#        yield X[batch], {'ClassifierConv_1': Y16[batch], 'ClassifierConv_2': Y8[batch], 'ClassifierConv_final_prediction': Y4[batch]}
#        batch=[]

And here we define the custom callback function for showing how the model improves its predictions.

class MyCustomCallback(tf.keras.callbacks.Callback):
  def on_epoch_end(self, epoch, logs=None):
    show_predictions()

MLFlow is initialized to keep track of the experiments.

We create a callback for early stopping to prevent overfitting.

train_original_img, train16_mask, train8_mask, train4_mask, train_original_mask, test_original_img, test16_mask, test8_mask, test4_mask, test_original_mask, n_train, n_test = create_datasets_hvd_test(128,128)
train_original_img.cache()
train16_mask.cache()
train8_mask.cache()
train4_mask.cache()
train_original_mask.cache()
test_original_img.cache()
test16_mask.cache()
test8_mask.cache()
test4_mask.cache()
test_original_mask.cache()
def train_hvd(checkpoint_dir,learning_rate=1.0, batch_size:int =64, buffer_size:int=1000):

  # Initialize Horovod
  hvd.init()

  # Pin GPU to be used to process local rank (one GPU per process)
  # These steps are skipped on a CPU cluster
  gpus = tf.config.experimental.list_physical_devices('GPU')
  for gpu in gpus:
    tf.config.experimental.set_memory_growth(gpu, True)
  if gpus:
    tf.config.experimental.set_visible_devices(gpus[hvd.local_rank()], 'GPU')

  # Including MLflow
  import mlflow
  import mlflow.tensorflow
  import os

  # Configure Databricks MLflow environment
  #    This is my (denny.lee) personal token so you will want to generate yours
  mlflow.set_tracking_uri("databricks")
  os.environ['DATABRICKS_HOST'] = databricks_host
  os.environ['DATABRICKS_TOKEN'] = databricks_token
  mlflow.set_experiment("/scalable-data-science/000_0-sds-3-x-projects/voluntary-student-project-01_group-DDLInMining/05Z_ICNet_Function_hvd_tuning")

  # Call the get_dataset function you created, this time with the Horovod rank and size
  #train_dataset, test_dataset, sample_mask, sample_image, orig_test_dataset = create_datasets(128,128,n_train,n_test, 64, 1000)
  #train_dataset, test_dataset, sample_mask, sample_image, orig_test_dataset, n_train, n_test = create_datasets_hvd(128,128, batch_size, buffer_size, hvd.rank(), hvd.size())
  train_dataset, test_dataset = splitDataset(train_original_img, train16_mask, train8_mask, train4_mask, train_original_mask, test_original_img, test16_mask, test8_mask, test4_mask, test_original_mask, hvd.rank(), hvd.size(), batch_size, buffer_size)
  model = ICNet(128,128,3)

  STEPS_PER_EPOCH = n_train // batch_size

  EPOCHS = 15
  VAL_SUBSPLITS = 5
  VALIDATION_STEPS = n_test//batch_size//VAL_SUBSPLITS

  # Adjust learning rate based on number of GPUs
  optimizer = tfa.optimizers.AdamW(lr=learning_rate * hvd.size(), weight_decay=0.0001)

  # Use the Horovod Distributed Optimizer
  optimizer = hvd.DistributedOptimizer(optimizer)

  model.compile(optimizer=optimizer,
              loss=tf.keras.losses.SparseCategoricalCrossentropy(), loss_weights=[0.4,0.4,1,0],
              metrics="acc")

  # Create a callback to broadcast the initial variable states from rank 0 to all other processes.
  # This is required to ensure consistent initialization of all workers when training is started with random weights or restored from a checkpoint.
  callbacks = [
      hvd.callbacks.BroadcastGlobalVariablesCallback(0)
  ]

  # Save checkpoints only on worker 0 to prevent conflicts between workers
  if hvd.rank() == 0:
      callbacks.append(tf.keras.callbacks.ModelCheckpoint(checkpoint_dir + '/checkpoint-{epoch}.ckpt', save_weights_only = True, monitor='val_final_output_loss', save_best_only=True))

      with mlflow.start_run():
        mlflow.tensorflow.autolog(every_n_iter=1)

  model_history =  model.fit(train_dataset, epochs=EPOCHS, steps_per_epoch=STEPS_PER_EPOCH,
                           validation_steps=VALIDATION_STEPS, validation_data=test_dataset, callbacks=callbacks)

  return model.evaluate(test_dataset, steps=VALIDATION_STEPS)[4]

Finally, we fit the model to the Oxford dataset.

from sparkdl import HorovodRunner

def train(params):
  """
  An example train method that calls into HorovodRunner.
  This method is passed to hyperopt.fmin().

  :param params: hyperparameters. Its structure is consistent with how search space is defined. See below.
  :return: dict with fields 'loss' (scalar loss) and 'status' (success/failure status of run)
  """
  hr = HorovodRunner(np=2)
  loss = hr.run(train_hvd,checkpoint_dir=checkpoint_dir,
                     learning_rate=params['learning_rate'],
                     batch_size=params['batch_size']
                     )
  return {'loss': loss, 'status': STATUS_OK}
import numpy as np
space = {
  'learning_rate': hp.loguniform('learning_rate', np.log(1e-4), np.log(1e-1)),
  'batch_size': hp.choice('batch_size', [32, 64, 128]),
}
algo=tpe.suggest

best_param = fmin(
  fn=train,
  space=space,
  algo=algo,
  max_evals=8,
  return_argmin=False,
)
from sparkdl import HorovodRunner

hr = HorovodRunner(np=2)
hr.run(train_hvd, learning_rate=0.001)
mlflow.end_run()
with mlflow.start_run(experiment_id = experimentID) as run:  
  # Get active run_uuid
  active_run_id = mlflow.active_run().info.run_id
  print(active_run_id)

  # Process Mode
  process_mode = "hvd (4)"

  # Parameters
  lr = 0.001

  # Run HorovodRunner
  hr = HorovodRunner(np=2)
  hr.run(train_hvd, learning_rate=lr)

mlflow.end_run()
model_history =  model.fit(train_dataset, epochs=EPOCHS, steps_per_epoch=STEPS_PER_EPOCH,
                           validation_steps=VALIDATION_STEPS, validation_data=test_dataset, callbacks=[MyCustomCallback(), early_stopping])









We visualize the accuracies and losses through the library matplotlib.

loss = model_history.history['loss']
acc = model_history.history['final_output_acc']
val_loss = model_history.history['val_loss']
val_loss1 = model_history.history['val_CC_1_loss']
val_loss2 = model_history.history['val_CC_2_loss']
val_loss3 = model_history.history['val_CC_fin_loss']
val_loss4 = model_history.history['val_final_output_loss']
val_acc1 = model_history.history['val_CC_1_acc']
val_acc2 = model_history.history['val_CC_2_acc']
val_acc3 = model_history.history['val_CC_fin_acc']
val_acc4 = model_history.history['val_final_output_acc']

epochs = range(16)

plt.figure(figsize=(20,3))
plt.subplot(1,4,1)
plt.plot(epochs, loss, 'r', label='Training loss')
plt.plot(epochs, val_loss, 'b', label='Validation loss')
plt.title('Training and Validation Loss')
plt.xlabel('Epoch')
plt.ylabel('Loss Value')
plt.legend()
plt.subplot(1,4,2)
plt.plot(epochs, acc, 'r', label="Training accuracy")
plt.plot(epochs, val_acc4, 'b', label="Validation accuracy")
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.legend()
plt.subplot(1,4,3)
plt.plot(epochs, val_loss1, 'b', label="Loss output 1")
plt.plot(epochs, val_loss2, 'g', label="Loss output 2")
plt.plot(epochs, val_loss3, 'y', label="Loss output 3")
plt.plot(epochs, val_loss4, 'y', label="Loss output 4")
plt.legend()
plt.subplot(1,4,4)
plt.plot(epochs, val_acc1, 'b', label="Acc output 1")
plt.plot(epochs, val_acc2, 'g', label="Acc output 2")
plt.plot(epochs, val_acc3, 'y', label="Acc output 3")
plt.plot(epochs, val_acc4, 'y', label="Acc output 4")
plt.legend()
plt.show()

Finally, we visualize some predictions on the test dataset.

show_predictions(orig_test_dataset, 20, 3)


ScaDaMaLe Course site and book

Implementation of ICNet

In this notebook, an implementation of ICNet is presented which is an architecture whitch uses a trade-off between complexity and inference time efficiently. The architecture is evaluated against the Oxford pets dataset.

Below, functions for data manipulation are defined, ensuring that the images inputted to the model is of appropriate format.

import tensorflow as tf
import tensorflow_datasets as tfds
import matplotlib.pyplot as plt
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
import numpy as np

# Function for normalizing image_size so that pixel intensity is between 0 and 1
def normalize(input_image, input_mask):
  input_image = tf.cast(input_image, tf.float32) / 255.0
  input_mask -= 1
  return input_image, input_mask

# Function for resizing the train images to the desired input shape of 128x128 as well as augmenting the training images
@tf.function
def load_image_train(datapoint):
  input_image = tf.image.resize(datapoint['image'], (128, 128))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (128, 128))

  if tf.random.uniform(()) > 0.5:
    input_image = tf.image.flip_left_right(input_image)
    input_mask = tf.image.flip_left_right(input_mask)

  input_image, input_mask = normalize(input_image, input_mask)
  input_mask = tf.math.round(input_mask)

  return input_image, input_mask

# Function for resizing the test images to the desired output shape (no augmenation)
def load_image_test(datapoint):
  input_image = tf.image.resize(datapoint['image'], (128, 128))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (128, 128))

  input_image, input_mask = normalize(input_image, input_mask)

  return input_image, input_mask

def load_image_train_noTf(datapoint):
  input_image = tf.image.resize(datapoint['image'], (128, 128))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (128, 128))

  if tf.random.uniform(()) > 0.5:
    input_image = tf.image.flip_left_right(input_image)
    input_mask = tf.image.flip_left_right(input_mask)

  input_image, input_mask = normalize(input_image, input_mask)
  input_mask = tf.math.round(input_mask)

  return input_image, input_mask

# Function for resizing the image to the desired size of factor 2 or 4 to be inputted to the ICNet architecture
def resize_image16(img, mask):
  input_image = tf.image.resize(img, (128//16, 128//16))
  input_mask=tf.image.resize(mask, (128//16, 128//16))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask

def resize_image8(img, mask):
  input_image = tf.image.resize(img, (128//8, 128//8))
  input_mask=tf.image.resize(mask, (128//8, 128//8))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask

def resize_image4(img, mask):
  input_image = tf.image.resize(img, (128//4, 128//4))
  input_mask=tf.image.resize(mask, (128//4, 128//4))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask

Here the data is loaded from Tensorflow datasets.

import tensorflow_datasets as tfds

dataset, info = tfds.load('oxford_iiit_pet:3.*.*', with_info=True)

TRAIN_LENGTH = info.splits['train'].num_examples
BATCH_SIZE = 114
BUFFER_SIZE = 1000
STEPS_PER_EPOCH = TRAIN_LENGTH // BATCH_SIZE

#train = dataset['train'].map(load_image_train, num_parallel_calls=tf.data.experimental.AUTOTUNE)
#train16 = dataset['train'].map(resize_image16, num_parallel_calls=tf.data.experimental.AUTOTUNE)
#train8 = dataset['train'].map(resize_image8, num_parallel_calls=tf.data.experimental.AUTOTUNE)
#train4 = dataset['train'].map(resize_image4, num_parallel_calls=tf.data.experimental.AUTOTUNE)
#test = dataset['test'].map(load_image_test)

#train_dataset = train.cache().shuffle(BUFFER_SIZE).batch(BATCH_SIZE).repeat()
#train_dataset = train_dataset.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
#test_dataset = test.batch(BATCH_SIZE)

train_orig = np.ndarray(shape=(3680,128,128,3))
train_orig_mask = np.ndarray(shape=(3680,128,128,1))
train16_mask = np.ndarray(shape=(3680,8,8,1))
train8_mask = np.ndarray(shape=(3680,16,16,1))
train4_mask = np.ndarray(shape=(3680,32,32,1))

count = 0
for datapoint in dataset['train']:
  img_orig, mask_orig = load_image_train_noTf(datapoint)
  train_orig[count]=img_orig
  train_orig_mask[count]=(mask_orig)
  img, mask = resize_image16(img_orig, mask_orig)
  train16_mask[count]=(mask)
  img, mask = resize_image8(img_orig, mask_orig)
  train8_mask[count]=(mask)
  img, mask = resize_image4(img_orig, mask_orig)
  train4_mask[count]=(mask)
  count+=1

test_orig = np.ndarray(shape=(3669,128,128,3))
test_orig_mask = np.ndarray(shape=(3669,128,128,1))
test_orig_img = np.ndarray(shape=(3669,128,128,3))
test16_mask = np.ndarray(shape=(3669,8,8,1))
test16_img = np.ndarray(shape=(3669,8,8,3))
test8_mask = np.ndarray(shape=(3669,16,16,1))
test8_img = np.ndarray(shape=(3669,16,16,3))
test4_mask = np.ndarray(shape=(3669,32,32,1))
test4_img = np.ndarray(shape=(3669,32,32,3))

count=0
for datapoint in dataset['test']:
  img_orig, mask_orig = load_image_test(datapoint)
  test_orig[count]=(img_orig)
  test_orig_mask[count]=(mask_orig)
  img, mask = resize_image16(img_orig, mask_orig)
  test16_mask[count]=(mask)
  test16_img[count]=(img)
  img, mask = resize_image8(img_orig, mask_orig)
  test8_mask[count]=(mask)
  test8_img[count]=(img)
  img, mask = resize_image4(img_orig, mask_orig)
  test4_mask[count]=(mask)
  test4_img[count]=(img)
  count+=1


def display(display_list):
  plt.figure(figsize=(15, 15))

  title = ['Input Image', 'True Mask', 'Predicted Mask']

  for i in range(len(display_list)):
    plt.subplot(1, len(display_list), i+1)
    plt.title(title[i])
    plt.imshow(tf.keras.preprocessing.image.array_to_img(display_list[i]))
    plt.axis('off')
  plt.show()

sample_image, sample_mask = train_orig[0], train_orig_mask[0]
display([sample_image, sample_mask])
#for image, mask in train.take(1):
#  sample_image, sample_mask = image, mask
#display([sample_image, sample_mask])

#Keep shape with (Batch_SIZE, height,width, channels)
#in either np.array or try datasets.
#train = tfds.as_numpy(dataset['train']['image'])
#train16 = tfds.as_numpy(train16)
#train8 = tfds.as_numpy(train8)
#train4 = tfds.as_numpy(train4)
#truth16 = np.concatenate([y for x, y in train16], axis=0)
#truth8 = np.concatenate([y for x, y in train8], axis=0)
#truth4 = np.concatenate([y for x, y in train4], axis=0)

test_dataset = dataset['test'].map(load_image_test)
test_dataset = test.batch(BATCH_SIZE)
print(test8_mask)
train_orig = np.split(train_orig[0:3648], 114)
print("Finshed 1")
train16_mask = np.split(train16_mask[0:3648], 114)
train8_mask = np.split(train8_mask[0:3648], 114)
train4_mask = np.split(train4_mask[0:3648], 114)

test_orig = np.split(test_orig[0:3648], 114)
print("Finshed 1")
test16_mask = np.split(test16_mask[0:3648], 114)
test8_mask = np.split(test8_mask[0:3648], 114)
test4_mask = np.split(test4_mask[0:3648], 114)
test16_img = np.split(test16_img[0:3648], 114)
test8_img = np.split(test8_img[0:3648], 114)
test4_img = np.split(test4_img[0:3648], 114)
print(test16_mask)
def pool_block(cur_tensor,
               image_width,
               image_height,
               pooling_factor,
               activation):

  strides = [int(np.round(float(image_width)/pooling_factor)),
            int(np.round(float(image_height)/pooling_factor))]
  pooling_size = strides
  x = AveragePooling2D(pooling_size, strides=strides, padding='same')(cur_tensor)
  x = Conv2D(128,(1,1),padding='same')(x)
  x = BatchNormalization()(x)
  x = Activation(activation)(x)
  x = tf.keras.layers.experimental.preprocessing.Resizing(
    image_height, image_width, interpolation="bilinear")(x) # Resizing images to correct shape for future concat
  return x

import tensorflow as tf
from tensorflow.keras.applications.resnet50 import ResNet50

# Function for formatting the resnet model to a modified one which takes advantage of dilation rates instead of strides in the final blocks
def modify_ResNet_Dilation(model):
  for i in range(0,4):
    model.get_layer('conv4_block1_{}_conv'.format(i)).strides = 1
    model.get_layer('conv4_block1_{}_conv'.format(i)).dilation_rate = 2
    model.get_layer('conv5_block1_{}_conv'.format(i)).strides = 1
    model.get_layer('conv5_block1_{}_conv'.format(i)).dilation_rate = 4
  new_model = model_from_json(model.to_json())
  return new_model

def PSPNet(num_classes: int,
           n_filters: int,
           kernel_size: tuple,
           activation: str,
           image_width: int,
           image_height: int,
           isICNet: bool = False
          ):
  if isICNet:
    input_shape=(None, None, 3)
  else:
    input_shape=(image_height,image_width,3)
  encoder=ResNet50(include_top=False, weights='imagenet', input_shape=input_shape)
  encoder=modify_ResNet_Dilation(encoder)
  encoder.trainable=False
  resnet_output=encoder.output
  pooling_layer=[]
  pooling_layer.append(resnet_output)
  output=Dropout(rate=0.5)(resnet_output)
  h = image_height//8
  w = image_width//8
  for i in [1,2,3,6]:
    pool = pool_block(output, h, w, i, activation)
    pooling_layer.append(pool)
  concat=Concatenate()(pooling_layer)
  output_layer=Conv2D(filters=num_classes, kernel_size=(1,1), padding='same')(concat)
  final_layer=UpSampling2D(size=(8,8), data_format='channels_last', interpolation='bilinear')(output_layer)
  final_model=tf.keras.models.Model(inputs=encoder.input, outputs=final_layer)
  return final_model

PSP = PSPNet(3, 16, (3,3), 'relu', 128,128)
PSP.summary()
def PSP_rest(input_prev: tf.Tensor):

  y_ = input_prev
  #Conv_Block
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block1_conv1')(y_)
  y = BatchNormalization(name='C4_block1_bn1')(y)
  y = Activation('relu', name='C4_block1_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block1_conv2')(y)
  y = BatchNormalization(name='C4_block1_bn2')(y)
  y = Activation('relu', name='C4_block1_act2')(y)
  y_ = Conv2D(1024, 1, dilation_rate=2, padding='same', name='C4_block1_conv0')(y_)
  y = Conv2D(1024, 1, dilation_rate=2, padding='same', name='C4_block1_conv3')(y)
  y_ = BatchNormalization(name='C4_block1_bn0')(y_)
  y = BatchNormalization(name='C4_block1_bn3')(y)
  y = Add(name='C4_skip1')([y_,y])
  y_ = Activation('relu', name='C4_block1_act3')(y)
  #IDBLOCK1
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block2_conv1')(y_)
  y = BatchNormalization(name='C4_block2_bn1')(y)
  y = Activation('relu', name='C4_block2_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block2_conv2')(y)
  y = BatchNormalization(name='C4_block2_bn2')(y)
  y = Activation('relu', name='C4_block2_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block2_conv3')(y)
  y = BatchNormalization(name='C4_block2_bn3')(y)
  y = Add(name='C4_skip2')([y_,y])
  y_ = Activation('relu', name='C4_block2_act3')(y)
  #IDBLOCK2
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block3_conv1')(y_)
  y = BatchNormalization(name='C4_block3_bn1')(y)
  y = Activation('relu', name='C4_block3_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block3_conv2')(y)
  y = BatchNormalization(name='C4_block3_bn2')(y)
  y = Activation('relu', name='C4_block3_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block3_conv3')(y)
  y = BatchNormalization(name='C4_block3_bn3')(y)
  y = Add(name='C4_skip3')([y_,y])
  y_ = Activation('relu', name='C4_block3_act3')(y)
  #IDBlock3
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block4_conv1')(y_)
  y = BatchNormalization(name='C4_block4_bn1')(y)
  y = Activation('relu', name='C4_block4_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block4_conv2')(y)
  y = BatchNormalization(name='C4_block4_bn2')(y)
  y = Activation('relu', name='C4_block4_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block4_conv3')(y)
  y = BatchNormalization(name='C4_block4_bn3')(y)
  y = Add(name='C4_skip4')([y_,y])
  y_ = Activation('relu', name='C4_block4_act3')(y)
  #ID4
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block5_conv1')(y_)
  y = BatchNormalization(name='C4_block5_bn1')(y)
  y = Activation('relu', name='C4_block5_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block5_conv2')(y)
  y = BatchNormalization(name='C4_block5_bn2')(y)
  y = Activation('relu', name='C4_block5_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block5_conv3')(y)
  y = BatchNormalization(name='C4_block5_bn3')(y)
  y = Add(name='C4_skip5')([y_,y])
  y_ = Activation('relu', name='C4_block5_act3')(y)
  #ID5
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block6_conv1')(y_)
  y = BatchNormalization(name='C4_block6_bn1')(y)
  y = Activation('relu', name='C4_block6_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block6_conv2')(y)
  y = BatchNormalization(name='C4_block6_bn2')(y)
  y = Activation('relu', name='C4_block6_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block6_conv3')(y)
  y = BatchNormalization(name='C4_block6_bn3')(y)
  y = Add(name='C4_skip6')([y_,y])
  y_ = Activation('relu', name='C4_block6_act3')(y)

  #Conv
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block1_conv1')(y_)
  y = BatchNormalization(name='C5_block1_bn1')(y)
  y = Activation('relu', name='C5_block1_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block1_conv2')(y)
  y = BatchNormalization(name='C5_block1_bn2')(y)
  y = Activation('relu', name='C5_block1_act2')(y)
  y_ = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block1_conv0')(y_)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block1_conv3')(y)
  y_ = BatchNormalization(name='C5_block1_bn0')(y_)
  y = BatchNormalization(name='C5_block1_bn3')(y)
  y = Add(name='C5_skip1')([y_,y])
  y_ = Activation('relu', name='C5_block1_act3')(y)

  #ID
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block2_conv1')(y_)
  y = BatchNormalization(name='C5_block2_bn1')(y)
  y = Activation('relu', name='C5_block2_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block2_conv2')(y)
  y = BatchNormalization(name='C5_block2_bn2')(y)
  y = Activation('relu', name='C5_block2_act2')(y)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block2_conv3')(y)
  y = BatchNormalization(name='C5_block2_bn3')(y)
  y = Add(name='C5_skip2')([y_,y])
  y_ = Activation('relu', name='C5_block2_act3')(y)

  #ID
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block3_conv1')(y_)
  y = BatchNormalization(name='C5_block3_bn1')(y)
  y = Activation('relu', name='C5_block3_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block3_conv2')(y)
  y = BatchNormalization(name='C5_block3_bn2')(y)
  y = Activation('relu', name='C5_block3_act2')(y)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block3_conv3')(y)
  y = BatchNormalization(name='C5_block3_bn3')(y)
  y = Add(name='C5_skip3')([y_,y])
  y_ = Activation('relu', name='C5_block3_act3')(y)

  return(y_)

Method for performing cascade feature fusion. See https://arxiv.org/pdf/1704.08545.pdf

def CFF(stage: int, F_small, F_large, n_classes: int, input_width_small: int, input_height_small: int):
  F_up = tf.keras.layers.experimental.preprocessing.Resizing(int(input_width_small*2), int(input_height_small*2), interpolation="bilinear", name="Upsample_x2_small_{}".format(stage))(F_small)
  F_aux = Conv2D(n_classes, 1, name="ClassifierConv_{}".format(stage), activation='softmax')(F_up)
  #y = ZeroPadding2D(padding=2, name='padding17')(F_up) ?? behövs denna?
  intermediate_f_small = Conv2D(128, 3, dilation_rate=2, padding='same', name="intermediate_f_small_{}".format(stage))(F_up)
  print(intermediate_f_small)
  intermediate_f_small_bn = BatchNormalization(name="intermediate_f_small_bn_{}".format(stage))(intermediate_f_small)
  intermediate_f_large = Conv2D(128, 1, padding='same', name="intermediate_f_large_{}".format(stage))(F_large)
  intermediate_f_large_bn = BatchNormalization(name="intermediate_f_large_bn_{}".format(stage))(intermediate_f_large)
  intermediate_f_sum = Add(name="add_intermediates_{}".format(stage))([intermediate_f_small_bn,intermediate_f_large_bn])
  intermediate_f_relu = Activation('relu', name="activation_CFF_{}".format(stage))(intermediate_f_sum)
  return F_aux, intermediate_f_relu

#%sh sudo apt-get install -y graphviz
def ICNet_1(input_obj: tf.keras.Input,
           n_filters: int,
           kernel_size: tuple,
           activation: str):
  temp=input_obj
  for i in range(1,4):
    # Dropout layer on the hidden units, i.e. not on the input layer
    if i == 2 or i == 3:
      temp=Dropout(rate=0.5)(temp)
    conv1=Conv2D(filters=n_filters*2*i, kernel_size=kernel_size, strides=(2,2), padding='same')(temp)
    batch_norm1=BatchNormalization()(conv1)
    temp=Activation(activation)(batch_norm1)
  return temp  

def ICNet(image_width: int,
         image_height: int,
         n_classes: int,
         n_filters: int = 16,
         kernel_size: tuple = (3,3),
         activation: str = 'relu'):
  input_shape=[image_width,image_height,3]
  input_obj = tf.keras.Input(shape=input_shape, name="input_img_1")
  input_obj_4 = tf.keras.layers.experimental.preprocessing.Resizing(
    image_width//4, image_height//4, interpolation="bilinear", name="input_img_4")(input_obj)
  input_obj_2 = tf.keras.layers.experimental.preprocessing.Resizing(
    image_width//2, image_height//2, interpolation="bilinear", name="input_img_2")(input_obj)
  ICNet_Model1=ICNet_1(input_obj, n_filters, kernel_size, activation)
  PSPModel = PSPNet(n_classes, n_filters, kernel_size, activation, image_width//4, image_height//4, True)
  last_layer = PSPModel.get_layer('conv4_block3_out').output
  PSPModel_2_4 = tf.keras.models.Model(inputs=PSPModel.input, outputs=last_layer, name="JointResNet_2_4")
  ICNet_Model4 = PSPModel_2_4(input_obj_4)
  ICNet_Model2 = PSPModel_2_4(input_obj_2)
  ICNet_4_rest = PSP_rest(ICNet_Model4)
  out1, last_layer = CFF(1, ICNet_4_rest, ICNet_Model2, n_classes, image_width//32, image_height//32)
  out2, last_layer = CFF(2, last_layer, ICNet_Model1, n_classes, image_width//16, image_height//16)
  upsample_2 = UpSampling2D(2, interpolation='bilinear', name="Upsampling_final_prediction")(last_layer)
  output = Conv2D(n_classes, 1, name="ClassifierConv_final_prediction", activation='softmax')(upsample_2)
  final_model = tf.keras.models.Model(inputs=input_obj, outputs=[out1, out2, output])
  return final_model

model=ICNet(128,128,3)
model.summary()
#final_model=tf.keras.models.Model(inputs=input_obj ,outputs=model)
#final_model.summary()
from IPython.display import display as Display, Image
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

tf.keras.utils.plot_model(model, to_file='/dbfs/FileStore/my_model.jpg', show_shapes=True)
img = mpimg.imread('/dbfs/FileStore/my_model.jpg')
plt.figure(figsize=(200,200))
imgplot = plt.imshow(img)

ls /dbfs/FileStore
#import datetime


model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(), loss_weights=[0.1,0.3,0.6],
              metrics=tf.keras.metrics.SparseCategoricalAccuracy())

#log_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
#tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)

def create_mask(pred_mask):
  pred_mask = tf.argmax(pred_mask, axis=-1)
  pred_mask = pred_mask[..., tf.newaxis]
  return pred_mask[0]

def show_predictions(dataset=None, num=1):
  if dataset:
    for image, mask in dataset.take(num):
      print(image)
      pred_mask = model.predict(image)[2]
      display([image[0], mask[0], create_mask(pred_mask)])
  else:
    display([sample_image, sample_mask,
             create_mask(model.predict(sample_image[tf.newaxis, ...])[2])])

show_predictions()

ls
import mlflow.tensorflow
mlflow.tensorflow.autolog()
def batch_generator(X, Y16, Y8, Y4, batch_size = BATCH_SIZE):
  indices = np.arange(len(X))
  batch=[]
  while True:
  # it might be a good idea to shuffle your data before each epoch
    np.random.shuffle(indices)
    for i in indices:
      batch.append(i)
      if len(batch)==batch_size:
        yield X[batch], {'ClassifierConv_1': Y16[batch], 'ClassifierConv_2': Y8[batch], 'ClassifierConv_final_prediction': Y4[batch]}
        batch=[]

def batch_generator_eval(X, Y16, Y8, Y4, batch_size = BATCH_SIZE):
  indices = np.arange(len(X))
  batch=[]
  while True:
    for i in indices:
      batch.append(i)
      if len(batch)==batch_size:
        yield X[batch], {'ClassifierConv_1': Y16[batch], 'ClassifierConv_2': Y8[batch], 'ClassifierConv_final_prediction': Y4[batch]}
        batch=[]

class DisplayCallback(tf.keras.callbacks.Callback):
  def on_epoch_end(self, epoch, logs=None):
    show_predictions()

res_eval_1 = []
class MyCustomCallback(tf.keras.callbacks.Callback):
    def on_epoch_end(self, epoch, logs=None):
        res_eval_1.append(self.model.evaluate(test_orig, [test16_mask, test8_mask, test4_mask], batch_size=45, verbose=1))
        show_predictions()

TRAIN_LENGTH = info.splits['train'].num_examples
BATCH_SIZE = 64
BUFFER_SIZE = 1000
STEPS_PER_EPOCH = TRAIN_LENGTH//BATCH_SIZE

EPOCHS = 10
VAL_SUBSPLITS = 5
VALIDATION_STEPS = info.splits['test'].num_examples//BATCH_SIZE

train_generator = batch_generator(train_orig,train16_mask,train8_mask,train4_mask,batch_size=BATCH_SIZE)
eval_generator = batch_generator_eval(test_orig, test16_mask, test8_mask, test4_mask, batch_size=BATCH_SIZE)
model_history =  model.fit(train_generator, epochs=EPOCHS,steps_per_epoch=STEPS_PER_EPOCH,
                                     callbacks=[MyCustomCallback()],verbose=1)                        
#model_history = model.fit(x=train_orig, y=[train16_mask, train8_mask, train4_mask],
#                          epochs=EPOCHS,
#                          steps_per_epoch=STEPS_PER_EPOCH,
#                          callbacks=[MyCustomCallback()], verbose=1)






print(res_eval_1)
loss = model_history.history['loss']
acc = model_history.history['ClassifierConv_final_prediction_sparse_categorical_accuracy']
val_loss = []
val_acc = []
val_loss1 = []
val_loss2 = []
val_loss3 = []
val_acc1 = []
val_acc2 = []
for i in range(EPOCHS):
  val_loss.append(res_eval_1[i][0])
  val_loss1.append(res_eval_1[i][1])
  val_loss2.append(res_eval_1[i][2])
  val_loss3.append(res_eval_1[i][3])
  val_acc.append(res_eval_1[i][6])
  val_acc1.append(res_eval_1[i][4])
  val_acc2.append(res_eval_1[i][5])

epochs = range(EPOCHS)

plt.figure(figsize=(20,3))
plt.subplot(1,4,1)
plt.plot(epochs, loss, 'r', label='Training loss')
plt.plot(epochs, val_loss, 'bo', label='Validation loss')
plt.title('Training and Validation Loss')
plt.xlabel('Epoch')
plt.ylabel('Loss Value')
plt.legend()
plt.subplot(1,4,2)
plt.plot(epochs, acc, 'r', label="Training accuracy")
plt.plot(epochs, val_acc, 'bo', label="Validation accuracy")
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.legend()
plt.subplot(1,4,3)
plt.plot(epochs, val_loss1, 'b', label="Loss output 1")
plt.plot(epochs, val_loss2, 'g', label="Loss output 2")
plt.plot(epochs, val_loss3, 'y', label="Loss output 3")
plt.legend()
plt.subplot(1,4,4)
plt.plot(epochs, val_acc1, 'b', label="Acc output 1")
plt.plot(epochs, val_acc2, 'g', label="Acc output 2")
plt.plot(epochs, val_acc, 'y', label="Acc output 3")
plt.legend()
plt.show()


ScaDaMaLe Course site and book

Implementation of ICNet

In this notebook, an implementation of ICNet is presented which is an architecture which uses a trade-off between complexity and inference time efficiently. The architecture is evaluated against the Oxford pets dataset. This notebook has reused material from the Image Segmentation Tutorial on Tensorflow

Importing the required packages.

import tensorflow as tf
import tensorflow_datasets as tfds
import matplotlib.pyplot as plt
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
import numpy as np
from tensorflow.keras.applications.resnet50 import ResNet50
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import tensorflow_addons as tfa
from hyperopt import fmin, tpe, hp, Trials, STATUS_OK, SparkTrials

Loading and transforming the dataset.

def normalize(input_image, input_mask):
  input_image = tf.cast(input_image, tf.float32) / 255.0
  input_mask -= 1
  return input_image, input_mask

# Function for resizing the train images to the desired input shape of HxW as well as augmenting the training images.
def load_image_train_noTf(datapoint, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(datapoint['image'], (wanted_height, wanted_width))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (wanted_height, wanted_width))

  if tf.random.uniform(()) > 0.5:
    input_image = tf.image.flip_left_right(input_image)
    input_mask = tf.image.flip_left_right(input_mask)

  input_image, input_mask = normalize(input_image, input_mask)
  input_mask = tf.math.round(input_mask)

  return input_image, input_mask

# Function for resizing the test images to the desired output shape (no augmenation).
def load_image_test(datapoint, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(datapoint['image'], (wanted_height, wanted_width))
  input_mask = tf.image.resize(datapoint['segmentation_mask'], (wanted_height, wanted_width))

  input_image, input_mask = normalize(input_image, input_mask)

  return input_image, input_mask



# Functions for resizing the image to the desired size of factor 2 or 4 to be inputted to the ICNet architecture.
def resize_image16(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//16, wanted_width//16))
  input_mask=tf.image.resize(mask, (wanted_height//16, wanted_width//16))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask

def resize_image8(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//8, wanted_width//8))
  input_mask=tf.image.resize(mask, (wanted_height//8, wanted_width//8))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask

def resize_image4(img, mask, wanted_height: int, wanted_width: int):
  input_image = tf.image.resize(img, (wanted_height//4, wanted_width//4))
  input_mask=tf.image.resize(mask, (wanted_height//4, wanted_width//4))
  input_mask = tf.math.round(input_mask)
  return input_image, input_mask
def create_datasets(wanted_height:int, wanted_width:int, BATCH_SIZE:int = 64, BUFFER_SIZE:int = 1000):
  dataset, info = tfds.load('oxford_iiit_pet:3.*.*', with_info=True)
  n_train = info.splits['train'].num_examples
  n_test = info.splits['test'].num_examples
  #Creating the ndarray in the correct shapes for training data
  train_original_img = np.ndarray(shape=(n_train, wanted_height, wanted_width, 3), dtype=np.float32)

  train_original_mask = np.ndarray(shape=(n_train, wanted_height, wanted_width, 1), dtype=np.float32)
  train16_mask = np.ndarray(shape=(n_train, wanted_height//16, wanted_width//16, 1), dtype=np.float32)
  train8_mask = np.ndarray(shape=(n_train, wanted_height//8, wanted_width//8, 1), dtype=np.float32)
  train4_mask = np.ndarray(shape=(n_train, wanted_height//4, wanted_width//4, 1), dtype=np.float32)

  #Loading the data into the arrays
  count = 0
  for datapoint in dataset['train']:
    img_orig, mask_orig = load_image_train_noTf(datapoint, wanted_height, wanted_width)
    train_original_img[count]=img_orig
    train_original_mask[count]=mask_orig

    img16, mask16 = resize_image16(img_orig, mask_orig, wanted_height, wanted_width)
    train16_mask[count]=(mask16)

    img8, mask8 = resize_image8(img_orig, mask_orig, wanted_height, wanted_width)
    train8_mask[count]=(mask8)

    img4, mask4 = resize_image4(img_orig, mask_orig, wanted_height, wanted_width)
    train4_mask[count]=(mask4)
    count+=1

  #Creating the ndarrays in the correct shapes for test data  
  test_original_img = np.ndarray(shape=(n_test,wanted_height,wanted_width,3), dtype=np.float32)

  test_original_mask = np.ndarray(shape=(n_test,wanted_height,wanted_width,1), dtype=np.float32)
  test16_mask = np.ndarray(shape=(n_test,wanted_height//16,wanted_width//16,1), dtype=np.float32)
  test8_mask = np.ndarray(shape=(n_test,wanted_height//8,wanted_width//8,1), dtype=np.float32)
  test4_mask = np.ndarray(shape=(n_test,wanted_height//4,wanted_width//4,1), dtype=np.float32)

  #Loading the data into the arrays
  count=0
  for datapoint in dataset['test']:
    img_orig, mask_orig = load_image_test(datapoint, wanted_height, wanted_width)
    test_original_img[count]=(img_orig)
    test_original_mask[count]=(mask_orig)

    img16, mask16 = resize_image16(img_orig, mask_orig, wanted_height, wanted_width)
    test16_mask[count]=(mask16)
    #test16_img[count]=(img16)

    img8, mask8 = resize_image8(img_orig, mask_orig, wanted_height, wanted_width)
    test8_mask[count]=(mask8)
    #test8_img[count]=(img8)

    img4, mask4 = resize_image4(img_orig, mask_orig, wanted_height, wanted_width)
    test4_mask[count]=(mask4)
    #test4_img[count]=(img4)
    count+=1

  print(train_original_img)
  train_dataset = tf.data.Dataset.from_tensor_slices((train_original_img, {'CC_1': train16_mask, 'CC_2': train8_mask, 'CC_fin': train4_mask, 'final_output': train_original_mask}))
  orig_test_dataset = tf.data.Dataset.from_tensor_slices((test_original_img, {'CC_1': test16_mask, 'CC_2': test8_mask, 'CC_fin': test4_mask, 'final_output': test_original_mask}))
  #train_dataset = train_dataset.cache().shuffle(BUFFER_SIZE).batch(BATCH_SIZE).repeat()
  #train_dataset.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
  #test_dataset = orig_test_dataset.batch(BATCH_SIZE)

  return train_dataset, orig_test_dataset, train_original_mask[0], train_original_img[0], n_train, n_test

Running and loading the functions to create and save the transformed data.

train_dataset, orig_test_dataset, sample_mask, sample_image ,n_train,n_test = create_datasets(128,128, 64, 1000)
train_dataset.cache()

Defining the function for displaying images and the model's predictions jointly.

def display(display_list):
  plt.figure(figsize=(15, 15))

  title = ['Input Image', 'True Mask', 'Predicted Mask']

  for i in range(len(display_list)):
    plt.subplot(1, len(display_list), i+1)
    plt.title(title[i])
    plt.imshow(tf.keras.preprocessing.image.array_to_img(display_list[i]))
    plt.axis('off')
  plt.show()


sample_image, sample_mask = sample_image, sample_mask
display([sample_image, sample_mask])

Defining the functions needed for the PSPNet module.

# Function for the pooling module which takes the output of ResNet50 as input as well as its width and height and pool it with a factor.
def pool_block(cur_tensor,
               image_width,
               image_height,
               pooling_factor,
               activation):

  strides = [int(np.round(float(image_width)/pooling_factor)),
            int(np.round(float(image_height)/pooling_factor))]
  pooling_size = strides
  x = AveragePooling2D(pooling_size, strides=strides, padding='same')(cur_tensor)
  x = Conv2D(128,(1,1),padding='same')(x)
  x = BatchNormalization()(x)
  x = Activation(activation)(x)
  x = tf.keras.layers.experimental.preprocessing.Resizing(
    image_height, image_width, interpolation="bilinear")(x) # Resizing images to correct shape for future concat
  return x

# Function for formatting the resnet model to a modified one which takes advantage of dilation rates instead of strides in the final blocks.

def modify_ResNet_Dilation(model):
  for i in range(0,4):
    model.get_layer('conv4_block1_{}_conv'.format(i)).strides = 1
    model.get_layer('conv4_block1_{}_conv'.format(i)).dilation_rate = 2
    model.get_layer('conv5_block1_{}_conv'.format(i)).strides = 1
    model.get_layer('conv5_block1_{}_conv'.format(i)).dilation_rate = 4
  model.save('/tmp/my_model')
  new_model = tf.keras.models.load_model('/tmp/my_model')
  return new_model


# Function for creating the PSPNet model. The inputs is the number of classes to classify, number of filters to use, kernel_size, activation function,
# input image width and height and a boolean for knowing if the module is part of the ICNet or not.
def PSPNet(n_classes: int,
           n_filters: int,
           kernel_size: tuple,
           activation: str,
           image_width: int,
           image_height: int,
           isICNet: bool = False,
           dropout: bool = True,
           bn: bool = True
          ):
  if isICNet:
    input_shape=(None, None, 3)
  else:
    input_shape=(image_height,image_width,3)
  encoder=ResNet50(include_top=False, weights='imagenet', input_shape=input_shape)
  encoder=modify_ResNet_Dilation(encoder)
  #encoder.trainable=False
  resnet_output=encoder.output
  pooling_layer=[]
  pooling_layer.append(resnet_output)
  output=(resnet_output)
  h = image_height//8
  w = image_width//8
  for i in [1,2,3,6]:
    pool = pool_block(output, h, w, i, activation)
    pooling_layer.append(pool)
  concat=Concatenate()(pooling_layer)
  output_layer=Conv2D(filters=n_classes, kernel_size=(1,1), padding='same')(concat)
  final_layer=UpSampling2D(size=(8,8), data_format='channels_last', interpolation='bilinear')(output_layer)
  final_model=tf.keras.models.Model(inputs=encoder.input, outputs=final_layer)
  return final_model

#model = PSPNet(3, 16, (3,3), 'relu', 128,128)

Defining the functions needed for the ICNet.

# Function for adding stage 4 and 5 of ResNet50 to the 1/4 image size branch of the ICNet.
def PSP_rest(input_prev: tf.Tensor):

  y_ = input_prev
  #Stage 4
  #Conv_Block
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block1_conv1')(y_)
  y = BatchNormalization(name='C4_block1_bn1')(y)
  y = Activation('relu', name='C4_block1_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block1_conv2')(y)
  y = BatchNormalization(name='C4_block1_bn2')(y)
  y = Activation('relu', name='C4_block1_act2')(y)
  y_ = Conv2D(1024, 1, dilation_rate=2, padding='same', name='C4_block1_conv0')(y_)
  y = Conv2D(1024, 1, dilation_rate=2, padding='same', name='C4_block1_conv3')(y)
  y_ = BatchNormalization(name='C4_block1_bn0')(y_)
  y = BatchNormalization(name='C4_block1_bn3')(y)
  y = Add(name='C4_skip1')([y_,y])
  y_ = Activation('relu', name='C4_block1_act3')(y)
  #IDBLOCK1
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block2_conv1')(y_)
  y = BatchNormalization(name='C4_block2_bn1')(y)
  y = Activation('relu', name='C4_block2_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block2_conv2')(y)
  y = BatchNormalization(name='C4_block2_bn2')(y)
  y = Activation('relu', name='C4_block2_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block2_conv3')(y)
  y = BatchNormalization(name='C4_block2_bn3')(y)
  y = Add(name='C4_skip2')([y_,y])
  y_ = Activation('relu', name='C4_block2_act3')(y)
  #IDBLOCK2
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block3_conv1')(y_)
  y = BatchNormalization(name='C4_block3_bn1')(y)
  y = Activation('relu', name='C4_block3_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block3_conv2')(y)
  y = BatchNormalization(name='C4_block3_bn2')(y)
  y = Activation('relu', name='C4_block3_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block3_conv3')(y)
  y = BatchNormalization(name='C4_block3_bn3')(y)
  y = Add(name='C4_skip3')([y_,y])
  y_ = Activation('relu', name='C4_block3_act3')(y)
  #IDBlock3
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block4_conv1')(y_)
  y = BatchNormalization(name='C4_block4_bn1')(y)
  y = Activation('relu', name='C4_block4_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block4_conv2')(y)
  y = BatchNormalization(name='C4_block4_bn2')(y)
  y = Activation('relu', name='C4_block4_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block4_conv3')(y)
  y = BatchNormalization(name='C4_block4_bn3')(y)
  y = Add(name='C4_skip4')([y_,y])
  y_ = Activation('relu', name='C4_block4_act3')(y)
  #ID4
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block5_conv1')(y_)
  y = BatchNormalization(name='C4_block5_bn1')(y)
  y = Activation('relu', name='C4_block5_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block5_conv2')(y)
  y = BatchNormalization(name='C4_block5_bn2')(y)
  y = Activation('relu', name='C4_block5_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block5_conv3')(y)
  y = BatchNormalization(name='C4_block5_bn3')(y)
  y = Add(name='C4_skip5')([y_,y])
  y_ = Activation('relu', name='C4_block5_act3')(y)
  #ID5
  y = Conv2D(256, 1, dilation_rate=2, padding='same', name='C4_block6_conv1')(y_)
  y = BatchNormalization(name='C4_block6_bn1')(y)
  y = Activation('relu', name='C4_block6_act1')(y)
  y = Conv2D(256, 3, dilation_rate=2, padding='same', name='C4_block6_conv2')(y)
  y = BatchNormalization(name='C4_block6_bn2')(y)
  y = Activation('relu', name='C4_block6_act2')(y)
  y = Conv2D(1024,1, dilation_rate=2, padding='same', name='C4_block6_conv3')(y)
  y = BatchNormalization(name='C4_block6_bn3')(y)
  y = Add(name='C4_skip6')([y_,y])
  y_ = Activation('relu', name='C4_block6_act3')(y)

  #Stage 5
  #Conv
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block1_conv1')(y_)
  y = BatchNormalization(name='C5_block1_bn1')(y)
  y = Activation('relu', name='C5_block1_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block1_conv2')(y)
  y = BatchNormalization(name='C5_block1_bn2')(y)
  y = Activation('relu', name='C5_block1_act2')(y)
  y_ = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block1_conv0')(y_)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block1_conv3')(y)
  y_ = BatchNormalization(name='C5_block1_bn0')(y_)
  y = BatchNormalization(name='C5_block1_bn3')(y)
  y = Add(name='C5_skip1')([y_,y])
  y_ = Activation('relu', name='C5_block1_act3')(y)

  #ID
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block2_conv1')(y_)
  y = BatchNormalization(name='C5_block2_bn1')(y)
  y = Activation('relu', name='C5_block2_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block2_conv2')(y)
  y = BatchNormalization(name='C5_block2_bn2')(y)
  y = Activation('relu', name='C5_block2_act2')(y)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block2_conv3')(y)
  y = BatchNormalization(name='C5_block2_bn3')(y)
  y = Add(name='C5_skip2')([y_,y])
  y_ = Activation('relu', name='C5_block2_act3')(y)

  #ID
  y = Conv2D(512, 1, dilation_rate=4,padding='same', name='C5_block3_conv1')(y_)
  y = BatchNormalization(name='C5_block3_bn1')(y)
  y = Activation('relu', name='C5_block3_act1')(y)
  y = Conv2D(512, 3, dilation_rate=4,padding='same', name='C5_block3_conv2')(y)
  y = BatchNormalization(name='C5_block3_bn2')(y)
  y = Activation('relu', name='C5_block3_act2')(y)
  y = Conv2D(2048, 1, dilation_rate=4,padding='same', name='C5_block3_conv3')(y)
  y = BatchNormalization(name='C5_block3_bn3')(y)
  y = Add(name='C5_skip3')([y_,y])
  y_ = Activation('relu', name='C5_block3_act3')(y)

  return(y_)

# Function for the CFF module in the ICNet architecture. The inputs are which stage (1 or 2), the output from the smaller branch, the output from the
# larger branch, n_classes and the width and height of the output of the smaller branch.
def CFF(stage: int, F_small, F_large, n_classes: int, input_width_small: int, input_height_small: int):
  F_up = tf.keras.layers.experimental.preprocessing.Resizing(int(input_width_small*2), int(input_height_small*2), interpolation="bilinear", name="Upsample_x2_small_{}".format(stage))(F_small)
  F_aux = Conv2D(n_classes, 1, name="CC_{}".format(stage), activation='softmax')(F_up)
  intermediate_f_small = Conv2D(128, 3, dilation_rate=2, padding='same', name="intermediate_f_small_{}".format(stage))(F_up)
  intermediate_f_small_bn = BatchNormalization(name="intermediate_f_small_bn_{}".format(stage))(intermediate_f_small)
  intermediate_f_large = Conv2D(128, 1, padding='same', name="intermediate_f_large_{}".format(stage))(F_large)
  intermediate_f_large_bn = BatchNormalization(name="intermediate_f_large_bn_{}".format(stage))(intermediate_f_large)
  intermediate_f_sum = Add(name="add_intermediates_{}".format(stage))([intermediate_f_small_bn,intermediate_f_large_bn])
  intermediate_f_relu = Activation('relu', name="activation_CFF_{}".format(stage))(intermediate_f_sum)
  return F_aux, intermediate_f_relu

# Function for the high-res branch of ICNet where image is in scale 1:1. The inputs are the input image, number of filters, kernel size and desired activation function.
def ICNet_1(input_obj,
           n_filters: int,
           kernel_size: tuple,
           activation: str):
  temp=input_obj
  for i in range(1,4):
    conv1=Conv2D(filters=n_filters*2*i, kernel_size=kernel_size, strides=(2,2), padding='same')(temp)
    batch_norm1=BatchNormalization()(conv1)
    temp=Activation(activation)(batch_norm1)
  return temp  

# Function for creating the ICNet model. The inputs are the width and height of the images to be used by the model, number of classes, number of filters, kernel size and
# desired activation function.
def ICNet(image_width: int,
         image_height: int,
         n_classes: int,
         n_filters: int = 16,
         kernel_size: tuple = (3,3),
         activation: str = 'relu'):
  input_shape=[image_width,image_height,3]
  input_obj = tf.keras.Input(shape=input_shape, name="input_img_1")
  input_obj_4 = tf.keras.layers.experimental.preprocessing.Resizing(
    image_width//4, image_height//4, interpolation="bilinear", name="input_img_4")(input_obj)
  input_obj_2 = tf.keras.layers.experimental.preprocessing.Resizing(
    image_width//2, image_height//2, interpolation="bilinear", name="input_img_2")(input_obj)
  ICNet_Model1=ICNet_1(input_obj, n_filters, kernel_size, activation)
  PSPModel = PSPNet(n_classes, n_filters, kernel_size, activation, image_width//4, image_height//4, True)
  last_layer = PSPModel.get_layer('conv4_block3_out').output
  PSPModel_2_4 = tf.keras.models.Model(inputs=PSPModel.input, outputs=last_layer, name="JointResNet_2_4")
  ICNet_Model4 = PSPModel_2_4(input_obj_4)
  ICNet_Model2 = PSPModel_2_4(input_obj_2)
  ICNet_4_rest = PSP_rest(ICNet_Model4)
  out1, last_layer = CFF(1, ICNet_4_rest, ICNet_Model2, n_classes, image_width//32, image_height//32)
  out2, last_layer = CFF(2, last_layer, ICNet_Model1, n_classes, image_width//16, image_height//16)
  upsample_2 = UpSampling2D(2, interpolation='bilinear', name="Upsampling_final_prediction")(last_layer)
  output = Conv2D(n_classes, 1, name="CC_fin", activation='softmax')(upsample_2)
  final_output = UpSampling2D(4, interpolation='bilinear', name='final_output')(output)
  final_model = tf.keras.models.Model(inputs=input_obj, outputs=[out1, out2, output, final_output])
  return final_model

Let's call the ICNet function to create the model with input shape (128, 128, 3) and 3 classes with the standard values for number of filters, kernel size and activation function.

Below, the functions for displaying the predictions from the model against the true image are defined.

# Function for creating the predicted image. It takes the max value between the classes and assigns the correct class label to the image, thus creating a predicted mask.
def create_mask(pred_mask):
  pred_mask = tf.argmax(pred_mask, axis=-1)
  pred_mask = pred_mask[..., tf.newaxis]
  return pred_mask[0]

# Function for showing the model prediction. Output can be 0, 1 or 2 depending on if you want to see the low resolution, medium resolution or high resolution prediction respectively.
def show_predictions(dataset=None, num=1, output=3):
  if dataset:
    for image, mask in dataset.take(num):
      pred_mask = model.predict(image[tf.newaxis,...])[output]
      display([image, mask['final_output'], create_mask(pred_mask)])
  else:
    display([sample_image, sample_mask,
             create_mask(model.predict(sample_image[tf.newaxis, ...])[output])])

show_predictions()

Let's define the variables needed for training the model.

TRAIN_LENGTH = n_train
BATCH_SIZE = 64
BUFFER_SIZE = 1000
STEPS_PER_EPOCH = TRAIN_LENGTH // BATCH_SIZE

EPOCHS = 100
VAL_SUBSPLITS = 5
VALIDATION_STEPS = n_test//BATCH_SIZE//VAL_SUBSPLITS

MLFlow is initialized to keep track of the experiments.

mlflow.tensorflow.autolog(every_n_iter=1)

We create a callback for early stopping to prevent overfitting.

early_stopping = tf.keras.callbacks.EarlyStopping(
    monitor='val_final_output_loss', patience=4, verbose=0
)

Finally, we fit the model to the Oxford dataset.

def create_batch_size(batch_size):
  train_dataset_temp = train_dataset.shuffle(BUFFER_SIZE).batch(batch_size).repeat()
  train_dataset_temp.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
  test_dataset = orig_test_dataset.batch(params['batch_size'])
def train(params):

  VALIDATION_STEPS = n_test//params['batch_size']//VAL_SUBSPLITS
  STEPS_PER_EPOCH = TRAIN_LENGTH // params['batch_size']
  """
  An example train method that calls into HorovodRunner.
  This method is passed to hyperopt.fmin().

  :param params: hyperparameters. Its structure is consistent with how search space is defined. See below.
  :return: dict with fields 'loss' (scalar loss) and 'status' (success/failure status of run)
  """
  model=ICNet(128,128,3)
  model.compile(optimizer=tfa.optimizers.AdamW(learning_rate=params['learning_rate'], weight_decay=0.0001),
              loss=tf.keras.losses.SparseCategoricalCrossentropy(), loss_weights=[0.4,0.4,1,0],
              metrics="acc")

  train_dataset_temp = train_dataset
  test_dataset = orig_test_dataset

  model_history =  model.fit(train_dataset_temp, epochs=EPOCHS, steps_per_epoch=STEPS_PER_EPOCH, validation_steps=VALIDATION_STEPS, validation_data=test_dataset, callbacks=[early_stopping])
  loss = model.evaluate(orig_test_dataset, steps=VALIDATION_STEPS)[4]
  model, train_dataset_temp, test_dataset, model_history = None, None, None, None
  tf.keras.backend.clear_session()
  return {'loss': loss, 'status': STATUS_OK}
import numpy as np
space = {
  'learning_rate': hp.loguniform('learning_rate', np.log(1e-4), np.log(1e-1)),
  'batch_size': hp.choice('batch_size', [32, 64, 128]),
}
import mlflow.tensorflow
algo=tpe.suggest

mlflow.tensorflow.autolog(every_n_iter=1)
best_param = fmin(
  fn=train,
  space=space,
  algo=algo,
  max_evals=8,
  return_argmin=False,
)

print(best_param)

Without Spark Trials: 1 hour

We visualize the accuracies and losses through the library matplotlib.

loss = model_history.history['loss']
acc = model_history.history['final_output_acc']
val_loss = model_history.history['val_loss']
val_loss1 = model_history.history['val_CC_1_loss']
val_loss2 = model_history.history['val_CC_2_loss']
val_loss3 = model_history.history['val_CC_fin_loss']
val_loss4 = model_history.history['val_final_output_loss']
val_acc1 = model_history.history['val_CC_1_acc']
val_acc2 = model_history.history['val_CC_2_acc']
val_acc3 = model_history.history['val_CC_fin_acc']
val_acc4 = model_history.history['val_final_output_acc']

epochs = range(16)

plt.figure(figsize=(20,3))
plt.subplot(1,4,1)
plt.plot(epochs, loss, 'r', label='Training loss')
plt.plot(epochs, val_loss, 'b', label='Validation loss')
plt.title('Training and Validation Loss')
plt.xlabel('Epoch')
plt.ylabel('Loss Value')
plt.legend()
plt.subplot(1,4,2)
plt.plot(epochs, acc, 'r', label="Training accuracy")
plt.plot(epochs, val_acc4, 'b', label="Validation accuracy")
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.legend()
plt.subplot(1,4,3)
plt.plot(epochs, val_loss1, 'b', label="Loss output 1")
plt.plot(epochs, val_loss2, 'g', label="Loss output 2")
plt.plot(epochs, val_loss3, 'y', label="Loss output 3")
plt.plot(epochs, val_loss4, 'y', label="Loss output 4")
plt.legend()
plt.subplot(1,4,4)
plt.plot(epochs, val_acc1, 'b', label="Acc output 1")
plt.plot(epochs, val_acc2, 'g', label="Acc output 2")
plt.plot(epochs, val_acc3, 'y', label="Acc output 3")
plt.plot(epochs, val_acc4, 'y', label="Acc output 4")
plt.legend()
plt.show()

Finally, we visualize some predictions on the test dataset.