-
Notifications
You must be signed in to change notification settings - Fork 361
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create GeoWave Subproject #1542
Create GeoWave Subproject #1542
Conversation
712b4ac
to
70520b1
Compare
21249d4
to
b8501be
Compare
if (implicitly[ClassTag[K]].toString != "geotrellis.spark.SpatialKey") | ||
throw new Exception("Unsupported Key Type") | ||
|
||
/* XXX numPartitions, and filterIndexOnly are currently ignored. */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In GeoWave, is it always 1 index == 1 tile? If so, then you're not really ignoring filter index only, it's just by default doing either true or false behavior. filterIndexOnly
is for when the index has more than one tile stored in the values, so that when we are updating tile entries in a backend we can update the tile information while not losing the surrounding tile info.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I understand your usage of the word "index" above, then I believe there is one index (one address) for one tile and one tile for one address. Thanks for the clarification on flterIndexOnly
.
c3f6159
to
3164a3a
Compare
3164a3a
to
e665d9a
Compare
e665d9a
to
d81c543
Compare
d81c543
to
3b03c22
Compare
95f02fe
to
27c0035
Compare
.map { kv => | ||
val List(name, zoomStr) = kv.getKey.getRow.toString.split(SEP).toList | ||
LayerId(name, zoomStr.toInt) | ||
} | ||
.toList | ||
.distinct | ||
|
||
scanner.close ; retval |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A more safe way to write this would be
val scanner = connector.createScanner(attributeTable, new Authorizations())
try {
scanner.iterator
.map { kv =>
val List(name, zoomStr) = kv.getKey.getRow.toString.split(SEP).toList
LayerId(name, zoomStr.toInt)
}
.toList
.distinct
} finally {
scanner.close()
}
The rule generally followed with parans or no parans on a method that takes no arguments is that, if the method has side effects, include the parans so that it would never be mistaken for a val
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lossyrob I can takesimilar changes into account for hbase backend too
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well taken, it looks like Eugene addressed this one.
Includes formatting changes, additional comments, GeoWave-API-change changes, and removal of unused imports.
Includes GeowaveAttributeStore-related changes and removal of unused imports.
This serializer delegates to normal Java serialization.
When a precision is specified, the corners and edges of extents which are close to the splits associated with that precision are snapped to match the splits exactly. This is done to work-around difficulties which emerge when the values are close but not exactly the same
6543b16
to
f27ea0f
Compare
Merging! |
😄 |
These changes add a GeoWave subproject, which includes a
GeowaveAttributeStore
,GeowaveLayerReader
, andGeowaveLayerWriter
.asInstanceOf
geotools
TestsGridCoverage2D
Kryo SerializerTests can be run locally and they pass, but there appears to be insufficient memory to bring up GeoWave on Travis: