Skip to content
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

Partitioning using Healpix: the onion space #11

Open
JulienPeloton opened this issue May 16, 2018 · 5 comments
Open

Partitioning using Healpix: the onion space #11

JulienPeloton opened this issue May 16, 2018 · 5 comments
Assignees

Comments

@JulienPeloton
Copy link
Member

Here is the current idea for partitioning the space.

healpix_partitioning

@JulienPeloton
Copy link
Member Author

The equivalent of Envelope in JTS will be Sphere here. The difference between 2 concentric spheres will define the elements of the grid (from the partition point of view). In a sense, we will have a onion space!

@JulienPeloton JulienPeloton changed the title Partitioning using Healpix Partitioning using Healpix: the onion space May 16, 2018
@JulienPeloton
Copy link
Member Author

JulienPeloton commented May 17, 2018

With the current implementation, we have:

// Initialise our space:
// z_min = 0.0, z_max = 1.0, with splits every dZ = 0.1.
val partitioning = new OnionPartitioning
partitioning.LinearOnionPartitioning(0.0, 1.0, 0.1)

// Grab the grid elements
val grids = partitioning.getGrids

// Build our partitioner
val partitioner = new OnionPartitioner(GridType.LINEARONIONGRID, grids)

// Draw a point and place it on our grid
val p = new Point3D(0.0, 0.0, 0.45)
val iterator = partitioner.placeObject(p)

@JulienPeloton
Copy link
Member Author

JulienPeloton commented May 18, 2018

Still plenty of TODOs, but things are moving forward (see #12). Random thoughts:

  • Make the partitioning based on a number of partition (either given by the user, or guess from the underlying RDD) instead of specifying manually the bounds. That would unify the interface with GeoSpark and avoid memory issue (imagine: all points could be in one partition if the points are clustered in one place + few outliers far away...)
  • Use a pattern matching to trigger the partitioning based on the GridType value given by the user.
  • Add method to pixelised each shell (using Healpix for example).
  • ....?

@ChrisArnault
Copy link
Contributor

Z-Shells may be ordered

  • linear
  • log
  • according to a UDF (= Density model)
  • consider the "last-shell"

@JulienPeloton
Copy link
Member Author

#25

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants