WorldPop — catalog explorer (no network)¶
Browse the curated WorldPop product / sub-alias catalog without any download. WorldPop is open (CC-BY-4.0): no credentials needed.
In [ ]:
Copied!
from earthlens.worldpop import Catalog
cat = Catalog()
print(cat.available_products())
from earthlens.worldpop import Catalog
cat = Catalog()
print(cat.available_products())
Resolve friendly aliases and pick a concrete REST sub-alias from the selectors:
In [ ]:
Copied!
print('population ->', cat.resolve('population'))
print('default pop sub-alias ->', cat.pick_subalias('pop'))
print(
'constrained R2025A ->',
cat.pick_subalias('pop', constrained=True, generation='R2025A'),
)
print('global 1km ->', cat.pick_subalias('pop', resolution='1km', scope='global'))
print('population ->', cat.resolve('population'))
print('default pop sub-alias ->', cat.pick_subalias('pop'))
print(
'constrained R2025A ->',
cat.pick_subalias('pop', constrained=True, generation='R2025A'),
)
print('global 1km ->', cat.pick_subalias('pop', resolution='1km', scope='global'))
Every sub-alias of the pop family, plus the demographic flag for age_structures:
In [ ]:
Copied!
for s in cat.get('pop').subaliases:
print(
s.id,
'| constrained',
s.constrained,
'| res',
s.resolution,
'| scope',
s.scope,
'| gen',
s.generation,
'| years',
s.years,
)
print('age_structures demographic:', cat.get('age_structures').demographic)
for s in cat.get('pop').subaliases:
print(
s.id,
'| constrained',
s.constrained,
'| res',
s.resolution,
'| scope',
s.scope,
'| gen',
s.generation,
'| years',
s.years,
)
print('age_structures demographic:', cat.get('age_structures').demographic)
An impossible selector tuple raises a did-you-mean error:
In [ ]:
Copied!
try:
cat.pick_subalias(
'pop', constrained=True, resolution='1km', generation='R2021', scope='countries'
)
except ValueError as exc:
print('rejected:', str(exc).splitlines()[0])
try:
cat.pick_subalias(
'pop', constrained=True, resolution='1km', generation='R2021', scope='countries'
)
except ValueError as exc:
print('rejected:', str(exc).splitlines()[0])