From 418761d53536c50070420a33ceeac08fb54fa8e6 Mon Sep 17 00:00:00 2001 From: A-Behairi Date: Mon, 21 Sep 2026 19:44:08 +0200 Subject: [PATCH 1/2] feat: write parquet files with file page index --- src/eodash_catalog/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/eodash_catalog/utils.py b/src/eodash_catalog/utils.py index caa04847..f7411869 100644 --- a/src/eodash_catalog/utils.py +++ b/src/eodash_catalog/utils.py @@ -636,7 +636,7 @@ def save_items( output_path = f"{buildcatpath}/{colpath}" os.makedirs(output_path, exist_ok=True) parquet_path = f"{output_path}/items.parquet" - stacgp.arrow.to_parquet(table, parquet_path) + stacgp.arrow.to_parquet(table, parquet_path, write_page_index=True) extents = extract_extent_from_geoparquet(table) collection.extent.temporal = extents[0] collection.extent.spatial = extents[1] From 9ef668d3942969f89770874279141c4a413a041d Mon Sep 17 00:00:00 2001 From: A-Behairi Date: Mon, 21 Sep 2026 19:46:15 +0200 Subject: [PATCH 2/2] chore: add test --- tests/test_geoparquet.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/test_geoparquet.py b/tests/test_geoparquet.py index 9ef5d69a..04136f5e 100644 --- a/tests/test_geoparquet.py +++ b/tests/test_geoparquet.py @@ -58,6 +58,11 @@ def test_geoparquet_geojson_items(catalog_output_folder): ) assert parquet_asset["file:size"] == os.path.getsize(items_path) + # page index lets the client skip pages instead of reading whole column chunks + column = pa.parquet.ParquetFile(items_path).metadata.row_group(0).column(0) + assert column.has_column_index + assert column.has_offset_index + with open(items_path, "rb") as fp: table = pa.parquet.read_table(fp) items = list(stac_gp.arrow.stac_table_to_items(table))