Valeriepieris circle

A Valeriepieris circle is a figure drawn on the Earth’s surface such that the majority of the human population lives within its interior. Here we will focus on the Valeriepieris circle encompassing 50% the human population. It’s location and radius were computed recently by Jari Kirma [1]. Here are the data for 50% and 99% circles:
In[]:=
pop50=GeoCircleGeoPosition[{29.296875`,100.1953125`}],
3350.4673980357484`
km
;​​pop99=GeoCircleGeoPosition[{30.205078125`,16.46484375`}],
11634.524704508935`
km
;
The circles conform to the geographic projection specified and thus they do not look like perfect circles, but they are in terms of geo coordinates on the surface of Earth. Surprisingly, the 50% Valeriepieris circle does not contain Tokyo -- the top city by population:
In[]:=
GeoGraphics{Thick,Blue,pop99,Red,pop50},GeoMarker
Tokyo
CITY
,​​GeoProjection->"WinkelTripel",GeoBackground->"CountryBorders"
Out[]=

100 most populous cities

Now we consider the data for the top most populous cities in the world [2, 3]:
data=
;
They are given by an Association:
In[]:=
Short@data
Out[]//Short=

Tokyo
37732000,
Jakarta
33756000,
Delhi
32226000,
Guangzhou
26940000,
Mumbai
24973000,
Manila
24922000,
Shanghai
24073000,
São Paulo
23086000,84,
Singapore
5983000,
Allahabad
5954391,
Liaocheng
5952128,
Dalian
5871474,
Yulin
5849700,
Changde
5827200,
Qingdao
5818255,
Douala
5768400
that can be tabulated as:
In[]:=
[◼]
PrettyGrid
/@Partition[KeyValueMap[List,KeyMap[CommonName,data]],25]//Row
Out[]=
Tokyo
37732000
Jakarta
33756000
Delhi
32226000
Guangzhou
26940000
Mumbai
24973000
Manila
24922000
Shanghai
24073000
São Paulo
23086000
Seoul
23016000
Mexico City
21804000
Cairo
20296000
New York City
18972871
Dhaka
18627000
Beijing
18522000
Kolkata
18502000
Bangkok
18007000
Shenzhen
17619000
Moscow
17332000
Buenos Aires
16710000
Lagos
16637000
Istanbul
16079000
Karachi
15738000
Bengaluru
15386000
Ho Chi Minh City
15136000
Osaka
15126000
Chengdu
14645000
Tehran
14148000
Kinshasa
12836000
Rio de Janeiro
12592000
Chennai
12395000
Xian
12328000
Lahore
12306000
Chongqing
12135000
Los Angeles
12121244
Baoding
11860000
London
11262000
Paris
11060000
Linyi
11018365
Dongguan
10646000
Hyderabad
10494000
Tianjin
10368000
Lima
10320000
Wuhan
10251000
Nanyang
10013600
Hangzhou
9523000
Foshan
9498863
Nagoya
9197000
Taipei City
9078000
Xuzhou
9083790
Luanda
9051000
Zhoukou
9026015
Ganzhou
8970014
Kuala Lumpur
8911000
Heze
8795939
Quanzhou
8782285
Chicago
8595181
Nanjing
8422000
Jining
8357897
Hanoi
8246600
Pune
8231000
Fuyang
8200264
Ahmedabad
8009000
Johannesburg
8000000
Bogotá
7968095
Dar es Salaam
7962000
Shenyang
7964000
Khartoum
7869000
Shangqiu
7816831
Cangzhou
7544300
Hong Kong
7450000
Shaoyang
7370500
Zhanjiang
7332000
Yancheng
7260240
Hengyang
7243400
Riyadh
7237000
Zhumadian
7231234
Santiago
7171000
Xingtai
7111106
Chittagong
7000000
Bijie
6899636
Shangrao
6810700
Zunyi
6606675
Surat
6538000
Surabaya
6499000
Huanggang
6333000
Maoming
6313200
Nanchong
6278614
Xinyang
6234401
Madrid
6211000
Baghdad
6183000
Qujing
6155400
Jieyang
6089400
Singapore
5983000
Allahabad
5954391
Liaocheng
5952128
Dalian
5871474
Yulin
5849700
Changde
5827200
Qingdao
5818255
Douala
5768400

