Planet Labs, a 15-year-old satellite manufacturer and operator based in San Francisco, operates four different satellite constellations and captures daily imagery of the entire Earth's landmass. The company has approximately 1,751 employees on LinkedIn. Its CEO, Will Marshall, is one of the three co-founders. In February, he was pictured with NATO Secretary General Mark Rutte, French President Emmanuel Macron, and Estonia's former Prime Minister (2021-2024) and current European Commission Vice-President, Kaja Kallas.
Planet Labs' latest satellite, Pelican-11, which will join the Tanager constellation, was launched on SpaceX's Transporter 17 Mission on July 7th and released into Lower Low Earth Orbit (LLEO) over Greece. As of this writing, Planet Labs' Ephemerides service lists 97 satellites currently in orbit, with their latest details available from the GCAT satellite database.
$ wget https://ephemerides.planet-labs.com/planet_mc.tle
$ grep '^2.*' planet_mc.tle \
| cut -d' ' -f2 \
> NORAD_IDs.csv
$ ~/duckdb
.maxrows 4000
SELECT State,
Name,
* EXCLUDE(AltNames,
Bus,
Dest,
Attach_flag,
Subtype_flag,
Orbit_flag,
ID_flag,
Status_or_failure_flag,
Coarse_type,
SDate,
SDate_Year,
"Primary",
DDate,
Manufacturer,
Motor,
JCAT,
ODate,
Type,
OQUAL,
PLName,
Shape,
Name,
State,
DryMass,
TotMass)
FROM 'satcat.parquet'
WHERE Satcat IN (SELECT column0::VARCHAR
FROM 'NORAD_IDs.csv')
AND Status = 'In orbit'
ORDER BY Launch_Tag,
Name;
┌─────────┬──────────────┬────────┬──────────┬───────┬────────────┬─────────────┬────────┬───────┬─────────┬─────────┬───────────────┬─────────┬────────────┬─────────┬───────┬──────────┐
│ State │ Name │ Apogee │ Diameter │ Inc │ Launch_Tag │ LDate │ Length │ Mass │ OpOrbit │ Owner │ Parent │ Perigee │ Piece │ Satcat │ Span │ Status │
│ varchar │ varchar │ int32 │ float │ float │ varchar │ varchar │ float │ float │ varchar │ varchar │ varchar │ varchar │ varchar │ varchar │ float │ varchar │
├────────┼────────────┼────────┼──────────┼───────┼────────────┼─────────────┼────────┼───────┼─────────┼─────────┼───────────────┼─────────┼────────────┼─────────┼───────┼──────────┤
│ US │ SkySat A │ 597 │ 0.6 │ 97.81 │ 2013-066 │ 2013 Nov 21 │ 0.8 │ 90.0 │ LLEO/S │ SKYBOX │ S39450 │ 567 │ 2013-066C │ 39418 │ 0.6 │ In orbit │
│ US │ SkySat C1 │ 515 │ 0.5 │ 97.51 │ 2016-040 │ 2016 Jun 22 │ 1.2 │ 110.0 │ LLEO/S │ TBELLA │ S41620 │ 499 │ 2016-040C │ 41601 │ 0.5 │ In orbit │
│ US │ SkySat C2 │ 502 │ 0.5 │ 97.42 │ 2016-058 │ 2016 Sep 16 │ 1.2 │ 110.0 │ LLEO/S │ TBELLA │ S41775 │ 501 │ 2016-058D │ 41773 │ 0.5 │ In orbit │
│ US │ SkySat C4 │ 506 │ 0.5 │ 97.43 │ 2016-058 │ 2016 Sep 16 │ 1.2 │ 110.0 │ LLEO/S │ TBELLA │ S41775 │ 497 │ 2016-058B │ 41771 │ 0.5 │ In orbit │
│ US │ SkySat C5 │ 503 │ 0.5 │ 97.42 │ 2016-058 │ 2016 Sep 16 │ 1.2 │ 110.0 │ LLEO/S │ TBELLA │ S41775 │ 501 │ 2026-058C │ 41772 │ 0.5 │ In orbit │
│ US │ SkySat C6 │ 527 │ 0.5 │ 97.35 │ 2017-068 │ 2017 Oct 31 │ 1.2 │ 110.0 │ LLEO/S │ PLABST │ S42994 │ 500 │ 2017-068F │ 42992 │ 0.5 │ In orbit │
│ US │ SkySat C7 │ 527 │ 0.5 │ 97.35 │ 2017-068 │ 2017 Oct 31 │ 1.2 │ 110.0 │ LLEO/S │ PLABST │ S42994 │ 500 │ 2017-068E │ 42991 │ 0.5 │ In orbit │
│ US │ SkySat C8 │ 527 │ 0.5 │ 97.35 │ 2017-068 │ 2017 Oct 31 │ 1.2 │ 110.0 │ LLEO/S │ PLABST │ S42994 │ 500 │ 2017-068D │ 42990 │ 0.5 │ In orbit │
│ US │ SkySat C9 │ 528 │ 0.5 │ 97.35 │ 2017-068 │ 2017 Oct 31 │ 1.2 │ 110.0 │ LLEO/S │ PLABST │ S42994 │ 500 │ 2017-068C │ 42989 │ 0.5 │ In orbit │
│ US │ SkySat C12 │ 588 │ 0.5 │ 97.77 │ 2018-099 │ 2018 Dec 3 │ 1.2 │ 110.0 │ LLEO/S │ PLABST │ S43763 │ 572 │ 2018-099AR │ 43797 │ 0.5 │ In orbit │
│ US │ Flock 4q-16 │ 531 │ 0.1 │ 97.48 │ 2023-174 │ 2023 Nov 11 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11079 SD4.4 │ 516 │ 2023-174R │ 58271 │ 0.3 │ In orbit │
│ US │ Flock 4q-2 │ 529 │ 0.1 │ 97.48 │ 2023-174 │ 2023 Nov 11 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11079 SD1.2 │ 512 │ 2023-174BS │ 58320 │ 0.3 │ In orbit │
│ US │ Flock 4q-4 │ 530 │ 0.1 │ 97.48 │ 2023-174 │ 2023 Nov 11 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11079 SD1.4 │ 517 │ 2023-174BZ │ 58327 │ 0.3 │ In orbit │
│ US │ Flock 4q-9 │ 529 │ 0.1 │ 97.48 │ 2023-174 │ 2023 Nov 11 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11079 SD3.1 │ 512 │ 2023-174BU │ 58322 │ 0.3 │ In orbit │
│ US │ Pelican 1 │ 530 │ 0.6 │ 97.48 │ 2023-174 │ 2023 Nov 11 │ 2.3 │ 160.0 │ LLEO/S │ PLAN │ A11079 │ 515 │ 2023-174AS │ 58296 │ 3.0 │ In orbit │
│ US │ Flock 4be-1 │ 515 │ 0.1 │ 97.45 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 506 │ 2024-149BC │ 60518 │ 0.3 │ In orbit │
│ US │ Flock 4be-11 │ 517 │ 0.1 │ 97.44 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 507 │ 2024-149AK │ 60501 │ 0.3 │ In orbit │
│ US │ Flock 4be-13 │ 517 │ 0.1 │ 97.44 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 506 │ 2024-149AW │ 60512 │ 0.3 │ In orbit │
│ US │ Flock 4be-14 │ 516 │ 0.1 │ 97.44 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 505 │ 2024-149BB │ 60517 │ 0.3 │ In orbit │
│ US │ Flock 4be-17 │ 517 │ 0.1 │ 97.45 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 509 │ 2024-149AA │ 60492 │ 0.3 │ In orbit │
│ US │ Flock 4be-18 │ 519 │ 0.1 │ 97.44 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 509 │ 2024-149N │ 60480 │ 0.3 │ In orbit │
│ US │ Flock 4be-19 │ 516 │ 0.1 │ 97.44 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 505 │ 2024-149CZ │ 60563 │ 0.3 │ In orbit │
│ US │ Flock 4be-22 │ 518 │ 0.1 │ 97.44 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 508 │ 2024-149AC │ 60494 │ 0.3 │ In orbit │
│ US │ Flock 4be-23 │ 518 │ 0.1 │ 97.45 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 509 │ 2024-149Y │ 60490 │ 0.3 │ In orbit │
│ US │ Flock 4be-24 │ 517 │ 0.1 │ 97.44 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 507 │ 2024-149AP │ 60505 │ 0.3 │ In orbit │
│ US │ Flock 4be-25 │ 517 │ 0.1 │ 97.45 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 510 │ 2024-149V │ 60487 │ 0.3 │ In orbit │
│ US │ Flock 4be-28 │ 516 │ 0.1 │ 97.44 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 505 │ 2024-149BD │ 60519 │ 0.3 │ In orbit │
│ US │ Flock 4be-29 │ 515 │ 0.1 │ 97.45 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 508 │ 2024-149AT │ 60509 │ 0.3 │ In orbit │
│ US │ Flock 4be-3 │ 516 │ 0.1 │ 97.44 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 506 │ 2024-149CX │ 60561 │ 0.3 │ In orbit │
│ US │ Flock 4be-31 │ 517 │ 0.1 │ 97.45 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 509 │ 2024-149W │ 60488 │ 0.3 │ In orbit │
│ US │ Flock 4be-32 │ 518 │ 0.1 │ 97.44 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 508 │ 2024-149AF │ 60497 │ 0.3 │ In orbit │
│ US │ Flock 4be-34 │ 517 │ 0.1 │ 97.45 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 509 │ 2024-149AD │ 60495 │ 0.3 │ In orbit │
│ US │ Flock 4be-5 │ 515 │ 0.1 │ 97.45 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 507 │ 2024-149CV │ 60559 │ 0.3 │ In orbit │
│ US │ Flock 4be-6 │ 515 │ 0.1 │ 97.45 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 506 │ 2024-149BA │ 60516 │ 0.3 │ In orbit │
│ US │ Flock 4be-7 │ 518 │ 0.1 │ 97.45 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 510 │ 2024-149P │ 60481 │ 0.3 │ In orbit │
│ US │ Flock 4be-9 │ 515 │ 0.1 │ 97.45 │ 2024-149 │ 2024 Aug 16 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11288 │ 507 │ 2024-149AY │ 60514 │ 0.3 │ In orbit │
│ US │ Tanager 1 │ 516 │ 0.6 │ 97.44 │ 2024-149 │ 2024 Aug 16 │ 2.3 │ 150.0 │ LLEO/S │ PLAN │ A11288 │ 507 │ 2024-149AR │ 60507 │ 3.0 │ In orbit │
│ US │ Flock 4g-1 │ 518 │ 0.1 │ 97.45 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 511 │ 2025-009BK │ 62666 │ 0.3 │ In orbit │
│ US │ Flock 4g-10 │ 518 │ 0.1 │ 97.44 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 512 │ 2025-009BP │ 62670 │ 0.3 │ In orbit │
│ US │ Flock 4g-11 │ 515 │ 0.1 │ 97.44 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 512 │ 2025-009W │ 62629 │ 0.3 │ In orbit │
│ US │ Flock 4g-12 │ 516 │ 0.1 │ 97.44 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 512 │ 2025-009S │ 62625 │ 0.3 │ In orbit │
│ US │ Flock 4g-14 │ 518 │ 0.1 │ 97.45 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 511 │ 2025-009BL │ 62667 │ 0.3 │ In orbit │
│ US │ Flock 4g-15 │ 518 │ 0.1 │ 97.45 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 511 │ 2025-009BX │ 62678 │ 0.3 │ In orbit │
│ US │ Flock 4g-17 │ 519 │ 0.1 │ 97.44 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 511 │ 2025-009CA │ 62681 │ 0.3 │ In orbit │
│ US │ Flock 4g-2 │ 518 │ 0.1 │ 97.44 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 511 │ 2025-009BE │ 62661 │ 0.3 │ In orbit │
│ US │ Flock 4g-22 │ 514 │ 0.1 │ 97.44 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 511 │ 2025-009AN │ 62645 │ 0.3 │ In orbit │
│ US │ Flock 4g-24 │ 515 │ 0.1 │ 97.45 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 511 │ 2025-009AE │ 62637 │ 0.3 │ In orbit │
│ US │ Flock 4g-25 │ 514 │ 0.1 │ 97.44 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 511 │ 2025-009AP │ 62646 │ 0.3 │ In orbit │
│ US │ Flock 4g-26 │ 515 │ 0.1 │ 97.45 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 511 │ 2025-009AA │ 62633 │ 0.3 │ In orbit │
│ US │ Flock 4g-27 │ 514 │ 0.1 │ 97.44 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 512 │ 2025-009AJ │ 62641 │ 0.3 │ In orbit │
│ US │ Flock 4g-28 │ 515 │ 0.1 │ 97.44 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 511 │ 2025-009AB │ 62634 │ 0.3 │ In orbit │
│ US │ Flock 4g-3 │ 515 │ 0.1 │ 97.45 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 511 │ 2025-009AG │ 62639 │ 0.3 │ In orbit │
│ US │ Flock 4g-31 │ 513 │ 0.1 │ 97.44 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 511 │ 2025-009AV │ 62652 │ 0.3 │ In orbit │
│ US │ Flock 4g-36 │ 519 │ 0.1 │ 97.45 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 512 │ 2025-009BU │ 62675 │ 0.3 │ In orbit │
│ US │ Flock 4g-6 │ 517 │ 0.1 │ 97.44 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 512 │ 2025-009BD │ 62660 │ 0.3 │ In orbit │
│ US │ Flock 4g-7 │ 516 │ 0.1 │ 97.44 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 512 │ 2025-009R │ 62624 │ 0.3 │ In orbit │
│ US │ Flock 4g-8 │ 516 │ 0.1 │ 97.44 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 511 │ 2025-009E │ 62613 │ 0.3 │ In orbit │
│ US │ Flock 4g-9 │ 520 │ 0.1 │ 97.44 │ 2025-009 │ 2025 Jan 14 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11398 │ 512 │ 2025-009P │ 62622 │ 0.3 │ In orbit │
│ US │ Pelican 2 │ 516 │ 0.6 │ 97.44 │ 2025-009 │ 2025 Jan 14 │ 2.3 │ 160.0 │ LLEO/S │ PLAN │ A11398 │ 512 │ 2025-009Y │ 62631 │ 3.0 │ In orbit │
│ US │ Pelican 3 │ 464 │ 0.6 │ 97.26 │ 2025-188 │ 2025 Aug 26 │ 2.3 │ 160.0 │ LLEO/S │ PLAN │ A11588 │ 458 │ 2025-188A │ 65315 │ 3.0 │ In orbit │
│ US │ Pelican 4 │ 464 │ 0.6 │ 97.26 │ 2025-188 │ 2025 Aug 26 │ 2.3 │ 160.0 │ LLEO/S │ PLAN │ A11588 │ 458 │ 2025-188B │ 65316 │ 3.0 │ In orbit │
│ US │ Flock 4h-10 │ 518 │ 0.1 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276AZ │ 66713 │ 0.3 │ In orbit │
│ US │ Flock 4h-12 │ 513 │ 0.1 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276BB │ 66715 │ 0.3 │ In orbit │
│ US │ Flock 4h-14 │ 512 │ 0.1 │ 97.45 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276BD │ 66717 │ 0.3 │ In orbit │
│ US │ Flock 4h-15 │ 518 │ 0.1 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276BE │ 66718 │ 0.3 │ In orbit │
│ US │ Flock 4h-16 │ 517 │ 0.1 │ 97.45 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276BF │ 66719 │ 0.3 │ In orbit │
│ US │ Flock 4h-18 │ 518 │ 0.1 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276BH │ 66721 │ 0.3 │ In orbit │
│ US │ Flock 4h-19 │ 513 │ 0.1 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 511 │ 2025-276BJ │ 66722 │ 0.3 │ In orbit │
│ US │ Flock 4h-2 │ 513 │ 0.1 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276AR │ 66705 │ 0.3 │ In orbit │
│ US │ Flock 4h-20 │ 513 │ 0.1 │ 97.45 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 511 │ 2025-276BK │ 66723 │ 0.3 │ In orbit │
│ US │ Flock 4h-21 │ 513 │ 0.1 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 511 │ 2025-276BL │ 66724 │ 0.3 │ In orbit │
│ US │ Flock 4h-22 │ 517 │ 0.1 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276BM │ 66725 │ 0.3 │ In orbit │
│ US │ Flock 4h-23 │ 518 │ 0.1 │ 97.45 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276BN │ 66726 │ 0.3 │ In orbit │
│ US │ Flock 4h-24 │ 517 │ 0.1 │ 97.45 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276BP │ 66727 │ 0.3 │ In orbit │
│ US │ Flock 4h-25 │ 512 │ 0.1 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 511 │ 2025-276BQ │ 66728 │ 0.3 │ In orbit │
│ US │ Flock 4h-26 │ 518 │ 0.1 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276BR │ 66729 │ 0.3 │ In orbit │
│ US │ Flock 4h-27 │ 513 │ 0.1 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276BS │ 66730 │ 0.3 │ In orbit │
│ US │ Flock 4h-29 │ 517 │ 0.1 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276BU │ 66732 │ 0.3 │ In orbit │
│ US │ Flock 4h-3 │ 517 │ 0.1 │ 97.45 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276AS │ 66706 │ 0.3 │ In orbit │
│ US │ Flock 4h-30 │ 518 │ 0.1 │ 97.45 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276BV │ 66733 │ 0.3 │ In orbit │
│ US │ Flock 4h-31 │ 517 │ 0.1 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276BW │ 66734 │ 0.3 │ In orbit │
│ US │ Flock 4h-32 │ 518 │ 0.1 │ 97.45 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276BX │ 66735 │ 0.3 │ In orbit │
│ US │ Flock 4h-33 │ 513 │ 0.1 │ 97.45 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 511 │ 2025-276BY │ 66736 │ 0.3 │ In orbit │
│ US │ Flock 4h-34 │ 513 │ 0.1 │ 97.45 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 511 │ 2025-276BZ │ 66737 │ 0.3 │ In orbit │
│ US │ Flock 4h-35 │ 512 │ 0.1 │ 97.45 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 511 │ 2025-276CA │ 66738 │ 0.3 │ In orbit │
│ US │ Flock 4h-36 │ 514 │ 0.1 │ 97.45 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 511 │ 2025-276CB │ 66739 │ 0.3 │ In orbit │
│ US │ Flock 4h-4 │ 518 │ 0.1 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276AT │ 66707 │ 0.3 │ In orbit │
│ US │ Flock 4h-5 │ 513 │ 0.1 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 511 │ 2025-276AU │ 66708 │ 0.3 │ In orbit │
│ US │ Flock 4h-7 │ 516 │ 0.1 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 513 │ 2025-276AW │ 66710 │ 0.3 │ In orbit │
│ US │ Flock 4h-8 │ 517 │ 0.1 │ 97.45 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276AX │ 66711 │ 0.3 │ In orbit │
│ US │ Flock 4h-9 │ 515 │ 0.1 │ 97.45 │ 2025-276 │ 2025 Nov 28 │ 0.3 │ 5.7 │ LLEO/S │ PLAN │ A11695 │ 511 │ 2025-276AY │ 66712 │ 0.3 │ In orbit │
│ US │ Pelican 5 │ 515 │ 0.6 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 2.3 │ 160.0 │ LLEO/S │ PLAN │ A11695 │ 512 │ 2025-276B │ 66667 │ 3.0 │ In orbit │
│ US │ Pelican 6 │ 516 │ 0.6 │ 97.44 │ 2025-276 │ 2025 Nov 28 │ 2.3 │ 160.0 │ LLEO/S │ PLAN │ A11695 │ 513 │ 2025-276AP │ 66703 │ 3.0 │ In orbit │
│ US │ Edda 1 │ 509 │ 0.6 │ 97.41 │ 2026-100 │ 2026 May 3 │ 2.3 │ 160.0 │ LLEO/S │ PLAN │ A11839 │ 500 │ 2026-100AP │ 69017 │ 3.0 │ In orbit │
│ S │ Pelican 8 │ 518 │ 0.6 │ 97.72 │ 2026-100 │ 2026 May 3 │ 2.3 │ 160.0 │ LLEO/S │ FVM │ A11839 │ 482 │ 2026-100AQ │ 69018 │ 3.0 │ In orbit │
│ US │ Pelican 9 │ 508 │ 0.6 │ 97.41 │ 2026-100 │ 2026 May 3 │ 2.3 │ 160.0 │ LLEO/S │ PLAN │ A11839 │ 500 │ 2026-100AR │ 69019 │ 3.0 │ In orbit │
│ US │ Pelican 11 │ 597 │ 0.6 │ 97.76 │ 2026-156 │ 2026 Jul 7 │ 2.3 │ 160.0 │ LLEO/S │ PLAN │ A11917 │ 587 │ 2026-156C │ 69871 │ 3.0 │ In orbit │
└─────────┴──────────────┴────────┴──────────┴───────┴────────────┴─────────────┴────────┴───────┴─────────┴─────────┴───────────────┴─────────┴────────────┴─────────┴───────┴──────────┘
Planet Labs' SuperDove and SkySat satellites' spectrum response levels are compared with those of RapidEye, Landsat-8, and Sentinel-2.
The Hyperspectral Pelican constellation's satellites capture 426 bands of light, differentiating them from Planet Labs' other constellations. The author previously reviewed some of its free imagery.
Last year, Planet Labs launched a new Disaster Data feed, a Cloudflare-hosted service compatible with DuckDB and QGIS. This feed provides imagery of natural and man-made disasters captured shortly after they occur, with metadata available in Parquet and JSON formats.
This post analyzes imagery captured and openly published by Planet Labs this year.
My Workstation
I am using a 5.7 GHz AMD Ryzen 9 9950X CPU with 16 cores, 32 threads, and 1.2 MB of L1, 16 MB of L2, and 64 MB of L3 cache. It is equipped with a liquid cooler and housed in a Cooler Master HAF 700 computer case. The system has 96 GB of DDR5 RAM clocked at 4,800 MT/s and a Crucial T700 4 TB NVMe M.2 SSD (PCIe Gen5) with read speeds up to 12,400 MB/s, featuring a heatsink for temperature regulation. This SSD serves as the C drive.
Power is supplied by a 1,200-watt, fully modular Corsair Power Supply, and the system is built on an ASRock X870E Nova 90 Motherboard.
I run Ubuntu 24 LTS via Microsoft's Ubuntu for Windows on Windows 11 Pro. The choice to use Windows as my primary desktop environment is due to my Nvidia GTX 1080 GPU, which has better driver support on Windows, and the native support of ArcGIS Pro on this operating system.
Installing Prerequisites
GDAL 3.9.3 and jq are used for image manipulation and data formatting, respectively.
Note: GDAL 3.12 introduced significant changes to its CLI. Commands in this post may require adjustments for this or newer versions.
$ sudo apt update
$ sudo apt install \
gdal-bin \
jq
DuckDB is utilized with its H3, JSON, Lindel, Parquet, and Spatial extensions.
$ cd ~
$ wget -c https://github.com/duckdb/duckdb/releases/download/v1.5.4/duckdb_cli-linux-amd64.zip
$ unzip -j duckdb_cli-linux-amd64.zip
$ chmod +x duckdb
$ ~/duckdb
INSTALL h3 FROM community;
INSTALL lindel FROM community;
INSTALL json;
INSTALL parquet;
INSTALL spatial;
DuckDB is configured to load all installed extensions on startup.
$ vi ~/.duckdbrc
.timer on
.width 180
LOAD h3;
LOAD lindel;
LOAD json;
LOAD parquet;
LOAD spatial;
QGIS version 4.2.1 is used for rendering maps. This popular desktop application is available for Windows, macOS, and Linux, with approximately 22 million monthly user launches globally.
Boundaries and place names are sourced from Natural Earth, earthquake data from the USGS, and maritime boundaries from Marine Regions. The HCMGIS plugin in QGIS was used to add satellite imagery basemaps from Bing.
The List of Disasters
The following command retrieves a list of disaster event slugs from the catalog.json file.
$ touch catalog.json; rm catalog.json
$ wget https://data.source.coop/planet/disasterdata/catalog.json
$ jq -r '.links[]|.href' catalog.json \
| grep '.*[0-9]/catalog.json' \
| cut -d/ -f2 \
| sort
colombia-earthquake-2026-08-10
gironde-wildfire-2026
hurricane-melissa-2025
nepal-flash-flood-2026-08-26
philippines-earthquake-2026-06-08
venezuela-earthquake-2026-06-24
Pre-event Basemaps
Event folders contain various assets, with basemaps available for the Colombia and Venezuela events. These basemaps are mosaics of recent satellite images, designed to minimize cloud cover.
The Venezuela basemap covers 280 km of coastline and extends up to 52 km inland.

