from ..libgeoda import gda_hinge15breaks
from ..libgeoda import gda_hinge30breaks
from ..libgeoda import gda_naturalbreaks
from ..libgeoda import gda_quantilebreaks
from ..libgeoda import gda_percentilebreaks
from ..libgeoda import gda_stddevbreaks
from ..libgeoda import VecBool
__author__ = "Xun Li <lixun910@gmail.com>, Hang Zhang <zhanghanggis@163.com>, "
[docs]def hinge15_breaks(data,**kwargs):
"""(Box) Hinge15 Breaks
Hinge15 breaks data into 6 groups like box plot groups (Lower outlier, < 25%, 25-50%, 50-75%, >75%, Upper outlier) with hinge=1.5
Args:
data (tuple): A tuple with values of a selected variable
Returns:
list: A numeric list of break values
"""
if data is None:
raise("The data from selected variable is empty.")
undefs = VecBool() if 'undefs' not in kwargs else kwargs['undefs']
return gda_hinge15breaks(data, undefs)
[docs]def hinge30_breaks(data,**kwargs):
"""(Box) Hinge30 Breaks
Hinge30 breaks data into 6 groups like box plot groups (Lower outlier, < 25%, 25-50%, 50-75%, >75%, Upper outlier) with hinge=3.0
Args:
data (tuple): A tuple with values of a selected variable
Returns:
list: A numeric list of break values
"""
if data is None:
raise("The data from selected variable is empty.")
undefs = VecBool() if 'undefs' not in kwargs else kwargs['undefs']
return gda_hinge30breaks(data, undefs)
[docs]def natural_breaks(k,data,**kwargs):
"""Natural Breaks (Jenks)
Natural Breaks group data whose boundaries are set where there are relatively big differences.
Args:
k (int): Number of breaks
data (tuple): A tuple with values of a selected variable
Returns:
list: A numeric list of break values
"""
if k is None or k < 2:
raise("The value of K needs to be greater than or equal to 2 ")
if data is None:
raise("The data from selected variable is empty.")
undefs = VecBool() if 'undefs' not in kwargs else kwargs['undefs']
return gda_naturalbreaks(k, data, undefs)
[docs]def quantile_breaks(k,data,**kwargs):
"""Quantile breaks
Quantile breaks data into groups that each have the same number of observations
Args:
k (int): Number of breaks
data (tuple): A tuple with values of a selected variable
Returns:
list: A numeric list of break values
"""
if k is None or k < 2:
raise("The value of K needs to be greater than or equal to 2 ")
if data is None:
raise("The data from selected variable is empty.")
undefs = VecBool() if 'undefs' not in kwargs else kwargs['undefs']
return gda_quantilebreaks(k, data, undefs)
[docs]def percentile_breaks(data,**kwargs):
"""Percentile breaks
Note:
The percentile breaks divides the data to six ranges, the lowest 1%, 1-10%, 10-50%, 50-90%, 90-99% and the top 1%, returning the range boundaries as a breakpoint list.
Args:
data (tuple): A tuple with values of a selected variable
Returns:
list: A numeric list of break values
"""
if data is None:
raise("The data from selected variable is empty.")
undefs = VecBool() if 'undefs' not in kwargs else kwargs['undefs']
return gda_percentilebreaks(data, undefs)
[docs]def stddev_breaks(data,**kwargs):
"""Standard deviation breaks
Note:
Standard deviation breaks calculate the number of standard deviational units of the range from lowest to highest, returning a breakpoint list.
Args:
data (tuple): A tuple with values of a selected variable
Returns:
list: A numeric list of break values
"""
if data is None:
raise("The data from selected variable is empty.")
undefs = VecBool() if 'undefs' not in kwargs else kwargs['undefs']
return gda_stddevbreaks(data, undefs)