added kmeans2
This commit is contained in:
parent
9fbe63af48
commit
ef9fd10e2f
|
@ -0,0 +1,3 @@
|
||||||
|
int *getRandoms(int lower, int upper, int count);
|
||||||
|
long double distance(struct Point* A, struct Point* B);
|
||||||
|
void Kmeans2(struct data_frame *df);
|
|
@ -0,0 +1,500 @@
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.099998, 65469.000000, 2
|
||||||
|
50.099998, 65469.000000, 2
|
||||||
|
50.099998, 65469.000000, 2
|
||||||
|
50.099998, 65469.000000, 2
|
||||||
|
50.099998, 65469.000000, 2
|
||||||
|
50.099998, 65469.000000, 2
|
||||||
|
50.099998, 65469.000000, 2
|
||||||
|
50.099998, 65469.000000, 2
|
||||||
|
50.099998, 65469.000000, 2
|
||||||
|
50.099998, 65469.000000, 2
|
||||||
|
50.400002, 65467.000000, 2
|
||||||
|
50.400002, 65467.000000, 2
|
||||||
|
50.400002, 65467.000000, 2
|
||||||
|
50.400002, 65467.000000, 2
|
||||||
|
50.400002, 65467.000000, 2
|
||||||
|
50.400002, 65467.000000, 2
|
||||||
|
50.400002, 65467.000000, 2
|
||||||
|
50.400002, 65467.000000, 2
|
||||||
|
50.400002, 65467.000000, 2
|
||||||
|
50.400002, 65467.000000, 2
|
||||||
|
50.400002, 65442.000000, 0
|
||||||
|
50.400002, 65442.000000, 0
|
||||||
|
50.400002, 65442.000000, 0
|
||||||
|
50.400002, 65442.000000, 0
|
||||||
|
50.400002, 65442.000000, 0
|
||||||
|
50.400002, 65442.000000, 0
|
||||||
|
50.400002, 65442.000000, 0
|
||||||
|
50.400002, 65442.000000, 0
|
||||||
|
50.400002, 65442.000000, 0
|
||||||
|
50.500000, 65477.000000, 1
|
||||||
|
50.500000, 65477.000000, 1
|
||||||
|
50.500000, 65477.000000, 1
|
||||||
|
50.500000, 65477.000000, 1
|
||||||
|
50.500000, 65477.000000, 1
|
||||||
|
50.500000, 65477.000000, 1
|
||||||
|
50.500000, 65477.000000, 1
|
||||||
|
50.500000, 65477.000000, 1
|
||||||
|
50.500000, 65477.000000, 1
|
||||||
|
50.500000, 65477.000000, 1
|
||||||
|
50.099998, 65467.000000, 2
|
||||||
|
50.099998, 65467.000000, 2
|
||||||
|
50.099998, 65467.000000, 2
|
||||||
|
50.099998, 65467.000000, 2
|
||||||
|
50.099998, 65467.000000, 2
|
||||||
|
50.099998, 65467.000000, 2
|
||||||
|
50.099998, 65467.000000, 2
|
||||||
|
50.099998, 65467.000000, 2
|
||||||
|
50.099998, 65467.000000, 2
|
||||||
|
50.099998, 65467.000000, 2
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.200001, 65449.000000, 0
|
||||||
|
50.200001, 65449.000000, 0
|
||||||
|
50.200001, 65449.000000, 0
|
||||||
|
50.200001, 65449.000000, 0
|
||||||
|
50.200001, 65449.000000, 0
|
||||||
|
50.200001, 65449.000000, 0
|
||||||
|
50.200001, 65449.000000, 0
|
||||||
|
50.200001, 65449.000000, 0
|
||||||
|
50.200001, 65449.000000, 0
|
||||||
|
50.200001, 65449.000000, 0
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.500000, 65467.000000, 2
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65475.000000, 1
|
||||||
|
50.500000, 65475.000000, 1
|
||||||
|
50.500000, 65475.000000, 1
|
||||||
|
50.500000, 65475.000000, 1
|
||||||
|
50.500000, 65475.000000, 1
|
||||||
|
50.500000, 65475.000000, 1
|
||||||
|
50.500000, 65475.000000, 1
|
||||||
|
50.500000, 65475.000000, 1
|
||||||
|
50.500000, 65475.000000, 1
|
||||||
|
50.500000, 65475.000000, 1
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.299999, 65446.000000, 0
|
||||||
|
50.299999, 65446.000000, 0
|
||||||
|
50.299999, 65446.000000, 0
|
||||||
|
50.299999, 65446.000000, 0
|
||||||
|
50.299999, 65446.000000, 0
|
||||||
|
50.299999, 65446.000000, 0
|
||||||
|
50.299999, 65446.000000, 0
|
||||||
|
50.299999, 65446.000000, 0
|
||||||
|
50.299999, 65446.000000, 0
|
||||||
|
50.299999, 65446.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.200001, 65454.000000, 0
|
||||||
|
50.400002, 65475.000000, 1
|
||||||
|
50.400002, 65475.000000, 1
|
||||||
|
50.400002, 65475.000000, 1
|
||||||
|
50.400002, 65475.000000, 1
|
||||||
|
50.400002, 65475.000000, 1
|
||||||
|
50.400002, 65475.000000, 1
|
||||||
|
50.400002, 65475.000000, 1
|
||||||
|
50.400002, 65475.000000, 1
|
||||||
|
50.400002, 65475.000000, 1
|
||||||
|
50.400002, 65475.000000, 1
|
||||||
|
50.400002, 65477.000000, 1
|
||||||
|
50.400002, 65477.000000, 1
|
||||||
|
50.400002, 65477.000000, 1
|
||||||
|
50.400002, 65477.000000, 1
|
||||||
|
50.400002, 65477.000000, 1
|
||||||
|
50.400002, 65477.000000, 1
|
||||||
|
50.400002, 65477.000000, 1
|
||||||
|
50.400002, 65477.000000, 1
|
||||||
|
50.400002, 65477.000000, 1
|
||||||
|
50.400002, 65477.000000, 1
|
||||||
|
50.299999, 65457.000000, 0
|
||||||
|
50.299999, 65457.000000, 0
|
||||||
|
50.299999, 65457.000000, 0
|
||||||
|
50.299999, 65457.000000, 0
|
||||||
|
50.299999, 65457.000000, 0
|
||||||
|
50.299999, 65457.000000, 0
|
||||||
|
50.299999, 65457.000000, 0
|
||||||
|
50.299999, 65457.000000, 0
|
||||||
|
50.299999, 65457.000000, 0
|
||||||
|
50.099998, 65463.000000, 2
|
||||||
|
50.099998, 65463.000000, 2
|
||||||
|
50.099998, 65463.000000, 2
|
||||||
|
50.099998, 65463.000000, 2
|
||||||
|
50.099998, 65463.000000, 2
|
||||||
|
50.099998, 65463.000000, 2
|
||||||
|
50.099998, 65463.000000, 2
|
||||||
|
50.099998, 65463.000000, 2
|
||||||
|
50.099998, 65463.000000, 2
|
||||||
|
50.099998, 65463.000000, 2
|
||||||
|
50.099998, 65465.000000, 2
|
||||||
|
50.099998, 65465.000000, 2
|
||||||
|
50.099998, 65465.000000, 2
|
||||||
|
50.099998, 65465.000000, 2
|
||||||
|
50.099998, 65465.000000, 2
|
||||||
|
50.099998, 65465.000000, 2
|
||||||
|
50.099998, 65465.000000, 2
|
||||||
|
50.099998, 65465.000000, 2
|
||||||
|
50.099998, 65465.000000, 2
|
||||||
|
50.099998, 65465.000000, 2
|
||||||
|
50.400002, 65446.000000, 0
|
||||||
|
50.400002, 65446.000000, 0
|
||||||
|
50.400002, 65446.000000, 0
|
||||||
|
50.400002, 65446.000000, 0
|
||||||
|
50.400002, 65446.000000, 0
|
||||||
|
50.400002, 65446.000000, 0
|
||||||
|
50.400002, 65446.000000, 0
|
||||||
|
50.400002, 65446.000000, 0
|
||||||
|
50.400002, 65446.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.400002, 65450.000000, 0
|
||||||
|
50.400002, 65450.000000, 0
|
||||||
|
50.400002, 65450.000000, 0
|
||||||
|
50.400002, 65450.000000, 0
|
||||||
|
50.400002, 65450.000000, 0
|
||||||
|
50.400002, 65450.000000, 0
|
||||||
|
50.400002, 65450.000000, 0
|
||||||
|
50.400002, 65450.000000, 0
|
||||||
|
50.400002, 65450.000000, 0
|
||||||
|
50.400002, 65450.000000, 0
|
||||||
|
50.400002, 65463.000000, 2
|
||||||
|
50.400002, 65463.000000, 2
|
||||||
|
50.400002, 65463.000000, 2
|
||||||
|
50.400002, 65463.000000, 2
|
||||||
|
50.400002, 65463.000000, 2
|
||||||
|
50.400002, 65463.000000, 2
|
||||||
|
50.400002, 65463.000000, 2
|
||||||
|
50.400002, 65463.000000, 2
|
||||||
|
50.400002, 65463.000000, 2
|
||||||
|
50.400002, 65463.000000, 2
|
||||||
|
50.500000, 65460.000000, 2
|
||||||
|
50.500000, 65460.000000, 2
|
||||||
|
50.500000, 65460.000000, 2
|
||||||
|
50.500000, 65460.000000, 2
|
||||||
|
50.500000, 65460.000000, 2
|
||||||
|
50.500000, 65460.000000, 2
|
||||||
|
50.500000, 65460.000000, 2
|
||||||
|
50.500000, 65460.000000, 2
|
||||||
|
50.500000, 65460.000000, 2
|
||||||
|
50.299999, 65476.000000, 1
|
||||||
|
50.299999, 65476.000000, 1
|
||||||
|
50.299999, 65476.000000, 1
|
||||||
|
50.299999, 65476.000000, 1
|
||||||
|
50.299999, 65476.000000, 1
|
||||||
|
50.299999, 65476.000000, 1
|
||||||
|
50.299999, 65476.000000, 1
|
||||||
|
50.299999, 65476.000000, 1
|
||||||
|
50.299999, 65476.000000, 1
|
||||||
|
50.299999, 65476.000000, 1
|
||||||
|
50.200001, 65455.000000, 0
|
||||||
|
50.200001, 65455.000000, 0
|
||||||
|
50.200001, 65455.000000, 0
|
||||||
|
50.200001, 65455.000000, 0
|
||||||
|
50.200001, 65455.000000, 0
|
||||||
|
50.200001, 65455.000000, 0
|
||||||
|
50.200001, 65455.000000, 0
|
||||||
|
50.200001, 65455.000000, 0
|
||||||
|
50.200001, 65455.000000, 0
|
||||||
|
50.200001, 65468.000000, 2
|
||||||
|
50.200001, 65468.000000, 2
|
||||||
|
50.200001, 65468.000000, 2
|
||||||
|
50.200001, 65468.000000, 2
|
||||||
|
50.200001, 65468.000000, 2
|
||||||
|
50.200001, 65468.000000, 2
|
||||||
|
50.200001, 65468.000000, 2
|
||||||
|
50.200001, 65468.000000, 2
|
||||||
|
50.200001, 65468.000000, 2
|
||||||
|
50.200001, 65468.000000, 2
|
||||||
|
50.299999, 65461.000000, 2
|
||||||
|
50.299999, 65461.000000, 2
|
||||||
|
50.299999, 65461.000000, 2
|
||||||
|
50.299999, 65461.000000, 2
|
||||||
|
50.299999, 65461.000000, 2
|
||||||
|
50.299999, 65461.000000, 2
|
||||||
|
50.299999, 65461.000000, 2
|
||||||
|
50.299999, 65461.000000, 2
|
||||||
|
50.299999, 65461.000000, 2
|
||||||
|
50.299999, 65461.000000, 2
|
||||||
|
50.400002, 65444.000000, 0
|
||||||
|
50.400002, 65444.000000, 0
|
||||||
|
50.400002, 65444.000000, 0
|
||||||
|
50.400002, 65444.000000, 0
|
||||||
|
50.400002, 65444.000000, 0
|
||||||
|
50.400002, 65444.000000, 0
|
||||||
|
50.400002, 65444.000000, 0
|
||||||
|
50.400002, 65444.000000, 0
|
||||||
|
50.400002, 65444.000000, 0
|
||||||
|
50.400002, 65444.000000, 0
|
||||||
|
50.400002, 65478.000000, 1
|
||||||
|
50.400002, 65478.000000, 1
|
||||||
|
50.400002, 65478.000000, 1
|
||||||
|
50.400002, 65478.000000, 1
|
||||||
|
50.400002, 65478.000000, 1
|
||||||
|
50.400002, 65478.000000, 1
|
||||||
|
50.400002, 65478.000000, 1
|
||||||
|
50.400002, 65478.000000, 1
|
||||||
|
50.400002, 65478.000000, 1
|
||||||
|
50.500000, 65462.000000, 2
|
||||||
|
50.500000, 65462.000000, 2
|
||||||
|
50.500000, 65462.000000, 2
|
||||||
|
50.500000, 65462.000000, 2
|
||||||
|
50.500000, 65462.000000, 2
|
||||||
|
50.500000, 65462.000000, 2
|
||||||
|
50.500000, 65462.000000, 2
|
||||||
|
50.500000, 65462.000000, 2
|
||||||
|
50.500000, 65462.000000, 2
|
||||||
|
50.500000, 65462.000000, 2
|
||||||
|
50.500000, 65455.000000, 0
|
||||||
|
50.500000, 65455.000000, 0
|
||||||
|
50.500000, 65455.000000, 0
|
||||||
|
50.500000, 65455.000000, 0
|
||||||
|
50.500000, 65455.000000, 0
|
||||||
|
50.500000, 65455.000000, 0
|
||||||
|
50.500000, 65455.000000, 0
|
||||||
|
50.500000, 65455.000000, 0
|
||||||
|
50.500000, 65455.000000, 0
|
||||||
|
50.500000, 65455.000000, 0
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.200001, 65452.000000, 0
|
||||||
|
50.299999, 65447.000000, 0
|
||||||
|
50.299999, 65447.000000, 0
|
||||||
|
50.299999, 65447.000000, 0
|
||||||
|
50.299999, 65447.000000, 0
|
||||||
|
50.299999, 65447.000000, 0
|
||||||
|
50.299999, 65447.000000, 0
|
||||||
|
50.299999, 65447.000000, 0
|
||||||
|
50.299999, 65447.000000, 0
|
||||||
|
50.299999, 65447.000000, 0
|
||||||
|
50.299999, 65447.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.500000, 65457.000000, 0
|
||||||
|
50.400002, 65479.000000, 1
|
||||||
|
50.400002, 65479.000000, 1
|
||||||
|
50.400002, 65479.000000, 1
|
||||||
|
50.400002, 65479.000000, 1
|
||||||
|
50.400002, 65479.000000, 1
|
||||||
|
50.400002, 65479.000000, 1
|
||||||
|
50.400002, 65479.000000, 1
|
||||||
|
50.400002, 65479.000000, 1
|
||||||
|
50.400002, 65479.000000, 1
|
||||||
|
50.099998, 65452.000000, 0
|
||||||
|
50.099998, 65452.000000, 0
|
||||||
|
50.099998, 65452.000000, 0
|
||||||
|
50.099998, 65452.000000, 0
|
||||||
|
50.099998, 65452.000000, 0
|
||||||
|
50.099998, 65452.000000, 0
|
||||||
|
50.099998, 65452.000000, 0
|
||||||
|
50.099998, 65452.000000, 0
|
||||||
|
50.099998, 65452.000000, 0
|
||||||
|
50.099998, 65452.000000, 0
|
||||||
|
50.099998, 65451.000000, 0
|
||||||
|
50.099998, 65451.000000, 0
|
||||||
|
50.099998, 65451.000000, 0
|
||||||
|
50.099998, 65451.000000, 0
|
||||||
|
50.099998, 65451.000000, 0
|
||||||
|
50.099998, 65451.000000, 0
|
||||||
|
50.099998, 65451.000000, 0
|
||||||
|
50.099998, 65451.000000, 0
|
||||||
|
50.099998, 65451.000000, 0
|
||||||
|
50.099998, 65451.000000, 0
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.299999, 65475.000000, 1
|
||||||
|
50.500000, 65451.000000, 0
|
||||||
|
50.500000, 65451.000000, 0
|
||||||
|
50.500000, 65451.000000, 0
|
||||||
|
50.500000, 65451.000000, 0
|
||||||
|
50.500000, 65451.000000, 0
|
||||||
|
50.500000, 65451.000000, 0
|
||||||
|
50.500000, 65451.000000, 0
|
||||||
|
50.500000, 65451.000000, 0
|
||||||
|
50.500000, 65451.000000, 0
|
||||||
|
50.500000, 65451.000000, 0
|
||||||
|
50.200001, 65445.000000, 0
|
||||||
|
50.200001, 65445.000000, 0
|
||||||
|
50.200001, 65445.000000, 0
|
||||||
|
50.200001, 65445.000000, 0
|
||||||
|
50.200001, 65445.000000, 0
|
||||||
|
50.200001, 65445.000000, 0
|
||||||
|
50.200001, 65445.000000, 0
|
||||||
|
50.200001, 65445.000000, 0
|
||||||
|
50.200001, 65445.000000, 0
|
||||||
|
50.200001, 65445.000000, 0
|
||||||
|
50.200001, 65456.000000, 0
|
||||||
|
50.200001, 65456.000000, 0
|
||||||
|
50.200001, 65456.000000, 0
|
||||||
|
50.200001, 65456.000000, 0
|
||||||
|
50.200001, 65456.000000, 0
|
||||||
|
50.200001, 65456.000000, 0
|
||||||
|
50.200001, 65456.000000, 0
|
||||||
|
50.200001, 65456.000000, 0
|
||||||
|
50.200001, 65456.000000, 0
|
||||||
|
50.200001, 65456.000000, 0
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.299999, 65459.000000, 2
|
||||||
|
50.400002, 65454.000000, 0
|
||||||
|
50.400002, 65454.000000, 0
|
||||||
|
50.400002, 65454.000000, 0
|
||||||
|
50.400002, 65454.000000, 0
|
||||||
|
50.400002, 65454.000000, 0
|
||||||
|
50.400002, 65454.000000, 0
|
||||||
|
50.400002, 65454.000000, 0
|
||||||
|
50.400002, 65454.000000, 0
|
||||||
|
50.400002, 65454.000000, 0
|
||||||
|
50.400002, 65454.000000, 0
|
||||||
|
50.200001, 65475.000000, 1
|
||||||
|
50.200001, 65475.000000, 1
|
||||||
|
50.200001, 65475.000000, 1
|
||||||
|
50.200001, 65475.000000, 1
|
||||||
|
50.200001, 65475.000000, 1
|
||||||
|
50.200001, 65475.000000, 1
|
||||||
|
50.200001, 65475.000000, 1
|
||||||
|
50.200001, 65475.000000, 1
|
||||||
|
50.200001, 65475.000000, 1
|
||||||
|
50.200001, 65475.000000, 1
|
||||||
|
50.200001, 65446.000000, 0
|
||||||
|
50.200001, 65446.000000, 0
|
||||||
|
50.200001, 65446.000000, 0
|
||||||
|
50.200001, 65446.000000, 0
|
||||||
|
50.200001, 65446.000000, 0
|
||||||
|
50.200001, 65446.000000, 0
|
||||||
|
50.200001, 65446.000000, 0
|
||||||
|
50.200001, 65446.000000, 0
|
||||||
|
50.200001, 65446.000000, 0
|
||||||
|
50.099998, 65468.000000, 2
|
||||||
|
50.099998, 65468.000000, 2
|
||||||
|
50.099998, 65468.000000, 2
|
||||||
|
50.099998, 65468.000000, 2
|
||||||
|
50.099998, 65468.000000, 2
|
||||||
|
50.099998, 65468.000000, 2
|
||||||
|
50.099998, 65468.000000, 2
|
||||||
|
50.099998, 65468.000000, 2
|
||||||
|
50.099998, 65468.000000, 2
|
||||||
|
50.099998, 65468.000000, 2
|
||||||
|
50.500000, 65465.000000, 2
|
||||||
|
50.500000, 65465.000000, 2
|
||||||
|
50.500000, 65465.000000, 2
|
||||||
|
50.500000, 65465.000000, 2
|
||||||
|
50.500000, 65465.000000, 2
|
||||||
|
50.500000, 65465.000000, 2
|
||||||
|
50.500000, 65465.000000, 2
|
||||||
|
50.500000, 65465.000000, 2
|
||||||
|
50.500000, 65465.000000, 2
|
||||||
|
50.500000, 65465.000000, 2
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.099998, 65454.000000, 0
|
||||||
|
50.299999, 65460.000000, 2
|
||||||
|
50.299999, 65460.000000, 2
|
||||||
|
50.299999, 65460.000000, 2
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,56 @@
|
||||||
|
# 0 : 50.284426, 65451.237705
|
||||||
|
# 1 : 50.370104, 65476.164948
|
||||||
|
# 2 : 50.302515, 65464.320755
|
||||||
|
|
||||||
|
import csv
|
||||||
|
import numpy as np
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
from sklearn import preprocessing
|
||||||
|
x=[]
|
||||||
|
y=[]
|
||||||
|
x1=[]
|
||||||
|
y1=[]
|
||||||
|
x2=[]
|
||||||
|
y2=[]
|
||||||
|
with open('kmeans.csv', mode ='r') as file:
|
||||||
|
csvFile = csv.reader(file)
|
||||||
|
for lines in csvFile:
|
||||||
|
#print(lines)
|
||||||
|
if(int(lines[2])==0):
|
||||||
|
x.append(float(lines[0]))
|
||||||
|
y.append(float(lines[1]))
|
||||||
|
elif(int(lines[2])==1):
|
||||||
|
x1.append(float(lines[0]))
|
||||||
|
y1.append(float(lines[1]))
|
||||||
|
else:
|
||||||
|
x2.append(float(lines[0]))
|
||||||
|
y2.append(float(lines[1]))
|
||||||
|
|
||||||
|
x.append(50.284426)
|
||||||
|
y.append(65451.237705)
|
||||||
|
x1.append(50.370104)
|
||||||
|
y1.append(65476.164948)
|
||||||
|
x2.append(50.302515)
|
||||||
|
y2.append(65464.320755)
|
||||||
|
|
||||||
|
x_array = np.array(x+x1+x2)
|
||||||
|
y_array = np.array(y+y1+y2)
|
||||||
|
# x1_array = np.array(x1)
|
||||||
|
# y1_array = np.array(y1)
|
||||||
|
# x2_array = np.array(x2)
|
||||||
|
# y2_array = np.array(y2)
|
||||||
|
|
||||||
|
x_arr = preprocessing.normalize([x_array])
|
||||||
|
y_arr = preprocessing.normalize([y_array])
|
||||||
|
|
||||||
|
# x1_arr = preprocessing.normalize([x1_array])
|
||||||
|
# y1_arr = preprocessing.normalize([y1_array])
|
||||||
|
|
||||||
|
# x2_arr = preprocessing.normalize([x2_array])
|
||||||
|
# y2_arr = preprocessing.normalize([y2_array])
|
||||||
|
|
||||||
|
plt.scatter(x_arr, y_arr)
|
||||||
|
# plt.scatter(x1_arr, y1_arr)
|
||||||
|
# plt.scatter(x2_arr, y2_arr)
|
||||||
|
|
||||||
|
plt.show()
|
|
@ -0,0 +1,204 @@
|
||||||
|
#include "parser.h"
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <math.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
struct Point
|
||||||
|
{
|
||||||
|
long double x, y; // coordinates
|
||||||
|
int cluster; // no default cluster
|
||||||
|
long double minDist; // default infinite dist to nearest cluster
|
||||||
|
};
|
||||||
|
|
||||||
|
int count = 0;
|
||||||
|
struct Point *P;
|
||||||
|
|
||||||
|
long double distance(struct Point* A, struct Point* B)
|
||||||
|
{
|
||||||
|
return (((A->x - B->x) * (A->x - B->x)) + ((A->y - B->y) * (A->y - B->y)));
|
||||||
|
}
|
||||||
|
|
||||||
|
int *getRandoms(int lower, int upper, int count)
|
||||||
|
{
|
||||||
|
srand(time(0));
|
||||||
|
int *p = (int *)malloc(sizeof(int) * count);
|
||||||
|
int track = 0;
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
if (track == count)
|
||||||
|
{
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
int num = (rand() % (upper - lower + 1)) + lower;
|
||||||
|
if (track == 0)
|
||||||
|
{
|
||||||
|
p[track] = num;
|
||||||
|
track++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
int flag = 0;
|
||||||
|
for (int j = 0; j <= track - 1; j++)
|
||||||
|
{
|
||||||
|
if (num == p[j])
|
||||||
|
{
|
||||||
|
flag = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (flag == 0)
|
||||||
|
{
|
||||||
|
p[track] = num;
|
||||||
|
track++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Kmeans2(struct data_frame *df)
|
||||||
|
{
|
||||||
|
printf("count: %d\n",count);
|
||||||
|
if(count==0)
|
||||||
|
{
|
||||||
|
P = (struct Point *)malloc(sizeof(struct Point) * 500);
|
||||||
|
}
|
||||||
|
if (count != 500)
|
||||||
|
{
|
||||||
|
float CURR_FREQ;
|
||||||
|
if (df->dpmu[0]->fmt->freq == '0')
|
||||||
|
{
|
||||||
|
CURR_FREQ = 50 + to_intconvertor(df->dpmu[0]->freq) * 1e-3;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CURR_FREQ = decode_ieee_single(df->dpmu[0]->freq);
|
||||||
|
}
|
||||||
|
float CURR_vol;
|
||||||
|
if (df->dpmu[0]->fmt->phasor == '0')
|
||||||
|
{
|
||||||
|
if (df->dpmu[0]->fmt->polar == '0')
|
||||||
|
{
|
||||||
|
unsigned char s1[2];
|
||||||
|
unsigned char s2[2];
|
||||||
|
strncpy(s1, df->dpmu[0]->phasors[0], 2);
|
||||||
|
strncpy(s2, df->dpmu[0]->phasors[0] + 2, 2);
|
||||||
|
long double v1 = to_intconvertor(s1);
|
||||||
|
long double v2 = to_intconvertor(s2);
|
||||||
|
CURR_vol = sqrt((v1 * v1) + (v2 * v2));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
unsigned char s1[2];
|
||||||
|
strncpy(s1, df->dpmu[0]->phasors[0], 2);
|
||||||
|
CURR_vol = to_intconvertor(s1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (df->dpmu[0]->fmt->polar == '0')
|
||||||
|
{
|
||||||
|
unsigned char s1[4];
|
||||||
|
unsigned char s2[4];
|
||||||
|
strncpy(s1, df->dpmu[0]->phasors[0], 4);
|
||||||
|
strncpy(s2, df->dpmu[0]->phasors[0] + 2, 4);
|
||||||
|
long double v1 = decode_ieee_single(s1);
|
||||||
|
long double v2 = decode_ieee_single(s2);
|
||||||
|
CURR_vol = sqrt((v1 * v1) + (v2 * v2));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
unsigned char s1[4];
|
||||||
|
strncpy(s1, df->dpmu[0]->phasors[0], 4);
|
||||||
|
CURR_vol = decode_ieee_single(s1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
P[count].x = CURR_FREQ;
|
||||||
|
P[count].y = CURR_vol;
|
||||||
|
P[count].cluster = -1;
|
||||||
|
P[count].minDist = __DBL_MAX__;
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int no_of_clusters = 5;
|
||||||
|
int epochs = 20;
|
||||||
|
int *c = getRandoms(0, 499, no_of_clusters);
|
||||||
|
struct Point *Centroids = (struct Point *)malloc(sizeof(struct Point) * no_of_clusters);
|
||||||
|
for (int i = 0; i < no_of_clusters; i++)
|
||||||
|
{
|
||||||
|
Centroids[i].x = P[c[i]].x;
|
||||||
|
Centroids[i].y = P[c[i]].y;
|
||||||
|
Centroids[i].minDist = __DBL_MAX__;
|
||||||
|
Centroids[i].cluster = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
free(c);
|
||||||
|
|
||||||
|
while (epochs--)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < no_of_clusters; i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < 500; j++)
|
||||||
|
{
|
||||||
|
long double dist = distance(&Centroids[i], &P[j]);
|
||||||
|
if (P[j].minDist > dist)
|
||||||
|
{
|
||||||
|
P[j].minDist = dist;
|
||||||
|
P[j].cluster = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int *nPoints = (int *)malloc(sizeof(int) * no_of_clusters);
|
||||||
|
long double *Sumx = (long double *)malloc(sizeof(long double) * no_of_clusters);
|
||||||
|
long double *Sumy = (long double *)malloc(sizeof(long double) * no_of_clusters);
|
||||||
|
|
||||||
|
for (int i = 0; i < no_of_clusters; i++)
|
||||||
|
{
|
||||||
|
nPoints[i] = 0;
|
||||||
|
Sumx[i] = 0;
|
||||||
|
Sumy[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 500; i++)
|
||||||
|
{
|
||||||
|
nPoints[P[i].cluster]++;
|
||||||
|
Sumx[P[i].cluster] += P[i].x;
|
||||||
|
Sumy[P[i].cluster] += P[i].y;
|
||||||
|
P[i].minDist = __DBL_MAX__;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < no_of_clusters; i++)
|
||||||
|
{
|
||||||
|
Centroids[i].x = Sumx[i] / nPoints[i];
|
||||||
|
Centroids[i].y = Sumy[i] / nPoints[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
free(nPoints);
|
||||||
|
free(Sumx);
|
||||||
|
free(Sumy);
|
||||||
|
}
|
||||||
|
count = 0;
|
||||||
|
FILE *fp;
|
||||||
|
fp = fopen("kmeans.txt","a");
|
||||||
|
|
||||||
|
for(int i=0;i<500;i++)
|
||||||
|
{
|
||||||
|
fprintf(fp,"%Lf, %Lf, %d\n",P[i].x,P[i].y,P[i].cluster);
|
||||||
|
}
|
||||||
|
fprintf(fp,"\n\n");
|
||||||
|
|
||||||
|
for(int i=0;i<no_of_clusters;i++)
|
||||||
|
{
|
||||||
|
fprintf(fp,"%d : %Lf, %Lf\n",i,Centroids[i].x,Centroids[i].y);
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf(fp,"\n\n");
|
||||||
|
|
||||||
|
fclose(fp);
|
||||||
|
|
||||||
|
free(Centroids);
|
||||||
|
free(P);
|
||||||
|
}
|
||||||
|
}
|
|
@ -13,6 +13,7 @@
|
||||||
#include "connections.h"
|
#include "connections.h"
|
||||||
#include "livechart.h"
|
#include "livechart.h"
|
||||||
#include "utility_tools.h"
|
#include "utility_tools.h"
|
||||||
|
#include "Kmeans2.h"
|
||||||
|
|
||||||
|
|
||||||
// debug
|
// debug
|
||||||
|
@ -44,17 +45,17 @@ gboolean update_images(gpointer* pars){
|
||||||
float lat;
|
float lat;
|
||||||
float lon;
|
float lon;
|
||||||
loops++;
|
loops++;
|
||||||
printf("loops: %d\n", loops);
|
// printf("loops: %d\n", loops);
|
||||||
|
|
||||||
id = to_intconvertor(df->idcode);
|
id = to_intconvertor(df->idcode);
|
||||||
printf("id = %d\n",id);
|
// printf("id = %d\n",id);
|
||||||
pthread_mutex_lock(&mutex_cfg);
|
pthread_mutex_lock(&mutex_cfg);
|
||||||
temp_cfg = cfgfirst;
|
temp_cfg = cfgfirst;
|
||||||
// Check for the IDCODE in Configuration Frame
|
// Check for the IDCODE in Configuration Frame
|
||||||
while(temp_cfg != NULL){
|
while(temp_cfg != NULL){
|
||||||
if(id == to_intconvertor(temp_cfg->idcode)){
|
if(id == to_intconvertor(temp_cfg->idcode)){
|
||||||
cfg_match = 1;
|
cfg_match = 1;
|
||||||
printf("Matched - id : %d\n",id);
|
// printf("Matched - id : %d\n",id);
|
||||||
freq_fmt = temp_cfg->pmu[0]->fmt->freq;
|
freq_fmt = temp_cfg->pmu[0]->fmt->freq;
|
||||||
anal_fmt = temp_cfg->pmu[0]->fmt->analog;
|
anal_fmt = temp_cfg->pmu[0]->fmt->analog;
|
||||||
phas_fmt = temp_cfg->pmu[0]->fmt->phasor;
|
phas_fmt = temp_cfg->pmu[0]->fmt->phasor;
|
||||||
|
@ -69,7 +70,7 @@ gboolean update_images(gpointer* pars){
|
||||||
// get data from df.
|
// get data from df.
|
||||||
if(freq_fmt == '1'){
|
if(freq_fmt == '1'){
|
||||||
freq = decode_ieee_single(df->dpmu[i]->freq);
|
freq = decode_ieee_single(df->dpmu[i]->freq);
|
||||||
printf("freq = %f\n",freq);
|
// printf("freq = %f\n",freq);
|
||||||
}else{
|
}else{
|
||||||
freq = to_intconvertor(df->dpmu[i]->freq)*1e-6+50;
|
freq = to_intconvertor(df->dpmu[i]->freq)*1e-6+50;
|
||||||
}
|
}
|
||||||
|
@ -80,15 +81,15 @@ gboolean update_images(gpointer* pars){
|
||||||
strncpy(last2bytes, df->dpmu[i]->phasors[0]+2, 2);
|
strncpy(last2bytes, df->dpmu[i]->phasors[0]+2, 2);
|
||||||
vol_magnitude = to_intconvertor(first2bytes);
|
vol_magnitude = to_intconvertor(first2bytes);
|
||||||
float imaginary = to_intconvertor(last2bytes);
|
float imaginary = to_intconvertor(last2bytes);
|
||||||
printf("vol = %f imag = %f\n",vol_magnitude, imaginary);
|
// printf("vol = %f imag = %f\n",vol_magnitude, imaginary);
|
||||||
|
|
||||||
vis_ptr = vis_data_head;
|
vis_ptr = vis_data_head;
|
||||||
match = 0;
|
match = 0;
|
||||||
while(vis_ptr != NULL){
|
while(vis_ptr != NULL){
|
||||||
printf("vis_ptr->id = %d\n",vis_ptr->id);
|
// printf("vis_ptr->id = %d\n",vis_ptr->id);
|
||||||
if(vis_ptr->id == id){
|
if(vis_ptr->id == id){
|
||||||
match = 1;
|
match = 1;
|
||||||
printf("Matched - id : %d\n",id);
|
// printf("Matched - id : %d\n",id);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
vis_ptr = vis_ptr->next;
|
vis_ptr = vis_ptr->next;
|
||||||
|
@ -102,7 +103,7 @@ gboolean update_images(gpointer* pars){
|
||||||
live_chart_serie_add(vis_ptr->serie_dfreq, dfreq);
|
live_chart_serie_add(vis_ptr->serie_dfreq, dfreq);
|
||||||
|
|
||||||
if(match == 1 && cfg_match == 1){
|
if(match == 1 && cfg_match == 1){
|
||||||
printf("lat = %f, lon = %f, freq = %f\n",lat,lon,freq);
|
// printf("lat = %f, lon = %f, freq = %f\n",lat,lon,freq);
|
||||||
if(vis_ptr->last_image != 0){
|
if(vis_ptr->last_image != 0){
|
||||||
osm_gps_map_image_remove(parameters->util_map, vis_ptr->last_image);
|
osm_gps_map_image_remove(parameters->util_map, vis_ptr->last_image);
|
||||||
}
|
}
|
||||||
|
@ -153,7 +154,7 @@ gboolean update_images(gpointer* pars){
|
||||||
}else if (algorithm==1 && dimmension == 1){
|
}else if (algorithm==1 && dimmension == 1){
|
||||||
|
|
||||||
}else if (algorithm==1 && dimmension == 2){
|
}else if (algorithm==1 && dimmension == 2){
|
||||||
|
Kmeans2(df);
|
||||||
}else if (algorithm==2 && dimmension == 0){
|
}else if (algorithm==2 && dimmension == 0){
|
||||||
if(!DTWvolDistance(df)){
|
if(!DTWvolDistance(df)){
|
||||||
vis_ptr->last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_red_image);
|
vis_ptr->last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_red_image);
|
||||||
|
|
Loading…
Reference in New Issue