GeoTrellis is a geographic data processing engine for high performance applications.
pomadchin on master
Expose Charset in a ShapeFileRe… (compare)
$ sbt
$ project ogc-example
$ run http://localhost:port/
raster and vector packages only; and without SPI usage
Sounds interesting, maybe I can cut down the geotrellis deps a bit more and do a minimal install
makes sense +
Thanks again for the gudience, I'll let you know how i go
:+1: :rocket:
Hi I want to read the RDD by time. This is my code
val attributeStore = FileAttributeStore("/Users/xugaofeng/tif/LC08TIME/123")
val layerReader = FileLayerReader(attributeStore)
val queryResult: TileLayerRDD[SpaceTimeKey] = layerReader.query[SpaceTimeKey, Tile, TileLayerMetadata[SpaceTimeKey]](LayerId("TESTTIME", 2))
.where(Between(ZonedDateTime.of(2018, 12, 27, 7, 0, 0, 0, ZoneOffset.UTC), ZonedDateTime.of(2018, 12, 28, 9, 0, 0, 0, ZoneOffset.UTC)))
.result
val maximumTemperature: RDD[(SpatialKey, Tile)] = queryResult.map { case (key, tile) => (key.getComponent[SpatialKey], tile) }.reduceByKey(_.localMax(_))
val tile = maximumTemperature.stitch()
val png = tile.renderPng(colorMapPm25)
png.write("/Users/xugaofeng/tif/LC08TIME/123/time.png")
Error message
Exception in thread "dispatcher-event-loop-1" java.lang.StackOverflowError
at com.esotericsoftware.kryo.util.ObjectMap.get(ObjectMap.java:351)
at com.esotericsoftware.kryo.util.DefaultClassResolver.getRegistration(DefaultClassResolver.java:79)
at com.esotericsoftware.kryo.Kryo.getRegistration(Kryo.java:488)
at com.esotericsoftware.kryo.util.DefaultClassResolver.writeClass(DefaultClassResolver.java:97)
at com.esotericsoftware.kryo.Kryo.writeClass(Kryo.java:540)
at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:75)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:508)
at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:651)
at com.twitter.chill.Tuple2Serializer.write(TupleSerializers.scala:36)
at com.twitter.chill.Tuple2Serializer.write(TupleSerializers.scala:33)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
val tile = value
.where(Intersects(extent.center))
.where(Between(ZonedDateTime.of(2017, 12, 27, 7, 0, 0, 0, ZoneOffset.UTC), ZonedDateTime.of(2021, 12, 28, 9, 0, 0, 0, ZoneOffset.UTC)))
.result.sortByKey(false).map { case (key, tile) => (key.getComponent[SpatialKey], tile) }.reduceByKey(_.merge(_)).stitch()
val png = tile.renderPng()
png
CollectionLayerReader
for the temporal query to make it faster; the API would be the same but you wont need Spark