Binary download link: https://sedona.apache.org/1.9.1/download/
Release notes: https://sedona.apache.org/1.9.1/setup/release-notes/
Maven coordinate: https://sedona.apache.org/1.9.1/setup/maven-coordinates/
What's Changed
- [GH-2830] Improve Geography query support - core by @zhangfengcdt in #2831
- [CI] Simplify forbid-tabs/remove-tabs Makefile excludes to match any Makefile by @jiayuasu in #2848
- [GH-2830] Add Geography dual-dispatch to ST_AsText by @zhangfengcdt in #2849
- [GH-2824] Add geotiff.metadata data source for GeoTIFF file metadata by @jiayuasu in #2846
- [DOCS] Update Maven coordinates to Sedona 1.9.0 / geotools-wrapper 1.9.0-33.5 by @jiayuasu in #2860
- [GH-2830] Adds Geography dual-dispatch to ST_GeometryType by @zhangfengcdt in #2850
- [GH-2861] Group Catalog.scala expressions by docs category by @jiayuasu in #2862
- [GH-2857] Fix ST_S2CellIDs under-covering planar polygons along non-meridional edges by @jiayuasu in #2863
- [GH-2830] Adds Geography dual-dispatch to ST_NumGeometries by @zhangfengcdt in #2851
- [GH-2830] Adds Geography dual-dispatch to ST_Area by @zhangfengcdt in #2853
- [GH-2830] Adds ST_Buffer for the Geography type via dual-dispatch by @zhangfengcdt in #2865
- [GH-2830] Adds Geography dual-dispatch to ST_Centroid by @zhangfengcdt in #2852
- [GH-2830] Add broadcast spatial-join support for the Geography type with ST_Contains by @zhangfengcdt in #2864
- [GH-2830] Add Geography support for ST_Equals by @zhangfengcdt in #2855
- [GH-2830] Adds Geography dual-dispatch to ST_Length by @zhangfengcdt in #2854
- [GH-2830] Adds Geography implementations for ST_Within and ST_DWithin by @zhangfengcdt in #2858
- [GH-2830] Adds Geography dual-dispatch to ST_Intersects by @zhangfengcdt in #2856
- build(deps): bump the pre-commit-hooks group with 5 updates by @dependabot[bot] in #2875
- [GH-2700] Refresh docker example notebooks: scaffolding + quickstart by @jiayuasu in #2876
- [GH-2877] Add Box2D type and Box2DUDT by @jiayuasu in #2878
- [GH-2700] Add 01-mobility-pulse notebook: vector analytics at TLC scale by @jiayuasu in #2879
- [CI] Add ASF Allowlist Check workflow by @jbampton in #2892
- [GH-2881] Add ST_Box2D(geom) scalar function by @jiayuasu in #2890
- [GH-2700] Add 05-geopandas-on-spark notebook by @jiayuasu in #2889
- [GH-2882] Overload ST_XMin/XMax/YMin/YMax for Box2D by @jiayuasu in #2895
- [GH-2830] Add python / scala tests and add SRID-preservation tests for geography functions by @zhangfengcdt in #2870
- [GH-2700] Add 02-vegetation-change notebook: end-to-end raster workflow by @jiayuasu in #2896
- [GH-2883] Add ST_MakeBox2D(p1, p2) scalar constructor by @jiayuasu in #2897
- [GH-2830] Geography BC join strategy for newly added predicates by @zhangfengcdt in #2871
- [GH-2884] Add ST_Extent aggregate (returns Box2D) by @jiayuasu in #2898
- [GH-2700] Add 03-fire-risk-fusion notebook: raster + vector fusion by @jiayuasu in #2900
- [GH-2885] Add ST_GeomFromBox2D and ST_AsText(box2d) by @jiayuasu in #2899
- [GH-2880] Omit bbox in GeoParquet metadata for empty files by @james-willis in #2903
- [GH-2901]: Fix ST_BestSRID logic for Geometries near the poles by @ThomasDekeyser in #2902
- [GH-2700] Add 04-flood-snapshot notebook: SAR mask → flood polygon → affected buildings by @jiayuasu in #2905
- [GH-2887] Box2D DataFrame API + Python bindings for Phase 1 by @jiayuasu in #2904
- [CI] Trim docker image build context: exclude Maven target/, drop pip cache by @jiayuasu in #2907
- [GH-2869] Update Glue docs for Sedona 1.8+ (Glue 5.0, Spark 3.5) by @jiayuasu in #2908
- [GH-2867] Wire mkdocs-static-i18n for Chinese documentation by @jiayuasu in #2920
- [GH-2888] Flink bindings for Box2D Phase 1 surface by @jiayuasu in #2906
- [GH-2909] Translate documentation landing pages to Chinese by @jiayuasu in #2922
- [GH-2886] Recognize Box2D columns as GeoParquet bbox covering columns by @jiayuasu in #2921
- [GH-2867] Replace EN/中文 pill with 文A icon dropdown in header by @jiayuasu in #2923
- [GH-2910] Translate Setup / Install section to Chinese by @jiayuasu in #2924
- [GH-2911] Translate Tutorial / Programming Guide (part 1) to Chinese by @jiayuasu in #2931
- [GH-2911] Translate Tutorial / Programming Guide (part 2) to Chinese by @jiayuasu in #2933
- [GH-2911] Translate Tutorial / Programming Guide (part 3) to Chinese by @jiayuasu in #2934
- [GH-2911] Translate Tutorial / Programming Guide (part 4) to Chinese by @jiayuasu in #2935
- [GH-2925] Add ST_Expand(box2d, ...) overloads by @jiayuasu in #2930
- [GH-2926] Add ST_BoxIntersects and ST_BoxContains for Box2D by @jiayuasu in #2932
- [GH-2867] Make language switcher respect mike version prefix by @jiayuasu in #2936
- [GH-2912] Translate Community & ASF section to Chinese by @jiayuasu in #2937
- [GH-2867] Strip mike canonical-version prefix from language switcher links by @jiayuasu in #2945
- [GH-2867] Translate Stats, Viz, and SQL overview pages to Chinese by @jiayuasu in #2947
- build(deps): bump jupyterlab from 4.5.1 to 4.5.7 in /docker by @dependabot[bot] in #2872
- build(deps-dev): bump fast-uri from 3.1.0 to 3.1.2 in /docs-overrides by @dependabot[bot] in #2941
- build(deps): bump postcss from 8.5.6 to 8.5.13 in /docs-overrides by @dependabot[bot] in #2894
- build(deps-dev): bump @babel/plugin-transform-modules-systemjs from 7.27.1 to 7.29.4 in /docs-overrides by @dependabot[bot] in #2942
- build(deps-dev): bump follow-redirects from 1.15.11 to 1.16.0 in /docs-overrides by @dependabot[bot] in #2839
- build(deps): bump lodash from 4.17.23 to 4.18.1 in /docs-overrides by @dependabot[bot] in #2832
- [GH-2867] Translate blog posts to Chinese by @jiayuasu in #2950
- [GH-2867] Fix empty blog index under i18n suffix mode by @jiayuasu in #2951
- [GH-2938] Push down ST_BoxIntersects / ST_BoxContains via Parquet row-group statistics by @jiayuasu in #2946
- [GH-2927] Add geometry ↔ Box2D Catalyst cast by @jiayuasu in #2952
- [SEDONA-751] RS_Interpolate band index and noDataValue handling by @prantogg in #2958
- [GH-2617] Reorder raster function signatures by @omribz156 in #2962
- [GH-2804] Raster tutorial: end-to-end running example with visuals by @jiayuasu in #2954
- [SEDONA-754] feat: make rasterization orientation-agnostic by supporting positive scaleY by @prantogg in #2961
- [SEDONA-752] fix: NullPointerException from deep traversal beyond GeoJSON geometry level by @prantogg in #2959
- [SEDONA-755] fix: remove redundant bounds check from rasterization scanline logic by @prantogg in #2960
- [GH-2939] Box2D spatial join: ST_BoxIntersects / ST_BoxContains by @jiayuasu in #2953
- [INFRA] Set up default rulesets for default and release branches by @asf-gitbox-commits in #2955
- [GH-2964] Remove first-interaction workflow by @jiayuasu in #2965
- [DOCS] Add Box2D SQL documentation by @jiayuasu in #2966
- [SEDONA-753] feat: add eo:cloud_cover and eo:snow_cover STAC extensions to reader by @prantogg in #2957
- [SEDONA-756] feat: raster Python serde and with_bands() support by @prantogg in #2956
- [CI] Fix pre-commit black-jupyter failure and drop stale First Interaction badge by @jiayuasu in #2967
- [DOCS] Update PyPI download badges in README by @jiayuasu in #2968
- [GH-2971] Add ST_DWithin(Box2D, Box2D, distance) overload by @jiayuasu in #2969
- [DOCS] Remove broken download statistics badges from overview page by @jiayuasu in #2972
- [CI] Clean up link checker workflow by @jbampton in #2976
- [CI] Pin codeql actions to hash by @jbampton in #2974
- [GH-2503] Switch to
prekusinguvby @jbampton in #2542 - [GH-2830] Fix S2 Geography WKB writer to emit OGC-conformant polygon closure by @zhangfengcdt in #2975
- [CI] Fix Makefile target command to run against master branch by @jbampton in #2981
- [GH-2973] Box3D foundation: value class + UDT + Catalyst plumbing by @jiayuasu in #2978
- [GH-2979] ST_Split: support puntal input (Point, MultiPoint) by @jiayuasu in #2982
- [CI] Replace check-dependabot hook with more robust option by @jbampton in #2987
- [DOCS] Standardize spelling of CSS class by @jbampton in #2990
- [CI] Clean up pre-commit config and Makefile by @jbampton in #2991
- [CI] Add pre-commit hook to validate the CITATION file by @jbampton in #2988
- Fix docs broken link report by @thuantip in #2995
- [GH-2992] Order R build ignore entries by @Herrtian in #2994
- [GH-2973] Box3D constructors: ST_Box3D and ST_3DMakeBox by @jiayuasu in #2984
- [DOCS] Run npm update in
docs-overridesto update packages by @jbampton in #2999 - [CI] Add
uvpackage ecosystem to dependabot by @jbampton in #3002 - [CI] Clean up and update the CODEOWNERS files by @jbampton in #2998
- [CI] Clean up the pre-commit config by @jbampton in #3003
- [DOCS] Add
alttext to showcase homepage images by @jbampton in #3001 - [DOCS] Update how to build docs; Clean up code quality section by @jbampton in #2997
- [CI] Add pre-commit hook to test that the docs can
npm installby @jbampton in #3000 - [GH-2973] Box3D accessors + ST_AsText overload by @jiayuasu in #3005
- [GH-3012] Box3D predicates: ST_3DBoxIntersects and ST_3DBoxContains by @jiayuasu in #3014
- [GH-2809] Support distance joins for raster predicates by @jiayuasu in #2980
- [GH-3013] Box3D aggregate: ST_3DExtent by @jiayuasu in #3015
- [GH-2983] Box3D SQL parser keyword + Geometry→Box3D cast resolution by @jiayuasu in #3016
- [GH-3021] Python Box3DType UDT bindings by @jiayuasu in #3022
- [CI] Cherry pick dependabot updates from #3019 excluding
pypa/gh-action-pypi-publishby @jbampton in #3023 - [CI] Run
prek autoupdate; fix zizmor check by @jbampton in #3025 - [GH-3024] ST_3DDWithin: 3D distance-within predicate by @jiayuasu in #3026
- [GH-3027] Consolidate Box predicates into ST_Intersects / ST_Contains by @jiayuasu in #3028
- [GH-2799] Fix ST_OffsetCurve Snowflake V2 test failing with ST_AsText type error by @jiayuasu in #3030
- build(deps): bump starlette from 0.49.3 to 1.0.1 by @dependabot[bot] in #3029
- [GH-3031] Box3D spatial join: index ST_Intersects / ST_Contains on Box3D by @jiayuasu in #3032
- [GH-3034] Spatial join planner: index ST_3DDWithin distance joins by @jiayuasu in #3035
- [GH-3036] Flink Box3D foundation: Box3DTypeSerializer + ST_Box3D / ST_3DMakeBox by @jiayuasu in #3037
- [CI] Remove deprecated hook
check-docstring-firstby @jbampton in #3041 - [GH-3039] Flink Box3D accessors, ST_AsText, and ST_3DExtent by @jiayuasu in #3040
- [GH-3017] Implement rotate by @oglego in #3018
- [DOCS] Add Liang Geng as Committer; Dewey Dunnington as PMC by @jbampton in #3045
- [GH-3042] Flink Box3D predicates: ST_Intersects / ST_Contains + ST_3DDWithin by @jiayuasu in #3043
- [GH-3046] Flink ST_DWithin: propagate NULL arguments instead of NPE by @jiayuasu in #3047
- [GH-3048] Docs: Box3D SQL reference pages with isometric diagrams by @jiayuasu in #3049
- [GH-3044] Fix aggregate function registration in sessions cloned from FunctionRegistry.builtin by @jiayuasu in #3050
- [GH-3058] Add GeographyTypeSerializer to SedonaFlink by @jiayuasu in #3059
- [GH-3033] [DOCS] Fix Whimsy site-check failures: ASF footer links, nav URLs, and external GitHub API call (GH-3033) by @jiayuasu in #3060
- [DOCS] Expose ASF footer links on site root for Whimsy via mike redirect template (GH-3033) by @jiayuasu in #3065
- [GH-3061] Add geography constructors to SedonaFlink by @jiayuasu in #3062
- build(deps): bump jupyterlab from 4.5.7 to 4.5.9 by @dependabot[bot] in #3067
- build(deps): bump bleach from 6.1.0 to 6.4.0 by @dependabot[bot] in #3057
- [DOCS] Add trademark attribution to root redirect footer for Whimsy (GH-3033) by @jiayuasu in #3068
- [DOCS] Run
npm audit fixandnpm updatein docs-overrides by @jbampton in #3072 - [DOCS] Fix Makefile target
docsbuildby @jbampton in #3071 - [DOCS] Run
npm update --saveindocs-overridesby @jbampton in #3076 - [GH-3073] Add geography support to SedonaFlink measurement and output functions by @jiayuasu in #3074
- [GH-3075] Add geography support to SedonaFlink spatial predicates by @jiayuasu in #3077
- [DOCS] Document SedonaFlink geography functions by @jiayuasu in #3078
- [DOCS] Correct geography area/length radius wording: spherical mean radius, not authalic or WGS84 spheroid by @jiayuasu in #3079
- [DOCS] Release post for SedonaDB 0.4.0 by @paleolimbot in #3064
- [DOCS] Update homepage banner to announce SedonaDB 0.4.0 release by @jiayuasu in #3083
- [GH-3084] Align GeoPandas test comparison by index (results are unordered) by @jiayuasu in #3085
- [DOCS] Add excerpt separator to SedonaDB 0.4.0 release blog post by @jiayuasu in #3086
- [DOCS] Add Sedona 0.4.0 GPU accelerated join blog post by @jiayuasu in #3087
- [GH-3089] Fix empty-envelope false candidate and RS_DWithin EXPLAIN label in raster distance join by @jiayuasu in #3090
- build(deps): bump the pre-commit-hooks group with 5 updates by @dependabot[bot] in #3092
- [GH-3095] Exclude the entire Scala toolchain from shaded jars by @james-willis in #3096
- [DOCS] Add blog post on the raster data source tiling reader by @jiayuasu in #3098
- build(deps): bump mistune from 3.2.0 to 3.3.0 by @dependabot[bot] in #3100
- build(deps): bump soupsieve from 2.8.3 to 2.8.4 by @dependabot[bot] in #3099
- build(deps): bump starlette from 1.0.1 to 1.3.1 by @dependabot[bot] in #3055
- build(deps): bump org.apache.flink:flink-table-planner_2.12 from 1.19.0 to 1.20.4 in /examples/flink-sql by @dependabot[bot] in #2985
- build(deps-dev): bump org.apache.logging.log4j:log4j-core from 2.25.3 to 2.25.4 by @dependabot[bot] in #2833
- build(deps): bump org.apache.logging.log4j:log4j-core from 2.25.3 to 2.25.4 in /examples/flink-sql by @dependabot[bot] in #2837
- build(deps): bump the github-actions-dependencies group with 11 updates by @dependabot[bot] in #3091
- build(deps): bump the pip-dependencies group in /docker with 5 updates by @dependabot[bot] in #3093
- build(deps): bump the uv-dependencies group with 7 updates by @dependabot[bot] in #3094
- [DOCS] fix raster tiling blog cover so tiles match source pixel size by @jiayuasu in #3101
- [GH-3088] Bump proj4sedona to 0.1.0 by @jiayuasu in #3102
- [DOCS] Remove broken
Star Historyimage from README by @jbampton in #3104 - [GH-3011] Pin all pre-commit hooks to SHA for supply chain security by @jbampton in #3082
- [GH-3103] Bump proj4sedona to 0.1.1 and re-enable RS_CRS round-trip tests by @jiayuasu in #3106
- fix: support README logo in dark mode by @ShiroKSH in #3107
- [DOCS] Add blog post: spatial joins over STAC catalogs by @jiayuasu in #3116
- [DOCS] Add example to use zstd compression when storing GeoParquet by @JakobMiksch in #3117
- [GH-3111] Fix scanline x-intercepts on rasters with non-square pixels by @james-willis in #3113
- [DOCS] Keep archived doc versions out of search results by @jiayuasu in #3125
- [GH-3110] Fix STAC Client.search(datetime="YYYY-mm") raising TypeError by @jiayuasu in #3122
- [CI] Commit website branch changes as the GitHub Actions bot by @jiayuasu in #3127
- [GH-3115] Add netcdf.metadata data source for NetCDF file metadata by @jiayuasu in #2829
- [GH-3128] Fix geotiff.metadata partition values, scan identity, and option handling by @jiayuasu in #3129
- [GH-3126] Fix STAC temporal pushdown and pagination by @jiayuasu in #3130
- [GH-2450] chore(geopandas): write sjoin match tests for dwithin() by @bunnysocks in #2466
- [GH-2527] Implement GeoPandas concave_hull by @chay0112 in #2529
- [GH-3121] Translate CF grid mapping parameters to CRS in netcdf.metadata by @jiayuasu in #3133
- build(deps-dev): bump js-yaml from 4.2.0 to 4.3.0 in /docs-overrides by @dependabot[bot] in #3136
- build(deps-dev): bump fast-uri from 3.1.2 to 3.1.4 in /docs-overrides by @dependabot[bot] in #3139
- build(deps): bump gitpython from 3.1.46 to 3.1.52 by @dependabot[bot] in #3141
- [GH-3134] Implement distributed GeoPandas affine_transform by @jiayuasu in #3135
- [GH-3137] Bump jt-jiffle from 1.1.24 to 1.1.31 by @james-willis in #3138
- [GH-3143] Implement distributed GeoPandas scale by @jiayuasu in #3145
- [GH-3131] Align glob and directory-glob path handling in the raster metadata data sources by @jiayuasu in #3142
- [GH-3147] Implement distributed GeoPandas skew by @jiayuasu in #3148
- [GH-3118] Rasterize line segments by exact cell traversal instead of fixed-step sampling by @james-willis in #3119
- [GH-3150] Preserve GeoParquet CRS metadata by @jiayuasu in #3151
- [GH-3051] Implement distributed GeoPandas translate by @jiayuasu in #3152
- [DOCS] Add blog post: reading OSM PBF into Sedona by @jiayuasu in #3160
- [GH-3156][GH-3157][GH-3158] Implement distributed GeoSeries methods by @jiayuasu in #3159
- [GH-3162][GH-3163][GH-3164] Add distributed GeoSeries geometry methods by @jiayuasu in #3165
- [GH-3166] Resolve raster sample positions the way Java AWT does in the Python reader by @ShiroKSH in #3108
- [GH-2385][GH-3168][GH-3169] GeoPandas: Implement GeoSeries is_ccw, interiors, and orient_polygons by @jiayuasu in #3170
- [GH-3171][GH-3172] Fix empty polygon orientation and GeoSeries skew flags by @jiayuasu in #3173
- [GH-3186] Cache libpostal model data in CI by @jiayuasu in #3187
- [GH-3180] GeoPandas: Implement distributed cx and clip APIs by @jiayuasu in #3183
- build(deps): bump gitpython from 3.1.52 to 3.1.54 by @dependabot[bot] in #3193
- build(deps): bump postcss from 8.5.15 to 8.5.23 in /docs-overrides by @dependabot[bot] in #3192
- build(deps): bump jupyterlab from 4.6.0 to 4.6.2 in /docker by @dependabot[bot] in #3149
- [GH-3179] Add Geography support for ST_X and ST_Y by @jiayuasu in #3188
- [GH-3181] GeoPandas: Implement distributed dissolve and tools.collect by @jiayuasu in #3185
- [GH-3161] Bump proj4sedona to 0.1.5 by @jiayuasu in #3191
- [GH-3189] GeoPandas: Preserve CRS metadata without geometry SRIDs by @jiayuasu in #3190
- [GH-3179] Add Flink Geography support for ST_X and ST_Y by @jiayuasu in #3199
- [GH-3112] RS_AsRaster fills uncovered pixels with noDataValue by @james-willis in #3114
- [GH-3196] GeoPandas: Add distributed sampling, point construction, and serialization by @jiayuasu in #3197
- [GH-3177] Add Geography support for ST_MakeLine by @jiayuasu in #3195
- [GH-3179] Document Flink Geography coordinate accessors by @jiayuasu in #3210
- [GH-3202] Handle empty Geography inputs in ST_MakeLine by @jiayuasu in #3208
- [GH-3201] Preserve empty Geography envelopes by @jiayuasu in #3206
- [GH-3204] GeoPandas: complete maximum-circle, dwithin-distance, and Voronoi-extent parity by @jiayuasu in #3209
- [CI] Bump proj4sedona to 0.1.6 by @jiayuasu in #3215
- [GH-3203] Preserve Geography coordinates and polygon ring semantics by @jiayuasu in #3207
- [GH-3214] Deprecate RS_MapAlgebra in favour of Python UDFs by @jiayuasu in #3212
- [GH-3176] Add Geography support for convex hull and collection by @jiayuasu in #3198
- [DOCS] Add blog post: spatial statistics with sedona.stats by @jiayuasu in #3219
- [GH-3216] Transform geometry before rasterization by @jiayuasu in #3217
- [DOCS] Refine the Waligora pine description in the spatial stats post by @jiayuasu in #3222
- [GH-2415] Modernize issue template workflow by @lntutor in #3221
- [GH-3218] Support integer values in Moran's I by @jiayuasu in #3220
- [GH-3175] Add Geography support for ST_Intersection by @jiayuasu in #3223
- [DOCS] Bump Python, R, and Zeppelin versions to 1.9.1 by @jiayuasu in #3228
- [DOCS] Add 1.9.1 release notes by @jiayuasu in #3229
New Contributors
- @ThomasDekeyser made their first contribution in #2902
- @omribz156 made their first contribution in #2962
- @asf-gitbox-commits made their first contribution in #2955
- @thuantip made their first contribution in #2995
- @Herrtian made their first contribution in #2994
- @oglego made their first contribution in #3018
- @ShiroKSH made their first contribution in #3107
- @JakobMiksch made their first contribution in #3117
- @lntutor made their first contribution in #3221
Full Changelog: sedona-1.9.0...sedona-1.9.1