diff --git a/.gitignore b/.gitignore
index 1bcc695..b4e6173 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@
*~
**/*.quarto_ipynb
+_freeze/site_libs/
diff --git a/_freeze/posts/20260428-xopr-v0p5/index/execute-results/html.json b/_freeze/posts/20260428-xopr-v0p5/index/execute-results/html.json
new file mode 100644
index 0000000..aacd78b
--- /dev/null
+++ b/_freeze/posts/20260428-xopr-v0p5/index/execute-results/html.json
@@ -0,0 +1,16 @@
+{
+ "hash": "1dd16ab812f73114afa42238ab771e62",
+ "result": {
+ "engine": "jupyter",
+ "markdown": "---\ntitle: \"xOPR: Open Polar Radar data in Python\"\nauthor: \"Thomas Teisberg, Shane Grigsby, John Paden, Reece Matthews\"\ndate: \"2026-04-29\"\nimage: images/xopr-totten.png\njupyter: python3\nformat:\n html:\n code-line-numbers: true\n---\n\nPolar radar sounder data is collected by more than a dozen different institutions, with more distinct instruments and platforms than most of us can count. This international collaboration over the last 60 years has generated an enormous wealth of data. But actually using that data is hard. Different institutions release data in different formats and levels of processing. Or they may not release it at all.\n\nOpen Polar Radar is a multi-institution collaboration whose goal is to solve this data access problem by providing unified data processing tools, products, and access to the several millions line-km of existing radar sounder data. If you haven't seen it before, you should check out [Open Polar Radar](https://openpolarradar.org/), which features a growing number of datasets from different providers.\n\nAs those of you who are familiar with OPR know, though, it's been a mostly Matlab-focused ecosystem.\nFor the last 6 months, we've been quietly working away on changing that through a lightweight Python library called `xOPR`.\n\n::: {.callout-tip}\n## Give us feedback on our roadmap\nWe've reached a `v0.5` release and we're looking for feedback on what works for you, what doesn't, and what you'd like to see next. If you haven't played with `xOPR` before, check it out. Then do us a huge favor and [rank your preferences for the future roadmap in our survey here](https://forms.englacial.org/xopr-roadmap).\n:::\n\n`xOPR` provides access to the entire catalog of processed Open Polar Radar data products, cleanly integrated into the Python data ecosystem. You don't need to worry about what type of `.mat` file the source data is in, you just query for the data and get back an `xarray.Dataset`.\n\nLet's take a look at how it works.\n\n\n\n## What's in the catalog?\n\nYou can install `xOPR` with `uv add xopr` or `pip install xopr`. Once installed, connecting to the catalog is a single line:\n\n::: {#58eeeece .cell execution_count=2}\n``` {.python .cell-code}\nimport xopr\n\nopr = xopr.OPRConnection()\n```\n:::\n\n\nWhen you create an `OPRConnection`, xOPR syncs a local copy of the STAC catalog — the index of all available data. After the first sync, subsequent startups check only download changes, so it's fast.\n\nHere's how you find all of the Antarctic radar lines available in the `xOPR` catalog (so far). (Don't worry — we do Greenland too!) If you haven't checked in on OPR in a while, you might be surprised by how much ICECAP data from the University of Texas Institute for Geophysics is now included.\n\n::: {#cell-fig-antarctic-lines .cell message='false' execution_count=3}\n``` {.python .cell-code}\nimport cartopy.crs as ccrs\n\nantarctica = xopr.geometry.get_antarctic_regions(simplify_tolerance=10000)\nantarctic_frames = opr.query_frames(geometry=antarctica)\n\nantarctic_frames = antarctic_frames.assign(\n provider=antarctic_frames['properties'].str['opr:provider']\n )\n\nantarctic_frames.hvplot(by='provider', features=['coastline', 'ocean'],\n projection='EPSG:3031', height=600, linewidth=0.5)\n```\n\n::: {.cell-output .cell-output-stdout}\n```\nWarning: 2 invalid geometries were fixed before merging.\nInvalid geometry regions were: Adelie_Coast, Jason_Peninsula\n```\n:::\n\n::: {#fig-antarctic-lines .cell-output .cell-output-display execution_count=3}\n```{=html}\n \n```\n\nAll Antarctic radar sounder lines in the xOPR catalog, colored by institution. CReSIS (University of Kansas) lines are shown in blue; UTIG (University of Texas) lines in orange.\n:::\n:::\n\n\n## Querying by region\n\nIf you want to pull data for your favorite glacier, we make that easy too. You can query the catalog by many criteria, including by passing a polygon outlining your area of interest. `xOPR` also ships with a helper to load named regions from the [MEaSUREs Antarctic Boundaries](https://nsidc.org/data/nsidc-0709) dataset, so you can ask for a region by name.\n\nHere's everything in the catalog over Totten Glacier:\n\n::: {#cell-fig-totten-lines .cell execution_count=4}\n``` {.python .cell-code}\n# Load higher resolution background map features\nimport geoviews as gv\nimport cartopy.feature as cfeature\ncoast = gv.feature.Feature(cfeature.COASTLINE.with_scale('10m'))\nocean = gv.feature.Feature(cfeature.OCEAN.with_scale('10m'))\n\ntotten = xopr.geometry.get_antarctic_regions(name='Totten', merge_regions=True, simplify_tolerance=1000)\ntotten_frames = opr.query_frames(geometry=totten)\n\nregion_outline = gv.Polygons([totten]).opts(facecolor='none', edgecolor='black', linewidth=2)\n\nflight_lines = totten_frames.hvplot(by='collection', projection='EPSG:3031', height=600)\n\ncoast * ocean * region_outline * flight_lines\n```\n\n::: {#fig-totten-lines .cell-output .cell-output-display execution_count=4}\n```{=html}\n \n```\n\nRadar flight lines over the Totten region (black outline) available in the xOPR catalog.\n:::\n:::\n\n\n## Loading radar data\n\nObviously we want to do more than just look at maps. When you call `load_frame()`, you get back an `xarray.Dataset`:\n\n::: {#62be09b9 .cell execution_count=5}\n``` {.python .cell-code}\nframe = opr.load_frame(totten_frames.iloc[103])\nframe.xopr\n```\n\n::: {.cell-output .cell-output-display execution_count=5}\n```{=html}\n
\n\n\n \n \n \n \n\n \n \n \n \n \n \n \n
<xarray.Dataset> Size: 23MB\nDimensions: (slow_time: 1819, twtt: 3198)\nCoordinates:\n * slow_time (slow_time) datetime64[ns] 15kB 2009-01-18T20:57:55.468723774 ...\n * twtt (twtt) float64 26kB 8.4e-07 8.6e-07 ... 6.476e-05 6.478e-05\nData variables:\n Bottom (slow_time) float64 15kB ...\n Data (slow_time, twtt) float32 23MB ...\n Elevation (slow_time) float64 15kB ...\n Heading (slow_time) float64 15kB ...\n Latitude (slow_time) float64 15kB -69.71 -69.71 -69.71 ... -69.26 -69.26\n Longitude (slow_time) float64 15kB 111.1 111.1 111.1 ... 111.1 111.1 111.1\n Pitch (slow_time) float64 15kB ...\n Roll (slow_time) float64 15kB ...\n Surface (slow_time) float64 15kB ...\nAttributes: (12/28)\n file_version: 49\n radiometric_corr_dB: nan\n file_type: [ 97 114 114 97 121]\n source_url: https://data.cresis.ku.edu/data/rds/2008_Antarctica...\n Conventions: CF-1.8\n title: Radar Echogram Data\n ... ...\n segment: 3\n frame: 15\n mimetype: application/x-hdf5\n param_array: {'array': {'DCM': {'bin_rng': array(-0.), 'line_rng...\n param_records: {'array': {'bin_rng': array(0.), 'dline': array(11....\n param_sar: {'array': {'bin_rng': array(0.), 'dline': array(11.... Dimensions: slow_time : 1819twtt : 3198
Coordinates: (2)
Data variables: (9)
Indexes: (2)
PandasIndex
PandasIndex(DatetimeIndex(['2009-01-18 20:57:55.468723774',\n '2009-01-18 20:57:55.777794361',\n '2009-01-18 20:57:56.085989952',\n '2009-01-18 20:57:56.394193411',\n '2009-01-18 20:57:56.703063011',\n '2009-01-18 20:57:57.012187243',\n '2009-01-18 20:57:57.320883274',\n '2009-01-18 20:57:57.628307819',\n '2009-01-18 20:57:57.937282085',\n '2009-01-18 20:57:58.246114254',\n ...\n '2009-01-18 21:06:57.587496519',\n '2009-01-18 21:06:57.885521173',\n '2009-01-18 21:06:58.182675123',\n '2009-01-18 21:06:58.480691910',\n '2009-01-18 21:06:58.778690815',\n '2009-01-18 21:06:59.076415539',\n '2009-01-18 21:06:59.373368025',\n '2009-01-18 21:06:59.671616077',\n '2009-01-18 21:06:59.968513966',\n '2009-01-18 21:07:00.266277313'],\n dtype='datetime64[ns]', name='slow_time', length=1819, freq=None)) PandasIndex
PandasIndex(Index([ 8.4e-07, 8.6e-07, 8.8e-07,\n 9.000000000000001e-07, 9.200000000000001e-07, 9.400000000000001e-07,\n 9.600000000000001e-07, 9.800000000000001e-07, 1.0000000000000002e-06,\n 1.0200000000000002e-06,\n ...\n 6.460000000000007e-05, 6.462000000000007e-05, 6.464000000000007e-05,\n 6.466000000000006e-05, 6.468000000000007e-05, 6.470000000000007e-05,\n 6.472000000000007e-05, 6.474000000000006e-05, 6.476000000000006e-05,\n 6.478000000000007e-05],\n dtype='float64', name='twtt', length=3198)) Attributes: (28)
file_version : 49 radiometric_corr_dB : nan file_type : [ 97 114 114 97 121] source_url : https://data.cresis.ku.edu/data/rds/2008_Antarctica_BaslerJKB/CSARP_standard/20090118_03/Data_20090118_03_015.mat Conventions : CF-1.8 title : Radar Echogram Data institution : Open Polar Radar (OPR) source : Airborne/ground-based radar sounder history : Converted to CF-compliant format on 2026-04-28T21:37:14 references : https://gitlab.com/englacial/xopr comment : Polar radar echogram data with CF-compliant metadata geospatial_lat_min : -69.7084164730613 geospatial_lat_max : -69.26150332709584 geospatial_lon_min : 111.05359047929201 geospatial_lon_max : 111.13635239687869 time_coverage_start : 2009-01-18T20:57:55.468723774 time_coverage_end : 2009-01-18T21:07:00.266277313 collection : 2008_Antarctica_BaslerJKB data_product : CSARP_standard granule : 20090118_03_015 segment_path : 20090118_03 date_str : 20090118 segment : 3 frame : 15 mimetype : application/x-hdf5 param_array : (33) array_proc : (11) bin0 : 15.999999999999984 bins : [2.000e+00 3.000e+00 4.000e+00 ... 3.248e+03 3.249e+03 3.250e+03] chan_equal : [array(1.)] imgs : [array([1., 2.])] lines : [ 13. 24. 35. 46. 57. 68. 79. 90. 101. 112. 123. 134.\n 145. 156. 167. 178. 189. 200. 211. 222. 233. 244. 255. 266.\n 277. 288. 299. 310. 321. 332. 343. 354. 365. 376. 387. 398.\n 409. 420. 431. 442. 453. 464. 475. 486. 497. 508. 519. 530.\n 541. 552. 563. 574. 585. 596. 607. 618. 629. 640. 651. 662.\n 673. 684. 695. 706. 717. 728. 739. 750. 761. 772. 783. 794.\n 805. 816. 827. 838. 849. 860. 871. 882. 893. 904. 915. 926.\n 937. 948. 959. 970. 981. 992. 1003. 1014. 1025. 1036. 1047. 1058.\n 1069. 1080. 1091. 1102. 1113. 1124. 1135. 1146. 1157. 1168. 1179. 1190.\n 1201. 1212. 1223. 1234. 1245. 1256. 1267. 1278. 1289. 1300. 1311. 1322.\n 1333. 1344. 1355. 1366. 1377. 1388. 1399. 1410. 1421. 1432. 1443. 1454.\n 1465. 1476. 1487. 1498. 1509. 1520. 1531. 1542. 1553. 1564. 1575. 1586.\n 1597. 1608. 1619. 1630. 1641. 1652. 1663. 1674. 1685. 1696. 1707. 1718.\n 1729. 1740. 1751. 1762. 1773. 1784. 1795. 1806. 1817. 1828. 1839. 1850.\n 1861. 1872. 1883. 1894. 1905. 1916. 1927. 1938. 1949. 1960. 1971. 1982.\n 1993. 2004.] lut : [0 0] surface : [4.63000000e-06 4.63327235e-06 4.64000000e-06 4.63010399e-06\n 4.63000000e-06 4.63653622e-06 4.63000000e-06 4.63000000e-06\n 4.62865805e-06 4.62001808e-06 4.62000000e-06 4.62000000e-06\n 4.61000000e-06 4.61000000e-06 4.61000000e-06 4.61469612e-06\n 4.61979699e-06 4.61356817e-06 4.61000000e-06 4.61000000e-06\n 4.61000000e-06 4.61000000e-06 4.61000000e-06 4.61502004e-06\n 4.61000000e-06 4.61302146e-06 4.61136711e-06 4.62000000e-06\n 4.61168877e-06 4.61636382e-06 4.62000000e-06 4.62000000e-06\n 4.62000000e-06 4.62000000e-06 4.61597627e-06 4.61000000e-06\n 4.62000000e-06 4.61534547e-06 4.62000000e-06 4.62000000e-06\n 4.62000000e-06 4.61000000e-06 4.61000000e-06 4.61000000e-06\n 4.61878298e-06 4.61000000e-06 4.61000000e-06 4.61000000e-06\n 4.61000000e-06 4.61000000e-06 4.61000000e-06 4.61000000e-06\n 4.61000000e-06 4.62184856e-06 4.62204151e-06 4.63000000e-06\n 4.62890070e-06 4.62000000e-06 4.61223314e-06 4.61000000e-06\n 4.61000000e-06 4.61220017e-06 4.62000000e-06 4.62000000e-06\n 4.62000000e-06 4.62000000e-06 4.62000000e-06 4.62000000e-06\n 4.62061101e-06 4.62973082e-06 4.63000000e-06 4.63000000e-06\n 4.63000000e-06 4.64000000e-06 4.64000000e-06 4.63072722e-06\n 4.63000000e-06 4.62000000e-06 4.63000000e-06 4.63000000e-06\n 4.62090859e-06 4.63000000e-06 4.63000000e-06 4.64000000e-06\n 4.64000000e-06 4.64252671e-06 4.65000000e-06 4.65000000e-06\n 4.65000000e-06 4.65000000e-06 4.65000000e-06 4.65000000e-06\n 4.65081174e-06 4.66000000e-06 4.65253368e-06 4.65000000e-06\n 4.64794308e-06 4.65000000e-06 4.65000000e-06 4.65000000e-06\n 4.65738735e-06 4.66000000e-06 4.66000000e-06 4.66000000e-06\n 4.67000000e-06 4.67000000e-06 4.67000000e-06 4.66461995e-06\n 4.67000000e-06 4.67000000e-06 4.67000000e-06 4.66101660e-06\n 4.66728880e-06 4.67861857e-06 4.68000000e-06 4.68000000e-06\n 4.68000000e-06 4.68000000e-06 4.68000000e-06 4.68000000e-06\n 4.68000000e-06 4.68000000e-06 4.68053891e-06 4.69000000e-06\n 4.69000000e-06 4.70000000e-06 4.70000000e-06 4.70000000e-06\n 4.70974326e-06 4.70056330e-06 4.70242999e-06 4.70000000e-06\n 4.71000000e-06 4.71000000e-06 4.71000000e-06 4.71000000e-06\n 4.71000000e-06 4.71617437e-06 4.71892610e-06 4.71737421e-06\n 4.72000000e-06 4.72000000e-06 4.72000000e-06 4.72000000e-06\n 4.73000000e-06 4.73000000e-06 4.72969196e-06 4.72011883e-06\n 4.72000000e-06 4.72000000e-06 4.72638011e-06 4.72000000e-06\n 4.72000000e-06 4.72000000e-06 4.72000000e-06 4.73000000e-06\n 4.73000000e-06 4.73000000e-06 4.74000000e-06 4.74000000e-06\n 4.74000000e-06 4.74000000e-06 4.74000000e-06 4.74290668e-06\n 4.75000000e-06 4.75000000e-06 4.75000000e-06 4.74516811e-06\n 4.75000000e-06 4.74820240e-06 4.74005012e-06 4.74056572e-06\n 4.74000000e-06 4.74513948e-06 4.75000000e-06 4.74176712e-06\n 4.75996070e-06 4.75083055e-06 4.75740226e-06 4.76000000e-06\n 4.76337808e-06 4.77000000e-06] surface_theta : 0.0 wfs : (74) BW_window : [52000000. 68000000.] DDC_NCO_delay : -4.800000000000001e-07 DDC_dec : 1.0 DDC_dec_max : 1.0 DDC_freq : 70000000.0 Nt : 3250.0 Nt_pc : 3250.0 Nt_raw : 3200.0 Nt_ref : 51.0 Tadc_adjust : 1.3e-06 Tpd : 1e-06 Tsys : [0. 0.] adc_gains_dB : [ 0. 39.] adc_per_board : 4.0 bad_value : 0.0 bit_shifts : [0. 0.] blank : [-inf -inf] chan_equal : chan_equal_dB : [0. 0.] chan_equal_deg : [0. 0.] chirp_rate : 15000000000000.0 coh_noise_method : analysis complex : 0.0 conjugate_on_load : 0.0 f0 : 52500000.0 f1 : 67500000.0 fLO : 0.0 fc : 60000000.0 fmult : 1.0 freq : [60000000. 60015384.61538462 60030769.23076923 ...\n 59953846.15384615 59969230.76923077 59984615.38461538] freq_pc : [60000000. 60015384.61538462 60030769.23076923 ...\n 59953846.15384616 59969230.76923077 59984615.38461538] freq_raw : [ 0. 15625. 31250. ... -46875. -31250. -15625.] fs : 50000000.0 fs_pc : 50000000.0 fs_raw : 50000000.0 ft_dec : [1. 1.] ft_wind_time : [0 0] gain_dir : gain_en : [0. 0.] interleaved : 1.0 nz_complex : 0 nz_trim : [0, 0] offset : 0.0 pad_length : 50.0 presum_threshold : 0.5 presums : 32.0 quantization_to_V : [1.52587891e-05 1.52587891e-05] quantization_to_V_dynamic : 0 record_mode : 2.0 ref : [array([(0.25055326, -0.12517479), (0.25656258, -0.11237902),\n (0.26198676, -0.09919466), ..., (0.22931415, -0.16102933),\n (0.23689888, -0.14951775), (0.24398865, -0.13756069)],\n shape=(3250,), dtype=[('real', '<f8'), ('imag', '<f8')]), array([(0.25055326, -0.12517479), (0.25656258, -0.11237902),\n (0.26198676, -0.09919466), ..., (0.22931415, -0.16102933),\n (0.23689888, -0.14951775), (0.24398865, -0.13756069)],\n shape=(3250,), dtype=[('real', '<f8'), ('imag', '<f8')])] ref_fn : ref_windowed : [0 0] rx_paths : [1. 2.] sample_size : 2.0 sample_type : int16 system_dB : 0.0 t0_raw : 1.3e-06 t_ref : 0.0 td_mean : 3e-06 time : [3.200e-07 3.400e-07 3.600e-07 ... 6.526e-05 6.528e-05 6.530e-05] time_correction : 1.9999999999999914e-08 time_pc : [3.000e-07 3.200e-07 3.400e-07 ... 6.524e-05 6.526e-05 6.528e-05] time_raw : [1.300e-06 1.320e-06 1.340e-06 ... 6.524e-05 6.526e-05 6.528e-05] time_raw_trim : [0. 0.] tukey : 0.1 tx_weights : [1. 0.] wf_ID_best : 1 wf_header_size : 0.0 zero_pad : 0.0 cluster : (22) cpu_time_mult : 20.0 data_location : /kucresis/scratch/tteisberg_sta/scripts/opr_user_tmp/cluster desired_time_per_job : 9600.0 file_check_pause : 4.0 hidden_depend_funs : [[[array([116, 111, 109, 111, 95, 99, 111, 108, 108, 97, 116, 101, 95,\n 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 99, 111, 109, 98,\n 105, 110, 101, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 95, 115, 116, 97, 116, 115, 95, 109, 97, 120, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 95, 115, 116, 97, 116, 115, 95, 107, 120, 46, 109]), array(2.)]], [[array([113, 108, 111, 111, 107, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([113, 108, 111, 111, 107, 95, 99, 111, 109, 98, 105, 110, 101,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([115, 97, 114, 95, 99, 111, 111, 114, 100, 95, 116, 97, 115,\n 107, 46, 109]), array(2.)]], [[array([115, 97, 114, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 114, 114, 97, 121, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 114, 114, 97, 121, 95, 99, 111, 109, 98, 105, 110, 101,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([110, 115, 105, 100, 99, 95, 100, 101, 108, 105, 118, 101, 114,\n 121, 95, 115, 99, 114, 105, 112, 116, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([112, 114, 101, 112, 114, 111, 99, 101, 115, 115, 95, 116, 97,\n 115, 107, 46, 109]), array(2.)]], [[array([108, 97, 121, 101, 114, 95, 116, 114, 97, 99, 107, 101, 114,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([108, 97, 121, 101, 114, 95, 116, 114, 97, 99, 107, 101, 114,\n 95, 99, 111, 109, 98, 105, 110, 101, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([112, 111, 108, 97, 114, 105, 109, 101, 116, 114, 105, 99, 95,\n 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([115, 105, 109, 95, 100, 111, 97, 95, 116, 97, 115, 107, 46,\n 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 50, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 66, 97,\n 115, 108, 101, 114, 77, 75, 66, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 66, 97,\n 115, 108, 101, 114, 77, 75, 66, 95, 97, 99, 99, 117, 109,\n 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 53, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 54, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 55, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 54, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 115, 110, 111, 119, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 95, 97, 99, 99, 117, 109, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 71, 72, 79, 83, 84, 95, 114, 100, 115,\n 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 71, 72, 79, 83, 84, 95, 115, 110, 111,\n 119, 46, 109]), array(2.)]], [[array([104, 97, 110, 110, 105, 110, 103, 46, 109]), array(0.)]], [[array([104, 97, 109, 109, 105, 110, 103, 46, 109]), array(0.)]], [[array([ 98, 108, 97, 99, 107, 109, 97, 110, 46, 109]), array(0.)]], [[array([116, 117, 107, 101, 121, 119, 105, 110, 46, 109]), array(0.)]], [[array([116, 117, 107, 101, 121, 119, 105, 110, 95, 116, 114, 105, 109,\n 46, 109]), array(1.)]], [[array([ 99, 104, 101, 98, 119, 105, 110, 46, 109]), array(0.)]], [[array([107, 97, 105, 115, 101, 114, 46, 109]), array(0.)]], [[array([ 98, 111, 120, 99, 97, 114, 46, 109]), array(0.)]], [[array([ 98, 117, 116, 116, 101, 114, 46, 109]), array(0.)]], [[array([ 97, 114, 114, 97, 121, 95, 112, 114, 111, 99, 95, 115, 118,\n 46, 109]), array(1.)]], [[array([108, 101, 118, 101, 114, 95, 97, 114, 109, 46, 109]), array(1.)]], [[array([100, 111, 97, 95, 110, 111, 110, 108, 99, 111, 110, 46, 109]), array(1.)]], [[array([ 98, 117, 114, 115, 116, 95, 110, 111, 105, 115, 101, 95, 99,\n 111, 114, 114, 46, 109]), array(1.)]], [[array([ 98, 117, 114, 115, 116, 95, 110, 111, 105, 115, 101, 95, 98,\n 97, 100, 95, 115, 97, 109, 112, 108, 101, 115, 46, 109]), array(1.)]]] job_complete_pause : 60.0 ld_library_path : /panfs/pfs.local/software/7/install/openmpi/4.0/gcc/8.3/lib:/panfs/pfs.local/software/7/install/binutils/2.32/lib:/panfs/pfs.local/software/7/install/gcc/8.3/lib64:/panfs/pfs.local/software/7/install/gcc/8.3/lib:/opt/thinlinc/lib64:/opt/thinlinc/lib matlab_mcr_path : /kucresis/scratch/software/matlab/MCR_install/R2024b/ max_cpu_time_mode : truncate max_jobs_active : 400.0 max_mem_mode : truncate max_mem_per_job : 250000000000.0 max_ppn : 4.0 max_retries : 2.0 max_time_per_job : 172800.0 mem_mult : 3.0 mem_mult_mode : auto mem_to_ppn : 9375000000.0 slurm_submit_arguments : -N 1 -n 1 --cpus-per-task=%p --mem=%m --time=%t stat_pause : 2.0 submit_pause : 0.2 type : slurm data_path : /cresis/data/ data_support_path : /resfs/GROUPS/CRESIS/dataproducts/metadata day_seg : 20090118_03 fn : /kucresis/scratch/tteisberg_sta/scripts/opr_params/rds_param_2008_Antarctica_BaslerJKB.xlsx gis_path : /resfs/GROUPS/CRESIS/dataproducts/GIS_data mat_file_version : -v7.3','-nocompression opr_file_lock : 0 opr_file_lock_check : 1 opr_tmp_path : /cresis/dataproducts/opr_data/opr_tmp out_path : /cresis/dataproducts/opr_data param_file_version : 4.0 param_path : /kucresis/scratch/tteisberg_sta/scripts/opr_params path : /kucresis/scratch/tteisberg_sta/scripts/opr/matlab path_override : /kucresis/scratch/tteisberg_sta/scripts/run_opr radar : (6) Vpp_scale : 2.0 adc_bits : 12.0 fs : 50000000.0 prf : 6400.0 wfs : (76) BW_window : [52000000. 68000000.] DDC_NCO_delay : -4.800000000000001e-07 DDC_dec : 1.0 DDC_dec_max : 1.0 DDC_freq : 70000000.0 Nt : 3250.0 Nt_pc : 3250.0 Nt_raw : 3200.0 Nt_ref : 51.0 Tadc : 0.0 Tadc_adjust : 1.3e-06 Tpd : 1e-06 Tsys : [0. 0.] adc_gains_dB : [ 0. 39.] adc_per_board : 4.0 adcs : [1. 2.] bad_value : 0.0 bit_shifts : [0. 0.] blank : [-inf -inf] chan_equal : chan_equal_dB : [0. 0.] chan_equal_deg : [0. 0.] chirp_rate : 15000000000000.0 coh_noise_method : analysis complex : 0.0 conjugate_on_load : 0.0 f0 : 52500000.0 f1 : 67500000.0 fLO : 0.0 fc : 60000000.0 fmult : 1.0 freq : [60000000. 60015384.61538462 60030769.23076923 ...\n 59953846.15384616 59969230.76923077 59984615.38461538] freq_pc : [60000000. 60015384.61538462 60030769.23076923 ...\n 59953846.15384616 59969230.76923077 59984615.38461538] freq_raw : [70000000. 70015625. 70031250. ... 69953125. 69968750. 69984375.] fs : 50000000.0 fs_pc : 50000000.0 fs_raw : 50000000.0 ft_dec : [1. 1.] ft_wind_time : [0 0] gain_dir : gain_en : [0. 0.] interleaved : 1.0 nz_complex : 0 nz_trim : [0, 0] offset : 0.0 pad_length : 50.0 presum_threshold : 0.5 presums : 32.0 quantization_to_V : [1.52587891e-05 1.52587891e-05] quantization_to_V_dynamic : 0 record_mode : 2.0 ref : [array([(0.25055326, -0.12517479), (0.25656258, -0.11237902),\n (0.26198676, -0.09919466), ..., (0.22931415, -0.16102933),\n (0.23689888, -0.14951775), (0.24398865, -0.13756069)],\n shape=(3250,), dtype=[('real', '<f8'), ('imag', '<f8')]), array([(0.25055326, -0.12517479), (0.25656258, -0.11237902),\n (0.26198676, -0.09919466), ..., (0.22931415, -0.16102933),\n (0.23689888, -0.14951775), (0.24398865, -0.13756069)],\n shape=(3250,), dtype=[('real', '<f8'), ('imag', '<f8')])] ref_fn : ref_windowed : [0 0] rx_paths : [1. 2.] sample_size : 2.0 sample_type : int16 system_dB : 0.0 t0_raw : 1.3e-06 t_ref : 0.0 td_mean : 3e-06 time : [3.200e-07 3.400e-07 3.600e-07 ... 6.526e-05 6.528e-05 6.530e-05] time_correction : 1.9999999999999914e-08 time_pc : [3.000e-07 3.200e-07 3.400e-07 ... 6.524e-05 6.526e-05 6.528e-05] time_raw : [1.300e-06 1.320e-06 1.340e-06 ... 6.524e-05 6.526e-05 6.528e-05] time_raw_trim : [0. 0.] tukey : 0.1 tx_weights : [1. 0.] wf_ID_best : 1 wf_header_size : 0.0 zero_pad : 0.0 radar_name : rds records : (3) file : (11) base_dir : /kucresis/scratch/data/UTIG/UTIG1/orig/xlob/ board_folder_name : [array([ 65, 83, 66, 47, 74, 75, 66, 49, 97, 47, 82, 49, 49,\n 87, 97, 47, 82, 65, 68, 106, 104, 49])] boards : [array([ 98, 120, 100, 115, 49]), array([ 98, 120, 100, 115, 50])] clk : 10000000.0 endian : little prefix : [array([ 98, 120, 100, 115, 49]), array([ 98, 120, 100, 115, 50])] start_idx : 1.0 start_record : [0 0] stop_idx : 1.0 stop_record : [0 0] version : 425.0 season_name : 2008_Antarctica_BaslerJKB slurm_jobs_path : support_path : /resfs/GROUPS/CRESIS/dataproducts/opr_support tmp_path : /kucresis/scratch/tteisberg_sta/scripts/opr_user_tmp user_name : tteisberg_sta param_records : (32) cluster : (20) data_location : /kucresis/scratch/tteisberg_sta/scripts/opr_user_tmp/cluster desired_time_per_job : 0.0 file_check_pause : 4.0 hidden_depend_funs : [[[array([116, 111, 109, 111, 95, 99, 111, 108, 108, 97, 116, 101, 95,\n 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 99, 111, 109, 98,\n 105, 110, 101, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 95, 115, 116, 97, 116, 115, 95, 109, 97, 120, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 95, 115, 116, 97, 116, 115, 95, 107, 120, 46, 109]), array(2.)]], [[array([113, 108, 111, 111, 107, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([113, 108, 111, 111, 107, 95, 99, 111, 109, 98, 105, 110, 101,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([115, 97, 114, 95, 99, 111, 111, 114, 100, 95, 116, 97, 115,\n 107, 46, 109]), array(2.)]], [[array([115, 97, 114, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 114, 114, 97, 121, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 114, 114, 97, 121, 95, 99, 111, 109, 98, 105, 110, 101,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([110, 115, 105, 100, 99, 95, 100, 101, 108, 105, 118, 101, 114,\n 121, 95, 115, 99, 114, 105, 112, 116, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([112, 114, 101, 112, 114, 111, 99, 101, 115, 115, 95, 116, 97,\n 115, 107, 46, 109]), array(2.)]], [[array([108, 97, 121, 101, 114, 95, 116, 114, 97, 99, 107, 101, 114,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([108, 97, 121, 101, 114, 95, 116, 114, 97, 99, 107, 101, 114,\n 95, 99, 111, 109, 98, 105, 110, 101, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([112, 111, 108, 97, 114, 105, 109, 101, 116, 114, 105, 99, 95,\n 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([115, 105, 109, 95, 100, 111, 97, 95, 116, 97, 115, 107, 46,\n 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 50, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 66, 97,\n 115, 108, 101, 114, 77, 75, 66, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 66, 97,\n 115, 108, 101, 114, 77, 75, 66, 95, 97, 99, 99, 117, 109,\n 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 53, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 54, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 55, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 54, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 115, 110, 111, 119, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 95, 97, 99, 99, 117, 109, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 71, 72, 79, 83, 84, 95, 114, 100, 115,\n 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 71, 72, 79, 83, 84, 95, 115, 110, 111,\n 119, 46, 109]), array(2.)]], [[array([104, 97, 110, 110, 105, 110, 103, 46, 109]), array(0.)]], [[array([104, 97, 109, 109, 105, 110, 103, 46, 109]), array(0.)]], [[array([ 98, 108, 97, 99, 107, 109, 97, 110, 46, 109]), array(0.)]], [[array([116, 117, 107, 101, 121, 119, 105, 110, 46, 109]), array(0.)]], [[array([116, 117, 107, 101, 121, 119, 105, 110, 95, 116, 114, 105, 109,\n 46, 109]), array(1.)]], [[array([ 99, 104, 101, 98, 119, 105, 110, 46, 109]), array(0.)]], [[array([107, 97, 105, 115, 101, 114, 46, 109]), array(0.)]], [[array([ 98, 111, 120, 99, 97, 114, 46, 109]), array(0.)]], [[array([ 98, 117, 116, 116, 101, 114, 46, 109]), array(0.)]], [[array([ 97, 114, 114, 97, 121, 95, 112, 114, 111, 99, 95, 115, 118,\n 46, 109]), array(1.)]], [[array([108, 101, 118, 101, 114, 95, 97, 114, 109, 46, 109]), array(1.)]], [[array([100, 111, 97, 95, 110, 111, 110, 108, 99, 111, 110, 46, 109]), array(1.)]], [[array([ 98, 117, 114, 115, 116, 95, 110, 111, 105, 115, 101, 95, 99,\n 111, 114, 114, 46, 109]), array(1.)]], [[array([ 98, 117, 114, 115, 116, 95, 110, 111, 105, 115, 101, 95, 98,\n 97, 100, 95, 115, 97, 109, 112, 108, 101, 115, 46, 109]), array(1.)]]] job_complete_pause : 60.0 ld_library_path : /panfs/pfs.local/software/7/install/openmpi/4.0/gcc/8.3/lib:/panfs/pfs.local/software/7/install/binutils/2.32/lib:/panfs/pfs.local/software/7/install/gcc/8.3/lib64:/panfs/pfs.local/software/7/install/gcc/8.3/lib:/opt/thinlinc/lib64:/opt/thinlinc/lib matlab_mcr_path : /kucresis/scratch/software/matlab/MCR_install/R2024b/ max_cpu_time_mode : truncate max_jobs_active : 96.0 max_mem_mode : truncate max_mem_per_job : 250000000000.0 max_ppn : 4.0 max_retries : 2.0 max_time_per_job : 172800.0 mem_mult_mode : auto mem_to_ppn : 9375000000.0 slurm_submit_arguments : -N 1 -n 1 --cpus-per-task=%p --mem=%m --time=%t stat_pause : 2.0 submit_pause : 0.2 type : slurm data_path : /cresis/data/ data_support_path : /resfs/GROUPS/CRESIS/dataproducts/metadata day_seg : 20090118_03 fn : /kucresis/scratch/tteisberg_sta/scripts/opr_params/rds_param_2008_Antarctica_BaslerJKB.xlsx gis_path : /resfs/GROUPS/CRESIS/dataproducts/GIS_data gps_source : UTIG_EPUTG1B-postproc mat_file_version : -v7.3','-nocompression opr_file_lock : 0 opr_file_lock_check : 1 opr_tmp_path : /cresis/dataproducts/opr_data/opr_tmp out_path : /cresis/dataproducts/opr_data param_file_version : 4.0 param_path : /kucresis/scratch/tteisberg_sta/scripts/opr_params path : /kucresis/scratch/tteisberg_sta/scripts/opr/matlab path_override : /kucresis/scratch/tteisberg_sta/scripts/run_opr radar_name : rds records : (10) epri_jump_threshold : 10000.0 file : (11) base_dir : /kucresis/scratch/data/UTIG/UTIG1/orig/xlob/ board_folder_name : [array([ 65, 83, 66, 47, 74, 75, 66, 49, 97, 47, 82, 49, 49,\n 87, 97, 47, 82, 65, 68, 106, 104, 49])] boards : [array([ 98, 120, 100, 115, 49]), array([ 98, 120, 100, 115, 50])] clk : 10000000.0 endian : little prefix : [array([ 98, 120, 100, 115, 49]), array([ 98, 120, 100, 115, 50])] start_idx : 1.0 start_record : 1.0 stop_idx : 1.0 stop_record : inf version : 425.0 manual_time_correct : 0.0 mask_bad : [array([0, 2]), array([0, 2])] mask_good : [array([0, 2]), array([0, 2])] presum_mode : 0.0 use_ideal_epri : 0 season_name : 2008_Antarctica_BaslerJKB slurm_jobs_path : support_path : /resfs/GROUPS/CRESIS/dataproducts/opr_support tmp_path : /kucresis/scratch/tteisberg_sta/scripts/opr_user_tmp user_name : tteisberg_sta param_sar : (33) cluster : (23) cpu_time_mult : 5.0 data_location : /kucresis/scratch/tteisberg_sta/scripts/opr_user_tmp/cluster desired_time_per_job : 15000.0 file_check_pause : 4.0 hidden_depend_funs : [[[array([116, 111, 109, 111, 95, 99, 111, 108, 108, 97, 116, 101, 95,\n 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 99, 111, 109, 98,\n 105, 110, 101, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 95, 115, 116, 97, 116, 115, 95, 109, 97, 120, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 95, 115, 116, 97, 116, 115, 95, 107, 120, 46, 109]), array(2.)]], [[array([113, 108, 111, 111, 107, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([113, 108, 111, 111, 107, 95, 99, 111, 109, 98, 105, 110, 101,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([115, 97, 114, 95, 99, 111, 111, 114, 100, 95, 116, 97, 115,\n 107, 46, 109]), array(2.)]], [[array([115, 97, 114, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 114, 114, 97, 121, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 114, 114, 97, 121, 95, 99, 111, 109, 98, 105, 110, 101,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([110, 115, 105, 100, 99, 95, 100, 101, 108, 105, 118, 101, 114,\n 121, 95, 115, 99, 114, 105, 112, 116, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([112, 114, 101, 112, 114, 111, 99, 101, 115, 115, 95, 116, 97,\n 115, 107, 46, 109]), array(2.)]], [[array([108, 97, 121, 101, 114, 95, 116, 114, 97, 99, 107, 101, 114,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([108, 97, 121, 101, 114, 95, 116, 114, 97, 99, 107, 101, 114,\n 95, 99, 111, 109, 98, 105, 110, 101, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([112, 111, 108, 97, 114, 105, 109, 101, 116, 114, 105, 99, 95,\n 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([115, 105, 109, 95, 100, 111, 97, 95, 116, 97, 115, 107, 46,\n 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 50, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 66, 97,\n 115, 108, 101, 114, 77, 75, 66, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 66, 97,\n 115, 108, 101, 114, 77, 75, 66, 95, 97, 99, 99, 117, 109,\n 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 53, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 54, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 55, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 54, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 115, 110, 111, 119, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 95, 97, 99, 99, 117, 109, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 71, 72, 79, 83, 84, 95, 114, 100, 115,\n 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 71, 72, 79, 83, 84, 95, 115, 110, 111,\n 119, 46, 109]), array(2.)]], [[array([104, 97, 110, 110, 105, 110, 103, 46, 109]), array(0.)]], [[array([104, 97, 109, 109, 105, 110, 103, 46, 109]), array(0.)]], [[array([ 98, 108, 97, 99, 107, 109, 97, 110, 46, 109]), array(0.)]], [[array([116, 117, 107, 101, 121, 119, 105, 110, 46, 109]), array(0.)]], [[array([116, 117, 107, 101, 121, 119, 105, 110, 95, 116, 114, 105, 109,\n 46, 109]), array(1.)]], [[array([ 99, 104, 101, 98, 119, 105, 110, 46, 109]), array(0.)]], [[array([107, 97, 105, 115, 101, 114, 46, 109]), array(0.)]], [[array([ 98, 111, 120, 99, 97, 114, 46, 109]), array(0.)]], [[array([ 98, 117, 116, 116, 101, 114, 46, 109]), array(0.)]], [[array([ 97, 114, 114, 97, 121, 95, 112, 114, 111, 99, 95, 115, 118,\n 46, 109]), array(1.)]], [[array([108, 101, 118, 101, 114, 95, 97, 114, 109, 46, 109]), array(1.)]], [[array([100, 111, 97, 95, 110, 111, 110, 108, 99, 111, 110, 46, 109]), array(1.)]], [[array([ 98, 117, 114, 115, 116, 95, 110, 111, 105, 115, 101, 95, 99,\n 111, 114, 114, 46, 109]), array(1.)]], [[array([ 98, 117, 114, 115, 116, 95, 110, 111, 105, 115, 101, 95, 98,\n 97, 100, 95, 115, 97, 109, 112, 108, 101, 115, 46, 109]), array(1.)]]] job_complete_pause : 60.0 ld_library_path : /panfs/pfs.local/software/7/install/openmpi/4.0/gcc/8.3/lib:/panfs/pfs.local/software/7/install/binutils/2.32/lib:/panfs/pfs.local/software/7/install/gcc/8.3/lib64:/panfs/pfs.local/software/7/install/gcc/8.3/lib:/opt/thinlinc/lib64:/opt/thinlinc/lib matlab_mcr_path : /kucresis/scratch/software/matlab/MCR_install/R2024b/ max_cpu_time_mode : truncate max_jobs_active : 400.0 max_mem_mode : truncate max_mem_per_job : 250000000000.0 max_ppn : 4.0 max_retries : 2.0 max_time_per_job : 172800.0 mem_mult : 2.0 mem_mult_mode : auto mem_to_ppn : 9375000000.0 rerun_only : 0 slurm_submit_arguments : -N 1 -n 1 --cpus-per-task=%p --mem=%m --time=%t stat_pause : 2.0 submit_pause : 0.2 type : slurm collate_coh_noise : (3) param_analysis : (33) analysis : (10) bit_mask : 7.0 block_size : 10000.0 cmd : [array({'B_filter': array(1.), 'block_ave': array(1000.), 'dec': array(1.), 'distance_weight': array(1.), 'en': array(1, dtype=uint8), 'mag_en': array(1, dtype=uint8), 'method': 'coh_noise', 'num_sam_hint': array([0, 0], dtype=uint64), 'out_path': 'analysis', 'pulse_comp': array(1, dtype=uint8), 'start_time': array(-inf), 'stop_time': array(inf), 'threshold': array(inf), 'threshold_coh_ave': array(1.), 'threshold_removeDC': array(0, dtype=uint8), 'trim': array([0., 0.]), 'wf_adcs': [array(1.), array(1.)]},\n dtype=object)] ft_wind : [0 0] imgs : [array([1., 1.]), array([1., 2.])] out_path : analysis presums : 1.0 pulse_comp : 1 resample : [[1. 1.]\n [1. 1.]] cluster : (23) cpu_time_mult : 40.0 data_location : /kucresis/scratch/tteisberg_sta/scripts/opr_user_tmp/cluster desired_time_per_job : 192.0 file_check_pause : 4.0 hidden_depend_funs : [[[array([116, 111, 109, 111, 95, 99, 111, 108, 108, 97, 116, 101, 95,\n 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 99, 111, 109, 98,\n 105, 110, 101, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 95, 115, 116, 97, 116, 115, 95, 109, 97, 120, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 95, 115, 116, 97, 116, 115, 95, 107, 120, 46, 109]), array(2.)]], [[array([113, 108, 111, 111, 107, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([113, 108, 111, 111, 107, 95, 99, 111, 109, 98, 105, 110, 101,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([115, 97, 114, 95, 99, 111, 111, 114, 100, 95, 116, 97, 115,\n 107, 46, 109]), array(2.)]], [[array([115, 97, 114, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 114, 114, 97, 121, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 114, 114, 97, 121, 95, 99, 111, 109, 98, 105, 110, 101,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([110, 115, 105, 100, 99, 95, 100, 101, 108, 105, 118, 101, 114,\n 121, 95, 115, 99, 114, 105, 112, 116, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([112, 114, 101, 112, 114, 111, 99, 101, 115, 115, 95, 116, 97,\n 115, 107, 46, 109]), array(2.)]], [[array([108, 97, 121, 101, 114, 95, 116, 114, 97, 99, 107, 101, 114,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([108, 97, 121, 101, 114, 95, 116, 114, 97, 99, 107, 101, 114,\n 95, 99, 111, 109, 98, 105, 110, 101, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([112, 111, 108, 97, 114, 105, 109, 101, 116, 114, 105, 99, 95,\n 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([115, 105, 109, 95, 100, 111, 97, 95, 116, 97, 115, 107, 46,\n 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 50, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 66, 97,\n 115, 108, 101, 114, 77, 75, 66, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 66, 97,\n 115, 108, 101, 114, 77, 75, 66, 95, 97, 99, 99, 117, 109,\n 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 53, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 54, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 55, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 54, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 115, 110, 111, 119, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 95, 97, 99, 99, 117, 109, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 71, 72, 79, 83, 84, 95, 114, 100, 115,\n 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 71, 72, 79, 83, 84, 95, 115, 110, 111,\n 119, 46, 109]), array(2.)]], [[array([104, 97, 110, 110, 105, 110, 103, 46, 109]), array(0.)]], [[array([104, 97, 109, 109, 105, 110, 103, 46, 109]), array(0.)]], [[array([ 98, 108, 97, 99, 107, 109, 97, 110, 46, 109]), array(0.)]], [[array([116, 117, 107, 101, 121, 119, 105, 110, 46, 109]), array(0.)]], [[array([116, 117, 107, 101, 121, 119, 105, 110, 95, 116, 114, 105, 109,\n 46, 109]), array(1.)]], [[array([ 99, 104, 101, 98, 119, 105, 110, 46, 109]), array(0.)]], [[array([107, 97, 105, 115, 101, 114, 46, 109]), array(0.)]], [[array([ 98, 111, 120, 99, 97, 114, 46, 109]), array(0.)]], [[array([ 98, 117, 116, 116, 101, 114, 46, 109]), array(0.)]], [[array([ 97, 114, 114, 97, 121, 95, 112, 114, 111, 99, 95, 115, 118,\n 46, 109]), array(1.)]], [[array([108, 101, 118, 101, 114, 95, 97, 114, 109, 46, 109]), array(1.)]], [[array([100, 111, 97, 95, 110, 111, 110, 108, 99, 111, 110, 46, 109]), array(1.)]], [[array([ 98, 117, 114, 115, 116, 95, 110, 111, 105, 115, 101, 95, 99,\n 111, 114, 114, 46, 109]), array(1.)]], [[array([ 98, 117, 114, 115, 116, 95, 110, 111, 105, 115, 101, 95, 98,\n 97, 100, 95, 115, 97, 109, 112, 108, 101, 115, 46, 109]), array(1.)]]] job_complete_pause : 60.0 ld_library_path : /panfs/pfs.local/software/7/install/openmpi/4.0/gcc/8.3/lib:/panfs/pfs.local/software/7/install/binutils/2.32/lib:/panfs/pfs.local/software/7/install/gcc/8.3/lib64:/panfs/pfs.local/software/7/install/gcc/8.3/lib:/opt/thinlinc/lib64:/opt/thinlinc/lib matlab_mcr_path : /kucresis/scratch/software/matlab/MCR_install/R2024b/ max_cpu_time_mode : truncate max_jobs_active : 96.0 max_mem_mode : truncate max_mem_per_job : 250000000000.0 max_ppn : 4.0 max_retries : 2.0 max_time_per_job : 172800.0 mem_mult : 30.0 mem_mult_mode : auto mem_to_ppn : 9375000000.0 rerun_only : 0 slurm_submit_arguments : -N 1 -n 1 --cpus-per-task=%p --mem=%m --time=%t stat_pause : 2.0 submit_pause : 0.2 type : slurm data_path : /cresis/data/ data_support_path : /resfs/GROUPS/CRESIS/dataproducts/metadata day_seg : 20090118_03 fn : /kucresis/scratch/tteisberg_sta/scripts/opr_params/rds_param_2008_Antarctica_BaslerJKB.xlsx gis_path : /resfs/GROUPS/CRESIS/dataproducts/GIS_data mat_file_version : -v7.3','-nocompression opr_file_lock : 0 opr_file_lock_check : 1 opr_tmp_path : /cresis/dataproducts/opr_data/opr_tmp out_path : /cresis/dataproducts/opr_data param_file_version : 4.0 param_path : /kucresis/scratch/tteisberg_sta/scripts/opr_params path : /kucresis/scratch/tteisberg_sta/scripts/opr/matlab path_override : /kucresis/scratch/tteisberg_sta/scripts/run_opr radar : [0 0] radar_name : rds records : (3) file : (11) base_dir : /kucresis/scratch/data/UTIG/UTIG1/orig/xlob/ board_folder_name : [array([ 65, 83, 66, 47, 74, 75, 66, 49, 97, 47, 82, 49, 49,\n 87, 97, 47, 82, 65, 68, 106, 104, 49])] boards : [array([ 98, 120, 100, 115, 49]), array([ 98, 120, 100, 115, 50])] clk : 10000000.0 endian : little prefix : [array([ 98, 120, 100, 115, 49]), array([ 98, 120, 100, 115, 50])] start_idx : 1.0 start_record : [0 0] stop_idx : 1.0 stop_record : [0 0] version : 425.0 season_name : 2008_Antarctica_BaslerJKB slurm_jobs_path : support_path : /resfs/GROUPS/CRESIS/dataproducts/opr_support tmp_path : /kucresis/scratch/tteisberg_sta/scripts/opr_user_tmp user_name : tteisberg_sta param_collate : (33) cluster : (20) data_location : /kucresis/scratch/tteisberg_sta/scripts/opr_user_tmp/cluster desired_time_per_job : 0.0 file_check_pause : 4.0 hidden_depend_funs : [[[array([116, 111, 109, 111, 95, 99, 111, 108, 108, 97, 116, 101, 95,\n 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 99, 111, 109, 98,\n 105, 110, 101, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 95, 115, 116, 97, 116, 115, 95, 109, 97, 120, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 95, 115, 116, 97, 116, 115, 95, 107, 120, 46, 109]), array(2.)]], [[array([113, 108, 111, 111, 107, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([113, 108, 111, 111, 107, 95, 99, 111, 109, 98, 105, 110, 101,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([115, 97, 114, 95, 99, 111, 111, 114, 100, 95, 116, 97, 115,\n 107, 46, 109]), array(2.)]], [[array([115, 97, 114, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 114, 114, 97, 121, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 114, 114, 97, 121, 95, 99, 111, 109, 98, 105, 110, 101,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([110, 115, 105, 100, 99, 95, 100, 101, 108, 105, 118, 101, 114,\n 121, 95, 115, 99, 114, 105, 112, 116, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([112, 114, 101, 112, 114, 111, 99, 101, 115, 115, 95, 116, 97,\n 115, 107, 46, 109]), array(2.)]], [[array([108, 97, 121, 101, 114, 95, 116, 114, 97, 99, 107, 101, 114,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([108, 97, 121, 101, 114, 95, 116, 114, 97, 99, 107, 101, 114,\n 95, 99, 111, 109, 98, 105, 110, 101, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([112, 111, 108, 97, 114, 105, 109, 101, 116, 114, 105, 99, 95,\n 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([115, 105, 109, 95, 100, 111, 97, 95, 116, 97, 115, 107, 46,\n 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 50, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 66, 97,\n 115, 108, 101, 114, 77, 75, 66, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 66, 97,\n 115, 108, 101, 114, 77, 75, 66, 95, 97, 99, 99, 117, 109,\n 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 53, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 54, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 55, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 54, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 115, 110, 111, 119, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 95, 97, 99, 99, 117, 109, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 71, 72, 79, 83, 84, 95, 114, 100, 115,\n 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 71, 72, 79, 83, 84, 95, 115, 110, 111,\n 119, 46, 109]), array(2.)]], [[array([104, 97, 110, 110, 105, 110, 103, 46, 109]), array(0.)]], [[array([104, 97, 109, 109, 105, 110, 103, 46, 109]), array(0.)]], [[array([ 98, 108, 97, 99, 107, 109, 97, 110, 46, 109]), array(0.)]], [[array([116, 117, 107, 101, 121, 119, 105, 110, 46, 109]), array(0.)]], [[array([116, 117, 107, 101, 121, 119, 105, 110, 95, 116, 114, 105, 109,\n 46, 109]), array(1.)]], [[array([ 99, 104, 101, 98, 119, 105, 110, 46, 109]), array(0.)]], [[array([107, 97, 105, 115, 101, 114, 46, 109]), array(0.)]], [[array([ 98, 111, 120, 99, 97, 114, 46, 109]), array(0.)]], [[array([ 98, 117, 116, 116, 101, 114, 46, 109]), array(0.)]], [[array([ 97, 114, 114, 97, 121, 95, 112, 114, 111, 99, 95, 115, 118,\n 46, 109]), array(1.)]], [[array([108, 101, 118, 101, 114, 95, 97, 114, 109, 46, 109]), array(1.)]], [[array([100, 111, 97, 95, 110, 111, 110, 108, 99, 111, 110, 46, 109]), array(1.)]], [[array([ 98, 117, 114, 115, 116, 95, 110, 111, 105, 115, 101, 95, 99,\n 111, 114, 114, 46, 109]), array(1.)]], [[array([ 98, 117, 114, 115, 116, 95, 110, 111, 105, 115, 101, 95, 98,\n 97, 100, 95, 115, 97, 109, 112, 108, 101, 115, 46, 109]), array(1.)]]] job_complete_pause : 60.0 ld_library_path : /panfs/pfs.local/software/7/install/openmpi/4.0/gcc/8.3/lib:/panfs/pfs.local/software/7/install/binutils/2.32/lib:/panfs/pfs.local/software/7/install/gcc/8.3/lib64:/panfs/pfs.local/software/7/install/gcc/8.3/lib:/opt/thinlinc/lib64:/opt/thinlinc/lib matlab_mcr_path : /kucresis/scratch/software/matlab/MCR_install/R2024b/ max_cpu_time_mode : truncate max_jobs_active : 400.0 max_mem_mode : truncate max_mem_per_job : 250000000000.0 max_ppn : 4.0 max_retries : 2.0 max_time_per_job : 172800.0 mem_mult_mode : auto mem_to_ppn : 9375000000.0 slurm_submit_arguments : -N 1 -n 1 --cpus-per-task=%p --mem=%m --time=%t stat_pause : 2.0 submit_pause : 0.2 type : slurm collate_coh_noise : (18) cmd_idx : 1.0 debug_max_size : 0.0 debug_out_dir : collate_coh_noise debug_plots : [array([ 99, 110, 95, 112, 108, 111, 116]), array([116, 104, 114, 101, 115, 104, 111, 108, 100, 95, 112, 108, 111,\n 116])] dft_corr_time : [array(inf), array(inf)] distance_weight : [array(1.), array(1.)] firdec_fcutoff : [array({'function_handle': {'file': '', 'function': 'sf%0@(t)1/30', 'type': 'anonymous', 'within_file_path': '', 'workspace': array([3707764736, 2, 1, 1, 3,\n 1], dtype=uint32)}, 'matlabroot': '/kucresis/scratch/software/matlab/MCR_install/R2024b', 'sentinel': '@', 'separator': '/'},\n dtype=object), array({'function_handle': {'file': '', 'function': 'sf%0@(t)1/30', 'type': 'anonymous', 'within_file_path': '', 'workspace': array([3707764736, 2, 1, 1, 4,\n 1], dtype=uint32)}, 'matlabroot': '/kucresis/scratch/software/matlab/MCR_install/R2024b', 'sentinel': '@', 'separator': '/'},\n dtype=object)] firdec_fs : [array(0.13333333), array(0.13333333)] imgs : [1. 2.] in_path : analysis method : [array([102, 105, 114, 100, 101, 99]), array([102, 105, 114, 100, 101, 99])] min_samples : 0.5 out_path : analysis threshold_en : 1 threshold_eval : [array([116, 104, 114, 101, 115, 104, 111, 108, 100, 40, 58, 41, 32,\n 61, 32, 105, 110, 102, 59]), array([116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 109,\n 97, 120, 40, 109, 105, 110, 40, 45, 49, 52, 48, 44, 116,\n 104, 114, 101, 115, 104, 111, 108, 100, 43, 49, 48, 41, 44,\n 109, 97, 120, 95, 102, 105, 108, 116, 49, 40, 49, 48, 42,\n 108, 111, 103, 49, 48, 40, 97, 98, 115, 40, 100, 102, 116,\n 95, 110, 111, 105, 115, 101, 40, 58, 44, 49, 41, 41, 46,\n 94, 50, 41, 43, 49, 53, 45, 49, 101, 54, 42, 40, 116,\n 105, 109, 101, 62, 40, 84, 112, 100, 43, 54, 46, 56, 101,\n 45, 54, 41, 41, 44, 53, 41, 41, 59])] threshold_fir_dec : 10.0 threshold_ylims : [0 0] wf_adcs : [0 0] data_path : /cresis/data/ data_support_path : /resfs/GROUPS/CRESIS/dataproducts/metadata day_seg : 20090118_03 fn : /kucresis/scratch/tteisberg_sta/scripts/opr_params/rds_param_2008_Antarctica_BaslerJKB.xlsx gis_path : /resfs/GROUPS/CRESIS/dataproducts/GIS_data mat_file_version : -v7.3','-nocompression opr_file_lock : 0 opr_file_lock_check : 1 opr_tmp_path : /cresis/dataproducts/opr_data/opr_tmp out_path : /cresis/dataproducts/opr_data param_file_version : 4.0 param_path : /kucresis/scratch/tteisberg_sta/scripts/opr_params path : /kucresis/scratch/tteisberg_sta/scripts/opr/matlab path_override : /kucresis/scratch/tteisberg_sta/scripts/run_opr radar_name : rds records : (3) file : (11) base_dir : /kucresis/scratch/data/UTIG/UTIG1/orig/xlob/ board_folder_name : [array([ 65, 83, 66, 47, 74, 75, 66, 49, 97, 47, 82, 49, 49,\n 87, 97, 47, 82, 65, 68, 106, 104, 49])] boards : [array([ 98, 120, 100, 115, 49]), array([ 98, 120, 100, 115, 50])] clk : 10000000.0 endian : little prefix : [array([ 98, 120, 100, 115, 49]), array([ 98, 120, 100, 115, 50])] start_idx : 1.0 start_record : [0 0] stop_idx : 1.0 stop_record : [0 0] version : 425.0 season_name : 2008_Antarctica_BaslerJKB slurm_jobs_path : support_path : /resfs/GROUPS/CRESIS/dataproducts/opr_support tmp_path : /kucresis/scratch/tteisberg_sta/scripts/opr_user_tmp user_name : tteisberg_sta param_records : (32) cluster : (20) data_location : /kucresis/scratch/tteisberg_sta/scripts/opr_user_tmp/cluster desired_time_per_job : 0.0 file_check_pause : 4.0 hidden_depend_funs : [[[array([116, 111, 109, 111, 95, 99, 111, 108, 108, 97, 116, 101, 95,\n 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 99, 111, 109, 98,\n 105, 110, 101, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 95, 115, 116, 97, 116, 115, 95, 109, 97, 120, 46, 109]), array(2.)]], [[array([ 97, 110, 97, 108, 121, 115, 105, 115, 95, 116, 97, 115, 107,\n 95, 115, 116, 97, 116, 115, 95, 107, 120, 46, 109]), array(2.)]], [[array([113, 108, 111, 111, 107, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([113, 108, 111, 111, 107, 95, 99, 111, 109, 98, 105, 110, 101,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([115, 97, 114, 95, 99, 111, 111, 114, 100, 95, 116, 97, 115,\n 107, 46, 109]), array(2.)]], [[array([115, 97, 114, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 114, 114, 97, 121, 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([ 97, 114, 114, 97, 121, 95, 99, 111, 109, 98, 105, 110, 101,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([110, 115, 105, 100, 99, 95, 100, 101, 108, 105, 118, 101, 114,\n 121, 95, 115, 99, 114, 105, 112, 116, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([112, 114, 101, 112, 114, 111, 99, 101, 115, 115, 95, 116, 97,\n 115, 107, 46, 109]), array(2.)]], [[array([108, 97, 121, 101, 114, 95, 116, 114, 97, 99, 107, 101, 114,\n 95, 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([108, 97, 121, 101, 114, 95, 116, 114, 97, 99, 107, 101, 114,\n 95, 99, 111, 109, 98, 105, 110, 101, 95, 116, 97, 115, 107,\n 46, 109]), array(2.)]], [[array([112, 111, 108, 97, 114, 105, 109, 101, 116, 114, 105, 99, 95,\n 116, 97, 115, 107, 46, 109]), array(2.)]], [[array([115, 105, 109, 95, 100, 111, 97, 95, 116, 97, 115, 107, 46,\n 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 50, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 66, 97,\n 115, 108, 101, 114, 77, 75, 66, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 66, 97,\n 115, 108, 101, 114, 77, 75, 66, 95, 97, 99, 99, 117, 109,\n 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 53, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 54, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 55, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 114, 100, 115, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 49, 54, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 76, 67,\n 49, 51, 48, 95, 115, 110, 111, 119, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 95, 97, 99, 99, 117, 109, 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 71, 72, 79, 83, 84, 95, 114, 100, 115,\n 46, 109]), array(2.)]], [[array([100, 101, 102, 97, 117, 108, 116, 95, 114, 97, 100, 97, 114,\n 95, 112, 97, 114, 97, 109, 115, 95, 50, 48, 50, 51, 95,\n 65, 110, 116, 97, 114, 99, 116, 105, 99, 97, 95, 71, 114,\n 111, 117, 110, 100, 71, 72, 79, 83, 84, 95, 115, 110, 111,\n 119, 46, 109]), array(2.)]], [[array([104, 97, 110, 110, 105, 110, 103, 46, 109]), array(0.)]], [[array([104, 97, 109, 109, 105, 110, 103, 46, 109]), array(0.)]], [[array([ 98, 108, 97, 99, 107, 109, 97, 110, 46, 109]), array(0.)]], [[array([116, 117, 107, 101, 121, 119, 105, 110, 46, 109]), array(0.)]], [[array([116, 117, 107, 101, 121, 119, 105, 110, 95, 116, 114, 105, 109,\n 46, 109]), array(1.)]], [[array([ 99, 104, 101, 98, 119, 105, 110, 46, 109]), array(0.)]], [[array([107, 97, 105, 115, 101, 114, 46, 109]), array(0.)]], [[array([ 98, 111, 120, 99, 97, 114, 46, 109]), array(0.)]], [[array([ 98, 117, 116, 116, 101, 114, 46, 109]), array(0.)]], [[array([ 97, 114, 114, 97, 121, 95, 112, 114, 111, 99, 95, 115, 118,\n 46, 109]), array(1.)]], [[array([108, 101, 118, 101, 114, 95, 97, 114, 109, 46, 109]), array(1.)]], [[array([100, 111, 97, 95, 110, 111, 110, 108, 99, 111, 110, 46, 109]), array(1.)]], [[array([ 98, 117, 114, 115, 116, 95, 110, 111, 105, 115, 101, 95, 99,\n 111, 114, 114, 46, 109]), array(1.)]], [[array([ 98, 117, 114, 115, 116, 95, 110, 111, 105, 115, 101, 95, 98,\n 97, 100, 95, 115, 97, 109, 112, 108, 101, 115, 46, 109]), array(1.)]]] job_complete_pause : 60.0 ld_library_path : /panfs/pfs.local/software/7/install/openmpi/4.0/gcc/8.3/lib:/panfs/pfs.local/software/7/install/binutils/2.32/lib:/panfs/pfs.local/software/7/install/gcc/8.3/lib64:/panfs/pfs.local/software/7/install/gcc/8.3/lib:/opt/thinlinc/lib64:/opt/thinlinc/lib matlab_mcr_path : /kucresis/scratch/software/matlab/MCR_install/R2024b/ max_cpu_time_mode : truncate max_jobs_active : 96.0 max_mem_mode : truncate max_mem_per_job : 250000000000.0 max_ppn : 4.0 max_retries : 2.0 max_time_per_job : 172800.0 mem_mult_mode : auto mem_to_ppn : 9375000000.0 slurm_submit_arguments : -N 1 -n 1 --cpus-per-task=%p --mem=%m --time=%t stat_pause : 2.0 submit_pause : 0.2 type : slurm data_path : /cresis/data/ data_support_path : /resfs/GROUPS/CRESIS/dataproducts/metadata day_seg : 20090118_03 fn : /kucresis/scratch/tteisberg_sta/scripts/opr_params/rds_param_2008_Antarctica_BaslerJKB.xlsx gis_path : /resfs/GROUPS/CRESIS/dataproducts/GIS_data gps_source : UTIG_EPUTG1B-postproc mat_file_version : -v7.3','-nocompression opr_file_lock : 0 opr_file_lock_check : 1 opr_tmp_path : /cresis/dataproducts/opr_data/opr_tmp out_path : /cresis/dataproducts/opr_data param_file_version : 4.0 param_path : /kucresis/scratch/tteisberg_sta/scripts/opr_params path : /kucresis/scratch/tteisberg_sta/scripts/opr/matlab path_override : /kucresis/scratch/tteisberg_sta/scripts/run_opr radar_name : rds records : (10) epri_jump_threshold : 10000.0 file : (11) base_dir : /kucresis/scratch/data/UTIG/UTIG1/orig/xlob/ board_folder_name : [array([ 65, 83, 66, 47, 74, 75, 66, 49, 97, 47, 82, 49, 49,\n 87, 97, 47, 82, 65, 68, 106, 104, 49])] boards : [array([ 98, 120, 100, 115, 49]), array([ 98, 120, 100, 115, 50])] clk : 10000000.0 endian : little prefix : [array([ 98, 120, 100, 115, 49]), array([ 98, 120, 100, 115, 50])] start_idx : 1.0 start_record : 1.0 stop_idx : 1.0 stop_record : inf version : 425.0 manual_time_correct : 0.0 mask_bad : [array([0, 2]), array([0, 2])] mask_good : [array([0, 2]), array([0, 2])] presum_mode : 0.0 use_ideal_epri : 0 season_name : 2008_Antarctica_BaslerJKB slurm_jobs_path : support_path : /resfs/GROUPS/CRESIS/dataproducts/opr_support tmp_path : /kucresis/scratch/tteisberg_sta/scripts/opr_user_tmp user_name : tteisberg_sta data_path : /cresis/data/ data_support_path : /resfs/GROUPS/CRESIS/dataproducts/metadata day_seg : 20090118_03 fn : /kucresis/scratch/tteisberg_sta/scripts/opr_params/rds_param_2008_Antarctica_BaslerJKB.xlsx gis_path : /resfs/GROUPS/CRESIS/dataproducts/GIS_data mat_file_version : -v7.3','-nocompression opr_file_lock : 0 opr_file_lock_check : 1 opr_tmp_path : /cresis/dataproducts/opr_data/opr_tmp out_path : /cresis/dataproducts/opr_data param_file_version : 4.0 param_path : /kucresis/scratch/tteisberg_sta/scripts/opr_params path : /kucresis/scratch/tteisberg_sta/scripts/opr/matlab path_override : /kucresis/scratch/tteisberg_sta/scripts/run_opr radar : [0 0] radar_name : rds records : (3) file : (11) base_dir : /kucresis/scratch/data/UTIG/UTIG1/orig/xlob/ board_folder_name : [array([ 65, 83, 66, 47, 74, 75, 66, 49, 97, 47, 82, 49, 49,\n 87, 97, 47, 82, 65, 68, 106, 104, 49])] boards : [array([ 98, 120, 100, 115, 49]), array([ 98, 120, 100, 115, 50])] clk : 10000000.0 endian : little prefix : [array([ 98, 120, 100, 115, 49]), array([ 98, 120, 100, 115, 50])] start_idx : 1.0 start_record : [0 0] stop_idx : 1.0 stop_record : [0 0] version : 425.0 season_name : 2008_Antarctica_BaslerJKB slurm_jobs_path : support_path : /resfs/GROUPS/CRESIS/dataproducts/opr_support tmp_path : /kucresis/scratch/tteisberg_sta/scripts/opr_user_tmp user_name : tteisberg_sta \n```\n:::\n:::\n\n\nThe `Data` variable is the raw radar echogram — a 2D array with `slow_time` (along-track) and `twtt` (two-way travel time, the vertical axis) as dimensions. `xOPR` is a lightweight data access tool, so we're not reinventing the wheel here. The format is the same as any OPR output product, as documented in the OPR [Echogram File Guide](https://gitlab.com/openpolarradar/opr/-/wikis/Echogram-File-Guide).\n\n`xOPR` handles both the modern HDF5 `.mat` format and legacy MATLAB v5 files transparently, so you don't need to think about what format the source file is in.\n\nIf you expand the \"Attributes\" tab above, you'll see that the processing parameters are encoded under `param_array`, `param_records`, and `param_sar`.\n\n## Plotting a radargram\n\nFrames (or combinations of frames created by passing multiple frames to `xopr.merge_frames()`) can be plotted as radargrams. Here we resample by stacking to get a consistent 2 second spacing and transform the data to log scale before plotting.\n\n::: {#cell-fig-radargram .cell execution_count=6}\n``` {.python .cell-code}\n# Resample to uniform slow_time spacing\nstacked = frame.resample(slow_time='2s').mean()\ndata_dB = 10 * np.log10(np.abs(stacked['Data']))\n\n# Plot the radargram\nfig, ax = plt.subplots(figsize=(8, 3.5))\ndata_dB.plot.imshow(x='slow_time', cmap='gray', ax=ax)\nax.set_title(f\"{stacked.attrs['collection']} — {stacked.attrs['segment_path']}\")\nax.invert_yaxis()\nfig\n```\n\n::: {.cell-output .cell-output-display execution_count=6}\n{#fig-radargram width=638 height=339}\n:::\n:::\n\n\nThe OPR dataset also includes surface and bed picks for most data. Layers (including the surface and bed) are loaded by calling `opr.get_layers()` with any radar dataset as the argument:\n\n::: {#cell-fig-radargram-layers .cell execution_count=7}\n``` {.python .cell-code}\n# Load and plot available layer picks\nlayers = opr.get_layers(stacked)\n\nif layers:\n for layer_name, layer_ds in layers.items():\n layer_ds['twtt'].plot(ax=ax, x='slow_time',\n label=layer_name, linestyle=':')\n ax.legend(loc='upper right', fontsize=9, framealpha=0.6)\n\nfig\n```\n\n::: {.cell-output .cell-output-display execution_count=7}\n{#fig-radargram-layers width=638 height=333}\n:::\n:::\n\n\n## Doing more with `xOPR`\n\nWe want `xOPR` to be your go-to tool for anything involving radar sounder data. It's designed to help you find data that matches your needs, prototype new processing or analysis methods, and then scale those across every byte of data that's available.\n\nTo get started quickly, check out the notebooks in our [full documentation](https://docs.englacial.org/xopr/). These include tutorials on narrowing down on the data you need, scaling your analysis to cloud workers, extracting surface and bed information, doing crossover analysis, and more.\n\n`xOPR` is an open-source tool and we welcome your input. If you run into problems or have questions, feel free to [open an issue](https://github.com/englacial/xopr/issues). If you want to help us make `xOPR` better, we'd love to see your pull request too!\n\nMost importantly, tell us what you want to see next by [ranking your preferences for the future roadmap in our survey here](https://forms.englacial.org/xopr-roadmap).\n\n",
+ "supporting": [
+ "index_files"
+ ],
+ "filters": [],
+ "includes": {
+ "include-in-header": [
+ "\n\n\n"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_freeze/posts/20260428-xopr-v0p5/index/figure-html/fig-radargram-layers-output-1.png b/_freeze/posts/20260428-xopr-v0p5/index/figure-html/fig-radargram-layers-output-1.png
new file mode 100644
index 0000000..e5678b7
Binary files /dev/null and b/_freeze/posts/20260428-xopr-v0p5/index/figure-html/fig-radargram-layers-output-1.png differ
diff --git a/_freeze/posts/20260428-xopr-v0p5/index/figure-html/fig-radargram-output-1.png b/_freeze/posts/20260428-xopr-v0p5/index/figure-html/fig-radargram-output-1.png
new file mode 100644
index 0000000..4c1e613
Binary files /dev/null and b/_freeze/posts/20260428-xopr-v0p5/index/figure-html/fig-radargram-output-1.png differ
diff --git a/posts/20260428-xopr-v0p5/images/xopr-totten.png b/posts/20260428-xopr-v0p5/images/xopr-totten.png
new file mode 100644
index 0000000..b6bb8bb
Binary files /dev/null and b/posts/20260428-xopr-v0p5/images/xopr-totten.png differ
diff --git a/posts/20260428-xopr-v0p5/index.qmd b/posts/20260428-xopr-v0p5/index.qmd
new file mode 100644
index 0000000..3881e80
--- /dev/null
+++ b/posts/20260428-xopr-v0p5/index.qmd
@@ -0,0 +1,163 @@
+---
+title: "xOPR: Open Polar Radar data in Python"
+author: "Thomas Teisberg, Shane Grigsby, John Paden, Reece Matthews"
+date: "2026-04-29"
+image: images/xopr-totten.png
+jupyter: python3
+format:
+ html:
+ code-line-numbers: true
+---
+
+Polar radar sounder data is collected by more than a dozen different institutions, with more distinct instruments and platforms than most of us can count. This international collaboration over the last 60 years has generated an enormous wealth of data. But actually using that data is hard. Different institutions release data in different formats and levels of processing. Or they may not release it at all.
+
+Open Polar Radar is a multi-institution collaboration whose goal is to solve this data access problem by providing unified data processing tools, products, and access to the several millions of line-km of existing radar sounder data. If you haven't seen it before, you should check out [Open Polar Radar](https://openpolarradar.org/), which features a growing number of datasets from different providers.
+
+As those of you who are familiar with OPR know, though, it's been a mostly Matlab-focused ecosystem.
+For the last 6 months, we've been quietly working away on changing that through a lightweight Python library called `xOPR`.
+
+::: {.callout-tip}
+## Give us feedback on our roadmap
+We've reached a `v0.5` release and we're looking for feedback on what works for you, what doesn't, and what you'd like to see next. If you haven't played with `xOPR` before, check it out. Then do us a huge favor and [rank your preferences for the future roadmap in our survey here](https://forms.englacial.org/xopr-roadmap).
+:::
+
+`xOPR` provides access to the entire catalog of processed Open Polar Radar data products, cleanly integrated into the Python data ecosystem. You don't need to worry about what type of `.mat` file the source data is in, you just query for the data and get back an `xarray.Dataset`.
+
+Let's take a look at how it works.
+
+```{python}
+#| echo: false
+#| output: false
+import warnings
+warnings.filterwarnings('ignore')
+
+import numpy as np
+import matplotlib.pyplot as plt
+import geopandas as gpd
+import holoviews as hv
+import hvplot.pandas
+
+hvplot.extension('matplotlib')
+```
+
+## What's in the catalog?
+
+You can install `xOPR` with `uv add xopr` or `pip install xopr`. Once installed, connecting to the catalog is a single line:
+
+```{python}
+import xopr
+
+opr = xopr.OPRConnection()
+```
+
+When you create an `OPRConnection`, xOPR syncs a local copy of the STAC catalog — the index of all available data. After the first sync, subsequent startups check only download changes, so it's fast.
+
+Here's how you find all of the Antarctic radar lines available in the `xOPR` catalog (so far). (Don't worry — we do Greenland too!) If you haven't checked in on OPR in a while, you might be surprised by how much ICECAP data from the University of Texas Institute for Geophysics is now included.
+
+```{python}
+#| label: fig-antarctic-lines
+#| fig-cap: "All Antarctic radar sounder lines in the xOPR catalog, colored by institution. CReSIS (University of Kansas) lines are shown in blue; UTIG (University of Texas) lines in orange."
+#| warning: false
+#| message: false
+
+import cartopy.crs as ccrs
+
+antarctica = xopr.geometry.get_antarctic_regions(simplify_tolerance=10000)
+antarctic_frames = opr.query_frames(geometry=antarctica)
+
+antarctic_frames = antarctic_frames.assign(
+ provider=antarctic_frames['properties'].str['opr:provider']
+ )
+
+antarctic_frames.hvplot(by='provider', features=['coastline', 'ocean'],
+ projection='EPSG:3031', height=600, linewidth=0.5)
+```
+
+## Querying by region
+
+If you want to pull data for your favorite glacier, we make that easy too. You can query the catalog by many criteria, including by passing a polygon outlining your area of interest. `xOPR` also ships with a helper to load named regions from the [MEaSUREs Antarctic Boundaries](https://nsidc.org/data/nsidc-0709) dataset, so you can ask for a region by name.
+
+Here's everything in the catalog over Totten Glacier:
+
+```{python}
+#| label: fig-totten-lines
+#| fig-cap: "Radar flight lines over the Totten region (black outline) available in the xOPR catalog."
+
+# Load higher resolution background map features
+import geoviews as gv
+import cartopy.feature as cfeature
+coast = gv.feature.Feature(cfeature.COASTLINE.with_scale('10m'))
+ocean = gv.feature.Feature(cfeature.OCEAN.with_scale('10m'))
+
+totten = xopr.geometry.get_antarctic_regions(name='Totten', merge_regions=True, simplify_tolerance=1000)
+totten_frames = opr.query_frames(geometry=totten)
+
+region_outline = gv.Polygons([totten]).opts(facecolor='none', edgecolor='black', linewidth=2)
+
+flight_lines = totten_frames.hvplot(by='collection', projection='EPSG:3031', height=600)
+
+coast * ocean * region_outline * flight_lines
+```
+
+## Loading radar data
+
+Obviously we want to do more than just look at maps. When you call `load_frame()`, you get back an `xarray.Dataset`:
+
+```{python}
+frame = opr.load_frame(totten_frames.iloc[103])
+frame.xopr
+```
+
+The `Data` variable is the raw radar echogram — a 2D array with `slow_time` (along-track) and `twtt` (two-way travel time, the vertical axis) as dimensions. `xOPR` is a lightweight data access tool, so we're not reinventing the wheel here. The format is the same as any OPR output product, as documented in the OPR [Echogram File Guide](https://gitlab.com/openpolarradar/opr/-/wikis/Echogram-File-Guide).
+
+`xOPR` handles both the modern HDF5 `.mat` format and legacy MATLAB v5 files transparently, so you don't need to think about what format the source file is in.
+
+If you expand the "Attributes" tab above, you'll see that the processing parameters are encoded under `param_array`, `param_records`, and `param_sar`.
+
+## Plotting a radargram
+
+Frames (or combinations of frames created by passing multiple frames to `xopr.merge_frames()`) can be plotted as radargrams. Here we resample by stacking to get a consistent 2 second spacing and transform the data to log scale before plotting.
+
+```{python}
+#| label: fig-radargram
+#| fig-cap: "An example radargram over Totten Glacier."
+
+# Resample to uniform slow_time spacing
+stacked = frame.resample(slow_time='2s').mean()
+data_dB = 10 * np.log10(np.abs(stacked['Data']))
+
+# Plot the radargram
+fig, ax = plt.subplots(figsize=(8, 3.5))
+data_dB.plot.imshow(x='slow_time', cmap='gray', ax=ax)
+ax.set_title(f"{stacked.attrs['collection']} — {stacked.attrs['segment_path']}")
+ax.invert_yaxis()
+fig
+```
+
+The OPR dataset also includes surface and bed picks for most data. Layers (including the surface and bed) are loaded by calling `opr.get_layers()` with any radar dataset as the argument:
+
+```{python}
+#| label: fig-radargram-layers
+#| fig-cap: "The same radargram as above with added surface and bed layer picks loaded from OPR."
+
+# Load and plot available layer picks
+layers = opr.get_layers(stacked)
+
+if layers:
+ for layer_name, layer_ds in layers.items():
+ layer_ds['twtt'].plot(ax=ax, x='slow_time',
+ label=layer_name, linestyle=':')
+ ax.legend(loc='upper right', fontsize=9, framealpha=0.6)
+
+fig
+```
+
+## Doing more with `xOPR`
+
+We want `xOPR` to be your go-to tool for anything involving radar sounder data. It's designed to help you find data that matches your needs, prototype new processing or analysis methods, and then scale those across every byte of data that's available.
+
+To get started quickly, check out the notebooks in our [full documentation](https://docs.englacial.org/xopr/). These include tutorials on narrowing down on the data you need, scaling your analysis to cloud workers, extracting surface and bed information, doing crossover analysis, and more.
+
+`xOPR` is an open-source tool and we welcome your input. If you run into problems or have questions, feel free to [open an issue](https://github.com/englacial/xopr/issues). If you want to help us make `xOPR` better, we'd love to see your pull request too!
+
+Most importantly, tell us what you want to see next by [ranking your preferences for the future roadmap in our survey here](https://forms.englacial.org/xopr-roadmap).
diff --git a/pyproject.toml b/pyproject.toml
index 3193b6d..7f527a7 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -5,6 +5,9 @@ requires-python = ">=3.13"
dependencies = [
"ipykernel>=7.1.0",
"matplotlib>=3.10.8",
+ "nbclient>=0.10.4",
+ "nbformat>=5.10.4",
"numpy>=2.3.5",
- "xopr>=0.3.0",
+ "xopr>=0.5.0",
+ "hvplot",
]
diff --git a/uv.lock b/uv.lock
index 46c7fb0..3679807 100644
--- a/uv.lock
+++ b/uv.lock
@@ -382,6 +382,27 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/ae/8c/469afb6465b853afff216f9528ffda78a915ff880ed58813ba4faf4ba0b6/contourpy-1.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b", size = 203831, upload-time = "2025-07-26T12:02:51.449Z" },
]
+[[package]]
+name = "cryptography"
+version = "41.0.7"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "cffi" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/ce/b3/13a12ea7edb068de0f62bac88a8ffd92cc2901881b391839851846b84a81/cryptography-41.0.7.tar.gz", hash = "sha256:13f93ce9bea8016c253b34afc6bd6a75993e5c40672ed5405a9c832f0d4a00bc", size = 630892, upload-time = "2023-11-28T00:49:41.784Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e4/73/5461318abd2fe426855a2f66775c063bbefd377729ece3c3ee048ddf19a5/cryptography-41.0.7-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:3c78451b78313fa81607fa1b3f1ae0a5ddd8014c38a02d9db0616133987b9cdf", size = 5342676, upload-time = "2023-11-28T00:48:49.291Z" },
+ { url = "https://files.pythonhosted.org/packages/a9/76/d705397d076fcbf5671544eb72a70b5a5ac83462d23dbd2a365a3bf3692a/cryptography-41.0.7-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:928258ba5d6f8ae644e764d0f996d61a8777559f72dfeb2eea7e2fe0ad6e782d", size = 2850425, upload-time = "2023-11-28T00:49:29.113Z" },
+ { url = "https://files.pythonhosted.org/packages/68/bb/475658ea92653a894589e657d6cea9ae01354db73405d62126ac5e74e2f8/cryptography-41.0.7-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a1b41bc97f1ad230a41657d9155113c7521953869ae57ac39ac7f1bb471469a", size = 4161547, upload-time = "2023-11-28T00:48:38.466Z" },
+ { url = "https://files.pythonhosted.org/packages/14/fd/dd5bd6ab0d12476ebca579cbfd48d31bd90fa28fa257b209df585dcf62a0/cryptography-41.0.7-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:841df4caa01008bad253bce2a6f7b47f86dc9f08df4b433c404def869f590a15", size = 4363688, upload-time = "2023-11-28T00:49:34.285Z" },
+ { url = "https://files.pythonhosted.org/packages/3e/81/ae2c51ea2b80d57d5756a12df67816230124faea0a762a7a6304fe3c819c/cryptography-41.0.7-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5429ec739a29df2e29e15d082f1d9ad683701f0ec7709ca479b3ff2708dae65a", size = 4148846, upload-time = "2023-11-28T00:49:04.704Z" },
+ { url = "https://files.pythonhosted.org/packages/62/bd/69628ab50368b1beb900eb1de5c46f8137169b75b2458affe95f2f470501/cryptography-41.0.7-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:43f2552a2378b44869fe8827aa19e69512e3245a219104438692385b0ee119d1", size = 4372805, upload-time = "2023-11-28T00:48:44.452Z" },
+ { url = "https://files.pythonhosted.org/packages/b6/4a/1808333c5ea79cb6d51102036cbcf698704b1fc7a5ccd139957aeadd2311/cryptography-41.0.7-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:af03b32695b24d85a75d40e1ba39ffe7db7ffcb099fe507b39fd41a565f1b157", size = 4255463, upload-time = "2023-11-28T00:48:32.06Z" },
+ { url = "https://files.pythonhosted.org/packages/c5/07/826d66b6b03c5bfde8b451bea22c41e68d60aafff0ffa02c5f0819844319/cryptography-41.0.7-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:49f0805fc0b2ac8d4882dd52f4a3b935b210935d500b6b805f321addc8177406", size = 4441232, upload-time = "2023-11-28T00:49:20.186Z" },
+ { url = "https://files.pythonhosted.org/packages/f3/4f/11b739e95598db236013cc9efb4e3d02b51dd0861c85470c3fe42720ef5b/cryptography-41.0.7-cp37-abi3-win32.whl", hash = "sha256:f983596065a18a2183e7f79ab3fd4c475205b839e02cbc0efbbf9666c4b3083d", size = 2236277, upload-time = "2023-11-28T00:49:09.796Z" },
+ { url = "https://files.pythonhosted.org/packages/f6/23/b28f4a03650512efff13a8fcbb977bac178a765c5a887a6720bee13fa85b/cryptography-41.0.7-cp37-abi3-win_amd64.whl", hash = "sha256:90452ba79b8788fa380dfb587cca692976ef4e757b194b093d845e8d99f612f2", size = 2671839, upload-time = "2023-11-28T00:48:41.223Z" },
+]
+
[[package]]
name = "cycler"
version = "0.12.1"
@@ -497,6 +518,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317, upload-time = "2025-09-01T09:48:08.5Z" },
]
+[[package]]
+name = "fastjsonschema"
+version = "2.21.2"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/20/b5/23b216d9d985a956623b6bd12d4086b60f0059b27799f23016af04a74ea1/fastjsonschema-2.21.2.tar.gz", hash = "sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de", size = 374130, upload-time = "2025-08-14T18:49:36.666Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl", hash = "sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463", size = 24024, upload-time = "2025-08-14T18:49:34.776Z" },
+]
+
[[package]]
name = "fonttools"
version = "4.61.1"
@@ -733,6 +763,25 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/4f/ab/a6aa43d45ceb88adc0e8c1358fa6935c6e6a5895537431dec67524ca2ccd/holoviews-1.22.1-py3-none-any.whl", hash = "sha256:6f4f0656336035cde1d8103ac6461d7c8ac9a60c4a6d883785cc81f2cc5b8702", size = 5946246, upload-time = "2025-12-05T14:54:19.191Z" },
]
+[[package]]
+name = "hvplot"
+version = "0.12.2"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "bokeh" },
+ { name = "colorcet" },
+ { name = "holoviews" },
+ { name = "numpy" },
+ { name = "packaging" },
+ { name = "pandas" },
+ { name = "panel" },
+ { name = "param" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/f5/b4/ce73a568fc263efe84cab8de04673949c8f6596f6aeb1531ca2b75b80903/hvplot-0.12.2.tar.gz", hash = "sha256:9e29bbe65f94937d4eeaeccf33566540df936c8f9aeadfa12ea9f306d5237938", size = 7084556, upload-time = "2025-12-18T11:15:37.736Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/11/cd/ec193e471780dfad60e44ded5526c123695c1354910edd537d7aa1d22094/hvplot-0.12.2-py3-none-any.whl", hash = "sha256:0687e2e4d2eeb035c437af0011922abff856054299c121914d903a02b1bb1b22", size = 180626, upload-time = "2025-12-18T11:15:35.091Z" },
+]
+
[[package]]
name = "idna"
version = "3.11"
@@ -823,6 +872,33 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" },
]
+[[package]]
+name = "jsonschema"
+version = "4.26.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "attrs" },
+ { name = "jsonschema-specifications" },
+ { name = "referencing" },
+ { name = "rpds-py" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload-time = "2026-01-07T13:41:07.246Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload-time = "2026-01-07T13:41:05.306Z" },
+]
+
+[[package]]
+name = "jsonschema-specifications"
+version = "2025.9.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "referencing" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" },
+]
+
[[package]]
name = "jupyter-client"
version = "8.7.0"
@@ -1210,6 +1286,36 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/87/0d/1861d1599571974b15b025e12b142d8e6b42ad66c8a07a89cb0fc21f1e03/narwhals-2.13.0-py3-none-any.whl", hash = "sha256:9b795523c179ca78204e3be53726da374168f906e38de2ff174c2363baaaf481", size = 426407, upload-time = "2025-12-01T13:54:03.861Z" },
]
+[[package]]
+name = "nbclient"
+version = "0.10.4"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "jupyter-client" },
+ { name = "jupyter-core" },
+ { name = "nbformat" },
+ { name = "traitlets" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/56/91/1c1d5a4b9a9ebba2b4e32b8c852c2975c872aec1fe42ab5e516b2cecd193/nbclient-0.10.4.tar.gz", hash = "sha256:1e54091b16e6da39e297b0ece3e10f6f29f4ac4e8ee515d29f8a7099bd6553c9", size = 62554, upload-time = "2025-12-23T07:45:46.369Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/83/a0/5b0c2f11142ed1dddec842457d3f65eaf71a0080894eb6f018755b319c3a/nbclient-0.10.4-py3-none-any.whl", hash = "sha256:9162df5a7373d70d606527300a95a975a47c137776cd942e52d9c7e29ff83440", size = 25465, upload-time = "2025-12-23T07:45:44.51Z" },
+]
+
+[[package]]
+name = "nbformat"
+version = "5.10.4"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "fastjsonschema" },
+ { name = "jsonschema" },
+ { name = "jupyter-core" },
+ { name = "traitlets" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/6d/fd/91545e604bc3dad7dca9ed03284086039b294c6b3d75c0d2fa45f9e9caf3/nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a", size = 142749, upload-time = "2024-04-04T11:20:37.371Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/a9/82/0340caa499416c78e5d8f5f05947ae4bc3cba53c9f038ab6e9ed964e22f1/nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b", size = 78454, upload-time = "2024-04-04T11:20:34.895Z" },
+]
+
[[package]]
name = "nest-asyncio"
version = "1.6.0"
@@ -1671,6 +1777,18 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/31/93/4641dc5d952f6bdb71dabad2c50e3f8a5d58396cdea6ff8f8a08bfd4f4a6/pyogrio-0.12.1-cp314-cp314t-win_amd64.whl", hash = "sha256:5399f66730978d8852ef5f44dbafa0f738e7f28f4f784349f36830b69a9d2134", size = 23620996, upload-time = "2025-11-28T19:04:51.132Z" },
]
+[[package]]
+name = "pyopenssl"
+version = "23.3.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "cryptography" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/bf/a0/e667c3c43b65a188cc3041fa00c50655315b93be45182b2c94d185a2610e/pyOpenSSL-23.3.0.tar.gz", hash = "sha256:6b2cba5cc46e822750ec3e5a81ee12819850b11303630d575e98108a079c2b12", size = 183043, upload-time = "2023-10-26T03:06:53.373Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/db/de/007b832ad7a95e6a73745609bbe123c407aa2c46bb0b8f765c8718294e7f/pyOpenSSL-23.3.0-py3-none-any.whl", hash = "sha256:6756834481d9ed5470f4a9393455154bc92fe7a64b7bc6ee2c804e78c52099b2", size = 58812, upload-time = "2023-10-26T03:06:51.836Z" },
+]
+
[[package]]
name = "pyparsing"
version = "3.2.5"
@@ -1848,6 +1966,19 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/81/d6/4bfbb40c9a0b42fc53c7cf442f6385db70b40f74a783130c5d0a5aa62228/pyzmq-27.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:dc5dbf68a7857b59473f7df42650c621d7e8923fb03fa74a526890f4d33cc4d7", size = 575170, upload-time = "2025-09-08T23:09:01.418Z" },
]
+[[package]]
+name = "referencing"
+version = "0.37.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "attrs" },
+ { name = "rpds-py" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" },
+]
+
[[package]]
name = "requests"
version = "2.32.5"
@@ -1863,6 +1994,72 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" },
]
+[[package]]
+name = "rpds-py"
+version = "0.30.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload-time = "2025-11-30T20:24:38.837Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/ed/dc/d61221eb88ff410de3c49143407f6f3147acf2538c86f2ab7ce65ae7d5f9/rpds_py-0.30.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2", size = 374887, upload-time = "2025-11-30T20:22:41.812Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/32/55fb50ae104061dbc564ef15cc43c013dc4a9f4527a1f4d99baddf56fe5f/rpds_py-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8", size = 358904, upload-time = "2025-11-30T20:22:43.479Z" },
+ { url = "https://files.pythonhosted.org/packages/58/70/faed8186300e3b9bdd138d0273109784eea2396c68458ed580f885dfe7ad/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4", size = 389945, upload-time = "2025-11-30T20:22:44.819Z" },
+ { url = "https://files.pythonhosted.org/packages/bd/a8/073cac3ed2c6387df38f71296d002ab43496a96b92c823e76f46b8af0543/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136", size = 407783, upload-time = "2025-11-30T20:22:46.103Z" },
+ { url = "https://files.pythonhosted.org/packages/77/57/5999eb8c58671f1c11eba084115e77a8899d6e694d2a18f69f0ba471ec8b/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7", size = 515021, upload-time = "2025-11-30T20:22:47.458Z" },
+ { url = "https://files.pythonhosted.org/packages/e0/af/5ab4833eadc36c0a8ed2bc5c0de0493c04f6c06de223170bd0798ff98ced/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2", size = 414589, upload-time = "2025-11-30T20:22:48.872Z" },
+ { url = "https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6", size = 394025, upload-time = "2025-11-30T20:22:50.196Z" },
+ { url = "https://files.pythonhosted.org/packages/91/c4/fc70cd0249496493500e7cc2de87504f5aa6509de1e88623431fec76d4b6/rpds_py-0.30.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e", size = 408895, upload-time = "2025-11-30T20:22:51.87Z" },
+ { url = "https://files.pythonhosted.org/packages/58/95/d9275b05ab96556fefff73a385813eb66032e4c99f411d0795372d9abcea/rpds_py-0.30.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d", size = 422799, upload-time = "2025-11-30T20:22:53.341Z" },
+ { url = "https://files.pythonhosted.org/packages/06/c1/3088fc04b6624eb12a57eb814f0d4997a44b0d208d6cace713033ff1a6ba/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7", size = 572731, upload-time = "2025-11-30T20:22:54.778Z" },
+ { url = "https://files.pythonhosted.org/packages/d8/42/c612a833183b39774e8ac8fecae81263a68b9583ee343db33ab571a7ce55/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31", size = 599027, upload-time = "2025-11-30T20:22:56.212Z" },
+ { url = "https://files.pythonhosted.org/packages/5f/60/525a50f45b01d70005403ae0e25f43c0384369ad24ffe46e8d9068b50086/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95", size = 563020, upload-time = "2025-11-30T20:22:58.2Z" },
+ { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139, upload-time = "2025-11-30T20:23:00.209Z" },
+ { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224, upload-time = "2025-11-30T20:23:02.008Z" },
+ { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645, upload-time = "2025-11-30T20:23:03.43Z" },
+ { url = "https://files.pythonhosted.org/packages/ff/1b/b10de890a0def2a319a2626334a7f0ae388215eb60914dbac8a3bae54435/rpds_py-0.30.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a", size = 364443, upload-time = "2025-11-30T20:23:04.878Z" },
+ { url = "https://files.pythonhosted.org/packages/0d/bf/27e39f5971dc4f305a4fb9c672ca06f290f7c4e261c568f3dea16a410d47/rpds_py-0.30.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e", size = 353375, upload-time = "2025-11-30T20:23:06.342Z" },
+ { url = "https://files.pythonhosted.org/packages/40/58/442ada3bba6e8e6615fc00483135c14a7538d2ffac30e2d933ccf6852232/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000", size = 383850, upload-time = "2025-11-30T20:23:07.825Z" },
+ { url = "https://files.pythonhosted.org/packages/14/14/f59b0127409a33c6ef6f5c1ebd5ad8e32d7861c9c7adfa9a624fc3889f6c/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db", size = 392812, upload-time = "2025-11-30T20:23:09.228Z" },
+ { url = "https://files.pythonhosted.org/packages/b3/66/e0be3e162ac299b3a22527e8913767d869e6cc75c46bd844aa43fb81ab62/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2", size = 517841, upload-time = "2025-11-30T20:23:11.186Z" },
+ { url = "https://files.pythonhosted.org/packages/3d/55/fa3b9cf31d0c963ecf1ba777f7cf4b2a2c976795ac430d24a1f43d25a6ba/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa", size = 408149, upload-time = "2025-11-30T20:23:12.864Z" },
+ { url = "https://files.pythonhosted.org/packages/60/ca/780cf3b1a32b18c0f05c441958d3758f02544f1d613abf9488cd78876378/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083", size = 383843, upload-time = "2025-11-30T20:23:14.638Z" },
+ { url = "https://files.pythonhosted.org/packages/82/86/d5f2e04f2aa6247c613da0c1dd87fcd08fa17107e858193566048a1e2f0a/rpds_py-0.30.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9", size = 396507, upload-time = "2025-11-30T20:23:16.105Z" },
+ { url = "https://files.pythonhosted.org/packages/4b/9a/453255d2f769fe44e07ea9785c8347edaf867f7026872e76c1ad9f7bed92/rpds_py-0.30.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0", size = 414949, upload-time = "2025-11-30T20:23:17.539Z" },
+ { url = "https://files.pythonhosted.org/packages/a3/31/622a86cdc0c45d6df0e9ccb6becdba5074735e7033c20e401a6d9d0e2ca0/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94", size = 565790, upload-time = "2025-11-30T20:23:19.029Z" },
+ { url = "https://files.pythonhosted.org/packages/1c/5d/15bbf0fb4a3f58a3b1c67855ec1efcc4ceaef4e86644665fff03e1b66d8d/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08", size = 590217, upload-time = "2025-11-30T20:23:20.885Z" },
+ { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806, upload-time = "2025-11-30T20:23:22.488Z" },
+ { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload-time = "2025-11-30T20:23:24.449Z" },
+ { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload-time = "2025-11-30T20:23:25.908Z" },
+ { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099, upload-time = "2025-11-30T20:23:27.316Z" },
+ { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192, upload-time = "2025-11-30T20:23:29.151Z" },
+ { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080, upload-time = "2025-11-30T20:23:30.785Z" },
+ { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841, upload-time = "2025-11-30T20:23:32.209Z" },
+ { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670, upload-time = "2025-11-30T20:23:33.742Z" },
+ { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005, upload-time = "2025-11-30T20:23:35.253Z" },
+ { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112, upload-time = "2025-11-30T20:23:36.842Z" },
+ { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049, upload-time = "2025-11-30T20:23:38.343Z" },
+ { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661, upload-time = "2025-11-30T20:23:40.263Z" },
+ { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606, upload-time = "2025-11-30T20:23:42.186Z" },
+ { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126, upload-time = "2025-11-30T20:23:44.086Z" },
+ { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371, upload-time = "2025-11-30T20:23:46.004Z" },
+ { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload-time = "2025-11-30T20:23:47.696Z" },
+ { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload-time = "2025-11-30T20:23:49.501Z" },
+ { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload-time = "2025-11-30T20:23:50.96Z" },
+ { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868, upload-time = "2025-11-30T20:23:52.494Z" },
+ { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747, upload-time = "2025-11-30T20:23:54.036Z" },
+ { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795, upload-time = "2025-11-30T20:23:55.556Z" },
+ { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330, upload-time = "2025-11-30T20:23:57.033Z" },
+ { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194, upload-time = "2025-11-30T20:23:58.637Z" },
+ { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340, upload-time = "2025-11-30T20:24:00.2Z" },
+ { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765, upload-time = "2025-11-30T20:24:01.759Z" },
+ { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834, upload-time = "2025-11-30T20:24:03.687Z" },
+ { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470, upload-time = "2025-11-30T20:24:05.232Z" },
+ { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630, upload-time = "2025-11-30T20:24:06.878Z" },
+ { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148, upload-time = "2025-11-30T20:24:08.445Z" },
+ { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030, upload-time = "2025-11-30T20:24:10.956Z" },
+ { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload-time = "2025-11-30T20:24:12.735Z" },
+ { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload-time = "2025-11-30T20:24:14.634Z" },
+]
+
[[package]]
name = "rustac"
version = "0.9.2"
@@ -2124,18 +2321,24 @@ name = "website"
version = "0.1.0"
source = { virtual = "." }
dependencies = [
+ { name = "hvplot" },
{ name = "ipykernel" },
{ name = "matplotlib" },
+ { name = "nbclient" },
+ { name = "nbformat" },
{ name = "numpy" },
{ name = "xopr" },
]
[package.metadata]
requires-dist = [
+ { name = "hvplot" },
{ name = "ipykernel", specifier = ">=7.1.0" },
{ name = "matplotlib", specifier = ">=3.10.8" },
+ { name = "nbclient", specifier = ">=0.10.4" },
+ { name = "nbformat", specifier = ">=5.10.4" },
{ name = "numpy", specifier = ">=2.3.5" },
- { name = "xopr", specifier = ">=0.3.0" },
+ { name = "xopr", specifier = ">=0.5.0" },
]
[[package]]
@@ -2154,7 +2357,7 @@ wheels = [
[[package]]
name = "xopr"
-version = "0.3.0"
+version = "0.5.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "aiohttp" },
@@ -2172,15 +2375,16 @@ dependencies = [
{ name = "numpy" },
{ name = "platformdirs" },
{ name = "pyarrow" },
+ { name = "pyopenssl" },
{ name = "requests" },
{ name = "rustac" },
{ name = "scipy" },
{ name = "shapely" },
{ name = "xarray" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/7d/69/66b21bba662a6b36b55305da0643aacb69f5cf10917f7aec91e6d3dd7f4f/xopr-0.3.0.tar.gz", hash = "sha256:d3774d30dddd39d7dd9bd72d3f5584d9672da9bf5c3ae4c6a232f873e11f2067", size = 346773, upload-time = "2025-12-09T02:17:40.795Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/da/86/b239714a0a1e01e43aa9b52a1c302c68cdaa36f061e33e7ea1f76cd8fc9f/xopr-0.5.0.tar.gz", hash = "sha256:48932c31afc6d19ba2d447a9d69bc121d788d72e7165ffd138c84fe40ec35538", size = 516537, upload-time = "2026-04-22T04:54:33.663Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/93/f7/b9a97c2430d2257bc3e404ab0b33dbee6a8713974d57d8cbda83734ae19f/xopr-0.3.0-py3-none-any.whl", hash = "sha256:602ea9407fd1ec8b03cd5d72cdc7a9d25d4fa1b4c76263be0b510a113641442d", size = 116587, upload-time = "2025-12-09T02:17:39.332Z" },
+ { url = "https://files.pythonhosted.org/packages/00/c2/f924d3f3312e8700d7241a8c4d581ea2763b67e1d58032f4697a5c9bb1d6/xopr-0.5.0-py3-none-any.whl", hash = "sha256:c1e5c8ef50116d359b0902adebfa06b2c375bb377e860bf81af8b986dbb8ee19", size = 148157, upload-time = "2026-04-22T04:54:32.065Z" },
]
[[package]]