Skip to content

Commit 7a004ef

Browse files
jesspavjiayuasu
andauthored
[GH-1973] Upgrade to GeoTools 33 (#1967)
* Upgrade to geotools33 * update geotools in examples * ran spotless * revert changes that are out of the main run * Update workflows to use geotools 33 * Update .github/workflows/pyflink.yml * Update examples/spark-sql/pom.xml * Update .github/workflows/docker-build.yml * update r workflow * use the specialized 33.1-rc1 for the geotools wrapper workflow --------- Co-authored-by: Jia Yu <jiayu@wherobots.com>
1 parent 4ebbedc commit 7a004ef

50 files changed

Lines changed: 237 additions & 258 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/docker-build.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,14 @@ jobs:
4646
fail-fast: true
4747
matrix:
4848
os: ['ubuntu-latest']
49-
spark: ['3.5.1', '3.4.3', '3.3.4']
49+
spark: ['3.5.1', '3.4.3']
5050
include:
5151
- spark: 3.5.1
5252
sedona: 'latest'
53-
geotools: 'auto'
53+
geotools: '33.1-rc1'
5454
- spark: 3.4.3
5555
sedona: 1.6.0
5656
geotools: 28.2
57-
- spark: 3.3.4
58-
sedona: 1.6.0
59-
geotools: 28.2
6057
runs-on: ${{ matrix.os }}
6158
defaults:
6259
run:

.github/workflows/example.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,6 @@ jobs:
5050
- spark: 3.4.2
5151
spark-compat: '3.4'
5252
sedona: 1.5.1
53-
- spark: 3.3.4
54-
spark-compat: '3.0'
55-
sedona: 1.5.1
5653
steps:
5754
- uses: actions/checkout@v4
5855
- uses: actions/setup-java@v4

.github/workflows/pyflink.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,6 @@ jobs:
7171
- run: uv add apache-flink==1.20.1 shapely attr setuptools
7272
- run: uv add pytest --dev
7373
- run: |
74-
wget https://repo1.maven.org/maven2/org/datasyslab/geotools-wrapper/1.7.1-28.5/geotools-wrapper-1.7.1-28.5.jar
75-
export SEDONA_PYFLINK_EXTRA_JARS=${PWD}/$(find flink-shaded/target -name sedona-flink*.jar),${PWD}/geotools-wrapper-1.7.1-28.5.jar
74+
wget https://repo1.maven.org/maven2/org/datasyslab/geotools-wrapper/1.8.0-33.1-rc1/geotools-wrapper-1.8.0-33.1-rc1.jar
75+
export SEDONA_PYFLINK_EXTRA_JARS=${PWD}/$(find flink-shaded/target -name sedona-flink*.jar),${PWD}/geotools-wrapper-1.8.0-33.1-rc1.jar
7676
(cd python; PYTHONPATH=$(pwd) uv run pytest -v -s ./tests/flink)

.github/workflows/r.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ jobs:
124124
- name: Build Sedona libraries
125125
run: |
126126
SPARK_COMPAT_VERSION=${SPARK_VERSION:0:3}
127-
mvn -q clean install -DskipTests -Dspark=${SPARK_COMPAT_VERSION} -Dscala=${SCALA_VERSION:0:4}
127+
mvn -q clean install -DskipTests -Dspark=${SPARK_COMPAT_VERSION} -Dscala=${SCALA_VERSION:0:4} -Dgeotools
128128
- name: Run tests
129129
run: |
130130
if [[ "${SPARK_VERSION:0:3}" < "3.3" ]]; then

common/src/main/java/org/apache/sedona/common/FunctionsGeoTools.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@
1919
package org.apache.sedona.common;
2020

2121
import java.util.Set;
22+
import org.geotools.api.referencing.FactoryException;
23+
import org.geotools.api.referencing.NoSuchAuthorityCodeException;
24+
import org.geotools.api.referencing.ReferenceIdentifier;
25+
import org.geotools.api.referencing.crs.CoordinateReferenceSystem;
26+
import org.geotools.api.referencing.operation.MathTransform;
27+
import org.geotools.api.referencing.operation.TransformException;
2228
import org.geotools.geometry.jts.JTS;
2329
import org.geotools.referencing.CRS;
2430
import org.geotools.referencing.ReferencingFactoryFinder;
@@ -28,12 +34,6 @@
2834
import org.locationtech.jts.operation.buffer.BufferOp;
2935
import org.locationtech.jts.operation.buffer.BufferParameters;
3036
import org.locationtech.jts.triangulate.VoronoiDiagramBuilder;
31-
import org.opengis.referencing.FactoryException;
32-
import org.opengis.referencing.NoSuchAuthorityCodeException;
33-
import org.opengis.referencing.ReferenceIdentifier;
34-
import org.opengis.referencing.crs.CoordinateReferenceSystem;
35-
import org.opengis.referencing.operation.MathTransform;
36-
import org.opengis.referencing.operation.TransformException;
3737

3838
public class FunctionsGeoTools {
3939

@@ -202,8 +202,6 @@ public static Geometry bufferSpheroid(Geometry geometry, double radius, BufferPa
202202
if (Functions.crossesDateLine(geometry)) {
203203
Functions.shiftLongitude(geometry);
204204
}
205-
// geometry = (Predicates.crossesDateLine(geometry)) ? Functions.shiftLongitude(geometry)
206-
// : geometry;
207205

208206
// If originalCRS is not set, use WGS84 as the originalCRS for transformation
209207
String sourceCRSCode = (originalCRS == 0) ? "EPSG:" + WGS84CRS : "EPSG:" + originalCRS;

common/src/main/java/org/apache/sedona/common/raster/GeometryFunctions.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@
2020

2121
import java.awt.geom.Point2D;
2222
import org.apache.sedona.common.utils.RasterUtils;
23+
import org.geotools.api.referencing.FactoryException;
24+
import org.geotools.api.referencing.operation.TransformException;
2325
import org.geotools.coverage.grid.GridCoordinates2D;
2426
import org.geotools.coverage.grid.GridCoverage2D;
25-
import org.geotools.geometry.Envelope2D;
27+
import org.geotools.geometry.jts.ReferencedEnvelope;
2628
import org.locationtech.jts.geom.*;
27-
import org.opengis.referencing.FactoryException;
28-
import org.opengis.referencing.operation.TransformException;
2929

3030
public class GeometryFunctions {
3131

@@ -140,7 +140,7 @@ public static void ensureSafeBand(GridCoverage2D raster, int band)
140140
}
141141

142142
public static Geometry envelope(GridCoverage2D raster) throws FactoryException {
143-
Envelope2D envelope2D = raster.getEnvelope2D();
143+
ReferencedEnvelope envelope2D = raster.getEnvelope2D();
144144

145145
Envelope envelope =
146146
new Envelope(

common/src/main/java/org/apache/sedona/common/raster/PixelFunctionEditors.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@
2525
import javax.media.jai.RasterFactory;
2626
import org.apache.commons.lang3.tuple.Pair;
2727
import org.apache.sedona.common.utils.RasterUtils;
28+
import org.geotools.api.referencing.FactoryException;
29+
import org.geotools.api.referencing.operation.TransformException;
2830
import org.geotools.coverage.grid.GridCoverage2D;
2931
import org.locationtech.jts.geom.Geometry;
30-
import org.opengis.referencing.FactoryException;
31-
import org.opengis.referencing.operation.TransformException;
3232

3333
public class PixelFunctionEditors {
3434

common/src/main/java/org/apache/sedona/common/raster/PixelFunctions.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@
2525
import java.util.List;
2626
import org.apache.commons.lang3.tuple.Pair;
2727
import org.apache.sedona.common.utils.RasterUtils;
28+
import org.geotools.api.coverage.PointOutsideCoverageException;
29+
import org.geotools.api.geometry.Position;
30+
import org.geotools.api.referencing.FactoryException;
31+
import org.geotools.api.referencing.operation.TransformException;
2832
import org.geotools.coverage.grid.GridCoordinates2D;
2933
import org.geotools.coverage.grid.GridCoverage2D;
30-
import org.geotools.geometry.DirectPosition2D;
34+
import org.geotools.geometry.Position2D;
3135
import org.geotools.referencing.operation.transform.AffineTransform2D;
3236
import org.locationtech.jts.geom.*;
33-
import org.opengis.coverage.PointOutsideCoverageException;
34-
import org.opengis.geometry.DirectPosition;
35-
import org.opengis.referencing.FactoryException;
36-
import org.opengis.referencing.operation.TransformException;
3737

3838
public class PixelFunctions {
3939
private static GeometryFactory GEOMETRY_FACTORY = new GeometryFactory();
@@ -289,7 +289,7 @@ public static List<Double> values(GridCoverage2D rasterGeom, List<Geometry> geom
289289
result.add(null);
290290
} else {
291291
Point point = ensurePoint(geom);
292-
DirectPosition directPosition2D = new DirectPosition2D(point.getX(), point.getY());
292+
Position directPosition2D = new Position2D(point.getX(), point.getY());
293293
try {
294294
rasterGeom.evaluate(directPosition2D, pixelBuffer);
295295
double pixel = pixelBuffer[band - 1];

common/src/main/java/org/apache/sedona/common/raster/RasterAccessors.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@
2323
import java.util.Arrays;
2424
import java.util.Set;
2525
import org.apache.sedona.common.utils.RasterUtils;
26+
import org.geotools.api.referencing.FactoryException;
27+
import org.geotools.api.referencing.ReferenceIdentifier;
28+
import org.geotools.api.referencing.crs.CoordinateReferenceSystem;
29+
import org.geotools.api.referencing.operation.TransformException;
2630
import org.geotools.coverage.grid.GridCoverage2D;
2731
import org.geotools.coverage.grid.GridEnvelope2D;
2832
import org.geotools.referencing.crs.DefaultEngineeringCRS;
@@ -31,10 +35,6 @@
3135
import org.locationtech.jts.geom.Geometry;
3236
import org.locationtech.jts.geom.GeometryFactory;
3337
import org.locationtech.jts.geom.Point;
34-
import org.opengis.referencing.FactoryException;
35-
import org.opengis.referencing.ReferenceIdentifier;
36-
import org.opengis.referencing.crs.CoordinateReferenceSystem;
37-
import org.opengis.referencing.operation.TransformException;
3838

3939
public class RasterAccessors {
4040
public static int srid(GridCoverage2D raster) throws FactoryException {

common/src/main/java/org/apache/sedona/common/raster/RasterBandAccessors.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@
3030
import org.apache.commons.math3.stat.descriptive.moment.StandardDeviation;
3131
import org.apache.sedona.common.Functions;
3232
import org.apache.sedona.common.utils.RasterUtils;
33+
import org.geotools.api.referencing.FactoryException;
3334
import org.geotools.coverage.GridSampleDimension;
3435
import org.geotools.coverage.grid.GridCoverage2D;
3536
import org.locationtech.jts.geom.Geometry;
36-
import org.opengis.referencing.FactoryException;
3737

3838
public class RasterBandAccessors {
3939

0 commit comments

Comments
 (0)