Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 31 2019 17:36
    schnerd starred locationtech/geowave
  • Jan 30 2019 11:01
    hsg77 commented #1474
  • Jan 30 2019 10:58
    hsg77 commented #1474
  • Jan 30 2019 10:57
    hsg77 commented #1474
  • Jan 30 2019 10:53
    hsg77 commented #1474
  • Jan 30 2019 10:53
    hsg77 commented #1474
  • Jan 30 2019 10:51
    hsg77 commented #1474
  • Jan 29 2019 16:30
    JWileczek commented #1474
  • Jan 29 2019 16:30
    JWileczek commented #1474
  • Jan 29 2019 16:12
    rfecher commented #1474
  • Jan 29 2019 10:44
    hsg77 commented #1474
  • Jan 28 2019 22:47
    sunapi386 starred locationtech/geowave
  • Jan 28 2019 21:12

    rfecher on gh-pages

    Lastest javadoc on successful t… (compare)

  • Jan 28 2019 20:47

    rfecher on master

    fixing coveralls (#1488) (compare)

  • Jan 28 2019 20:47
    rfecher closed #1488
  • Jan 28 2019 20:47
    rfecher opened #1488
  • Jan 28 2019 17:02

    rfecher on master

    Update README.md (compare)

  • Jan 28 2019 16:53

    rfecher on master

    updated readme.md (#1486) (compare)

  • Jan 28 2019 16:53
    rfecher closed #1486
rfecher
@rfecher
@moradology perhaps this code gives a good reference within geowave...the "knob" this description of "theory" is referring to is the constant "UNIT_CELL_SIZE"
rfecher
@rfecher
basically unit cell size is a cap on the worst case amount of cells produced in decomposition (practically speaking it does not hit this worst case decomposition but it at least provides a ceiling) ... generally speaking when in multi-dimensional space the max range per dimension from the query range is sufficiently small enough to imply that decomposition could not exceed that unit cell size, you get a cell size of one and full decomposition, if you don't cap it though it could lead to exponentially extreme decomposition on large query windows with a high precision curve
Chamin Nalinda
@0xchamin
I am aware of GeoWave's capability of storing and managing point clouds. But I haven't seen work that shares the performance benchmark of using GeoWave for point cloud data management. Are there any while paper or research paper in this. My objective is to compare the performance in terms of storage, loading and querying with other solutions such as PostgreSQL/PostGIS and Oracle.
Brad Hards
@bradh
Unlikely to see Oracle. Their standard EULA prohibits benchmarking. Assume its worse and move on.
Chamin Nalinda
@0xchamin
are there any white paper that publishes results of point cloud data management with in GeoWave??
Brad Hards
@bradh
I just searched Google and it found a couple from 2018.
Chamin Nalinda
@0xchamin
could you please share it ? I found papers that say GeoWave provide facility to manage Point cloud data. But didn't find any work that has done experimentation with point cloud in GeoWave. The materials refer GeoWave as an example system. But I was unable to find a paper that use GeoWave for point cloud data management. could you please share it with me. many thanks!
Brad Hards
@bradh
Maybe it mentioned it, but didn't benchmark it.
Grigory
@pomadchin
@0xchamin I don’t think GeoWave would be very specific about pointcloud data; you can consider it as some binary data indexed via GeoWave; so all benchmarks that you’ll find can pretty much fit your question
Chamin Nalinda
@0xchamin
hi @pomadchin , that's an interesting way to approach it. many thanks!
rfecher
@rfecher
I'm excited to announce v1.2.0 was released!
Grigory
@pomadchin
w00000t
@rfecher :tada:
loridigia
@loridigia
Hi guys, i have a question about netCDF format... using the geotools netCDF reader, i got a GridCoverage2D for each band in the image... But when i try to merge them, it can not be done because of different dataType in the model. Someone know if it could be done in someway?
rfecher
@rfecher
interesting that the netCDF reader is giving you a GridCoverage2D for each band in the image ... so for term clairification a "Coverage name" refers to a homogenous gridded dataset (the same sample model, which can be multiple types, where each band is of a given type, but every grid position is going to have the same bands/types) and from my experience with multi-dimensional data using net CDF each dimension is a band, not a separate coverage ... basically, my understanding of your statement "using the geotools netCDF reader, i got a GridCoverage2D for each band in the image" is that for n bands you got n single-band coverages rather than one n-band coverage. If thats the case, and you want a single multi-band coverage I've used geotools' BandMerge operation successfully before (just make sure you do it before ingesting into geowave so geowave gets a consistent representation of the coverage). Actually this is exactly one of the options available within geowave's landsat8 ingest so here's code referencing how to do exactly this
loridigia
@loridigia
@rfecher Yeah i misused the terms, since i need to have a only a single multi-band GridCoverage2D to do preliminary operation before ingest, using the NetCDFReader i must use getGridCoverageNames() and for each coverage name i can call reader.read(converageName, PARAMS), as you said. I'm actually trying to use BandMarge operation but the problem is that i always get "Input Coverages must have the same data type" on almost all my netCDF files, cause the bands has different dataType and so i can't merge them. Do you have any suggests about it?
rfecher
@rfecher
so I my understanding is the purpose of the band merge operation is to make a multi-band coverage from multiple different coverages with one (or more than one) band. It surprises me to hear that there are issues with geotools' band merge when the bands are of different data types (that just seems to arbitrarily limit the applicability), but I can't say I've ever really stretched it too much. I think I've at least merged perhaps a panchromatic band with a different resolution and numeric domain with other bands, but I'm not sure and I don't remember details. Regardless, it sounds like you're having an issue specific to geotools' band merge, which isn't really a core part of what geowave maintains. Seems like a good question for geotools devs. Also, I'd bet you'd have success with GDAL. Its pretty industry standard and robust for handling raster transformations such as a band merge.
loridigia
@loridigia
Yes is very limiting i'll try to report the problem to Geotools Dev. Probably with GDAL there will be no problem but i'm trying to keep my architecture 100% based on geotools. Thanks btw
Sharath S Bhargav
@sharathbhargav
Hi guys,
I am new to Geowave and spatio-temporal data storage and querying in general. I have a use case where I need to store trajectories in geowave and perform queries like finding if a trajectory intersected with a polygon or with another trajectory, or finding all trajectories within a certain distance from a point. Any help in how to go about storing such data and querying would be very helpful.
Thank you
rfecher
@rfecher
@sharathbhargav were you able to find the relevant info?
Sharath S Bhargav
@sharathbhargav
@rfecher Not really. I went through the past posts and as far as I saw there is just a small discussion on a topic related to this.
As of now I was thinking of using the "m" dimension in the linestring and use the set of points with time as one entry in the table along with start time, end time etc. But am facing issues when it comes to linestring intersection with a polygon. The JTS library doesn't handle the "m" dimension well. It would be great if you could point me to some resources.
rfecher
@rfecher
so you don't need to attach the time directly to the geometry object ... if you're ingest vector data in the form of SimpleFeatures (basically all the geowave vector ingest formats and any vector data derived from geotools follows this format) you really need fields that are a Date attribute type. It will infer one of those fields is the timestamp, or if you have a Date field that starts with "start" and one that starts with "end" it will infer those are actually time range rather than an instantaneous time. You can manually configure the time fields as well, and here's instructions when using the CLI.
These time fields would be used appropriately for spatio-temporal indexing (and of course simple temporal indexing as well). Here's documentation for adding these index types through the CLI.
rfecher
@rfecher
and then a quick and easy way to run a spatio-temporal query through the CLI would be using geowave's SELECT syntax with a CQL filter as described here ... here's a good reference on CQL syntax
this is assuming you're using the CLI though, all the same functionality should be available programmatically
Sharath S Bhargav
@sharathbhargav
For my use case I need to associate certain timestamps with each point and string those points to a line to form a trajectory. And when an intersection with a polygon is calculated I need those exact timestamps back if the points properly coincide or the timestamp of the closest point in the linesegment. I am not sure if setting a range for a single trajectory would help me achieve this.
rfecher
@rfecher
it looks like you may be using geowave's python bindings? GeoWave's python docs have an example on the main page of a spatial index with spatio-temporal data (a SimpleFeature with a date field) ... it looks like all that would change from that example is to use a spatio-temporal index instead and you should at least have a starting point. Then the QueryBuild code in python could use spatiotemporal constraints per this documentation
Sharath S Bhargav
@sharathbhargav
Yes if I consider the points as separate entities I can model them as per the example. But then this would not cover the case where in I need to know if a trajectory intersected with a polygon. For that I need to model the individual points as a line and then find the intersection. I am looking at a case where there is a polygon and a set of points that are supposed to be part of a trajectory. If none of the points actually intersect with the polygon, yet a line joining those points would pass through the polygon. For such use cases I need to model my data as set of linestrings in which case I end up with the problem I have mentioned.
rfecher
@rfecher
yeah, using geowave I'd suggest both. You could ingest the points with a timestamp in a spatio-temporal index for "exact coincidence" and alternatively if closest approach is needed instead, you could have a separate "feature type" for the linestring and time range. GeoWave out of the box won't perform the closest approach algorithm although it'll give you quick access to just the overlapping spatio-temporal trajectories that match and you can find other libraries to utilize or roll your own algorithm to get the closest point of approach
also, PostGIS has this function built-in: https://postgis.net/docs/ST_ClosestPointOfApproach.html ... there are pro's and con's to PostGIS and GeoWave, 2 very different technologies that solve similar problems, but if you can satisfy all your requirements easier/better using PostGIS you should give that a shot
Sharath S Bhargav
@sharathbhargav
yeah that would probably work. Will try this out.
I am mostly looking at distributed data store so i think i have to use geowave or geomesa or have to look the distributed extension for PostGIS. Will consider their pros and cons and decide.
Thanks for your time.
Grigory
@pomadchin
heeey are there any plans to upgrade geotools and jts (up to 1.17)?
unfortunately 1.17 is not a binary compatible release :/ and in creates issues because of that
rfecher
@rfecher
Yep, we've talked about it. We're currently talking about doing a 2.0 release next which would include that breaking change and other bigger ideas.
zhang.yun
@Zhang-Yun
Hi,Guys,I am new to GeoWave.I am wonderimng whether it supports to store and index linestring/polygon with x,y,z-coordinate
since all examples I found is relevent to point
another question is that possible to manage massive point cloud in geowave
thanks
zhang.yun
@Zhang-Yun
is there any production grade project that uses geowave as datastore?
rfecher
@rfecher
@Zhang-Yun yes geowave is production grade
zhang.yun
@Zhang-Yun
THANKS
one more questions does it support to store and index linestring/polygon with x,y,z-coordinate
rfecher
@rfecher
regarding linestring/polygon x/y/z I think there should be many examples of linestring/polygon with x,y. We store/retrieve "Z" if any geometry has a Z component and it can be used for massive point cloud datasets although to index "Z" in either case requires some custom code outside of the general API (indices are discovered by the CLI using Java SPI, so you can inject any indexing scheme integrated throughout the application with some custom code, out of the box we support 2D spatial and spatiotemporal indexing).
if indexing X,Y and then post-filtering Z is sufficient for the linestring/poly x,y,z use case that should be pretty standard out of the box. But to interleave Z into the keys (ie. index) you'd have to add a new index to the app for that.
zhang.yun
@Zhang-Yun
thanks a lot!
rfecher
@rfecher
also regarding usage for point clouds there's locationtech/geowave#1799 someone else had raised about a month ago that could give some insight