Bringing the scalability of distributed computing to modern geospatial software.
rfecher on gh-pages
Lastest javadoc on successful t… (compare)
rfecher on master
fixing coveralls (#1488) (compare)
rfecher on master
Update README.md (compare)
rfecher on master
updated readme.md (#1486) (compare)
Oct 24, 2020 8:57:26 PM org.geotools.referencing.operation.projection.TransverseMercator transform
WARNING: Possible use of "Transverse_Mercator" projection outside its valid area.
Longitude 309764°25.8'E is out of range (±180°).
Latitude 4355003°38.8'N is out of range (±90°).
SpatialIndexBuilder spIdxBldr = new SpatialIndexBuilder();
spIdxBldr.setCrs("EPSG:32636");
spatialIndex = spIdxBldr.createIndex();
TemporalIndexBuilder tmpIdxBldr = new TemporalIndexBuilder();
tmpIdxBldr.setName("TEMPORAL_IDX");
tmpIdxBldr.setPeriodicity(TemporalBinningStrategy.Unit.HOUR);
temporalIndex = tmpIdxBldr.createIndex();
dataStore.addIndex(spatialIndex);
dataStore.addIndex(temporalIndex);
dataStore.addType(sfAdapter, spatialIndex,temporalIndex);
25 Oct 12:33:01 ERROR [vector.FeatureDataAdapter] - Multiple indices with different CRS is not supported
Exception in thread "main" java.lang.RuntimeException: Multiple indices with different CRS is not supported
at org.locationtech.geowave.adapter.vector.FeatureDataAdapter.init(FeatureDataAdapter.java:241)
at org.locationtech.geowave.core.store.base.BaseDataStore.internalAddIndices(BaseDataStore.java:1142)
at org.locationtech.geowave.core.store.base.BaseDataStore.addType(BaseDataStore.java:1167)
at com.uasis.geowaveapi.Geowave.ingestFromFile(Geowave.java:95)
at com.uasis.geowaveapi.Geowave.main(Geowave.java:82)
public boolean init(final Index... indices) throws RuntimeException {
String indexCrsCode =
reprojectedFeatureType == null ? null
: GeometryUtils.getCrsCode(reprojectedFeatureType.getCoordinateReferenceSystem());
for (final Index primaryindx : indices) {
// for first iteration
if (indexCrsCode == null) {
if (primaryindx.getIndexModel() instanceof CustomCrsIndexModel) {
indexCrsCode = ((CustomCrsIndexModel) primaryindx.getIndexModel()).getCrsCode();
} else {
indexCrsCode = GeometryUtils.DEFAULT_CRS_STR;
}
} else {
if (primaryindx.getIndexModel() instanceof CustomCrsIndexModel) {
// check if indexes have different CRS
if (!indexCrsCode.equals(
((CustomCrsIndexModel) primaryindx.getIndexModel()).getCrsCode())) {
LOGGER.error("Multiple indices with different CRS is not supported");
throw new RuntimeException("Multiple indices with different CRS is not supported");
}
} else {
if (!indexCrsCode.equals(GeometryUtils.DEFAULT_CRS_STR)) {
LOGGER.error("Multiple indices with different CRS is not supported");
throw new RuntimeException("Multiple indices with different CRS is not supported");
}
}
}
}
Java docs for ingest:
<T> void ingest(String inputPath,
Index... index)
Ingest from path. If this is a directory, this method will recursively search for valid files to ingest in the directory. This will iterate through registered IngestFormatPlugins to find one that works for a given file. The applicable ingest format plugin will choose the DataTypeAdapter and may even use additional indices than the one provided.
Parameters:
inputPath - The path for data to read and ingest into this data store
index - The indexing approach to use.
@rfecher I tried to create the store using geowave cli, it worked and not getting any error like with geoserver admin console.
But I am not clear how the store can be linked with a dynamodb table in the aws?
Our requirement is to create a geoserver layer from the geometrical data in dynamodb. Is that possible with geowave?
When trying from geoserver console, only the endpoint required and the parameter list not mentioning anything related to the aws credentials to access the dynamodb. So how the credentials are resolved by geoserver?
At some point, with high precision, high dimensionality curves, the number of possible unit cells can become too large to deal with. In such a case, GeoWave optimizes this by treating the curve as a “lower cardinality” curve than it actually is. So the unit cell size might not be 1, but instead 64, 128, 1024, etc. This allows the user to still achieve high precision when selection windows are small but not spend an inordinate amount of time fully decomposing for large selection windows.