Skip to content

Commit

Permalink
Merge branch 'release/4.3.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
pomadchin committed Feb 12, 2021
2 parents fbad253 + 1c21de3 commit a72cee5
Show file tree
Hide file tree
Showing 174 changed files with 5,146 additions and 6,435 deletions.
51 changes: 10 additions & 41 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,48 +35,25 @@ aliases:
command: ./scripts/cipublish

# Build environments
- &openjdk8-scala2_11_12_environment
- &openjdk8-scala2_12_12_environment
docker:
- image: circleci/openjdk:8-jdk
environment:
SCALA_VERSION: 2.11.12

- &openjdk8-scala2_12_11_environment
docker:
- image: circleci/openjdk:8-jdk
environment:
SCALA_VERSION: 2.12.11
SCALA_VERSION: 2.12.12

version: 2
workflows:
version: 2
build:
jobs:
- "openjdk8-scala2.11.12":
filters: # required since `openjdk8-scala2.11.12_deploy` has tag filters AND requires `openjdk8-scala2.11.12`
- "openjdk8-scala2.12.12":
filters: # required since `openjdk8-scala2.12.12_deploy` has tag filters AND requires `openjdk8-scala2.12.12`
tags:
only:
- /^(.*)$/
- "openjdk8-scala2.12.11":
filters: # required since `openjdk8-scala2.12.11_deploy` has tag filters AND requires `openjdk8-scala2.12.11`
tags:
only:
- /^(.*)$/
- "openjdk8-scala2.11.12_deploy":
- "openjdk8-scala2.12.12_deploy":
requires:
- "openjdk8-scala2.11.12"
filters:
tags:
only:
- /^(.*)$/
branches:
only:
- develop
- /release\/.*/
- /hotfix\/.*/
- "openjdk8-scala2.12.11_deploy":
requires:
- "openjdk8-scala2.12.11"
- "openjdk8-scala2.12.12"
filters:
tags:
only:
Expand All @@ -88,18 +65,10 @@ workflows:
- /hotfix\/.*/

jobs:
"openjdk8-scala2.11.12":
<<: *openjdk8-scala2_11_12_environment
steps: *run_cibuild

"openjdk8-scala2.12.11":
<<: *openjdk8-scala2_12_11_environment
"openjdk8-scala2.12.12":
<<: *openjdk8-scala2_12_12_environment
steps: *run_cibuild

"openjdk8-scala2.11.12_deploy":
<<: *openjdk8-scala2_11_12_environment
steps: *run_cipublish

"openjdk8-scala2.12.11_deploy":
<<: *openjdk8-scala2_12_11_environment
"openjdk8-scala2.12.12_deploy":
<<: *openjdk8-scala2_12_12_environment
steps: *run_cipublish
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,6 @@ pc.stdout.log
*.log
.DS_Store
.bloop
.metals
.metals
metals.sbt
.history
2 changes: 2 additions & 0 deletions .sbtopts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
-J-Xmx2G
-J-Xms1G
-J-Xss5M
-J-XX:+UseConcMarkSweepGC
-J-XX:+CMSClassUnloadingEnabled
-Djava.awt.headless=true
-Dsbt.color=always
-Dsbt.supershell=false
13 changes: 12 additions & 1 deletion .scalafmt.conf
Original file line number Diff line number Diff line change
@@ -1 +1,12 @@
version=2.0.0-RC4
version = "2.6.1"
align = most
continuationIndent.callSite = 2
continuationIndent.defnSite = 2
danglingParentheses = true
indentOperator = spray
maxColumn = 150
newlines.alwaysBeforeTopLevelStatements = false
project.excludeFilters = [".*\\.sbt"]
rewrite.rules = [RedundantParens, SortImports]
spaces.inImportCurlyBraces = false
unindentTopLevelOperators = true
15 changes: 13 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [4.3.0] - 2021-02-12

## Added
- Logging into STAC API Client [#293](https://github.com/geotrellis/geotrellis-server/pull/293)

### Changed
- *BREAKING* Typeclasses no longer bind the effect type to IO [#284](https://github.com/geotrellis/geotrellis-server/pull/284)
- Optimize MapAlgebraStacOgcRepositories [#291](https://github.com/geotrellis/geotrellis-server/pull/291)
- Update STAC4s up to 0.0.11 with STAC 1.0.0-beta.1 support [#295](https://github.com/geotrellis/geotrellis-server/pull/295)

## Fixed
- Fix STAC API TemporalExtent JSON representation [#293](https://github.com/geotrellis/geotrellis-server/pull/293)

## [4.2.0] - 2020-06-23

### Added
Expand All @@ -26,14 +39,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Enabling Time Dimension for mapalgebrasourceconf on Temporal Layers [#262](https://github.com/geotrellis/geotrellis-server/issues/262)

### Changed

- The `layers.layer-name.sources` field in application.conf is renamed to `source` and now supports a single RasterSource URI string. See `ogc-example/src/main/resources/application.conf` for examples.
- `type = "simplesourceconf"` should be changed to `type = "rastersourceconf"` in application.conf
- Remove GeoTrellisRasterSourceLegacy [#197](https://github.com/geotrellis/geotrellis-server/issues/197)
- Receive GPG key while publishing artifacts [#271](https://github.com/geotrellis/geotrellis-server/pull/271)

### Fixed

- Addressed GeoTrellisRasterSourceLegacy issues and minimized number of RasterSource instances constructed for GeoTrellis Layers [#219](https://github.com/geotrellis/geotrellis-server/issues/219)
- Some source resolutions are sometimes skipped leading to reading too much tiles [#215](https://github.com/geotrellis/geotrellis-server/issues/215)
- LayerHistogram should select the CellSize large enough to compute the histogram [#261](https://github.com/geotrellis/geotrellis-server/pull/261)
Expand Down
5 changes: 5 additions & 0 deletions bench/src/main/resources/application.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
geotrellis.raster.gdal.options {
GDAL_DISABLE_READDIR_ON_OPEN = "YES"
CPL_VSIL_CURL_ALLOWED_EXTENSIONS = ".tif"
GDAL_CACHEMAX = "0"
}
94 changes: 41 additions & 53 deletions bench/src/main/scala/geotrellis/server/TmsReificationBench.scala
Original file line number Diff line number Diff line change
Expand Up @@ -14,67 +14,55 @@
* limitations under the License.
*/

// package geotrellis.server
package geotrellis.server

// import geotrellis.server.vlm.geotiff._
// import geotrellis.server.vlm.gdal._
import geotrellis.server.vlm.geotiff._
import geotrellis.raster.MultibandTile
import com.azavea.maml.ast._
import com.azavea.maml.error._
import com.azavea.maml.eval.ConcurrentInterpreter
import cats.effect._
import io.chrisdavenport.log4cats.slf4j.Slf4jLogger

// import geotrellis.raster.MultibandTile
// import com.azavea.maml.ast._
// import com.azavea.maml.error._
// import com.azavea.maml.util.Square
// import com.azavea.maml.eval.BufferingInterpreter
// import cats.effect._
// import org.openjdk.jmh.annotations._
// import org.gdal.gdal.gdalJNI
import org.openjdk.jmh.annotations._

// import scala.concurrent.ExecutionContext
// import java.net.URI
import scala.concurrent.ExecutionContext
import java.net.URI

@BenchmarkMode(Array(Mode.AverageTime))
@State(Scope.Thread)
class TmsReificationBench {

// @BenchmarkMode(Array(Mode.AverageTime))
// @State(Scope.Thread)
// class TmsReificationBench {
implicit val logger = Slf4jLogger.getLogger[IO]
implicit var contextShift = IO.contextShift(ExecutionContext.global)

// // gdal performance will be obscured by the caching it attempts
// gdalJNI.SetConfigOption("GDAL_CACHEMAX", "0")
// NDVI
val ast: Expression =
Division(List(Subtraction(List(RasterVar("red"), RasterVar("nir"))), Addition(List(RasterVar("red"), RasterVar("nir")))))

// implicit var contextShift = IO.contextShift(ExecutionContext.global)
// red, green, NIR bands which should have data for z/x/y 9/454/200
val geotiffVars = Map(
"red" -> GeoTiffNode(new URI("https://s3.amazonaws.com/geotrellis-test/daunnc/r-g-nir-with-ovrs.tif"), 0, None),
"nir" -> GeoTiffNode(new URI("https://s3.amazonaws.com/geotrellis-test/daunnc/r-g-nir-with-ovrs.tif"), 2, None)
)

// // NDVI
// val ast =
// Division(List(
// Subtraction(List(
// RasterVar("red"),
// RasterVar("nir"))),
// Addition(List(
// RasterVar("red"),
// RasterVar("nir"))
// ))
// )
val gdalVars = Map(
"red" -> GeoTiffNode(new URI("gdal+https://s3.amazonaws.com/geotrellis-test/daunnc/r-g-nir-with-ovrs.tif"), 0, None),
"nir" -> GeoTiffNode(new URI("gdal+https://s3.amazonaws.com/geotrellis-test/daunnc/r-g-nir-with-ovrs.tif"), 2, None)
)

// // red, green, NIR bands which should have data for z/x/y 9/454/200
// val geotiffVars = Map(
// "red" -> GeoTiffNode(new URI("https://s3.amazonaws.com/geotrellis-test/daunnc/r-g-nir-with-ovrs.tif"), 0, None),
// "nir" -> GeoTiffNode(new URI("https://s3.amazonaws.com/geotrellis-test/daunnc/r-g-nir-with-ovrs.tif"), 2, None)
// )
// val gdalVars = Map(
// "red" -> GDALNode(new URI("https://s3.amazonaws.com/geotrellis-test/daunnc/r-g-nir-with-ovrs.tif"), 0, None),
// "nir" -> GDALNode(new URI("https://s3.amazonaws.com/geotrellis-test/daunnc/r-g-nir-with-ovrs.tif"), 2, None)
// )
@Setup(Level.Trial)
def setup(): Unit = {}

// @Setup(Level.Trial)
// def setup(): Unit = {}
@Benchmark
def geotiffLayerTms: Interpreted[MultibandTile] = {
val eval = LayerTms(IO(ast), IO(geotiffVars), ConcurrentInterpreter.DEFAULT[IO])
eval(9, 454, 200).unsafeRunSync
}

// @Benchmark
// def geotiffLayerTms: Interpreted[MultibandTile] = {
// val eval = LayerTms(IO(ast), IO(geotiffVars), BufferingInterpreter.DEFAULT)
// eval(9, 454, 200).unsafeRunSync
// }

// @Benchmark
// def gdalLayerTms: Interpreted[MultibandTile] = {
// val eval = LayerTms(IO(ast), IO(gdalVars), BufferingInterpreter.DEFAULT)
// eval(9, 454, 200).unsafeRunSync
// }
// }
@Benchmark
def gdalLayerTms: Interpreted[MultibandTile] = {
val eval = LayerTms(IO(ast), IO(gdalVars), ConcurrentInterpreter.DEFAULT[IO])
eval(9, 454, 200).unsafeRunSync
}
}
Loading

0 comments on commit a72cee5

Please sign in to comment.