Thank you Torben for the release, and to everyone here who contributed! -- Jody Garnett
On Mon, 24 Sep 2018 at 09:26, Torben Barsballe <tbarsba...@boundlessgeo.com> wrote: > The GeoTools team is pleased to announce the release of GeoTools 20.0 > <https://sourceforge.net/projects/geotools/files/GeoTools%2020%20Releases/20.0/> > : > > - geotools-20.0-bin.zip > > <https://sourceforge.net/projects/geotools/files/GeoTools%2020%20Releases/20.0/geotools-20.0-bin.zip/download> > - geotools-20.0-doc.zip > > <https://sourceforge.net/projects/geotools/files/GeoTools%2020%20Releases/20.0/geotools-20.0-doc.zip/download> > - geotools-20.0-userguide.zip > > <https://sourceforge.net/projects/geotools/files/GeoTools%2020%20Releases/20.0/geotools-20.0-userguide.zip/download> > - geotools-20.0-project.zip > > <https://sourceforge.net/projects/geotools/files/GeoTools%2020%20Releases/20.0/geotools-20.0-project.zip/download> > > This is the first release of the 20.x series, now marked as stable and > deemed suitable for production systems, while 19.x switches to maintenance > mode and 18.x moves to unsupported. > > This release is also available from our Maven > <http://download.osgeo.org/webdav/geotools/>*repository*, and is made in > conjunction with GeoServer 2.14.0. > > This release includes a various major changes. > JTS upgraded to version 1.16 > JTS has been upgraded to version 1.16. This marks a significant change in > package naming, the library has switched from "com.vividsolutions" to > "org.locationtech" packages and all GeoTools code has been updated to > follow suit. > > JTS classes are widely used in GeoTools, as a result the client code using > GeoTools will also have to be modified to follow suite. Thankfully the > changes amount to a search and replace and can be easily automated, please > check the upgrade instructions > <http://docs.geotools.org/latest/userguide/welcome/upgrade.html#geotools-20-x> > available > in the GeoTools site. > Units library migrated to JSR-363 > GeoTools was using an aging and un-maintained units library and this > development round moved it to a modern and maintained set of packages > compatible with Java 10. Like the JTS upgrade this might require the client > code to be updated, both in terms of packages and in terms of classes and > methods being used. > > We have provided a *Units* utility class, providing an easy way to match > unit defined at runtime with the the correct constant. > > Unit deg = Units.autoCorrect(SI.RADIAN.multiply(0.0174532925199433)); > > Please check the upgrade instructions > <http://docs.geotools.org/latest/userguide/welcome/upgrade.html#geotools-20-x> > available > in the GeoTools site for more details. > > Thanks to César Martínez Izquierdo and the participants of the OSGeo Code > sprint for this work. > Various other assorted dependencies upgrades > The release upgrades many dependencies to newer versions, in particular: > > - Batik upgraded to version 1.10 > - Commons-lang to version 3.7 > - Commons-io to version 2.6 > - Mysql JDBC driver to 5.1.46 > - HSQLDB to 2.4.1 > - SQLite-JDBC to version 2.23.1 > - GeographicLib upgrades to version 1.49 > > These upgrades should not cause major incompatibilities, but look for for > potential API changes. > Channel selection name allow expressions > GeoTools 20.x allows expressions to be used in SourceChannelName SLD > elements, and in their code counterpart, thus allowing dynamic channel > selection. This is welcomed news for anyone building applications that > display multispectral or hyperspectral data, thus avoiding the need to > build many different styles for the various interesting false color > combinations. > > Here is an SLD example: > > <RasterSymbolizer> > <ChannelSelection> > <RedChannel> > <SourceChannelName> > <ogc:Function name="env"> > <ogc:Literal>B1</ogc:Literal> > <ogc:Literal>2</ogc:Literal> > </ogc:Function> > </SourceChannelName> > </RedChannel> > <GreenChannel> > <SourceChannelName> > <ogc:Function name="env"> > <ogc:Literal>B2</ogc:Literal> > <ogc:Literal>5</ogc:Literal> > </ogc:Function> > </SourceChannelName> > </GreenChannel> > <BlueChannel> > <SourceChannelName> > <ogc:Function name="env"> > <ogc:Literal>B3</ogc:Literal> > <ogc:Literal>7</ogc:Literal> > </ogc:Function> > </SourceChannelName> > </BlueChannel> > </ChannelSelection> > <RasterSymbolizer> > > Map algebra > This release adds support for an efficient map algebra package knows as > Jiffle. Jiffle has been the work of a former GeoTools contributor, Michael > Bedwards, that has been salvaged, upgraded to support Java 8, and > integrated in jai-ext. From the there support has been added into the > GeoTools gt-process-raster module, to be used either directly or as a > rendering transformation. > > The following SLD style calls onto Jiffle to perform a NDVI calculation on > top of Sentinel 2 data: > > <?xml version="1.0" encoding="UTF-8"?><StyledLayerDescriptor > xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" > xmlns:xlink="http://www.w3.org/1999/xlink" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://www.opengis.net/sldhttp://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd" > version="1.0.0"> > <NamedLayer> > <Name>Sentinel2 NDVI</Name> > <UserStyle> > <Title>NDVI</Title> > <FeatureTypeStyle> > <Transformation> > <ogc:Function name="ras:Jiffle"> > <ogc:Function name="parameter"> > <ogc:Literal>coverage</ogc:Literal> > </ogc:Function> > <ogc:Function name="parameter"> > <ogc:Literal>script</ogc:Literal> > <ogc:Literal> > nir = src[7]; > vir = src[3]; > dest = (nir - vir) / (nir + vir); > </ogc:Literal> > </ogc:Function> > </ogc:Function> > </Transformation> > <Rule> > <RasterSymbolizer> > <Opacity>1.0</Opacity> > <ColorMap> > <ColorMapEntry color="#000000" quantity="-1"/> > <ColorMapEntry color="#0000ff" quantity="-0.75"/> > <ColorMapEntry color="#ff00ff" quantity="-0.25"/> > <ColorMapEntry color="#ff0000" quantity="0"/> > <ColorMapEntry color="#ffff00" quantity="0.5"/> > <ColorMapEntry color="#00ff00" quantity="1"/> > </ColorMap> > </RasterSymbolizer> > </Rule> > </FeatureTypeStyle> > </UserStyle> > </NamedLayer></StyledLayerDescriptor> > > The performance is good enough for interactive display, and the result > looks as follows: > > > <https://3.bp.blogspot.com/-cw1pkZPwCPk/W3rU88oRypI/AAAAAAAAC08/RGbzV0_k7z4aecKSPRGcLZ_PT2yAItGSwCLcBGAs/s1600/s2-ndvi.png> > PostGIS store improvementsThe PostGIS datastore has been for years the > only one that could encode a few filter functions used in filters down into > native SQL, but it required a datastore creation flag to be enabled. > Starting with this release it will do so by default. > > The functions supported for SQL encoding by the store are: > > - String functions: *strConcat, strEndsWith, strStartsWith, > strEqualsIgnoreCase, strIndexOf, strLength, strToLowerCase, strToUpperCase, > strReplace, strSubstring, strSubstringStart, strTrim, strTrim2* > - Math functions: *abs, abs_2, abs_3, abs_4, ceil, floor* > - Date functions: *dateDifference* > > Along with improvements in the handling of GroupByVisitor, this makes for > efficient histogram computation directly in the database, while retaining > the ability to share the same code with other stores that do not have the > same optimizations. > > This release adds support for "array" data type in the store, with full > reading and writing support, as well as native filtering (with index > support, where feasible). > > Finally, it's now possible to read geometries with measures from PostGIS, > also thanks to JTS improved CoordinateSequence API, and encode the results > in GML (the encoding is subject to a configuration flag, as GML does not > officially support M encoding). The work will continue in the next few > month in order to cover more formats. > Image mosaic improvements > The image mosaic module never sleeps, in this release we see the following > improvements: > > - Support for remote images (e.g. S3 or Minio). In order to leverage > this the mosaic index will have to be created up-front (manually, or with > some home grown tools) > - A new "virtual native resolution" read parameter allows the mosaic > to compose outputs respecting a native resolution other than its native one > (useful in case you want to give selective resolution access to different > users) > - Supporting multiple WKBs footprint for pixel precise overviews > masking > - A new read mask parameter allows to cut the image to a given > geometry (again, helps in providing different selective views to different > users) > - Speed up NetCDF mosaics by allowing usage of stores coming from a > repository > > <https://github.com/geotools/geotools/blob/master/modules/library/api/src/main/java/org/geotools/data/Repository.java>, > instead of re-creating them every time a NetCDF file is needed (to be setup > in the auxiliary store config file, while the repository instance needs to > be passed as a creation hint). > - The mosaic now works against images without a proper CRS, setting > them into the "CRS not found" wildcard CRS, aka "EPSG:404000" > > App-schema improvements > The app-schema module got significant performance and functionality > improvements since 19.x series, in particular: > > - Better delegation of spatial filters on nested properties to native > database > - Improved support for multiple nested attribute matches in filters > - It is now possible to use Apache SOLR as a data source for app-schema > - The configuration files can be hosted on a remote HTTP server > > Modules moving up and down > This release sees a number of modules moving down to unsupported due to > lack of maitainers, unsupported module being removed, while other modules > graduate to supported status. In particular: > > - The unsupported image-collection, sfs, efeature, caching, > feature-aggregate and geotiff-new module have been removed from the code > base (you can still find them in older releases and version control > history) > - The OGR and GTOPO30 modules have been downgraded to unsupported > status due to lack of maintainership > - The MongoDB module moves up to supported status > > Building on Windows > The GeoTools project builds again on Windows (with tests) and all new pull > requests are verified using AppVeyor. > > GeoTools is looking for Windows developers to join and help keep the build > passing, as well as locating and squashing a few intermittent failures > we're still experiencing. > Assorted improvements > Other highlights from our issue tracker release-notes > <https://osgeo-org.atlassian.net/secure/ReleaseNote.jspa?projectId=10001&version=16719> > : > > - Some speedups in in memory Expression evaluation, in particular > attribute value extraction in simple features and equality tests > - Support for "none" values in GeoCSS (to allow turning off > symbolization/properties in override rules) > > There is also a large set of bug fixes. For more information see the > release notes: (20.0 > <https://osgeo-org.atlassian.net/secure/ReleaseNote.jspa?projectId=10001&version=16729> > | 20-RC > <https://osgeo-org.atlassian.net/secure/ReleaseNote.jspa?projectId=10001&version=16719> > ). > _______________________________________________ > GeoTools-Devel mailing list > GeoTools-Devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/geotools-devel >
_______________________________________________ GeoTools-Devel mailing list GeoTools-Devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-devel