I am seeking advice on whether variable kernel density estimation is an appropriate approach for the following problem (apologies for the long explanation):

I am trying to identify water sources where animals drink, using hourly location data from satellite-tracked animals. I have written an algorithm that identifies track locations associated with drinking behavior, based on characteristics of the track. Let's call those "indicator points". They rarely fall exactly on a water source because the collars only report once per hour. For each cluster of "indicator points," I want to determine a) whether a water source exists and b) the location and shape of the water feature. I think this means that I want to create a probability density map for water features on a 2D gridded landscape, using some sort of kernel density estimation.

The challenge is, it doesn’t make sense to use a global function across the entire landscape because I need the sensitivity of the kernel function to vary. If 5 or 6 points fall in a tight cluster, I want that to be sufficient to indicate with high probability that a water source exists. However, there are sometimes as many as 250 points at a given water source. Any kind of global comparison between small and large clusters will either relegate the small clusters to low probabilities or cause the large clusters to turn into gigantic blobs. In large clusters, I would like to “reduce the sensitivity” of the function so that the additional information from the large number of points is used to map the shape of the water feature more accurately.

I am new to kernel density estimation, but it seems from my reading that variable kernel density estimation might be the right approach. A) Am I on the right track? and B) I note that there are two alternatives: “balloon” estimates which are point-based, and “sample-based estimates”, and I am confused as to which would be more appropriate (the R library ks has examples of both).

  • $\begingroup$ It's hard to understand the problem you're trying to solve (something about identifying geographic features from spatial points). Could edit the question to describe this in more detail? $\endgroup$
    – user20160
    Commented Mar 27, 2018 at 21:13
  • $\begingroup$ I've edited the question; hopefully it's a bit clearer. $\endgroup$
    – John
    Commented Mar 28, 2018 at 0:26

1 Answer 1


So Python's Sklearn package can be used with Basemap to create some cool visualisations of probability density functions on world maps. Here is a nice example which you may be able to adapt to your data set.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.