I'm trying to cluster some data that at it's heart is basically 3 data points: [latitude, longitude, arbitrary magnitude]
Example: |Lat | Long | Magnitude|
|34.2048795|-118.3212319|15|
|33.9136998|-117.4905757|3|
|34.0219688|-118.193333|4|
|34.0432199|-117.1695546|5|
|34.1904982|-118.4965447|3|
|32.8016001|-96.9406788|2|
|35.4333699|-94.58022|9|
|39.924909 |-83.858981|4|
|40.1129458|-84.6232003|2|
|39.0261749|-84.318664|6|
The trick is that each cluster can't be more than 30 miles in diameter and we want to go for the highest sum of the arbitrary magnitude in each cluster and each point should only be in one cluster.
The solution doesn't need to factor in the curvature of the earth or anything fancy like that. The data sets are relatively local.
The data sets will probably range from a few rows to 100k rows.
Is there a clustering algorithm that can handle this well?