Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/generate-figures.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ jobs:
- name: Generate combined availability figure
run: uv run python plot_combined_availability.py

- name: Generate by-country availability figure
run: uv run python plot_bedmap_availability.py

- name: Generate BedMap Antarctica survey density
run: uv run python plot_survey_density.py --source bedmap --region antarctica

Expand Down
42 changes: 41 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,47 @@ Or edit `pyproject.toml` to point `xopr` at your local path.

## Entry points

All BedMap consumers share `bedmap_common.py`, which applies the campaign
exclusion list, drops BM2 files superseded by renamed BM3 files, keeps one
version of campaigns present in both BedMap2 and BedMap3, parses temporal
metadata (a missing or year-9999 end date falls back to the start date;
`TEMPORAL_OVERRIDES` fixes known bad ranges such as the SOAR 1996-2001 file), and
defines the gap rule (`MAX_POINT_SPACING_M`, 1.5 km) that decides which
consecutive points form a flight line. Per-campaign line-km for the bar
charts come from that rule applied to the point data, stored in
`bedmap_campaign_km.csv` (rebuild with `uv run python bedmap_common.py`
after changing the rules; needs the point cache), not from the simplified
catalog geometry. Change those rules there, not in individual plots.

Direct provider sources live in `extra_sources.py` and are added to every
BedMap-based figure (bar charts, survey density, coastal gaps; `--no-extra`
disables them in the map scripts):

- **AWI** ice-sounder tracks (EMR, UWB, UWBM) from the AWI map server WFS
layer `radar:tracks_3031`, dated per profile, 1994/95 to date. These
replace the AWI BedMap files (`EXTERNAL_SOURCE_PREFIXES`). The layer lists
the 60/600 ns EMR pulses and UWB standard/quicklook products as separate
features; `load_awi_campaigns` keeps one per flight.
- **KOPRI/UTIG helicopter radar** (Amundsen Sea, layers ASE2-ASE6) from the
QIceRadar index (Lindzey 2026, Zenodo 21964546 v0.3.0). Seasons are set in
`KOPRI_SEASONS`; the raw data are not released.
- **xOPR substitutes** (`opr_tracks.py`): collections listed in
`bedmap_common.OPR_SUBSTITUTIONS` are loaded from the CReSIS per-segment
CSV flight tracks (real geometry, not the simplified STAC lines) in place of
BedMap files that cannot be chained into flight lines (the 2009 Thwaites
swath product), or for xOPR-only seasons not in BedMap3 (UTIG COLDEX
2022/23 and 2023/24, GHOST2 2024/25). The institution comes from the STAC
``opr:provider`` field. `uv run python opr_tracks.py --verify` compares CSV track,
STAC and BedMap lengths for the mapped collections.

Downloads are cached under `radar_cache/` (gitignored). Dated sources are
placed in their July-June season year; BedMap campaigns keep the calendar-year
spread of their metadata range (`campaign_years`).


### `plot_combined_availability.py`

Stacked bar chart comparing data availability across BedMap and xOPR by year (2001–2023). Categorizes data as open access (xOPR), committed to release, or not released.
Stacked bar chart comparing data availability across BedMap and xOPR by year (2001–2025). Categorizes data as open access (xOPR), committed to release (AWI, including data released outside xOPR; UTIG 2008+), or not released.

```bash
uv run python plot_combined_availability.py
Expand Down Expand Up @@ -53,6 +91,8 @@ Stacked bar chart of BedMap line-km per year, colored by country of origin.
```bash
uv run python plot_bedmap_availability.py
# -> outputs/bedmap_data_availability.png
uv run python plot_bedmap_availability.py --reference-line 153000 --reference-label "Capability of 1 HAPS UAV, 11 week mission"
# -> outputs/bedmap_data_availability_ref.png (with a labelled reference line)
```

### `plot_opr_availability.py`
Expand Down
115 changes: 115 additions & 0 deletions bedmap_campaign_km.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
name,line_km
BAS_1994_Evans_AIR_BM2,12179.262650741328
BAS_1998_Dufek_AIR_BM2,4149.363483508934
BAS_2001_Bailey-Slessor_AIR_BM2,9417.10298138479
BAS_2001_MAMOG_AIR_BM2,2120.9609719280384
BAS_2001_TORUS_AIR_BM2,7172.650540529199
BAS_2004_BBAS_AIR_BM2,34282.60491095511
BAS_2005_WISE-ISODYN_AIR_BM2,59688.18212625557
BAS_2006_GRADES-IMAGE_AIR_BM2,22864.09683745935
BAS_2007_AGAP_AIR_BM2,53245.22499105713
BAS_2007_Lake-Ellsworth_GRN_BM3,291.39961512183146
BAS_2007_Rutford_GRN_BM3,1274.9219945992418
BAS_2007_TIGRIS_GRN_BM2,1105.8006929392782
BAS_2008_Lake-Ellsworth_GRN_BM3,545.0559380028765
BAS_2009_FERRIGNO_GRN_BM2,1246.2029703357764
BAS_2010_IMAFI_AIR_BM3,21935.345429941688
BAS_2010_PIG_AIR_BM2,1420.5570943738949
BAS_2011_Adelaide_AIR_BM3,2496.9405813433536
BAS_2012_Castle_GRN_BM3,212.03544768235724
BAS_2012_ICEGRAV_AIR_BM3,25010.89875150905
BAS_2013_ISTAR_GRN_BM3,2558.8971836098717
BAS_2015_FISS_AIR_BM3,5496.235300414191
BAS_2015_POLARGAP_AIR_BM3,28924.0600466957
BAS_2016_FISS_AIR_BM3,14099.682974756211
BAS_2017_English-Coast_AIR_BM3,3719.753075716266
BAS_2018_Thwaites_AIR_BM3,4254.490633743227
BAS_2019_Thwaites_AIR_BM3,4496.8047487926015
BEDMAP1_1966-2000_AIR_BM1,512751.4748787665
BGR_1999_GANOVEX-VIII-Matusevich_AIR_BM2,6783.0495726106765
BGR_1999_GANOVEX-VIII-Mertz_AIR_BM2,1300.417833082059
BGR_2002_PCMEGA_AIR_BM2,31769.13425950711
CECS_2006_Subglacial-Lake-CECs_GRN_BM3,1939.2119516739808
CRESIS_2013_Siple-Coast_AIR_BM3,17274.97212792807
INGV_1997_ITASE_AIR_BM2,3256.844228447052
INGV_1997_Talos-Dome_AIR_BM3,2263.0086327859035
INGV_1999_Talos-Dome_AIR_BM3,11153.019749818552
INGV_2001_Talos-Dome_AIR_BM3,3817.873500792265
INGV_2003_Talos-Dome_AIR_BM3,22061.592422766287
KOPRI_2017_KRT1_AIR_BM3,4339.559925100045
KOPRI_2018_KRT2_AIR_BM3,1517.431777833575
LDEO_2007_AGAP-GAMBIT_AIR_BM2,32609.428173537333
LDEO_2007_Recovery-Lakes_AIR_BM2,2877.732460003101
LDEO_2015_ROSETTA_AIR_BM3,43523.444895789056
NASA_2002_ICEBRIDGE_AIR_BM2,6238.885501372943
NASA_2004_ICEBRIDGE_AIR_BM2,4290.652034216112
NASA_2009_ICEBRIDGE_AIR_BM2,25425.4062116988
NASA_2010_ICEBRIDGE_AIR_BM2,20071.19778493137
NASA_2011_ICEBRIDGE_AIR_BM2,65228.75750691389
NASA_2012_ICEBRIDGE_AIR_BM2,32623.679849093303
NASA_2013_ICEBRIDGE_AIR_BM3,14166.211692343497
NASA_2014_ICEBRIDGE_AIR_BM3,52463.17606975831
NASA_2016_ICEBRIDGE_AIR_BM3,55826.74931727524
NASA_2017_ICEBRIDGE_AIR_BM3,30979.401647501683
NASA_2018_ICEBRIDGE_AIR_BM3,40577.38595892681
NASA_2019_ICEBRIDGE_AIR_BM3,20930.313516593415
NIPR_1992_JARE33_GRN_BM3,373.2783262633138
NIPR_1996_JARE37_GRN_BM3,1878.6244437050004
NIPR_1999_JARE40_GRN_BM3,172.8366700602826
NIPR_2007_JARE49_GRN_BM3,1438.3714194173222
NIPR_2007_JASE_GRN_BM3,2300.734965231171
NIPR_2012_JARE54_GRN_BM3,126.65998551904391
NIPR_2017_JARE59_GRN_BM3,2014.7194283145916
NIPR_2018_JARE60_GRN_BM3,8905.314937862866
NPI_2008_BELISSIMA_GRN_BM2,66.30617524699693
NPI_2010_SRM_AIR_BM2,3270.403005583427
NPI_2012_ICERISES_GRN_BM3,327.4126714386412
NPI_2015_POLARGAP_AIR_BM3,2815.366715338218
NPI_2016_MADICE_GRN_BM3,610.9044324332962
PRIC_2004_CHINARE-21_GRN_BM2,2559.9825879079253
PRIC_2007_CHINARE-24_GRN_BM2,603.3034937502167
PRIC_2015_CHA1_AIR_BM3,40177.03816930688
PRIC_2016_CHA2_AIR_BM3,21004.28350841988
PRIC_2017_CHA3_AIR_BM3,25446.21459500781
PRIC_2018_CHA4_AIR_BM3,15052.899018330012
RNRF_1971_Lambert-Amery_SEI_BM3,0.0
RNRF_1975_Filchner-Ronne_SEI_BM3,1.2835160741144491
RNRF_1975_Lazarev_SEI_BM3,9.422076160352177
RNRF_2003_AMSap5_AIR_BM3,4955.18592840916
RNRF_2004_AMSap5_AIR_BM3,6360.120969857368
RNRF_2004_Mirny-Vostok_AIR_BM3,1415.5937777432682
RNRF_2005_AMSap5_AIR_BM3,4247.575813578207
RNRF_2006_Komsom-Vostok_AIR_BM3,481.9184365624733
RNRF_2006_RAEap5_AIR_BM3,6001.475438810396
RNRF_2007_AMSap5_AIR_BM3,5729.241492597731
RNRF_2008_AMSap5_AIR_BM3,5151.903848739583
RNRF_2009_RAEap5_AIR_BM3,5002.741833256817
RNRF_2010_RAE_AIR_BM3,7363.233995436162
RNRF_2011_RAE_AIR_BM3,6977.69250118063
RNRF_2013_RAE_AIR_BM3,14361.900760595654
RNRF_2013_Vostok-Progress_AIR_BM2,1226.697313593858
RNRF_2014_RAE_AIR_BM3,6450.733145429845
RNRF_2015_RAE_AIR_BM3,6096.79731173056
RNRF_2016_RAE_AIR_BM3,6490.6332234855
RNRF_2017_RAE_AIR_BM3,6839.402395365659
RNRF_2018_RAE_AIR_BM3,5864.027618573344
RNRF_2019_RAE_AIR_BM3,5654.696345256103
STANFORD_1971_SPRI-NSF-TUD_AIR_BM3,7286.122531415287
STOLAF_1994_Siple-Dome_GRN_BM2,143.5455410337653
STOLAF_2001_ITASE-Byrd-Ellsworth_GRN_BM2,879.0093416878482
STOLAF_2001_ITASE-Ellsworth_GRN_BM2,145.10345224251216
STOLAF_2002_ITASE-Byrd-South-Pole_GRN_BM2,897.8164427905397
STOLAF_2002_ITASE-Hercules-Dome_GRN_BM2,121.7829483582652
UCANTERBURY_2008_Darwin-Hatherton_GRN_BM2,216.05856338281825
ULB_2012_BEWISE_GRN_BM3,38.48529497266142
ULB_2012_ICECON_GRN_BM3,288.4447429421593
UTIG_1991_CASERTZ_AIR_BM2,29808.04552012237
UTIG_1998_West-Marie-Byrd-Land_AIR_BM2,51534.00051425102
UTIG_1999_SOAR-LVS-WLK_AIR_BM2,152837.89738200157
UTIG_2000_Robb-Glacier_AIR_BM2,832.2557513557491
UTIG_2009_Darwin-Hatherton_AIR_BM3,698.5972199718468
UTIG_2010_ICECAP_AIR_BM3,201552.18361124923
UTIG_2013_GIMBLE_AIR_BM3,11562.400626045272
UTIG_2015_EAGLE_AIR_BM3,21958.623083374136
UTIG_2016_OLDICE_AIR_BM3,9142.624259238331
UWASHINGTON_2018_South-Pole-Lake_GRN_BM3,187.95916516155825
Loading
Loading