The basemaps are provided as tiles. For Colombia, 93 GeoTIFF files with corresponding metadata JSON files are available.
The following command downloads the list of basemap assets for Colombia.
$ mkdir -p colombia_basemap
$ cd colombia_basemap
$ wget https://data.source.coop/planet/disasterdata/Colombia-earthquake-2026-08-10/pre-event/basemap-2026q2/items.parquet
An example record for one of the tiles is shown below.
$ echo "FROM 'items.parquet'
LIMIT 1" \
| ~/duckdb -json \
| jq -S .
[
{
"assets": {
"thumbnail": {
"href": "https://data.source.coop/planet/disasterdata/colombia-earthquake-2026-08-10/pre-event/basemap-2026q2/items/585-1059/585-1059_thumbnail.png",
"roles": [
"thumbnail"
],
"title": "Thumbnail",
"type": "image/png"
},
"visual": {
"eo:bands": [
{
"common_name": "red",
"name": "Red"
},
{
"common_name": "green",
"name": "Green"
},
{
"common_name": "blue",
"name": "Blue"
},
{
"common_name": "alpha",
"name": "Alpha"
}
],
"href": "https://data.source.coop/planet/disasterdata/colombia-earthquake-2026-08-10/pre-event/basemap-2026q2/items/585-1059/585-1059_visual.tif",
"roles": [
"data",
"visual"
],
"title": "Visual (true-colour RGB) basemap quad COG",
"type": "image/tiff; application=geotiff; profile=cloud-optimized"
}
},
"bbox": {
"xmax": -76.99218748925043,
"xmin": -77.16796873922601,
"ymax": 6.315298537512351,
"ymin": 6.140554781656619
},
"collection": "pre-event-basemap-2026q2",
"constellation": "planetscope",
"datetime": "2026-05-16 15:00:00+03",
"end_datetime": "2026-07-01 03:00:00+03",
"geometry": "POLYGON ((-77.16796873922601 6.140554781656619, -76.99218748925043 6.140554781656619, -76.99218748925043 6.315298537512351, -77.16796873922601 6.315298537512351, -77.16796873922601 6.140554781656619))",
"gsd": 4.77731426716,
"id": "585-1059",
"links": [
{
"href": "../../../../catalog.json",
"rel": "root",
"title": "Planet Crisis Response — Colombia Earthquake (2026)",
"type": "application/json"
},
{
"href": "../../collection.json",
"rel": "parent",
"title": null,
"type": "application/json"
},
{
"href": "../../collection.json",
"rel": "collection",
"title": null,
"type": "application/json"
},
{
"href": "https://data.source.coop/planet/disasterdata/colombia-earthquake-2026-08-10/pre-event/basemap-2026q2/items/585-1059/585-1059.json",
"rel": "self",
"title": null,
"type": "application/json"
},
{
"href": "./585-1059_thumbnail.png",
"rel": "thumbnail",
"title": null,
"type": "image/png"
}
],
"pl:mosaic": "global_quarterly_2026q2_mosaic",
"pl:mosaic_id": "649cf917-0aab-40eb-94df-c222535f2cf7",
"pl:percent_covered": 100,
"pl:quad_id": "585-1059",
"proj:epsg": 3857,
"proj:shape": [
4096,
4096
],
"stac_extensions": [
"https://stac-extensions.github.io/eo/v1.0.0/schema.json",
"https://stac-extensions.github.io/view/v1.0.0/schema.json",
"https://stac-extensions.github.io/raster/v1.1.0/schema.json",
"https://stac-extensions.github.io/projection/v1.1.0/schema.json"
],
"stac_version": "1.0.0",
"start_datetime": "2026-04-01 03:00:00+03",
"type": "Feature"
}
]
The following command builds a list of GeoTIFF URLs for each tile and downloads them using eight parallel threads, resulting in 1.7 GB of data.
$ echo "WITH a AS (
SELECT DISTINCT
UNNEST([assets.visual.href]) AS url
FROM READ_PARQUET('items.parquet')
)
FROM a
WHERE url IS NOT NULL" \
| ~/duckdb -csv -noheader \
| xargs \
-I% \
-P8 \
wget -c "%"
Next, a single GeoTIFF is created from these tiles using WEBP compression, reducing the file size to 327 MB.
$ gdalbuildvrt mosaic.vrt *visual.tif
$ gdal_translate \
-co NUM_THREADS=ALL_CPUS \
-of COG \
-co COMPRESS=WEBP \
mosaic.vrt \
mosaic.tif
The JSON metadata files are then converted into a single Parquet file.
$ mkdir -p metadata
$ echo "SELECT href
FROM (
SELECT UNNEST(links, recursive := true)
FROM READ_PARQUET('items.parquet')
)
WHERE href LIKE 'https%'" \
| ~/duckdb -csv -noheader \
| xargs \
-I% \
-P8 \
wget -P metadata/ -c "%"
$ touch footprints.json; rm footprints.json
$ for FILENAME in metadata/*.json; do
jq -c . $FILENAME >> footprints.json
done
$ ~/duckdb
COPY(
SELECT * EXCLUDE(geometry),
geometry: ST_GEOMFROMGEOJSON(geometry)
FROM 'footprints.json'
) TO 'footprints.parquet' (
FORMAT 'PARQUET',
CODEC 'ZSTD',
COMPRESSION_LEVEL 22,
ROW_GROUP_SIZE 15000);
The following query counts the number of unique values for each field in the properties structure, excluding nested structures and lists.
SELECT column_name,
column_type,
approx_unique,
min,
max
FROM (SUMMARIZE
SELECT properties.*
FROM 'footprints.parquet')
WHERE column_type::TEXT NOT LIKE 'STRUCT%'
AND column_type::TEXT NOT LIKE '%[]%'
ORDER BY LOWER(column_name);
The datetime field indicates the timestamp of the oldest image in the mosaic, while end_datetime represents the publication time or the capture time of the newest image.
┌────────────────────┬─────────────┬───────────────┬──────────────────────────────────────┬──────────────────────────────────────┐
│ column_name │ column_type │ approx_unique │ min │ max │
│ varchar │ varchar │ int64 │ varchar │ varchar │
├────────────────────┼─────────────┼───────────────┼──────────────────────────────────────┼──────────────────────────────────────┤
│ constellation │ VARCHAR │ 1 │ planetscope │ planetscope │
│ datetime │ TIMESTAMP │ 1 │ 2026-05-16 12:00:00 │ 2026-05-16 12:00:00 │
│ end_datetime │ TIMESTAMP │ 1 │ 2026-07-01 00:00:00 │ 2026-07-01 00:00:00 │
│ gsd │ DOUBLE │ 1 │ 4.77731426716 │ 4.77731426716 │
│ pl:mosaic │ VARCHAR │ 1 │ global_quarterly_2026q2_mosaic │ global_quarterly_2026q2_mosaic │
│ pl:mosaic_id │ UUID │ 1 │ 649cf917-0aab-40eb-94df-c222535f2cf7 │ 649cf917-0aab-40eb-94df-c222535f2cf7 │
│ pl:percent_covered │ BIGINT │ 1 │ 100 │ 100 │
│ pl:quad_id │ VARCHAR │ 86 │ 585-1059 │ 596-1054 │
│ proj:code │ VARCHAR │ 1 │ EPSG:3857 │ EPSG:3857 │
│ start_datetime │ TIMESTAMP │ 1 │ 2026-04-01 00:00:00 │ 2026-04-01 00:00:00 │
└────────────────────┴─────────────┴───────────────┴──────────────────────────────────────┴──────────────────────────────────────┘
The map below displays the footprints of the basemap tiles in relation to Colombia and the surrounding region.

The zoomed-in view shows the area around Pereira.

Pre- and Post-Event Imagery
Event assets are categorized into pre- and post-event imagery. The post-event imagery for Nepal is used for this walkthrough.
Within the pre- or post-event imagery folders, an items.parquet file is available. This file can be accessed directly via a command-line or DuckDB link, bypassing potential Cloudflare restrictions.

The following command downloads the 83 KB Parquet-formatted, post-event metadata file for the Nepal flash flood disaster.
$ wget -O nepal.post.parquet \
https://data.source.coop/planet/disasterdata/nepal-flash-flood-2026-08-26/post-event/items.parquet
This file contains 24 records.
$ ~/duckdb
SELECT COUNT(*)
FROM 'nepal.post.parquet';
24
An example record is provided below.
$ echo "FROM 'nepal.post.parquet'
LIMIT 1" \
| ~/duckdb -json \
| jq -S .
[
{
"assets": {
"analytic": null,
"pansharpened": {
"eo:bands": null,
"href": "https://data.source.coop/planet/disasterdata/nepal-flash-flood-2026-08-26/post-event/pelican-2026-08-27/items/20260827_060956_98_3009/20260827_060956_98_3009_pansharpened.tif",
"pl:asset_type": "ortho_pansharpened",
"pl:bundle_type": "pansharpened_udm2",
"proj:bbox": [
335132.5,
3125818.0,
346500.5,
3137230.5
],
"proj:epsg": 32645,
"proj:shape": [
22825,
22736
],
"proj:transform": [
0.5,
0.0,
335132.5,
0.0,
-0.5,
3137230.5,
0.0,
0.0,
1.0
],
"raster:bands": [
{
"data_type": "uint16",
"nodata": 0.0,
"spatial_resolution": 0.5,
"statistics": {
"maximum": 58588.0,
"minimum": 11968.0
}
},
{
"data_type": "uint16",
"nodata": 0.0,
"spatial_resolution": 0.5,
"statistics": {
"maximum": 33961.0,
"minimum": 10257.0
}
},
{
"data_type": "uint16",
"nodata": 0.0,
"spatial_resolution": 0.5,
"statistics": {
"maximum": 34764.0,
"minimum": 7934.0
}
},
{
"data_type": "uint16",
"nodata": 0.0,
"spatial_resolution": 0.5,
"statistics": {
"maximum": 29368.0,
"minimum": 6403.0
}
},
{
"data_type": "uint16",
"nodata": 0.0,
"spatial_resolution": 0.5,
"statistics": {
"maximum": 42197.0,
"minimum": 7554.0
}
},
{
"data_type": "uint16",
"nodata": 0.0,
"spatial_resolution": 0.5,
"statistics": {
"maximum": 39092.0,
"minimum": 7926.0
}
}
],
"roles": [
"data"
],
"title": "Pansharpened multiband ortho COG",
"type": "image/tiff; application=geotiff; profile=cloud-optimized"
},
"thumbnail": {
"href": "https://data.source.coop/planet/disasterdata/nepal-flash-flood-2026-08-26/post-event/pelican-2026-08-27/items/20260827_060956_98_3009/20260827_060956_98_3009_thumbnail.png",
"roles": [
"thumbnail"
],
"title": "Thumbnail",
"type": "image/png"
},
"udm": null,
"udm2": {
"eo:bands": null,
"href": "https://data.source.coop/planet/disasterdata/nepal-flash-flood-2026-08-26/post-event/pelican-2026-08-27/items/20260827_060956_98_3009/20260827_060956_98_3009_udm2.tif",
"pl:asset_type": "ortho_pansharpened_udm2",
"pl:bundle_type": "pansharpened_udm2",
"proj:bbox": [
335132.5,
3125818.0,
346500.5,
3137230.5
],
"proj:epsg": 32645,
"proj:shape": [
22825,
22736
],
"proj:transform": [
0.5,
0.0,
335132.5,
0.0,
-0.5,
3137230.5,
0.0,
0.0,
1.0
],
"raster:bands": [
{
"data_type": "uint8",
"spatial_resolution": 0.5,
"statistics": {
"maximum": 1.0,
"minimum": 0.0
}
},
{
"data_type": "uint8",
"spatial_resolution": 0.5,
"statistics": {
"maximum": 0.0,
"minimum": 0.0
}
},
{
"data_type": "uint8",
"spatial_resolution": 0.5,
"statistics": {
"maximum": 1.0,
"minimum": 0.0
}
},
{
"data_type": "uint8",
"spatial_resolution": 0.5,
"statistics": {
"maximum": 1.0,
"minimum": 0.0
}
},
{
"data_type": "uint8",
"spatial_resolution": 0.5,
"statistics": {
"maximum": 0.0,
"minimum": 0.0
}
},
{
"data_type": "uint8",
"spatial_resolution": 0.5,
"statistics": {
"maximum": 1.0,
"minimum": 0.0
}
},
{
"data_type": "uint8",
"spatial_resolution": 0.5,
"statistics": {
"maximum": 100.0,
"minimum": 0.0
}
},
{
"data_type": "uint8",
"spatial_resolution": 0.5,
"statistics": {
"maximum": 2.0,
"minimum": 0.0
}
}
],
"roles": [
"data",
"snow-ice",
"cloud",
"cloud-shadow"
],
"title": "Usable Data Mask (UDM2) — per-pixel quality",
"type": "image/tiff; application=geotiff; profile=cloud-optimized"
},
"visual": {
"eo:bands": null,
"href": "https://data.source.coop/planet/disasterdata/nepal-flash-flood-2026-08-26/post-event/pelican-2026-08-27/items/20260827_060956_98_3009/20260827_060956_98_3009_visual.tif",
"pl:asset_type": "ortho_visual",
"pl:bundle_type": "visual",
"proj:bbox": [
335132.5,
3125818.0,
346500.5,
3137230.5
],
"proj:epsg": 32645,
"proj:shape": [
22825,
22736
],
"proj:transform": [
0.5,
0.0,
335132.5,
0.0,
-0.5,
3137230.5,
0.0,
0.0,
1.0
],
"raster:bands": [
{
"data_type": "uint8",
"spatial_resolution": 0.5,
"statistics": {
"maximum": 255.0,
"minimum": 0.0
}
},
{
"data_type": "uint8",
"spatial_resolution": 0.5,
"statistics": {
"maximum": 255.0,
"minimum": 0.0
}
},
{
"data_type": "uint8",
"spatial_resolution": 0.5,
"statistics": {
"maximum": 255.0,
"minimum": 0.0
}
},
{
"data_type": "uint8",
"spatial_resolution": 0.5,
"statistics": {
"maximum": 255.0,
"minimum": 0.0
}
}
],
"roles": [
"data",
"visual"
],
"title": "Visual (true-colour RGB) ortho COG",
"type": "image/tiff; application=geotiff; profile=cloud-optimized"
}
},
"bbox": {
"xmax": 85.43406669026984,
"xmin": 85.31918550951734,
"ymax": 28.35121763114424,
"ymin": 28.24911357422872
},
"collection": "post-event-pelican-2026-08-27",
"constellation": "pelican",
"created": "2026-08-27 10:33:45+03",
"datetime": "2026-08-27 09:09:56.99105+03",
"eo:cloud_cover": 85,
"geometry": "POLYGON ((85.33889798257499 28.35121763114424, 85.31918550951734 28.2661375282364, 85.41382376956273 28.24911357422872, 85.43406669026984 28.334115698528574, 85.33889798257499 28.35121763114424))",
"gsd": 0.55,
"id": "20260827_060956_98_3009",
"instruments": null,
"links": [
{
"href": "../../../../catalog.json",
"rel": "root",
"title": "Planet Crisis Response — Bhote Koshi–Trishuli Outburst Flood, Nepal (2026)",
"type": "application/json"
},
{
"href": "../../collection.json",
"rel": "parent",
"title": null,
"type": "application/json"
},
{
"href": "../../collection.json",
"rel": "collection",
"title": null,
"type": "application/json"
},
{
"href": "https://data.source.coop/planet/disasterdata/nepal-flash-flood-2026-08-26/post-event/pelican-2026-08-27/items/20260827_060956_98_3009/20260827_060956_98_3009.json",
"rel": "self",
"title": null,
"type": "application/json"
},
{
"href": "./20260827_060956_98_3009_thumbnail.png",
"rel": "thumbnail",
"title": null,
"type": "image/png"
}
],
"pl:data_version": null,
"pl:ground_control": true,
"pl:ground_control_ratio": null,
"pl:item_type": "PelicanScene",
"pl:pixel_resolution": 0.5,
"pl:publishing_stage": "finalized",
"pl:quality_category": "standard",
"pl:strip_id": "20260827_060956_98_3009_strip",
"platform": "3009",
"published": "2026-08-27 10:33:45+03",
"stac_extensions": [
"https://stac-extensions.github.io/eo/v1.0.0/schema.json",
"https://stac-extensions.github.io/view/v1.0.0/schema.json",
"https://stac-extensions.github.io/raster/v1.1.0/schema.json",
"https://stac-extensions.github.io/projection/v1.1.0/schema.json"
],
"stac_version": "1.0.0",
"type": "Feature",
"updated": "2026-08-27 10:33:45+03",
"view:azimuth": 255.9,
"view:off_nadir": 3.8,
"view:sun_azimuth": 171.2,
"view:sun_elevation": 71.6
}
]
The following query summarizes the unique values for each field in the properties structure, excluding nested structures and lists.
$ ~/duckdb --nullvalue ""
SELECT column_name,
column_type[:15],
approx_unique,
min[:25],
max[:25]
FROM (SUMMARIZE
FROM 'nepal.post.parquet')
WHERE column_type::TEXT NOT LIKE 'STRUCT%'
AND column_type::TEXT NOT LIKE '%[]%'
ORDER BY LOWER(column_name);
┌─────────────────────────┬──────────────────┬───────────────┬───────────────────────────┬───────────────────────────┐
│ column_name │ column_type[:15] │ approx_unique │ min[:25] │ max[:25] │
│ varchar │ varchar │ int64 │ varchar │ varchar │
├─────────────────────────┼──────────────────┼───────────────┼───────────────────────────┼───────────────────────────┤
│ collection │ VARCHAR │ 6 │ post-event-pelican-2026-0 │ post-event-skysat-2026-08 │
│ constellation │ VARCHAR │ 3 │ pelican │ skysat │
│ created │ TIMESTAMP WITH │ 18 │ 2026-08-26 09:32:01+03 │ 2026-09-01 09:45:14+03 │
│ datetime │ TIMESTAMP WITH │ 26 │ 2026-08-26 08:01:25.99322 │ 2026-09-01 08:06:35.68372 │
│ eo:cloud_cover │ BIGINT │ 15 │ 47 │ 93 │
│ geometry │ GEOMETRY('EPSG: │ 25 │ POLYGON ((85.339966733816 │ POLYGON ((85.321140858017 │
│ gsd │ DOUBLE │ 11 │ 0.55 │ 3.9 │
│ id │ VARCHAR │ 24 │ 20260826_050125_99_255f │ 20260901_050635_67_300b │
│ pl:data_version │ VARCHAR │ 7 │ 20260826T100156Z │ 20260828T092936Z │
│ pl:ground_control │ BOOLEAN │ 1 │ true │ true │
│ pl:ground_control_ratio │ BIGINT │ 1 │ 1 │ 1 │
│ pl:item_type │ VARCHAR │ 2 │ PSScene │ SkySatCollect │
│ pl:pixel_resolution │ DOUBLE │ 2 │ 0.5 │ 3.0 │
│ pl:publishing_stage │ VARCHAR │ 1 │ finalized │ finalized │
│ pl:quality_category │ VARCHAR │ 2 │ standard │ test │
│ pl:strip_id │ VARCHAR │ 7 │ 20260827_060956_98_3009_s │ s3_20260827T020055Z │
│ platform │ VARCHAR │ 7 │ 251f │ SSC9 │
│ published │ TIMESTAMP WITH │ 18 │ 2026-08-26 09:32:01+03 │ 2026-09-01 09:45:14+03 │
│ stac_version │ VARCHAR │ 1 │ 1.0.0 │ 1.0.0 │
│ type │ VARCHAR │ 1 │ Feature │ Feature │
│ updated │ TIMESTAMP WITH │ 12 │ 2026-08-26 17:32:46+03 │ 2026-09-02 08:47:29+03 │
│ view:azimuth │ DOUBLE │ 14 │ 3.7 │ 276.1 │
│ view:off_nadir │ DOUBLE │ 12 │ 2.1 │ 28.9 │
│ view:sun_azimuth │ DOUBLE │ 24 │ 92.7 │ 255.4 │
│ view:sun_elevation │ DOUBLE │ 21 │ 26.9 │ 71.8 │
└─────────────────────────┴──────────────────┴───────────────┴───────────────────────────┴───────────────────────────┘
The following query shows the number of images captured by each constellation per day.
PIVOT (
SELECT constellation,
taken_on: datetime::DATE,
cnt: COUNT(*)
FROM 'nepal.post.parquet'
GROUP BY 1, 2
)
ON constellation
USING SUM(cnt)
GROUP BY taken_on
ORDER BY taken_on;
┌────────────┬─────────┬─────────────┬────────┐
│ taken_on │ pelican │ planetscope │ skysat │
│ date │ int128 │ int128 │ int128 │
├────────────┼─────────┼─────────────┼────────┤
│ 2026-08-26 │ │ 9 │ │
│ 2026-08-27 │ 3 │ │ 2 │
│ 2026-08-28 │ │ 5 │ │
│ 2026-08-31 │ │ │ 2 │
│ 2026-09-01 │ 3 │ │ │
└────────────┴─────────┴─────────────┴────────┘
The table below shows the highest and lowest resolutions of imagery captured, broken down by constellation.
SELECT constellation,
min_: MIN("pl:pixel_resolution"),
max_: MAX("pl:pixel_resolution")
FROM 'nepal.post.parquet'
GROUP BY 1
ORDER BY 2;
┌───────────────┬────────┬────────┐
│ constellation │ min_ │ max_ │
│ varchar │ double │ double │
├───────────────┼────────┼────────┤
│ pelican │ 0.5 │ 0.5 │
│ skysat │ 0.5 │ 0.5 │
│ planetscope │ 3.0 │ 3.0 │
└───────────────┴────────┴────────┘
The imagery has been published as quickly as 1.4 hours after capture.
SELECT hours_: ROUND(EPOCH(created - datetime) / 3600, 1),
num_images: COUNT(*)
FROM 'nepal.post.parquet'
GROUP BY 1
ORDER BY 1;
┌────────┬────────────┐
│ hours_ │ num_images │
│ double │ int64 │
├────────┼────────────┤
│ 1.4 │ 3 │
│ 1.5 │ 4 │
│ 1.6 │ 4 │
│ 1.7 │ 1 │
│ 2.2 │ 4 │
│ 3.1 │ 4 │
│ 4.0 │ 2 │
│ 4.1 │ 2 │
└────────┴────────────┘
The map below shows the footprints of the captured imagery in relation to Nepal and southern China.

The imagery was captured at different times, with some areas overlapping with previously collected imagery.

Downloading Imagery
The following commands create a list of SkySat GeoTIFFs and download them using four parallel threads. The resulting images total 1.9 GB.
$ mkdir -p nepal_skysat
$ cd nepal_skysat
$ echo "SELECT href
FROM (
SELECT UNNEST(assets.visual, recursive := true)
FROM '../nepal.post.parquet'
WHERE constellation = 'skysat'
)" \
| ~/duckdb -csv -noheader \
| xargs \
-I% \
-P4 \
wget -c "%"
$ du -hsc *_visual.tif
749M 20260827_020055_ssc1_u0001_visual.tif
416M 20260827_020055_ssc1_u0002_visual.tif
359M 20260831_092523_ssc9_u0002_visual.tif
342M 20260831_092523_ssc9_u0003_visual.tif
1.9G total
The satellite images are displayed below.

Despite significant cloud cover during capture, some settlements affected by the flash flood are visible.

Usable Data Masks
Usable Data Masks (UDMs) accompany the imagery, indicating areas obscured by clouds. The UDMs for the above images total 49 MB.
$ echo "SELECT href
FROM (
SELECT UNNEST(assets.udm, recursive := true)
FROM '../nepal.post.parquet'
WHERE constellation = 'skysat'
)" \
| ~/duckdb -csv -noheader \
| xargs \
-I% \
-P4 \
wget -c "%"
$ du -hsc *_udm.tif
22M 20260827_020055_ssc1_u0001_udm.tif
8.8M 20260827_020055_ssc1_u0002_udm.tif
12M 20260831_092523_ssc9_u0002_udm.tif
7.5M 20260831_092523_ssc9_u0003_udm.tif
49M total
Areas colored black in the UDM indicate clear views of the Earth's surface, white represents cloud obstruction, and grey areas signify the absence of imagery.

Imagery from the PlanetScope and Tanager constellations is paired with UDM2s, which identify clouds, shadows, haze, and snow.
Thank you for reading. I offer consulting and development services in North America and Europe. Please contact me via LinkedIn to discuss your business needs.
Copyright © 2014 - 2026 Mark Litwintschik. Site template by Giulio Fidente.



