Example #1
0
    def test_local_moran(self):
        lisa = pygeoda.local_moran(self.queen_w, self.crm_prp, permutation_method="complete")

        lms = lisa.lisa_values()
        self.assertEqual(lms[0], 0.015431978309803657)
        self.assertEqual(lms[1], 0.3270633223656033)
        self.assertEqual(lms[2], 0.021295296214118884)

        pvals = lisa.lisa_pvalues()
        self.assertEqual(pvals[0], 0.41399999999999998)
        self.assertEqual(pvals[1], 0.123)
        self.assertEqual(pvals[2], 0.001)

        cvals = lisa.lisa_clusters()
        self.assertEqual(cvals[0], 0)
        self.assertEqual(cvals[1], 0)
        self.assertEqual(cvals[2], 1)
import matplotlib
import matplotlib.pyplot as plt
import geopandas


# 输入shp文件
dataPath = argv[1]
feild = argv[2]
randomSed = int(argv[3])
filter = float(argv[4])
cpu=int(argv[5])

data = pygeoda.open(dataPath)
queen_w = pygeoda.weights.queen(data)
fieldCol = data.GetIntegerCol(feild)
lisa = pygeoda.local_moran(queen_w, fieldCol)
lisa.SetPermutations(randomSed)
lisa.SetThreads(cpu)
lisa.Run()


lisa_colors = lisa.GetColors()
lisa_labels = lisa.GetLabels()

lisa_cluster = lisa.GetClusterIndicators()
list_p_value = lisa.GetPValues()

fig, ax = plt.subplots(figsize=(10, 10))

gdf = geopandas.read_file(dataPath)
Example #3
0
    def test_GetFDR(self):
        lm = pygeoda.local_moran(self.queen_w, self.crm_prp)

        p = lm.lisa_fdr(0.05)
        self.assertAlmostEqual(p, 0.000588235)
Example #4
0
Usage: 
python3 perf_pygeoda.py FILE_PATH VARIABLE_NAME PERMUTATIONS PERMUTATION_METHOD CPU_THREADS
python3 perf_pygeoda.py ./data/natregimes.shp HR60 999 brutal-force 1
python3 perf_pygeoda.py ./data/natregimes.shp HR60 999 lookup-table 8
"""
data_path = sys.argv[1]
var_name = sys.argv[2]
perms = int(sys.argv[3])
perm_method = sys.argv[4]
cpu_threads = int(sys.argv[5])

# prepare the data and weights
dt = pygeoda.open(data_path)
if data_path == './data/Chicago_parcels_points.shp':
    w = pygeoda.weights.knn_weights(dt, 10)
else:
    w = pygeoda.weights.queen_weights(dt)
x = dt.GetRealCol(var_name)

# time it
start_time = time.time()
lisa = pygeoda.local_moran(w,
                           x,
                           permutations=perms,
                           permutation_method=perm_method,
                           cpu_threads=cpu_threads)
run_time = time.time() - start_time

print("{0} {1} {2} {3}: {4} seconds".format(data_path, perms, perm_method,
                                            cpu_threads, run_time))