This is an automated email from the ASF dual-hosted git repository. desruisseaux pushed a change to branch main in repository https://gitbox.apache.org/repos/asf/sis.git
from ed9308d56c Merge branch 'geoapi-3.1' add 0de784f0e4 Reorganize import statements with a better separation of test dependencies. add f7dabc89f1 Replace `api` dependency to Glassfish by a pair of `compileOnly` and `runtimeOnly`. The intend is to avoid that this dependency appears in Maven pom files. add b12a8b466a Add `ImageOutputStream` support in `StorageConnector`. add 313bfa0ac1 Add compression support for GeoTIFF. Only "Deflate" is supported for now. add 5aa4b67d01 Rename `GeoTiffOption` as `FormatModifier`. add 851bb80250 feat(Shapefile): add shp file read and write support add f2347a9fbe feat(shapefile): add dbf read support add 374367cabf Add support for predictor before writing images in a GeoTIFF file. add 51fc2ddf3e Fix the writing of GeoTIFF planar image (banded sample model). add 1bcda2bd6b Use TIFF strips instead of tiles when the rows are not divided in tiles. The intend is to avoid the restriction about tile size multiple of 16 bytes. add 924462e3c6 feat(Shapefile): add shapefile store add f361498610 When writing a TIFF file, make possible (in some circumstances) to send data directly from raster to deflater, bypassing the intermediate buffer. Switch `Compression.DEFLATE` to no predictor by default for improving the chances that the direct mode can be used, and also because experiences suggest that horizontal differentiating predictor can sometime be counter-productive. add c835c4786f Fix the case when raster data of a tile to write does not start at the beginning of the backing array. add ba3b3c577b Performance tuning: use the ByteBuffer API for copying block of data in `CopyFromBytes`. The previous code was assuming that the amount of bytes to copy is small (typically 1), but that assumption become wrong when the tile width is larger that the buffer capacity. This commit also increases the default buffer size. add df8c4d966c Superficial reformatting of shapefile commit before merge. add 2bffeac5a6 Merge branch 'geoapi-4.0' into geoapi-3.1 new fafbe8a7b6 Merge branch 'geoapi-3.1' The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: endorsed/build.gradle.kts | 3 +- .../org.apache.sis.feature/main/module-info.java | 1 + .../grid/BandAggregateGridCoverageTest.java | 4 +- .../coverage/grid/ConvertedGridCoverageTest.java | 6 +- .../coverage/grid/DimensionalityReductionTest.java | 2 +- .../sis/coverage/grid/GridCoverage2DTest.java | 4 +- .../sis/coverage/grid/GridCoverageBuilderTest.java | 2 +- .../sis/coverage/grid/GridDerivationTest.java | 8 +- .../apache/sis/coverage/grid/GridExtentTest.java | 2 +- .../apache/sis/coverage/grid/GridGeometryTest.java | 8 +- .../coverage/grid/ResampledGridCoverageTest.java | 8 +- .../sis/coverage/grid/ReshapedImageTest.java | 6 +- .../coverage/grid/TranslatedGridCoverageTest.java | 2 +- .../apache/sis/feature/EnvelopeOperationTest.java | 2 +- .../apache/sis/feature/FeatureOperationsTest.java | 6 +- .../feature/builder/FeatureTypeBuilderTest.java | 8 +- .../feature/internal/AttributeConventionTest.java | 2 +- .../sis/filter/BinarySpatialFilterTestCase.java | 4 +- .../apache/sis/filter/sqlmm/RegistryTestCase.java | 4 +- .../org/apache/sis/filter/sqlmm/SQLMMTest.java | 2 +- .../sis/geometry/wrapper/GeometriesTestCase.java | 4 +- .../org/apache/sis/image/ResamplingGridTest.java | 4 +- .../apache/sis/metadata/MetadataCopierTest.java | 4 +- .../apache/sis/metadata/MetadataStandardTest.java | 6 +- .../apache/sis/metadata/PropertyAccessorTest.java | 14 +- .../sis/metadata/PropertyInformationTest.java | 2 +- .../org/apache/sis/metadata/SpecialCasesTest.java | 6 +- .../sis/metadata/sql/IdentifierGeneratorTest.java | 1 - .../sis/metadata/sql/MetadataWriterTest.java | 4 +- .../xml/bind/fra/DirectReferenceSystemTest.java | 4 +- .../apache/sis/geometry/AbstractEnvelopeTest.java | 6 +- .../org/apache/sis/geometry/ArrayEnvelopeTest.java | 4 +- .../apache/sis/geometry/CoordinateFormatTest.java | 6 +- .../org/apache/sis/geometry/Envelope2DTest.java | 2 +- .../org/apache/sis/geometry/EnvelopesTest.java | 2 +- .../sis/geometry/GeneralDirectPositionTest.java | 2 +- .../apache/sis/geometry/GeneralEnvelopeTest.java | 4 +- .../apache/sis/geometry/ImmutableEnvelopeTest.java | 2 +- .../org/apache/sis/geometry/SubEnvelopeTest.java | 2 +- .../org/apache/sis/geometry/TransformTestCase.java | 8 +- .../sis/geometry/WraparoundAdjustmentTest.java | 4 +- .../sis/referencing/AuthorityFactoriesTest.java | 4 +- .../test/org/apache/sis/referencing/CRSTest.java | 6 +- .../sis/referencing/GeodesicsOnEllipsoidTest.java | 2 +- .../sis/referencing/GeodeticCalculatorTest.java | 2 +- .../sis/referencing/IdentifiedObjectsTest.java | 2 +- .../sis/referencing/StandardDefinitionsTest.java | 10 +- .../sis/referencing/crs/AbstractCRSTest.java | 4 +- .../referencing/crs/DefaultCompoundCRSTest.java | 4 +- .../sis/referencing/crs/DefaultDerivedCRSTest.java | 4 +- .../referencing/crs/DefaultEngineeringCRSTest.java | 2 +- .../sis/referencing/crs/DefaultImageCRSTest.java | 4 +- .../referencing/crs/DefaultProjectedCRSTest.java | 2 +- .../referencing/crs/DefaultTemporalCRSTest.java | 2 +- .../apache/sis/referencing/crs/HardCodedCRS.java | 4 +- .../sis/referencing/crs/HardCodedCRSTest.java | 2 +- .../datum/DefaultTemporalDatumTest.java | 2 +- .../sis/referencing/datum/HardCodedDatum.java | 4 +- .../referencing/factory/AuthorityFactoryMock.java | 2 + .../factory/MultiAuthoritiesFactoryTest.java | 6 +- .../internal/ServicesForMetadataTest.java | 2 +- .../operation/CoordinateOperationFinderTest.java | 4 +- .../DefaultConcatenatedOperationTest.java | 4 +- .../operation/DefaultConversionTest.java | 12 +- .../operation/DefaultTransformationTest.java | 8 +- .../operation/HardCodedConversions.java | 2 + .../builder/LinearTransformBuilderTest.java | 6 +- .../operation/builder/LinearizerTest.java | 4 +- .../operation/provider/GeographicOffsetsTest.java | 2 +- .../transform/AbridgedMolodenskyTransformTest.java | 4 +- .../transform/CoordinateSystemTransformTest.java | 2 +- .../transform/DefaultMathTransformFactoryTest.java | 8 +- .../InterpolatedGeocentricTransformTest.java | 2 +- .../transform/MathTransformFactoryBase.java | 2 + .../transform/MolodenskyTransformTest.java | 4 +- .../transform/TransformSeparatorTest.java | 6 +- .../transform/WraparoundTransformTest.java | 2 +- .../sis/referencing/util/AxesMapperTest.java | 2 +- .../sis/referencing/util/AxisDirectionsTest.java | 4 +- .../referencing/util/CoordinateOperationsTest.java | 10 +- .../referencing/util/DefinitionVerifierTest.java | 10 +- .../util/EllipsoidalHeightCombinerTest.java | 8 +- .../apache/sis/referencing/util/FormulasTest.java | 2 +- .../referencing/util/ReferencingUtilitiesTest.java | 4 +- .../sis/referencing/util/WKTUtilitiesTest.java | 4 +- .../referencing/util/WraparoundApplicatorTest.java | 3 +- .../main/module-info.java | 2 +- .../apache/sis/storage/geotiff/Compression.java | 241 ++++++++ .../{GeoTiffOption.java => FormatModifier.java} | 39 +- .../apache/sis/storage/geotiff/GeoTiffStore.java | 66 +- .../sis/storage/geotiff/GeoTiffStoreProvider.java | 16 +- .../org/apache/sis/storage/geotiff/IOBase.java | 6 +- .../org/apache/sis/storage/geotiff/Reader.java | 6 +- .../org/apache/sis/storage/geotiff/Writer.java | 80 ++- .../sis/storage/geotiff/base/Compression.java | 15 +- .../apache/sis/storage/geotiff/base/Predictor.java | 41 +- .../storage/geotiff/inflater/CopyFromBytes.java | 91 ++- .../geotiff/inflater/HorizontalPredictor.java | 4 +- .../sis/storage/geotiff/inflater/Inflater.java | 2 +- .../storage/geotiff/inflater/PredictorChannel.java | 2 + .../storage/geotiff/writer/CompressionChannel.java | 116 ++++ .../geotiff/writer/HorizontalPredictor.java | 390 ++++++++++++ .../geotiff/{inflater => writer}/PixelChannel.java | 28 +- .../storage/geotiff/writer/PredictorChannel.java | 86 +++ .../sis/storage/geotiff/writer/TileMatrix.java | 185 ++++-- .../org/apache/sis/storage/geotiff/writer/ZIP.java | 120 ++++ .../org/apache/sis/storage/geotiff/WriterTest.java | 76 +-- .../storage/sql/feature/GeometryGetterTest.java | 2 +- .../sql/feature/SelectionClauseWriterTest.java | 2 +- .../sql/feature/TemporalValueGetterTest.java | 4 +- .../sis/storage/sql/postgis/PostgresTest.java | 2 +- .../org.apache.sis.storage/main/module-info.java | 1 + .../main/org/apache/sis/io/stream/ChannelData.java | 4 + .../apache/sis/io/stream/ChannelDataOutput.java | 10 + .../sis/io/stream/ChannelImageOutputStream.java | 14 + .../apache/sis/io/stream/FileCacheByteChannel.java | 5 +- .../apache/sis/io/stream/HyperRectangleWriter.java | 361 ++++++++--- .../apache/sis/io/stream/RewindableLineReader.java | 2 +- .../org/apache/sis/storage/StorageConnector.java | 141 +++-- .../main/org/apache/sis/storage/csv/Store.java | 6 +- .../apache/sis/storage/wkt/FirstKeywordPeek.java | 4 +- .../org/apache/sis/storage/CoverageQueryTest.java | 2 +- .../org/apache/sis/storage/CoverageSubsetTest.java | 2 +- .../aggregate/BandAggregateGridResourceTest.java | 2 +- .../sis/storage/base/MemoryGridResourceTest.java | 2 +- .../sis/storage/esri/BSQConsistencyTest.java | 2 +- .../apache/sis/storage/esri/WritableStoreTest.java | 2 +- .../src/org.apache.sis.util/main/module-info.java | 1 + .../main/org/apache/sis/util/ArgumentChecks.java | 22 +- .../org/apache/sis/util/resources/Vocabulary.java | 5 + .../sis/util/resources/Vocabulary.properties | 1 + .../sis/util/resources/Vocabulary_fr.properties | 1 + .../main/module-info.java | 2 + .../sis/storage/shapefile/ShapefileProvider.java | 82 +++ .../sis/storage/shapefile/ShapefileStore.java | 385 ++++++++++++ .../apache/sis/storage/shapefile/dbf/DBFField.java | 120 ++++ .../sis/storage/shapefile/dbf/DBFFieldEncoder.java | 206 +++++++ .../sis/storage/shapefile/dbf/DBFHeader.java | 78 +++ .../sis/storage/shapefile/dbf/DBFReader.java | 87 +++ .../sis/storage/shapefile/dbf/DBFRecord.java} | 14 +- .../shapefile/shp/ShapeGeometryEncoder.java | 677 +++++++++++++++++++++ .../sis/storage/shapefile/shp/ShapeHeader.java | 113 ++++ .../sis/storage/shapefile/shp/ShapeReader.java | 66 ++ .../sis/storage/shapefile/shp/ShapeRecord.java | 78 +++ .../sis/storage/shapefile/shp/ShapeType.java | 89 +++ .../sis/storage/shapefile/shp/ShapeWriter.java | 65 ++ .../sis/storage/shapefile/shx/IndexReader.java | 66 ++ .../sis/storage/shapefile/ShapefileStoreTest.java | 90 +++ .../sis/storage/shapefile/dbf/DBFIOTest.java | 104 ++++ .../apache/sis/storage/shapefile/multipoint.cpg | 1 + .../apache/sis/storage/shapefile/multipoint.dbf | Bin 0 -> 88 bytes .../apache/sis/storage/shapefile/multipoint.prj | 1 + .../apache/sis/storage/shapefile/multipoint.shp | Bin 0 -> 260 bytes .../apache/sis/storage/shapefile/multipoint.shx | Bin 0 -> 116 bytes .../org/apache/sis/storage/shapefile/point.cpg | 1 + .../org/apache/sis/storage/shapefile/point.dbf | Bin 0 -> 434 bytes .../org/apache/sis/storage/shapefile/point.prj | 1 + .../org/apache/sis/storage/shapefile/point.shp | Bin 0 -> 156 bytes .../org/apache/sis/storage/shapefile/point.shx | Bin 0 -> 116 bytes .../org/apache/sis/storage/shapefile/polygon.cpg | 1 + .../org/apache/sis/storage/shapefile/polygon.dbf | Bin 0 -> 88 bytes .../org/apache/sis/storage/shapefile/polygon.prj | 1 + .../org/apache/sis/storage/shapefile/polygon.shp | Bin 0 -> 456 bytes .../org/apache/sis/storage/shapefile/polygon.shx | Bin 0 -> 116 bytes .../org/apache/sis/storage/shapefile/polyline.cpg | 1 + .../org/apache/sis/storage/shapefile/polyline.dbf | Bin 0 -> 88 bytes .../org/apache/sis/storage/shapefile/polyline.prj | 1 + .../org/apache/sis/storage/shapefile/polyline.shp | Bin 0 -> 328 bytes .../org/apache/sis/storage/shapefile/polyline.shx | Bin 0 -> 116 bytes .../sis/storage/shapefile/shp/ShapeIOTest.java | 319 ++++++++++ .../apache/sis/gui/coverage/CoverageCanvasApp.java | 4 +- .../org/apache/sis/gui/coverage/GridViewApp.java | 4 +- 172 files changed, 4674 insertions(+), 559 deletions(-) create mode 100644 endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/Compression.java rename endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/{GeoTiffOption.java => FormatModifier.java} (52%) create mode 100644 endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/writer/CompressionChannel.java create mode 100644 endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/writer/HorizontalPredictor.java copy endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/{inflater => writer}/PixelChannel.java (55%) create mode 100644 endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/writer/PredictorChannel.java create mode 100644 endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/writer/ZIP.java create mode 100644 incubator/src/org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/ShapefileProvider.java create mode 100644 incubator/src/org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/ShapefileStore.java create mode 100644 incubator/src/org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/dbf/DBFField.java create mode 100644 incubator/src/org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/dbf/DBFFieldEncoder.java create mode 100644 incubator/src/org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/dbf/DBFHeader.java create mode 100644 incubator/src/org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/dbf/DBFReader.java copy incubator/src/{org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/binding/package-info.java => org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/dbf/DBFRecord.java} (77%) create mode 100644 incubator/src/org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/shp/ShapeGeometryEncoder.java create mode 100644 incubator/src/org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/shp/ShapeHeader.java create mode 100644 incubator/src/org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/shp/ShapeReader.java create mode 100644 incubator/src/org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/shp/ShapeRecord.java create mode 100644 incubator/src/org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/shp/ShapeType.java create mode 100644 incubator/src/org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/shp/ShapeWriter.java create mode 100644 incubator/src/org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/shx/IndexReader.java create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/ShapefileStoreTest.java create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/dbf/DBFIOTest.java create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/multipoint.cpg create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/multipoint.dbf create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/multipoint.prj create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/multipoint.shp create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/multipoint.shx create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/point.cpg create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/point.dbf create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/point.prj create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/point.shp create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/point.shx create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/polygon.cpg create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/polygon.dbf create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/polygon.prj create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/polygon.shp create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/polygon.shx create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/polyline.cpg create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/polyline.dbf create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/polyline.prj create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/polyline.shp create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/polyline.shx create mode 100644 incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/shp/ShapeIOTest.java