Cities falling withing the Valeriepieris circle

We can compute part of top 100 cities falling withing the Valeriepieris circle by two methods. First is using GeoWithinQ:
within1=Select[Keys[data],GeoWithinQ[GeoDisk@@pop50,#]&];
And second, much faster, using GeoNearest:
In[]:=
within2=GeoNearestKeys[data],GeoPosition[{29.296875`,100.1953125`}],All,
3350.4673980357484`
km

Out[]=

Chengdu
,
Bijie
,
Qujing
,
Nanchong
,
Chongqing
,
Zunyi
,
Xian
,
Hanoi
,
Shaoyang
,
Changde
,
Chittagong
,
Dhaka
,
Yulin
,
Nanyang
,
Hengyang
,
Maoming
,
Zhanjiang
,
Xinyang
,
Wuhan
,
Zhumadian
,
Kolkata
,
Zhoukou
,
Foshan
,
Guangzhou
,
Ganzhou
,
Dongguan
,
Fuyang
,
Shangqiu
,
Heze
,
Shenzhen
,
Xingtai
,
Hong Kong
,
Liaocheng
,
Jining
,
Xuzhou
,
Bangkok
,
Shangrao
,
Jieyang
,
Baoding
,
Huanggang
,
Nanjing
,
Linyi
,
Cangzhou
,
Allahabad
,
Quanzhou
,
Beijing
,
Tianjin
,
Hangzhou
,
Yancheng
,
Qingdao
,
Shanghai
,
Taipei City
,
Ho Chi Minh City
,
Delhi
,
Dalian
,
Lahore
,
Shenyang
,
Seoul
,
Manila
,
Chennai
,
Ahmedabad
,
Surat
,
Kuala Lumpur
,
Pune
,
Bengaluru
,
Mumbai
,
Singapore
,
Hyderabad
,
Karachi

We obtained identical sets
In[]:=
Sort@within1===Sort@within2
Out[]=
True
with total of 69 cities out of top 100 within the Valeriepieris circle
In[]:=
Length/@{within1,within2}
Out[]=
{69,69}

Visualization

Finally we can place both: the top 100 cities and Valeriepieris circle on the map. I chose GeoProjection->”Armadillo” [4] as it represents well all pieces of data:
In[]:=
GeoBubbleChart[data,PerformanceGoal->"Speed",BubbleScale"Diameter",ImageSize->1000,GeoProjection->"Armadillo",GeoBackground->"CountryBorders",GeoCenter->GeoPosition[{50,25}],Epilog->{Thickness[.005],Opacity[.7],Red,pop50}]
Out[]=

Final visual: captions & styles:


Sources & references:

◼
  • [1] Global population distribution: what’s a Valeriepieris circle, and where 99% of us live. URL: https://community.wolfram.com/groups/-/m/t/3024465
  • ◼
  • [2] Demographia World, Urban Areas, 19th Annual: 202308. URL: http://www.demographia.com/db-worldua.pdf
  • ◼
  • [3] World Cities Database, Pareto Software, LLC. URL: https://simplemaps.com/data/world-cities
  • ◼
  • [4] Armadillo projection. URL: https://en.wikipedia.org/wiki/Armadillo_projection
  • CITE THIS NOTEBOOK

    Where half of the world lives: 69 of top 100 cities in Valeriepieris circle​
    by Vitaliy Kaurov​
    Wolfram Community, STAFF PICKS, March 17, 2024
    ​https://community.wolfram.com/groups/-/m/t/3142243