41. Coronavirus Data Modeling#
41.1. Background#
From Wikipedia…
“The 2019–20 coronavirus pandemic is an ongoing global pandemic of coronavirus disease 2019 (COVID-19) caused by the severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). The virus was first reported in Wuhan, Hubei, China, in December 2019.[5][6] On March 11, 2020, the World Health Organization declared the outbreak a pandemic.[7] As of March 12, 2020, over 134,000 cases have been confirmed in more than 120 countries and territories, with major outbreaks in mainland China, Italy, South Korea, and Iran.[3] Around 5,000 people, with about 3200 from China, have died from the disease. More than 69,000 have recovered.[4]
The virus spreads between people in a way similar to influenza, via respiratory droplets from coughing.[8][9][10] The time between exposure and symptom onset is typically five days, but may range from two to fourteen days.[10][11] Symptoms are most often fever, cough, and shortness of breath.[10][11] Complications may include pneumonia and acute respiratory distress syndrome. There is currently no vaccine or specific antiviral treatment, but research is ongoing. Efforts are aimed at managing symptoms and supportive therapy. Recommended preventive measures include handwashing, maintaining distance from other people (particularly those who are sick), and monitoring and self-isolation for fourteen days for people who suspect they are infected.[9][10][12]
Public health responses around the world have included travel restrictions, quarantines, curfews, event cancellations, and school closures. They have included the quarantine of all of Italy and the Chinese province of Hubei; various curfew measures in China and South Korea;[13][14][15] screening methods at airports and train stations;[16] and travel advisories regarding regions with community transmission.[17][18][19][20] Schools have closed nationwide in 22 countries or locally in 17 countries, affecting more than 370 million students.[21]”
https://en.wikipedia.org/wiki/2019–20_coronavirus_pandemic
For ADDITIONAL BACKGROUND, see JHU’s COVID-19 Resource Center: https://coronavirus.jhu.edu/
#RPI IDEA
Check out these resources that IDEA has put together.
41.2. The Assignment#
Our lives have been seriously disrupted by the coronavirus pandemic, and there is every indication that this is going to be a global event which requires colloration in a global community to solve. Studying the data provides an opportunity to connect the pandemic to the variety of themes from the class.
A number of folks have already been examining this data. https://ourworldindata.org/coronavirus-source-data
Discussion. What is the role of open data? Why is it important in this case?
What is the role of bias in the data? Identify 2 different ways that the data could be biased.
#Load some data
import pandas as pd
df=pd.read_csv('https://github.com/CSSEGISandData/COVID-19/raw/master/csse_covid_19_data/csse_covid_19_daily_reports/10-21-2020.csv')
df
FIPS | Admin2 | Province_State | Country_Region | Last_Update | Lat | Long_ | Confirmed | Deaths | Recovered | Active | Combined_Key | Incidence_Rate | Case-Fatality_Ratio | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | NaN | NaN | NaN | Afghanistan | 2020-10-22 04:24:27 | 33.939110 | 67.709953 | 40510 | 1501 | 33824 | 5185.0 | Afghanistan | 104.063001 | 3.705258 |
1 | NaN | NaN | NaN | Albania | 2020-10-22 04:24:27 | 41.153300 | 20.168300 | 17948 | 462 | 10341 | 7145.0 | Albania | 623.670860 | 2.574103 |
2 | NaN | NaN | NaN | Algeria | 2020-10-22 04:24:27 | 28.033900 | 1.659600 | 55081 | 1880 | 38482 | 14719.0 | Algeria | 125.609327 | 3.413155 |
3 | NaN | NaN | NaN | Andorra | 2020-10-22 04:24:27 | 42.506300 | 1.521800 | 3811 | 63 | 2470 | 1278.0 | Andorra | 4932.375591 | 1.653109 |
4 | NaN | NaN | NaN | Angola | 2020-10-22 04:24:27 | -11.202700 | 17.873900 | 8338 | 255 | 3040 | 5043.0 | Angola | 25.369476 | 3.058287 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
3953 | NaN | NaN | NaN | West Bank and Gaza | 2020-10-22 04:24:27 | 31.952200 | 35.233200 | 48628 | 427 | 41935 | 6266.0 | West Bank and Gaza | 953.225536 | 0.878095 |
3954 | NaN | NaN | NaN | Western Sahara | 2020-10-22 04:24:27 | 24.215500 | -12.885800 | 10 | 1 | 8 | 1.0 | Western Sahara | 1.674116 | 10.000000 |
3955 | NaN | NaN | NaN | Yemen | 2020-10-22 04:24:27 | 15.552727 | 48.516388 | 2057 | 597 | 1344 | 116.0 | Yemen | 6.896675 | 29.022849 |
3956 | NaN | NaN | NaN | Zambia | 2020-10-22 04:24:27 | -13.133897 | 27.849332 | 16000 | 346 | 15168 | 486.0 | Zambia | 87.032410 | 2.162500 |
3957 | NaN | NaN | NaN | Zimbabwe | 2020-10-22 04:24:27 | -19.015438 | 29.154857 | 8215 | 236 | 7725 | 254.0 | Zimbabwe | 55.271751 | 2.872794 |
3958 rows × 14 columns
41.3. Preprocessing#
We have to deal with missing values first.
First let’s check the missing values for each column.
df.isnull().sum()
FIPS 697
Admin2 692
Province_State 169
Country_Region 0
Last_Update 0
Lat 81
Long_ 81
Confirmed 0
Deaths 0
Recovered 0
Active 3
Combined_Key 0
Incidence_Rate 81
Case-Fatality_Ratio 43
dtype: int64
df.loc[df['Province_State'].isnull(),:]
FIPS | Admin2 | Province_State | Country_Region | Last_Update | Lat | Long_ | Confirmed | Deaths | Recovered | Active | Combined_Key | Incidence_Rate | Case-Fatality_Ratio | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | NaN | NaN | NaN | Afghanistan | 2020-10-22 04:24:27 | 33.939110 | 67.709953 | 40510 | 1501 | 33824 | 5185.0 | Afghanistan | 104.063001 | 3.705258 |
1 | NaN | NaN | NaN | Albania | 2020-10-22 04:24:27 | 41.153300 | 20.168300 | 17948 | 462 | 10341 | 7145.0 | Albania | 623.670860 | 2.574103 |
2 | NaN | NaN | NaN | Algeria | 2020-10-22 04:24:27 | 28.033900 | 1.659600 | 55081 | 1880 | 38482 | 14719.0 | Algeria | 125.609327 | 3.413155 |
3 | NaN | NaN | NaN | Andorra | 2020-10-22 04:24:27 | 42.506300 | 1.521800 | 3811 | 63 | 2470 | 1278.0 | Andorra | 4932.375591 | 1.653109 |
4 | NaN | NaN | NaN | Angola | 2020-10-22 04:24:27 | -11.202700 | 17.873900 | 8338 | 255 | 3040 | 5043.0 | Angola | 25.369476 | 3.058287 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
3953 | NaN | NaN | NaN | West Bank and Gaza | 2020-10-22 04:24:27 | 31.952200 | 35.233200 | 48628 | 427 | 41935 | 6266.0 | West Bank and Gaza | 953.225536 | 0.878095 |
3954 | NaN | NaN | NaN | Western Sahara | 2020-10-22 04:24:27 | 24.215500 | -12.885800 | 10 | 1 | 8 | 1.0 | Western Sahara | 1.674116 | 10.000000 |
3955 | NaN | NaN | NaN | Yemen | 2020-10-22 04:24:27 | 15.552727 | 48.516388 | 2057 | 597 | 1344 | 116.0 | Yemen | 6.896675 | 29.022849 |
3956 | NaN | NaN | NaN | Zambia | 2020-10-22 04:24:27 | -13.133897 | 27.849332 | 16000 | 346 | 15168 | 486.0 | Zambia | 87.032410 | 2.162500 |
3957 | NaN | NaN | NaN | Zimbabwe | 2020-10-22 04:24:27 | -19.015438 | 29.154857 | 8215 | 236 | 7725 | 254.0 | Zimbabwe | 55.271751 | 2.872794 |
169 rows × 14 columns
df.loc[df['Province_State'].notnull(),:]
FIPS | Admin2 | Province_State | Country_Region | Last_Update | Lat | Long_ | Confirmed | Deaths | Recovered | Active | Combined_Key | Incidence_Rate | Case-Fatality_Ratio | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
8 | NaN | NaN | Australian Capital Territory | Australia | 2020-10-22 04:24:27 | -35.4735 | 149.0124 | 114 | 3 | 110 | 1.0 | Australian Capital Territory, Australia | 26.629292 | 2.631579 |
9 | NaN | NaN | New South Wales | Australia | 2020-10-22 04:24:27 | -33.8688 | 151.2093 | 4363 | 53 | 3141 | 1169.0 | New South Wales, Australia | 53.744765 | 1.214760 |
10 | NaN | NaN | Northern Territory | Australia | 2020-10-22 04:24:27 | -12.4634 | 130.8456 | 33 | 0 | 33 | 0.0 | Northern Territory, Australia | 13.436482 | 0.000000 |
11 | NaN | NaN | Queensland | Australia | 2020-10-22 04:24:27 | -27.4698 | 153.0251 | 1165 | 6 | 1155 | 4.0 | Queensland, Australia | 22.773922 | 0.515021 |
12 | NaN | NaN | South Australia | Australia | 2020-10-22 04:24:27 | -34.9285 | 138.6007 | 485 | 4 | 473 | 8.0 | South Australia, Australia | 27.611728 | 0.824742 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
3944 | NaN | NaN | Northern Ireland | United Kingdom | 2020-10-22 04:24:27 | 54.7877 | -6.4923 | 29992 | 629 | 0 | 29363.0 | Northern Ireland, United Kingdom | 1593.962585 | 2.097226 |
3945 | NaN | NaN | Scotland | United Kingdom | 2020-10-22 04:24:27 | 56.4907 | -4.2026 | 50903 | 2653 | 0 | 48250.0 | Scotland, United Kingdom | 931.726246 | 5.211874 |
3946 | NaN | NaN | Turks and Caicos Islands | United Kingdom | 2020-10-22 04:24:27 | 21.6940 | -71.7979 | 698 | 6 | 689 | 3.0 | Turks and Caicos Islands, United Kingdom | 1802.779069 | 0.859599 |
3947 | NaN | NaN | Unknown | United Kingdom | 2020-10-22 04:24:27 | NaN | NaN | 0 | 0 | 0 | 0.0 | Unknown, United Kingdom | NaN | NaN |
3948 | NaN | NaN | Wales | United Kingdom | 2020-10-22 04:24:27 | 52.1307 | -3.7837 | 38361 | 1736 | 0 | 36625.0 | Wales, United Kingdom | 1222.232843 | 4.525429 |
3789 rows × 14 columns
41.4. Missing Values and data#
How might we deal with missing values? How is the data structured such that aggregation might be relevant.
#Note the country is then the index here.
country=pd.pivot_table(df, values=['Confirmed', 'Deaths', 'Recovered'], index='Country_Region', aggfunc='sum')
country
Confirmed | Deaths | Recovered | |
---|---|---|---|
Country_Region | |||
Afghanistan | 40510 | 1501 | 33824 |
Albania | 17948 | 462 | 10341 |
Algeria | 55081 | 1880 | 38482 |
Andorra | 3811 | 63 | 2470 |
Angola | 8338 | 255 | 3040 |
... | ... | ... | ... |
West Bank and Gaza | 48628 | 427 | 41935 |
Western Sahara | 10 | 1 | 8 |
Yemen | 2057 | 597 | 1344 |
Zambia | 16000 | 346 | 15168 |
Zimbabwe | 8215 | 236 | 7725 |
189 rows × 3 columns
41.5. Clustering#
Here is and example of the elbow method, which is used to understand the number of clusters.
https://scikit-learn.org/stable/modules/clustering.html#k-means
The K-means algorithm aims to choose centroids that minimise the inertia, or within-cluster sum-of-squares criterion.
By looking at the total inertia at different numbers of clusters, we can get an idea of the appropriate number of clusters.
#This indicates the
from sklearn.cluster import KMeans
sum_sq = {}
for k in range(1,30):
kmeans = KMeans(n_clusters = k).fit(country)
# Inertia: Sum of distances of samples to their closest cluster center
sum_sq[k] = kmeans.inertia_
#ineria at different levels of K
sum_sq
{1: 240200523742595.03,
2: 26118277525526.312,
3: 16121977356352.586,
4: 9790709951044.086,
5: 4452358099978.585,
6: 2142071723858.3994,
7: 1302665996377.292,
8: 807981658417.6555,
9: 478991735848.45557,
10: 377405453788.2289,
11: 307152747322.0111,
12: 245677659711.38748,
13: 189518387573.89166,
14: 149438125618.776,
15: 120686764650.91898,
16: 98334335773.64725,
17: 81825024570.2655,
18: 68432527611.26552,
19: 56394991824.24425,
20: 49709594818.66223,
21: 46165271732.27986,
22: 39720129392.78972,
23: 34291438369.473236,
24: 30241197922.729294,
25: 26642803384.44824,
26: 24316546754.258953,
27: 21778298754.866142,
28: 19306461700.0672,
29: 17073793380.731209}
41.6. The Elbow Method#
Not a type of criteria like p<0.05, but the elbow method you look for where the change in the variance explained from adding more clusters drops extensively.
# plot elbow graph
import matplotlib
from matplotlib import pyplot as plt
plt.plot(list(sum_sq.keys()),
list(sum_sq.values()),
linestyle = '-',
marker = 'H',
markersize = 2,
markerfacecolor = 'red')
[<matplotlib.lines.Line2D at 0x7fa2bc952b10>]
41.7. Looks like we can justify 5 clusters.#
See how adding the 5th doesn’t really impact the total variance as much? It might be interesting to do the analysis both at 4 and 5 and try to interpret.
kmeans = KMeans(n_clusters=5)
kmeans.fit(country)
country['y_kmeans'] = kmeans.predict(country)
41.8. Looks like they are mostly 0s. Let’s merge our data back together so we could get a clearer picture.#
loc=pd.pivot_table(df, values=['Lat','Long_'], index='Country_Region', aggfunc='mean')
#loc['cluster']=y_kmeans
loc
Lat | Long_ | |
---|---|---|
Country_Region | ||
Afghanistan | 33.939110 | 67.709953 |
Albania | 41.153300 | 20.168300 |
Algeria | 28.033900 | 1.659600 |
Andorra | 42.506300 | 1.521800 |
Angola | -11.202700 | 17.873900 |
... | ... | ... |
West Bank and Gaza | 31.952200 | 35.233200 |
Western Sahara | 24.215500 | -12.885800 |
Yemen | 15.552727 | 48.516388 |
Zambia | -13.133897 | 27.849332 |
Zimbabwe | -19.015438 | 29.154857 |
187 rows × 2 columns
alldata=country.merge(loc, left_index=True, right_index=True)
#join in our dataframes
alldata.to_csv("alldata.csv")
alldata
Confirmed | Deaths | Recovered | y_kmeans | Lat | Long_ | |
---|---|---|---|---|---|---|
Country_Region | ||||||
Afghanistan | 40510 | 1501 | 33824 | 0 | 33.939110 | 67.709953 |
Albania | 17948 | 462 | 10341 | 0 | 41.153300 | 20.168300 |
Algeria | 55081 | 1880 | 38482 | 0 | 28.033900 | 1.659600 |
Andorra | 3811 | 63 | 2470 | 0 | 42.506300 | 1.521800 |
Angola | 8338 | 255 | 3040 | 0 | -11.202700 | 17.873900 |
... | ... | ... | ... | ... | ... | ... |
West Bank and Gaza | 48628 | 427 | 41935 | 0 | 31.952200 | 35.233200 |
Western Sahara | 10 | 1 | 8 | 0 | 24.215500 | -12.885800 |
Yemen | 2057 | 597 | 1344 | 0 | 15.552727 | 48.516388 |
Zambia | 16000 | 346 | 15168 | 0 | -13.133897 | 27.849332 |
Zimbabwe | 8215 | 236 | 7725 | 0 | -19.015438 | 29.154857 |
187 rows × 6 columns
#Alldata
from google.colab import files
files.download("alldata.csv")
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-27-34a6095d693a> in <module>
1 #Alldata
----> 2 from google.colab import files
3 files.download("alldata.csv")
ModuleNotFoundError: No module named 'google.colab'
alldata.sort_values('cluster', inplace=True)
#How do we interpret our clusters?
alldata[alldata.cluster!=0]
Confirmed | Deaths | Recovered | Latitude | Longitude | cluster | |
---|---|---|---|---|---|---|
Country/Region | ||||||
China | 81397 | 3265 | 72362 | 32.729748 | 111.684242 | 1 |
Germany | 24873 | 94 | 266 | 51.165700 | 10.451500 | 2 |
US | 33276 | 417 | 178 | 38.112296 | -84.664082 | 2 |
France | 16044 | 674 | 2200 | 3.320689 | -13.517378 | 2 |
Iran | 21638 | 1685 | 7931 | 32.427900 | 53.688000 | 2 |
Spain | 28768 | 1772 | 2575 | 40.463700 | -3.749200 | 2 |
Italy | 59138 | 5476 | 7024 | 41.871900 | 12.567400 | 3 |
#Details
pd.set_option('display.max_rows', 500) #this allows us to see all rows.
alldata[alldata.cluster==0]
Confirmed | Deaths | Recovered | Latitude | Longitude | cluster | |
---|---|---|---|---|---|---|
Country/Region | ||||||
Afghanistan | 40 | 1 | 1 | 33.939100 | 67.710000 | 0 |
Albania | 89 | 2 | 2 | 41.153300 | 20.168300 | 0 |
Algeria | 201 | 17 | 65 | 28.033900 | 1.659600 | 0 |
Andorra | 113 | 1 | 1 | 42.506300 | 1.521800 | 0 |
Angola | 2 | 0 | 0 | -11.202700 | 17.873900 | 0 |
Antigua and Barbuda | 1 | 0 | 0 | 17.060800 | -61.796400 | 0 |
Argentina | 225 | 4 | 3 | -38.416100 | -63.616700 | 0 |
Armenia | 194 | 0 | 2 | 40.069100 | 45.038200 | 0 |
Australia | 1314 | 7 | 88 | -24.502867 | 141.055589 | 0 |
Austria | 3244 | 16 | 9 | 47.516200 | 14.550100 | 0 |
Azerbaijan | 65 | 1 | 10 | 40.143100 | 47.576900 | 0 |
Bahamas, The | 4 | 0 | 0 | 25.034300 | -77.396300 | 0 |
Bahrain | 332 | 2 | 149 | 26.066700 | 50.557700 | 0 |
Bangladesh | 27 | 2 | 3 | 23.685000 | 90.356300 | 0 |
Barbados | 14 | 0 | 0 | 13.193900 | -59.543200 | 0 |
Belarus | 76 | 0 | 15 | 53.709800 | 27.953400 | 0 |
Belgium | 3401 | 75 | 263 | 50.503900 | 4.469900 | 0 |
Benin | 2 | 0 | 0 | 9.307700 | 2.315800 | 0 |
Bhutan | 2 | 0 | 0 | 27.514200 | 90.433600 | 0 |
Bolivia | 24 | 0 | 0 | -16.290200 | -63.588700 | 0 |
Bosnia and Herzegovina | 126 | 1 | 2 | 43.915900 | 17.679100 | 0 |
Brazil | 1593 | 25 | 2 | -14.235000 | -51.925300 | 0 |
Brunei | 88 | 0 | 2 | 4.535300 | 114.727700 | 0 |
Bulgaria | 187 | 3 | 3 | 42.733900 | 25.485800 | 0 |
Burkina Faso | 75 | 4 | 5 | 12.238300 | -1.561600 | 0 |
Cabo Verde | 3 | 0 | 0 | 16.538800 | -23.041800 | 0 |
Cambodia | 84 | 0 | 1 | 12.565700 | 104.991000 | 0 |
Cameroon | 40 | 0 | 0 | 3.848000 | 11.502100 | 0 |
Canada | 1465 | 21 | 10 | 50.993533 | -92.262983 | 0 |
Cape Verde | 0 | 0 | 0 | 15.111100 | -23.616700 | 0 |
Central African Republic | 3 | 0 | 0 | 6.611100 | 20.939400 | 0 |
Chad | 1 | 0 | 0 | 15.454200 | 18.732200 | 0 |
Chile | 632 | 1 | 8 | -35.675100 | -71.543000 | 0 |
Colombia | 231 | 2 | 3 | 4.570900 | -74.297300 | 0 |
Congo (Brazzaville) | 3 | 0 | 0 | -0.228000 | 15.827700 | 0 |
Congo (Kinshasa) | 30 | 1 | 0 | -4.038300 | 21.758700 | 0 |
Costa Rica | 134 | 2 | 2 | 9.748900 | -83.753400 | 0 |
Cote d'Ivoire | 14 | 0 | 1 | 7.540000 | -5.547100 | 0 |
Croatia | 254 | 1 | 5 | 45.100000 | 15.200000 | 0 |
Cruise Ship | 712 | 8 | 325 | 35.449800 | 139.664900 | 0 |
Cuba | 35 | 1 | 0 | 21.521800 | -77.781200 | 0 |
Cyprus | 95 | 1 | 3 | 35.126400 | 33.429900 | 0 |
Czechia | 1120 | 1 | 6 | 49.817500 | 15.473000 | 0 |
Denmark | 1514 | 13 | 1 | 63.287800 | -13.338100 | 0 |
Djibouti | 1 | 0 | 0 | 11.825100 | 42.590300 | 0 |
Dominica | 1 | 0 | 0 | 15.415000 | -61.371000 | 0 |
Dominican Republic | 202 | 3 | 0 | 18.735700 | -70.162700 | 0 |
East Timor | 0 | 0 | 0 | -8.550000 | 125.560000 | 0 |
Ecuador | 789 | 14 | 3 | -1.831200 | -78.183400 | 0 |
Egypt | 327 | 14 | 56 | 26.820600 | 30.802500 | 0 |
El Salvador | 3 | 0 | 0 | 13.794200 | -88.896500 | 0 |
Equatorial Guinea | 6 | 0 | 0 | 1.650800 | 10.267900 | 0 |
Eritrea | 1 | 0 | 0 | 15.179400 | 39.782300 | 0 |
Estonia | 326 | 0 | 2 | 58.595300 | 25.013600 | 0 |
Eswatini | 4 | 0 | 0 | -26.522500 | 31.465900 | 0 |
Ethiopia | 11 | 0 | 4 | 9.145000 | 40.489700 | 0 |
Fiji | 2 | 0 | 0 | -17.713400 | 178.065000 | 0 |
Finland | 626 | 1 | 10 | 61.924100 | 25.748200 | 0 |
French Guiana | 18 | 0 | 6 | 3.933900 | -53.125800 | 0 |
Gabon | 5 | 1 | 0 | -0.803700 | 11.609400 | 0 |
Gambia, The | 1 | 0 | 0 | 13.443200 | -15.310100 | 0 |
Georgia | 54 | 0 | 3 | 42.315400 | 43.356900 | 0 |
Ghana | 24 | 1 | 0 | 7.946500 | -1.023200 | 0 |
Greece | 624 | 15 | 19 | 39.074200 | 21.824300 | 0 |
Greenland | 0 | 0 | 0 | 72.000000 | -40.000000 | 0 |
Grenada | 1 | 0 | 0 | 12.116500 | -61.679000 | 0 |
Guadeloupe | 56 | 0 | 0 | 16.265000 | -61.551000 | 0 |
Guam | 0 | 1 | 0 | 13.444300 | 144.793700 | 0 |
Guatemala | 19 | 1 | 0 | 15.783500 | -90.230800 | 0 |
Guernsey | 0 | 0 | 0 | 49.450000 | -2.580000 | 0 |
Guinea | 2 | 0 | 0 | 9.945600 | -9.696600 | 0 |
Guyana | 7 | 1 | 0 | 4.860400 | -58.930200 | 0 |
Haiti | 2 | 0 | 0 | 18.971200 | -72.285200 | 0 |
Holy See | 1 | 0 | 0 | 41.902900 | 12.453400 | 0 |
Honduras | 26 | 0 | 0 | 15.200000 | -86.241900 | 0 |
Hungary | 131 | 6 | 16 | 47.162500 | 19.503300 | 0 |
Iceland | 568 | 1 | 36 | 64.963100 | -19.020800 | 0 |
India | 396 | 7 | 27 | 20.593700 | 78.962900 | 0 |
Indonesia | 514 | 48 | 29 | -0.789300 | 113.921300 | 0 |
Iraq | 233 | 20 | 57 | 33.223200 | 43.679300 | 0 |
Ireland | 906 | 4 | 5 | 53.142400 | -7.692100 | 0 |
Israel | 1071 | 1 | 37 | 31.046100 | 34.851600 | 0 |
Jamaica | 16 | 1 | 2 | 18.109600 | -77.297500 | 0 |
Japan | 1086 | 40 | 235 | 36.204800 | 138.252900 | 0 |
Jersey | 0 | 0 | 0 | 49.190000 | -2.110000 | 0 |
Jordan | 112 | 0 | 1 | 30.585200 | 36.238400 | 0 |
Kazakhstan | 60 | 0 | 0 | 48.019600 | 66.923700 | 0 |
Kenya | 15 | 0 | 0 | -0.023600 | 37.906200 | 0 |
Korea, South | 8897 | 104 | 2909 | 35.907800 | 127.766900 | 0 |
Kosovo | 2 | 0 | 0 | 42.602600 | 20.903000 | 0 |
Kuwait | 188 | 0 | 27 | 29.311700 | 47.481800 | 0 |
Kyrgyzstan | 14 | 0 | 0 | 41.204400 | 74.766100 | 0 |
Latvia | 139 | 0 | 1 | 56.879600 | 24.603200 | 0 |
Lebanon | 248 | 4 | 8 | 33.854700 | 35.862300 | 0 |
Liberia | 3 | 0 | 0 | 6.428100 | -9.429500 | 0 |
Liechtenstein | 37 | 0 | 0 | 47.166000 | 9.555400 | 0 |
Lithuania | 131 | 1 | 1 | 55.169400 | 23.881300 | 0 |
Luxembourg | 798 | 8 | 6 | 49.815300 | 6.129600 | 0 |
Madagascar | 3 | 0 | 0 | -18.766900 | 46.869100 | 0 |
Malaysia | 1306 | 10 | 139 | 4.210500 | 101.975800 | 0 |
Maldives | 13 | 0 | 0 | 3.202800 | 73.220700 | 0 |
Malta | 90 | 0 | 2 | 35.937500 | 14.375400 | 0 |
Martinique | 37 | 1 | 0 | 14.641500 | -61.024200 | 0 |
Mauritania | 2 | 0 | 0 | 21.007900 | -10.940800 | 0 |
Mauritius | 18 | 1 | 0 | -20.348400 | 57.552200 | 0 |
Mayotte | 11 | 0 | 0 | -12.827500 | 45.166200 | 0 |
Mexico | 251 | 2 | 4 | 23.634500 | -102.552800 | 0 |
Moldova | 94 | 1 | 1 | 47.411600 | 28.369900 | 0 |
Monaco | 23 | 0 | 1 | 43.738400 | 7.424600 | 0 |
Mongolia | 10 | 0 | 0 | 46.862500 | 103.846700 | 0 |
Montenegro | 21 | 0 | 0 | 42.708700 | 19.374400 | 0 |
Morocco | 115 | 4 | 3 | 31.791700 | -7.092600 | 0 |
Mozambique | 1 | 0 | 0 | -18.665700 | 35.529600 | 0 |
Namibia | 3 | 0 | 0 | -22.957600 | 18.490400 | 0 |
Nepal | 2 | 0 | 1 | 28.394900 | 84.124000 | 0 |
Netherlands | 4216 | 180 | 2 | 23.716450 | -49.180450 | 0 |
New Zealand | 66 | 0 | 0 | -40.900600 | 174.886000 | 0 |
Nicaragua | 2 | 0 | 0 | 12.865400 | -85.207200 | 0 |
Niger | 2 | 0 | 0 | 17.607800 | 8.081700 | 0 |
Nigeria | 30 | 0 | 2 | 9.082000 | 8.675300 | 0 |
North Macedonia | 114 | 1 | 1 | 41.608600 | 21.745300 | 0 |
Norway | 2383 | 7 | 1 | 60.472000 | 8.468900 | 0 |
Oman | 55 | 0 | 17 | 21.473500 | 55.975400 | 0 |
Pakistan | 776 | 5 | 5 | 30.375300 | 69.345100 | 0 |
Panama | 245 | 3 | 0 | 8.538000 | -80.782100 | 0 |
Papua New Guinea | 1 | 0 | 0 | -6.315000 | 143.955500 | 0 |
Paraguay | 22 | 1 | 0 | -23.442500 | -58.443800 | 0 |
Peru | 363 | 5 | 1 | -9.190000 | -75.015200 | 0 |
Philippines | 380 | 25 | 17 | 12.879700 | 121.774000 | 0 |
Poland | 634 | 7 | 1 | 51.919400 | 19.145100 | 0 |
Portugal | 1600 | 14 | 5 | 39.399900 | -8.224500 | 0 |
Puerto Rico | 0 | 1 | 0 | 18.200000 | -66.500000 | 0 |
Qatar | 494 | 0 | 33 | 25.354800 | 51.183900 | 0 |
Republic of the Congo | 0 | 0 | 0 | -1.440000 | 15.556000 | 0 |
Reunion | 47 | 0 | 0 | -21.115100 | 55.536400 | 0 |
Romania | 433 | 3 | 64 | 45.943200 | 24.966800 | 0 |
Russia | 367 | 0 | 16 | 61.524000 | 105.318800 | 0 |
Rwanda | 19 | 0 | 0 | -1.940300 | 29.873900 | 0 |
Saint Lucia | 2 | 0 | 0 | 13.909400 | -60.978900 | 0 |
Saint Vincent and the Grenadines | 1 | 0 | 0 | 12.984300 | -61.287200 | 0 |
San Marino | 160 | 20 | 4 | 43.942400 | 12.457800 | 0 |
Saudi Arabia | 511 | 0 | 16 | 23.885900 | 45.079200 | 0 |
Senegal | 67 | 0 | 5 | 14.497400 | -14.452400 | 0 |
Serbia | 222 | 2 | 1 | 44.016500 | 21.005900 | 0 |
Seychelles | 7 | 0 | 0 | -4.679600 | 55.492000 | 0 |
Singapore | 455 | 2 | 144 | 1.352100 | 103.819800 | 0 |
Slovakia | 185 | 1 | 7 | 48.669000 | 19.699000 | 0 |
Slovenia | 414 | 2 | 0 | 46.151200 | 14.995500 | 0 |
Somalia | 1 | 0 | 0 | 5.152100 | 46.199600 | 0 |
South Africa | 274 | 0 | 0 | -30.559500 | 22.937500 | 0 |
Sri Lanka | 82 | 0 | 3 | 7.873100 | 80.771800 | 0 |
Sudan | 2 | 1 | 0 | 12.862800 | 30.217600 | 0 |
Suriname | 5 | 0 | 0 | 3.919300 | -56.027800 | 0 |
Sweden | 1934 | 21 | 16 | 60.128200 | 18.643500 | 0 |
Switzerland | 7245 | 98 | 131 | 46.818200 | 8.227500 | 0 |
Syria | 1 | 0 | 0 | 34.802100 | 38.996800 | 0 |
Taiwan* | 169 | 2 | 28 | 23.700000 | 121.000000 | 0 |
Tanzania | 12 | 0 | 0 | -6.369000 | 34.888800 | 0 |
Thailand | 599 | 1 | 44 | 15.870000 | 100.992500 | 0 |
The Bahamas | 0 | 0 | 0 | 24.250000 | -76.000000 | 0 |
The Gambia | 0 | 0 | 0 | 13.466700 | -16.600000 | 0 |
Timor-Leste | 1 | 0 | 0 | -8.874200 | 125.727500 | 0 |
Togo | 16 | 0 | 1 | 8.619500 | 0.824800 | 0 |
Trinidad and Tobago | 50 | 0 | 1 | 10.691800 | -61.222500 | 0 |
Tunisia | 75 | 3 | 1 | 33.886900 | 9.537500 | 0 |
Turkey | 1236 | 30 | 0 | 38.963700 | 35.243300 | 0 |
Uganda | 1 | 0 | 0 | 1.373300 | 32.290300 | 0 |
Ukraine | 73 | 3 | 1 | 48.379400 | 31.165600 | 0 |
United Arab Emirates | 153 | 2 | 38 | 23.424100 | 53.847800 | 0 |
United Kingdom | 5741 | 282 | 67 | 37.641557 | -31.984943 | 0 |
Uruguay | 135 | 0 | 0 | -32.522800 | -55.765800 | 0 |
Uzbekistan | 43 | 0 | 0 | 41.377500 | 64.585300 | 0 |
Venezuela | 70 | 0 | 15 | 6.423800 | -66.589700 | 0 |
Vietnam | 113 | 0 | 17 | 14.058300 | 108.277200 | 0 |
Zambia | 3 | 0 | 0 | -13.133900 | 27.849300 | 0 |
Zimbabwe | 3 | 0 | 0 | -19.015400 | 29.154900 | 0 |